Login 注册用户后登录已停止工作

Login 注册用户后登录已停止工作,login,registration,wordpress,Login,Registration,Wordpress,我正在注册一个新用户,并使用do\u action('wp\u login',$user\u login)将其登录。在我最近更新WordPress之前,一切都很好。我查看了法典,其中说明wp登录已被wp\u signon()折旧。代码如下: 用户已创建,但未登录。您正在将$username传递给wp\u set\u current\u user(),但看起来您没有在任何地方定义它。不管怎么说,这个论点是可以选择的——我建议你别说了 您还在$userdata和$current用户上进行打印。我

我正在注册一个新用户,并使用
do\u action('wp\u login',$user\u login)
将其登录。在我最近更新WordPress之前,一切都很好。我查看了法典,其中说明
wp登录
已被
wp\u signon()
折旧。代码如下:




用户已创建,但未登录。

您正在将$username传递给wp\u set\u current\u user(),但看起来您没有在任何地方定义它。不管怎么说,这个论点是可以选择的——我建议你别说了


您还在$userdata和$current用户上进行打印。我认为它们也没有被设定。不要假设您的代码将在全局范围内运行——在代码中显式地将$current\u user设置为全局,或者(更好地)处理从wp\u set\u current\u user()返回的对象。

1)此代码来自何处?它是你的吗,来自法典,来自核心?2) 动作挂钩的代码在哪里?3) 如果有紧急情况,请雇佣一个人。几个月前我写了这段代码,当时正在工作。我不是专家,只是个新手,所以可能做错了什么。以前我使用wp_登录($username、$password、$deprecated),然后使用action将其挂起,但它停止了工作。在那之后,我努力在网上搜索,但什么都没用。
if ( isset( $_POST[ "submit" ] ) && wp_verify_nonce( $_POST[ 'smart_register_nonce' ], 'smart-register-nonce' ) ) 
{
    $licence_no     = $_POST[ "smart_user_licence" ];           
    $user_login     = $_POST[ "smart_user_login" ]; 
    $user_email     = $_POST[ "smart_user_email" ];
    $user_first     = $_POST[ "smart_user_first" ];
    $user_last      = $_POST[ "smart_user_last" ];
    $user_pass      = $_POST[ "smart_user_pass" ];
    $pass_confirm   = $_POST[ "smart_user_pass_confirm" ];

    // this is required for username checks
    require_once( ABSPATH . WPINC . '/registration.php' );
    // include the wordpress files necessary to run its functions
    include('../classpages/wp-config.php'); // this includes wp-settings.php, which includes wp-db.php, which makes the database connection
    include(ABSPATH . WPINC . '/pluggable-functions.php');

    if(username_exists( $user_login ) ) 
    {
        // Username already registered
        smart_errors()->add( 'username_unavailable', __( 'Username already taken' ) );
    }
    if(!validate_username( $user_login ) ) 
    {
        // invalid username
        smart_errors()->add( 'username_invalid', __( 'Invalid username' ) );
    }
    if( $user_login == '' ) 
    {
        // empty username
        smart_errors()->add( 'username_empty', __( 'Please enter a username' ) );
    }
    if(!is_email( $user_email ) ) 
    {
        //invalid email
        smart_errors()->add( 'email_invalid', __( 'Invalid email' ) );
    }
    if( email_exists( $user_email ) ) 
    {
        //Email address already registered
        smart_errors()->add( 'email_used', __( 'Email already registered' ) );
    }
    if( $user_pass == '' ) 
    {
        // passwords do not match
        smart_errors()->add( 'password_empty', __( 'Please enter a password' ) );
    }
    if( $user_pass != $pass_confirm ) 
    {
        // passwords do not match
        smart_errors()->add( 'password_mismatch', __( 'Passwords do not match' ) );
    }

    $errors = smart_errors()->get_error_messages();

    // only create the user in if there are no errors
    if( empty( $errors ) ) 
    {
        $new_user_id = wp_insert_user(array(
                'user_login'        => $user_login,
                'user_pass'         => $user_pass,
                'user_email'        => $user_email,
                'first_name'        => $user_first,
                'last_name'         => $user_last,
                'user_registered'   => date('Y-m-d H:i:s'),
                'role'              => 'author'
            )
        );

        // Create post object
        $my_post = array(
                  'post_title'    => $user_login,
                  'post_content'  => '',
                  'post_type'     => 'vet-profile',
                  'post_status'   => 'publish',
                  'post_author'   => $new_user_id,
                  'post_category' => array(8,39)
        );

        // Insert the post into the database
        wp_insert_post( $my_post );  

        if( $new_user_id ) 
        {
            // send an email to the admin alerting them of the registration
            wp_new_user_notification( $new_user_id );


            // Make sure user session has started
            $vsessionid = session_id();
            if ( empty( $vsessionid ) ) 
            {
                session_name('PHPSESSID'); 
                session_start();
            }

            // log the new user in
            wp_set_auth_cookie( $new_user_id, true );
            wp_set_current_user( $new_user_id, $user_login);    
            //do_action( 'wp_signon', $user_login );

            $creds = array();
            $creds['user_login'] = $user_login;
            $creds['user_password'] = $user_pass;
            $creds['remember'] = true;

            $user = wp_signon( $creds, false );

            if ( is_wp_error( $user ) ) 
            {
                $error = $user->get_error_message();
            } 
            else 
            {
                wp_set_current_user( $user->ID, $username );
                do_action('set_current_user');

                // send the newly created user to the home page after logging them in
                //$location = "http://example.com";
                //wp_safe_redirect( $location ); 
                //exit;
            }
            if ( $error ) 
            {
                echo $error; 
                print_r( $userdata ); 
                print_r( $current_user );
            }
        }
    }
}