¿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.