Вы не можете получить это на самом деле, но вы можете использовать $key
, чтобы нацелиться на total line type
, и вы можете использовать $this->order
, который является экземпляром объекта WC_Order
с любым методом WC_Order
.
Чтобы получить общую неформатированную сумму (включая налоги), вы будете использовать $this->order->get_total()
…
Некоторые из доступных $keys
:
cart_subtotal
discount
(если применяются купоны) shipping
fee_1234
(если естьэто плата, и где 1234
это идентификатор товара ... они могут быть разными) tax
(в зависимости от того, как налоги отображаются в ваших настройках) payment_method
(кажется, это скрыто некоторыми CSS) order_total
Итак, в этом коде:
<?php
// The line totals data array (in a variable)
$wc_totals = $this->get_woocommerce_totals();
// Some order unformatted amounts
$order_total = $this->order->get_total();
$order_total_tax = $this->order->get_total_tax();
## Manipulating amounts (example) ##
// Order Total (rounding total amount)
$wc_totals['order_total']['value'] = strip_tags( wc_price( round( $order_total ) ) );
?>
<?php foreach( $wc_totals as $key => $total ) : ?>
<tr class="<?php echo $key; ?>">
<td class="no-borders"></td>
<th class="description"><?php echo $total['label']; ?></th>
<td class="price"><span class="totals-price"><?php echo $total['value']; ?></span></td>
</tr>
<?php endforeach; ?>
Протестировано и работает.
Вы также можете добавить дополнительные строки итогов или удалить их с помощью unset () и правильного ключа…
Чтобы добавить строку после строки итоговой отгрузки (пример):
<?php
// The line totals data array (in a variable)
$wc_totals = $this->get_woocommerce_totals();
$wc_new_totals = []; // Initialising
foreach ( $wc_totals as $key => $total ) {
$wc_new_totals[$key] = $total;
if ( $key === 'shipping' ) {
$wc_new_totals['shipping_avg'] = [
'label' => __( "Shipping average" ),
'value' => __( "15 days" ),
];
}
}
?>
<?php foreach( $wc_new_totals as $key => $total ) : ?>
<tr class="<?php echo $key; ?>">
<td class="no-borders"></td>
<th class="description"><?php echo $total['label']; ?></th>
<td class="price"><span class="totals-price"><?php echo $total['value']; ?></span></td>
</tr>
<?php endforeach; ?>