我使用该模块计算本地承运商的交货,但该模块不计算运费总额。
在wp-content/plugins/woocommerce/templates/order/order-details.php
我添加了以下代码以获取运费和小计:
<?php $a = array(
get_post_meta($order_id, 'Order_subtotal', true),
get_post_meta($order_id, 'Econt_Customer_Shipping_Cost', true));
?>
<tr class="total-cost">
<th><?php _e( 'Total:', 'woocommerce'); ?></th>
<td><?php echo array_sum($a); ?> <?php echo get_woocommerce_currency_symbol(); ?></td>
</tr>
因此,我只获取"Econt_Customer_Shipping_Cost"
的值,但不是"Order_subtotal"
来获取总数。
请有人告诉我使用什么来获得工作小计?
答案 0 :(得分:3)
'Order_subtotal'
后期类型的wp_postmeta表中不存在第一个'shop_order'
。
最后一件非常重要的事情:不要直接在woocommerce插件中覆盖模板,以避免在更新插件时丢失更改。您可以更好通过复制此 'templates'
文件夹覆盖此文件到您的活动子主题或主题,并将其重命名为woocommerce。
请参阅此参考:Overriding WooCommerce Templates via a Theme ...
更改代码(答案)
正如您已经在此模板$order = wc_get_order( $order_id );
的开头一样,您可以直接从get_subtotal( )
使用课程WC_Abstract_Order原生函数get_total( )
或$order
,不使用get_post_meta()
Wordpress功能。
我在代码中更改了一些内容:
<?php
$display_sum = $order->get_subtotal( ); // or $order->get_total( );
$display_sum += get_post_meta( $order->id, 'Econt_Customer_Shipping_Cost', true );
$display_sum .= ' '. get_woocommerce_currency_symbol( );
?>
<tr class="total-cost">
<th><?php _e( "Total:", "woocommerce" ); ?></th>
<td><?php echo $display_sum; ?></td>
</tr>
这应该可以按你的需要工作,但这不会更新订单总数,只是显示它。
参考文献:
答案 1 :(得分:2)
试试此代码$order_total = get_post_meta ($order_id , '_order_total', true);
答案 2 :(得分:0)
试试这个$order->get_subtotal_to_display();