Есть ли фильтр или хук для изменения WC_Tax :: get_rate_label ($ key) в woocommerce? - PullRequest
0 голосов
/ 16 июня 2019

Я пытаюсь изменить метку налога на корзине, проверке заказа и электронной почте.

Я попытался создать функцию с помощью 'woocommerce_get_order_item_totals', а также с 'woocommerce_get_formatted_order_total' Не повезло.Он либо удаляет все, либо добавляет новую строку, но изменяя $ tax_totals [$ code] -> label

. У меня есть флажок, который дает клиентам возможность применять освобождение от уплаты налога для заказа.Это все работает очень хорошо.Если выбрано, то будет установлено значение TAX Amount равное 0,00, но на этикетке будет указан НДС или TAX или BTW (голландская метка). Я добавил нулевые ставки в бэкэнд, Фразовые совпадения используются для идентификации НДС (НДС, НДС, IVA, IVA, налог на добавленную стоимость, TVA, TVA, BTW, BTW, освобождение от налогов, vrijgesteld van BTW) Я добавил нулевую ставку по коду страны GB, освобождение от налогов (0%)корзина, оформление заказа, проверка заказа и электронная почта в качестве НДС или (BTW) независимо от страны.

Это то, что я хочу изменить

1 Ответ

0 голосов
/ 16 июня 2019

Я уже несколько дней ищу безуспешное решение для работы.Но я нашел решение только сейчас, не уверен, что это хак или хорошее кодирование, но оно работает для меня.У меня есть этот код внутри моей функции.

add_action( woocommerce_checkout_update_order_review','taxexempt_checkout_based_on_checkbox');
function taxexempt_checkout_based_on_checkbox( $post_data) {
global $woocommerce;    
$woocommerce->customer->set_is_vat_exempt( false );
parse_str($post_data);

if ( $billing_taxexempt === '1' && $billing_confirmed === '1' && 
!empty($billing_signature) && ! empty($billing_declaration)){
    $woocommerce->customer->set_is_vat_exempt( true );  

 } 
 }

Это применимо к заказу без налога.Я добавил фильтр к этому чуть ниже .... set_is_vat_exempt (true) ..

add_filter( 'woocommerce_countries_tax_or_vat', function () { return __( 'Tax Exempt', 'woocommerce' ); }); 

И я добавил функцию, которую нашел // Измените текст "Billing Details" на "Сведения о доставке"на странице оформления заказа в Woocommerce

Я немного его изменил, но он работает для меня.

function wc_change_field_strings( $translated_text, $text, $domain ) {
$language = get_locale();
$domain = 'woocommerce';
if($language == 'en_GB' ){
    switch ( $translated_text ) {
    case 'Tax Exempt' :
        $translated_text = __( 'Tax Exempt', $domain );
        break;
}
return $translated_text;
}

if($language == 'nl_NL' ){
    switch ( $translated_text ) {
    case 'Tax Exempt' :
        $translated_text = __( 'vrijgesteld van BTW', $domain);
        break;
}
return $translated_text;
}
}
add_filter( 'gettext', 'wc_change_field_strings', 20, 3 );

Нужно добавить случай по умолчанию, сделаю позже, но он работает для этогорешение.Возможно, это сработает для кого-то другого, или если у вас есть лучшее решение, дайте мне знать.

И результат выглядит следующим образом.

...