Ändern des WooCommerce-Anzeigepreises basierend auf Benutzerrolle und Kategorie

Ich suche nach einem anderen Preis basierend auf einer Benutzerrolle (Großhändler, Händler, etc) UND basierend auf der Kategorie.

Es gibt ein dynamisches Pricing-Plug-in, das diese Rabatte anzeigt, sobald ein Artikel zum Warenkorb hinzugefügt wurde, aber nicht auf der Seite selbst.

Gibt es eine Möglichkeit, einen Filter oder eine Aktion zu verwenden, um nach dem Benutzerlevel zu suchen, die Kategorie des Artikels zu überprüfen und dann den Preis dynamisch zu ändern?

Solutions Collecting From Web of "Ändern des WooCommerce-Anzeigepreises basierend auf Benutzerrolle und Kategorie"

Ja, es gibt, Sie können den woocommerce_get_price Filter-Hook verwenden, um den Wert basierend auf der Benutzerrolle zu filtern und einen Preis entsprechend zurückzugeben, zB:

 add_filter('woocommerce_get_price', 'custom_price_WPA111772', 10, 2); /** * custom_price_WPA111772 * * filter the price based on category and user role * @param $price * @param $product * @return */ function custom_price_WPA111772($price, $product) { if (!is_user_logged_in()) return $price; //check if the product is in a category you want, let say shirts if( has_term( 'shirts', 'product_cat' ,$product->ID) ) { //check if the user has a role of dealer using a helper function, see bellow if (has_role_WPA111772('dealer')){ //give user 10% of $price = $price * 0.9; } } return $price; } /** * has_role_WPA111772 * * function to check if a user has a specific role * * @param string $role role to check against * @param int $user_id user id * @return boolean */ function has_role_WPA111772($role = '',$user_id = null){ if ( is_numeric( $user_id ) ) $user = get_user_by( 'id',$user_id ); else $user = wp_get_current_user(); if ( empty( $user ) ) return false; return in_array( $role, (array) $user->roles ); } 

Sie können die kundenspezifischen Preise für WooCommerce testen . Mit diesem Plugin können Sie verschiedene Preise für registrierte Benutzer hinzufügen.

Momentan befindet sich das Plugin in der Anfangsphase, aber es wird bald Updates geben, um zusätzliche functionen wie den Preis basierend auf der Produktkategorie zu unterstützen.