2016-10-03 1 views
1

WooCommerce 웹 사이트에서 대리점리셀러에 판매 할 예정입니다. 문제는 리셀러은 TAXES가 면제되므로 특정 고객 역할에 대해 0 세율을 적용 할 수있는 맞춤 기능이 필요합니다 (WooCommerce가 자체적으로 수행 한 경우 최적 일 수 있지만 그렇지 않음).WooCommerce - 특정 사용자 역할에 대해 "Zero rate"세금 클래스 활성화

내 문제는 고객이 관리자 또는 리셀러 인 경우 0 세금 계산을 변경하는 방법을 모르겠다는 것을 제외하고는 완벽하게 작동한다는 것입니다.

function wc_diff_rate_for_user($tax_class, $product) { 

    if (is_user_logged_in() && current_user_can('administrator')) { 
     $tax_class = 'Zero Rate'; 
    } 
    return $tax_class; 
} 

add_filter('woocommerce_product_tax_class', 'wc_diff_rate_for_user', 1, 2); 

어떻게 그것이 작동되도록하려면이 코드를 수정할 수 있습니다, 그 사용자 역할 : 여기

내가 사용하고있는 코드?

감사합니다.

+0

간단한 if 문이 효과가 있습니다. $ tax_class == '0 %'인 경우 추가 세금을 계산하지 마십시오. 그렇지 않으면 추가 세금을 계산하십시오. 아마도 코드를 더 많이 공유 할 것입니까? – mba12

답변

2

먼저 현재 사용자 역할을 얻는 코드를 기반으로이 맞춤식 기능을 시험해보십시오. 그런 다음 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); 

이 코드는 활성 자식 테마 (또는 테마)의 function.php 파일에 간다 나 : 여기

는 코드입니다.

이 코드는 테스트를 거쳐 완전히 작동합니다.

+0

항상 그렇듯이, 당신은 천재적 인 남자입니다. 당신 없이는 내가 무엇을 할 것입니까? XD –

관련 문제