user10334265
user10334265

Reputation:

Remove or hide "wc_add_notice" messages in WooCommerce

I am using this to remove the "Cart is updated" message in WooCommerce:

add_filter( 'woocommerce_add_message', '__return_false');

But the "Shipping costs updated" message is still displayed. How can I remove this message?

Upvotes: 1

Views: 1160

Answers (1)

7uc1f3r
7uc1f3r

Reputation: 29614

In your specific case, in shortcodes/class-wc-shortcode-cart.php we find:

wc_add_notice( __( 'Shipping costs updated.', 'woocommerce' ), 'notice' );

Which in turn calls the wc_add_notice() function:

...
// Backward compatibility.
if ( 'success' === $notice_type ) {
    $message = apply_filters( 'woocommerce_add_message', $message );
}

$message = apply_filters( 'woocommerce_add_' . $notice_type, $message );
...

(This code was partly copied from: includes/wc-notice-functions.php)


So instead of using the woocommerce_add_message filter hook you can use the woocommerce_add_"$notice_type" filter hook.

$notice_type = the name of the notice type - either error, success (default) or notice.

In your case, $notice_type corresponds with notice. So then just compare the message, if this is sufficient, we return false:

function filter_woocommerce_add( $message ) {
    // Equal to (Must be exactly the same).
    // If the message is displayed in another language, adjust where necessary!
    if ( $message == 'Shipping costs updated.' ) {
        return false;
    }   
    
    return $message;
}
add_filter( 'woocommerce_add_notice', 'filter_woocommerce_add', 10, 1 );
// OR - Use the desired filter, depending on the name of the notice type (default = success)
// add_filter( 'woocommerce_add_error', 'filter_woocommerce_add', 10, 1 );
// add_filter( 'woocommerce_add_success', 'filter_woocommerce_add', 10, 1 );

Upvotes: 0

Related Questions