gpt4 book ai didi

ajax - 使用ajax添加优惠券时如何禁止购物车页面显示优惠券通知?

转载 作者:行者123 更新时间:2023-12-05 04:14:53 25 4
gpt4 key购买 nike

我正在以编程方式在 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 不要将此优惠券通知应用到结帐页面?

最佳答案

您可以使用“woocommerce_coupon_message”过滤器来隐藏优惠券的成功消息。由于您只想为结帐页面删除它,只需检查当前页面是否为结帐页面即可。

您可以使用以下代码:

function remove_msg_filter($msg, $msg_code, $this){
if(is_checkout()){
return "";
}
return $msg;
}

add_filter('woocommerce_coupon_message','remove_msg_filter',10,3);

注意:如果您还想更改错误消息,请使用“woocommerce_coupon_error”过滤器。

关于ajax - 使用ajax添加优惠券时如何禁止购物车页面显示优惠券通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33913684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com