web-dev-qa-db-fra.com

Impossible d'ajouter une notification d'administrateur à l'activation du plugin

J'ai le code suivant dans mon plugin:

register_activation_hook( __FILE__, 'sp_subscriber_check_activation_hook' );
function sp_subscriber_check_activation_hook() {
    add_action( 'admin_notices', 'sp_subscriber_check_activation_notice' );
}
function sp_subscriber_check_activation_notice(){
    ?>
    <div class="updated notice is-dismissible">
        <p>If you are using a caching plugin like W3TC or WP Super Cache make sure to make any pages you wish to protect an exception to the caching!.</p>
    </div>
    <?php
}

Cependant, lorsque j'active le plugin, je ne reçois aucun avis. J'ai essayé d'utiliser update_option et get_option mais je n'ai pas eu de chance avec ça non plus.

Quelle est la bonne et la meilleure façon d'y parvenir?

UPDATEJ'ai essayé la chose transitoire comme ceci:

register_activation_hook( __FILE__, 'sp_subscriber_check_activation_hook' );
function sp_subscriber_check_activation_hook() {
    set_transient( 'mp-admin-notice-activation', true, 5 );
}

add_action( 'admin_notices', 'sp_subscriber_check_activation_notice' );
function sp_subscriber_check_activation_notice(){
     if( get_transient( 'fmp-admin-notice-activation' ) ){
        ?>
        <div class="updated notice is-dismissible">
            <p>If you are using a caching plugin like W3TC or WP Super Cache make sure to make any pages you wish to protect an exception to the caching!</p>
        </div>
        <?php
        delete_transient( 'mp-admin-notice-activation' );
    }
}

Mais ça n'a toujours pas marché.

UPDATE 2 J'ai eu une faute de frappe dans la partie transitoire. Cela a fonctionné et je le posterai comme réponse.

3
Shiv

Comme @MohammadLimon a dit que je devais utiliser l'API Transients. Le code suivant a fonctionné:

register_activation_hook( __FILE__, 'sp_subscriber_check_activation_hook' );
function sp_subscriber_check_activation_hook() {
    set_transient( 'mp-admin-notice-activation', true, 5 );
}

add_action( 'admin_notices', 'sp_subscriber_check_activation_notice' );
function sp_subscriber_check_activation_notice(){
     if( get_transient( 'mp-admin-notice-activation' ) ){
        ?>
        <div class="updated notice is-dismissible">
            <p>If you are using a caching plugin like W3TC or WP Super Cache make sure to make any pages you wish to protect an exception to the caching!</p>
        </div>
        <?php
        delete_transient( 'mp-admin-notice-activation' );
    }
}
2
Shiv