WooCommerce 结帐显示基于特定运费的消息 class
WooCommerce checkout display a message based on specific shipping class
我想在 Woocommerce 结帐页面中设置一条消息以指定运送 class。
我尝试使用:
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
选择送货 class 时,它总是 returns 我 int(0)
。
我用过类似的东西:,因为它对我不起作用。
答案仍然适用于上一个 woocommerce 版本。
您的问题代码有效并显示运输 class Id... 所以还有其他问题。
确保购物车商品设置了所需的运费 class。
尝试按照以下方法在结帐时显示一条消息,以显示特定的运费 class slug:
add_action( 'woocommerce_review_order_before_order_total', 'checkout_shipping_class_message' );
function checkout_shipping_class_message(){
// Here your shipping class slugs in the array
$shipping_classes = array('truck');
// Here your shipping message
$message = __("Please add some shipping details in order notes field.", "woocommerce");
// Loop through cart items
foreach( WC()->cart->get_cart() as $cart_item ){
$shipping_class = $cart_item['data']->get_shipping_class();
// echo '<pre>' . print_r($shipping_class, true) . '</pre>'; // Uncomment for testing
// Check cart items for specific shipping class, displaying a message
if( in_array($shipping_class, $shipping_classes ) ){
echo '<tr class="shipping-note">
<td colspan="2"><strong>'.__("Note", "woocommerce").':</strong> '.$message.'</td>
</tr>';
break;
}
}
}
代码进入活动子主题(或活动主题)的 functions.php 文件。已测试并有效。
我想在 Woocommerce 结帐页面中设置一条消息以指定运送 class。
我尝试使用:
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
选择送货 class 时,它总是 returns 我 int(0)
。
我用过类似的东西:
您的问题代码有效并显示运输 class Id... 所以还有其他问题。
确保购物车商品设置了所需的运费 class。
尝试按照以下方法在结帐时显示一条消息,以显示特定的运费 class slug:
add_action( 'woocommerce_review_order_before_order_total', 'checkout_shipping_class_message' );
function checkout_shipping_class_message(){
// Here your shipping class slugs in the array
$shipping_classes = array('truck');
// Here your shipping message
$message = __("Please add some shipping details in order notes field.", "woocommerce");
// Loop through cart items
foreach( WC()->cart->get_cart() as $cart_item ){
$shipping_class = $cart_item['data']->get_shipping_class();
// echo '<pre>' . print_r($shipping_class, true) . '</pre>'; // Uncomment for testing
// Check cart items for specific shipping class, displaying a message
if( in_array($shipping_class, $shipping_classes ) ){
echo '<tr class="shipping-note">
<td colspan="2"><strong>'.__("Note", "woocommerce").':</strong> '.$message.'</td>
</tr>';
break;
}
}
}
代码进入活动子主题(或活动主题)的 functions.php 文件。已测试并有效。