Shortcode-ul My Account din WooCommerce
Rulez ultima versiune de WordPress (4.9.2) și WooCommerce (3.2.6) și am probleme la suprascrierea șablonului My Account
.
Am creat un fișier în tema mea:
theme-name/woocommerce/myaccount/my-account.php
Am o pagină în WP Admin
cu post_content
setat la:
[woocommerce_my_account]
Cu toate acestea, când deschid link-ul http://example.com/en/my-account
, acesta afișează index.php
implicit.
Dacă pun următorul cod în index, reușesc să văd pagina de cont:
do_shortcode('[woocommerce_my_account]');
De asemenea, m-am asigurat că pagina mea de cont WooCommerce este setată corect în WooCommerce > Settings > Account > My Account Page.
Pot vedea în body-ul paginii randate că are următoarele clase:
page-template-default page page-id-8 logged-in desktop woocommerce-account woocommerce-page
Știe cineva de ce nu se afișează pagina corect?

deci do_shortcode('[woocommerce_my_account]');
funcționează în index.php iar [woocommerce_my_account]
nu funcționează în pagina normală wp admin
.
ai încercat să cauți problema cu funcția the_content()
? verifică dacă loop-ul este corect în fișierul template al temei tale.

Vă rugăm să verificați unul dintre următoarele aspecte:
- Ați menționat suportul pentru WooCommerce în tema dumneavoastră?
add_theme_support('woocommerce')
- În panoul de control, accesați submeniul
status
din meniulwoocommerce
și verificați blocultemplate overrides
pentru a vedea dacă afișează șablonul dumneavoastră. - Asigurați-vă că în șablonul paginii dumneavoastră, funcția
the_content()
este apelată în bucla principală.
Vă mulțumim!

Cred că problema ta nu este legată de shortcode sau de șablonul de pagină sau de index.php. Ar trebui să funcționeze indiferent.
Văd că ai o configurare multilingvă. Ar trebui să te uiți cum funcționează WooCommerce cu aceasta, deoarece nu este întotdeauna ușor. Majoritatea plugin-urilor de traducere (cum ar fi WPML) au un plugin special de asistență care asigură că WooCommerce funcționează corect cu ele.

Ar trebui să folosești echo atunci când utilizezi do_shortcode
. Schimbă-l în:
echo do_shortcode('[woocommerce_my_account]');
Poți verifica mai multe informații despre do_shortcode
aici: https://developer.wordpress.org/reference/functions/do_shortcode/. Noroc!
