Vaše šablona obsahuje zastaralé soubory šablon WooCommerce

Na informaci z nadpisu dnešního článku, můžete často narazit po aktualizaci WooCommerce. Co vlastně znamená a jak se s ní vypořádat?

WooCommerce má v sobě zabudovaný systém, díky kterému můžete ve složce šablony vytvořit složku s názvem WooCommerce a upravovat si tak soubory, dle vlastní potřeby.

Při načítání souborů, které jsou potřeba pro vykreslení aktuální stránky, plugin nejprve kontroluje, zda existuje příslušná složka, ve které hledá odpovídající soubor. Pokud existuje, načte jej, pokud ne, načte soubor ze složky templates, ve složce pluginu.

Tento postup má jednu obrovskou výhodu. Můžete upravovat zobrazování například detailu produktu, bez toho, aby se vás dotýkaly aktualizace WooCommerce.

To však platí jen částečně

Každý soubor, který používá plugin pro výpis, obsahuje na svém začátku podobný zápis:

/**
 * Thankyou page
 *
 * @author      WooThemes
 * @package 	WooCommerce/Templates
 * @version     2.0.0
 */

První je jméno souboru, následuje autor, package a verze. Z těchto údajů se mění pouze číslo verze a to vždy, když se změní samotný soubor. Verze tedy označuje verzi WooCommerce, ve které byl soubor změněn, nebo vytvořen. V tomto případě se jedná o 2.0.0.

V případě, že dojde k aktualizaci souboru a číslo verze se změní, WooCommerce o tom zobrazí informaci v záhlaví administrace a na stránce Stav systému.

Mohu tuto informaci ignorovat?

Ano i ne.

Zatím se setkávám s tím, že provozovatelé webů, podobně jako na aktualizace pluginů, i toto upozornění ignorují.
Teoreticky by se nemělo nic stát. Plugin je vyvíjen s ohledem na zpětnou kompatibilitu, ale je otázka, jak dlouho bude trvat. U prémiových šablon, především z ThemeForest bývají tyto soubory upravovány a zde pak přichází na řadu otázka, zda toto autor šablony zohledňuje a vydává aktualizace.

Jaké mohou vzniknout problémy

Stránka může přestat fungovat,nebo nebudou pracovat pluginy, které jsou novějšího data.

Může se stát, že dojde k přidání akce, nebo filtru do šablony, kterou bude plugin využívat a vy ji v šabloně nebudete mít.

Příklad:

Soubor thankyou.php,který se stará o zobrazení děkovné stránky,po provedení objednávky.

Verze 2.0.0

Verze 2.2.0

Pokud si na web s neaktualizovanými soubory v šabloně nainstalujete plugin, který bude využívat právě tento filter „woocommerce_thankyou_order_received_text“, marně budete hledat problém v pluginu.

Příklad 2:

wc_get_order() vs new WC_Order()

Pokud si prohlédnete soubory ve verzi 2.0.0, uvidíte, že k získání dat objednávky je používáno:

$order = new WC_Order( $order_id );

WC_Order je třída v souboru class-wc-order.php

V témže souboru ve verzi 2.2.0 (například order-details.php),můžete místo toho vidět:

$order = wc_get_order( $order_id );

Na první pohled nepatrná změna.

Získání dat objednávky ve verzi 2.0.0 funguje tak, že vytvoříte objekt pomocí třídy WC_Order.
U verze 2.2.0 nejprve zavoláte funkci wc_get_order() ze souboru wc-order-functions.php, která vrací metodu get_order() z třídy WC_Order_Factory, ze souboru class-wc-order-factory.php.

Ta zohledňuje to, zda se jedná o custom order type a teprve poté vrací vytvořený objekt pomocí WC_Order.

Pokud si tedy zakoupíte, nebo si necháte naprogramovat rozšíření, které bude vytvářet vlastní typy objednávky, tak vám je šablona správně nevypíše.

Závěr:
V případě, že se vám v administraci zobrazuje informace o tom, že máte zastaralé soubory šablony, tak je třeba tomu věnovat pozornost, předejdete zbytečným problémům.

Pokud si upravujete vzhled souborů WooCommerce, tak při kopírování souborů do složky šablony, přesouvejte pouze ty, které reálně potřebujete. Vím, že těch 30 vteřin vašeho života, které vás bude stát vytvoření několika složek, místo přetažení jedné, vám nikdo nevrátí, ale až budete procházet desítky souborů a hledat rozdíly a kontrolovat úpravy, pochopíte.

About The Author

Zajímá mne Wordpress, responsivní šablony a zkrátka vše kolem tohoto skvělého redakčního systému.

Související články

1 Comments

  1. Marek Klusák

    Tu závěrečnou radu 100% podepisuji … poprvé jsem také do své šablony přehrál celou složku z pluginu, ale od té doby již vždy kopíruji pouze soubory, které opravdu potřebuji upravit. Je to trochu méně pohodlné, ale vyplatí se to.

    Odpověď

Přidejte komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *