Shortcode-ul My Account din WooCommerce

18 ian. 2018, 18:44:53
Vizualizări: 20.6K
Voturi: -2

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?

6
Comentarii

Poate cineva care a votat negativ întrebarea să explice motivul? :thinking_face:

Chin Leung Chin Leung
21 ian. 2018 16:12:37

Când spui "afișează index.php implicit", te referi că partea WooCommerce nu este afișată, dar conținutul obișnuit al paginii este vizibil? Ai încercat să dezactivezi toate celelalte plugin-uri și să folosești una dintre temele implicite, fără modificările tale?

swissspidy swissspidy
21 ian. 2018 18:26:40

@swissspidy Da, exact. În mod normal ar trebui să afișeze șablonul "My Account" din WooCommerce în loc de index.php-ul temei.

Chin Leung Chin Leung
22 ian. 2018 01:10:15

Ce se întâmplă când accesezi http://example.com/my-account/? Care sunt setările tale Adresă WordPress și Adresă site în Setări > Generale?

Abhik Abhik
22 ian. 2018 06:46:56

Nu reușesc să reproduc această problemă. Ai încercat pașii de depanare menționați mai sus? Ai încercat și să elimini shortcode-ul și să-l scrii manual din nou?

swissspidy swissspidy
22 ian. 2018 13:13:34

am dat vot negativ deoarece 1. WC este off-topic. 2. Lipsa codului înseamnă că toate răspunsurile nu pot fi decât presupuneri. 3. Sau, altfel spus, problema este prea localizată și improbabil să fie rezolvată fără acces la serverul tău. 4. Ai pus o recompensă, prin urmare întrebarea nu poate fi închisă și singura opțiune disponibilă este să i se dea vot negativ (și te rog să mă scutești de argumentul "dar sunt întrebări despre WC pe aici")

Mark Kaplun Mark Kaplun
27 ian. 2018 20:33:15
Arată celelalte 1 comentarii
Toate răspunsurile la întrebare 4
0

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.

23 ian. 2018 13:48:03
2

Vă rugăm să verificați unul dintre următoarele aspecte:

  1. Ați menționat suportul pentru WooCommerce în tema dumneavoastră? add_theme_support('woocommerce')
  2. În panoul de control, accesați submeniul status din meniul woocommerce și verificați blocul template overrides pentru a vedea dacă afișează șablonul dumneavoastră.
  3. Asigurați-vă că în șablonul paginii dumneavoastră, funcția the_content() este apelată în bucla principală.

Vă mulțumim!

23 ian. 2018 13:50:30
Comentarii

add_theme_support('woocommerce') nu ar trebui să fie necesar. Am testat cu succes fără el.

swissspidy swissspidy
23 ian. 2018 13:54:06

@swissspidy ai dreptate... este doar pentru a anunța WordPress că tema suportă Woo Commerce

Sachit Sachit
23 ian. 2018 13:58:44
0

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.

27 ian. 2018 19:58:07
1
-2

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!

24 ian. 2018 11:30:25
Comentarii

Aceasta nu este problema la care ne referim. Ei au demonstrat că utilizarea do_shortcode() funcționează. Bug-ul este că pagina Contul Meu nu funcționează automat.

swissspidy swissspidy
24 ian. 2018 12:11:54