Muestra un mensaje de confirmación antes de la activación del complemento

4

Quiero mostrar un mensaje cuando el usuario intente activar mi complemento. Este mensaje le preguntará si realmente quiere activar el complemento o, si cambia de opinión, cancele la activación. ¿Cómo puedo lograr eso? Este es el código para el mensaje de advertencia solo como referencia.

--- CÓDIGO ACTUALIZADO ---

register_activation_hook( __FILE__, 'on_activation' );

function on_activation() {
   // Add the admin notice:
   add_action( 'admin_notices', 'on_activation_note' );

   // Then you should check the DB option: 
   $plugins = get_option( 'active_plugins' );

   // Do all the checks from the confirmation message
   if ( !in_array(__FILE__, $plugins) ) {
   unset( $plugins[ dirname( __FILE__ ) ] );
   update_option( 'active_plugins', $plugins );
   }
}

function on_activation_note() {
global $pagenow;
if ( $pagenow == 'plugins.php' ) {
    ob_start(); ?>
    <div id="message" class="error">
    <p><strong>Aviso</strong></br>
    Nulla vitae elit libero, a pharetra augue. Praesent commodo cursus magna, vel scelerisque nisl consectetur et.</p>
    <p><span><a class="button" href="">Cancelar</a></span>
    <span><a class="button" href="">Continuar</a></span></p>
    </div>
    <?php
    echo ob_get_clean();
    }
} 
    
pregunta Daniel 15.09.2012 - 01:19

2 respuestas

3

Puede leer más sobre los detalles de activación en esta respuesta .

Básicamente, necesita conectar una función a register_activation_hook() - asumiendo que esto es desde su carpeta principal de complementos y no una subcarpeta:

register_activation_hook( __FILE__, 'on_activation' );
function wpse65190_on_activation()
{
   // Add an admin notice:
   add_action( 'admin_notices', 'wpse65190_on_activation_note' );

   // Then you should check the DB option: 
   $plugins = get_option( 'active_plugins' );

   if ( ! in_array( dirname( __FILE__ ), $plugins )
   {
       unset( $plugins[ dirname( __FILE__ ) ] );
       update_option( 'active_plugins', $plugins );
   }
}
function wpse65190_on_activation_note()
{
    // Add your note here: Maybe a form?
}

Es tan fácil como eso. Solo tienes que rellenar los huecos. Si tiene un ejemplo completo de trabajo, actualice esta respuesta con su código de trabajo. Gracias.

    
respondido por el kaiser 15.09.2012 - 11:52
1

Debe crear dos distinciones activadas y habilitadas . Usted TIENE QUE tener su complemento AKA activado incluido para que WP sepa qué lógica procesar. Aunque el complemento está activado, aún puede deshabilitar la funcionalidad y alertar al usuario de que el complemento está activado , pero aún no está habilitado .

Hay varios complementos que utilizan un paso secundario de habilitación. Puede consultar WP privado y Todo-en-uno SEO Pack para ver cómo logran esto.

Así es como lo abordaría:

  1. Configure un aviso de administrador una vez que se active el complemento para alertar al usuario que necesita habilitar la funcionalidad primero.
  2. Si se establece una determinada cadena de consulta, agregue una opción que indique que eligieron habilitar la funcionalidad (es decir, update_option() ). Es posible que desee crear una página de configuración con un menú desplegable de selección que muestre su estado de habilitación.
  3. Marque esa opción usando get_option() para deshabilitar el aviso de administrador y continuar procesando su código.
respondido por el Brian Fegter 15.09.2012 - 05:22

Lea otras preguntas en las etiquetas