it-swarm.com.de

Zeigen Sie vor der Aktivierung des Plug-Ins eine Bestätigungsmeldung an

Ich möchte eine Nachricht anzeigen, wenn der Benutzer versucht, mein Plugin zu aktivieren. In dieser Nachricht wird gefragt, ob er das Plugin wirklich aktivieren möchte oder ob er die Aktivierung abbrechen möchte, wenn er seine Meinung ändert. Wie kann ich das erreichen? Dies ist der Code für die Warnmeldung.

--- AKTUALISIERTER CODE ---

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();
    }
} 
4
Daniel

Weitere Informationen zur Aktivierung finden Sie in dieser Antwort .

Grundsätzlich müssen Sie eine Funktion mit register_activation_hook() - verknüpfen, vorausgesetzt, dies befindet sich in Ihrem Haupt-Plugin-Ordner und nicht in einem Unterordner:

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?
}

So einfach ist das. Sie müssen nur die Lücken füllen. Wenn Sie ein voll funktionsfähiges Beispiel haben, aktualisieren Sie diese Antwort mit Ihrem Arbeitscode. Vielen Dank.

3
kaiser

Sie müssen zwei Unterscheidungen aktiviert und aktiviert erstellen. Sie MÜSSEN Ihr Plugin aktivieren lassen AKA eingeschlossen für WP um zu wissen, welche Logik zu verarbeiten ist. Auch wenn das Plugin aktiviert ist, können Sie die Funktionalität deaktivieren und den Benutzer benachrichtigen, dass das Plugin aktiviert, aber noch nicht aktiviert ist.

Es gibt mehrere Plugins, die einen sekundären Aktivierungsschritt verwenden. Schauen Sie sich Private WP und All-In-One SEO Pack an, um zu sehen, wie dies erreicht wird.

So würde ich es angehen:

  1. Legen Sie eine Administratorbenachrichtigung fest, sobald das Plug-in aktiviert ist, um den Benutzer darauf hinzuweisen, dass er zuerst die Funktionalität aktivieren muss.
  2. Wenn eine bestimmte Abfragezeichenfolge festgelegt ist, fügen Sie eine Option hinzu, die festhält, dass sie die Funktionalität (d. H. update_option()) für enable ausgewählt haben. Möglicherweise möchten Sie eine Einstellungsseite mit einem Dropdown-Menü erstellen, das den Aktivierungsstatus anzeigt.
  3. Aktivieren Sie diese Option mit get_option(), um die Administratorbenachrichtigung zu deaktivieren und den Code weiter zu verarbeiten.
1
Brian Fegter