Налоговый класс «Нулевая ставка» для каждой роли пользователя для определенных идентификаторов продукта

Я получил этот код, который будет облагать налогом бесплатно в роли пользователя независимо от того, что они заказывают, и это нормально.

Но теперь мне нужна другая роль пользователя, которая будет применять налоговые льготы для определенных продуктов id , и я не уверен, как это сделать.

Код im, использующий прямо сейчас для освобождения от налогов для всех продуктов для конкретной роли пользователя:

// Apply a different tax rate based on the user role. 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( 'userrolename', $current_user_data->roles ) ) $tax_class = 'Zero Rate'; return $tax_class; } add_filter( 'woocommerce_product_tax_class', 'wc_diff_rate_for_user', 1, 2 ); // Fin Apply a different tax rate based on the user role. 

Вот код, который будет применять этот налоговый класс «Zero Rate» для некоторых определенных продуктов и некоторых определенных пользовательских ролей:

 add_filter( 'woocommerce_product_tax_class', 'wc_diff_rate_for_user', 1, 2 ); function wc_diff_rate_for_user( $tax_class, $product ) { 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; } 

Этот код проверен и работает.

Код отправляется в любой php-файл вашей активной дочерней темы (или темы), а также в любых плагиновых php-файлах.

CASE 1 Через код

Вы можете использовать функцию add role например

 <?php add_role( $role, $display_name, $capabilities ); ?> 

пример

 add_role('basic_contributor', 'Basic Contributor', array( 'read' => true, // True allows that capability 'edit_posts' => true, 'delete_posts' => false, // Use false to explicitly deny )); 

CASE 2: через плагин

https://wordpress.org/plugins/user-role-editor/