2016-08-10 2 views
2

Как я могу получить все суммы заказов без форматирования цены в WooCommerce?Получить список заказов по идентификатору заказа без форматирования в 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 
) 

ответ

1

Try This

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

Спасибо, много работает. –

1

Да, это возможно. Вместо использования $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 
); 

Вы можете использовать все function methods in Class WC_Abstract_Order, чтобы получить различные итоговые показатели.

Поскольку каждый заказ может быть другим, Вы должны будете проверить некоторые из этих методов сначала в if заявления, используя внутри него empty() функции ...


Для общей стоимости заказа, вы можете также использовать get_post_meta() функцию:

$order_total = get_post_meta($order->id, '_order_total', true); 

Вы могли бы аль поэтому использовать эти другие meta_key, которые вы можете найти в wp_postmeta таблицы базы данных для order ID с get_post_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()); 

Ссылка:

+0

спасибо, что так много, но небольшая проблема, как я могу получить, какие итоги существуют в порядке. Я хочу перечислить итог, можете ли вы сказать, как я могу это сделать, спасибо –

+0

Я просто отправлю order_id и хочу получить массив из каждого order_totals.но в этом я должен проверять каждый раз, когда эта сумма существует или нет, а также я не могу получить другую пользовательскую сумму заказа, я хочу получить все это order_subtotal, order_total, order_shipping, cart_discount, order_tax, сборы, купоны и другие пользовательские всего порядка. я думаю, вы понимаете мою проблему, извините за английский. –

+0

ya ваш ответ слишком полезен, но теперь моя проблема все еще не решена. Я просто хочу массив, который я сказал в моем вопросе. это work '$ order-> get_order_item_totals();' но цена формируется, поэтому я не могу ее использовать. хочу сделать это, но не сформировать.thanks –