问题描述
我想在 Woocommerce 结帐页面中为特定的运输类别设置一条消息。
我尝试使用:
add_action( 'woocommerce_review_order_before_order_total','cart_items_shipping_class_message',20,1 );
function cart_items_shipping_class_message( $cart ){
$shipping_class_id = 14; // Your shipping class Id
// Loop through cart items
foreach( WC()->cart->get_cart() as $cart_item ){
// Check cart items for specific shipping class,displaying a notice
//if( $cart_item['data']->get_shipping_class_id() == $shipping_class_id ){
var_dump($cart_item['data']->get_shipping_class_id());
echo "Do poznámky k objednávce napište adresu Zásilkovny nebo ZBoxu,kam chcete objednávku doručit.";
//break;
//}
}
}
但是当我尝试 var_dump
选择的运输类别时,它总是返回 int(0)
。
我使用过类似的东西:Cart Message for a Specific Shipping Class in WooCommerce,因为它对我不起作用。
解决方法
Cart Message for a Specific Shipping Class in WooCommerce 答案仍然适用于最新的 woocommerce 版本。
您的问题代码可以正常工作并显示运输类别 ID...所以还有其他问题造成了麻烦。
确保购物车项目已为其设置所需的运输类别。
尝试按照以下步骤在结帐时显示基于特定运输类别的消息slug:
treeView.DataTextField = "Text";
treeView.DataFieldID = "ID";
treeView.DataFieldParentID = "ParentID";
treeView.DataSource = siteData;
treeView.DataBind();
代码位于活动子主题(或活动主题)的functions.php 文件中。经测试有效。