Shortcode Il Mio Account WooCommerce
Sto utilizzando l'ultima versione di WordPress (4.9.2) e WooCommerce (3.2.6) e sto avendo problemi nel sovrascrivere il template Il Mio Account
.
Ho creato un file nel mio tema:
theme-name/woocommerce/myaccount/my-account.php
Ho una pagina nel WP Admin
con il post_content
impostato a:
[woocommerce_my_account]
Tuttavia, quando apro il link http://example.com/en/my-account
, viene mostrato il index.php
predefinito.
Se inserisco il seguente codice nel mio index, riesco a vedere la pagina dell'account:
do_shortcode('[woocommerce_my_account]');
Mi sono anche assicurato che la mia pagina account WooCommerce sia impostata correttamente in WooCommerce > Impostazioni > Account > Pagina Il Mio Account.
Posso vedere nel body della pagina renderizzata che ha le seguenti classi:
page-template-default page page-id-8 logged-in desktop woocommerce-account woocommerce-page
Qualcuno sa perché non viene visualizzata correttamente la pagina?

quindi do_shortcode('[woocommerce_my_account]');
funziona in index.php mentre [woocommerce_my_account]
non funziona nella normale pagina di wp admin
.
hai provato a cercare il problema con la funzione the_content()
? controlla se il loop è corretto nel file template del tuo tema.

Assicurati di aver verificato uno dei seguenti punti:
- Hai dichiarato il supporto al tema per WooCommerce nel tuo tema?
add_theme_support('woocommerce')
- Nella dashboard, vai al sottomenu
stato
all'interno del menuwoocommerce
e controlla il bloccosovrascritture template
per vedere se mostra il tuo template - Assicurati che nel template della tua pagina venga chiamato
the_content()
all'interno del loop.
Grazie!

Credo che il tuo problema non sia correlato allo shortcode, al template della pagina o a index.php. Dovrebbe funzionare indipendentemente da questi.
Vedo che hai una configurazione multilingue. Dovresti verificare come WooCommerce interagisce con questa configurazione, poiché non è sempre semplice. La maggior parte dei plugin di traduzione (come WPML) include un plugin aggiuntivo che garantisce il corretto funzionamento di WooCommerce con loro.

Dovresti usare echo quando utilizzi do_shortcode
. Modificalo in:
echo do_shortcode('[woocommerce_my_account]');
Puoi trovare maggiori informazioni su do_shortcode
qui: https://developer.wordpress.org/reference/functions/do_shortcode/. Saluti!
