Woocommerce, distintos Roles con distintos precios

Una situación mas frecuente de lo que piensas

Cambiar el Rol por defecto en Woocommerce es algo necesario si queremos tener varios tipos de clientes con precios distintos.

Os pongo en situación:

Un cliente mío (le llamaremos Jose) que tiene una papelería online, tiene dos tipos de Comprador:

  • El habitual que compra físicamente en su tienda a través del POS (Punto de venta táctil) y que además puede comprar Online en su Ecommerce con o sin cuenta de cliente.
  • Y el Cliente Profesional, que tiene por ejemplo una oficina, y al cual le hace un descuento exclusivo, este tipo de cliente también compra por ambas vías pero siempre accede a través de su cuenta de cliente. La cuenta de Cliente para estos Compradores profesionales la crea manualmente Jose, ya que hay que introducir datos extra, que el formulario de registro de Woocommerce no incorpora.

Perfecto, ahora sabemos que hay dos clases de cliente que han de tener condiciones de compra distintas.

Ambos tipos de cliente pueden ser usuarios registrados del Ecommerce, pero queremos que el Cliente Profesional pague con un descuento de mayorista, digamos que del 20%.

¿Cómo se soluciona eso?

 Muy sencillo: Creando un segundo Rol de cliente y asignándole unas características especiales.
Contenidos de este Post

Crear un nuevo Rol de Cliente

Para empezar debemos crear un nuevo Rol que tenga las mismas capacidades que el que se crea por defecto en Woocommerce, que es Cliente (o Customer según tu idioma).

De esta forma diferenciamos al cliente tradicional, que se registra Online en nuestro Ecommerce, del Cliente Profesional que registramos manualmente o a través de un formulario de registro alternativo.

No me voy a complicar la vida, para crear nuevos Roles disponemos de un fantástico plugin llamado WPFront User Role Editor creado por Syam Mohan

Este plugin nos permite crear nuevos Roles, copiando las atribuciones de Roles ya creados, así que podremos hacer este proceso en menos de 1 minuto.

Al nuevo Rol le vamos a llamar “Cliente Online” así lo distinguiremos del Cliente que creamos nosotros manualmente.

Recordemos que “Cliente Online”  debe ser el Rol que se asigna de forma automática a los nuevos usuarios que se registran  en Woocommerce desde la web.

Indicaremos el nombre del nuevo Rol donde indica la primera flecha, y en el desplegable que señala la segunda, seleccionaremos el Rol de “Customer” para que copie los ajustes de ese Rol.

Guardamos los cambios y listo.

Cambiar el Rol por defecto

Woocommerce asigna por defecto el Rol de Cliente (o Customer) a los nuevos usuarios que se registran online, pero nosotros queremos reservar ese Rol para los Clientes profesionales que crearemos manualmente.

Para cambiar esta característica, podemos hacerlo de dos formas: Con un Plugin o con unas líneas de código.

Instalar un Plugin para tan poca cosa no tiene demasiado sentido. Puedes hacerlo añadiendo el código en el archivo functions.php de tu tema, o del child theme.

¿Te suena a Chino?

Si no quieres complicarte la vida accediendo a los ficheros de tu instalación, puedes instalar el plugin “Code Snippets” que además te va a servir después para insertar otros fragmentos de código.

Soy muy partidario de esta solución, no nos obliga a crear un tema hijo ni a tocar el archivo functions, además es un plugin liviano que no va a ralentizar para nada nuestra web.

Una vez que instales y actives el Plugin, debes ir a Fragmentos de código (con el símbolo de unas tijeras) y Añadir nuevo, te debería quedar como en la imagen.

Aquí te dejo el código para que lo copies y pegues.

				
					/**
 * Remplaza el rol 'customer' que wooocommerce utiliza por defecto, por que el que tu elijas.
**/
add_filter('woocommerce_new_customer_data', 'wc_assign_custom_role', 10, 1);
 
function wc_assign_custom_role($args) {
  $args['role'] = 'cliente_online';
  
  return $args;
}
				
			

¿Necesitas una Web?

Dime lo que necesitas y estaré encantado de ayudarte.

¿Quieres vender tus productos? ¿Necesitas una Web Corporativa? ¿Quieres vender tus Cursos o Servicios?

Crear los descuentos para un Rol determinado

Genial, ahora que ya tenemos los dos Roles diferenciados y que a partir de ahora, Woocommerce asignará el Rol de “Cliente Online” sólo a los usuarios que se registren desde la Web, vamos a crear el sistema de descuentos.

Como siempre, las dos soluciones: Con un plugin (suelen ser de pago) y con unas líneas de código.

Una de las opciones de pago que nos solucionan este paso es Finale en su versión Pro que nos permite crear campañas con descuentos por categoría, por Rol de usuario y mucho más o Yith Woocommerce Role based prices, que nos permite asignar precios diferentes en función del Rol.

Ya he dicho antes que el Plugin “Code Snippets” nos iba a servir en mas ocasiones.

Aquí debajo te dejo el código, igual que en el paso anterior, solo tienes que crear un fragmento de código, ponerle un título y pegar estas líneas.

En este caso he indicado que el descuento será del 20% para el Rol “Customer”, que será el Rol por defecto cuando se cree un nuevo usuario de forma manual en nuestra tienda online o bien cuando se cree algún tipo de registro de clientes alternativo.

En realidad lo que modifico es $orig_price * 0.80 para que solamente cobre el 80% del precio a los usuarios con el Rol “customer” o cliente (que son los clientes profesionales).

				
					/* Parte 1 - Producto de WooCommerce */
add_filter( 'woocommerce_get_price_html', 'descuento_clientes_producto', 9999, 2 );
function descuento_clientes_producto( $price_html, $product ) {
    // SOLO EN LA TIENDA
    if ( is_admin() ) return $price_html;
    // SOLO SI NO HAY PRECIO
    if ( '' === $product->get_price() ) return $price_html;
    // SI EL CLIENTE ESTÁ CONECTADO APLICAR 20% DE DESCUENTO   
    if ( wc_current_user_has_role( 'customer' ) ) {
        $orig_price = wc_get_price_to_display( $product );
        $price_html = wc_price( $orig_price * 0.80 );
    }
    return $price_html;
}
/* Parte 2 - Carrito y finalizar compra */
add_action( 'woocommerce_before_calculate_totals', 'descuento_clientes_carrito', 9999 );
function descuento_clientes_carrito( $cart ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return;
    if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 ) return;
    // SI EL CLIENTE NO ESTA CONECTADO NO SE APLICA DESCUENTO
    if ( ! wc_current_user_has_role( 'customer' ) ) return;
    // LOOP POR PRODUCTOS DEL CARRITO Y APLICAR DESCUENTO 20%
    foreach ( $cart->get_cart() as $cart_item_key => $cart_item ) {
        $product = $cart_item['data'];
        $price = $product->get_price();
        $cart_item['data']->set_price( $price * 0.80 );
    }
}
				
			

¿Podemos mejorar esto?

¡Por supuesto!

Ahora que nuestros clientes “especiales” ya disponen de un descuento automático en sus compras, que mejor estrategia de marketing que decírselo, para que se sientan tan especiales como su descuento.

¿Te gustaría que sólo esos Clientes vean la tienda así? Puedes poner una etiqueta como esta en todos los productos, pero sólo cuando lo vean los clientes profesionales, es muy fácil.

Para esto disponemos de un fantástico plugin gratuito llamado “Advanced Woo Labels” que nos permite crear vistosas etiquetas en los productos, en función del Rol que las vea.

Descargamos el Plugin y lo instalamos.

Configurar Advanced Woo Labels

Configurar este plugin es tan sencillo e intuitivo que lo haremos en menos de un minuto.

Una vez instalado, nos aparece la pestaña “Adv. Woo Labels” en la columna izquierda, sólo tenemos que crear una nueva etiqueta haciendo Clic en “Add New“.

En Label Conditions, podemos escoger en que situaciones queremos que aparezca la etiqueta, yo para este caso he escogido que se vea cuando el User role o rol de usuario, sea igual a Customer o cliente, que es el Rol de los clientes profesionales.

Pero el plugin nos permite poner como condición: el Stock, cantidad de unidades disponibles, tipo de envío, producto, categoría y mucho más.

 

Ya sólo nos falta escoger el aspecto que tendrá la etiqueta y donde queremos que se vea.

Creación de Usuarios Profesionales

Ahora que Woocommerce asigna a los nuevos usuarios que se registran desde la web el nuevo Rol de Cliente online, vamos a ver como crear nuevos usuarios con el Rol de Cliente, que es el que se beneficia del descuento especial.

De forma manual

Aquí no hay secretos, desde nuestro Backoffice con la función nativa de WordPress: Usuarios/Añadir nuevo y teniendo la precaución de asignar el Rol de Cliente (o Customer en inglés).

De forma automática

Con un plugin como User Registration, que nos permite crear uno (o varios) formularios de registro con los que se crea una cuenta con el Rol que nosotros queramos.

Sólo tendríamos que ocultar la página donde se halla el nuevo formulario de registro, para que sólo pudieran acceder a ella ciertos visitantes.

Hacerlo todo con un Plugin

Pues si, hay una forma mas fácil de crear diferentes precios según el Rol de usuario, sobre todo si lo que necesitas es algo fácil y rápido para crear roles y asignar precios a productos (o reglas de comportamiento) sin complicarnos la vida.

Échale un vistazo a este Post y te lo explico.

¿Que te ha parecido el contenido de esta publicación?

Promedio de puntuación 5 / 5. Recuento de votos: 1

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Consulta estos otros artículos relaccionados

¿Te ha gustado? Comparte en tus redes sociales

Facebook
Twitter
Pinterest
LinkedIn

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll to Top

Responsable: cursoswp.es

Finalidad: Gestionar el envío de documentación y prospección comercial.

Legitimación: Consentimiento del interesado.

Destinatarios: Responsable de comunicación de cursoswp.es

Derechos: Acceder, rectificar y suprimir todos los datos, así como otros derechos, como se explica en la información adicional.

Información adicional: Puede consultar la información adicional y detallada sobre Protección de datos en el pié de página de la web.

Este sitio está protegido por reCAPTCHA y Google.  Política de privacidad se aplican Términos de servicio

¡¡¡Espera!!!

Aprende WordPress de verdad

No pierdas mas el tiempo viendo anuncios en Youtube y mira los cursos que tengo para ti 

Veo que te ha gusta mi contenido

No te pierdas los cursos y las novedades que estamos creando

Esta web utiliza cookies para que tengas la mejor experiencia de navegación. Al aceptarlas, estas dando tu consentimiento para la aceptación de las citadas cookies.    Más información
Privacidad