Ролевые налоги в woocommerce

Я пытаюсь создать магазин woocommerce, чтобы пользователи, имеющие роль оптовика или дизайнера, автоматически освобождались от уплаты налогов и просто уходили с налога из корзины / выписки. Я использовал плагин динамического ценообразования, чтобы предлагать разные цены для разных ролей, но нет вариантов изменения налогов.

Кто-то разместил этот код:

// Place the following code in your theme's functions.php file and replace tax_exempt_role with the name of the role to apply to add_action( 'init', 'woocommerce_customer_tax_exempt' ); function woocommerce_customer_tax_exempt() { global $woocommerce; if ( is_user_logged_in() ) { $tax_exempt = current_user_can( 'tax_exempt_role'); $woocommerce->customer->set_is_vat_exempt( $tax_exempt ); } } 

Кажется, что он работает на передней панели, но разбивает сервер. после добавления его в functions.php, когда я вернусь в область администрирования и увижу это: http://img.ruphp.com/php/nNHMSAZ.png (это только новая страница с ошибками Chrome)?

Другая вещь, которую я не мог понять, состоит в том, как добавить 2 роли вместо одного.

благодаря

Следующее работало для меня для роли пользователя «оптовый продавец». Добавлено в functions.php.

 add_filter( 'woocommerce_before_checkout_billing_form', 'prevent_wholesaler_taxes' ); function prevent_wholesaler_taxes() { global $woocommerce; if( current_user_can('wholesaler')) { $woocommerce->customer->set_is_vat_exempt(true); } else { $woocommerce->customer->set_is_vat_exempt(false); } } //end prevent_wholesaler_taxes на add_filter( 'woocommerce_before_checkout_billing_form', 'prevent_wholesaler_taxes' ); function prevent_wholesaler_taxes() { global $woocommerce; if( current_user_can('wholesaler')) { $woocommerce->customer->set_is_vat_exempt(true); } else { $woocommerce->customer->set_is_vat_exempt(false); } } //end prevent_wholesaler_taxes на add_filter( 'woocommerce_before_checkout_billing_form', 'prevent_wholesaler_taxes' ); function prevent_wholesaler_taxes() { global $woocommerce; if( current_user_can('wholesaler')) { $woocommerce->customer->set_is_vat_exempt(true); } else { $woocommerce->customer->set_is_vat_exempt(false); } } //end prevent_wholesaler_taxes 

Чтобы добавить несколько пользовательских ролей, просто добавьте в current_user_can(); функция. Я думаю, что это может сработать:

  if( current_user_can('wholesaler')||current_user_can('another_user_role') ) 

Я заметил, что при использовании «woocommerce_before_checkout_billing_form» сначала необходимо обновить или обновить страницу проверки, тогда вам нужно обновить страницу корзины, чтобы она вступила в силу.

Используйте эти крючки действий, «woocommerce_before_cart_contents» и «woocommerce_before_shipping_calculator», чтобы освобождение от уплаты налогов вступало в силу без предварительного обновления страницы проверки.

Примечание: используйте один и тот же код функции обратного вызова, как указано выше.