2017-01-09 1 views
1

訪問者がウェブサイトに到着したときにランダムに支配的な色を選択してから、この色を1時間にクッキーに保存します。ワードプレスを使用したクッキーのランダムな色

私はワードプレスに取り組んでいます。 私は私のfunction.php

add_action('init', 'setting_my_first_cookie'); 
function setting_my_first_cookie() { 
    $colourRange = array('#965c5d', '#5f797a', '#bc8b6a', '#7fc3a2', '#89383a', '#f28c5d'); 
    $colourTheOnlyOne = $colourRange[array_rand($colourRange, 1)]; 
    $cookieColor = 'cookieColor'; 
    $cookieValue = $colourTheOnlyOne; 
    setcookie($cookieColor, $cookieValue, 60 * DAYS_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN); 
} 

に問題がこれを持っている瞬間のために新しい色が設定されている、私はページを更新するたびに...なぜ理解していないです!

答えて

0

だから私は最終的にそれと私の問題を解決し、クッキーが利用可能な場合、テンプレート内の後に私は

$colorRange = array('#965c5d', '#5f797a', '#bc8b6a', '#7fc3a2', '#89383a', '#f28c5d'); 
$cookieValue = $colorRange[array_rand($colorRange, 1)]; 
global $cookieValue; 

add_action('init', 'setting_cookie'); 
function setting_cookie() { 
    global $cookieValue; 
    $cookieTheValue = $cookieValue; 
    $cookieColor = 'cookieColor'; 
    if (!isset($_COOKIE[$cookieColor])) { 
     setcookie($cookieColor, $cookieTheValue, time()+60, COOKIEPATH, COOKIE_DOMAIN); 
    } 
} 
1

クッキーの値を確認して、リセットしないようにする必要があります。基本的には、ページをリロードするたびにCookieを上書きします。

add_action('init', 'setting_my_first_cookie'); 
function setting_my_first_cookie() { 
    $cookieColor = 'cookieColor'; 
    if (!isset($_COOKIE[$cookieColor])) { 
     $colourRange = array('#965c5d', '#5f797a', '#bc8b6a', '#7fc3a2', '#89383a', '#f28c5d'); 
     $cookieValue = $colourRange[array_rand($colourRange, 1)]; 
     setcookie($cookieColor, $cookieValue, 60 * DAYS_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN); 
    } 
} 

これはクッキー 'cookieColor'をチェックし、見つかった場合はクッキーを書き出しません。

+0

を表示しない場合、私は愚かだ、確認してください!リロードの問題は今は大丈夫です:)しかし、最初の負荷でクッキーが空の場合、私は支配的な色を持っていません... – Alex

関連する問題