Remove/Hide Woocommerce Added to Cart Message But Keep/Display Coupon Applied Message

Remove/Hide Woocommerce Added to Cart Message but Keep/Display Coupon Applied Message

Update: 18/05/2018 Please refer to bellmountain's much simpler answer for the correct way to do this.

Add this code to your themes functions.php file. It will remove only that message. It should trigger on just the pages where it is likely to occur.

function remove_added_to_cart_notice()
{
$notices = WC()->session->get('wc_notices', array());

foreach( $notices['success'] as $key => &$notice){
if( strpos( $notice, 'has been added' ) !== false){
$added_to_cart_key = $key;
break;
}
}
unset( $notices['success'][$added_to_cart_key] );

WC()->session->set('wc_notices', $notices);
}
add_action('woocommerce_before_single_product','remove_added_to_cart_notice',1);
add_action('woocommerce_shortcode_before_product_cat_loop','remove_added_to_cart_notice',1);
add_action('woocommerce_before_shop_loop','remove_added_to_cart_notice',1);

Don't worry about using that css you've tried.

Hide Added to Cart message in Woocommerce

Update for Woocommerce 3+

The hook wc_add_to_cart_message is deprecated and replaced by wc_add_to_cart_message_html. You can use the following (compact effective way):

add_filter( 'wc_add_to_cart_message_html', '__return_false' );

Or the normal way:

add_filter( 'wc_add_to_cart_message_html', 'empty_wc_add_to_cart_message');
function empty_wc_add_to_cart_message( $message, $products ) { 
return ''; 
}; 

Before Woocommerce 3, use this:

Removing only the message (pasting it to your function.php file inside your active child theme or theme). This function will return an empty message:

add_filter( 'wc_add_to_cart_message', 'empty_wc_add_to_cart_message', 10, 2 );
function empty_wc_add_to_cart_message( $message, $product_id ) { 
return ''; 
}; 

Code goes in function.php file of your active child theme (or active theme).

Note: wc_add_to_cart_message replace deprecated hook woocommerce_add_to_cart_message.

(UPDATED)

CSS: Removing top message box on checkout page (add this css rule to the style.css file located inside your active child theme or theme):

.woocommerce-checkout .woocommerce .woocommerce-message {
display:none !important;
}

How to disable cart page from showing coupon notice when adding coupons with ajax?

The way to fix this is to add wc_clear_notices(); before die(); in the function call, so as to remove all notices that the function add_discount adds to the array that gets returned from wc_get_notices() function call.

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;
}
wc_clear_notices();
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;
}
wc_clear_notices();
die();
}


Related Topics



Leave a reply



Submit