如何基于商品数量在WooCommerce迷你购物车显示动态文本
解决WooCommerce迷你购物车动态文本显示问题
以下是修改后的代码,可实现根据购物车商品数量动态显示对应文本:
add_action( 'woocommerce_widget_shopping_cart_total', 'my_custom_dynamic_text', 15 ); function my_custom_dynamic_text() { // 获取购物车商品总数量 $cart_item_count = WC()->cart->get_cart_contents_count(); // 根据数量判断显示文本 if ( $cart_item_count < 2 ) { $display_text = '文本一'; } elseif ( $cart_item_count > 2 ) { $display_text = '文本二'; } else { // 商品数量等于2时的默认文本,可按需修改或删除 $display_text = ''; } // 输出文本 if ( ! empty( $display_text ) ) { echo '<p class="mini_cart_text">' . esc_html( $display_text ) . '</p>'; } }
关键说明:
- 正确获取购物车数量:使用
WC()->cart->get_cart_contents_count()方法准确获取购物车内的商品总数量,这是动态判断的核心。 - 钩子优先级:保持优先级15不变,确保代码在购物车总金额区域的合适位置输出。
- 安全输出:用
esc_html()处理文本,避免XSS安全问题。 - 边界情况处理:增加了商品数量等于2时的默认逻辑,可根据需求调整或移除。
若之前修改后无效果,大概率是未正确调用WooCommerce购物车对象的数量获取方法,或是未对输出文本做正确条件判断。将上述代码替换到主题的functions.php文件或自定义插件中即可生效。
内容的提问来源于stack exchange,提问作者Traverso
相关产品推荐
相关产品推荐

