Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

301
Vistas
Woocommerce, ¿cómo excluir las páginas secundarias (puntos finales) de mi cuenta del enlace de redirección de plantilla?

El formulario de registro de inicio de sesión debe mostrarse solo como una ventana emergente, por lo que hice una redirección para evitar la página predeterminada de mi cuenta para usuarios no registrados.

 add_action( 'template_redirect', 'wish_custom_redirect' ); function wish_custom_redirect() { global $wp; if (!is_user_logged_in() && is_page('my-account') ) { wp_redirect( '/' ); exit; } }

Para ver la página de su cuenta, los usuarios deben iniciar sesión o registrarse en un formulario emergente. Pero hay un problema: /my-account/lost-password/, my-account/reset-password/ son puntos finales secundarios de myaccount. No tienen que hacer redirección para usuarios no registrados. Traté de hacer así

 add_action( 'template_redirect', 'wish_custom_redirect' ); function wish_custom_redirect() { global $wp; if (!is_user_logged_in() && is_page('my-account') && !is_page('my-account/lost-password/') ) { wp_redirect( '/' ); exit; } }

Pero todavía redirige. ¿Tal vez es una mala solución y hay una mejor manera? ¿O cómo hacer que esta redirección sea correcta?

 add_action('wp_logout','auto_redirect_after_logout'); function auto_redirect_after_logout(){ wp_redirect( home_url() ); exit(); }

Redirigir solo al cerrar la sesión ayuda, pero no evita que el usuario vea la página predeterminada. Pueden cerrar la sesión y luego volver a la página anterior /myaccount, y ver el formulario de registro predeterminado.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Hay varias formas de hacer esto, podría usar la función is_wc_endpoint_url , o podría usar global $wp y su propiedad llamada request también.

Como ya probó global $wp , tomaré el mismo enfoque.

Su código sería algo como esto:

 add_action( 'template_redirect', 'wish_custom_redirect' ); function wish_custom_redirect() { global $wp; if ( !is_user_logged_in() && ('my-account' == $wp->request) && ('lost-password' != $wp->request) ) { wp_safe_redirect( site_url() ); exit; } }

Ha sido probado en woocommerce 5.7 y funciona bien.


Publicación relacionada:

Para redirigir el punto final personalizado en la página de my-account :

https://stackoverflow.com/a/70395951/15040627

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda