Php 获取WooCommerce中的订单小计值

Php 获取WooCommerce中的订单小计值,php,wordpress,woocommerce,shipping,orders,Php,Wordpress,Woocommerce,Shipping,Orders,我使用该模块计算本地承运人的交货,但该模块不计算总运费。 在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_

我使用该模块计算本地承运人的交货,但该模块不计算总运费。 在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>
因此,我只能得到经济成本、客户成本、运输成本,而不能从订单小计中得到总成本

请问,有人能告诉我使用什么来获取工作小计吗?

试试下面的代码$order\u total=get\u post\u meta$order\u id,“\u order\u total”,true

试试下面的代码$order\u total=get\u post\u meta$order\u id,'u order\u total',true

第一个“订单小计”不存在于“车间订单”职位类型的wp\U Posteta表中

最后一件非常重要的事情:不要直接在woocommerce插件中过度索引模板,以免在插件更新时丢失更改。通过将此“模板”文件夹复制到活动的子主题或主题并将其重命名,可以更好地覆盖此文件。请参阅此参考资料:

更改您的代码以获得答案

正如您在本模板开头所做的那样,$order=wc\U get\U order$order\U id;,您可以直接从$order使用类本机函数get_subtotal或get_total,而无需使用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>
这应该可以按照您的需要工作,但这不会更新订单总数,它只是显示它

参考资料:

第一个“订单小计”不存在于“车间订单”职位类型的wp_Posteta表中

最后一件非常重要的事情:不要直接在woocommerce插件中过度索引模板,以免在插件更新时丢失更改。通过将此“模板”文件夹复制到活动的子主题或主题并将其重命名,可以更好地覆盖此文件。请参阅此参考资料:

更改您的代码以获得答案

正如您在本模板开头所做的那样,$order=wc\U get\U order$order\U id;,您可以直接从$order使用类本机函数get_subtotal或get_total,而无需使用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>
这应该可以按照您的需要工作,但这不会更新订单总数,它只是显示它

参考资料:


尝试此$order->获取要显示的小计

试试这个$order->获取小计以显示

我的代码不起作用?我又试了一次-它起作用了!我的错误是我复制了所有代码并得到了错误:解析错误:语法错误,意外”,“我删除,//或$order->get_total和evreting工作得很好!:我更新我的代码,如果我遗漏了什么,请告诉我修复我的代码不工作?我再试了一次-它工作了!我的错误是我复制了所有代码并得到了错误:解析错误:语法错误,意外”,“我删除,//或$order->get_total和evreting工作得很好!:我更新我的代码,如果我遗漏了什么,请告诉我修复我的代码,非常感谢代码!!!只需一次更改,它就可以在电子邮件订单detayls文件中完美地为我工作!我只改变了这个:$display\u sum+=get\u post\u meta$order\u id到$display\u sum+=get\u post\u meta$order->idHi LoicTheAztec,非常感谢你的代码!!!只需一次更改,它就可以在电子邮件订单detayls文件中完美地为我工作!我只将:$display\u sum+=get\u post\u meta$order\u id更改为$display\u sum+=get\u post\u meta$order->id