Woocommerce aJax 将优惠券代码应用于购物篮

Ton*_*ler 2 php ajax wordpress woocommerce

我试图通过按下按钮将优惠券代码应用于购物篮。我有以下代码:-

coupon = jQuery(this).data('coupon');
data = {coupon_code : coupon};
jQuery.post( "?wc-ajax=apply-coupon", { coupon_code: coupon }).done(function( data ) {
    alert( "Data Loaded: " + data );
});
Run Code Online (Sandbox Code Playgroud)

我可以看到以下数据正在解析到服务器:-

coupon_code: 10percentdiscount
Run Code Online (Sandbox Code Playgroud)

10percentdiscount存在。

一旦我发送了请求,服务器就不会发回响应。

我是正确提出这个要求还是有其他方法?

先感谢您。

Dan*_*iro 5

您不需要在您的functions.php 中添加自定义代码。Woocommerce 支持通过本机 AJAX 添加优惠券(见下文)。

您的代码中的错误:

  1. 您忘记发送随机数(安全参数);
  2. 它是apply_coupon不是apply-coupon(下划线VS短划线);
  3. 你的 URL 应该以斜杠“ / ?wc-ajax=apply_coupon”开头;

正确版本:

var data = {
  coupon_code: jQuery(this).data('coupon'), 
  security: '<?php echo wp_create_nonce("apply-coupon") ?>'
};
jQuery.post('/?wc-ajax=apply_coupon', data).done(function(data) {
  alert("Data Loaded: " + data);
});
Run Code Online (Sandbox Code Playgroud)