web-dev-qa-db-fra.com

Définir le cookie à l'aide de la variable GET

Je dois définir un cookie basé sur une variable GET afin que mes clients puissent obtenir un code de coupon sur notre site même s'ils se déplacent après avoir sélectionné le lien du coupon.

J'utilise le code ici: Aide Gravity pour renseigner le champ du coupon en fonction du cookie. Juste la seconde moitié du code.

Je dois définir le code de coupon dans un cookie. Il y a un morceau ici: Définir un cookie en utilisant une variable de l'URL Mais je pense que cela va également définir un cookie vide s'il n'y a pas de variable qui pourrait écraser le code si l'utilisateur navigue sur le site. Quel serait le meilleur moyen de s’assurer que cette fonction ne s’exécute que si la variable est définie?

3
JpaytonWPD

Il suffit de vérifier si la variable est définie, en utilisant le code de votre lien:

add_action( 'init', 'set_agent_cookie' );

function set_agent_cookie() {
    if (isset($_GET['code'])) {
      $name = 'agent';
      $id = $_GET['code'];    
       setcookie( $name, $id, time() + 3600, "/", COOKIE_DOMAIN );
    }
}
3
David Lee

Oui, vous devez simplement envelopper une vérification isset avant de définir le cookie:

$name = 'cookiename';
$expires = time() + 3600;
if (isset($_GET['code'])) {
    $value = $_GET['code'];
    setcookie($name, $value, $expires, '/', COOKIE_DOMAIN);
}
1
majick