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

Lesezeit: 2 Minuten

Anpassen der Produktvariationsnachricht auf einzelnen Produktseiten
Andres Molina Perez-Tome

Auf meiner WooCommerce-Website werde ich verkaufen Händler UND Wiederverkäufer. Das Problem ist, dass Wiederverkäufer sind von STEUERN befreit und daher muss ich mit einer benutzerdefinierten Funktion den Nullsteuersatz für bestimmte Kundenrollen aktivieren (es wäre optimal, wenn WooCommerce dies selbst tun würde, aber das tut es nicht).

Mein Problem ist also, dass der Code, den ich habe, perfekt funktioniert, außer dass ich nicht weiß, wie ich eine Änderung implementieren soll, um Nullsteuern zu berechnen, wenn der Kunde Administrator ODER Wiederverkäufer ist.

Hier ist der Code, den ich verwende:

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 );

Wie kann ich diesen Code ändern, damit er für diese Benutzerrollen funktioniert?

Danke

  • Eine einfache if-Anweisung sollte für Sie funktionieren. Wenn $tax_class == ‘Nullsatz’, dann berechnen Sie keine zusätzliche Steuer. Andernfalls berechnen Sie die zusätzliche Steuer. Vielleicht teilen Sie mehr von Ihrem Code?

    – mba12

    3. Oktober 2016 um 16:37 Uhr

WooCommerce – Aktivierung der Steuerklasse „Nullsatz fur einige spezifische Benutzerrollen
LoicTheAztec

2020-Aktualisierung

Probieren Sie diese angepasste Funktion basierend auf Ihrem Code aus, bei der ich zuerst die aktuellen Benutzerrollen erhalte. Dann benutze ich in_array() php Bedingungsfunktion in einer if-Anweisung, um Ihre 2 Zielrollen mit den aktuellen Benutzerrollen zu vergleichen. Auf diese Weise aktiviere ich diese Steuerklasse „Nullsatz“ oder nicht.

Hier ist der Code:

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 );

Update – Verwenden Sie seit WooCommerce 3 stattdessen Folgendes:

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_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 );

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.

  • Wie immer bist du ein genialer Mann… was würde ich ohne dich machen… XD

    – Andres Molina Perez-Tome

    4. Oktober 2016 um 8:28 Uhr

  • Sehr hilfreich, WC-Guru.

    – Alchem

    8. Mai 2019 um 15:42 Uhr

999220cookie-checkWooCommerce – Aktivierung der Steuerklasse „Nullsatz“ für einige spezifische Benutzerrollen

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

Privacy policy