Modification du prix d'affichage WooCommerce en fonction du rôle et de la catégorie d'utilisateur [fermé]

11

Je souhaite afficher un prix différent en fonction du rôle de l'utilisateur (grossiste, revendeur, etc.) ET de la catégorie.

Il existe un plug-in de tarification dynamique qui affiche ces remises une fois qu'un article est ajouté au panier, mais pas sur la page elle-même.

Existe-t-il un moyen d'utiliser un filtre ou une action pour vérifier le niveau d'utilisateur, vérifier la catégorie de l'article puis modifier le prix de manière dynamique?

    
posée Tricky Buddha 27.08.2013 - 07:07

2 réponses

16

Oui, vous pouvez utiliser le crochet de filtrage woocommerce_get_price pour filtrer la valeur en fonction du rôle de l'utilisateur et renvoyer un prix en conséquence, par exemple:

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 );
}
    
réponse donnée Bainternet 27.08.2013 - 11:33
0

Vous pouvez essayer de Tarification spécifique au client pour WooCommerce . Avec ce plugin, vous pouvez ajouter différents prix pour les utilisateurs enregistrés.

Le plug-in est actuellement dans sa phase initiale, mais des mises à jour seront bientôt disponibles pour prendre en charge des fonctionnalités supplémentaires telles que le prix en fonction de la catégorie de produit.

    
réponse donnée WisdmLabs 06.09.2014 - 10:27

Lire d'autres questions sur les étiquettes