如果我使用饼图注册插件,如何做自动登录?

时间:2012-10-20 13:36:22

标签: wordpress wordpress-plugin

我在wordpress上有网站,我使用饼图注册为用户密码添加字段 现在我想做自动登录,但我不知道如何做到这一点。 有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

注册后是否可以自动登录:

  1. 转到pie-registration / pie-register.php 在函数showForm()搜索
  2. if(isset($ _ POST ['success'])&& $ _POST ['success']!=“”)

    并制作

    if(isset($_POST['success']) && $_POST['success'] != ""){
    
                $output .= '<p class="piereg_message">'.apply_filters('piereg_messages',__($_POST['success'],"piereg")).'</p>';
    
                $this->afterRegisterPage();
    
            }
    

    2. after_LoginPage()添加后的函数

    function afterRegisterPage()
    
        {
    
            $option = get_option("pie_register_2");
    
            $this->checkAutoLogin();
    
            if(isset($_GET['redirect_to']) and $_GET['redirect_to'] != ""){
    
                wp_redirect($_GET['redirect_to']);
    
            }elseif($option['after_login'] > 0)
    
            {
    
                wp_safe_redirect(get_permalink($option['after_login']));
    
            }else{
    
                wp_redirect(site_url());
    
            }
    
            exit;
    
        }
    

    3. after function checkLogin()添加

    function checkAutoLogin()

    {
    
        global $errors, $wp_session;
    
        $errors = new WP_Error();
    
        $option = get_option('pie_register_2');
    
        if(empty($_POST['username']) || empty($_POST['password']))
    
        {
    
            $errors->add('login-error',apply_filters("piereg_Invalid_username_or_password",__('Invalid username or password.','piereg')));
    
        }
    
        else
    
        {
    
            $error_found = 0;
    
            if($option['capthca_in_login'] == 1){
    
                $settings       =  get_option("pie_register_2");
    
                $privatekey     = $settings['captcha_private'] ;
    
                require_once(PIEREG_DIR_NAME.'/recaptchalib.php');
    
    
    
                $resp = recaptcha_check_answer ($privatekey,
    
                                                $_SERVER["REMOTE_ADDR"],
    
                                                $_POST["recaptcha_challenge_field"],
    
                                                $_POST["recaptcha_response_field"]);
    
    
    
                if (!$resp->is_valid) {
    
                    $errors->add('login-error',apply_filters("Invalid_Security_Code",__('Invalid Security Code','piereg')));
    
                    $error_found++;
    
                }
    
            }
    
            elseif($option['capthca_in_login'] == 2){
    
    
    
                if(isset($_POST['piereg_math_captcha_login']))//Login form in Page
    
                {
    
                    $piereg_cookie_array =  $_COOKIE['piereg_math_captcha_Login_form'];
    
                    $piereg_cookie_array = explode(",",$piereg_cookie_array);
    
                    $cookie_result1 = (intval(base64_decode($piereg_cookie_array[0])) - 12);
    
                    $cookie_result2 = (intval(base64_decode($piereg_cookie_array[1])) - 786);
    
                    $cookie_result3 = (intval(base64_decode($piereg_cookie_array[2])) + 5);
    
                    if( ($cookie_result1 == $cookie_result2) && ($cookie_result3 == $_POST['piereg_math_captcha_login'])){
    
                    }
    
                    else{
    
                        $errors->add('login-error',apply_filters("Invalid_Security_Code",__('Invalid Security Code','piereg')));
    
                        $error_found++;
    
                    }
    
                }
    
                elseif(isset($_POST['piereg_math_captcha_login_widget']))//Login form in widget
    
                {
    
                    $piereg_cookie_array =  $_COOKIE['piereg_math_captcha_Login_form_widget'];
    
                    $piereg_cookie_array = explode(",",$piereg_cookie_array);
    
                    $cookie_result1 = (intval(base64_decode($piereg_cookie_array[0])) - 12);
    
                    $cookie_result2 = (intval(base64_decode($piereg_cookie_array[1])) - 786);
    
                    $cookie_result3 = (intval(base64_decode($piereg_cookie_array[2])) + 5);
    
                    if( ($cookie_result1 == $cookie_result2) && ($cookie_result3 == $_POST['piereg_math_captcha_login_widget'])){
    
                    }
    
                    else{
    
                        $errors->add('login-error',apply_filters("Invalid_Security_Code",__('Invalid Security Code','piereg')));
    
                        $error_found++;
    
                    }
    
                }else{
    
                    $errors->add('login-error',apply_filters("Invalid_Security_Code",__('Invalid Security Code','piereg')));
    
                    $error_found++;
    
                }
    
            }
    
            if($error_found == 0){
    
                $creds = array();
    
                $creds['user_login']    = $_POST['username'];
    
                $creds['user_password'] = $_POST['password'];
    
                $creds['remember']      = (isset($_POST['rememberme']))?$_POST['rememberme']:"";
    
                if(isset($_POST['social_site']) and $_POST['social_site'] == "true" )
    
                {
    
                    require_once( ABSPATH . WPINC . '/user.php' );
    
                    require_once( ABSPATH . WPINC . '/pluggable.php' );
    
                    wp_set_auth_cookie($_POST['user_id_social_site']);
    
                    $user = get_userdata($_POST['user_id_social_site']);
    
                }
    
                else
    
                {
    
                    $user = wp_signon( $creds, false );
    
                }
    
                //$this->check_user_activation();
    
                if ( is_wp_error($user))
    
                {
    
                    $user_login_error = $user->get_error_message();
    
                    if(strpos(strip_tags($user_login_error),'Invalid username',5) > 6)
    
                    {
    
                        $user_login_error = apply_filters('pie_invalid_username_password_msg_txt','<strong>'.ucwords(__("error","piereg")).'</strong>: '.__("Invalid username","piereg").'. <a href="'.$this->pie_lostpassword_url().'" title="'.__("Password Lost and Found","piereg").'">'.__("Lost your password?","piereg").'</a>');
    
                    }else if(strpos(strip_tags($user_login_error),'password you entered',9) > 10)
    
                    {
    
                        $user_login_error = apply_filters('pie_invalid_user_password_msg_txt','<strong>'.ucwords(__("error","piereg")).'</strong>: '.__("The password you entered for the username","piereg").' <strong>'.$_POST['username'].'</strong> '.__("is incorrect","piereg").'. <a href="'.$this->pie_lostpassword_url().'" title="'.__("Password Lost and Found","piereg").'">'.__("Lost your password?","piereg").'</a>');
    
                    }
    
                    $errors->add('login-error',apply_filters("piereg_login_error",$user_login_error));
    
                }
    
                else
    
                {
    
    
    
                    if(in_array("administrator",(array)$user->roles)){
    
    
    
                        do_action("piereg_admin_login_before_redirect_hook",$user);
    
    
    
                        if(isset($_GET['redirect_to']) and $_GET['redirect_to'] != ""){
    
                            wp_redirect($_GET['redirect_to']);
    
                            exit;
    
                        }
    
    
    
                        wp_safe_redirect(admin_url());
    
                        exit;
    
                    }
    
                    else
    
                    {
    
                        $active = get_user_meta($user->ID,"active",true);
    
                        //Delete User after grace Period
    
                        if($active == "0")//If not active
    
                        {
    
                            $delete_user = true;
    
                            if($this->deleteUsers($user->ID,$user->user_email,$user->user_registered)){
    
                                $errors->add("login-error",apply_filters("piereg_your_account_has_no_longer_exist",__("Your account has no longer exist.")));
    
                                $delete_user = false;
    
                            }
    
                            if($delete_user){
    
                                wp_logout();
    
                                $errors->add('login-error',apply_filters("piereg_your_account_is_not_activated",__('Your account is not activated!.','piereg')));
    
                            }
    
                        }elseif(empty($active))
    
                        {
    
                            //apply_filters('get_avatar',array($this,'custom_avatars'),$user->ID,"29");
    
                            do_action("piereg_user_login_before_redirect_hook",$user);
    
                            $this->afterLoginPage();
    
                            exit;
    
                        }
    
                        else{
    
                            //apply_filters('get_avatar',array($this,'custom_avatars'),$user->ID,"29");
    
                            do_action("piereg_user_login_before_redirect_hook",$user);
    
                            $this->afterLoginPage();
    
                            exit;
    
                        }
    
                    }
    
                }
    
            }
    
        }
    
    }
    

    我希望能成为你的帮助,你了解我。