2017-01-09 4 views
0

여러 사용자가있는 woocommerce 상점을 설정했습니다 (B2C & B2B). 그들 중 일부는 자동으로 세금 면제가되며 카트/체크 아웃에서 세금이 사라집니다. 다른 가격에 다양한 가격을 제공하기 위해 동적 가격 플러그인을 사용했지만 세금 변동에 대한 옵션은 없습니다.woocommerce/장바구니 페이지의 역할 기반 세금

나는이 대답을 발견하고 그것을 자리에 넣으려고했다. Role based taxes in woocommerce @ Jplus2가 말하는 것처럼, @ dryan144 솔루션은 체크 아웃 중에 만 적용되고 카트에는 적용되지 않기 때문에 좋지 않다. 나는 방법을 알아 내려고 노력했지만 여전히 "손님"또는 "고객"의 가격에 포함되어 있기 때문에세금을 표시하기 위해 my 'cart' page을 새로 고쳐야합니다. 내 장바구니 페이지 ?라고

나는 한 다음. 그것은 때로는 바로 작동하고

add_filter('woocommerce_before_cart_contents', 'prevent_wholesaler_taxes'); 
add_filter('woocommerce_before_shipping_calculator', 'prevent_wholesaler_taxes'); 
add_filter('woocommerce_before_checkout_billing_form', 'prevent_wholesaler_taxes'); 

function prevent_wholesaler_taxes() { 
    global $woocommerce; 
    if (is_user_logged_in() && !(current_user_can('customer'))){ 
       $woocommerce->customer->set_is_vat_exempt(false); 
     } else { 
       $woocommerce->customer->set_is_vat_exempt(true); 
     } 
} //end prevent_wholesaler_taxes 

하지만 대부분의 시간에만 좋지 않아 내 카트의 새로 고침 후 작업 후 에 https://eshoes.com.au/product/test-shoes08/를 추가하려고 것 장바구니에 -> 바구니보기

어떤 도움을 greately 주시면 감사하겠습니다)

건배

답변

0

이 솔루션은 대신 set_is_vat_exempt을 (사용하는, 완벽하게 작동) 나는 단순히 사용 $ 세) 클래스 = '제로 속도'

add_filter('woocommerce_before_cart_contents', 'wc_diff_rate_for_user', 1, 2); 
add_filter('woocommerce_before_shipping_calculator', 'wc_diff_rate_for_user', 1, 2); 
add_filter('woocommerce_before_checkout_billing_form', 'wc_diff_rate_for_user', 1, 2); 
add_filter('woocommerce_product_tax_class', 'wc_diff_rate_for_user', 1, 2); 
function wc_diff_rate_for_user($tax_class) { 

    if (!is_user_logged_in() || current_user_can('customer')) { 
     $tax_class = 'Zero Rate'; 
    } 
    return $tax_class; 
}