• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

[Wordpress] Piszę wtyczkę dla Wordpress i dostałem w PA " Fatal error..."

VPS Starter Arubacloud
0 głosów
328 wizyt
pytanie zadane 26 października 2016 w PHP przez matteo.web Użytkownik (700 p.)
edycja 26 października 2016 przez matteo.web

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>';
}

 ?>

 

1 odpowiedź

0 głosów
odpowiedź 26 października 2016 przez PiotrBajer Mądrala (5,300 p.)
Cześć!

Dwa razy deklarujesz funkcję "redirect_wplogin_options" w 31 i 35 linijce. Ta z 31 chyba powinna nazywać się "redirect_wplogin_menu"
komentarz 26 października 2016 przez matteo.web Użytkownik (700 p.)
Hej! Dzięki.

Sprawdzę to i dam odpowiedź czy problem się rozwiązał.

Podobne pytania

0 głosów
2 odpowiedzi 193 wizyt
pytanie zadane 22 marca 2016 w PHP przez Moonmaker05 Początkujący (410 p.)
0 głosów
1 odpowiedź 340 wizyt
0 głosów
1 odpowiedź 1,648 wizyt

92,454 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...