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

时间:2018-04-02 11:10:16

标签: php wordpress woocommerce product notice

在Woocommerce中,有没有办法在向客户添加第一个项目时向客户显示消息?

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

1 个答案:

答案 0 :(得分:1)

这不是那么简单:

  • NORMAL"加入购物车"按钮(不是AJAX)
  • 启用AJAX"加入购物车"按钮(如果在Woocommerce设置中启用了它)

所以下面你会发现两个钩子函数(你将在哪里设置你的信息):

// 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文件。经过测试和工作。