Если вы хотите, чтобы это изменение во всех уведомлениях по электронной почте , вы будете использовать следующий код, который будет отображать общую сумму (без отображаемых налогов) и налоги в отдельной новой строке:
add_filter( 'woocommerce_get_order_item_totals', 'insert_custom_line_order_item_totals', 10, 3 );
function insert_custom_line_order_item_totals( $total_rows, $order, $tax_display ){
// Only on emails notifications
if( ! is_wc_endpoint_url() ) {
// Change: Display only the gran total amount
$total_rows['order_total']['value'] = strip_tags( wc_price( $order->get_total() ) );
// Create a new row for total tax
$new_row = array( 'order_tax_total' => array(
'label' => __('BTW:','woocommerce'),
'value' => strip_tags( wc_price( $order->get_total_tax() ) )
) );
// Add the new created to existing rows
$total_rows += $new_row;
}
return $total_rows;
}
Код помещается в файл function.php вашей активной дочерней темы (или активной темы).Протестировано и работает.
Если вы хотите, чтобы предназначался только для уведомления по электронной почте «Счет клиента» , вместо этого выпотребуется внести изменения в шаблон emails/email-order-details.php
, переопределяя его в вашей теме.
Пожалуйста, сначала прочтите документацию: Структура шаблона и шаблоны переопределения в теме
Один разВы скопировали emails/email-order-details.php
файл шаблона в папку своей темы, откройте / отредактируйте его.
В строке 64 после:
$totals = $order->get_order_item_totals();
Добавьте следующее:
// Only Customer invoice email notification
if ( $email->id === 'customer_invoice' ):
// Change: Display only the gran total amount
$totals['order_total']['value'] = strip_tags( wc_price( $order->get_total() ) );
// Create a new row for total tax
$new_row = array( 'order_tax_total' => array(
'label' => __('BTW:','woocommerce'),
'value' => strip_tags( wc_price( $order->get_total_tax() ) )
) );
// Add the new created to existing rows
$totals += $new_row;
endif;
Проверено и работает тоже ...