it-swarm.com.de

So beenden Sie die Administratorbenachrichtigung, nachdem auf die Schaltfläche zum Schließen geklickt wurde

Zunächst weiß ich, wie man einen Admin-Hinweis im WordPress-Admin-Menü hinzufügt. Und ich habe einen Admin-Hinweis wie diesen hinzugefügt:

<?php
add_action( 'admin_notices', function() {
    ?>
    <div class="notice notice-success is-dismissible">
        <p><?php _e( 'Imagine something here!', 'sample-text-domain' ); ?></p>
    </div>
    <?php
});

Jetzt läuft mein Code einwandfrei und reibungslos, nur mit einem Problem.

Sie sehen jetzt, dass dieser Hinweis angezeigt wird, sobald der Benutzer das Plugin aktiviert. und es bleibt oben, bis der Benutzer auf den Schließen-Button klickt.

Wenn der Benutzer nun auf eine andere Admin-Seite klickt, wird der Hinweis erneut angezeigt.

Was ich möchte:

Ich möchte, dass dieser Hinweis für alle angezeigt wird, die das Plugin zum ersten Mal installieren oder auf die neueste Version meines Plugins aktualisieren.

Sobald der Benutzer auf die Schaltfläche zum Schließen klickt, wird sie jedoch nicht mehr angezeigt, unabhängig davon, auf welche Seite der Benutzer wechselt.

Ich habe eine Google-Suche durchgeführt, aber keine hilfreiche Antwort gefunden. Ich hoffe, ihr könnt mir hier weiterhelfen.

3
iSaumya

Zwei Möglichkeiten, damit umzugehen.

ein. Fügen Sie der Nachricht einen Timer hinzu:

Sie können wie folgt einen 3-Sekunden-Timer (oder wie lange Sie möchten) an die Benachrichtigung anhängen:

<?php
set_transient( "my-plugin", "alive", 3 );
add_action( 'admin_notices', function() {
    if ( "alive" == get_transient( "my-plugin" ) {
        ?>
        <div class="notice notice-success is-dismissible">
            <p><?php _e( 'Imagine something here!', 'sample-text-domain' ); ?></p>
        </div>
        <?php
        delete_transient( "my-plugin" );
    }
});

Nach 3 Sekunden läuft der Transient ab und zukünftige Aufrufe der Funktion admin_notices hooked zeigen den Hinweis nicht an. Sollte ausreichend Zeit sein, damit der Hinweis nach Abschluss der Plugin-Installation auf der ersten Seite angezeigt wird. Sie können nach Bedarf mit dem Timer spielen.

b. Führen Sie einen Verlauf der Kündigung der Kündigung mit Ihrer eigenen Kündigungsklage:

function my_plugin_notice() {
    $user_id = get_current_user_id();
    if ( !get_user_meta( $user_id, 'my_plugin_notice_dismissed' ) ) 
        echo '<div class="notice"><p>' . _e( 'Imagine something here!', 'sample-text-domain' ) . '</p><a href="?my-plugin-dismissed">Dismiss</a></div>';
}
add_action( 'admin_notices', 'my_plugin_notice' );

function my_plugin_notice_dismissed() {
    $user_id = get_current_user_id();
    if ( isset( $_GET['my-plugin-dismissed'] ) )
        add_user_meta( $user_id, 'my_plugin_notice_dismissed', 'true', true );
}
add_action( 'admin_init', 'my_plugin_notice_dismissed' );

Nach der Entlassung wird das Benutzer-Meta mit diesen Informationen aktualisiert, und die Hook-Funktion admin_notices prüft dies und zeigt die Meldung nur an, wenn sie nicht wahr ist.

6
C C