Woocommerce

Precio rebajado para clientes específicos

Al igual que se ha hecho toda la vida en los negocios offline tradicionales, donde a los mejores clientes se les daba un trato especial, en las tiendas online también tenemos el deber de cuidar como se merecen estos clientes tan preciados.

Existen muchas formas de hacerlo; no cobrarles gastos de envío, ofrecerle ofertas por volumen o también ofrecer precios especiales.

En esta entrada te voy a enseñar un truco para que tu tienda WooCommerce aplique precios rebajados a clientes específicos que tú mismo definirás.

// Crea el rol de usuario "Cliente VIP"
add_action( 'init', 'crea_rol_cliente_vip' );
function crea_rol_cliente_vip(){

    $customer_role = get_role( 'customer' );
    add_role( 'cliente_vip', __( 'Cliente VIP' ), $customer_role->capabilities );
}

// Aplica un precio especial dependiento del tipo de usuario
add_filter( 'woocommerce_get_price', 'aplica_precio_especial', 10, 2);
function aplica_precio_especial( $price, $product ) {
    
    if (!is_user_logged_in()) return $price;

    // Listado de productos con precio especial
    $product_list = array( '14893', '14887', '14881' );

    // % Descuento a aplicar
    $discount = 10;

    // Comprueba si el producto actual pertenece a la lista
    if( in_array( $product->id, $product_list ) || empty( $product_list ) ) {

        // Comprueba si el usuario tiene precio especial
        if( usuario_con_precio_especial( 'cliente_vip' ) ){
            
            $price = $price * ( 100 - $discount ) / 100;
        }
    }
    return $price;
}

function usuario_con_precio_especial( $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 );
}

Una vez pegado el código, antes de guardar los cambios, deberás configurar tanto el porcentaje de descuento como la lista de productos a los que se le va a aplicar.
Para configurar tu porcentaje de descuento, simplemente sustituye el número que hay en esta línea de código;

$discount = 10;

por el valor de porcentaje que te interese. Por ejemplo, si quisieses aplicar un 15% de descuento, la línea quedaría así:

$discount = 15;

Ahora, para definir el listado de productos a los que quieres aplicar el descuento, sólo tienes que sustituir los IDs que aparecen en la siguiente línea de código, por los IDs de tus productos separados por comas:

$product_list = array( '14893', '14887', '14881' );

Para saber el ID de un producto, basta con entrar en la sección «Productos» y situar el cursor del ratón encima del producto en cuestión

Si quieres aplicar el descuento especial a todos los productos de tu tienda, entonces la línea de código quedaría así:

$product_list = array();

De acuerdo. Ya está configurado el porcentaje de descuento y definida la lista de productos.

El siguiente paso consistirá en definir cuáles de nuestros clientes se van a beneficiar de estos precios especiales. Para ello, deberás entrar en la sección «Usuarios > Todos los usuarios» y dentro del listado, marcar aquellos que consideres mejores clientes.

Una vez marcados los usuarios, haz clic en «Cambiar perfil a…«, selecciona la opción «Cliente VIP» y por último, haz clic en «Cambiar«.

 

¡Listo! Ya tienes configurados precios especiales para tus clientes VIP en WooCommerce😉

Antes de que empieces a aplicar este truco en tu tienda WooCommerce, deberías tener en cuenta las siguientes consideraciones;

  • El cliente debe estar logueado en la tienda para poder ver y aprovechar los precios especiales. (Esto es un requisito indispensable incluso si empleas un plugin para hacerlo).
  • La rebaja en el precio de los productos solo se puede aplicar por porcentaje. No se puede, por ejemplo, rebajar una cantidad fija.
  • Si necesitas aplicar varios porcentajes de descuento diferentes para varios grupos de clientes diferentes, este truco no te va a servir. En ese caso si te va a merecer la pena -y mucho- comprar cualquiera de los plugins que hay disponibles para este propósito.