I am adding coupons in woocommerce programmatically, and is working quite fine via ajax from another page, not the checkout page. However, everytime I go to the checkout page, it says, "Coupon has been applied", but I already applied the coupon from a different page. How do I disable this message from showing when going to the checkout page, after I have performed my ajax for applying a coupon dynamically? Is there some sort of setting or function to call to disable this message from showing on the cart page when a coupon has already been applied from an ajax function?
Here's my php for applying the coupon via ajax from a separate page (not the checkout page):
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();
}
And this works fine. As you can see, I grab errors and have them returned within the response
of the ajax call, and output errors that way. I also output something for success, which is fine. The problem I'm having is that after this function executes via ajax, and I browse to the checkout page to see my product and coupon code that was applied, it puts notice at the top of the page, saying "Coupon applied Successfully." and I don't want this notice to appear, but I don't want to get rid of all notices, just this one, if the coupon was not applied on the checkout page, there is no need for this wc_notice to appear when browsing to the checkout page.
How to tell woocommerce not to apply this coupon notice to the checkout page when I browse to the checkout page after adding coupons manually from another page (via ajax)?