Witam,
Jestem mocno początkującym programistą. Teraz w celach nauki piszę na własne potrzeby prostą wtyczkę. Działanie jest proste. Wtyczka pozwala ustawić przekierowanie dla użytkownika po zalogowaniu lub wylogowaniu na wskazany adres np. Stronę Główną. Może w przyszłości też komuś się przyda.
Do sedna. Ten kod działa i wtyczka robi swoją robotę:
<?php /* Plugin Name: Redirect WP-Login Plugin URI: http://twoja-domena.pl Description: Wtyczka pozwala ustawić przekierowanie dla użytkownika po zalogowaniu lub wylogowaniu na wskazany adres np. Stronę Główną. Version: 0.1 Author: Author URI: License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html */ // filtr dla logowania add_filter('wp_login', 'login_redirect'); function login_redirect() { wp_redirect('http://twoja-domena.pl'); exit(); } // filtr dla wylogowania add_filter('wp_logout', 'logout_redirect'); function logout_redirect() { wp_redirect('http://twoja-domena.pl'); exit(); }
Teraz chcę rozbudować wtyczkę o podstawową opcję konfiguracji. Chce dodać Podmenu o nazwie Redirect WP-Login do Ustawień w Panelu Administracyjnym. Następnie w opcjach wtyczki dodać dwa pola na wpisanie adresu http dla (po zalogowaniu) i (po wylogowaniu) oraz możliwość zmian tych adresów w każdej chwili. Jednak błąd pojawił sie podczas testu, gdy chciałem sprawdzić czy kod dodający opcje do menu w panelu administracyjnym działa.
Treść błędu:
Wtyczka nie mogła zostać włączona, ponieważ spowodowała wystąpienie krytycznego błędu. Fatal error: Cannot redeclare redirect_wplogin_options() (previously declared in /domains/muverbo.pl/public_html/workspace/demo/wp-content/plugins/redirect-wplogin/redirect-wplogin.php:32) in /domains/muverbo.pl/public_html/workspace/demo/wp-content/plugins/redirect-wplogin/redirect-wplogin.php on line 42
To cały obecny kod wtyczki (jeszcze nie napisałem funkcji odpowiadającej za konfigurację, tylko dodającą podmenu):
<?php /* Plugin Name: Redirect WP-Login Plugin URI: http://twoja-domena.pl Description: Wtyczka pozwala ustawić przekierowanie dla użytkownika po zalogowaniu lub wylogowaniu na wskazany adres np. Stronę Główną. Version: 0.1 Author: Author URI: License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html */ // filtr dla logowania add_filter('wp_login', 'login_redirect'); function login_redirect() { wp_redirect('http://twoja-domena.pl'); exit(); } // filtr dla wylogowania add_filter('wp_logout', 'logout_redirect'); function logout_redirect() { wp_redirect('http://twoja-domena.pl'); exit(); } /* Kod dodający opcje do menu w panelu administracyjnym */ // ... add_action( 'admin_menu', 'redirect_wplogin_menu' ); // Krok 1 function redirect_wplogin_options() { add_options_page( 'Opcje Redirect WP-Login', 'Redirect WP-Login', 'manage_options', 'redirect-wplogin-identifier', 'redirect_wplogin_options' ); } // Krok 3 function redirect_wplogin_options() { if ( !current_user_can( 'manage_options' ) ) { wp_die( __( 'Nie posiadasz uprawnień do przeglądania tej strony.' ) ); } echo '<div>'; echo '<p>Here is where the form would go if I actually had options.</p>'; echo '</div>'; } ?>