Este es el foro de soporte técnico de WPML, el plugin multilingüe de WordPress.
Todas las personas pueden leerlo pero solo los clientes de WPML pueden ingresar comentarios. El equipo de WPML responde en los foros 6 días a la semana, 22 horas por día.
Etiquetado: Exception
Este tema contiene 6 respuestas, tiene 2 voces.
Última actualización por Carlos Rojas hace 1 año, 11 meses.
Asistido por: Carlos Rojas.
Autor | Publicaciones |
---|---|
julio 18, 2023 a las 4:18 am #14054203 | |
be-dental-expert-trainingS |
Saludos cordiales. Nuestro sitio web está creado en español (default) y en inglés. Cuando un usuario solicita restablecer su contraseña y el enlace que recibe en su email ha caducado, al hacer clic en ese enlace el usuario siempre es redirigido a la página en español /wp-login.php?action=lostpassword&error=expiredkey (ver imagen adjunta), aunque haya usado el sitio en inglés para crear su solicitud. Si el usuario utiliza el sitio en inglés, al hacer clic en el enlace después que este ha caducado, debería ser redirigido a la página en inglés /en/wp-login.php?action=lostpassword&error=expiredkey (ver imagen adjunta). Necesito ayuda para corregir este problema Saludos |
julio 18, 2023 a las 10:49 am #14058363 | |
Carlos Rojas Partidario de WPML desde 03/2017
Idiomas: Inglés (English ) Español (Español ) Zona horaria: Europe/Madrid (GMT+02:00) |
Hola Luis, Le pido que siga los pasos descritos en este enlace: https://wpml.org/forums/topic/multi-language-password-reset-link/#post-6391953 Hágame saber si necesita más asistencia de nuestra parte Saludos, |
julio 18, 2023 a las 11:35 am #14058729 | |
be-dental-expert-trainingS |
Hola Carlos. Gracias por encargarte de mi problema El enlace que publicaste me lleva a un post donde a su vez Bruno Kos le ofrece a otro usuario dos enlaces con las soluciones a su problema: https://wpml.org/forums/topic/translating-wp-login-page/#post-3094519 Ninguno de esos 2 enlaces los puedo abrir. Incluso el segundo arroja un error 404 (ver imágenes anexas) Saludos |
julio 18, 2023 a las 1:27 pm #14059613 | |
Carlos Rojas Partidario de WPML desde 03/2017
Idiomas: Inglés (English ) Español (Español ) Zona horaria: Europe/Madrid (GMT+02:00) |
Hola Luis, Me gustaría solicitar acceso temporal al sitio (wp-admin y FTP) con el objetivo de ver el problema más de cerca. Su próxima respuesta será privada y en ella encontrará los campos correspondientes a las credenciales solicitadas. Aunque no realizaré ningún cambio en el sitio siempre es recomendable crear una copia de seguridad del sitio completo antes de compartir las credenciales de acceso. Saludos! |
julio 18, 2023 a las 2:04 pm #14059907 | |
be-dental-expert-trainingS |
Hola Carlos Gracias por la pronta respuesta. Debido a las estrictas políticas de seguridad y privacidad del sitio web, debo prepararte un sitio staging con acceso de admin y FTP para que realicen sus revisiones. Necesito que me des una horas. Saludos |
julio 19, 2023 a las 1:27 am #14062397 | |
be-dental-expert-trainingS |
Hola Carlos Disculpa, he estado bastante ocupado y no he tenido tiempo para preparar el sitio staging. Sin embargo, te comento que he hecho una revisión rápida del archivo wp-login.php del core de wordpress (donde se produce el redireccionamiento que está causando el problema) y he encontrado que el siguiente fragmento de código es el responsable del redireccionamiento errado que reporté: if ( ! $user || is_wp_error( $user ) ) { setcookie( $rp_cookie, ' ', time() - YEAR_IN_SECONDS, $rp_path, COOKIE_DOMAIN, is_ssl(), true ); if ( $user && $user->get_error_code() === 'expired_key' ) { wp_redirect( site_url( 'wp-login.php?action=lostpassword&error=expiredkey' ) ); } else { wp_redirect( site_url( 'wp-login.php?action=lostpassword&error=invalidkey' ) ); } exit; } Observa que el núcleo de WP utiliza la función site_url() para construir la url del redireccionamiento. Esta función siempre devuelve la url predeterminada del sitio (root) y por ello el redireccionamiento siempre ocurre hacia idioma predeterminado del sitio. Para resolver este problema se debe suprimir la función site_url() y en este caso en lugar de wp_redirect() es preferible usar wp_safe_redirect() para validar que la url creada pertenezca al propio sitio. De esta forma el fragmento de código quedaría como sigue: if ( ! $user || is_wp_error( $user ) ) { setcookie( $rp_cookie, ' ', time() - YEAR_IN_SECONDS, $rp_path, COOKIE_DOMAIN, is_ssl(), true ); if ( $user && $user->get_error_code() === 'expired_key' ) { wp_safe_redirect( 'wp-login.php?action=lostpassword&error=expiredkey' ); } else { wp_safe_redirect( 'wp-login.php?action=lostpassword&error=invalidkey' ); } exit; } Por ahora he resuelto el problema temporalmente sobre-escribiendo el archivo wp-login.php (no recomendado), mientras investigo la forma de hacerlo usando los ganchos disponibles en ese archivo. Saludos |
julio 19, 2023 a las 11:11 am #14065607 | |
Carlos Rojas Partidario de WPML desde 03/2017
Idiomas: Inglés (English ) Español (Español ) Zona horaria: Europe/Madrid (GMT+02:00) |
Hola Luis, Me alegra saber que ha encontrado una solución (temporal) a este problema y la ha compartido para que otros usuarios puedan verla. Por favor no dude en contactarnos si necesita de nuestra asistencia en el futuro con WPML. Estaremos más que contentos de poder ayudarle. |