Zvládněte tyto WooCommerce háky a filtry a přizpůsobte funkce svého e-commerce webu.

Čtení za 2 minuty.
2026-03-12
2026-06-04
2,481
Získávám provize, když nakupujete prostřednictvím níže uvedených odkazů, aniž by vás to něco stálo navíc.

WooCommerce, jako nejsilnější e-shopový plugin v ekosystému WordPressu, svou skutečnou sílu prokazuje nejen díky svým okamžitě použitelným funkcím, ale také díky své vysoce rozšiřitelné architektuře. Ústředním bodem této architektury je systém “hooků” (Hooks) a “filtrů” (Filters) založený na API pro pluginy WordPressu. Porozuměním a využitím tohoto systému mohou vývojáři proniknout do vnitřních procesů WooCommerce a bez úpravy základního kódu přesně přidávat, měnit nebo odstraňovat funkce, čímž vytvářejí vysoce přizpůsobená řešení pro e-shopy.

Základy hooků a filtrů v WooCommerce

Než půjdeme do konkrétních příkladů, je nutné si objasnit dvě základní koncepty: akční háčky (Action Hooks) a filtrovací háčky (Filter Hooks). Jsou to základy všech úprav a personalizací v systému WooCommerce.

add_action() Slouží k připojení k akčnímu háku. Akční hák je spuštěn v určitém okamžiku během provádění kódu, což vám umožňuje v tomto okamžiku “spustit” svůj vlastní kód. Například můžete po načtení stránky nákupního košíku zobrazit bannerm nebo po dokončení platby poslat e-mail správci. Neočekává se žádná návratová hodnota; jeho účelem je jednoduše “něco udělat”.

Doporučujeme k přečtení. Vývoj pluginů pro WordPress: vytvoření výkonných rozšíření webových stránek od nuly do jedné.

add_filter() Slouží k připojení k filtrovému háčku. Filtrový háček vám umožňuje “upravit” data, která jsou právě zpracovávána. Například můžete změnit způsob výpočtu ceny zboží, text popisu poštovných nebo upravit pravidla generování čísel objednávek. Očekává se, že vrátíte upravenou hodnotu.

UltaHost – hosting služby pro weby postavené na platformě WordPress
Záruka vrácení peněz do 30 dnů, neomezený šířka pásma a databáze, bezplatná ochrana proti DDoS útokům. Sleva 501 TP4T při nákupu na 3 roky.

Jednoduchý způsob pamatování je následující: „Akce znamená provedení něčeho, filtr znamená úpravu něčeho.“ Téměř všechny úpravy v systému WooCommerce zahrnují využití těchto dvou konceptů.

Příklady využití hooků pro základní akce

Akční háčky (action hooks) jsou rozprostřeny po celém životním cyklu WooCommerce – od zobrazení produktů až po dokončení objednávky. Pokud ovládnete několik klíčových háčků, budete moci vkládat vlastní logiku do důležitých bodů uživatelského prostředí.

Přidat vlastní obsah na stránce s detaily produktu

woocommerce_before_add_to_cart_formwoocommerce_after_add_to_cart_form Jedná se o dva “hooky” (dva funkční elementy), které jsou spuštěny před a po formuláři s tlačítkem „Přidat do košíku“. Pokud chcete před formulářem pro komplexní zboží (např. zboží s proměnnými parametry) zobrazit upozornění, můžete postupovat následovně:

add_action( 'woocommerce_before_add_to_cart_form', 'custom_before_add_to_cart_message' );
function custom_before_add_to_cart_message() {
    global $product;
    if ( $product->is_type( 'variable' ) ) {
        echo '<p class="custom-note">Nejprve si vyberte požadované specifikační parametry.</p>';
    }
}

Vložit další kroky do procesu platby

woocommerce_before_checkout_formwoocommerce_after_checkout_form Dovoluje vám přidávat obsah před a za celým formulářem pro úhradu. woocommerce_checkout_before_customer_detailswoocommerce_checkout_after_customer_details Tak je možné přesněji umístit obsah před a za blokem s informacemi o zákazníkovi. Tyto „hooky“ se často používají k zobrazení podmínek doručování, popisů slevových kódů nebo znaků důvěry.

Doporučujeme k přečtení. Průvodce vývojem pluginů pro WooCommerce: Vytvoření personalizovaných funkcí pro e-shopy od nuly

Hlavní scénáře využití filtrů

Filtry vám umožňují přesně nastavit data a text výstupu z WooCommerce a jsou skvělým nástrojem pro implementaci obchodních pravidel a personalizovaného zobrazení obsahu.

Změna formátu zobrazení cen

woocommerce_get_price_html Filtry slouží k filtrování HTML výstupu s cenami zboží. Pokud chcete, aby u všech zboží se slevou bylo za cenu přidáno označení “(V akci)”, můžete to provést následovně:

add_filter( 'woocommerce_get_price_html', 'custom_price_suffix', 10, 2 );
function custom_price_suffix( $price, $product ) {
    if ( $product-&gt;is_on_sale() ) {
        $price .= ' <span class="sale-badge">(V akci)</span>';
    }
    return $price;
}

Vlastní pole nákupního košíku a při platebním procesu

woocommerce_checkout_fields Jedná se o velmi výkonný filtr, který vám umožňuje přidávat, odstraňovat, upravovat nebo přeuspořádávat všechny pole na stránce pro úhradu. Například, pokud chcete, aby pole “Název společnosti” bylo povinné, nebo chcete změnit popisek pole “Adresa 2”:

Shared hosting na hosting.com
Vysoký výkon, vybavený procesorem AMD EPYC, úložištěm NVMe SSD a LiteSpeedem, nepřetržitá interní podpora odborníků 24 hodin denně a 7 dní v týdnu, pokročilá bezpečnostní opatření včetně SSL, ochrany proti útokům hrubou silou, malwaru a DDoS, úspora až 731 TB/měsíc.
add_filter( 'woocommerce_checkout_fields', 'customize_checkout_fields' );
function customize_checkout_fields( $fields ) {
    // 将“公司名称”设为必填
    $fields['billing']['billing_company']['required'] = true;

// 修改“地址行2”的标签和占位符
    $fields['billing']['billing_address_2']['label'] = '公寓、套房、单元等(可选)';
    $fields['billing']['billing_address_2']['placeholder'] = '';

return $fields;
}

Pokročilé praktické využití: Kombinované použití háčků a filtrů

Skutečné personalizace obvykle vyžadují kombinaci akcí a filtrů a také napsání složitější obchodní logiky.

Vytvořit vlastní stav objednávky

Ačkoli WooCommerce obsahuje řadu vestavěných stavů objednávek, možná budete potřebovat přidat další stav, např. “Čeká na expedici”. K tomu je potřeba kombinovat použití filtrů k definování stavů a akcí k správě operací při změně stavů.

Nejprve použijte wc_order_statuses Stav registrace filtru: Nový

Doporučujeme k přečtení. Vývoj e-commerce webové stránky WooCommerce: Vytvořte si svůj online obchod od nuly.

add_filter( 'wc_order_statuses', 'add_custom_order_status' );
function add_custom_order_status( $order_statuses ) {
    $order_statuses['wc-awaiting-prep'] = '待配货';
    return $order_statuses;
}

Poté můžete to použít v seznamu administrátorských objednávek. woocommerce_order_actions Do filtru přidejte tlačítko pro ruční spuštění tohoto režimu a použijte… woocommerce_order_action_* Vytvořte vlastní akci pro zpracování logiky po aktualizaci stavu, např. pro odeslání e-mailového upozornění do skladu.

Funkce dynamického přizpůsobení podle obsahu nákupního koše

Můžete sledovat (nebo poslouchat) určité události či aktivity. woocommerce_before_calculate_totals Provedení akce za účelem změny ceny nebo vlastností zboží v nákupním košíku před výpočtem celkové částky. Současně to je kombinováno s… woocommerce_cart_item_name Filtr: Dynamicky zobrazuje v tabulce nákupního koše vlastní informace související s těmito změnami.

Shared hosting od InterServeru
Sdílený hosting za 1 TB + 5 TB měsíčně za 2,50 USD, slevový kód tryinterserver pro první měsíc za 1 TB + 5 TB za 0,1 USD, a 461 skriptů cloudových aplikací k jednoduché instalaci.

Například můžete zjistit, zda je v nákupním košíku zboží určité kategorie. Pokud je, můžete nabídnout slevu na jiný typ zboží a vedle jeho názvu zobrazit označení “Sleva za kombinaci”. K tomu je potřeba dobře porozumět objektu nákupního košíku v systému WooCommerce a správně nakládat se sesími (sessions) a mezipamětí (caching).

Závěr

Systém hooků a filtrů v WooCommerce představuje výkonnou a sofistikovanou abstrakční vrstvu, která dokonale kombinuje stabilitu základního kódu s flexibilitou při rozšiřování funkčností. Od jednoduchých úprav textu až po komplexní přepracování obchodních procesů mohou vývojáři využít celou řadu možností k úpravě chování aplikace. add_actionadd_filter Tyto dvě funkce se zapojí. Klíčem k úspěšnému přizpůsobení je: za prvé, přesně najít odpovídající háky v životním cyklu; za druhé, porozumět předávaným parametrům a kontextu; a za třetí, napsat efektivní a bezpečné volací funkce. Systematickým učením a praktikováním těchto háků překonáte omezení témat a pluginů a vytvoříte jedinečný e-commerce web, který dokonale odpovídá obchodním požadavkům.

Časté dotazy

Jak najít dostupné pluginy („hooks“) pro WooCommerce?

Nejpřímějším způsobem je prostudovat oficiální dokumentaci pro vývojáře WooCommerce, kde je speciální část věnovaná referenci k “hookům” (zásahům do fungování systému).
Kromě toho můžete v souborech kódu svého webového stránek na WordPressu použít funkci vyhledávání v textovém editoru a vyhledat v adresáři pluginu WooCommerce slova “do_action” a “apply_filters”, abyste našli definice hooků. Také můžete využít některé třetí stranové pluginy nebo knihovny kódových úryvků k prozkoumání běžně používaných hooků.

Kde by měl být umístěn můj vlastní kód?

Nejlepší praxí je přidat svůj vlastní kód do podtématu. functions.php Ve souboru. Tím je zajištěno, že vaše úpravy nebudou při aktualizaci témat přepsány.
Pokud očekáváte, že bude objem kódu velký nebo že funkce budou nezávislé, můžete také vytvořit vlastní funkční plugin, který bude spravovat veškerý přizpůsobený kód pro WooCommerce. Rozhodně nesmíte přímo upravovat základní soubory pluginů WooCommerce nebo mateřského tématu.

Proč můj filtr nefunguje?

Nejprve zkontrolujte prioritu vaší callback funkce.add_filter Zda je třetí parametr vhodný. Čím menší je číslo, tím vyšší je priorita a operace se provádí dříve. Pokud jiné pluginy změní stejnou hodnotu a následně ji upraví (s vyšší prioritou), mohou vaše změny přepsat.
其次,确保你的回调函数正确返回了值。过滤器函数必须有一个 return 语句。
Na závěr se ujistěte, že název hooku je správně napsán, a že váš kód byl načten poté, co byl hook spuštěn.

Lze akce a filtry odstranit?

Možné. Použijte to. remove_action()remove_filter() Funkce umožňuje odstranit již přidané hookové callbacky. K tomu však potřebujete znát název funkce, která callback registrovala, její prioritu a další relevantní informace. Odstranění musí být provedeno až poté, co byl původní hook přidán, ale předtím, než byl skutečně spuštěn. Tuto operaci je třeba provádět s opatrností, aby nedošlo k poškození funkcí jiných pluginů nebo temat (tém).

Jak ladit pořadí provedení hooků a jejich parametry?

Použití nástrojů pro ladění je nejefektivnější metodou. Nainstalujte si laděcí plugin pro WordPress, jako je “Query Monitor”, který obsahuje speciální panel s “hooky”. Tento panel umožňuje zobrazit všechny hooky spuštěné během načítání stránky, jejich volané funkce, prioritu a parametry. To je zásadní pro pochopení složitých procesů a vyhledávání chyb. Zároveň se ujistěte, že… wp-config.php Zapnout v… WP_DEBUG Režim.