Перенаправление в ajax форме входа после успешного входа - PullRequest
0 голосов
/ 11 января 2020

Я работаю над веб-сайтом, пытаюсь исправить код предыдущего разработчика и с трудом справляюсь с модальной ajax формой входа.

Когда я нажимаю кнопку «Войти», открывается модал с упоминанием ввода пользователя, ввода пароля и кнопки подключения. когда я ввожу правильную информацию и нажимаю на кнопку, на стороне клиента ничего не происходит, и модальное окно остается открытым на экране. НО, когда я повторяю вход в систему, я получаю ярлык в модале, указывающий, что я уже вошел в систему.

Фактически, вход был выполнен. Окно просто не ссылается на sh, и успешное соединение не приводит к возврату на текущую страницу (например, «домашнюю» или на другую страницу, на которой я сейчас нахожусь).

Есть у кого-нибудь идея? Заранее спасибо

(я поставил код JS ниже)

// Run our login form ajax
	$('#modal-login #form-login').on('submit', function(e) {

		// Stop the form from submitting so we can use ajax.
		e.preventDefault();

		// Check what form is currently being submitted so we can return the right values for the ajax request.
		var form_id = $(this).parent().attr('id');

		// Remove any messages that currently exist.
		$('.modal-login-content > p.message').remove();

		// Check if we are trying to login. If so, process all the needed form fields and return a faild or success message.
		if ( form_id === 'login' ) {
			$.ajax({
				type: 'POST',
				dataType: 'json',
				url: modal_login_script.ajax,
				data: {
					'action'     : 'ajaxlogin', // Calls our wp_ajax_nopriv_ajaxlogin
					'username'   : $('#form-login #login_user').val(),
					'password'   : $('#form-login #login_pass').val(),
					'rememberme' : ($('#form-login #rememberme').is(':checked'))?"TRUE":"FALSE",
					'login'      : $('#form-login input[name="login"]').val(),
					'security'   : $('#form-login #security-login').val()
				},
				beforeSend : function(){
					$('.ml-modal' ).addClass( 'is-active' );
				},
				success: function(results) {

					// Check the returned data message. If we logged in successfully, then let our users know and remove the modal window.
					if(results.loggedin === true) {
						$('.modal-login-content > h2').after('<p class="message success"></p>');
						$('.modal-login-content > p.message').text(results.message).show();

						$('#overlay, .login-popup').delay(5000).fadeOut('300m', function() {
							$('#overlay').remove();
						});
                        window.location.href = updateQueryStringParameter( modal_login_script.registration_redirect, 'nocache', ( new Date() ).getTime() );
					} else {
						$('.modal-login-content > h2').after('<p class="message error"></p>');
						$('.modal-login-content > p.message').text(results.message).show();
					}
				},
				complete : function(){
					$('.ml-modal' ).removeClass( 'is-active' );
				}
			});
		} else {
			// if all else fails and we've hit here... something strange happen and notify the user.
			$('.modal-login-content > h2').after('<p class="message error"></p>');
			$('.modal-login-content > p.message').text('Please refresh your window and try again.');
		}
	});
...