Я хотел бы сделать так:
Определение Ajax URL в header.php или странице вы бы добавить купон
<script type="text/javascript" language="javascript">
var ajax_url = "<?php bloginfo('url'); ?>/wp-admin/admin-ajax.php";
</script>
В function.php вы должны определить АЯКС позвонить
function implement_ajax() {
include(TEMPLATEPATH . '/ajax_return.php');
}
add_action('wp_ajax_my_special_action', 'implement_ajax');
add_action('wp_ajax_nopriv_my_special_action', 'implement_ajax');
В ajax_return.php вы использовали код, который добавляет купон на woocommerce:
if (isset($_POST['couponcode']))
{ apply_coupon($_POST['couponcode']); };
function apply_coupon($couponcode) {
global $woocommerce; WC()->cart->remove_coupons();
$ret = WC()->cart->add_discount($couponcode);
$array = array('return' => $ret); print_r($array);
}
exit;
Ваш jQuery.post воля стала это:
<script type="text/javascript">
jQuery(function(){
coupon = jQuery(this).data('coupon');
jQuery.post(ajax_url, {action : 'my_special_action', couponcode : coupon}, return_function, 'JSON');
});
function return_function(data)
{
console.log(data.return); //contains true if coupon was applied
}
</script>
Если вам нужно, звоните return_function управлять ответ.
Я внедрил ваш код, когда я использовал код, который у вас есть выше, я получил return_function, который не определен. Я изменил ваш код, и сервер ответил 0, а код купона не был добавлен. –
Не могу ли я сделать это с помощью wc-ajax = apply_coupon. Я заметил, что необходимо определить ключ безопасности, знает ли кто-нибудь, как он генерирует ключ? –
Я не знаю, существует ли способ использования wp-ajax, но я предлагаю вам использовать правильный способ сделать ajax-вызов с помощью wordpress. ps: Я правильно обновил код. поэтому, если у вас есть проблемы с return_function, просто объявите его: function return_function (data) { console.log (data); } – mariobros