自定义“wp_login.php?action=lostpassword”并重置密码

时间:2015-03-28 作者:Timama

我有一份有效的定制登记表。然后,在这个表单上,我有“忘记密码”链接。这个不太好用。“忘记密码”表单的设计可以;输入登录名或电子邮件地址以接收电子邮件并更改密码。

我有两个案例:

如果登录为空或为假,如果登录正确,我有以下代码:

//traitement des erreurs de connexion
$errorlost2 = false;
if ( !empty( $_POST ) ) {
    $user_login = $_POST[\'user_login\'];
    $user = username_exists( $user_login );
    echo \'user_login =\' .$user_login; // renvoi bien le login
    echo \'user =\' .$user; // renvoi bien l\'ID du user si login exist
    if ( $user == NULL ) {
        header( \'location:lostpassword\' );
        $errorlost2 = true;
    } else {
    }
}

    <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-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="<?php echo site_url(\'wp-login.php?action=lostpassword\', \'login_post\') ?>" 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>
           <?php do_action(\'login_form\', \'resetpass\'); ?>
            <p class="submit">
            <input type="submit" name="user-submit" id="wp-submit" class="user-submit" value="<?php echo $lang[\'lostpassword_envoyer\']; ?>" tabindex="1002"/>
            <?php $reset = $_GET[\'reset\']; if($reset == true) {?> </br></br> <p> <?php echo $lang[\'lostpassword_confirm\'];?></p> 
            <a href="<?php "http://".$_SERVER[\'HTTP_HOST\'].$_SERVER[\'REQUEST_URI\']?>connexion/?langue=<?php echo $langue; ?>" >
            <h2> <?php  echo $lang[\'lostpassword_connect\']; ?> </h2>    </a>        <?php } ?>
            <input type="hidden" name="redirect_to" value="<?php echo $_SERVER[\'REQUEST_URI\']; ?>?reset=true" />
            <input type="hidden" name="user-cookie" value="1" />
            </p>
        </form>

       </div> <!-- fin box-connexion -->
    </div> <!-- fin connexion -->
</div> <!-- fin connexion -->
问题出在<form> :

第1点-如果登录为false或empty,则错误消息在以下情况下有效:

<form name="lostpasswordform" class="lostpasswordform" action="" method="post" id="lostpasswordform">
第2点-发送电子邮件,其中包含修改密码的链接,如果我有:

<form name="lostpasswordform" class="lostpasswordform" action="<?php echo site_url(\'wp-login.php?action=lostpassword\', \'login_post\') ?>" method="post" id="lostpasswordform" >
Theaction="" 这就是问题所在。如何使点1和点2同时工作?

1 个回复
SO网友:Elton da Costa

试试看:

在用户在密码重置期间提交新密码之后但在实际设置新密码之前运行。

https://codex.wordpress.org/Plugin_API/Action_Reference/password_reset

结束

相关推荐

Admin Theme customization

我遵循wordpress codex网站上关于通过插件创建管理主题的说明。我激活了插件,但我的样式表没有包含在<head>.. 这是我的代码:add_action( \'admin_init\', \'kd_plugin_admin_init\' ); add_action( \'admin_menu\', \'kd_plugin_admin_menu\' ); function kd_plugin_admin_init() { /* Register