在 WooCommerce 购物车页面中的每个产品下方添加运输类别
Posted
技术标签:
【中文标题】在 WooCommerce 购物车页面中的每个产品下方添加运输类别【英文标题】:Add Shipping class below each product in WooCommerce Shopping Cart page 【发布时间】:2018-06-29 10:47:42 【问题描述】:我已经为我的产品配置了运输等级。但我想在购物车页面中的每个产品下方显示它们。像这样的东西:
这可以通过编辑 php 来完成吗?
【问题讨论】:
【参考方案1】:要在购物车页面中显示产品运输类别名称,有很多方法可以做到:
1) 使用 woocommerce_cart_item_name
过滤器挂钩中的自定义函数,这样:
add_filter( 'woocommerce_get_item_data', 'shipping_class_in_item_name', 20, 2 );
function shipping_class_in_item_name( $cart_data, $cart_item )
$custom_items = array();
$product = $cart_item['data']; // Get the WC_Product object instance
$shipping_class_id = $product->get_shipping_class_id(); // Shipping class ID
$shipping_class_term = get_term( $shipping_class_id, 'product_shipping_class' );
$label = __( 'Shipping class', 'woocommerce' );
// Checking (To display it in checkout page too, remove below " || is_checkout()" )
if( empty( $shipping_class_id ) || is_checkout() )
return $cart_data; // Return default cart dat (in case of)
// If product or variation description exists we display it
$custom_items[] = array(
'key' => $label,
'display' => $shipping_class_term->name,
);
// Merging shipping class name and product variation attributes + values (if there are some)
if( ! empty( $cart_data ) ) $custom_items = array_merge( $custom_items, $cart_data );
return $custom_items;
代码进入活动子主题(或活动主题)的 function.php 文件中。
此代码已经过测试并且可以工作。
2) 使用 woocommerce_cart_item_name
过滤器挂钩中的自定义函数,这样:
add_filter( 'woocommerce_cart_item_name', 'shipping_class_in_item_name', 20, 3);
function shipping_class_in_item_name( $item_name, $cart_item, $cart_item_key )
// Only in cart page (remove the line below to allow the display in checkout too)
if( ! ( is_cart() || is_checkout() ) ) return $item_name;
$product = $cart_item['data']; // Get the WC_Product object instance
$shipping_class_id = $product->get_shipping_class_id(); // Shipping class ID
$shipping_class_term = get_term( $shipping_class_id, 'product_shipping_class' );
if( empty( $shipping_class_id ) )
return $item_name; // Return default product title (in case of)
$label = __( 'Shipping class', 'woocommerce' );
return $item_name . '<br>
<p class="item-shipping_class" style="margin:12px 0 0;">
<strong>' .$label . ': </strong>' . $shipping_class_term->name . '</p>';
代码进入活动子主题(或活动主题)的 function.php 文件中。
经过测试并且有效。
【讨论】:
如何在地址输入后添加价格,在运输类别标题旁边。 这太复杂了,因为它取决于您的运输设置、客户选择、定义的客户位置,例如,如果您在购物车中为每个不同的运输类别有多个物品,那么计算只是一场噩梦.此外,如果您在该运输类成本设置中使用运输方式的公式,它甚至是值得的……所以您要问的是一个真正的开发,所以太宽泛了,因为您没有提供任何相关的代码意图。以上是关于在 WooCommerce 购物车页面中的每个产品下方添加运输类别的主要内容,如果未能解决你的问题,请参考以下文章
在 Woocommerce 购物车页面中的购物车商品名称后添加产品 ID
如何将特定类别的产品页面重定向到 Woocommerce 中的购物车页面