Php Can';t在wordpress环境中以编程方式创建用户
我是wordpress的新手,我期待着通过前端注册页面添加用户,我现在真的很困惑,因为我无法让这个代码工作,它只是无法创建用户 代码如下:Php Can';t在wordpress环境中以编程方式创建用户,php,mysql,wordpress,Php,Mysql,Wordpress,我是wordpress的新手,我期待着通过前端注册页面添加用户,我现在真的很困惑,因为我无法让这个代码工作,它只是无法创建用户 代码如下: <?php /* Template Name: Register */ get_header(); ?> <?php if(isset($_POST['submit'])){ $email1 = $_POST['email1']; $email2 = $_POST['email2']; $pass1 = $
<?php
/*
Template Name: Register
*/
get_header(); ?>
<?php
if(isset($_POST['submit'])){
$email1 = $_POST['email1'];
$email2 = $_POST['email2'];
$pass1 = $_POST['pass1'];
$pass2 = $_POST['pass2'];
if($email1 == $email2){
if($pass1 == $pass2)
{
if( null == username_exists( $email_address ) ) {
$user_login = $_POST['uname'];
$user_email = $_POST['email1'];
$user_pass = $_POST['pass1'];
$user_id = wp_create_user( $user_login, $user_pass, $user_email );
wp_update_user(
array(
'ID' => $user_id,
'nickname' => $email_address
)
);
$user = new WP_User( $user_id );
$user->set_role( 'contributor' );
}
}else{
echo "Sorry, your passwords do not match <br/>";
}
}else{
echo "Sorry your Emails dont match <br/>";
exit();
}
}else{
$form = <<<EOT
<form action="" method="POST">
First Name: <input type="text" name="name"/> <br/>
Last Name: <input type="text" name="lname"/> <br/>
Username: <input type="text" name="uname"/> <br/>
Email: <input type="text" nam="email1"/> <br/>
Confim Email: <input type="text" name="email2"/> <br/>
Password: <input type="password" name="pass1"/> <br/>
Confirm Password: <input type="password" name="pass2"/> <br/>
<input type="submit" value="Register" name="submit"/>
</form>
EOT;
echo $form;
}
?>
<?php get_footer(); ?>
谢谢
不确定是否重要,但我选择了WPP作为前缀您从未定义过
$email\u地址
:
$email1 = $_POST['email1'];
$email2 = $_POST['email2'];
所以当你这样做的时候:
if( null == username_exists( $email_address ) ) {
实际上,您正在执行username\u exists(null)
,并始终返回“是的,该用户不存在”。检查您的功能
如果(null==username\u exists($email\u address))/$email\u addrress应为$email1或$email2
但是我建议使用wp\u insert\u用户,而不是wp\u create\u用户
<?php
/*
Template Name: Register
*/
get_header(); ?>
<?php
if(isset($_POST['submit'])){
$email1 = $_POST['email1'];
$email2 = $_POST['email2'];
$pass1 = $_POST['pass1'];
$pass2 = $_POST['pass2'];
if($email1 == $email2){
if($pass1 == $pass2)
{
if( null == username_exists( $email1) ) {
$user_login = $_POST['uname'];
$user_email = $_POST['email1'];
$user_pass = $_POST['pass1'];
$userdata = array(
'user_login' => $user_login ,
'user_pass'=> $user_pass,
'user_email'=>$user_email
);
$user_id = wp_insert_user( $userdata ) ;
wp_update_user(
array(
'ID' => $user_id,
'nickname' => $email_address
)
);
$user = new WP_User( $user_id );
$user->set_role( 'contributor' );
}
}else{
echo "Sorry, your passwords do not match <br/>";
}
}else{
echo "Sorry your Emails dont match <br/>";
exit();
}
}else{
$form = <<<EOT
<form action="" method="POST">
First Name: <input type="text" name="name"/> <br/>
Last Name: <input type="text" name="lname"/> <br/>
Username: <input type="text" name="uname"/> <br/>
Email: <input type="text" nam="email1"/> <br/>
Confim Email: <input type="text" name="email2"/> <br/>
Password: <input type="password" name="pass1"/> <br/>
Confirm Password: <input type="password" name="pass2"/> <br/>
<input type="submit" value="Register" name="submit"/>
</form>
EOT;
echo $form;
}
?>
<?php get_footer(); ?>
这可能对你有用!!祝你好运它仍然不起作用,它一直将我发送到“未找到页面”,只有当我按“提交”时,没有覆盖任何字段,它才会将我发送到我所做的任何操作=“我假设你想在注册后将用户重定向到你的主页。”。。因此,您可以在关闭..之后使用wp_redirect()。。。。。否则{echo“对不起,您的电子邮件不匹配…”;exit();}wp_重定向('your_site_url');}。。。。。。。。