2020年アップデート
最初に現在のユーザー ロールを取得するコードに基づいて、このカスタマイズされた関数を試してください。次にin_array()
、if ステートメントで php 条件付き関数を使用して、2 つのターゲット ロールを現在のユーザー ロールと比較します。このようにして、この「ゼロ レート」税クラスを有効にするかどうかを指定します。
コードは次のとおりです。
function wc_diff_rate_for_user( $tax_class, $product ) {
// Getting the current user
$current_user = wp_get_current_user();
$current_user_data = get_userdata($current_user->ID);
if ( in_array( 'administrator', $current_user_data->roles ) || in_array( 'reseller', $current_user_data->roles ) )
$tax_class = 'Zero Rate';
return $tax_class;
}
add_filter( 'woocommerce_product_tax_class', 'wc_diff_rate_for_user', 1, 2 );
更新 - WooCommerce 3 以降では、代わりに以下を使用します。
function wc_diff_rate_for_user( $tax_class, $product ) {
// Getting the current user
$current_user = wp_get_current_user();
$current_user_data = get_userdata($current_user->ID);
if ( in_array( 'administrator', $current_user_data->roles ) || in_array( 'reseller', $current_user_data->roles ) )
$tax_class = 'Zero Rate';
return $tax_class;
}
add_filter( 'woocommerce_product_get_tax_class', 'wc_diff_rate_for_user', 10, 2 );
add_filter( 'woocommerce_product_variation_get_tax_class', 'wc_diff_rate_for_user', 10, 2 );
このコードは、アクティブな子テーマ (またはテーマ) の functions.php ファイル、または任意のプラグイン ファイルにも含まれます。
このコードはテスト済みで、完全に機能します。