使用Ajax自定义Wordpress wp_login_form()

时间:2018-07-11 08:14:54

标签: ajax wordpress

我有一个自定义的wp_login_form():

<?php
     if (!is_user_logged_in()) { // Display WordPress login form:
        $args = array(
            'redirect' => '/?page_id=502',
            'form_id' => 'loginform2',
            'label_log_in' => __('Login'),
            'label_username' => __(''),
            'label_password' => __(''),
            'id_username' => 'account1',
            'id_password' => 'password1',
            'id_remember' => 'rememberme',
            'id_submit' => 'login1',
            'remember' => false,
        );
        if ($registered) {
            $args['value_username'] = $user_login->user_login;
        }
        wp_login_form($args);
    } else {
        wp_loginout(home_url()); // Display "Log Out" link.
        echo " | ";
        wp_register('', ''); // Display "Site Admin" link.
    }
?>

这是我的表格。

<form name="loginform2" id="loginform2" action="url/wp-login.php" method="post" class="bebas">
    <p class="login-username">
        <label for="account1"></label>
        <input type="text" name="log" id="account1" class="input" value="" size="20" placeholder="E-MAIL">
    </p>
    <p class="login-password">
        <label for="password1"></label>
        <input type="password" name="pwd" id="password1" class="input" value="" size="20" placeholder="PASSWORT">
    </p>
    <p class="login-submit">
        <input type="submit" name="wp-submit" id="login1" class="button button-primary" value="Login">
        <input type="hidden" name="redirect_to" value="?page_id=502">
    </p>
</form>

现在,我已经实现了AJAX

<script>
    jQuery(document).ready(function(){
        jQuery("#login1").click(function() {
            jQuery('#message').hide().html('');
            var input_data = jQuery('#loginform2').serialize();
            var logUser = jQuery('#account1').val();
            var logPass = jQuery('#password1').val();

            if(logUser == '' && logPass != ''){ jQuery('#message').show().html('Your Username is empty!'); return false; }
            if(logPass == '' && logUser != ''){ jQuery('#message').show().html('Your Password is empty!'); return false; }
            if(logUser == '' && logPass == ''){ jQuery('#message').show().html('Your Username and Password is empty!'); return false; }
            jQuery.ajax({
                type: "POST",
                url: "<?php echo site_url('wp-login.php','login_post'); ?>",
                data: input_data,
                success: function(msg) {
                // login success. redirect users to some page.
                jQuery(location).attr('href', '<?php echo home_url(); ?>');
                },
                error: function(msg) {
                // login error.
                jQuery('#message').show();
                jQuery('#message').html("<?php _e('Your login  is not correct. Please try again.'); ?>");
                jQuery('#loading').hide();
                }
            });
            return false;
        });
    });
</script>

我的问题是我收到一条错误消息,但是如果输入正确的地址,我无法登录。。 我认为问题出在网址中。但是我不知道我应该使用什么网址。我对ajax的经验非常基础,我需要帮助。

0 个答案:

没有答案