注册后自动登录时出现问题

时间:2020-06-23 作者:user190460

我创建了一个registration form 我自己,现在我需要auto login after registration 但我发现以下错误属于plugin. 我知道我不应该在这里谈论插件,但我的问题是:why too few arguments? 现在我想注册一切都好了。

#error

Fatal error: Uncaught ArgumentCountError: Too few arguments to function rcp_log_ip_and_last_login_date(), 1 passed in C:\\xampp\\htdocs\\endengsms\\wp-includes\\class-wp-hook.php on line 287 and exactly 2 expected in C:\\xampp\\htdocs\\endengsms\\wp-content\\plugins\\restrict-content-pro\\includes\\login-functions.php:318 Stack trace: #0 C:\\xampp\\htdocs\\endengsms\\wp-includes\\class-wp-hook.php(287): rcp_log_ip_and_last_login_date(\'01234567894\') #1 C:\\xampp\\htdocs\\endengsms\\wp-includes\\class-wp-hook.php(311): WP_Hook->apply_filters(\'\', Array) #2 C:\\xampp\\htdocs\\endengsms\\wp-includes\\plugin.php(478): WP_Hook->do_action(Array) #3 C:\\xampp\\htdocs\\endengsms\\wp-content\\themes\\endengsms\\functions.php(309): do_action(\'wp_login\', \'01234567894\') #4 C:\\xampp\\htdocs\\endengsms\\wp-includes\\class-wp-hook.php(287): auto_login_new_user(25) #5 C:\\xampp\\htdocs\\endengsms\\wp-includes\\class-wp-hook.php(311): WP_Hook->apply_filters(NULL, Array) #6 C:\\xampp\\htdocs\\endengsms\\wp-includes\\plugin.php(478): WP_Hook->do_action(Array) #7 C:\\xampp\\htdocs\\endengsms\\wp in C:\\xampp\\htdocs\\endengsms\\wp-content\\plugins\\restrict-content-pro\\includes\\login-functions.php on line 318  

#my code in registration form

$has_error = false;
$has_success = false;
$message = array();
    
if(isset($_POST[\'SubmitSignUpEE\'])){
    if(! isset($_POST[\'security\']) || ! wp_verify_nonce($_POST[\'security\'],\'mysignup-nonce\')){
        print(\'<p class="kharabkarinakon">Don\'t sabotage</p>\');
    }else{
            
        $firstname = sanitize_text_field($_POST[\'FirstnameSignUpEE\']);
        $lastname = sanitize_text_field($_POST[\'LastnameSignUpEE\']);
        $usermobile = sanitize_text_field($_POST[\'UserMobileSignUpEE\']);
        $repeatusermobile = sanitize_text_field($_POST[\'RepeatUserMobileSignUpEE\']);
        $captchasecuritysig = sanitize_text_field($_POST[\'signupsecurityEE\']);

            
        if($firstname == \'\' || $lastname == \'\' || $usermobile == \'\' || $repeatusermobile == \'\'){
            $has_error = true;
            $message[] = "please fill all fields";
        }
        
        elseif (strtolower($_SESSION[\'captcha\'][\'code\']) <> strtolower($captchasecuritysig)) {

                $has_error = true;
                $message[] = "incorrect captcha";
        }
        else{
            $info = array(
                //\'user_email\'  => $email,
                \'user_login\'    => $usermobile,
                \'user_pass\'     => $usermobile,
                \'first_name\'    => $firstname,
                \'last_name\'     => $lastname,
                \'display_name\'  => $firstname.\' \'.$lastname,
            );
            $newUserID = wp_insert_user($info);
            
            if (is_wp_error($newUserID)) {

                $has_error = true;
                $message[] = "there is an error";

            } else {
                
                
                $site_url = get_site_url()."/myloginpage/";
                
                $has_success = true;
                $message[] = "Successful registration";
                
                
                wp_set_current_user( $newUserID, $usermobile );
                wp_set_auth_cookie( $newUserID );
                do_action( \'wp_login\', $usermobile );
                    
                
                $redirecturl = site_url(\'/?signup=true&login=too\');
                wp_redirect( $redirecturl );
                exit;

            }
            
            global $wpdb;
            $key = $wpdb->get_row($wpdb->prepare("SELECT ID,user_activation_key FROM $wpdb->users WHERE user_login = %s",$usermobile));
            add_user_meta($key->ID,\'usermobilenum\',$usermobile);
            
            

        }
    }
}

1 个回复
SO网友:Sh.Dehnavi

you should do so:

...} else {
                
                
                $site_url = get_site_url()."/myloginpage/";
                
                $has_success = true;
                $message[] = "Successful registration";
                
                global $wpdb;
                $key = $wpdb->get_row($wpdb->prepare("SELECT ID,user_activation_key FROM $wpdb->users WHERE user_login = %s",$usermobile));
                add_user_meta($key->ID,\'usermobilenum\',$usermobile);

                wp_set_current_user( $newUserID, $usermobile );
                wp_set_auth_cookie( $newUserID );
                //do_action( \'wp_login\', $usermobile );
                    
                
                $redirecturl = site_url(\'/?signup=true&login=too\');
                wp_redirect( $redirecturl );
                exit;

            }

        }
    }
}

相关推荐

Add content in wp login page

我已经根据我的自定义主题自定义了我的wp登录页面。我想在我的wp登录页面中添加一个内容框,如果用户没有在网站上注册帐户,该内容框会邀请用户浏览我的自定义注册页面。我搜索了很多,但对我来说没有任何选择,我不想优先使用插件。如果您知道如何在wp登录页面中添加内容,请提前感谢。