我的任务是修改现有的B2C WooCommerce商店以启用B2B批发订单。到目前为止,用户角色编辑器和用户角色的WooCommerce价格的组合允许我设置批发价格并使商店运作。
我面临的问题是,现在我被告知批发价格需要在没有增值税的情况下显示,直到结账,但由于我们位于英国,消费者无法以这种方式显示价格,这意味着我需要比WooCommerce本身允许更细粒度的控制。
我注意到已经解决了在Role based taxes in woocommerce为用户角色设置税的问题,但我真正需要的是一段代码或一个插件,可以让我设置“在商店中显示价格” “在WooCommerce的标准税务面板中为一个用户角色排除税,但默认为其他人包含税。
这可能吗?
答案 0 :(得分:8)
在我的functions.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";
}
}
答案 1 :(得分:2)
来自@ 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_tax_display_shop
角色/功能的用户的WooCommerce woocommerce_tax_display_cart
和retailer
选项。
答案 2 :(得分:0)
我没有足够的观点对这里的答案发表评论,但@ hagbard_2605的答案无效。我甚至找不到他提到的过滤器。您可以找到'woocommerce_tax_setting'过滤器:https://github.com/woothemes/woocommerce/blob/5ef335b169ff4e19a4c5b393963a369446922b0c/includes/admin/settings/views/settings-tax.php#L7。也许那会奏效。