Shortcode Il Mio Account WooCommerce

18 gen 2018, 18:44:53
Visualizzazioni: 20.6K
Voti: -2

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?

6
Commenti

Chi ha votato negativamente la domanda può spiegare il motivo? :thinking_face:

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

Con "sta mostrando il index.php predefinito" intendi che la parte di WooCommerce non viene visualizzata, ma viene mostrato il contenuto regolare della pagina? Hai provato a disabilitare tutti gli altri plugin e usare uno dei temi predefiniti, senza le tue modifiche?

swissspidy swissspidy
21 gen 2018 18:26:40

@swissspidy Sì esatto. Normalmente dovrebbe mostrare il template del mio account WooCommerce invece del index.php del tema.

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

Cosa succede quando vai su http://example.com/my-account/? Quali sono le tue impostazioni WordPress Address e Site Address in Impostazioni > Generali?

Abhik Abhik
22 gen 2018 06:46:56

Non riesco a riprodurre questo problema. Hai provato i passaggi di debug che ho menzionato sopra? Hai anche provato a rimuovere lo shortcode e a riscriverlo manualmente?

swissspidy swissspidy
22 gen 2018 13:13:34

downvotato perché 1. WC è off-topic. 2. Nessun codice significa che tutte le risposte non possono essere altro che supposizioni. 3. O in altre parole è troppo localizzato e improbabile da risolvere senza accesso al tuo server. 4. Hai messo una bounty quindi la domanda non può essere chiusa e l'unica strada disponibile è downvotarla (e per favore risparmiami l'argomento "ma ci sono domande su WC qui in giro")

Mark Kaplun Mark Kaplun
27 gen 2018 20:33:15
Mostra i restanti 1 commenti
Tutte le risposte alla domanda 4
0

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.

23 gen 2018 13:48:03
2

Assicurati di aver verificato uno dei seguenti punti:

  1. Hai dichiarato il supporto al tema per WooCommerce nel tuo tema? add_theme_support('woocommerce')
  2. Nella dashboard, vai al sottomenu stato all'interno del menu woocommerce e controlla il blocco sovrascritture template per vedere se mostra il tuo template
  3. Assicurati che nel template della tua pagina venga chiamato the_content() all'interno del loop.

Grazie!

23 gen 2018 13:50:30
Commenti

add_theme_support('woocommerce') non dovrebbe essere necessario. Ho testato con successo questa funzione senza di esso.

swissspidy swissspidy
23 gen 2018 13:54:06

@swissspidy hai ragione... serve solo per far sapere a WordPress che il tema supporta WooCommerce

Sachit Sachit
23 gen 2018 13:58:44
0

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.

27 gen 2018 19:58:07
1
-2

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!

24 gen 2018 11:30:25
Commenti

Non è questo il problema in questione. Hanno dimostrato che l'uso di do_shortcode() funziona. Il bug è che la pagina Il mio account non funziona automaticamente.

swissspidy swissspidy
24 gen 2018 12:11:54