删除/隐藏添加到购物车消息的Woocommerce但保留/显示优惠券应用消息

Mar*_*mes 5 php wordpress woocommerce

我正在尝试删除或隐藏我的WooCommerce结帐页面顶部的添加到购物车消息(我已删除购物车页面,因此此消息显示在结帐页面上).我尝试将其添加到我的CSS中:

.woocommerce-message {display: none;}. 
Run Code Online (Sandbox Code Playgroud)

虽然这隐藏了我想要的添加到购物车消息,但它也隐藏了优惠券应用消息,我不想隐藏它.

接下来,我尝试了functions.php文件中Business Bloomer博客的代码片段:

// Removes Product Successfully Added to Cart

add_filter( 'wc_add_to_cart_message', 'custom_add_to_cart_message' );

function custom_add_to_cart_message() {

echo '<style>.woocommerce-message {display: none !important;}</style>';

}
Run Code Online (Sandbox Code Playgroud)

这隐藏了文本,但是应用于div的类的样式.woocommerce-message仍然是可见的,包括背景颜色,填充等等.所以我在页面顶部留下了一个矩形,里面没有文字.

有关如何完全隐藏.woocommerce-messagediv只是为了添加到购物车消息,但不是.woocommerce-messag优惠券应用消息或任何其他消息的e div的任何想法将不胜感激!

小智 16

这对我有用:

add_filter( 'wc_add_to_cart_message', 'remove_add_to_cart_message' );

function remove_add_to_cart_message() {
    return;
}
Run Code Online (Sandbox Code Playgroud)

  • 我们可以使用`add_filter('wc_add_to_cart_message_html','__return_false');` (3认同)

Jam*_*nes 5

更新:2018 年 5 月 18 日,请参阅 bellmountain 更简单的答案,了解正确的方法。

将此代码添加到您的主题functions.php文件中。它只会删除该消息。它应该只在可能发生的页面上触发。

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);
Run Code Online (Sandbox Code Playgroud)

不要担心使用您尝试过的 css。


小智 5

我正在使用这个:

add_filter( 'wc_add_to_cart_message_html', '__return_null' );
Run Code Online (Sandbox Code Playgroud)