Steuern programmgesteuert für eine bestimmte Benutzerrolle deaktivieren

Lesezeit: 2 Minuten

Benutzer-Avatar
Simanto

Auf meiner WooCommerce-Website habe ich Steuern in den allgemeinen WooCommerce-Einstellungen aktiviert.

Ich möchte die Steuer für eine bestimmte Benutzerrolle programmgesteuert (mit beliebigen Hooks), in meinem Shop, auf der Checkout-Seite und in der Bestell-E-Mail deaktivieren.

Wie könnte ich das erreichen?

Vielen Dank

Benutzer-Avatar
LoicTheAztec

2020-Aktualisierung

Sie können die WooCommerce-Steuer für eine bestimmte Benutzerrolle nicht programmgesteuert deaktivieren. Sie können jedoch für eine bestimmte Benutzerrolle einen Nullsteuersatz beantragen.

Zuerst müssen Sie diese spezifische Benutzerrolle in Worpress festlegen. Wenn dies der Fall ist, nehmen wir an, dass diese benutzerdefinierte Benutzerrolle dies ist 'resellers' für mein Codebeispiel.

Zweitens müssen Sie in den WooCommerce-Einstellungen a aktivieren Null Steuersatz:

Geben Sie hier die Bildbeschreibung ein

Und dann müssen Sie dies für jedes Land festlegen Null Steuersatz:

Geben Sie hier die Bildbeschreibung ein

Dritte – Dann wird diese eingehakte Funktion den Zweck erfüllen:

Update – Seit WooCommerce 3 verwenden Sie Folgendes:

function zero_rate_for_custom_user_role( $tax_class, $product ) {
    // Getting the current user 
    $current_user = wp_get_current_user();
    $current_user_data = get_userdata($current_user->ID);
    
    //  <== <== <== <== <== <== <== Here you put your user role slug 
    if ( in_array( 'resellers', $current_user_data->roles ) )
        $tax_class="Zero Rate";

    return $tax_class;
}
add_filter( 'woocommerce_product_get_tax_class', 'wc_diff_rate_for_user', 10, 2 );
add_filter( 'woocommerce_product_variation_get_tax_class', 'wc_diff_rate_for_user', 10, 2 );

Verwenden Sie vor WooCommerce Version 3 Folgendes:

function zero_rate_for_custom_user_role( $tax_class, $product ) {
    // Getting the current user 
    $current_user = wp_get_current_user();
    $current_user_data = get_userdata($current_user->ID);
    
    //  <== <== <== <== <== <== <== Here you put your user role slug 
    if ( in_array( 'resellers', $current_user_data->roles ) )
        $tax_class="Zero Rate";

    return $tax_class;
}
add_filter( 'woocommerce_product_tax_class', 'zero_rate_for_custom_user_role', 10, 2 );

Sie müssen nur anstelle von „Wiederverkäufern“ Ihren gewünschten Benutzerrollen-Slug eingeben.

Dieser Code geht in die functions.php-Datei Ihres aktiven Child-Themes (oder Themes) oder auch in jede Plugin-Datei.

Dieser Code ist getestet und voll funktionsfähig.

Referenz: WooCommerce – Aktivierung der Steuerklasse „Nullsatz“ für einige spezifische Benutzerrollen

  • Was ist, wenn ich für nicht angemeldete Benutzer deaktivieren möchte?

    – Bilal Hussain

    15. März 2017 um 6:40 Uhr

  • @LoicTheAztec Der “Nullsatz” funktioniert gut für einfache Produkte, aber nicht für Variationsprodukte. Bitte helfen Sie

    – Simanto

    18. Mai 2017 um 11:42 Uhr

  • Dies hat bei mir auf WooCommerce Version 5.2.2 nicht funktioniert. Es wäre erstaunlich, wenn jemand dies aktualisieren und es für Woo 5+ zum Laufen bringen könnte

    – Matt Wilson

    6. Mai 2021 um 19:53 Uhr

  • @MattWilson Entschuldigung, aber die zusammengesetzten Haken woocommerce_product_get_tax_class und woocommerce_product_variation_get_tax_classfunktionieren immer noch perfekt in der letzten Version von WooCommerce, aber es erfordert die Eingabe von Produktpreisen ohne Steuern, um einen sichtbaren Unterschied zu bekommen, wenn die Steuerklasse programmgesteuert geändert wird.

    – LoicTheAztec

    6. Mai 2021 um 20:22 Uhr


1017610cookie-checkSteuern programmgesteuert für eine bestimmte Benutzerrolle deaktivieren

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy