web-dev-qa-db-fra.com

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

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()?

4
Dan Gayle

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.

Si c'est quelque chose qui devrait 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 puissent envoyer accidentellement des en-têtes.

3
John P Bloch

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.

2
Rarst

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

Il s'agit d'un plugin écrit par Mark Jaquith Age Check 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 liqueur, bière, site web j'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 façon pourrait exister maintenant. Le plugin a été écrit il y a plus d'un an.

0
Chris_O