customisation de la partie “lostpassword” (Créer un compte)

  • Statut : non résolu
7 sujets de 1 à 7 (sur un total de 7)
  • Auteur
    Messages
  • #548323
    Timama
    Participant
    Chevalier WordPress
    284 contributions

    Bonjour,

    Ma configuration WP actuelle
    – Version de WordPress : 4.1.1
    – Version de PHP/MySQL :
    – Thème utilisé : le mien
    – Extensions en place :
    – Nom de l’hebergeur : STRATO
    – Adresse du site :

    Problème(s) rencontré(s) :

    Bonjour,

    J’ai créé un formulaire de connexion personnalisé.
    Dans ce formulaire, j’utilise les messages d’erreurs de wordpress si le formulaire est mal rempli

    if (!empty($_POST)){
    		$creds = array();
    		$creds[‘user_login’] = $_POST[‘user_login’];
    		$creds[‘user_password’] =  $_POST[‘user_password’];
    		$creds[‘remember’] = true;
    		$user = wp_signon($creds, false);
    					
    		if (is_wp_error($user)){
    			$error = $user->get_error_message();
    		} else {
    			//redirection vers la page
    			header(‘location:mitgliederbereich’);
    		}
    	
    	}

    Dans ce formulaire, il y a un lien qui apparaît dans les message d’erreur, au cas où si le mot de passe est oublié.
    J’ai intercepté cette page pour la diriger vers la mienne (la même en customisée) grâce au code suivant dans functions.php

    /********** Interception de la page http://club-d-affaires.de/wp-login.php?action=lostpassword  ********/
    add_filter(‘lostpassword_url’, ‘wp_hijack_lostpassword’);
    function wp_hijack_lostpassword() {
        return home_url(‘/lostpassword/’);
    }

    J’ai donc ma page, qui me demande d’entrer le login ou l’adresse Email, pour m’envoyer vers la page de génération du nouveau mot de passe.

    Mais voilà, j’ai quelques problèmes. Je créé moi même mes message d’erreur car j’ai 2 langues et je n’arrive pas à customiser les messages d’erreur de wordpress.

    PB 1: j’ai mon message d’erreur (dans le cas de login/email vide, soit $errorlost) s’affiche dès le début, dès la conexion à cette page.

    PB2: si mon login est faux, le message $errorlost ne s’affiche pas. Je ne sais pas si le résultat de
    $user = username_exists($user_login);
    peut être testé avec is_wp_error($user) ?

    PB3 : si mon login est bon, rien ne se passe….je n’arrive pas à acceder à “wp-login.php?checkemail=confirm” après validation

    voici le code

    <?php  
    //traitement des erreurs de connexion
    $errorlost = false;
    $errorlost2 = false;
    	if (empty($_POST['user_login'])){
    		//redirection vers la page
    			$errorlost = true;
    			//header('location:lostpassword');
    	}
    	elseif (!empty($_POST))
    	{
    		$user_login = $_POST['user_login'];
    		echo 'user_login =' .$user_login; // renvoi bien le login
    		$user = username_exists($user_login);
    		echo 'user =' .$user; // renvoi bien l'ID du user si login exist
    	  if (is_wp_error($user))
    	  {
    			$errorlost2 = true;
    		} 
    		else 
    		{
    			//redirection vers la page de modification de mot de passe 
    			// http://club-d-affaires.de/wp-login.php?checkemail=confirm
    		}
    	
    	}
    
    ?>
    
    <div id="check-lostpassord" >
    	<div class="titre">
        	<h1> <img src="<?php echo $cheminsite; ?>/images/lion.png” alt=”lion”> <?php echo $lang['TITRE-CONNEXION']; ?>  	</h1>
    		<div class="titre-underline"> </div>
       </div> 
       
       <div class="connexion-lostpassword"> 
    	<div id="box-lostpassword">
                <p class="message"><?php echo $lang['lostpassword_message']; ?></p>	
                </br>
                    <div class="error">
                        <p id="lostpasswordform-erreur">
                            <?php 
                            if ($errorlost):
                                echo $lang['lostpassword_error']; 
                            endif
                            ?>
                        </p>
                        <p id="lostpasswordform-erreur2">
                            <?php 
                            if ($errorlost2):
    						echo 'TEST';
                                echo $lang['lostpassword_error2']; 
                            endif
                            ?>
                        </p> 
    
                    </div>
    	
                <!-- http://club-d-affaires.de/wp-login.php?action=lostpassword -->
                <form name="lostpasswordform" class="lostpasswordform" action="" method="post" id="lostpasswordform" >
                
            	<br class="clear"></br>
              <p id="text-form">
                <label for="user_login" ><?php echo $lang['lostpassword_login']; ?>*:<br />
                <br class="clear"></br>
                <input type="text" name="user_login" id="user_login" class="input" value="" size="20" /></label>
    		  </p>
                <br class="clear"></br>
                <br class="clear"></br>
    		  <input type="hidden" name="redirect_to" value="" />
    	<p class="submit"><input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php echo $lang['lostpassword_envoyer']; ?>” /></p>
    		</form>
                
    
           </div> <!-- fin box-connexion -->
        </div> <!-- fin connexion -->
    </div> <!-- fin connexion -->

    Si vous avez des conseils à me donner, si vous avez eu à customiser ce passage de génération de mot de passe, je vous remercie de votre aide.

    Timama

    #999527
    Timama
    Participant
    Chevalier WordPress
    284 contributions

    bonjour !

    okay, j’aurai pas du bosser tard hier soir, j’ai fait des bêtises dans mes codes.
    Alors, le PB 1 et 2 sont réglés.

    voici les codes

    
    
    <div id="check-lostpassord">
    	<div class="titre">
        	<h1> <img src="/images/lion.png” alt=”lion”>   	</h1>
    		<div class="titre-underline"> </div>
       </div> 
       
       <div class="connexion-lostpassword"> 
    	<div id="box-lostpassword">
                <p class="message"></p>	
                </br>
                    <div class="error">
                        <p id="lostpasswordform-erreur">
                            
                        </p>
                        <p id="lostpasswordform-erreur2">
                            
                        </p> 
    
                    </div>
    	
                <!-- http://club-d-affaires.de/wp-login.php?action=lostpassword -->
                <form name="lostpasswordform" class="lostpasswordform" action="" method="post" id="lostpasswordform">
                
            	<br class="clear"></br>
              <p id="text-form">
                <label for="user_login">*:<br />
                <br class="clear"></br>
                </label>
    		  </p>
                <br class="clear"></br>
                <br class="clear"></br>
    		  
    	<p class="submit"><input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="” /></p>
    		</form>
                
    
           </div> <!-- fin box-connexion -->
        </div> <!-- fin connexion -->
    </div> <!-- fin connexion -->

    Le truc que je n’arrive pas à faire, c’est quand je valide le formulaire, il n’y a pas de redirection vers la page que je veux (je veux directement aller vers http://club-d-affaires.de/wp-login.php?action=rp, que j’intercepterais aussi).

    A savoir que $user affiche bien l’id si la personne tape un bon login. Et donc là, après validation, il n’y a pas de redirection…..

    j’ai essayé différents chemin bien sûr…. sans succès… si vous avez un conseil pour cette redirection, merci 😉

    Timama

    #999528
    Timama
    Participant
    Chevalier WordPress
    284 contributions

    bon, je ne suis pas sûre que cela soit bien de zapper l’envoi d’Email avec le lien, qui amène à la page de modification du mot de passe : un avis sur ça ? niveau sécurité ??

    Donc il faut que quand mon login est bon, que j’envoi un Email avec un lien amenant à la page de modification du mot de passe (que j’intercepterais alors).

    Mais comment trouvé ce lien à envoyer ? avez vous une idée?

    merci pour votre aide

    #999529
    Timama
    Participant
    Chevalier WordPress
    284 contributions

    alors, j’avance j’avance mais je recule en même temps 😉

    Il me faut donc :
    1- message d’erreur si login faux ou vide
    2- envoie de l’Email de confirmation pour modification mot de passe

    Alors, voici le code qui fonctionne, mais qui fait soit le point 1 ou soit le point 2, mais pas les 2 en même temps

    
    
    <div id="check-lostpassord">
    	<div class="titre">
        	<h1> <img src="/images/lion.png” alt=”lion”>   	</h1>
    		<div class="titre-underline"> </div>
       </div> 
       
       <div class="connexion-lostpassword"> 
    	<div id="box-lostpassword">
                <p class="message"></p>	
                </br>
                    <div class="error">
                        <p id="lostpasswordform-erreur2">
                            
                        </p> 
    
                    </div>
    	
                <!-- http://club-d-affaires.de/wp-login.php?action=lostpassword -->
                <form name="lostpasswordform" class="lostpasswordform" action="” method=”post” id=”lostpasswordform” >
                
            <br class="clear"></br>
              <p id="text-form">
                <label for="user_login">*:<br />
                <br class="clear"></br>
                </label>
    		  </p>
                <br class="clear"></br>
                <br class="clear"></br>
               
    			<p class="submit">
        		<input type="submit" name="user-submit" id="wp-submit" class="user-submit" value="” tabindex=”1002″/>
                 </br></br> <p> </p> 
       			<a href="connexion/?langue=” >
        		<h2>  </h2>	</a>		
    			<input type="hidden" name="redirect_to" value="?reset=true” />
    			
                </p>
    		</form>
                
    
           </div> <!-- fin box-connexion -->
        </div> <!-- fin connexion -->
    </div> <!-- fin connexion -->

    et tout se passe à ce niveau là, en début de

    :

    Le point 1( message d’erreur si login faux ou vide) fonctionne si j’ai :

    Le point 2 (envoie de l’Email de confirmation pour modification mot de passe) fonction si j’ai
    <form name="lostpasswordform" class="lostpasswordform" action="” method=”post” id=”lostpasswordform” >

    Avez-vous une idée pour avoir les 2 en même temps ?

    merci pour votre aide

    Timama

    #999530
    Timama
    Participant
    Chevalier WordPress
    284 contributions

    est ce que vous avez une idée pourquoi si je mets
    <form name="lostpasswordform" class="lostpasswordform" action="” method=”post” id=”lostpasswordform” >

    si le login est bon, ok ça marche mais si le login est vide ou faux, cela amène à la page
    http://club-d-affaires.de/de/wp-login.php?action=lostpassword

    alors que j’ai fais un filtre
    add_filter(‘lostpassword_url’, ‘wp_hijack_lostpassword’);
    function wp_hijack_lostpassword() {
    return home_url(‘/lostpassword/’);
    }

    pourquoi le filtre ne fonctionne pas dans ce cas là ?

    #999531
    Timama
    Participant
    Chevalier WordPress
    284 contributions

    si je mets

    action=””

    cela m’enmène à http://club-d-affaires.de/wp-login.p … stpassword (sans le /de/ ) mais toujoru spas de redirection qio se fait alors que j’ai mis un filtre…

    avez vous une idée pourquoi ?

    #999532
    Timama
    Participant
    Chevalier WordPress
    284 contributions

    personne pour m’aider ?

    Même un tout petit peu ?

    je cherche encore :search:

7 sujets de 1 à 7 (sur un total de 7)
  • Le forum ‘Utilisation spécifique de WordPress’ est fermé à de nouveaux sujets et réponses.