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?

lulalala
fuente

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 :)

Domingos Freitas
fuente
¿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.

T.Todua
fuente
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

hitesh nagpal
fuente