Redirección de WooCommerce después de cerrar sesión [Guía definitiva]
Publicado: 2022-01-10La redirección de WooCommerce después de cerrar sesión se puede crear usando el código en esta publicación para redirigir a los clientes de WooCommerce a una página o publicación específica o a una URL externa después de cerrar sesión. En este artículo, quiero demostrar cómo crear esta redirección con código. Si te perdiste mi tutorial anterior, ilustré cómo crear un código abreviado de página de cierre de sesión de WooCommerce, que puede ser un buen lugar para comenzar antes de crear la redirección de cierre de sesión de WooCommerce.
Hay complementos que se pueden usar para crear redireccionamientos de cierre de sesión de WooCommerce, pero no son tan buenos como deberían ser; Estoy trabajando en una mejor solución que lo ayudará a administrar la redirección de WooCommerce después de cerrar sesión, al igual que el complemento que creé para WooCommerce Logout After Checkout.
Si desea ser uno de los primeros en adoptar, comuníquese conmigo para que pueda agregarlo a la lista, ya que el complemento estará listo dentro de 2 semanas a partir de hoy.
Para esta publicación, quiero compartir el enfoque del código que puede usar para crear una redirección de cierre de sesión eficiente de WooCommerce, pero el complemento tendrá varias opciones condicionales que amplían las opciones de redirección predeterminadas como lo logré en el complemento WooCommerce Redirect after checkout.
Secciones de redirección de cierre de sesión de WooCommerce: hojear y saltar a la sección
En la mayoría de los proyectos de mis clientes, estaba teniendo dificultades para que la redirección de cierre de sesión funcionara en sitios de WooCommerce. Por esta razón, decidí armar esta guía definitiva para crear una redirección de WooCommerce después de la guía de cierre de sesión.
Espero que pueda ser un gran lugar para que tanto los usuarios expertos en tecnología como los usuarios que no conocen la tecnología encuentren una solución para crear la mejor opción de redirección de cierre de sesión de WooCommerce para sus proyectos.
Dado que esta no es una publicación de blog ordinaria, es larga y puede llevar más tiempo leer y comprender cada detalle. Me gustaría ayudarlo a hojear las diferentes secciones para que pueda elegir rápidamente la solución que necesita para su proyecto.
Tabla de contenido
- Redirección de la página de inicio: después de cerrar la sesión, redireccionar a la página de inicio en Woocommerce
- Redirección de página actual: botón de cierre de sesión de Woocommerce y redirección a la página actual
- Página específica por redirección de ID – Página de redirección de cierre de sesión de Woocommerce
- Redirección del rol del cliente – Redirección de cierre de sesión del cliente de Woocommerce
- Redirección de página anterior: redirección de inicio de sesión de Woocommerce a la página anterior
- Redirección de la página de mi cuenta – Redirección de cierre de sesión de mi cuenta de Woocommerce
- Redirección de URL externa: función de redirección de cierre de sesión de Woocommerce Php Snippet
- Reparar el error de redirección de cierre de sesión: la redirección de cierre de sesión de Woocommerce no funciona
- URL de redirección de cierre de sesión de WP – URL de cierre de sesión de Woocommerce
- Complemento de redirección de cierre de sesión de Woocommerce
- Creación de redirección de cierre de sesión en WordPress - Funciones principales
- Redirección de inicio de sesión de WooCommerce: gancho woocommerce_login_redirect
- Función de cierre de sesión de WordPress – wp_logout_url()
- Gancho de filtro de WordPress logout_redirect
- Gancho de filtro de WordPress login_redirect
- Redirección multisitio de WooCommerce después de cerrar sesión
- Gancho de filtro: allow_redirect_hosts
- Función de redireccionamiento de WordPress: wp_ Redirect
- Función de redirección de WordPress: wp_safe_redirect()
- Conclusión
Redirección de WooCommerce después de cerrar sesión
De forma predeterminada, WooCommerce después de cerrar sesión, registrarse e iniciar sesión redirige a los usuarios a "mi cuenta". Este comportamiento no es deseable, especialmente en sitios web que están orientados a aumentar sus ventas.
Las tres acciones de administración de usuarios más comunes en su sitio de WooCommerce incluyen:
- registro de usuario
- Inicio de sesión de usuario
- registro de usuario
- Editar perfil de usuario
- Cerrar sesión de usuario
Cada una de estas acciones se puede mejorar no solo para que sea más fácil para el usuario navegar sin problemas, sino también para aumentar las perspectivas de ventas para clientes nuevos y existentes. La URL o el enlace de cierre de sesión de Woocommerce se encuentra de forma predeterminada en la página Mi cuenta y la mayoría de los propietarios de tiendas WooCommerce desean cambiar la redirección de cierre de sesión en la página Mi cuenta para redirigir a una página específica o al embudo de ventas de WooCommerce.
¿Cómo redirigir el cierre de sesión desde la página Mi cuenta?
Una de las preguntas más comunes sobre el cierre de sesión de WooCommerce es cómo crear un cierre de sesión automático desde la página Mi cuenta y redirigir a otro sitio web o a una página interna.
Esta es la pregunta que se abordará y resolverá en esta publicación, al final de este tutorial, debe crear cómodamente una redirección de cierre de sesión personalizada de WooCommerce, incluso con poco o ningún conocimiento previo de codificación.
¿Por qué crear una redirección de cierre de sesión de WooCommerce?
Un buen sitio web de comercio electrónico debe aprovechar todas las oportunidades para redirigir a los usuarios a las páginas que pueden aumentar las ventas y las conversiones después de cada acción: inicio de sesión, cierre de sesión, carrito, pago, registro, etc.
Se trata de crear un buen embudo de ventas de WooCommerce para promover ventas cruzadas de otros productos, ventas bajas y otros productos relacionados o productos más vendidos.
Los redireccionamientos de cierre de sesión de WooCommerce le permiten aumentar su tasa de conversión de ventas al redirigir a los clientes después del cierre de sesión a una página de destino de ventas o una página de redireccionamiento de embudo de WooCommerce estratégica, en lugar de redirigir al cliente a la página predeterminada "mi cuenta".
Este tutorial le mostrará cómo cambiar la configuración predeterminada de la redirección de WooCommerce después de cerrar la sesión y redirigir a los usuarios a URL personalizadas como "embudos de ventas", "ofertas especiales", "catálogo", la página anterior, la página de destino especial o cualquier enlace externo que es adecuado para aumentar las ventas y las conversiones.
En esta publicación, compartiré con usted un consejo rápido sobre cómo crear una redirección personalizada después de cerrar la sesión de WooCommerce, tal como compartí anteriormente cómo crear una redirección de WooCommerce después del pago. Idealmente, el cierre de sesión predeterminado de WooCommerce no es tan sencillo como debería ser. Muestra un mensaje de confirmación que molesta a varios usuarios.
Discutí anteriormente cómo eliminar el mensaje de confirmación de cierre de sesión de WooCommerce, lo que facilita que sus clientes cierren sesión automáticamente en su sitio de WooCommerce sin que aparezca el mensaje de confirmación.
También compartí el fragmento de código de cierre de sesión de WooCommerce que puede ampliar en este tutorial para hacerlo más eficiente agregando la opción de redirección, tal como lo hice en la redirección de WooCommerce después del complemento de pago que presenta opciones de redirección condicional.
Cambiar la redirección de cierre de sesión de WooCommerce
Cambiar la redirección de cierre de sesión de WooCommerce es otra mejora importante de la experiencia de cierre de sesión del cliente que debe considerar, tal como ilustré cómo agregar el enlace de cierre de sesión de WooCommerce al menú.
Entonces, profundicemos ahora en la creación de la mejor opción de redirección de cierre de sesión de WooCommerce que puede implementar de inmediato en su tienda para mejorar la experiencia del usuario.
Esta opción es simple ya que necesitamos usar un filtro para verificar el evento de cierre de sesión cuando ocurre.
Cuando se produce el cierre de sesión de WooCommerce, podemos conectarnos a este gancho: woocommerce_login_redirect
y luego pasar una función de devolución de llamada con nuestra lógica de redireccionamiento a la página a la que queremos redirigir al usuario después del cierre de sesión.
Si no está familiarizado con los ganchos de acción y los ganchos de filtro de WooCommerce o WordPress, este tutorial sobre los ganchos apply_filters y do_action puede ser un buen lugar para comenzar a acostumbrarse a los filtros y ganchos.
Siempre es una buena práctica antes de comenzar a crear la función de redirección de cierre de sesión de WooCommerce, debe verificar si el usuario ha iniciado sesión. Ahora, describamos las diversas opciones que puede usar para crear la redirección de cierre de sesión de WooCommerce.
Cada una de estas funciones utiliza ganchos de acción y funciones predeterminados de WooCommerce y WordPress que se analizan en detalle en las otras secciones de este tutorial.
Redirección de la página de inicio: después de cerrar la sesión, redireccionar a la página de inicio en Woocommerce
Uno de los redireccionamientos más comunes de WooCommerce después de cerrar sesión es a la página de inicio. De forma predeterminada, WooCommerce redirige a la página Mi cuenta después de que se completa el cierre de sesión.
Si desea redirigir al usuario a la página de inicio, debería considerar agregar este código a su archivo functions.php del tema WooCommerce activo.
Simplemente copie este código en el archivo functions.php de su tema y pruebe para ver si el usuario de WooCommerce es redirigido a la página de inicio después del cierre de sesión.
Redirigir a la página de inicio después del fragmento de cierre de sesión
También puede agregar este fragmento de código al archivo de complementos y funcionará sin problemas.
add_action('wp_logout','njengah_homepage_logout_redirect'); función njengah_homepage_logout_redirect(){ wp_redirect(dirección_inicio()); Salida; }
Cómo funciona el código de redirección
Hay dos funciones y un enlace de acción que se usan en este código para crear la redirección de WooCommerce después de cerrar sesión como en el código anterior. Analicemos detenidamente el papel de cada una de estas funciones y enlace:
Gancho: wp_logout
Este código utiliza el enlace de acción wp_logout que se ha discutido en detalle en este artículo en la sección – Enlace de WordPress – wp_logout. Idealmente, este es un gancho de cierre de sesión predeterminado de WordPress que se activa después de que se haya ejecutado el cierre de sesión.
Función: wp_redirect()
En este caso, si observa la función de devolución de llamada, si hace uso de la función wp_redirect()
que también se ha explicado en detalle en la sección Función wp_redirect de WordPress.
Función: home_url()
La función final utilizada en la función de devolución de llamada es home_url() , esta es una función de WordPress que devuelve la URL de la página de inicio del sitio actual.
home_url( string $path = '', string|null $scheme = null )
Por ejemplo, puede mostrar la URL de la página de inicio del sitio actual usando la función home_url() de la siguiente manera:
$url = home_url(); echo $url;
Entonces, en este caso de la redirección de WooCommerce después de cerrar la sesión, devolverá la URL del sitio actual y la agregará como una cadena a la función wp_redirect()
.
Para que entendamos cómo funciona el gancho de redirección de cierre de sesión de WooCommerce a medida que lo aplicamos en su código, debemos observar cada una de estas funciones predeterminadas de WordPress y el papel que desempeñan en la creación de redireccionamientos.
Redirección de la página actual: botón de cierre de sesión de Woocommerce y redirección a la página actual
La segunda redirección de WooCommerce más común después de cerrar sesión es la redirección a la página actual después de que un usuario cierra sesión. Esto es importante cuando desea que el usuario permanezca en la misma página en la que estaba cuando cerró la sesión.
En este caso, necesitamos conocer la página del usuario actual y aplicarla a la lógica de redirección de cierre de sesión de WooCommerce.
Para crear una redirección de WooCommerce a la página actual después del evento de cierre de sesión, necesitamos usar la función get_permalink()
para informarnos la página actual y luego aplicarla a la función de devolución de llamada de cierre de sesión.
En este caso, debe agregar el siguiente fragmento de código a sus functions.php
o a sus archivos de complemento para ejecutar la redirección de WooCommerce después de cerrar sesión en la página actual.
función njengah_redirect_current_page_after_logout( $logout_url, $redirect ){ devolver $logout_url . '&redirect_to=' . get_permalink(); } add_filter('logout_url', 'njengah_redirect_current_page_after_logout', 10, 2);
Cómo funciona el código
Este código se compone de un gancho de filtro logout_url
y la función de devolución de llamada tiene la función de WordPress get_permalink()
que establece la página actual para los usuarios de la interfaz y la usa para devolver la URL de cierre de sesión.
Filtro: cerrar sesión_url()
En este caso, hemos utilizado logout_url
que es otro filtro central de cierre de sesión de WordPress y WooCommerce que se ha discutido en detalle en la sección debajo de la función de WordPress logout_url
.
Es posible que este código no funcione para todos los usuarios y es probable que falle para los usuarios en el backend de administración. Esta es una redirección adecuada después de cerrar la sesión para los clientes en la página Mi cuenta, pero no para otros roles.
Para que funcione también para los usuarios en el backend, debemos reemplazar la función get_permalink()
con el valor de consulta HTTP que representa la página actual.
PHP Súper Global $_SERVER['HTTP_HOST']
Entonces, en ese caso, debemos agregar este súper global $_SERVER['HTTP_HOST'] como alternativa a la función get_permalink()
. $_SERVER
es una variable súper global de PHP que contiene información sobre encabezados, rutas y ubicaciones de secuencias de comandos.
El súper global $_SERVER['HTTP_HOST']
devuelve el encabezado Host de la solicitud actual. Por lo tanto, nos ayuda a obtener la página actual para que podamos aplicarla a la URL de redirección de WooCommerce después de cerrar sesión. El nuevo código que funciona para todos los usuarios debería ser el siguiente:
función njengah_redirect_current_page_after_logout( $logout_url, $redirect ){ devolver $logout_url . '&redirect_to=http://' . $_SERVIDOR['HTTP_HOST'] . $_SERVIDOR['SOLICITUD_URI']; } add_filter('logout_url', 'njengah_redirect_current_page_after_logout', 10, 2);
Ahora puede crear un botón para cerrar el enlace de redirección siguiendo el tutorial que compartí anteriormente sobre cómo crear un botón de cierre de sesión de WooCommerce.
Redirección de página específica: página de redirección de cierre de sesión de Woocommerce (por ID)
En algunos casos, es posible que desee redirigir a los usuarios a una página específica después de cerrar la sesión. La página se puede agregar a la lógica de redirección de cierre de sesión de WooCommerce usando la identificación de la página.
En este caso, debe conocer la ID de la página para pasarla en la función de redirección. Puede lograr la redirección de cierre de sesión de WooCommerce a una página específica por identificación utilizando el siguiente fragmento de código.
add_action('wp_logout','njengah_specific_page_logout_redirect'); función njengah_specific_page_logout_redirect(){ wp_redirect( get_permalink($pageId) ); Salida; }
Cómo funciona el código
Este código usa el gancho de acción wp_logout
y en la función de devolución de llamada tenemos la función get_permalink()
con una variable $pageID
que debe ser reemplazada por la ID de la página a la que desea redirigir al usuario después del pago.
Si no está seguro acerca de la ID de la página, puede usar esta publicación que escribí sobre cómo obtener la ID de la página en WordPress.
Función WooCommerce: wc_get_page_id()
También puede usar el nombre de la página a la que desea redirigir al usuario junto con la función de WooCommerce wc_get_page_id()
como en el fragmento de código a continuación:
add_action('wp_logout','njengah_specific_page_logout_redirect'); función njengah_specific_page_logout_redirect(){ wp_redirect( get_permalink( wc_get_page_id( 'shop' ) ) ); Salida; }
La función wc_get_page_id()
recupera ID de página y se usa comúnmente para myaccount, edit_address, shop, cart, checkout, pay, view_order, terms y devuelve -1 si no se encuentra ninguna página.
Redirección del rol del cliente – Redirección de cierre de sesión del cliente de Woocommerce
Otro escenario de redireccionamiento de WooCommerce después del cierre de sesión es donde desea redirigir a los usuarios según el rol. Probablemente desee redirigir al cliente a una página determinada después de que cierre sesión en lugar de la redirección predeterminada de Mi cuenta después de cerrar sesión.
En este caso, puede ejecutar la redirección después de cerrar la sesión solo para el rol del cliente u otro rol o un grupo de roles utilizando el fragmento de código que se comparte a continuación:
if( is_user_logged_in() ) { // comprobar si hay un usuario conectado $usuario = wp_get_current_user(); // obteniendo y configurando el usuario actual $roles = (arreglo) $usuario->roles; // obteniendo el rol // $roles[0]; // Devuelve un rol //devuelve $roles; // devuelve la matriz de los roles // Haz la comparación aquí if($roles[0] == 'cliente'){ // Ejecutar la redirección si el rol del usuario actual es igual a cliente add_action('wp_logout','njengah_specific_page_logout_redirect'); función njengah_specific_page_logout_redirect(){ wp_redirect( get_permalink($pageId) ); Salida; } } }
Cómo funciona el código
Comenzamos comprobando si el usuario ha iniciado sesión como expliqué en una publicación anterior sobre cómo encontrar si el usuario de WordPress ha iniciado sesión.
Obtener el rol de usuario
El segundo paso fue obtener el rol del usuario actual en WordPress usando la función wp_get_current_user()
y exigiendo el rol del usuario actual.
Compare y ejecute la redirección si el rol coincide con el cliente
El tercer paso ha sido ahora hacer la comparación del rol obtenido en el paso anterior con el rol del cliente y si el rol coincide ahora agregas la acción de redirección y la función.
Puede sustituir el rol con otro rol, incluidos los roles personalizados. También puede cambiar la página de redirección pasando un ID de página diferente en la función get_permalink()
.
Redirección de página anterior: redirección de cierre de sesión de Woocommerce a la página anterior
Puede crear una redirección de WooCommerce después de cerrar sesión en la página anterior usando las sesiones. En este caso, debe crear una sesión y agregarla a una función y usarla en la lógica para crear la redirección después de cerrar sesión en la página anterior.
Puede usar el fragmento de código a continuación para crear la redirección de cierre de sesión de WooCommerce a la página anterior:
// Iniciar sesión global para guardar la URL de referencia función inicio_sesión() { sesión_inicio(); } add_action('init', 'start_session', 1); // Obtenga la URL de referencia y guárdela función redirigir_url() { si (es_usuario_logged_in()) { $_SESSION['referer_url'] = wp_get_referer(); } demás { session_destroy(); } } add_action('template_redirect', 'redirect_url'); // Redirección de cierre de sesión función njengah_logout_redirect() { if (isset($_SESSION['referer_url'])) { wp_redirect($_SESSION['referer_url']); } demás { wp_redirect(URL_inicio()); } } add_filter('wp_logout', 'njengah_logout_redirect', 1100, 2);
Cómo funciona el código
Este código usó las sesiones de PHP para crear una sesión y guardar la URL de la página actual y en la función de redirección probamos la URL de la sesión establecida: $_SESSION['referer_url']
.
Si está configurado, creamos el redireccionamiento a esa página como en los otros redireccionamientos de cierre de sesión que discutimos anteriormente.
Redirección de la página de mi cuenta – Redirección de cierre de sesión de mi cuenta de Woocommerce
La redirección de cierre de sesión de WooCommerce desde la página Mi cuenta es una de las preguntas más frecuentes sobre el cierre de sesión de WooCommerce.
Esto no es diferente de otras redirecciones de cierre de sesión; de hecho, puede agregar una redirección de cierre de sesión en la página Mi cuenta usando el fragmento de código a continuación:
add_action('wp_logout','njengah_my_account_page_logout_redirect'); función njengah_my_account_page_logout_redirect(){ wp_redirect( get_permalink($pageId) ); Salida; }
Puede cambiar el valor de la variable $pageID
en la función get_permalink() para que se corresponda con el ID de página de la página o publicación de redirección y esto funcionará sin problemas.
Redirección de URL externa: función de redirección de cierre de sesión de Woocommerce Php Snippet:
Si desea redirigir a los usuarios a una URL externa después de que cierren sesión en su tienda WooCommerce, puede hacerlo utilizando un fragmento agregado a las funciones de su tema o en un complemento personalizado.
Este fragmento de php de la función de redireccionamiento de cierre de sesión de WooCommerce que se puede agregar al archivo functions.php para crear el redireccionamiento después del cierre de sesión es el siguiente:
add_action('wp_logout','njengah_redirect_after_logout'); función njengah_redirect_after_logout(){ wp_redirect ($url); Salida(); }
Simplemente agregue este fragmento de código en functions.php y reemplace la variable $url
con su URL de redirección respectiva entre comillas.
Por ejemplo, si desea redirigir al usuario a una URL externa después de cerrar la sesión y la URL externa es http://example.com , puede reemplazar la variable $url
con la URL completa como se muestra en el siguiente código:
add_action('wp_logout','njengah_redirect_after_logout'); función njengah_redirect_after_logout(){ wp_redirect('http://ejemplo.com'); Salida(); }
URL de redirección de cierre de sesión de WP – URL de cierre de sesión de Woocommerce
Si desea crear un botón de cierre de sesión de WooCommerce y colocarlo en una plantilla personalizada o en cualquier otra página, le ayudará a conocer la URL de redirección de cierre de sesión de WP que puede agregar fácilmente en cualquier botón o enlace.
La siguiente es la URL de redirección de cierre de sesión de WP que se puede cambiar a cualquier otra página cambiando el parámetro 'mi cuenta' "
wp_logout_url( get_permalink( wc_get_page_id( 'micuenta' ) ) );
También puede tener la URL externa en la URL de redirección de cierre de sesión de WooCommerce de la siguiente manera:
wp_logout_url( 'http://ejemplo.com/' );
También puede agregar las funciones de WordPress a la URL de redirección de cierre de sesión de WP de la siguiente manera:
wp_logout_url( url_inicio() );
Esta URL de redirección de cierre de sesión de WP se puede agregar en plantillas personalizadas y también se puede usar en códigos cortos o botones para mostrar una opción de cierre de sesión en lugares que no son las ubicaciones predeterminadas para el botón de cierre de sesión, como widgets, pie de página, menú de la barra superior y mucho más.
Arreglar el error de redirección de cierre de sesión: la redirección de cierre de sesión de Woocommerce no funciona
Si ha personalizado la redirección de cierre de sesión de WooCommerce y no funciona, probablemente haya un error en su código o una de las siguientes razones.
Prioridad de gancho
El primer paso es verificar la prioridad de su add_action()
o add_filter()
en comparación con los otros ganchos de WordPress. Esta es una de las causas más comunes del error de redirección de cierre de sesión.
Cuanto mayor sea la prioridad del gancho, antes se producirá la carga. Si los dos ganchos tienen la misma prioridad, se carga primero el que está colocado encima del otro. Ajustar la prioridad de la acción o el enlace del filtro puede ser un buen lugar para comenzar la depuración.
Error de código: error de sintaxis
El segundo paso que debe verificar si todo el código tiene un error y un error común es un error de sintaxis. Posiblemente, mientras edita el código, puede olvidarse de colocar una comilla de cierre o un corchete.
Contador verifique el código y preferiblemente agregue el código a un verificador de errores de sintaxis de PHP.
Es mejor si está familiarizado con herramientas como Visual Studio o IDE como Netbeans, ya que estas herramientas pueden ayudarlo rápidamente a detectar errores de sintaxis en su código.
Código agregado al archivo incorrecto
Otra causa común del error de redirección de cierre de sesión de WooCommerce que no funciona es cuando tienes el código correcto pero lo agregas en el lugar equivocado. En este caso, si está agregando el código a un tema, debe agregarse estrictamente al archivo functions.php.
Al agregar este código a un complemento, debe tener cuidado de no agregarlo dentro de una clase que no esté instanciada. Es una buena idea agregarlo al archivo base del complemento y también corregir cualquier cambio que pueda ser necesario para garantizar que el código encaje en el contexto de la estructura de archivos de su complemento personalizado.
Conflictos de complementos o temas
En la mayoría de los casos, hay complementos o temas que controlan el redireccionamiento de inicio y cierre de sesión en WooCommerce. Estos complementos pueden entrar en conflicto y provocar el error de redirección de cierre de sesión.
Si está experimentando un error de cierre de sesión de redireccionamiento de WooCommerce, puede comenzar por desactivar todos los complementos y usar el tema predeterminado de WordPress para verificar si el error es causado por un conflicto de complemento o tema.
Complemento de redirección de cierre de sesión de Woocommerce
Finalmente, nada hace que sea más fácil agregar la redirección de WooCommerce después de cerrar sesión que un complemento bien codificado con las funciones adecuadas, una buena experiencia de usuario y soporte de clase mundial. Durante años, he solucionado cientos de problemas de cierre de sesión, inicio de sesión y registro en WooCommerce y WordPress en general.
En las últimas semanas, he reunido toda mi experiencia y lecciones aprendidas sobre las redirecciones y el cierre de sesión de WooCommerce. He creado una notable URL de redirección de cierre de sesión de WooCommerce que consta de las siguientes características:
Funciones de redirección de cierre de sesión
- Redireccionamiento de WooCommerce después de cerrar sesión en cualquier página: seleccione la página de una lista desplegable
- Redireccionamiento de WooCommerce después de cerrar sesión a cualquier producto individual: seleccione el producto de una lista desplegable
- Redirección de WooCommerce después de cerrar sesión en cualquier publicación individual: seleccione la publicación de una lista desplegable
- Redireccionamiento de WooCommerce después de cerrar sesión a cualquier categoría de producto: seleccione la categoría de producto de una lista desplegable
- Redirección de WooCommerce después de cerrar sesión en la página actual
- Redireccionamiento de WooCommerce después de cerrar sesión a la página anterior
- Redireccionamiento de WooCommerce después de cerrar sesión a URL externa
- Redireccionamiento de WooCommerce después de cerrar sesión según el rol
- Redirección de WooCommerce después de cerrar sesión según el historial de compras (adecuado para ofertas especiales)
- WooCommerce fuerza el cierre de sesión después del pago
Funciones de redirección de inicio de sesión
- Redirección de WooCommerce después de iniciar sesión en cualquier página: seleccione la página de una lista desplegable
- Redirección de WooCommerce después de iniciar sesión en cualquier producto individual: seleccione el producto de una lista desplegable
- Redirección de WooCommerce después de iniciar sesión en cualquier publicación individual: seleccione la publicación de una lista desplegable
- Redirección de WooCommerce después de iniciar sesión en cualquier categoría de producto: seleccione la categoría de producto de una lista desplegable
- Redirección de WooCommerce después de iniciar sesión en la página actual
- Redirección de WooCommerce después de iniciar sesión en la página anterior
- Redirección de WooCommerce después de iniciar sesión en URL externa
- Redirección de WooCommerce después de iniciar sesión según el rol
- Redirección de WooCommerce después de iniciar sesión según el historial de compras (adecuado para ofertas especiales)
El complemento WooCommerce Redirect after Login & Logout (WRAL) se lanzará en las próximas semanas. Si desea ser uno de los primeros en adoptar, no se quede atrás, ya que el lanzamiento vendrá con un 70% de descuento.
Puede unirse a la lista de los primeros 100 primeros usuarios poniéndose en contacto conmigo de inmediato. Su lanzamiento está previsto para el 2 de noviembre de 2020 .
Creación de redirección de cierre de sesión en WordPress - Funciones principales
Después de ver la forma rápida de agregar fragmentos para crear una redirección de WooCommerce después del cierre de sesión, es útil resaltar las funciones y ganchos de cierre de sesión predeterminados de WordPress y explicar en detalle a los desarrolladores que están leyendo esta guía para comprender cómo funcionan estos redireccionamientos.
Estas funciones y gancho de acción pueden ser útiles para crear una redirección de WooCommerce después de cerrar la sesión. En general, puede crear una redirección de cierre de sesión de WooCommerce utilizando los siguientes ganchos y funciones:
- función wp_logout_url()
- gancho de acción wp_logout
- filtro logout_redirect
Quiero explicar cada una de estas funciones y cómo puede usarlas para crear una redirección de WooCommerce después del pago y por qué es posible que desee usar una sobre la otra.
También es importante resaltar la forma en que puede crear una redirección de inicio de sesión de WooCommerce utilizando filtros. También hay una función que es útil para crear una redirección de inicio de sesión en WooCommerce. Comencemos con el enlace de redirección de inicio de sesión que es muy útil para crear una redirección de inicio de sesión en WooCommerce.
Redirección de inicio de sesión de WooCommerce: gancho woocommerce_login_redirect
Este es el gancho especial de WooCommerce que nos permite controlar las funciones de redirección de inicio de sesión en WooCommerce. Es similar a la función predeterminada de cierre de sesión de WordPress que se aplica al crear una redirección de WooCommerce después del cierre de sesión. Su uso básico es el siguiente:
apply_filters( 'woocommerce_login_redirect', $redirect, $user );
Como puede ver, toma 2 parámetros y los parámetros son los siguientes:
Parámetro | Descripción | Ejemplo(s) de uso |
$redirect | Esta es la página de redireccionamiento donde el usuario aterrizará después del inicio de sesión. Puede ser útil para cambiar la redirección predeterminada de WooCommerce después de iniciar sesión para permitir que el usuario llegue a la página específica después de iniciar sesión. | add_filter('woocommerce_login_redirect', 'login_redirect') Puede agregar el gancho de filtro y en la función de devolución de llamada puede pasar la lógica de redirección de la siguiente manera: Como puede ver, agregué el parámetro $redirect_to y devolví la URL de redirección para redirigir al usuario a la página de inicio después del inicio de sesión. |
$user | Este es el usuario al que se aplica la acción de redirección. Esto puede ser particularmente útil cuando desea crear una redirección después de iniciar sesión para usuarios específicos. |
Gancho: woocommerce_login_redirect no funciona
Este código se puede usar en los temas y el código del complemento, pero debe comprender las prioridades para evitar disparar demasiado temprano o tarde, lo que conducirá al escenario común de que woocommerce_login_redirect
no funciona.
También debe averiguar otras razones que pueden hacer que woocommerce_login_redirect
no funcione. De particular interés es otro complemento que tiene una función similar o la misma que funciona antes de que se active su código.
Entonces, si descubre que woocommerce_login_redirect
no funciona, lo primero que debe verificar es la prioridad de un ejemplo de caso, puede tener estos dos fragmentos de código:
# Menor Prioridad
add_filter( 'woocommerce_login_redirect', 'njengah_login_redirect', 1100, 2 );
# Prioridad más alta
add_filter( 'woocommerce_login_redirect', 'njengah_login_redirect', 10, 2 );
Como puede ver, en ambos casos, los números de prioridad son diferentes, la regla básica es que cuanto menor sea el número, mayor será la prioridad, lo que significa que se carga primero.
Cuando tiene esta función utilizada en otra parte de su tema u otro complemento y está intentando recrear la redirección de WooCommerce después de la función de inicio o cierre de sesión, debe prestar atención a la prioridad. Esta es la solución para solucionar el problema de que woocommerce_login_redirect
no funciona.
Función de cierre de sesión de WordPress – wp_logout_url()
Esta función es responsable de crear la URL de cierre de sesión en WordPress.
Ayuda a los desarrolladores y usuarios de WordPress a crear rápidamente una URL de cierre de sesión que se puede agregar a un enlace o botón y se ilustra en este artículo: cómo crear una URL de cierre de sesión de WooCommerce .
WooCommerce amplía la funcionalidad al tener los puntos finales de URL que juegan un papel crucial para ayudar a los desarrolladores y usuarios a crear una página de cierre de sesión de WooCommerce sin ningún tipo de codificación.
Si desea comprender profundamente el proceso de cierre de sesión de WooCommerce y WordPress, es útil comenzar evaluando la función wp_logout_url()
.
Es una función especial que encontrará en varios temas y complementos de WordPress y es una buena idea echar un vistazo a lo que sucede debajo del capó.
El uso básico de la función es el siguiente:
wp_logout_url( string $redirect = '' )
Como puede ver, la función toma un parámetro que es una cadena y los siguientes son los detalles del parámetro:
Parámetro | Descripción | Ejemplo(s) de uso |
$redirect | Este es un parámetro de cadena y es opcional agregarlo; puede dejarlo en blanco y la función funcionará. Sin embargo, es útil en el caso de que desee agregar una URL de redireccionamiento a una página específica. Entonces, en este caso, el parámetro También puede pasar otras funciones como parámetros que devuelven estrictamente una cadena, ya que | Puede usar esta función junto con un enlace de la siguiente manera: Puede usar esta función y pasar otra función como parámetro que devuelve una cadena de la URL de redireccionamiento de la siguiente manera: |
Si desea comprender mejor la función, es útil observar el código definido en el núcleo de WordPress. Este código de función principal es el siguiente:
función wp_logout_url ($ redirigir = '') { $argumentos = matriz(); si (! vacío ($ redirigir)) { $args['redirect_to'] = urlencode ($redirect); } $logout_url = add_query_arg( $args, site_url( 'wp-login.php?action=logout', 'login' ) ); $logout_url = wp_nonce_url ($logout_url, 'cerrar sesión'); /** * Filtra la URL de cierre de sesión. * * @desde 2.8.0 * * @param string $logout_url La URL de cierre de sesión codificada en HTML. * @param string $redirect Ruta a la que redirigir al cerrar la sesión. */ return apply_filters( 'logout_url', $logout_url, $redirect ); }
Gancho de acción: wp_logout
Este es un gancho de acción que se dispara cuando el usuario ha cerrado la sesión. Desempeña un papel importante en la creación de redirección después de la funcionalidad de cierre de sesión. El uso básico de esta función es el siguiente:
do_action( 'wp_logout', int $user_id )
Como puede ver, toma un parámetro y los detalles del parámetro son los siguientes:
Parámetro | Descripción | Ejemplo(s) de uso |
$user_id | Este es el ID del usuario que se ha desconectado. | add_action('wp_logout','logout_redirect'); En este caso, lo hemos agregado como un enlace de acción y podemos pasar nuestra redirección después de la lógica de cierre de sesión en la función de devolución de llamada de la siguiente manera: Entonces, en este caso, estamos redirigiendo al usuario después de cerrar sesión a la página de inicio. |
Estas funciones son útiles cuando desea controlar la redirección del usuario después de iniciar sesión o cerrar sesión.
Gancho de filtro de WordPress logout_redirect
Otro enlace de filtro que puede usar para crear una redirección después de cerrar sesión en WooCommerce es el enlace de filtro logout_redirect. Este gancho de filtro funciona como la función wp_logout_url()
o el gancho de acción wp_logout.
Es un filtro básico de WordPress que está diseñado para ayudar a crear redirección de WordPress o WooCommerce después de cerrar la sesión. Su uso básico es el siguiente:
apply_filters( 'logout_redirect', string $redirect_to, string $requested_redirect_to, WP_User $user )
Como puede ver, tiene tres parámetros y el parámetro se puede describir en detalle de la siguiente manera:
Parámetro | Descripción |
$redirect_to | Esta es la URL de destino de redireccionamiento y debe ser una cadena, por ejemplo, http://example.com |
$requested_redirect_to | Esta es la URL de destino de redirección solicitada que se pasa como parámetro y también debe ser una cadena como el primer parámetro. |
$user | Este es el objeto de usuario: objeto WP_User del usuario que se ha desconectado. |
Puede crear una redirección de WordPress basada en filtros después de cerrar la sesión usando logout_redirect de la siguiente manera:
add_filter('login_redirect', 'njengah_logout_redirect', 10, 3); función njengah_logout_redirect ($ubicación, $solicitud, $usuario) { $usuario global; if ( isset( $usuario->roles ) && is_array( $usuario->roles ) ) { if ( in_array( 'suscriptor', $usuario->roles ) ) { volver home_url(); } demás { devolver $ redirigir_a; } } regreso; }
Gancho de filtro de WordPress login_redirect
También es importante señalar que hay un filtro similar para el inicio de sesión: login_redirect funciona de la misma manera que el filtro logout_redirect. De hecho, el uso es similar y viene con 3 parámetros y la expresión general es la siguiente:
apply_filters( 'login_redirect', string $redirect_to, string $requested_redirect_to, WP_User|WP_Error $user )
The parameters are similar expect the last parameter that has two user object options as you will see in the detailed description below:
Parámetro | Descripción |
$redirect_to | This is the redirect destination URL and it must be a string, for example, http://example.com |
$requested_redirect_to | This is the requested redirect destination URL that is passed as a parameter and it must also be a string just like the first parameter. |
$user | This is the user object – WP_User object of the user who has been logged in if the login was successful but for unsuccessful login the WP_Error object is represented by this parameter |
As you can see there are several ways you can use to create a WordPress or WooCommerce logout redirect.
In a quick summary we have highlighted the three most important hooks you should consider using for creating the redirect after logout. These hooks include:
- Default WordPress
logout_redirect
– using filter to create redirect after logout - Action hook
wp_logout
– fired after the logout and thus can be used to create redirect. - WordPress logout function
wp_logout_url()
– WordPress default function that retrieves the logout URL and this can be useful in adding a redirect since it takes one parameter for the redirect path.
WooCommerce Multisite Redirect After Logout
When you are creating a redirect after logout in WooCommerce the wp_logout
hook may fail to work when you have a multisite. In this case you need a little creativity to control how to create the WooCommerce redirect after logout.
In fact in a multisite set up WordPress logout function requires you to filter the allowed URLs for redirect and this can easily be executed using the allowed_redirect_hosts
filter.
It helps to understand how this filter hook works so that you can use it in the WooCommerce multisite redirect after checkout. So let's briefly look at this filter.
Filter Hook: allowed_redirect_hosts
This is a filter hook that filters all the allowed hosts to apply redirect to. So in simple terms it checks the redirect URLs and vets them. The basic usage of this filter is as follows:
apply_filters( 'allowed_redirect_hosts', string[] $hosts, string $host )
As you can see in the expression above, it takes two parameter and they can be explained in details as follows:
Parámetro | Descripción | Usage Example(s) |
$hosts (string[]) | This is simply an array with all the allowed host names | add_filter( 'allowed_redirect_hosts', 'njengah_allow_parent_redirect' ); |
$host (string) | This is the host name of the redirect destination. This can be left empty. |
You can add more hosts to the callback function and come up with code like this:
add_filter('hosts_redirect_permitidos', 'njengah_allow_parent_redirect'); función njengah_allow_parent_redirect ($ permitido) { $permitido = matriz( 'blog.ejemplo.com', 'codex.ejemplo.com', ); return array_merge( $hosts, $permitido); }
Esto simplemente tiene el propósito de validar las URL de redirección permitidas, lo cual es una adición importante a la redirección de WooCommerce de sitios múltiples después del cierre de sesión, ya que en la mayoría de los casos, la redirección wp_logout
predeterminada fallará sin el filtrado de los hosts de redirección.
Función de redireccionamiento de WordPress: wp_ Redirect
Cuando crea una redirección en WooCommerce o WordPress, como expliqué en la publicación sobre cómo crear una redirección después de pagar en WooCommerce, necesita la función wp_redirect()
.
Comprender el papel de esta función es crucial para crear la redirección de WooCommerce después del pago, ya que es la función central responsable de ejecutar las redirecciones en WordPress y WooCommerce. Describamos brevemente cómo funciona y el parámetro que toma. El uso general de la función wp_redirect() es el siguiente:
wp_redirect( string $location, int $status = 302, string $x_redirect_by = 'WordPress' )
Como puede ver, esta función toma tres parámetros y se pueden describir en detalle de la siguiente manera:
Parámetro | Descripción |
$location | Esta es la ruta o URL donde redirigir al usuario. Debe ser una cadena y es necesaria para que funcione la función. |
$status | Este es el código de estado de respuesta HTTP que se debe aplicar a esta redirección y es un número entero y su uso es opcional. Por ejemplo, puede agregar 301 para la redirección permanente o puede dejarlo como el valor predeterminado, que es 302, lo que significa que se movió temporalmente. |
$x_redirect_by | Esta es la aplicación que está realizando la redirección y, de forma predeterminada, es WordPress y rara vez debe desactivarse, ya que estamos creando la redirección de WooCommerce después de cerrar sesión, lo cual está dentro del contexto de WordPress. |
Nota
Es importante comprender que cuando usa la función wp_redirect(), tit no sale por sí solo. Por lo tanto, es importante agregar siempre la salida después de la función, ya que la salida en PHP se usa para terminar el script en ejecución actual después de ejecutar la línea de código anterior. Entonces, la mejor manera de usar la función wp_redirect
es la siguiente:
wp_redirect ($url); Salida
También puede crear una redirección condicional usando la función wp_redirect con la if statement
de la siguiente manera:
si (wp_redirect ($url)) { Salida; }
Esta función se puede usar junto con template_redirect
hook como en el siguiente código:
función njengah_wp_redirect_example() { if (is_user_logged_in() && is_page( $id ) ){ wp_redirect( get_permalink( $id ) ); Salida; } } add_action('template_redirect', 'njengah_wp_redirect_example');
Como puede ver en el código anterior, puede tomar una función como parámetro siempre que la función devuelva una cadena para el parámetro $ubicación, como es el caso de la función get_permalink( )
Función de redirección de WordPress: wp_safe_redirect()
El wp_safe_redirect()
es la segunda función de redireccionamiento de WordPress que puede ser útil para ejecutar el redireccionamiento de WooCommerce después de cerrar sesión. Esta función funciona como la función wp_redirect()
pero tiene una verificación adicional de la URL de redireccionamiento.
En la función wp_redirect, el parámetro $ubicación no se verifica, pero en la función wp_safe_redirect()
, el parámetro $location
se verifica para determinar si es un host permitido.
Esa es la diferencia entre las dos funciones de redirección. El uso general de esta función de redirección es similar al de wp_redirect
y la expresión general es la siguiente:
wp_safe_redirect( string $location, int $status = 302, string $x_redirect_by = 'WordPress' )
Como se puede ver los parámetros son los mismos:
Parámetro | Descripción |
$location | Esta es la ruta o URL donde redirigir al usuario. Debe ser una cadena y es necesaria para que funcione la función. |
$status | Este es el código de estado de respuesta HTTP que se debe aplicar a esta redirección y es un número entero y su uso es opcional. Por ejemplo, puede agregar 301 para la redirección permanente o puede dejarlo como el valor predeterminado, que es 302, lo que significa que se movió temporalmente. |
$x_redirect_by | Esta es la aplicación que está realizando la redirección y, de forma predeterminada, es WordPress y rara vez debe desactivarse, ya que estamos creando la redirección de WooCommerce después de cerrar sesión, lo cual está dentro del contexto de WordPress. |
Esta función permite a los desarrolladores de complementos configurar o eliminar la lista de hosts permitidos y, si el host no está en la lista de hosts permitidos, la redirección falla y el valor predeterminado es wp-admin.
Al igual que la función wp_redirect
, wp_safe_redirect
no se cierra automáticamente y también requiere que agregue exit como en los fragmentos de código a continuación:
wp_safe_redirect ($url); Salida;
También puede usarlo con una declaración condicional como en el ejemplo anterior:
si (wp_safe_redirect ($url)) { Salida; }
Conclusión
En esta publicación, describí las formas paso a paso en las que puede crear las diversas opciones de redirección de WooCommerce después de cerrar sesión. Ilustré con un ejemplo de código cómo crear el cierre de sesión de redireccionamiento de WordPress o WooCommerce utilizando la variedad de funciones y ganchos disponibles del núcleo de WordPress.
En un resumen rápido para resumir lo que cubrimos; cómo crear una redirección después de cerrar sesión a:
- Redirección de cierre de sesión de la página actual
- Redirección de cierre de sesión de la página anterior
- Redirección de cierre de sesión de la página de inicio
- Redirección de cierre de sesión de página específica
- Redirección de cierre de sesión de URL externa
Espero que esta guía le brinde un excelente lugar para comenzar mientras crea una redirección de cierre de sesión en WooCommerce. Si desea compartir comentarios o contribuir a mejorar esta guía e incluso señalar errores o fallas, no dude en ponerse en contacto conmigo. Si le gusta esta guía, también puede consultar la otra guía que escribí sobre cómo crear una redirección de WooCommerce después de la compra.
Artículos similares
- Cómo crear una base de datos MySQL en WordPress a través de la línea de comandos
- Fragmento PHP de cierre de sesión de WooCommerce para crear un botón de cierre de sesión
- Cómo agregar un nuevo menú en el menú de la página de mi cuenta en Woocommerce
- Cómo reordenar las categorías Página de la tienda WooCommerce Storefront Theme
- Cómo obtener métodos de pago en WooCommerce » Ejemplo de código
- Cómo comenzar con el tema de escaparate de WooCommerce
- Cómo comenzar con Vue Storefront [Guía para principiantes]
- Cómo configurar la página del producto del tema WooCommerce Storefront a todo lo ancho
- Cómo cambiar el eslogan del tema de la tienda WooCommerce
- Cómo configurar la página de inicio en WooCommerce Storefront
- Cómo redirigir al usuario si no ha iniciado sesión en WordPress » Redirección de página
- Cómo cambiar el aviso 'Agregado al carrito' de WooCommerce
- ¿Cómo redirigir una página de WordPress sin complementos?
- Cómo obtener información de usuario iniciada en WordPress
- Cómo eliminar el tema WooCommerce Storefront de productos relacionados
- Cómo verificar si el usuario ha iniciado sesión en WordPress
- Cómo agregar una imagen de fondo del encabezado del tema Storefront
- Cómo eliminar el título de la página WooCommerce Storefront Theme
- Cómo configurar WooCommerce Storefront Shipping Guía rápida
- Cómo quitar el menú de descargas Página de mi cuenta WooCommerce
- Cómo cambiar el tamaño del logotipo de la tienda de WooCommerce
- Cómo agregar contenido antes o después de the_content y en tipos de publicaciones personalizadas
- Cómo hacer que el menú móvil de Divi se pueda desplazar Solución de solución rápida
- Cómo agregar texto antes del precio en WooCommerce » Agregar texto antes del precio
Las mejores listas de complementos de WooCommerce
- Más de 30 mejores complementos de WooCommerce para su tienda (la mayoría son GRATIS)
- Los 26 mejores complementos de WooCommerce para comentarios de los clientes
- Más de 30 mejores complementos de listas de correo de WordPress para la creación de listas
- Más de 30 mejores complementos de blogs de WordPress para bloguear con éxito