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
Calculate Size in Bytes of Json Payload Including It in the Json Payload in PHP
Turning Query Errors to Exceptions in MySQLi
MySQLi or Pdo - What Are the Pros and Cons
How to Check If a String Contains a Specific Word
How to Apply Bindvalue Method in Limit Clause
Should We Ever Check For MySQLi_Connect() Errors Manually
How to Configure Xampp to Send Mail from Localhost
How to Convert Ereg Expressions to Preg in PHP
PHP - Failed to Open Stream: No Such File or Directory
How to Parse a Json File With PHP
How to Bind an Array to an In() Condition in a Pdo Query
MySQLi or Die, Does It Have to Die
How to Implement Basic "Long Polling"