Jua*_*vid 7 php wordpress product woocommerce tax
通过WooCommerce,我使用的是Traveler高级主题
我需要在旅游和酒店中停用(TAX),我正在尝试使用此代码:
add_filter( 'woocommerce_product_tax_class', 'wc_diff_rate_for_user', 1, 2 );function wc_diff_rate_for_user( $tax_class, $cart_item ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
// Define HERE your targeted products IDs
$products_ids_arr = array(12 ,15, 24);
// Define HERE your targeted user roles
$users_role_arr = array('administrator', 'userrolename');
//Getting the current user data
$user_data = get_userdata(get_current_user_id());
foreach ($users_role_arr as $user_role)
if ( in_array( $user_role, $user_data->roles ) && in_array( $cart_item->id, $products_ids_arr ) ) {
$tax_class = 'Zero Rate';
break;
}
return $tax_class;}
Run Code Online (Sandbox Code Playgroud)
此代码来自此答案:特定产品ID上的每个用户角色的税级"零费率"
但是没有办法,这不是选择.我不能让它只为旅游和酒店停用税.
我需要一些帮助,以了解我如何才能在WooCommerce中为我的主题中的旅游和酒店实现免税.
重要更新
我正在使用这个小和平代码从购物车输出我的定制产品类型,我有3种不同的产品类型:
add_action('woocommerce_before_cart_table','output_cart_raw_data');
function output_cart_raw_data(){
$count = 0;
foreach(WC()->cart->get_cart() as $cart_item){
$count++;
echo 'Product ' . $count . ' has a post type of: ' . $cart_item['st_booking_data']['st_booking_post_type'] . '<br>;
}
}
Run Code Online (Sandbox Code Playgroud)
它在我的购物车页面输出(使用的产品类型):
Product 1 has a post type of: st_tours
Product 2 has a post type of: st_hotel
Product 3 has a post type of: st_activity
Run Code Online (Sandbox Code Playgroud)
如何'Zero Tax'激活st_tours和st_activity产品类型?
谢谢
根据您的问题上次更新,这非常简单...您的产品有自定义预订类型。您有 3 种预订类型,并且您希望获得除“st_hotel”产品类型之外的所有产品类型的“零税”率。
\n\n所以代码将是:
\n\nadd_filter( \'woocommerce_product_tax_class\', \'wc_diff_rate_for_user\', 1, 2 );\nfunction wc_diff_rate_for_user( $tax_class, $product ) {\n\n if ( is_admin() && ! defined( \'DOING_AJAX\' ) )\n return;\n\n // Iterating through each cart items\n foreach(WC()->cart->get_cart() as $cart_item){\n\n if($product->id == $cart_item[\'product_id\']){\n $booking_post_type = $cart_item[\'st_booking_data\'][\'st_booking_post_type\'];\n break;\n }\n $count++;\n echo \'Product \' . $count . \' has a post type of: \' .$cart_item[\'st_booking_data\'][\'st_booking_post_type\']. \'<br>;\n }\n\n // If the booking post type is different than \'st_hotel\', the "Zero Tax" rate is applied\n if( \'st_hotel\' != $booking_post_type ){\n $tax_class = \'Zero Rate\';\n }\n\n return $tax_class;\n\n}\nRun Code Online (Sandbox Code Playgroud)\n\n代码位于活动子主题(或主题)的 function.php 文件中或任何插件文件中。
\n\n此代码经过测试并且可以运行\xe2\x80\xa6
\n\n代码错误
\n