Saltar navegación

Este hilo está resuelto. Aquí tienes una descripción del problema y la solución.

Problem: Ayer me avisa un usuario que al ingresar a su cuenta (en Ingles) no puede ver sus datos y obtiene algunos errores 404.

Revisé y no encontré la manera de que pudieran mostrarse en Ingles, en Español se muetran bien.

Solution: En este momento solamente tenemos el siguiente workaround:
- Cree una copia de seguridad del sitio completo
- Pegue el siguiente código en el archivo functions.php que se encuentra en la carpeta del tema:

    function woocommerce_account_content() {
        global $wp;
 
        if ( ! empty( $wp->query_vars ) ) {
            foreach ( $wp->query_vars as $key => $value ) {
                // Ignore pagename param.
                if ( 'pagename' === $key ) {
                    continue;
                }
//workaround
                $default_lang = apply_filters( 'wpml_default_language', null );
                $inenglng     = apply_filters( 'wpml_translate_single_string', $key, "WP Endpoints", $key, "en" );
                $indeflng     = apply_filters( 'wpml_translate_single_string', $key, "WP Endpoints", $key, $default_lang );
                if ( $key == $indeflng ) {
                    $key = $inenglng;
                }
//end of workaround
                if ( has_action( 'woocommerce_account_' . $key . '_endpoint' ) ) {
                    do_action( 'woocommerce_account_' . $key . '_endpoint', $value );
                    return;
                }
            }
        }
 
        // No endpoint found? Default to dashboard.
        wc_get_template(
            'myaccount/dashboard.php',
            array(
                'current_user' => get_user_by( 'id', get_current_user_id() ),
            )
        );
    }

- Guarde los cambios

Relevant Documentation:

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.

Este tema contiene 19 respuestas, tiene 2 voces.

Última actualización por Carlos Rojas hace 1 año.

Asistido por: Carlos Rojas.

Autor Entradas
octubre 31, 2023 en 2:49 pm #14701155

Carlos Rojas
Supporter

Idiomas: Inglés (English ) Español (Español )

Zona horaria: Europe/Madrid (GMT+01:00)

Este ticket se ha escalado a nuestro equipo de desarrollo. Regresaré con usted en cuanto tengamos una solución.

Muchas gracias por su paciencia y comprensión!
Saludos.

noviembre 4, 2023 en 5:01 pm #14731619

gustavoF-12

Hola Carlos.

Pasaron 15 dias desde que abri este ticket y aun no me han dado una solucion al problema.

Por favor necesito que encuentren el problema y creen algun fix o lo que consideren necesario para que este problema sea slucionado.

Gracias.

noviembre 5, 2023 en 2:38 pm #14733301

Carlos Rojas
Supporter

Idiomas: Inglés (English ) Español (Español )

Zona horaria: Europe/Madrid (GMT+01:00)

Hola,

En este momento solamente tenemos el siguiente workaround:
- Cree una copia de seguridad del sitio completo
- Pegue el siguiente código en el archivo functions.php que se encuentra en la carpeta del tema:

	function woocommerce_account_content() {
		global $wp;

		if ( ! empty( $wp->query_vars ) ) {
			foreach ( $wp->query_vars as $key => $value ) {
				// Ignore pagename param.
				if ( 'pagename' === $key ) {
					continue;
				}
//workaround
				$default_lang = apply_filters( 'wpml_default_language', null );
				$inenglng     = apply_filters( 'wpml_translate_single_string', $key, "WP Endpoints", $key, "en" );
				$indeflng     = apply_filters( 'wpml_translate_single_string', $key, "WP Endpoints", $key, $default_lang );
				if ( $key == $indeflng ) {
					$key = $inenglng;
				}
//end of workaround
				if ( has_action( 'woocommerce_account_' . $key . '_endpoint' ) ) {
					do_action( 'woocommerce_account_' . $key . '_endpoint', $value );
					return;
				}
			}
		}

		// No endpoint found? Default to dashboard.
		wc_get_template(
			'myaccount/dashboard.php',
			array(
				'current_user' => get_user_by( 'id', get_current_user_id() ),
			)
		);
	}

- Guarde los cambios
- Compruebe que el problema se resolvió

Puede decirme el resultado de los pasos anteriores?

noviembre 5, 2023 en 8:44 pm #14734049

gustavoF-12

Hola Carlos,

Ante todo muchas gracias por ocuparse del problema.

Probé el fix y funciona perfecto.

Por ahora lo dejaré implementado en functions.php.

¿Como sige el proceso?, esto lo implementaran ustedes en alguna actualizacion futura?

Saludos.

noviembre 6, 2023 en 7:49 am #14735087

Carlos Rojas
Supporter

Idiomas: Inglés (English ) Español (Español )

Zona horaria: Europe/Madrid (GMT+01:00)

Hola,

Si, nuestros especialistas están trabajando para incluir esta solución en la siguiente versión del plugin 🙂

Saludos!