KaSeo
@KaSeo
Front-end разработчик

Можно ли в Wodpress подключить два обработчика AJAX к одному и тому же файлу js?

Можно ли в Wordpress подключить два бэкенд обработчика AJAX к одному и тому же файлу js, в котором будут соответственно разные обработчики?
Или обязательно это должны быть отдельные файлы?

Пробую делать так:
add_action( 'wp_ajax_get_tab_data_action', array( $this, 'get_tab_data_ajax_callback' ) );
add_action( 'wp_ajax_nopriv_get_tab_data_action', array( $this, 'get_tab_data_ajax_callback' ) );

add_action( 'wp_ajax_get_tab_data2_action', array( $this, 'get_tab_data2_ajax_callback' ) );
add_action( 'wp_ajax_nopriv_get_tab_data2_action', array( $this, 'get_tab_data2_ajax_callback' ) );


Подключаю js
static function load_scripts() {
  wp_enqueue_script( 'theme-template-js', KM_THEME_URL. '/assets/js/template.js', array('jquery'), filemtime( KM_THEME_PATH . '/assets/js/template.js' ), true );

  // Localize the script with new data
  $script_data_array1 = array(
    'ajax_url' => admin_url( 'admin-ajax.php' ),
    'security' => wp_create_nonce( 'get_tab_data' ),
  );
  // Localize the script with new data
  $script_data_array2 = array(
    'ajax_url' => admin_url( 'admin-ajax.php' ),
    'security' => wp_create_nonce( 'get_tab_data2' ),
  );
  wp_localize_script( 'trezvost-template-js', 'get_tab_data', $script_data_array1 );
  wp_localize_script( 'theme-template-js', 'get_tab_data2', $script_data_array2 );

  // Enqueued script with localized data.
  wp_enqueue_script( 'theme-template-js' );
}


Callback функции
static function get_tab_data_ajax_callback() {
  check_ajax_referer('get_tab_data', 'security');
....
wp_die();
}

static function get_tab_data_2_ajax_callback() {
  check_ajax_referer('get_tab_data2', 'security');
....
wp_die();
}


В JS файле формирую такие данные для AJAX:
var wp_ajax = {
    action: 'get_tab_data_action',
    url: get_tab_data.ajax_url,
    security: get_tab_data.security
};

var wp_ajax2 = {
    action: 'get_tab_data2_action',
    url: get_tab_data2.ajax_url,
    security: get_tab_data2.security
};


В результате ajax выдает 0.

Возможно ли подключать разные callback ajax функции для обработки в одном файле js?
  • Вопрос задан
  • 30 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы