Hosting WordPress Webempresa

Solo usuarios registrados puedan finalizar la compra en Woocommerce

por | Oct 6, 2022 | WooCommerce

Solo usuarios registrados puedan finalizar la compra en Woocommerce

Seguramente hemos tenido la situación de que deseamos que todos los potenciales clientes que realicen una compra dejen sus datos, sin embargo dependiendo también del comportamiento del cliente al encontrarse con múltiples pasos para finalizar la compra pueden perder el interés y abandonar el proceso a medias, en dicho proceso también hay otro tipo de cliente con un comportamiento mas inusual, el cual se caracteriza por hacer lo contrario del caso anterior, acelera y salta todos los pasos de forma rápida sin prestarle atención a lo que conlleva el procedimiento en si, lo que nos da como resultado compras o pedidos que pueden ser satisfactorios pero con usuarios registrados con datos errados o ficticios.

Una solución simple es el habilitar la limitación de que solo los usuarios registrados pueden comprar en WooCommerce, sin embargo es posible que si llevamos al usuario de la mano y le dejamos de forma visible donde registrarse posiblemente no lo haga.

A continuación, vamos a ver como por medio de opciones ya integradas a Woocommerce podemos hacer que sea obligatorio que un usuario se registre para poder hacer un pedido en WooCommerce, y una alternativa por medio de código que deshabilita la posibilidad de ver la pagina de finalizar compra sin antes haber iniciado sesión o haber creado una cuenta.

  Limitar desde Woocommerce


La alternativa mas simple y directa viene integrada por defecto en Woocommerce como mencionamos anteriormente, solo basta con dirigirnos a las opciones Woocommerce-> Ajustes-> Cuentas y privacidad donde tendremos un listado de opciones que podemos activar/desactivar según nuestras necesidades.

Para el caso practico de vamos a recrear el siguiente ejemplo, donde queremos que el usuario además de que sea necesario que se registre para hacer un pedido en WooCommerce, deba proporcionar el mismo directamente su contraseña, para ello vamos a tener una configuración similar a la siguiente.

registro finalizar compra

Donde podemos definir las siguientes opciones:

  • Pago como invitado: Solo dejaremos activo de que un cliente con una cuenta existente pueda acceder a su cuenta para continuar con el proceso
  • Creación de cuenta: Mantendremos activas las opciones necesarias que correspondan desde donde puede el usuario iniciar sesión o crear su cuenta, bien sea desde la pagina de “Mi cuenta” o directamente desde el apartado de finalizar compra.
  • Opción desactivada, enviar enlace para establecer contraseña: Acá es cuestión de gustos, dependiendo del caso es preferible que el usuario reciba el correo y continúe con el proceso de establecer una contraseña sin embargo lo que queremos es causar la menor fricción posible así que mantenemos esta opción desactivada para que aparezca el campo de contraseña al momento del registro.

Luego de guardar cambios tendremos una vista del apartado de finalizar compra con un aspecto similar al siguiente, donde el campo de la contraseña será requerido para que con la información complementario del pedido donde tenemos nombre, teléfono, correo electrónico y entre otros datos formen parte del perfil del cliente.

registro finalizar compra WooCommerce

  Limitar desde Código


Hemos visto que desde la configuración de Woocommerce es muy sencillo lograr el cometido de que solo aquellos usuarios registrados puedan finalizar la compra, pero que sucede si queremos que el apartado de finalizar compra o la también conocida pagina del checkout de WooCommerce quede completamente inaccesible para todos aquellos usuarios que no han iniciado sesión o no se han registrado.

Esto es posible por medio de un fragmento de código, el cual como bien mencionamos funciona de la siguiente manera, cualquier usuario puede añadir productos a su carrito y navegar el sitio pero al momento de ir a “Finalizar compra” será redireccionado automáticamente a la pagina de “Mi cuenta” lo que hace es incentivar al inicio de sesión o el registro y luego de hacer alguna de estas dos acciones es entonces que si será redireccionado nuevamente a la pagina de “Finalizar compra”; puede parecer confuso pero considerando que la finalidad es que en efecto el usuario si exista como cliente registrado es una acción eficaz y reduce considerablemente la fricción ya que estas llevando de la mano al usuario para que ejecute la acción que requerimos además de aislarlo de la posibilidad de hacer una compra o pedido con datos erróneos.

Teniendo en cuenta lo explicado esto podemos lograrlo mediante un fragmento de código el cual vamos a agregarlo de la siguiente forma.

Por medio de la edición del archivo functions.php que esta ubicado en nuestra cuenta de hosting dentro de nuestro cPanel/WePanel en la ruta Administrador de archivos -> public_html -> wp-content -> Themes -> Tu_Tema (se recomienda que sea en un tema hijo de WordPress para no perder ajustes tras una actualización en el tema principal).

En Cpanel

archivos cpanel

En WePanel

archivos wepanel

Por medio de un plugin que nos permite agregar snippets en WordPress de forma aislada códigos específicos llamado Code Snippets:

Code Snippets

El código en cuestión que vamos a agregar es el siguiente:


add_action('template_redirect', 'woocommerce_custom_redirections');
function woocommerce_custom_redirections() {
   
    if ( !is_user_logged_in() && is_checkout() )
        wp_redirect( get_permalink( get_option('woocommerce_myaccount_page_id') ) );
}

// REDIRECCION REGISTRO
add_filter("woocommerce_registration_redirect", "wcs_register_redirect");
function wcs_register_redirect($redirect) {
  $redirect = "https://misitioweb.com/finalizar-compra/";
  return $redirect;
}

// REDIRECCION INICIO SESION
add_filter("woocommerce_login_redirect", "wcs_register_login");
function wcs_register_login($redirect) {
  $redirect = "https://misitioweb.com/finalizar-compra/";
  return $redirect;
}

Como podemos apreciar el código posee dos filtros.

Uno encargado de hacer la redirección 301 justo después que el usuario crea su cuenta y se registra.

redireccion al finalizar compra en WooCommerce

Otro encargado de hacer la redirección justo después de que el usuario inicia su sesión.

registro al finalizar compra en WooCommerce

En ambos casos es necesario remplazar el enlace que corresponde a “misitioweb.com” por la URL que corresponda al la pagina de “Finalizar compra”.

  Conclusiones


Hemos podido ver dos alternativas efectivas que nos permiten hacer que sea requerido que cualquier usuario deba ser un cliente correctamente registrado en nuestra tienda para así evitar compras o pedidos fantasma, con datos errados que a fin de cuentas lo que hace es entorpecer el flujo de ventas de nuestra tienda en WooCommerce.

Puedes limitarlo por la vía convencional permitiendo que puedan crear su cuenta directamente en la pagina de finalizar compra de WooCommerce o de una forma mas radical puedes limitar el acceso a finalizar la compra hasta que cumplan con el requisito, las reglas son las reglas :).

Si deseas conocer mas sobre cómo crear tu tienda en Woocommerce con todos los trucos y secretos que ya hemos presentado en artículos anteriores te invito a echarle un vistazo a los siguientes enlaces de interés.

¿Te ha resultado útil este artículo?

Hosting Divi - Wp Fácil - Webempresa