Je souhaite afficher un message lorsque l'utilisateur tente d'activer mon plugin. Ce message lui demandera s'il souhaite vraiment activer le plugin ou, s'il change d'avis, annuler l'activation. Comment puis-je accomplir cela? Ceci est le code du message d’avertissement juste pour référence.
--- CODE MIS À JOUR ---
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();
}
}
Vous pouvez en savoir plus sur les détails de activation sur cette réponse .
En gros, vous devez associer une fonction à register_activation_hook()
- en supposant que cela se trouve dans votre dossier principal du plugin et non dans un sous-dossier:
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?
}
C'est aussi simple que ça. Vous devez juste combler les lacunes. Si vous avez un exemple de travail complet, veuillez mettre à jour cette réponse avec votre code de travail. Merci.
Vous devez créer deux distinctions activé et activé. Vous DOVE TO avez votre plugin activé AKA inclus pour WP pour savoir quelle logique traiter. Même si le plug-in est activé, vous pouvez toujours désactiver la fonctionnalité et avertir l'utilisateur que le plug-in est activé, mais pas encore activé.
Plusieurs plugins utilisent une étape secondaire d'activation. Vous pouvez consulter Privé WP et Pack SEO Tout-en-un pour voir comment ils y parviennent.
Voici comment je l'aborderais:
update_option()
). Vous souhaiterez peut-être créer une page de paramètres avec un menu déroulant de sélection indiquant son état d'activation.get_option()
pour désactiver la notification de l'administrateur et poursuivre le traitement de votre code.