• Есть фот такая функция

    //  Ajax Login
      function ajax_register_init(){
    
    	/* Подключаем скрипт для авторизации */
        wp_register_script('ajax-register-script', get_template_directory_uri() . '/js/ajax-register-script.js', array('jquery') );
        wp_enqueue_script('ajax-register-script');
    
    	/* Локализуем параметры скрипта */
        wp_localize_script( 'ajax-register-script', 'ajax_register_object', array(
          'ajaxurl' => admin_url( 'admin-ajax.php' ),
          'redirecturl' => $_SERVER['REQUEST_URI'],
          'loadingmessage' => __('Проверяются данные, секундочку...')
        ));
    
        // Разрешаем запускать функцию ajax_login() пользователям без привелегий
        add_action( 'wp_ajax_nopriv_ajaxregister', 'ajax_register' );
      }
    
      // Выполняем авторизацию только если пользователь не вошел
      if (!is_user_logged_in()) {
        add_action('init', 'ajax_register_init');
      }
    
      function ajax_register(){
    
        // Первым делом проверяем параметр безопасности
        check_ajax_referer( 'ajax-register-nonce', 'security' );
    
        // Получаем данные из полей формы и проверяем их
    
        $user_login = $_POST['user_login'];
        $user_email = $_POST['user_email'];
    
    		$register = register_new_user($user_login, $user_email);
    
        if ( is_wp_error($register) ){
          echo json_encode(array('loggedin'=>false, 'message'=>__('Ошибка!')));
        } else {
          echo json_encode(array('loggedin'=>true, 'message'=>__('Отлично! Идет перенаправление...')));
        }
    
        die();
      }

    Как сделать, чтобы при неудачной или удачной регистрации не перенаправляло на wp-login, а возвращало ошибку?

    Тоже самое при удачной регистрации — обновляет сразу же страницу, не передавая никакой информации.

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Покажи код JS

    Вот этот на логин работает — все отлично.

    jQuery(document).ready(function($) {
    
      $('.form_wrapper #slick-login').on('submit', function(e){
        $('.form_wrapper .status_login').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_wrapper #username').val(),
            'password': $('.form_wrapper #password').val(),
            'security': $('.form_wrapper #security').val()
          },
          success: function(data){
            $('.form_wrapper .status_login').text(data.message);
            if (data.loggedin == true){
              document.location.href = ajax_login_object.redirecturl;
            }
          }
        });
        e.preventDefault();
      });
    
    });

    Ну так что — кто подскажет?

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Тема «Ajax логин» закрыта для новых ответов.