Cambio del precio de visualización de WooCommerce según el rol y la categoría del usuario [cerrado]

11

Busco mostrar un precio diferente según el rol del usuario (mayorista, distribuidor, etc.) Y según la categoría.

Hay un complemento de precios dinámico que muestra estos descuentos una vez que se agrega un artículo al carrito, pero no en la página en sí.

¿Hay alguna forma de usar un filtro o una acción para verificar el nivel de usuario, verificar la categoría del artículo y luego cambiar el precio dinámicamente?

    
pregunta Tricky Buddha 27.08.2013 - 07:07

2 respuestas

16

Sí, hay un gancho de filtro woocommerce_get_price para filtrar el valor según la función del usuario y devolver un precio en consecuencia, por ejemplo:

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 );
}
    
respondido por el Bainternet 27.08.2013 - 11:33
0

Puede probar Precio específico del cliente para WooCommerce . Con este complemento, puede agregar diferentes precios para los usuarios registrados.

Actualmente, el complemento se encuentra en su fase inicial, pero pronto habrá actualizaciones para admitir funciones adicionales como el precio según la categoría del producto.

    
respondido por el WisdmLabs 06.09.2014 - 10:27

Lea otras preguntas en las etiquetas