Настройка параметров налога на основе ролей пользователей для продуктов вариации - PullRequest
0 голосов
/ 20 июня 2019

У меня есть функция, которая применяет другую налоговую ставку в зависимости от роли пользователя.

function wc_diff_rate_for_user( $tax_class, $product ) {
  if ( is_user_logged_in() && current_user_can( 'dealer-price-level' ) ) {
    $tax_class = 'Zero Rate';
  }
  return $tax_class;
}
add_filter( 'woocommerce_product_get_tax_class', 'wc_diff_rate_for_user', 1, 2 );

Однако она работает только для простых продуктов.

Для вариантов продуктов она нене применять налоговый класс "Нулевая ставка".

Мне пришлось добавить ручное исправление непосредственно в плагин WooCommerce.

A.Откройте /wp-content/plugins/woocommerce/includes/class-wc-product-variation.php

B.Найти строку ....

$value = $this->parent_data['tax_class'];

C.Замените на ...

if ( is_user_logged_in() && current_user_can( 'dealer-price-level' ) ) {
  $tax_class = 'Zero Rate';
} else {
  $value = $this->parent_data['tax_class'];
}

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

Но я совершенно потерян, как найти долгосрочное исправление,

Любой совет приветствуется.

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