Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

299
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!