2015-04-15 1 views
1

Мне было поручено модифицировать существующий магазин B2C WooCommerce, чтобы включить опционы B2B. Пока что сочетание Редактора роли пользователя и цен WooCommerce по роли пользователя позволило мне установить оптовые цены и сделать функционирование магазина.Отображение налогов в Woocommerce с помощью роли пользователя

Проблема, с которой я столкнулся, заключается в том, что теперь мне говорят, что оптовые цены должны отображаться без НДС до выписки, но поскольку мы находимся в Великобритании, потребителям не могут быть показаны цены в этом мода, что означает, что мне нужен более гранулированный контроль, чем позволяет WooCommerce.

Я заметил, что уже существует вопрос о настройке налогов для ролей пользователей в Role based taxes in woocommerce, но мне действительно нужна часть кода или плагин, который позволит мне установить переменную «Отображать цены в магазине» в Стандартная налоговая панель WooCommerce для исключения налога для одной роли пользователя, но по умолчанию включает в себя налог для всех остальных.

Возможно ли это?

ответ

6

Размещение для меня в моих функциях.php работает для меня. Я переопределяю параметр WooCommerce для отображения налога в магазине и тележке, если роль «розничный продавец».

add_filter('pre_option_woocommerce_tax_display_shop', 'override_tax_display_setting'); 
add_filter('pre_option_woocommerce_tax_display_cart', 'override_tax_display_setting'); 
function override_tax_display_setting() { 
    if (current_user_can('retailer')) { 
     return "excl"; 
    } else { 
     return "incl"; 
    } 
} 
0

У меня нет достаточно очков, чтобы прокомментировать ответ здесь, но ответ @ hagbard_2605 не работает. Я даже не могу найти фильтры, которые он упоминает. Однако вы можете найти фильтр «woocommerce_tax_setting»: https://github.com/woothemes/woocommerce/blob/5ef335b169ff4e19a4c5b393963a369446922b0c/includes/admin/settings/views/settings-tax.php#L7. Может быть, это сработает.

1

Решение от @ hagbard_2605 работает для меня, следующий пользовательский плагин работает с WordPress 4.6 и WooCommerce 2.2.3:

<?php 
/* 
Plugin Name: My WooCommerce Prices Excluding Tax for Distributors 
Plugin URI: https://www.pronamic.eu/ 
Description: Display WooCommerce prices exlcuding tax for distributors. 
Author: Pronamic 
Version: 1.0.0 
Author URI: https://www.pronamic.eu/ 
*/ 

/** 
* Override WooCommerce tax display option for distributors. 
* 
* @see http://stackoverflow.com/questions/29649963/displaying-taxes-in-woocommerce-by-user-role 
* @see https://github.com/woothemes/woocommerce/blob/v2.2.3/includes/admin/settings/class-wc-settings-tax.php#L147-L158 
* @see https://github.com/woothemes/woocommerce/blob/v2.2.3/includes/admin/settings/class-wc-settings-tax.php#L166-L178 
* @see https://github.com/WordPress/WordPress/blob/4.6.1/wp-includes/option.php#L37-L52 
*/ 
function my_override_woocommerce_tax_display($value) { 
    if (current_user_can('retailer')) { 
     return 'excl'; 
    } 

    return $value; 
} 

add_filter('pre_option_woocommerce_tax_display_shop', 'my_override_woocommerce_tax_display'); 
add_filter('pre_option_woocommerce_tax_display_cart', 'my_override_woocommerce_tax_display'); 

WordPress pre_option_ фильтр используется для переопределения WooCommerce woocommerce_tax_display_shop и woocommerce_tax_display_cart параметры для пользователей с ролью/возможностями retailer.

Смежные вопросы