Verfasste Forenbeiträge

Ansicht von 5 Antworten - 1 bis 5 (von insgesamt 5)
  • Thread-Starter Wolfgang C.

    (@wolfgangac)

    nach einiger Suche (in Quellcodes von einfachen Plugins) und vielem Testen habe ich die Lösung gefunden.

    Danke für den Hinweis.

    Thread-Starter Wolfgang C.

    (@wolfgangac)

    Hallo,

    wie schon erwähnt, würde es mir auch reichen, einen Link zu den Einstellungen auf der Plugin-Seite unter dem Namen zu haben, neben Deaktivieren.
    bsp:

    PLUGIN-NAME
    Einstellungen | Deaktivieren

    Wolfgang

    Thread-Starter Wolfgang C.

    (@wolfgangac)

    Hier nochmal (fast) der ganze Code:
    Wenn ich das EXIT am Ende aktiviere, bleibt das Plugin NICHT AKTIV!!!
    Alternativ könnte ich mir vorstellen, das man auf der Plugin Seite nach Aktivieren auf „Einstellungen“ klicken könnte, um dort hinzugelangen. (steht dann neben „deaktivieren“)
    Aber wie müßte ich das bewerkstelligen!

    /* Settings API */
    function mn_show_options_page() {
    	?>    
    	<div class="wrap">
    		<h2>Einstellen der E-Mail Adresse:</h2>
    		<form action="options.php" method="post">
           	    <?php settings_fields('mn_group'); ?>
    			<?php do_settings_sections('mn_menu_slug'); ?>			 			 
    			<input name="Submit" type="submit" value="Speichern !" class="button" />
    		</form>
    	</div>
    	<?php
    }
       
    function mn_add_options_page() {
    	add_options_page('Mail Nachricht Plugin', 'Mail Nachricht', 'manage_options', 'mn_menu_slug', 'mn_show_options_page');
    }
       
    function mn_show_inputfield() {
    	$current_number = get_option( 'e_mail' );  // alt: quotenumber
    	// E-mail Adresse auslesen / Admin: admin_email
    	$admin_email = get_option( 'e_mail' );
    	echo "<input name='e_mail' type='text' value='" . $admin_email . "' />";
    }
    
    function mn_show_section() {
    	echo "<p> Eingeben der E-Mail Adresse, die Benachrichtigt werden soll, wenn jemand eine bestimme Seite besucht. <br>
    		Auf jeweiliger Seite folgenden ShortCut verwenden: &nbsp; [e-mail-nachricht] <br> </p>";
    }
    add_action('admin_init', 'mn_admin_init');
       
    function mn_admin_init(){
    	add_settings_section(
    		'mn_section',
    		'Hinweis',
    		'mn_show_section',
    		'mn_menu_slug'		
    	);	
    
    	add_settings_field( 
    		'e_mail',
    		'E-Mail bitte Eintragen: ',
    		'mn_show_inputfield',
    		'mn_menu_slug',
    		'mn_section'
    		);	
    	register_setting( 'mn_group', 'e_mail', 'mn_validate_option' );
    }
    
    function mn_validate_option( $input ) {
    	if(preg_match('/@/', $input)) {
    		return $input; 
    	}
    	else {
    			add_settings_error(
    			'e_mail',
    			'mn_nonumber',
    			'Keine E-Mail!',
    			'error'
    		);
    		$input='0';
    	}
    }
    
    add_action('admin_menu', 'mn_add_options_page');
    
    register_activation_hook(__FILE__, 'mn_activate');
    
    function mn_activate() {    
    
        // TODO: Was sonst so bei Plugin-Aktivierung ggf. eingerichtet werden muss.    
        
        if ( wp_redirect(admin_url('options-general.php?page=mn_menu_slug'))) {
    	//	exit;      // -> Plugin bleibt NICHT AKTIVIERT!
       }
    }
    Thread-Starter Wolfgang C.

    (@wolfgangac)

    Danke für die rasche Antwort,
    an sich funktioniert das Script so. Super!

    Nur wenn ich das in mein Plugin Einbaue, kommt die Meldung:
    „Du bist leider nicht berechtigt, auf diese Seite zuzugreifen.“
    Schade, denn eigentlich sollte das Plugin doch schon aktiviert sein,
    um die Einstellungen aufzurufen.

    Nachtrag: habe gemerkt, das das Plugin zwar startet, aber wieder deaktiviert ist.
    Vermutlich wegen dem Exit 🙁

    • Diese Antwort wurde geändert vor 3 Jahren, 11 Monaten von Wolfgang C..
    Thread-Starter Wolfgang C.

    (@wolfgangac)

    danke für Ihre Antwort,
    leider funktioniert das nicht.

    Bei dem Beispiel unten müßte dann eigentlich die Einstellungsseite geöffnet werden!

    <? php
    /**
     * Plugin Name: Test
     * ....
     * 
     */
    
    // * * *
    
    register_activation_hook(__FILE__, 'test_activate');
    
    function test_activate() {
    
        // TODO: Was sonst so bei Plugin-Aktivierung ggf. eingerichtet werden muss.    
    
        wp_redirect(admin_url('options-general.php'));
       
    }
    • Diese Antwort wurde geändert vor 3 Jahren, 11 Monaten von Bego Mario Garde. Grund: Code formatiert
Ansicht von 5 Antworten - 1 bis 5 (von insgesamt 5)