У wp выполнение ajax запросов происходит намного проще, чем это можно подумать.
Созданине ajax запроса можно разделить на несколько этапов:
- кнопки
- запрос
- обработчик
Создаем кнопки (html)
в шаблоне темы или любом месте где это вам удобно создаем вот такие кнопки:
<div class="sale_buton" data-price = "123">расчитать скидку</div> <div class="results"></div> <!-- здесь будет выводится результат -->
Запрос (ajax):
<script type="text/javascript"> jQuery(document).ready(function ($) { $('.sale_buton').click(function () { // кликнули на кнопку $.ajax({ url: '/wp-admin/admin-ajax.php', // сделали запрос type: "POST", // указали метод data: { // передаем параметры отправляемого запроса action: 'my_ajax_action', // вызываем хук который обработает наш ajax запрос price: $(this).data('price'), // передаем параметры из кнопки }, success: function (data) {// получаем результат в переменной data $('.results').html(data); // выводим результат в новый див } }); }); }); </script>
Обработчик (php):
Обработчик должен находится в файле function.php вашей темы
// проверка на скидки add_action("wp_ajax_my_ajax_action", "k_ajax_my_ajax_action");// для фронтенда add_action("wp_ajax_nopriv_my_ajax_action", "k_ajax_my_ajax_action");// для админки function k_ajax_my_ajax_action(){ // функция которая вызывается if ($_POST['price']==123) {// проверяем, если цена равна 123 echo "цена равна 123"; // выводим результат в <div class="results"></div> }else { echo "цена не равна 123";// выводим результат в <div class="results"></div> } wp_die(); }
Дополнительно:
данный метод очень простой и рабочий, здесь можно его конечно усложнить и упростить, взять встроенные переменные такие как ajaxurl итд. Но пост был создан исключительно для понимания как работает ajax в wordpress для новичков.