¿Cuál es el mejor plugin para crear una tienda de venta privada con WooCommerce? El mejor plugin es el que no se instala. Por ello, en este post vamos a ver cómo crear una tienda WooCommerce de venta privada con funciones de PHP o, si no es posible, recurriremos a un plugin PREMIUM de WordPress que podrás descargar y probar gratis, para ver si encaja con tu proyecto. Antes de nada...
El mejor plugin es el que no se instala.
Autor: Leonardo Reyes.
¿Qué es una tienda privada o "privé"?
Pues básicamente son tiendas online en las que no tienes acceso a los productos y sus precios si no tienes una cuenta de usuario. Algunas de las más conocidas son Privalia o Showroomprive, pero hay varias más. Las hay de dos tipos, las que te dejan ver los productos pero no los precios y las que no te dejan ver ni los precios y tampoco los productos. Y en este post vamos a abordar las dos opciones. Pero déjame contarte algo...
En la web de nuestra empresa ofrecemos la creación y diseño de tiendas online Privadas o "Privé" y es un servicio con bastante demanda, por ello te invitamos a que dediques tiempo a comprender el funcionamiento de estas tiendas ya que, crearlas, es una oportunidad para mejorar la facturación de tu empresa de diseño web o de tus servicios como profesional freelance que ofrece el diseño de tiendas online WooCommerce.
Funciones PHP para crear una tienda privada o "privé" con WooCommerce:
A continuación veremos dos funciones, como hemos mencionado anteriormente. La primera oculta los precios de WooCommerce en toda la web y deshabilita el carrito para que no se pueda comprar hasta que no haya iniciado sesión en la web. ¡Vamos a verla!
Función PHP para ocultar precios y deshabilitar el proceso de compra:
Esta función es sencilla y fácil de aplicar al archivo functios.php de tu sitio web. Solamente tienes que copiar y pegar el código en tu plantilla y se ocultarán los precios y se deshabilitará el proceso de compra.
/*
* woofreelance.academy - Tienda privada sin precios
*/
// Ocultar precios y botón de añadir al carrito si el usuario no está logueado
add_action('wp', 'custom_hide_prices_and_cart_for_guests');
function custom_hide_prices_and_cart_for_guests() {
if (!is_user_logged_in()) {
remove_action('woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10);
remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30);
add_filter('woocommerce_get_price_html', '__return_empty_string');
add_filter('woocommerce_get_variation_price_html', '__return_empty_string');
}
}
// Mostrar mensaje de error al intentar añadir al carrito sin estar logueado
add_filter('woocommerce_add_to_cart_validation', 'custom_prevent_add_to_cart_for_guests', 10, 2);
function custom_prevent_add_to_cart_for_guests($passed, $product_id) {
if (!is_user_logged_in()) {
wc_add_notice('No puedes añadir productos al carrito si no has accedido a tu cuenta. ¡Crea una cuenta ahora!', 'error');
return false;
}
return $passed;
}
// Deshabilitar el botón de añadir al carrito en páginas de archivo y categorías
add_filter('woocommerce_loop_add_to_cart_link', 'custom_disable_add_to_cart_button_for_guests', 10, 2);
function custom_disable_add_to_cart_button_for_guests($button, $product) {
if (!is_user_logged_in()) {
return '';
}
return $button;
}
// Deshabilitar el botón de añadir al carrito en la página del producto
add_action('woocommerce_single_product_summary', 'custom_disable_single_add_to_cart_button_for_guests', 1);
function custom_disable_single_add_to_cart_button_for_guests() {
if (!is_user_logged_in()) {
remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30);
}
}
Función PHP para ocultar productos, categorías y deshabilitar el proceso de compra:
En esta otra función lo que hacemos es deshabilitar por completo el acceso a las categorías, productos y a todo el proceso de compra. En este caso lo que hacemos es redireccionar al usuario que intenta ingresar a esas secciones para que sea llevado a una página con información sobre la tienda o directamente al proceso de alta. En esta función tienes que cambiar el slug de la página a la que deseas redireccionar a los usuarios de tu web que entran en esas secciones.
/*
* woofreelance.academy - Tienda privada sin acceso a nada
*/
// Ocultar precios y botón de añadir al carrito si el usuario no está logueado
add_action('wp', 'custom_hide_prices_and_cart_for_guests');
function custom_hide_prices_and_cart_for_guests() {
if (!is_user_logged_in()) {
remove_action('woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10);
remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30);
add_filter('woocommerce_get_price_html', '__return_empty_string');
add_filter('woocommerce_get_variation_price_html', '__return_empty_string');
}
}
// Mostrar mensaje de error al intentar añadir al carrito sin estar logueado
add_filter('woocommerce_add_to_cart_validation', 'custom_prevent_add_to_cart_for_guests', 10, 2);
function custom_prevent_add_to_cart_for_guests($passed, $product_id) {
if (!is_user_logged_in()) {
wc_add_notice('No puedes añadir productos al carrito si no has accedido a tu cuenta. ¡Crea una cuenta ahora!', 'error');
return false;
}
return $passed;
}
// Deshabilitar el botón de añadir al carrito en páginas de archivo y categorías
add_filter('woocommerce_loop_add_to_cart_link', 'custom_disable_add_to_cart_button_for_guests', 10, 2);
function custom_disable_add_to_cart_button_for_guests($button, $product) {
if (!is_user_logged_in()) {
return '';
}
return $button;
}
// Deshabilitar el botón de añadir al carrito en la página del producto
add_action('woocommerce_single_product_summary', 'custom_disable_single_add_to_cart_button_for_guests', 1);
function custom_disable_single_add_to_cart_button_for_guests() {
if (!is_user_logged_in()) {
remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30);
}
}
// Redirigir usuarios no logueados a una página específica
add_action('template_redirect', 'custom_redirect_guests_to_info_page');
function custom_redirect_guests_to_info_page() {
if (!is_user_logged_in()) {
// Páginas a redirigir
if (is_product_category() || is_shop() || is_cart() || is_checkout() || is_product_tag() || is_product_taxonomy() || is_account_page() || is_post_type_archive('product') || is_product()) {
wp_redirect(home_url('/mas-informacion/'));
exit;
}
}
}
Es muy importante que reemplaces en esta función el slug del la parte final que dice /mas-informacion/ por el que corresponda a tu página con más información o directamente a la página de mi cuenta, donde deberías tener habilitada la opción de Crear una Cuenta.
Vídeo tutorial para crear una tienda de venta privada con WooCommerce:
Como en todos los tutoriales, os mostramos en vídeo cómo implementar estas funciones y cómo operan, para que veáis lo útiles que son y cómo pueden mejorar nuestros proyectos y los proyectos de nuestros clientes:
Plugin para crear una tienda de venta privada con WooCommerce:
Vamos a suponer que algo no ha funcionado, que no puedes hacer lo anterior o que no satisface tus necesidades. Pues en este caso tienes la opción de un plugin PREMIUM llamado WooCommerce Private Store de la empresa Barn2 y cuesta 99€. Este plugin convierte tu WooCommerce en una tienda privada pero a nosotros no nos gusta nada su funcionalidad. Básicamente, oculta el contenido de las páginas de WooCommerce y en su defecto te muestra una página donde debes añadir el usuario y contraseña.
En la DEMO puedes ver su funcionamiento y valorar si es lo que realmente necesitas. Si tienes cuenta en WOOFREELANCE ACADEMY, lo puedes descarga gratis con un cupón del 100% de descuento para probarlo antes de comprarlo.



