0

WordPress にサイトがあり、ユーザー パスワードのフィールドを追加するために pie-registration を使用しています。
今、自動ログインをしたいのですが、これを行う方法がわかりません。誰でも私を助けることができますか?

4

1 に答える 1

0

登録後に自動ログインすることは可能ですか:

  1. 関数 showForm() 検索で pie-registration/pie-register.php に移動します

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 関数 afterLoginPage() 追加

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.関数 checkLogin() 追加後

関数 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;

                    }

                }

            }

        }

    }

}

私はあなたの助けになることを願っています、そしてあなたは私を理解してくれました。

于 2014-08-14T09:49:31.650 に答える