如果自定义字段总值达到特定值,则显示自定义消息
Display a custom message if a custom fields total value reaches a specific value
我为每个简单产品都有一个自定义字段,即商品的体积 (立方米)。
我想向用户显示一条消息,表明他们的订单体积尚未达到 68 立方米 (40 英尺集装箱的体积) 。我重复使用了另一个函数的一些代码,该函数将自定义字段 _item_volume
中的音量值相加。
当值达到 68 m3 时如何显示消息?
// Loop through cart items and calculate total volume
foreach( WC()->cart->get_cart() as $cart_item ){
$product_volume = (float) get_post_meta( $cart_item['product_id'], '_item_volume', true );
$total_volume += $product_volume * $cart_item['quantity'];
}
尝试以下方法,如果购物车的总体积未达到 68 立方米,将显示自定义通知:
add_action('woocommerce_before_calculate_totals', 'display_custom_notice', 50, 1);
function display_custom_notice( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
return;
$total_volume = 0;
// Loop through cart items and calculate total volume
foreach( WC()->cart->get_cart() as $cart_item ){
$product_volume = (float) get_post_meta( $cart_item['product_id'], '_item_volume', true );
$total_volume += $product_volume * $cart_item['quantity'];
}
if( $total_volume < 68 && $total_volume != 0 ){
// Display a custom notice
wc_add_notice( __("Note: Your order total volume has not reached 68 m3", "woocommerce"), 'notice' );
}
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。已测试并有效。
我为每个简单产品都有一个自定义字段,即商品的体积 (立方米)。
我想向用户显示一条消息,表明他们的订单体积尚未达到 68 立方米 (40 英尺集装箱的体积) 。我重复使用了另一个函数的一些代码,该函数将自定义字段 _item_volume
中的音量值相加。
当值达到 68 m3 时如何显示消息?
// Loop through cart items and calculate total volume
foreach( WC()->cart->get_cart() as $cart_item ){
$product_volume = (float) get_post_meta( $cart_item['product_id'], '_item_volume', true );
$total_volume += $product_volume * $cart_item['quantity'];
}
尝试以下方法,如果购物车的总体积未达到 68 立方米,将显示自定义通知:
add_action('woocommerce_before_calculate_totals', 'display_custom_notice', 50, 1);
function display_custom_notice( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
return;
$total_volume = 0;
// Loop through cart items and calculate total volume
foreach( WC()->cart->get_cart() as $cart_item ){
$product_volume = (float) get_post_meta( $cart_item['product_id'], '_item_volume', true );
$total_volume += $product_volume * $cart_item['quantity'];
}
if( $total_volume < 68 && $total_volume != 0 ){
// Display a custom notice
wc_add_notice( __("Note: Your order total volume has not reached 68 m3", "woocommerce"), 'notice' );
}
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。已测试并有效。