在 Woocommerce 中将第一项添加到购物车时向用户显示消息

Displaying a message to user when first item added to cart in Woocommerce

在 Woocommerce 中,有没有办法在客户将第一个项目添加到购物车时向他们显示一条消息?

我想提醒客户,在清空购物车之前,他们有 30 分钟的时间购物。

这可没你这么简单:

  • 普通 "Add to cart" 按钮(非 AJAX)
  • AJAX 启用 "Add to cart" 按钮(如果在 Woocommerce 设置中启用)

因此,您将在下面找到 2 个适用于两者的挂钩函数(您将在其中设置消息):

// For NORMAL add to cart
add_filter( 'woocommerce_add_to_cart_validation', 'custom_message_add_to_cart', 20, 3 );
function custom_message_add_to_cart( $passed, $product_id, $quantity ) {
    if( WC()->cart->is_empty() ){
       $message = __("1st cart item message here", "woocommerce");
       wc_add_notice( $message, 'notice' );
    }
    return $passed;
}

// For AJAX add to cart (if enabled)
add_action( 'woocommerce_shortcode_before_product_cat_loop', 'custom_print_message', 11 );
add_action( 'woocommerce_before_shop_loop', 'custom_print_message', 11 );
add_action( 'woocommerce_before_single_product', 'custom_print_message', 11 );
function custom_print_message() {
    if( WC()->cart->is_empty() ){
        $message = __("1st cart item message here", "woocommerce");

        // HERE BELOW, replace clothing' with your product category (can be an ID, a slug or a name)
        echo '<div class="woocommerce-info hidden" style="display:none;">' . $message . '</div>';
    }
    ?>
    <script type="text/javascript">
    jQuery( function($){
        $('body').on('added_to_cart', function(){
            $('.woocommerce-info.hidden').show('fast');
        });
    });
    </script>
    <?php
}

代码进入活动子主题(或活动主题)的 function.php 文件。测试和工作。