Intereting Posts
отображение вложения flv-video в сообщении Исключить категорию из цикла, не работающего страница 1 не выгружается Есть ли счетчик для комментариев? Как распознать, на каком сайте находится контент? add_rewrite_rule () не играет хорошо с дочерними страницами Выберите пользователя, объединив несколько значений метаданных Создание пользовательского типа PDF-файла (например, Media), а затем добавление пользовательских полей для поиска как изменить текст в меню навигации Когда вам и когда не следует, используйте wp_list_pluck ()? Автозаполнение или предложение из заголовков сообщений внутри плагина Почему я получаю ошибку Parse: синтаксическая ошибка, когда я использую 'wp_is_mobile'? Передача строки meta_box в post__in? Пользовательские типы сообщений и таблица базы данных, где возможно (желательно) желаемое количество (10 000 с +) записей Как перемещать каталог темы, но не подключать / выгружать из корневого каталога WordPress?

Ajax-вызов из single.php в файл плагина в бэкэнд

Я создаю кнопочный плагин, который на клике отображает всплывающее модальное. Затем клиенты вводят свою информацию в модальную форму и сохраняют клики. После отправки информация должна быть передана в файл плагина в бэкэнд через Ajax, который впоследствии будет сохранен в базе данных.

Но запрос ajax, похоже, не достигает admin-ajax.php. Jquery для отправки запроса admin-ajax.php лежит в файле single.php, а остальные действия и перехватчики лежат в файле плагина.

Вот код js в файле single.php:

$("#tlbtn-sumbit").click(function(){ var $j = jQuery.noConflict(); $j.post(tlbtn.ajax_url, { //POST request _ajax_nonce: tlbtn.nonce, //nonce action: "save_to_db", //action tlbtn_productName : '+tlbtn_productName+', //data tlbtn_productPrice : '+tlbtn_productPrice+', tlbtn_productRequestURL : '+tlbtn_productRequestURL+', tlbtn_name: '+name+'}, function(response) { //callback alert(response.productname); alert(response.productprice); //insert server response }); } 

Затем в файле плагина указываются обработчики ajax.

 add_action( 'wp_ajax_nopriv_save_to_db', 'save_to_db' ); add_action( 'wp_ajax_save_to_db', 'save_to_db' ); function save_to_db() { global $wpdb; check_ajax_referer( 'tlbtn-ajax' ); $return = array( 'productname' => ($_POST['tlbtn_productName']), 'productprice' => ($_POST['tlbtn_productPrice']), ); wp_send_json_success( $return ); echo "Successful"; die(); } 

Поскольку это внешний вызов ajax, я локализовал ajax_url в самом файле single.php. Правильное ли место для установки или локализации скриптов? Я также попытался разместить скрипты в файле плагинов, но результаты не изменились.

 <?php add_action( 'wp_enqueue_scripts', 'ajax_test_enqueue_scripts' ); function ajax_test_enqueue_scripts() { $title_nonce = wp_create_nonce( 'tlbtn-ajax' ); wp_localize_script( 'my-ajax', 'tlbtn', array( 'ajax_url' => admin_url( 'admin-ajax.php' ), 'nonce' => $title_nonce, )); }?> 

Здесь вы можете найти полные коды: https://github.com/asmitasubedi/WpButton-Plugin/ .