Door deze WooCommerce-haken en filters te beheersen, kun je de functionaliteiten van je e-commerce-website naar wens aanpassen.

2 minuten leestijd
2026-03-12
2026-06-04
2,514
Ik verdien commissies wanneer je via de onderstaande links winkelt, zonder dat dit extra kosten voor jou met zich meebrengt.

WooCommerce is als de krachtigste e-commerce-plugin in de WordPress-ecosysteem niet alleen bekend van zijn direct bruikbare functies, maar ook van zijn zeer uitbreidbare architectuur. Het hart van deze architectuur vormt het systeem van “hooks” en “filters” dat is gebaseerd op de WordPress-plugin-API. Door dit systeem te begrijpen en te gebruiken, kunnen ontwikkelaars diep in de interne processen van WooCommerce doordringen. Ze kunnen functies precies op maat toevoegen, bewerken of verwijderen, zonder de kerncode te hoeven aanpassen. Dit zorgt voor zeer geavanceerde en aangepaste e-commerce-oplossingen.

WooCommerce: basis van hooks en filters

Voordat we verder gaan met concrete voorbeelden, is het nodig om twee belangrijke concepten duidelijk te maken: Action Hooks en Filter Hooks. Deze vormen de basis voor alle personalisaties in WooCommerce.

add_action() Dit wordt gebruikt om te worden gemonteerd op een actiehaak (action hook). Een actiehaak wordt op een bepaald moment tijdens de uitvoering van het codepatroon geactiveerd, waardoor je je eigen code kunt uitvoeren op dat moment. Denk bijvoorbeeld aan het toevoegen van een banner nadat de winkelwagenpagina is geladen, of het sturen van een e-mail aan de beheerder nadat de bestelling is afgerond. Er wordt geen terugkeerwaarde (return value) verwacht; het doel is simpelweg om “iets te doen”.

Aanbevolen leesmateriaal WordPress-pluginontwikkeling: van nul tot een krachtige websiteextensie

add_filter() Dit wordt gebruikt om een filterhook te mounten. Een filterhook biedt de mogelijkheid om gegevens die worden verwerkt te “bewerken”. Denk hierbij aan het aanpassen van de manier waarop de prijs van een product wordt berekend, het veranderen van de tekst op de verzendkostenlabels of het aanpassen van de regels voor het genereren van ordernummers. Het verwacht dat je een gewijzigde waarde teruggeeft.

UltaHost WordPress-hosting
30-daagse garantie voor het terugbetalen van het geld, onbeperkt bandbreedte- en databestand, gratis DDoS-beveiliging, en een prijsvoordeel van 50% bij een aankoop van 3 jaar.

Een simpel manier om dit te onthouden is: ‘Acties betekenen dat je iets uitvoert, en filters betekenen dat je dingen verandert.’ Bijna alle aanpassingen in WooCommerce maken gebruik van deze twee concepten.

Toepassingsgebieden voor core action hooks

Action hooks zijn verspreid over het hele levenscykel van WooCommerce, van het tonen van producten tot het afsluiten van een bestelling. Door enkele belangrijke hooks te beheersen, kun je op cruciale punten in de gebruikerservaring customisatie toevoegen.

Op de productpagina moet customiseren inhoud worden toegevoegd.

woocommerce_before_add_to_cart_formwoocommerce_after_add_to_cart_form Het zijn twee “hooks” (of: event handlers) die worden uitgevoerd voordat en nadat de knop ‘In winkelwagen leggen’ wordt gebruikt. Stel je voor dat je een waarschuwingssignalisatie wilt weergeven voordat de gebruiker de formulier invult voor complexe producten (bijvoorbeeld producten met variabele opties). Je kunt dit op de volgende manier doen:

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">Voor het begin, moet u eerst de gewenste specificatie-eigenschappen kiezen.</p>';
    }
}

Een extra stap toevoegen aan de afrekeningsprocedure

woocommerce_before_checkout_formwoocommerce_after_checkout_form Je mag content toevoegen aan het begin en eind van het hele afrekenformulier. woocommerce_checkout_before_customer_detailswoocommerce_checkout_after_customer_details De inhoud wordt dus preciezer geplaatst rondom de blok met klantinformatie. Deze ‘hooks’ worden vaak gebruikt om de verzendingsregels, uitleggingen over coupons of betrouwbaarheidsmerkjes te weergeven.

Aanbevolen leesmateriaal WooCommerce-pluginontwikkelingsgids: van nul beginnen met het creeren van aangepaste e-commerce-functies

Toepassingsgebieden van kernfilters

Filteren biedt je de mogelijkheid om de door WooCommerce geleverde data en tekst nauwkeurig te bewerken, waardoor je bedrijfsregels kunt implementeren en een persoonlijke weergave kunt creëren.

Wijzigen van het formaat van de prijsweergave

woocommerce_get_price_html De filters worden gebruikt om de HTML-output van productprijzen te filteren. Als je wilt dat er voor alle producten met een prijsverlaging na de prijs de tekst “(Tijdens promocië)” wordt toegevoegd, kun je dit op de volgende manier doen:

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">(Tijdens de promocie)</span>';
    }
    return $price;
}

Maakbare winkelwagen- en afrekenvelden

woocommerce_checkout_fields Dit is een zeer krachtig filter dat het mogelijk maakt om alle velden op de afrekeningspagina te toevoegen, te verwijderen, te bewerken of te hersorteren. Als je bijvoorbeeld het veld “Bedrijfsnaam” wilt maken tot een verplicht veld, of de tekst op het veld “Adres 2” wilt wijzigen:

hosting.com gedeelde hosting
Hoge prestaties met AMD EPYC CPU's, NVMe SSD opslag en LiteSpeed, 24/7 deskundige interne ondersteuning, geavanceerde beveiligingsmaatregelen waaronder SSL, bescherming tegen brute kracht, malware en DDoS, besparingen tot 73%
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;
}

Advanced praktijk: Samenwerking van hooks en filters

Echte personalisatie vereist meestal dat acties en filters worden gecombineerd en dat een complexere bedrijfslogica wordt geschreven.

Maak een aangepaste orderstatus

Hoewel WooCommerce al verschillende orderstatussen biedt, kan het nodig zijn om een extra status toe te voegen, bijvoorbeeld “In voorbereiding op verzending”. Hiervoor moet je filters combineren om de status te definiëren, en acties om de overgang van de ene status naar de andere te beheersen.

Allereerst gebruiken we wc_order_statuses Filter registreert een nieuwe status:

Aanbevolen leesmateriaal WooCommerce e-commerce websiteontwikkeling: bouw je online winkel vanaf nul.

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

Daarna kunt u dit gebruiken in de lijst met bestellingen van de administrator. woocommerce_order_actions Voor de filter wordt een handmatig bedienbare knop toegevoegd om deze staat te activeren. woocommerce_order_action_* Maak een aangepaste actie om de logica na een statusupdate te verwerken, bijvoorbeeld om een e-mailnotificatie te sturen naar de opslagplaats.

Functie om dynamisch aan te passen op basis van de inhoud van de winkelwagen

Je kunt luisteren. woocommerce_before_calculate_totals Er worden acties uitgevoerd om de prijzen of eigenschappen van de producten in de winkelwagen te wijzzen, voordat de totale prijs wordt berekend. woocommerce_cart_item_name Filters: in het winkelwagentjeblad worden dynamisch gegevens weergegeven die zijn aangepast en gerelateerd zijn aan deze modificaties.

InterServer gedeelde hosting
Shared hosting $2.50 USD per maand, eerste maand $0.1 USD promo code tryinterserver, 461 cloud apps scripts, een klik te installeren.

Als voorbeeld: controleren of er producten van een bepaalde categorie in de winkelwagen zitten. Als dit het geval is, bieden we een discount op een andere categorie producten aan en tonen we naast de namen van deze producten een label met de tekst “Gecombineerde aanbieding”. Hiervoor is een diepe kennis van het WooCommerce-winkelwagenobject vereist, evenals het correct beheersen van sessies en caches.

Samenvatting

Het hook- en filter-systeem van WooCommerce is een krachtig en geavanceerd abstractie-laag dat de stabiliteit van het kerncode en de flexibiliteit voor uitbreidingen perfect met elkaar combineert. Van eenvoudige tekstveranderingen tot complexe herstructureringen van bedrijfsprocessen: ontwikkelaars kunnen dit systeem op allerlei manieren gebruiken om hun website te bewerken en te verbeteren. add_actionadd_filter 这两个函数介入。成功定制的关键在于:第一,准确找到生命周期中对应的钩子;第二,理解传递的参数和上下文;第三,编写高效、安全的回调函数。通过系统性地学习和实践这些钩子,你将能突破主题和插件的限制,打造出完全符合业务需求的独一无二的电商网站。

Veelgestelde vragen (FAQ)

Hoe vind je beschikbare WooCommerce-hacks (plugins)?

De directe manier om dit te doen is door de officiële ontwikkelaarsdocumentatie van WooCommerce te raadplegen. Daar vind je een speciale sectie genaamd “Hook Reference”.
Daarnaast kun je in de codebestanden van je WordPress-site gebruikmaken van de zoekfunctie in een teksteditor om in het directory van de WooCommerce-plugin op zoek te gaan naar de termen “do_action” en “apply_filters”. Hierdoor vind je de definities van de hooks. Je kunt ook gebruikmaken van derde-partij-plugins of bibliotheken met codefragmenten om meer over de meest gebruikelijke hooks te leren.

Waar moet mijn eigen gemaakte code worden opgeslagen?

De beste praktijk is om je eigen code toe te voegen aan een subthema. functions.php Deze informatie zit in het bestand. Dit zorgt ervoor dat je bewerkingen niet worden overschreven wanneer het thema wordt bijgewerkt.
Als je verwacht dat er veel code zal worden gebruikt of dat de functies onafhankelijk zijn, kun je ook een aparte functionaliteitsplug-in maken om al het aangepaste WooCommerce-code te beheren. Verander nooit direct de core-bestanden van de WooCommerce-plugin of het moedertema.

Waarom werkt mijn filter niet?

Allereerst moet je de prioriteit van je callback-functies controleren.add_filter De derde parameter bepaalt of de modificatie geschikt is. Hoe lager het nummer, des hoger de prioriteit; de modificatie wordt dus eerder uitgevoerd. Als andere plugins dezelfde waarde hebben gewijzigd en deze later worden uitgevoerd (met een hoger prioriteitsnummer), kunnen ze je eigen modificatie overrulen.
其次,确保你的回调函数正确返回了值。过滤器函数必须有一个 return 语句。
Ten slotte moet je controleren of de spelling van de hooknaam correct is, en of je code is geladen nadat de hook is geactiveerd.

Kunnen acties en filters worden verwijderd?

Ja, dat kan. Gebruik het maar. remove_action()remove_filter() Een functie kan de al toegevoegde hook-callbacks verwijderen. Hiervoor moet je echter de naam van de functie waar de callback is geregistreerd, de prioriteit en andere relevante informatie kennen. De verwijdering moet plaatsvinden nadat de oorspronkelijke hook is toegevoegd, maar voordat deze wordt uitgevoerd. Wees voorzichtig met deze actie, om de functionaliteit van andere plugins of themes niet te beschadigen.

Hoe debug je de uitvoeringsvolgorde en parameters van hooks?

Het gebruiken van debugging-hulpmiddelen is de efficiëntste manier. Installeer een WordPress-debugging-plugin zoals “Query Monitor”. Dit plugin beschikt over een speciaal paneel met “hooks”, waardoor alle hooks die worden uitgevoerd tijdens het laden van een pagina, hun callback-functies, prioriteiten en parameters worden weergegeven. Dit is van belang om complexe processen te begrijpen en conflicten op te sporen. Zorg ervoor dat… wp-config.php Activeren in China WP_DEBUG Patroon.