일부 사용자 지정 예약 제품 유형에 대해 "세금 제로" 요금 설정
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;}
이 코드는 다음 답변에서 가져옵니다. 특정 제품 ID에 대한 사용자 역할당 세금 클래스 "제로 레이트"
하지만 방법이 없고 이것은 선택사항이 아닙니다.투어와 호텔에 대해서만 Tax를 비활성화하는 것은 불가능합니다.
WooCommerce에서 제 테마에 맞는 투어와 호텔에 대해서만 세금을 비활성화하는 방법을 이해하려면 도움이 필요합니다.
중요 업데이트
저는 이 작은 평화 코드를 사용하여 카트에서 맞춤형 제품 유형을 출력하고 있으며, 여기에는 세 가지 다른 유형의 제품 유형이 있습니다.
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>;
}
}
다음과 같은 내용이 카트 페이지에 출력됩니다(사용된 제품 유형).
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
어떻게 해야 합니까?'Zero Tax'
에 대해 활성화된.st_tours
그리고.st_activity
제품 유형?
감사해요.
마지막 업데이트에 대한 질문으로, 이것은 매우 쉽습니다...제품에는 사용자 지정 예약 유형이 있습니다.예약 유형은 3가지이며 'st_hotel' 제품 유형을 제외한 모든 제품 유형에 대해 "세금 제로" 요금을 받으시려고 합니다.
코드는 다음과 같습니다.
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;
// Iterating through each cart items
foreach(WC()->cart->get_cart() as $cart_item){
if($product->id == $cart_item['product_id']){
$booking_post_type = $cart_item['st_booking_data']['st_booking_post_type'];
break;
}
$count++;
echo 'Product ' . $count . ' has a post type of: ' .$cart_item['st_booking_data']['st_booking_post_type']. '<br>;
}
// If the booking post type is different than 'st_hotel', the "Zero Tax" rate is applied
if( 'st_hotel' != $booking_post_type ){
$tax_class = 'Zero Rate';
}
return $tax_class;
}
코드가 작동합니다.활성 하위 테마(또는 테마)의 php 파일 또는 플러그인 파일에도 있습니다.
이 코드는 테스트를 거쳐 작동합니다.
코드의 오류
언급URL : https://stackoverflow.com/questions/42194167/set-zero-tax-rate-to-a-some-custom-booking-product-types
'programing' 카테고리의 다른 글
R 데이터 프레임에서 'Inf' 값 정리 (0) | 2023.06.30 |
---|---|
데이터베이스에서 문자열 일부 검색 및 바꾸기 (0) | 2023.06.30 |
Spring @ConditionalOnProperty, 누락된 경우에만 일치시키는 방법 (0) | 2023.06.30 |
Excel에서 데이터 점 보간 (0) | 2023.06.30 |
GCC의 __attribute__(...) 구문이 이중 괄호를 사용하는 이유는 무엇입니까? (0) | 2023.06.30 |