如何通过编辑PHP在WooCommerce购物车页面显示产品Shipping Class?
在WooCommerce购物车页面显示产品Shipping Class的PHP实现方案
当然可以!完全不需要依赖插件,通过几行自定义PHP代码就能轻松实现这个需求。下面是具体的步骤和代码:
实现方法
你可以借助WooCommerce提供的钩子,在购物车项目的名称下方插入Shipping Class信息。具体代码如下:
add_action( 'woocommerce_after_cart_item_name', 'display_shipping_class_below_cart_product', 10, 2 ); function display_shipping_class_below_cart_product( $cart_item, $cart_item_key ) { // 获取当前购物车商品的Shipping Class对象 $shipping_class_term = get_term( $cart_item['data']->get_shipping_class_id() ); // 验证Shipping Class是否存在且有效 if ( $shipping_class_term && ! is_wp_error( $shipping_class_term ) && ! empty( $shipping_class_term->name ) ) { // 输出Shipping Class信息,附带基础样式(可自行调整) echo '<p class="cart-shipping-class" style="font-size: 0.9rem; color: #777; margin: 0.3rem 0 0;">'; echo esc_html__( 'Shipping Class:', 'woocommerce' ) . ' ' . esc_html( $shipping_class_term->name ); echo '</p>'; } }
代码说明
- 我们使用了
woocommerce_after_cart_item_name钩子,这个钩子会在每个购物车商品名称的后面触发,刚好匹配你想要的显示位置 get_term()函数用来通过Shipping Class的ID获取对应的分类对象,确保能拿到正确的名称- 加入了多重判断,避免没有设置Shipping Class的商品输出空内容或错误信息
- 使用
esc_html()和esc_html__()函数保证输出内容的安全性,同时支持WooCommerce的多语言翻译 - 附带了简单的内联样式,你可以根据自己的主题风格修改,或者去掉内联样式,在主题的CSS文件中添加
.cart-shipping-class的自定义样式
注意事项
- 不要直接修改主题的
functions.php文件:推荐使用子主题的functions.php,或者使用类似「Code Snippets」的自定义代码插件来添加这段代码,这样主题更新时不会丢失你的自定义修改 - 如果需要调整显示位置,也可以尝试其他钩子,比如
woocommerce_cart_item_meta_end,不过woocommerce_after_cart_item_name是最贴合需求的位置
内容的提问来源于stack exchange,提问作者scholarwithfire
相关产品推荐
相关产品推荐

