通过订单ID获取订单总计,而无需在WooCommerce中设置格式

时间:2016-08-10 13:58:21

标签: php wordpress woocommerce product orders

如何在WooCommerce中获得没有价格格式的所有订单总数?

我试过这个:

$order->get_order_item_totals()

但我得到这样的格式化价格:

cart_subtotal = array( 
   'label' => Subtotal
   'value' => <span class="amount">$30.75</span><small class="tax_label">(ex. tax)</small>
)
total = array( 
   'label' => Total
   'value' => <span class="amount">$30.75</span>
)

相反,我希望有这样的东西:

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

2 个答案:

答案 0 :(得分:1)

是的,这是可能的。而是使用 fitsystemwindows = true ,您应该使用:

$order->get_order_item_totals();
  

您可以使用所有function methods in Class WC_Abstract_Order来获得不同的总数。

由于每个订单可能不同,您需要首先在 // 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 ); 语句中使用 {{1功能......

对于订单总计,您还可以使用 if 功能:

empty()

您还可以使用 get_post_meta() $order_total = get_post_meta( $order->id, '_order_total', true); 数据库表中找到 meta_key的其他 wp_postmeta 使用order ID函数进行自定义计算:

get_post_meta()

如果您想查看订单ID 中的所有数据(包括客户详细信息,订单商品以及其他更多信息......),您应该使用仅用于视图测试:

$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);

参考:

答案 1 :(得分:1)

  

试试这个   

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
);
}