在 Woocommerce 中显示总购物车运输量值
Display total cart shipping volume value in Woocommerce
我为订购家具集装箱的批发客户使用 woocommerce - 通常是 40 英尺的集装箱,体积为 68 立方米。
有什么方法可以让我在网站上的某处显示 - 也许在 header 区域有一个框,显示他们购物篮中产品的总立方米?当客户达到 68 立方米时,我需要向他们展示,以便他们知道他们已经装满了一个容器。
如果客户尝试提交小于 68 立方米的订单,表明他们的容器中仍有剩余空间,是否有办法闪现消息?
感谢任何帮助。
您可以尝试这样的操作:
<?php
global $woocommerce;
$items = $woocommerce->cart->get_cart();
$cart_prods_m3 = array();
//LOOP ALL THE PRODUCTS IN THE CART
foreach($items as $item => $values) {
$_product = wc_get_product( $values['data']->get_id());
//GET GET PRODUCT M3
$prod_m3 = $_product->get_length() *
$_product->get_width() *
$_product->get_height();
//MULTIPLY BY THE CART ITEM QUANTITY
//DIVIDE BY 1000000 (ONE MILLION) IF ENTERING THE SIZE IN CENTIMETERS
$prod_m3 = ($prod_m3 * $values['quantity']) / 1000000;
//PUSH RESULT TO ARRAY
array_push($cart_prods_m3, $prod_m3);
}
echo "Total of M3 in the cart: " . array_sum($cart_prods_m3);
?>
参见 WC() 文档:https://docs.woocommerce.com/document/class-reference/
这是一个自动获取 Woocommerce 中设置的尺寸单位的函数,它将计算总购物车体积:
function get_cart_volume(){
// Initializing variables
$volume = $rate = 0;
// Get the dimetion unit set in Woocommerce
$dimension_unit = get_option( 'woocommerce_dimension_unit' );
// Calculate the rate to be applied for volume in m3
if ( $dimension_unit == 'mm' ) {
$rate = pow(10, 9);
} elseif ( $dimension_unit == 'cm' ) {
$rate = pow(10, 6);
} elseif ( $dimension_unit == 'm' ) {
$rate = 1;
}
if( $rate == 0 ) return false; // Exit
// Loop through cart items
foreach(WC()->cart->get_cart() as $cart_item) {
// Get an instance of the WC_Product object and cart quantity
$product = $cart_item['data'];
$qty = $cart_item['quantity'];
// Get product dimensions
$length = $product->get_length();
$width = $product->get_width();
$height = $product->get_height();
// Calculations a item level
$volume += $length * $width * $height * $qty;
}
return $volume / $rate;
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。 已测试并有效。
示例用法输出:
echo __('Cart volume') . ': ' . get_cart_volume() . ' m3';
我为订购家具集装箱的批发客户使用 woocommerce - 通常是 40 英尺的集装箱,体积为 68 立方米。
有什么方法可以让我在网站上的某处显示 - 也许在 header 区域有一个框,显示他们购物篮中产品的总立方米?当客户达到 68 立方米时,我需要向他们展示,以便他们知道他们已经装满了一个容器。
如果客户尝试提交小于 68 立方米的订单,表明他们的容器中仍有剩余空间,是否有办法闪现消息?
感谢任何帮助。
您可以尝试这样的操作:
<?php
global $woocommerce;
$items = $woocommerce->cart->get_cart();
$cart_prods_m3 = array();
//LOOP ALL THE PRODUCTS IN THE CART
foreach($items as $item => $values) {
$_product = wc_get_product( $values['data']->get_id());
//GET GET PRODUCT M3
$prod_m3 = $_product->get_length() *
$_product->get_width() *
$_product->get_height();
//MULTIPLY BY THE CART ITEM QUANTITY
//DIVIDE BY 1000000 (ONE MILLION) IF ENTERING THE SIZE IN CENTIMETERS
$prod_m3 = ($prod_m3 * $values['quantity']) / 1000000;
//PUSH RESULT TO ARRAY
array_push($cart_prods_m3, $prod_m3);
}
echo "Total of M3 in the cart: " . array_sum($cart_prods_m3);
?>
参见 WC() 文档:https://docs.woocommerce.com/document/class-reference/
这是一个自动获取 Woocommerce 中设置的尺寸单位的函数,它将计算总购物车体积:
function get_cart_volume(){
// Initializing variables
$volume = $rate = 0;
// Get the dimetion unit set in Woocommerce
$dimension_unit = get_option( 'woocommerce_dimension_unit' );
// Calculate the rate to be applied for volume in m3
if ( $dimension_unit == 'mm' ) {
$rate = pow(10, 9);
} elseif ( $dimension_unit == 'cm' ) {
$rate = pow(10, 6);
} elseif ( $dimension_unit == 'm' ) {
$rate = 1;
}
if( $rate == 0 ) return false; // Exit
// Loop through cart items
foreach(WC()->cart->get_cart() as $cart_item) {
// Get an instance of the WC_Product object and cart quantity
$product = $cart_item['data'];
$qty = $cart_item['quantity'];
// Get product dimensions
$length = $product->get_length();
$width = $product->get_width();
$height = $product->get_height();
// Calculations a item level
$volume += $length * $width * $height * $qty;
}
return $volume / $rate;
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。 已测试并有效。
示例用法输出:
echo __('Cart volume') . ': ' . get_cart_volume() . ' m3';