Cómo configurar cookies personalizadas antes de la salida

4

¿Cuál es una forma segura de verificar / configurar las cookies antes de que se envíen los encabezados de PHP? ¿Hay alguna acción o filtro que sea el mejor lugar para enganchar una función setcookie() ?

    
pregunta Dan Gayle 24.09.2010 - 21:50

3 respuestas

3

Depende de si necesita o no verificar con la autenticación de usuario de WordPress. Si necesita saber si son usuarios registrados, enganche en 'init' . De lo contrario, cuanto antes mejor.

Si es algo que debería activarse en cada carga de página, y solo comprueba la existencia de la cookie y no necesita acceder a ninguna de las API de WP, lo pondría en un complemento MU personalizado llamado 0000a.php para garantizar que se active antes de que cualquier archivo no principal pueda enviar encabezados accidentalmente.

    
respondido por el John P Bloch 24.09.2010 - 23:49
2

Creo que functions.php se procesa definitivamente antes de cualquier salida y es el lugar adecuado para las extensiones.

En cuanto al gancho, tal vez after_setup_theme , viene justo después de eso.

    
respondido por el Rarst 24.09.2010 - 22:05
0

Puede crear una función para verificar o configurar una cookie, pero debe verificar wp-config.php porque si usa una redirección, se podrá acceder al archivo directamente antes de index.php en la redirección.

Esto es de un complemento que Mark Jaquith escribió Verificación de edad que requiere que el usuario complete un formulario de verificación de edad antes de ingresar al sitio. Lo modifiqué para un licor, cerveza, sitio web que hice.

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');

Una mejor manera podría existir ahora. El complemento fue escrito hace más de un año.

    
respondido por el Chris_O 24.09.2010 - 23:02

Lea otras preguntas en las etiquetas