Я уже несколько дней ищу безуспешное решение для работы.Но я нашел решение только сейчас, не уверен, что это хак или хорошее кодирование, но оно работает для меня.У меня есть этот код внутри моей функции.
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 );
Нужно добавить случай по умолчанию, сделаю позже, но он работает для этогорешение.Возможно, это сработает для кого-то другого, или если у вас есть лучшее решение, дайте мне знать.
И результат выглядит следующим образом.