Я ищу способ добавить дополнительную строку в мои почтовые заказы woocommerce, с промежуточным итогом, включая доставку без учета налогов (или НДС). Этот ряд я хочу иметь до уплаты налогов. (это должен быть расчет суммы себестоимости товара + стоимость доставки)
так как это вычисление, это должно быть что-то вроде $ get_total_excl_taxes = $ order-> get_total () — $ order-> get_total_tax ();
Я должен вставить это в электронную почту child-order-details.php дочерней темы, которую я предполагаю. Однако, где я делаю это, это не работает.
Любая помощь будет принята с благодарностью.
<?php
$totals = $order->get_order_item_totals();
if ( $totals ) {
$i = 0;
foreach ( $totals as $total ) {
$i++;
?>
<tr>
<th class="td" scope="row" colspan="2" style="text-align:<?php echo esc_attr( $text_align ); ?>; <?php echo ( 1 === $i ) ? 'border-top-width: 4px;' : ''; ?>"><?php echo wp_kses_post( $total['label'] ); ?></th>
<td class="td" style="text-align:<?php echo esc_attr( $text_align ); ?>; <?php echo ( 1 === $i ) ? 'border-top-width: 4px;' : ''; ?>"><?php echo wp_kses_post( $total['value'] ); ?></td>
<here??>
</tr>
<?php
}
}
if ( $order->get_customer_note() ) {
?>
<tr>
<th class="td" scope="row" colspan="2" style="text-align:<?php echo esc_attr( $text_align ); ?>;"><?php esc_html_e( 'Note:', 'woocommerce' ); ?></th>
<td class="td" style="text-align:<?php echo esc_attr( $text_align ); ?>;"><?php echo wp_kses_post( wptexturize( $order->get_customer_note() ) ); ?></td>
</tr>
<?php
}
?>
Следующее добавит новую строку с итоговой суммой без НДС в итоговых суммах в уведомлениях по электронной почте:
add_filter( 'woocommerce_get_order_item_totals', 'add_order_total_excl_vat_row', 10, 3 );
function add_order_total_excl_vat_row( $total_rows, $order, $tax_display ) {
// Only on emails notifications
if( ! is_wc_endpoint_url() || ! is_admin() ) {
// Set last total row in a variable and remove it.
$gran_total = $total_rows['order_total'];
unset( $total_rows['order_total'] );
// Insert our new row
$total_rows['order_total_ev'] = array(
'label' => __( 'Total Excl. VAT :', 'woocommerce' ),
'value' => wc_price( $order->get_total() - $order->get_total_tax() ),
);
// Set back last total row
$total_rows['order_total'] = $gran_total;
}
return $total_rows;
}
Код помещается в файл function.php вашей активной дочерней темы (или активной темы). Проверено и работает.
Чтобы добавить эту новую строку перед строкой налога (если она включена в настройках налога), используйте вместо этого:
add_filter( 'woocommerce_get_order_item_totals', 'custom_order_total_excl_vat_row', 10, 3 );
function custom_order_total_excl_vat_row( $total_rows, $order, $tax_display ) {
// Only on emails notifications
if( ! is_wc_endpoint_url() || ! is_admin() ) {
$new_total_rows = array();
// Loop through total lines
foreach( $total_rows as $key => $values ){
if( $key === 'tax' ){
$new_total_rows['order_total_et'] = array(
'label' => __( 'Total Excl. VAT :', 'woocommerce' ),
'value' => wc_price( $order->get_total() - $order->get_total_tax() ),
);
}
$new_total_rows[$key] = $values;
}
return $new_total_rows;
}
return $total_rows;
}
Код помещается в файл function.php вашей активной дочерней темы (или активной темы). Проверено и работает.
Вы получите что-то вроде:
Других решений пока нет …