Quantcast
Channel: Forum Pasja Informatyki - Najnowsze pytania
Viewing all articles
Browse latest Browse all 65225

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

$
0
0

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

 ?>

 


Viewing all articles
Browse latest Browse all 65225

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>