Deaktivieren Sie das Plugin pro Benutzerrolle

Ich muss ein Rabatt-Plugin für bestimmte Benutzerrollen deaktivieren, ich habe dies geschrieben und in das Child-Theme functions.php

 global $woocommerce; get_currentuserinfo(); global $current_user; if ($current_user->ID) { $user_roles = $current_user->roles; $user_role = array_shift($user_roles); if ($user_role == 'B2B') { deactivate_plugins('/httpdocs/wp-content/plugins/woocommerce-payment-discounts/woocommerce-payment-discounts.php', false); } } 

Aber das funktioniert nicht, warum? Ist es richtig? und die Deaktivierung ist nur für die Benutzersitzung?

Solutions Collecting From Web of "Deaktivieren Sie das Plugin pro Benutzerrolle"

Sie sollten den wc_payment_discounts_apply_discount filter .

Versuchen Sie etwas wie folgt:

 function remove_privato_discounts() { global $woocommerce; get_currentuserinfo(); global $current_user; if ($current_user->ID) { $user_roles = $current_user->roles; $user_role = array_shift($user_roles); if ( $user_role !== 'b2b') { $discount = 0; $woocommerce->cart->discount_total = $discount; return true; // Do not apply discount to privato } } return false; } add_filter( 'wc_payment_discounts_apply_discount', 'remove_privato_discounts'); 

Sie können Plugins nicht aufgrund einer Bedingung “deaktivieren”, da Ihr Code erst nach der Initialisierung des Plugins ausgeführt wird und Sie die Initialisierung nicht rückgängig machen können.

Sie sollten eine bestimmte functionalität des Plugins deaktivieren, aber es sei denn, es gibt eine Dokumentation, die spezifisch vorschlägt, wie es gemacht wird, würde ich davon abhalten, so etwas zu tun, da einige functionen von einem anderen abhängen könnten und die Deaktivierung eines Teils des Plugins den das ganze System in einem nicht stabilen Zustand mit unvorhergesehenen Auswirkungen. Zumindest sollten Sie sicherstellen, dass Sie verstehen, wie das ganze Plugin funktioniert, bevor Sie so etwas tun. Außerdem sollten Sie darauf vorbereitet sein, dass zukünftige Upgrades des Plugins nicht auf die gleiche Weise funktionieren und Ihr Code kaputt gehen wird.