我很难在woocommerce篮子的自定义字段中显示所有数值的加法结果。所以基本上有一个自定义字段存储在项目的m3中。
我想显示所有自定义字段的值 - 即边栏上窗口小部件区域的总运送量。下面的代码是为我生成的,并显示了结帐页面的总发货量
add_action( 'woocommerce_cart_totals_before_shipping', 'display_cart_volume_total', 20 );
add_action( 'woocommerce_review_order_before_shipping', 'display_cart_volume_total', 20 );
function display_cart_volume_total() {
$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 > 0 ){
// The Output
echo ' <tr class="cart-total-volume">
<th>' . __( "Total Shipping Volume", "woocommerce" ) . '</th>
<td data-title="total-volume">' . number_format($total_volume, 2) . ' m3</td>
</tr>';
}
}
如何在某个页面上显示总数 - 比如在小部件区域?
我尝试了以下内容:
<?php
echo ' <tr class="cart-total-volume">
<th>' . __( "Total Shipping Volume", "woocommerce" ) . '</th>
<td data-title="total-volume">' . number_format($total_volume, 2) . ' m3</td>
</tr>';
?>
答案 0 :(得分:1)
您可以通过以下方式从您的功能创建自定义短代码:
add_shortcode( 'shipping_volume', 'display_total_shipping_volume' );
function display_total_shipping_volume( $atts ) {
ob_start(); // Start buffering output
echo '<table>';
display_cart_volume_total();
echo '</table>';
// Render output from buffer
return ob_get_clean();
}
您可以在默认的Wordpress&#34; Text&#34;中使用[shipping_volume]
插件...
或作为php片段:
<?php echo '<table>'; display_cart_volume_total(); echo '</table>'; ?>