A egy webshop fejlesztése során számítani kell kell arra, hogy a WooCommerce oldal URL-ek megváltozhatnak. Ezeket pedig le kell kezelni, lehetőleg automatikusan, ilyenkor jön jól, ha el tudjuk kérni a rendszertől például a Kosár, vagy Fizetési oldal címe.
Tegyük fel, hogy fejlesztük egy webshopot, és (teljesen érthető módon) a saját számítógépünkön a lokális fejlesztői környezetben nem törődünk a rendszer tűpontos beállításával. Ez esetben hagyjuk automatikusan az alapértelmezett oldal neveket, de amikor feltöltjük a kész websablont az ügyfél tárhelyére, akkor egyszerűen nem működik néhány link.
A hiba leggyakoribb oka, hogy „beégettük” az URL-eket a weboldal bizonyos részeibe és nem dinamikusan kértük el a rendszertől, hogy mi a Shop oldal URL-je.
Hogyan kérd el a Kosár (Cart) oldal URL-ét?
Használd az wc_get_cart_url()
PHP függvénnyel könnyedén megkaphatod. Használata nagyon egyszerű:
<a href="<?php echo wc_get_cart_url() ?>">Kosár oldal</a>
A function-nek nincs szüksége semilyen paraméterre és egyenlő azzal, mintha leírtad volna, hogy wc_get_page_permalink('cart')
, azzal a különbséggel, hogy az lekérdezésbe beégetted a cart oldal slug-ját.
Függvények a további WooCommerce oldal URL-ek elkéréséhez
A fentiek alapján még lehetőség van a többi alap WooCommerce végponti URL elkérésére is:
A Fizetés oldal (Checkout)
wc_get_checkout_url();
Ennél a résznél mindenképp meg kell említeni, hogy vannak virtuális végpontok is. Olyan oldalalak, amik nem léteznek önmagukban, nem is lehet őket szerkeszteni, de amikor szükség van rájuk meghívódnak.
Ezeknek az oldalaknak is lehet szerkeszteni az elérését, a WooCommerce > Beállítások > Haladó részen, ezért el lehet kérni ezeket a WooCommerce URL-eket is dinamikusan.
Ilyenkor az alap nevét kell megadni az oldalnak (tehát azt ami nem volt módosítva), a többit a WooCommerce intézi helyettünk. Itt egy példa, ahol a sikeres fizetés utáni összegzőoldal url-ét kaphatjuk meg.
wc_get_endpoint_url( 'order-recived', '', wc_get_checkout_url() );
A Fiókom (My Account) oldal
A regisztrált felhasználók saját profiljának oldala, ahol módosíthatja az adatait. Ehhez sajnos nincs dedikált függvény, de van egy nem bonyolult megoldás, főleg, ha az előző végpontos példát értetted. A wc_get_page_permalink();
függvényt fogjuk használni.
wc_get_page_permalink( 'myaccount' );
A fiókom résznél is vannak virtuális végpontok, amiket el lehet kérni.
Ezeket a végpontokat is a WooCommerce > Beállítások > Haladó oldalon találjuk, csak kicsit lejjebb. A kód az lkérésükhöz pedig:
wc_get_account_endpoint_url( 'orders' );
Az Üzlet (Shop) oldal
Az egyik, és talán a legfontosabb lekérdezés az alapvető terméklistázó oldal, azaz a Shop page. Ezt is az előző fiókom oldalas példához hasonlóan nincs saját dedikált függvénye, hanem a központi függvénnyel kell használni.
wc_get_page_permalink( 'shop' );
Összegezve
Nem érdemes hardcode-oldni a azaz beégetni az oldalak neveit, mert ezzel az esetek többségében magunknak fogunk pluszmunkát csinálni a végén. Érdemes már a fejlesztés során a felhasználó fejével gondolkodni és kivédeni a lehetséges hibákat, főleg ha azt ilyen egyszerűen meg lehet tenni.
Szólj hozzá!