Php 在WooCommerce中按订单id获取订单总计,无需格式化

Php 在WooCommerce中按订单id获取订单总计,无需格式化,php,wordpress,woocommerce,product,orders,Php,Wordpress,Woocommerce,Product,Orders,在WooCommerce中,如果没有价格格式,如何获取所有订单总计 我试过这个: 但我得到的格式价格如下: cart\u小计=数组( “标签”=>小计 “价值”=>30.75美元(不含税) ) 总计=数组( “标签”=>总计 “价值”=>30.75美元 ) 相反,我想要这样的东西: cart_subtotal = array( 'label' => Subtotal 'value' => 30.75 ) total = array( 'label' =>

在WooCommerce中,如果没有价格格式,如何获取所有订单总计

我试过这个:

但我得到的格式价格如下:

cart\u小计=数组(
“标签”=>小计
“价值”=>30.75美元(不含税)
)
总计=数组(
“标签”=>总计
“价值”=>30.75美元
)
相反,我想要这样的东西:

cart_subtotal = array( 
   'label' => Subtotal
   'value' => 30.75
)
total = array( 
   'label' => Total
   'value' => 30.75
)

是的,这是可能的。而是使用
$order->get_order_item_totals(),您应该使用:

// For Order Sub-Total:
$order_subtotal = $order->get_subtotal();

// For Order Total:
$order_total = $order->get_total();

$cart_subtotal = array( 
    'label' => 'Subtotal',
    'value' => $order_subtotal
);

$cart_total = array( 
     'label' => 'Total',
     'value' => $order_total
);
您可以使用所有的来获得不同的总数

由于每个顺序可能不同,您需要首先在
if
语句中使用
empty()
函数测试其中一些方法


对于订单总额,您还可以使用
获取post\u meta()
函数:

$order_total = get_post_meta( $order->id, '_order_total', true);
您还可以使用这些其他的
,您可以在
wp\u Posteta
数据库表中找到这些键,用于
订单ID
get\u post\u meta()
函数进行自定义计算:

$order_shipping =     get_post_meta( $order->id, '_order_shipping', true);
$order_discount =     get_post_meta( $order->id, '_cart_discount', true);
$order_discount_tax = get_post_meta( $order->id, '_cart_discount_tax', true);
$order_tax =          get_post_meta( $order->id, '_order_tax', true);
$order_shipping_tax = get_post_meta( $order->id, '_order_shipping_tax', true);

// this one you get it yet
$order_total =        get_post_meta( $order->id, '_order_total', true);
如果您想查看一个订单ID中的所有数据(包括客户详细信息、订单项和更多信息),您应该仅使用以下内容进行查看测试:

echo var_dump( $order->get_order_item_totals() );

参考:

试试这个


谢谢你这么多的工作,但小问题,我如何才能得到哪些总数存在的顺序。我想列出总计,你能告诉我怎么做吗?谢谢。我只是发送订单id,想得到每个订单总计的数组。但在这里,每次我都要检查这个总计是否存在,也不能得到其他自定义订单总计,我想得到所有订单小计,订单总计,订单发货,购物车折扣,订单税,费用,优惠券和其他定制订单总额。我想你理解我的问题,抱歉用英语。你的回答太有用了,但现在我的问题仍然没有解决。我只想把我在问题中说的排列起来。这是工作
$order->get_order_item_totals()但价格已格式化,因此我无法使用。想要这样,但不要形成。谢谢我们。非常感谢它的工作。
echo var_dump( $order->get_order_item_totals() );
if ( $subtotal = (float)$order->get_subtotal()) {
$total_rows[] = array(
    'title' => 'Subtotal:',
    'value' => $subtotal
);
}
if ($cart_discount = (float)get_post_meta($order_id, '_cart_discount', true)) {
$total_rows[] = array(
    'title' => 'Discount:',
    'value' => $order->cart_discount
);
}
if ($order_shipping = (float)get_post_meta($order_id, '_order_shipping', true)) {
$total_rows[] = array(
    'title' => 'Shipping:',
    'value' => $order_shipping
);
}
if ($order_tax = (float)get_post_meta($order_id, '_order_tax', true)) {
$total_rows[] = array(
    'title' => 'tax:',
    'value' => $order_tax
);
}
if ($gettotals = (float)$order->get_total()){
$total_rows[] = array(
    'title' => 'Total:',
    'value' => $gettotals
);
}