/ / wordpress définit un cookie en shortcode - php, wordpress, cookies, en-têtes http, shortcode

wordpress définit les cookies en shortcode - php, wordpress, cookies, en-têtes http, shortcode

J'écris un plugin wordpress où j'ai un shortcode. Ce shortcode génère et gère un formulaire. Lorsque le formulaire est soumis, une valeur est stockée dans un cookie avec:

$result = setCookie("cookieName","cookieValue");

Le résultat retourne alors faux, ce qui signifie que le cookie n'est pas défini. Ce n'est pas surprenant, car les en-têtes sont déjà envoyés lors de l'exécution du shortcode. Je cherche un moyen de résoudre ce problème.

J'ai trouvé plusieurs questions similaires ici. La plupart des réponses étaient: installez le cookie plus tôt, mais ce n'est pas vraiment une option pour moi.

La seule chose à laquelle je pouvais penser était la sortietout mettre en mémoire tampon, mais je ne sais pas quelle est la bonne façon de faire cela dans wordpress (quels hooks, comment garder les choses compatibles avec d’autres plugins, etc.). Je me demande également s’il existe une solution intégrée, car il me semble que je ne serai pas le seul à avoir ce problème.

Réponses:

0 pour la réponse № 1

Oui, la conception de WP ne le permet pas. Si l’utilisation d’une action précoce telle que "init" ne convient pas, la seule autre chose à laquelle je peux penser est de faire un appel AJAX, où il est correct d’utiliser setcookie dans le rappel, javascript peut également définir des cookies directement.

Si vous devez absolument calculer cela dans le"shortcode" callback alors vous pourriez peut-être stocker quelque chose dans $ _SESSION en premier, ou dans un formulaire caché, ou un attribut de données, et le mettre dans un cookie plus tard (en utilisant l'action "init", ou en transmettant la valeur à javascript et en utilisant pour créer le cookie)


0 pour la réponse № 2

Eh bien, je viens d'écrire une réponse à une autre question. J'espère que cela permettra de définir le meilleur comment et où écrire un cookie que vous souhaitez utiliser dans un shortcode.

besoin de la bonne façon de setcookie dans wordpress