Informacje o nowych artykułach oraz akcjach edukacyjnych prosto na Twojej skrzynce e-mail!

Formularz rejestracji nowych użytkowników bez użycia pluginu dla WordPressa

Istnieje bardzo wiele wtyczek dla WordPress’a umożliwiających dodanie formularza rejestracji nowych użytkowników bezpośrednio do dowolnego szablonu. Pamiętajcie jednak, że odsyłanie internautów do skryptu WP-Admin nie jest zbyt profesjonalnym rozwiązaniem więc na pewno dobrze by było pokusić się o znacznie lepsze wykonanie tego jakże kluczowego elementu portalu internetowego. Poniżej znajduje się kod strony wyświetlającej formularz umożliwiający rejestrację nowych użytkowników, która w naszej witrynie wygląda i działa jak zwykła niczym nie wyróżniająca się podstrona.

Cały skrypt należy zapisać w dowolnym pliku o dowolnej nazwie z rozszerzeniem PHP, a następnie umieścić w katalogu (znajdującym się na serwerze): /wp-content/themes/nazwa_szablonu/page-templates.

Kolejnym krokiem jest dodanie nowej strony w Kokpicie WordPress’a oraz wybranie z menu bocznego szablonu o nazwie: Custom WordPress Signup Page.

Stronie tej możemy również nadać tytuł np. Załóż konto, Zarejestruj… Natomiast tekst, który wpiszecie w edytorze nie zostanie wyświetlony.

<?php  
/* 
	Template Name: Custom WordPress Signup Page 
*/  
    
require_once(ABSPATH . WPINC . '/registration.php');  
global $wpdb, $user_ID;  

//Check whether the user is already logged in  
if (!$user_ID) {        
        
	if($_POST) {  
		//We shall SQL escape all inputs  
        $username = $wpdb->escape($_REQUEST['username']);  
        
		if(empty($username)) {  
			$error = "Musisz podać swój login.";   
        }  
		else {
			$email = $wpdb->escape($_REQUEST['email']);  
            
			if(!preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/", $email)) {  
				$error = "Wprowadź poprawny adres e-mail.";  
			}  
			else {
				$random_password = wp_generate_password( 12, false );  
				$status = wp_create_user( $username, $random_password, $email );  
			    
				if ( is_wp_error($status) )  
					$error = "Podaj inny adres e-mail.";  
				else {  		         
					$headers = 'From: www.ADRES_TWOJEJ_STRONY.pl\r\n';  
					$subject = "Rejestracja";  
					$msg = "Rejestracja przebiegła pomyślnie.\nTwój login:\nLogin: $username\nHasło: $random_password\nAby się zalgować udaj się pod ten adres:\nwww.ADRES_TWOJEJ_STRONY_DO_FORUMULARZA_LOGOWANIA.pl";  
			
					wp_mail( $email, $subject, $msg, $headers );  
					$error = '<span class="success">Prosimy sprawdzić pocztę.</span>';  
				} 
			}
		}   
	}  

	get_header(); ?>  
    
    <div id="primary" class="site-content">
		<div id="content" role="main" > 
			<?php 
			
			if(get_option('users_can_register')) {   
				//Check whether user registration is enabled by the administrator ?>  
				<div class="login"> <h1><?php the_title(); ?></h1>
					<div class="information">Hasło zostanie wysłane na wskazany adres E-mail. Aby otworzyć formularz logowania kliknij w <a href="ADRES_TWOJEJ_STRONY_DO_FORMULARZA_LOGOWANIA">ten link</a>.</div>
					<span class="error"><?php echo $error; ?></span> <!-- To hold validation results -->  
   
					<form id="wp_singup_form" action="" method="post">  
						<label>Login:</label> 
						<input type="text" name="username" class="text" value="" />

						<label>Email:</label> <input type="text" name="email" class="text" value="" />  
						<input  id="submitbtn" name="submit" value="Załóż konto" type="submit" />
					</form>
				</div>
			<?php } 
			else 
				echo "Możliwość rejestracji nowych użytkowników została zablokowana. Spróbuj ponownie później."; ?>  
		</div>  
    </div>  
    
	<?php 
	get_sidebar();
    get_footer(); 
}  
else {  
	wp_redirect( home_url() ); exit;  
} 
?>

Powyższy kod został opracowany na podstawie artykułu: http://www.tutorialstag.com/create-custom-wordpress-registration-page.html.

Spodobało się?

Jeśli tak, to zarejestruj się do newslettera aby otrzymywać informacje nowych artykułach oraz akcjach edukacyjnych. Gwarantuję 100% satysfakcji i żadnego spamowania!

, , , ,

Dodaj komentarz

Komentarze (20)

  • super, tego szukałem, dzięki :)

  • Jakub Spoko pisze:

    Witam
    U mnie nie działa. Zrobiłem jak napisałeś. Utworzyłem nawet link w menu do strony. Strona jest pusta. Na liście szablonów się pokazała ale to wszystko . W edytorze tekstowym powinno się coś pokazać? Stronka się nie chce wyświetlić, wyświetla się strona startowa.
    Pozdrawiam

  • Dominik Olech pisze:

    Podoba mi się, tego szukałem

    ale…

    Baaaardzo bym prosił jeszcze, jeżeli to możliwe… nie działa automatyczne generowanie haseł dla uzytkownika, co oznacza, że każdemu nowemu musiałbym ręcznie wysyłać maila z nowym hasłem – a raczej ze zmiana hasła. Da sie to jakoś zmienić? Pozdrawiam!

    • lukas124 pisze:

      W kodzie zaimplementowana jest funkcja wysyłania emaili do nowych użytkowników z hasłami, czy na pewno na Twoim serwerze funkcja wp_mail() działa poprawnie?

      • Dominik pisze:

        Wszystko działa sprawnie. : )
        Czy da się stworzyć szablon logowania, który nie będzie przenosił użytkownika do panelu logowania administratora. Mam taki skrypt, działa ale niestety przenosi…

        Witaj, display_name; ?>.
        <a href="”>Wyloguj się

        <form method="post" action="”>

      • lukas124 pisze:

        W sensie, żeby po zalogowaniu nie przenosiło do panelu administracyjnego?

  • Pionier pisze:

    Witam, artykuł już długo wisi w sieci.
    Mam problem, po wklejeniu tego kodu i wybraniu custom theme jak kliknie się w stronę „zarejestruj się” to przerzuca mnie na stronę główną.

    • lukas124 pisze:

      Na stronę główną bloga? No a ten link prowadzi do strony z rejestracją?

      • Pionier pisze:

        Tak na stronę główną. Nie, nie mam ustawione żadnego przekierowania
        piorempisane.pl – Tutaj moja strona, zrobiłem zgodnie z instrukcją, wkleiłem dokładnie ten sam kod

      • lukas124 pisze:

        U mnie działa ok, sprawdź czy jesteś wylogowany jak w to klikasz ;)

      • Pionier pisze:

        Boże.. Tyle się z tym męczyłem :p
        Dziękuje bardzo! Jestem w szoku za Waszą reakcje.
        Pozdrawiam :)

      • Pionier pisze:

        W dodatku właśnie przed chwilą chciałem sprawdzić jak sprawa ma się z „zaloguj się”
        stworzyłem plik PHP przesłałem na serwer do danego themsa, wybrałem przy tworzeniu stony „custom wardpress login” i znowu kieruje po kliknięciu w zakładkę na strone główną :/

Odpowiedz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Pin It on Pinterest