6
votes

WordPress Ajax Connexion

J'essaie de construire un formulaire de connexion WordPress personnalisé, mais je ne peux pas le faire trier. Voici les codes que j'utilise:

html: xxx

js: xxx

peut me dire ce que quelqu'un Je fais mal ici?


2 commentaires

Qu'est-ce qui se passe ou votre erreur?


Ne renvoie aucun message. J'utilise la console et je n'obtiens pas d'erreurs Ajax / JS.


4 Réponses :


1
votes

Toutes les demandes Ajax dans WordPress doivent aller si wp-admin / admin-ajax.php . wp-login.php ne répondra pas. http://codex.wordpress.org/class_reference/wp_ajax_response

Il existe un ensemble d'actions disponibles mais aucun d'entre eux ne s'approche d'une méthode de connexion. Vous pouvez enregistrer vos propres actions et gérer votre processus de connexion vous-même si vous savez ce que vous faites. http://codex.wordpress.org/plugin_api/action_reference/wp_ajax_ (action) < / a>


0 commentaires

5
votes

Vous auriez besoin d'utiliser la fonction WP pour la connexion.

http://codex.wordpress.org/funt_reference/wp_signon

Ensuite, utilisez Ajax pour accéder à cette fonction pour vous connecter. Vous pouvez écrire une fonction de connexion dans Fonctions.php

Cliquez ci-dessous pour voir comment utiliser Ajax dans WordPress.

http : //wpmu.org/how-to-utube-ajax-with-php-on-your-wp-site-without-a-plugin/


1 commentaires

WPMU Link apparaît cassé, voici un autre exemple de lien pour référence: http://natko.com/wordpress-ajax-login-without-a-plugin-the-r i Light-Way /



0
votes
<form class="well form-inline" id="login">
    <div id="message"></div>
    <div id="loading" style="display:none;"></div>
    <div class="rowmargin">
        <h4>Login</h4>
    </div>
    <div class="rowmargin">
        <input type="text" name="username" id="loginUsername" class="input-medium" placeholder="Username">
        <input type="password" name="password" id="loginPassword" class="input-medium" placeholder="Password">
    </div>
    <a class="btn btn-primary" id="loginButton"><i class="icon-check icon-white"></i> Login</a>
</form>


jQuery(document).ready(function(){      
    jQuery('#loading').hide();
    jQuery("#loginButton").click(function() {   
        jQuery('#message').hide().html('');
        jQuery('#loading').hide();
        var input_data = jQuery('#login').serialize();
        var logUser = jQuery('#loginUsername').val();
        var logPass = jQuery('#loginPassword').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('#loading').show();
        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( '/thank-you/' ); ?>');

            },
            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;
    });
});

1 commentaires

Je pense que c'est le moyen facile



6
votes

WordPress: formulaire de connexion AJAX simple xxx pré>

- p> xxx pré>

créer un fichier ajax-login-script.js dans le répertoire de thème et coller ce JS P>

jQuery(document).ready(function($) {

    // Show the login dialog box on click
    $('a#show_login').on('click', function(e){
        $('body').prepend('<div class="login_overlay"></div>');
        $('form#login').fadeIn(500);
        $('div.login_overlay, form#login a.close').on('click', function(){
            $('div.login_overlay').remove();
            $('form#login').hide();
        });
        e.preventDefault();
    });

    // Perform AJAX login on form submit
    $('form#login').on('submit', function(e){
        $('form#login p.status').show().text(ajax_login_object.loadingmessage);
        $.ajax({
            type: 'POST',
            dataType: 'json',
            url: ajax_login_object.ajaxurl,
            data: { 
                'action': 'ajaxlogin', //calls wp_ajax_nopriv_ajaxlogin
                'username': $('form#login #username').val(), 
                'password': $('form#login #password').val(), 
                'security': $('form#login #security').val() },
            success: function(data){
                $('form#login p.status').text(data.message);
                if (data.loggedin == true){
                    document.location.href = ajax_login_object.redirecturl;
                }
            }
        });
        e.preventDefault();
    });

});


2 commentaires

Beau, vraiment.


Des documents. Si is_user_logged_in () est nécessaire en conjonction avec wp_signon (), wp_set_current_user () doit être appelé explicitement.