Shortcode de Mi Cuenta en WooCommerce

18 ene 2018, 18:44:53
Vistas: 20.6K
Votos: -2

Estoy ejecutando la última versión de WordPress (4.9.2) y WooCommerce (3.2.6) y estoy teniendo problemas para sobrescribir la plantilla de Mi Cuenta.

He creado un archivo en mi tema:

theme-name/woocommerce/myaccount/my-account.php

Tengo una página en mi WP Admin con el post_content configurado como:

[woocommerce_my_account]

Sin embargo, cuando abro el enlace, http://example.com/en/my-account, está mostrando el index.php predeterminado.

Si pongo el siguiente código en mi index, puedo ver la página de cuenta:

do_shortcode('[woocommerce_my_account]');

También me he asegurado de que mi página de cuenta de WooCommerce está configurada correctamente en WooCommerce > Ajustes > Cuenta > Página Mi Cuenta.

Puedo ver en el body de la página renderizada que tiene las siguientes clases

page-template-default page page-id-8 logged-in desktop woocommerce-account woocommerce-page

¿Alguien sabe por qué no se está mostrando la página correctamente?

6
Comentarios

¿Puede quien haya votado negativamente la pregunta explicar el motivo? :thinking_face:

Chin Leung Chin Leung
21 ene 2018 16:12:37

Cuando dices "está mostrando el index.php por defecto", ¿quieres decir que no se muestra la parte de WooCommerce, sino el contenido normal de la página? ¿Has intentado desactivar todos los demás plugins y usar uno de los temas predeterminados, sin tus modificaciones?

swissspidy swissspidy
21 ene 2018 18:26:40

@swissspidy Sí, exactamente. Normalmente debería mostrar la plantilla de "Mi cuenta" de WooCommerce en lugar del index.php del tema.

Chin Leung Chin Leung
22 ene 2018 01:10:15

¿Qué sucede cuando vas a http://example.com/my-account/? ¿Cuáles son tus configuraciones de Dirección de WordPress y Dirección del sitio en Ajustes > Generales?

Abhik Abhik
22 ene 2018 06:46:56

No puedo reproducir esto. ¿Has probado los pasos de depuración que mencioné anteriormente? ¿También has intentado eliminar el shortcode y escribirlo manualmente de nuevo?

swissspidy swissspidy
22 ene 2018 13:13:34

votado negativo porque 1. WC está fuera de tema. 2. Sin código significa que todas las respuestas no pueden ser más que conjeturas. 3. O en otras palabras, está demasiado localizado y es poco probable que se resuelva sin acceso a tu servidor. 4. Pusiste una recompensa, por lo tanto la pregunta no puede cerrarse y la única opción disponible es votarla negativamente (y por favor evita el argumento de "pero hay preguntas de WC por aquí")

Mark Kaplun Mark Kaplun
27 ene 2018 20:33:15
Mostrar los 1 comentarios restantes
Todas las respuestas a la pregunta 4
0

entonces do_shortcode('[woocommerce_my_account]'); funciona en index.php pero [woocommerce_my_account] no funciona en la página normal de wp admin.

¿has intentado buscar el problema con la función the_content()? verifica si el bucle es correcto en el archivo de plantilla de tu tema.

23 ene 2018 13:48:03
2

Por favor, asegúrate de haber verificado uno de los siguientes puntos:

  1. ¿Has declarado el soporte para WooCommerce en tu tema? add_theme_support('woocommerce')
  2. En el panel de control, ve al submenú estado dentro del menú woocommerce y verifica en el bloque sobreescrituras de plantillas si aparece tu plantilla.
  3. Asegúrate de que en la plantilla de tu página se esté llamando a the_content() dentro del bucle.

¡Gracias!

23 ene 2018 13:50:30
Comentarios

add_theme_support('woocommerce') no debería ser necesario. Lo probé exitosamente sin esto.

swissspidy swissspidy
23 ene 2018 13:54:06

@swissspidy tienes razón... solo es para hacerle saber a WordPress que el tema soporta WooCommerce

Sachit Sachit
23 ene 2018 13:58:44
0

Creo que tu problema no está relacionado con el shortcode, la plantilla de página o el index.php. Debería funcionar independientemente.

Veo que tienes una configuración multilingüe. Deberías investigar cómo funciona WooCommerce con esto, ya que no siempre es sencillo. La mayoría de los plugins de traducción (como WPML) tienen plugins auxiliares especiales que aseguran que WooCommerce funcione correctamente con ellos.

27 ene 2018 19:58:07
1
-2

Debes usar echo cuando utilices do_shortcode. Cámbialo a:

echo do_shortcode('[woocommerce_my_account]');

Puedes consultar más información sobre do_shortcode aquí: https://developer.wordpress.org/reference/functions/do_shortcode/. ¡Saludos!

24 ene 2018 11:30:25
Comentarios

Ese no es el problema en cuestión. Ellos demostraron que usar do_shortcode() funciona. El error es que la página de Mi Cuenta no está funcionando automáticamente.

swissspidy swissspidy
24 ene 2018 12:11:54