it-swarm.com.de

Ändern des WooCommerce-Anzeigepreises basierend auf Benutzerrolle und -kategorie

Ich möchte einen anderen Preis basierend auf einer Benutzerrolle (Großhändler, Händler usw.) UND basierend auf der Kategorie anzeigen.

Es gibt ein Plugin für dynamische Preise, das diese Rabatte anzeigt, sobald ein Artikel zum Warenkorb hinzugefügt wird, jedoch nicht auf der Seite selbst.

Gibt es eine Möglichkeit, mithilfe eines Filters oder einer Aktion nach der Benutzerebene zu suchen, die Kategorie des Artikels zu überprüfen und dann den Preis dynamisch zu ändern?

12
Tricky Buddha

Ja, Sie können den Filter-Hook woocommerce_get_price verwenden, um den Wert basierend auf der Benutzerrolle zu filtern und einen entsprechenden Preis zurückzugeben. Beispiel:

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 );
}
17
Bainternet

Sie können Kundenspezifische Preise für WooCommerce ausprobieren. Mit diesem Plugin können Sie verschiedene Preise für registrierte Benutzer hinzufügen.

Derzeit befindet sich das Plugin in der Anfangsphase, es wird jedoch in Kürze Updates geben, um zusätzliche Funktionen wie den Preis je nach Produktkategorie zu unterstützen.

0
WisdmLabs