Добавьте сумму налога в виде отдельной строки в почтовые уведомления Woocommerce - PullRequest
0 голосов
/ 22 октября 2018

Я хотел бы отредактировать содержание счета Woocommerce , которое покупатели получают после заказа.Я думаю, что мне нужно отредактировать этот файл, расположенный по адресу wp-content / plugins / woocommerce / templates / emails / email-order-details.php

, используя следующий код:

<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>

Теперь он показывает детали НДС по тому же правилу, что и общая цена, но я бы хотел, чтобы оно было по отдельному правилу:

Totaal: €50,00
BTW:    €8,68

Кто-нибудь знает, как это сделать?

1 Ответ

0 голосов
/ 22 октября 2018

Если вы хотите, чтобы это изменение во всех уведомлениях по электронной почте , вы будете использовать следующий код, который будет отображать общую сумму (без отображаемых налогов) и налоги в отдельной новой строке:

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 вашей активной дочерней темы (или активной темы).Протестировано и работает.

enter image description here


Если вы хотите, чтобы предназначался только для уведомления по электронной почте «Счет клиента» , вместо этого выпотребуется внести изменения в шаблон 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;

Проверено и работает тоже ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...