Cómo enviar un mensaje durante la activación del complemento


10

Estoy desarrollando un complemento, pero durante la frase de activación constantemente enfrento errores. Sin embargo, no hay una manera fácil de mostrar mensajes de error, ya que si se repiten las cosas se produciría un error de "salida no expuesta". Intenté el gancho admin_message pero no funciona. ¿Cómo puedo alertar al usuario si alguna etapa de la activación ha fallado con razón?

Respuestas:


9

Para fines de prueba, puede usar el sistema de registro (php_error.log):

error_log('Plugin activated', 0);

// Check for DB table existance
if(!$this->hasDBTable()){
    error_log('Database not present', 0);
    if($this->createCELabelsDBTables()){
        error_log('Database was created.', 0);
    } else {
        error_log('Error creating the CE Labels Plugin db tables!', 0);
    }

} else {
    error_log('Database OK', 0);
}

Para enviar un error al usuario sin el error "Encabezados ya enviados", puede usar la función php trigger_error:

trigger_error('PLUGIN OK',E_USER_ERROR);

Con Wordpress siempre debe ser E_USER_ERROR o no mostrará el mensaje.

Sé que el error_log funciona perfectamente ya que lo estoy usando, pero el trigger_error muestra información obligatoria. Pruébalo y compruébalo por ti mismo :)


¿Sabes dónde puedo encontrar más documentación sobre la función error_log? Tengo dificultades para descubrir cómo hacerlo funcionar.
Nathan Arthur

Para aquellos que puedan venir después: php.net/manual/en/function.error-log.php
Nathan Arthur

4

SOLUCIÓN:

register_activation_hook( __FILE__, 'my_activation_func' ); function my_activation_func() {
    file_put_contents(__DIR__.'/my_loggg.txt', ob_get_contents());
}

inserte este código en el complemento y, después del error, vea "my_loggg.txt" dentro de la carpeta del complemento.


Esto funcionó para mí, ¡pero tuve que ponerlo al final del archivo! De lo contrario, no capturó la salida.
Ben Ogorek

0

1) Elimine el espacio adicional en las páginas internas o páginas de complementos.

2) elimine el estilo en línea en las páginas o páginas de complementos.

Me funcionó todo el tiempo. He usado muchas veces el mismo método. cuando el error del problema en la página del complemento o la página de Wordpress.

Saludos,

Hitesh Nagpal

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.