Comment définir des cookies personnalisés avant leur sortie

4

Quel est le moyen le plus sûr de vérifier / configurer les cookies avant que les en-têtes php ne soient envoyés? Existe-t-il une action ou un filtre qui conviendrait le mieux pour associer une fonction setcookie() ?

    
posée Dan Gayle 24.09.2010 - 21:50

3 réponses

3

Cela dépend si vous devez ou non vérifier l'authentification de l'utilisateur WordPress. Si vous avez besoin de savoir s’il s’agit d’un utilisateur connecté, connectez-vous à 'init' . Sinon, le plus tôt sera le mieux.

S'il s'agit de quelque chose qui doit se déclencher à chaque chargement de page, et ne vérifie que l'existence du cookie et n'a pas besoin de puiser dans les API de WP, je le mettrais dans un plug-in MU personnalisé nommé 0000a.php pour s'assurer qu'il se déclenche avant que des fichiers non essentiels ne puissent envoyer accidentellement des en-têtes.

    
réponse donnée John P Bloch 24.09.2010 - 23:49
2

Je pense que functions.php est définitivement traité avant toute sortie et convient parfaitement aux extensions.

Quant à hook, peut-être after_setup_theme , il vient juste après.

    
réponse donnée Rarst 24.09.2010 - 22:05
0

Vous pouvez créer une fonction pour vérifier ou définir un cookie, mais vous devez également vérifier le fichier wp-config.php, car si vous utilisez une redirection, le fichier sera accessible directement avant index.php sur la redirection.

Ceci provient d'un plugin écrit par Mark Jaquith Vérification de l'âge qui oblige l'utilisateur à remplir un formulaire de vérification de l'âge avant d'accéder au site. Je l'ai modifié pour un site sur les boissons alcoolisées, les bières et la bière que je l'ai fait.

if ( !defined( 'ABSPATH' ) ) { // we're being called directly, to check the cookie
     if ( file_exists('../../wp-config.php') )
                  include('../../wp-config.php');
     elseif ( file_exists('../../../wp-config.php') )
               include('../../../wp-config.php');
    else
       die('Could not find wp-config.php');

Une meilleure solution pourrait exister maintenant. Le plugin a été écrit il y a plus d'un an.

    
réponse donnée Chris_O 24.09.2010 - 23:02

Lire d'autres questions sur les étiquettes