您好,我正在构建一个插件,该插件具有如下所述的功能
我的问题是,我已经为用户创建了注册表单,在那里,用户将能够成功注册,然后他们将收到一封电子邮件,然后他们将成为最终用户,我还在单独的数据库表中创建此条目。我还为管理员提供了批准用户的工具。但我的主要问题是,当用户在我创建的登录表单中输入详细信息时,如何为使用我的注册表单注册的用户设置会话,他们将被重定向到他们的仪表板。
为此,我要创建会话。但是我在互联网上找到的解决方案我都说要创建一个会话并设置它WP-login
. 因此,请以正确的方式指导我这是我的自定义登录表单的代码
<form method="POST" id="loginform" name="loginform">
<p>
<label for="user_login">Email<br>
<input type="text" value="" class="input" aria-describedby="login_error" id="user_email" name="log_mail"></label>
</p>
<p>
<label for="user_pass">Password<br>
<input type="password" value="" class="input" aria-describedby="login_error" id="user_pass" name="log_pwd"></label>
</p>
<p>
<label for="user_pass">User Role<br>
<select name="role_select" id="role_select">
<option value="" selected>Select</option>
<option name="simple_user" value="user">Simple User</option>
<option name="company_user" value="company_user">Company User</option>
</select></label>
</p>
<p class="forgetmenot"><label for="rememberme"><input type="checkbox" value="forever" id="rememberme" name="rememberme"> Remember Me</label></p>
<p class="submit">
<input type="submit" value="Log In" class="button button-primary button-large" id="wp-submit" name="custom_submit">
</p>
</form>
<?php
$c_user_mail = $_POST[\'log_mail\'];
$c_user_role = $_POST[\'role_select\'];
$c_user_pass = $_POST[\'log_pwd\'];
$c_enc_pass = md5($c_user_pass);
global $wpdb;
$wp_path =$_SERVER["DOCUMENT_ROOT"];
require_once($wp_path.\'/wp-config.php\');
$table_name = $wpdb->prefix . \'final_user_tabel\';
echo $sql = "SELECT * FROM " . $table_name . " WHERE (email = \'$c_user_mail\') AND (userrol = \'$c_user_role\')";
$pageposts = $wpdb->get_results($sql, ARRAY_N);
$pass_check = $pageposts[0][4];
$email_check = $pageposts[0][2];
if($c_enc_pass == $pass_check && $c_user_mail == $email_check){}
?>
SO网友:Oleg Gorilyk
//管理员
$user\\u id=1;require\\u once(ABSPATH。“wp includes/pluggable.php”);
如果(!is\\u admin()){
// DEMO USER
$user_id = 6;
}
if($current\\u user\\u id!=$user\\u id){$user=get\\u user\\u by(\'id\',$user\\u id);if($user){wp\\u set\\u current\\u user($user\\u id,$user->user\\u login);
// wp_set_auth_cookie($user_id);
if (wp_validate_auth_cookie(\'\', \'logged_in\') != $user_id)
{
wp_set_auth_cookie($user_id);
}
// do_action(\'wp_login\', $user->user_login);
}
}