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: p> js: p> peut me dire ce que quelqu'un Je fais mal ici? P> p>
4 Réponses :
Toutes les demandes Ajax dans WordPress doivent aller si 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> p> wp-admin / admin-ajax.php code>.
wp-login.php code> ne répondra pas.
http://codex.wordpress.org/class_reference/wp_ajax_response p>
Vous auriez besoin d'utiliser la fonction WP pour la connexion. p>
http://codex.wordpress.org/funt_reference/wp_signon p>
Ensuite, utilisez Ajax pour accéder à cette fonction pour vous connecter. Vous pouvez écrire une fonction de connexion dans Fonctions.php P>
Cliquez ci-dessous pour voir comment utiliser Ajax dans WordPress. P>
http : //wpmu.org/how-to-utube-ajax-with-php-on-your-wp-site-without-a-plugin/ p>
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 /
<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; }); });
Je pense que c'est le moyen facile
WordPress: formulaire de connexion AJAX simple - p> 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();
});
});
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.
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.