Php Can';t在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 = $

我是wordpress的新手,我期待着通过前端注册页面添加用户,我现在真的很困惑,因为我无法让这个代码工作,它只是无法创建用户

代码如下:

<?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');}。。。。。。。。