【发布时间】:2016-02-28 01:49:56
【问题描述】:
我正在以编程方式在 woocommerce 中添加优惠券,并且通过另一个页面的 ajax 工作得很好,而不是结帐页面。但是,每次我去结帐页面时,它都会说“优惠券已应用”,但我已经从不同的页面应用了优惠券。在我执行 ajax 以动态应用优惠券后,如何在转到结帐页面时禁用此消息?当已从 ajax 函数应用优惠券时,是否有某种设置或函数可调用以禁止此消息显示在购物车页面上?
这是我的 php,用于通过 ajax 从单独的页面(不是结帐页面)应用优惠券:
if (!WC()->cart->add_discount( sanitize_text_field( $coupon_code )))
{
$notices = wc_get_notices();
if (!empty($notices) && isset($notices['error'])) {
$last_fail = end($notices['error']);
echo $last_fail;
}
die();
}
else
{
$notices = wc_get_notices();
// Get last element of array only!
if (!empty($notices) && isset($notices['success'])) {
$last_success = end($notices['success']);
echo $last_success;
}
die();
}
这很好用。如您所见,我抓取错误并将它们返回到 ajax 调用的 response 中,并以这种方式输出错误。我还为成功输出了一些东西,这很好。我遇到的问题是,在通过 ajax 执行此功能后,我浏览到结帐页面以查看我的产品和已应用的优惠券代码,它会在页面顶部显示“优惠券已成功应用”。而且我不希望出现这个通知,但是我不想去掉所有的通知,就这个,如果没有在结帐页面应用优惠券,浏览时不需要出现这个wc_notice到结帐页面。
当我从另一个页面(通过 ajax)手动添加优惠券后浏览到结帐页面时,如何告诉 woocommerce 不要将此优惠券通知应用于结帐页面?
【问题讨论】:
标签: ajax wordpress woocommerce coupon