WooCommerce-codefragmenten die je als WordPress-ontwikkelaar nodig hebt

[aioseo_eeat_author_tooltip]
[aioseo_eeat_reviewer_tooltip]
WooCommerce-codefragmenten

Als je webwinkels bouwt op een WordPress-site , biedt WooCommerce een sterke basis, maar echte controle krijg je met slimme codefragmenten. Met kleine stukjes aangepaste code kun je de winkelpagina, de afrekenpagina en zelfs kleine details van productgedrag vormgeven zonder zware plugins. Je kunt codefragmenten in een PHP-bestand plaatsen, het functions.php-bestand in een child-thema of een plugin voor codefragmenten installeren voor een veiligere, visuele workflow. Veel ontwikkelaars geven de voorkeur aan Code Snippets of Code Snippets Pro omdat je regels kunt in- en uitschakelen en exporteren zonder themabestanden aan te raken. Dit houdt je broncode overzichtelijk en maakt automatisch importeren voor nieuwe projecten eenvoudig.

Snippets helpen bij veelvoorkomende taken zoals het wijzigen van de paginatitel van de webshop, het verbergen van WooCommerce- breadcrumbs of het aanpassen van checkout-velden om de juiste gegevens te verzamelen. Je kunt een aangepast veld aan een productvariant, de tekst van de winkelwagenknop wijzigen of een minimum bestelbedrag instellen. Je kunt WooCommerce-instellingen verfijnen, WooCommerce-ondersteuning in een thema en binnen enkele minuten de zoomfunctie, lightbox en slider van de WooCommerce-productgalerij inschakelen.

Je kunt ook een aangepaste valuta toevoegen, een producttabblad hernoemen naar 'meer info' of productcategorieën verbergen in een widget. Of je nu eenvoudige functies plakt of een groeiende bibliotheek met aangepaste code onderhoudt, deze praktische codefragmenten bieden je overzichtelijke functionaliteit zonder overbodige ballast en werken prima in de meeste builds, mits goed getest.

Inhoud

Hoe u deze WooCommerce-codefragmenten veilig kunt gebruiken

Hoe u deze WooCommerce-codefragmenten veilig kunt gebruiken
#image_title

Het toevoegen van aangepaste codefragmenten aan WooCommerce kan de werking van je WordPress-site volledig veranderen. Maar als je per ongeluk een verkeerde regel code in het functions.php-bestand plakt of een fout maakt in een PHP-functie, kan de hele site crashen. Daarom is het belangrijk om veilige werkwijzen te volgen bij het werken met aangepaste code.

Gebruik een child theme of een codefragmentenplugin

  • Plaats je aangepaste code in het functions.php-bestand van het child-thema, zodat deze intact blijft na thema-updates.
  • Als je de themabestanden niet rechtstreeks wilt bewerken, installeer dan de Code Snippets-plugin of Code Snippets Pro.
  • Met deze tools kunt u codefragmenten maken, beheren en exporteren zonder de themabestanden aan te raken.
  • De plugins bevatten ook opties voor automatisch importeren, waardoor het eenvoudiger wordt om uw aangepaste codefragmenten op verschillende websites te hergebruiken.

Testen vóór de livegang

  • Plak nooit code rechtstreeks op een live website.
  • Test je codefragmenten altijd eerst in een testomgeving .
  • Deze stap zorgt ervoor dat er geen conflicten ontstaan ​​met WooCommerce-instellingen, afrekenvelden of andere themabestanden.

Documenteer uw aangepaste code

  • Voeg duidelijke opmerkingen waarin wordt uitgelegd wat de functie doet.
  • Bijvoorbeeld: of het nu de afrekenpagina, de winkelpagina, WooCommerce-productcategorieën of account-afrekenvelden betreft.
  • Door de juiste labels te gebruiken, is je broncode later gemakkelijker te begrijpen.

Zorg voor back-ups en versiebeheer

  • Bewaar je codefragmenten buiten WordPress met Git of een ander versiebeheersysteem.
  • Als je een plugin voor codefragmenten gebruikt, profiteer dan van de exportfunctie.
  • Met een back-up kunt u snel terugkeren naar een eerdere versie als iets na een update niet goed werkt.

Op de juiste manier gebruikt, vormen codefragmenten een krachtige toolkit. Ze helpen je WooCommerce aan te passen zonder je WordPress-site te overladen met onnodige plugins, terwijl alles overzichtelijk en stabiel blijft.

Heeft u deskundige hulp nodig bij het aanpassen van uw WooCommerce-account?

Het WooCommerce-ontwikkelteam van Seahawk bouwt aangepaste functies, beheert afrekenprocessen en creëert stabiele codeoplossingen die zijn afgestemd op uw bedrijf.

Essentiële elementen voor thema- en UX-configuratie: WooCommerce-codefragmenten

Voordat je je verdiept in geavanceerde codefragmenten, is het handig om WooCommerce-ondersteuning in te stellen en het thema op te schonen voor een soepelere winkelervaring. Veel ontwikkelaars negeren deze basisprincipes, maar ze kunnen de uitstraling en gebruiksvriendelijkheid van de webwinkel aanzienlijk verbeteren.

Declareer WooCommerce-ondersteuning in je thema

Standaard biedt niet elk WordPress-thema volledige WooCommerce-ondersteuning. Door dit handmatig toe te voegen, zorg je ervoor dat productgalerieën en lay-outs correct worden weergegeven. Je kunt dit doen in het functions.php-bestand van het child-thema of met behulp van een plugin voor aangepaste codefragmenten .

function mytheme_add_woocommerce_support() { add_theme_support( 'woocommerce' ); add_theme_support( 'wc-product-gallery-zoom' ); add_theme_support( 'wc-product-gallery-lightbox' ); add_theme_support( 'wc-product-gallery-slider' ); } add_action( 'after_setup_theme', 'mytheme_add_woocommerce_support' );

Dit codefragment voegt standaard WooCommerce-ondersteuning toe, samen met wc product gallery zoom , wc product gallery lightbox en wc product gallery slider . Deze functies verbeteren gezamenlijk het browsen op de productpagina.

WooCommerce-broodkruimels verwijderen

Breadcrumbs kunnen handig zijn voor navigatie, maar soms verstoren ze het ontwerp. Als je thema al breadcrumbs bevat of je de voorkeur geeft aan een overzichtelijkere header, kun je WooCommerce breadcrumbs verwijderen met dit fragment:

add_action( 'init', 'remove_wc_breadcrumbs' ); function remove_wc_breadcrumbs() { remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20, 0 ); }

Gebruik dit met de nodige voorzichtigheid, aangezien sommige webwinkels afhankelijk zijn van breadcrumbs voor SEO- doeleinden. Als je ze vervangt door een andere navigatiestijl, kan het verwijderen ervan het ontwerp vereenvoudigen.

Vervang de paginatitel van de winkel

De standaardtitel van een winkelpagina is vaak simpelweg 'Winkel'. Om beter aan te sluiten bij uw merk of seizoenscampagnes, kunt u deze vervangen door aangepaste tekst.

add_filter( 'woocommerce_page_title', 'shop_page_title' ); function shop_page_title( $title ) { if ( is_shop() ) { return "Onze collecties"; } return $title; }

Je kunt de titel van de winkelpagina aan je productcategorieën, campagnes of merkidentiteit. Tijdens de feestdagen kun je de titel bijvoorbeeld wijzigen in 'Feestdagenaanbiedingen' voor een hogere betrokkenheid.

Aanpassingen aan de catalogus die de vindbaarheid verbeteren

Zodra de basis op orde is, is de volgende stap het verfijnen van je WooCommerce-catalogus. Deze codefragmenten helpen je te bepalen hoe producten en categorieën op je WordPress-website worden weergegeven, waardoor klanten gemakkelijker kunnen vinden wat ze zoeken zonder dat de catalogus rommelig of verwarrend wordt.

De standaard sorteervolgorde van de catalogus wijzigen

Standaard sorteert WooCommerce producten alfabetisch of op volgorde van menu-items. Je kunt dit aanpassen zodat de nieuwste artikelen bovenaan staan ​​of gesorteerd wordt op prijs. Deze kleine aanpassing kan nieuwe producten of voordelige aanbiedingen extra onder de aandacht brengen.

add_filter( 'woocommerce_default_catalog_orderby', 'custom_default_catalog_orderby' ); function custom_default_catalog_orderby() { return 'date'; // Opties: 'date', 'price', 'title' }

Dit zorgt ervoor dat klanten uw nieuwste producten direct bovenaan de winkelpagina zien.

Het aantal producten per pagina aanpassen

Te veel producten per pagina kunnen klanten overweldigen. Te weinig producten kunnen hen frustreren door eindeloos klikken. Zo kunt u het aantal producten beperken:

add_filter( 'loop_shop_per_page', 'new_loop_shop_per_page', 20 ); function new_loop_shop_per_page( $cols ) { $cols = 12; // Pas dit getal naar behoefte aan return $cols; }

Door deze waarde aan te passen, wordt een balans gevonden tussen de snelheid van de website en de gebruikerservaring.

Categorieën of producten verbergen in het archief

Soms wilt u bepaalde productcategorieën niet op de winkelpagina weergeven. Seizoensartikelen, producten die alleen voor de groothandel bestemd zijn of testcategorieën kunnen met een simpele code worden uitgesloten.

add_action( 'pre_get_posts', 'remove_categories_shop' ); function remove_categories_shop( $q ) { if ( ! $q->is_main_query() || ! $q->is_post_type_archive() ) return; if ( ! is_admin() && is_shop() ) { $q->set( 'tax_query', array(array( 'taxonomy' => 'product_cat', 'field' => 'slug', 'terms' => array( 'wholesale', 'seasonal' ), 'operator' => 'NOT IN' ))); } }

Dit zorgt ervoor dat uw catalogus overzichtelijk blijft, omdat u alleen de producten toont die u uw klanten wilt laten zien.

Categorieën uitsluiten van de widget Productcategorieën

WooCommerce-widget voor productcategorieën gebruikt , wil je misschien niet alle producten weergeven . Je kunt een categorie als volgt uitsluiten:

add_filter( 'woocommerce_product_categories_widget_args', 'woo_product_cat_widget_args' ); function woo_product_cat_widget_args( $cat_args ) { $cat_args['exclude'] = array( 25 ); // Vervang 25 door je categorie-ID return $cat_args; }

Dit codefragment geeft u meer controle over productontdekking en helpt u de aandacht van klanten te richten op uw meest winstgevende categorieën.

Productpagina-verbeteringen die de conversie verhogen: WooCommerce-codefragmenten

De productpagina is de plek waar klanten beslissen of ze iets willen kopen. Met een paar WooCommerce-codefragmenten kun je de lay-out vereenvoudigen, verwarring voorkomen en de belangrijkste details benadrukken.

Producttabbladen hernoemen of verwijderen

De producttabbladen van WooCommerce, zoals 'Beschrijving' en 'Aanvullende informatie', passen niet altijd bij de stijl van je webwinkel. Je kunt ze hernoemen of de extra tabbladen helemaal verwijderen.

add_filter( 'woocommerce_product_tabs', 'woo_rename_tab', 98 ); function woo_rename_tab( $tabs ) { $tabs['description']['title'] = 'Meer info'; return $tabs; }

'Aanvullende informatie' ook verwijderen als je het overbodig vindt.

add_filter( 'woocommerce_product_tabs', 'remove_product_tabs', 98 ); function remove_product_tabs( $tabs ) { unset( $tabs['additional_information'] ); return $tabs; }

Vervang "Niet op voorraad" door een vriendelijkere tekst

De standaardaanduiding "Niet op voorraad" kan klanten afschrikken. Een subtielere aanpak zoals "Verkocht" of "Binnenkort beschikbaar" houdt de interesse levend.

add_filter( 'woocommerce_get_availability', 'availability_filter_func' ); function availability_filter_func( $availability ) { $availability['availability'] = str_ireplace( 'Niet op voorraad', 'Verkocht', $availability['availability'] ); return $availability; }

Deze kleine aanpassing kan de klantervaring verbeteren zonder dat er extra plug-ins nodig zijn.

Toon "Reeds in winkelwagen" in plaats van "Toevoegen aan winkelwagen"

Als een klant een product al aan zijn winkelwagen heeft toegevoegd, kan het zien van dezelfde 'Toevoegen aan winkelwagen' -knop verwarrend zijn. Deze code vervangt deze door 'Reeds in winkelwagen'.

add_filter( 'woocommerce_product_single_add_to_cart_text', 'woo_custom_cart_button_text' ); function woo_custom_cart_button_text() { global $woocommerce; foreach( $woocommerce->cart->get_cart() as $cart_item ) { if( get_the_ID() == $cart_item['product_id'] ) { return __( 'Al in winkelwagen', 'woocommerce' ); } } return __( 'Toevoegen aan winkelwagen', 'woocommerce' ); }

Dit zorgt voor duidelijke feedback en maakt het winkelproces soepeler.

Vereenvoudig de prijsstelling van variabele producten

WooCommerce toont normaal gesproken prijsbereiken zoals $100–$200 voor producten met variabele prijzen. Als u liever alleen de minimumprijs met een label "Vanaf" weergeeft, kunt u dit codefragment gebruiken:

add_filter( 'woocommerce_variable_price_html', 'variation_price_format_min', 9999, 2 ); function variation_price_format_min( $price, $product ) { $prices = $product->get_variation_prices( true ); $min_price = current( $prices['price'] ); return sprintf( __( 'Vanaf %1$s', 'woocommerce' ), wc_price( $min_price ) ); }

Dit schept duidelijkere verwachtingen en kan leiden tot meer klikken.

Winkelwagen- en afrekenproces optimaliseren voor een soepeler verloop: WooCommerce-codefragmenten

Kleine verbeteringen aan het winkelmandje en het afrekenproces kunnen de conversie snel verhogen. Deze codefragmenten stroomlijnen de stappen, maken formulieren overzichtelijker en houden klanten gefocust.

Doorverwijzen naar de afrekenpagina na het toevoegen aan de winkelwagen

Gebruik dit voor productfunnels met één product of flash sales waarbij snelheid belangrijk is. Voeg het toe aan het functions.php-bestand van het child theme of aan een snippets-plugin.

add_filter( 'woocommerce_add_to_cart_redirect', 'seahawk_redirect_to_checkout' ); function seahawk_redirect_to_checkout( $url ) { return wc_get_checkout_url(); }

Vul je e-mailadres als eerste in bij het afrekenen

Verzamel vroegtijdig e-mailadressen voor herstelprocessen en ondersteuning. Lagere aantallen betekenen een hogere prioriteit.

add_filter( 'woocommerce_checkout_fields', 'seahawk_email_first' ); function seahawk_email_first( $fields ) { if ( isset( $fields['billing']['billing_email'] ) ) { $fields['billing']['billing_email']['priority'] = 4; } return $fields; }

Maak de telefoon optioneel of verplicht, afhankelijk van de markt

Stem de nalevings- en ondersteuningsbehoeften af ​​op de specifieke situatie per regio.

add_filter( 'woocommerce_billing_fields', 'seahawk_phone_requirement' ); function seahawk_phone_requirement( $address_fields ) { // Stel in op true als uw markt een telefoonnummer vereist $address_fields['billing_phone']['required'] = false; return $address_fields; }

Velden in het afrekenproces opnieuw ordenen of opruimen

Houd formulieren kort en logisch. Bijvoorbeeld: ⟶ Plaats de voor- en achternaam hoger.

add_filter( 'woocommerce_checkout_fields', 'seahawk_reorder_fields' ); function seahawk_reorder_fields( $fields ) { if ( isset( $fields['billing']['billing_first_name'] ) ) { $fields['billing']['billing_first_name']['priority'] = 6; } if ( isset( $fields['billing']['billing_last_name'] ) ) { $fields['billing']['billing_last_name']['priority'] = 8; } return $fields; }

Voeg aangepaste selectievakjes toe boven de voorwaarden

Te gebruiken voor toestemming of extra bevestigingen. Inclusief validatie.

add_action( 'woocommerce_checkout_before_terms_and_conditions', 'seahawk_checkout_checkboxes' ); function seahawk_checkout_checkboxes() { ?><p class="form-row custom-checkboxes"> <label class="woocommerce-form__label checkbox"><input type="checkbox" class="woocommerce-form__input input-checkbox" name="seahawk_consent_one"><span>Ik ga ermee akkoord om orderupdates per e-mail te ontvangen</span> <span class="required">.</span></label> <label class="woocommerce-form__label checkbox"><input type="checkbox" class="woocommerce-form__input input-checkbox" name="seahawk_consent_two"><span>Ik bevestig dat mijn verzendadres correct is</span> <span class="required">.</span></label></p>

Limiet bestelling Opmerking tekens

Zorg ervoor dat de notities leesbaar zijn voor de teams die de bestellingen verwerken.

add_filter( 'woocommerce_checkout_fields', 'seahawk_limit_order_notes' ); function seahawk_limit_order_notes( $fields ) { if ( isset( $fields['order']['order_comments'] ) ) { $fields['order']['order_comments']['maxlength'] = 180; $fields['order']['order_comments']['placeholder'] = __( 'Voeg korte leveringsnotities toe. Maximaal 180 tekens.' ); } return $fields; }

Toon een verzendbericht op basis van het land

Toon een dynamisch bericht wanneer een specifiek land is geselecteerd.

add_action( 'woocommerce_before_checkout_billing_form', 'seahawk_country_notice_container' ); function seahawk_country_notice_container() { echo '<div class="shipping-notice woocommerce-info" style="display:none"> Houd rekening met een levertijd van 5 tot 10 werkdagen na verwerking.</div> '; } add_action( 'woocommerce_after_checkout_form', 'seahawk_country_notice_script' ); function seahawk_country_notice_script() { ?><script> document.addEventListener('DOMContentLoaded', function() { var selectEl = document.querySelector('select#billing_country'); var noticeEl = document.querySelector('.shipping-notice'); var targetCountry = 'FR'; if (!selectEl || !noticeEl) return; function toggleNotice() { if (selectEl.value === targetCountry) { noticeEl.style.display = 'block'; } else { noticeEl.style.display = 'none'; } } toggleNotice(); selectEl.addEventListener('change', toggleNotice); }); </script>

Wijzig het autofocusveld tijdens het afrekenen

Vul eerst het e-mailveld in voor snellere invoer.

add_filter( 'woocommerce_checkout_fields', 'seahawk_change_autofocus' ); function seahawk_change_autofocus( $fields ) { if ( isset( $fields['billing']['billing_first_name'] ) ) { $fields['billing']['billing_first_name']['autofocus'] = false; } if ( isset( $fields['billing']['billing_email'] ) ) { $fields['billing']['billing_email']['autofocus'] = true; } return $fields; }

Voeg nuttige tekst toe naast de knop 'Bestelling plaatsen'

Te gebruiken voor privacy-notities of bezorgherinneringen.

add_action( 'woocommerce_review_order_after_submit', 'seahawk_message_below_checkout_button' ); function seahawk_message_below_checkout_button() { echo '<p> <small>Door deze bestelling te plaatsen, bevestigt u dat de verstrekte informatie juist is.</small></p> '; }

Randgevallen omleiden en eerder valideren

Zorg ervoor dat de signalen schoon zijn vóór de betaling. Bijvoorbeeld: ⟶ verplichte velden voor accountaanmaak.

add_filter( 'woocommerce_checkout_fields', 'seahawk_require_account_fields' ); function seahawk_require_account_fields( $fields ) { if ( isset( $fields['account']['account_username'] ) ) { $fields['account']['account_username']['required'] = true; } if ( isset( $fields['account']['account_password'] ) ) { $fields['account']['account_password']['required'] = true; } if ( isset( $fields['account']['account_password-2'] ) ) { $fields['account']['account_password-2']['required'] = true; } return $fields; }

Slimme verzendlogica: WooCommerce-codefragmenten

Slimme verzendregels verminderen de keuzestress en maken de kosten voorspelbaar. Deze regels houden de besluitvorming eenvoudig, zonder nuttige opties zoals afhalen op locatie te verbergen.

Verberg betaalde betaalmethoden wanneer gratis verzending beschikbaar is

Toon alleen gratis verzending wanneer dit van toepassing is. Houd de verzendkosten zichtbaar als gratis verzending niet beschikbaar is.

add_filter( 'woocommerce_package_rates', 'seahawk_only_free_shipping_when_available', 10, 2 ); function seahawk_only_free_shipping_when_available( $rates, $package ) { $new_rates = array(); foreach ( $rates as $rate_id => $rate ) { if ( 'free_shipping' === $rate->method_id ) { $new_rates[ $rate_id ] = $rate; break; } } if ( ! empty( $new_rates ) ) { // Behoud lokale ophaaloptie indien aanwezig foreach ( $rates as $rate_id => $rate ) { if ( 'local_pickup' === $rate->method_id ) { $new_rates[ $rate_id ] = $rate; break; } } return $new_rates; } return $rates; } }

Waarom dit nuttig is

  • Vermindert de besluiteloosheid wanneer gratis verzending van toepassing is.
  • Lokale afhaaloptie blijft beschikbaar voor klanten die daar de voorkeur aan geven.
  • Vermindert het aantal afgebroken bestellingen bij prijsgevoelige orders.

Voeg een eenvoudig bericht toe met een drempelbedrag voor gratis verzending

Als u een subtotaalregel hanteert, toon dan een duidelijke melding zodat klanten weten hoe dicht ze bij het totaalbedrag zijn.

add_action( 'woocommerce_before_cart', 'seahawk_free_shipping_threshold_notice' ); add_action( 'woocommerce_before_checkout_form', 'seahawk_free_shipping_threshold_notice' ); function seahawk_free_shipping_threshold_notice() { $threshold = 75; // Stel je drempel voor gratis verzending in $subtotal = WC()->cart ? WC()->cart->get_displayed_subtotal() : 0; if ( $subtotal && $subtotal < $threshold ) { $remaining = wc_price( $threshold - $subtotal ); wc_print_notice( 'Voeg ' . $remaining . ' meer toe om gratis verzending te krijgen.', 'notice' ); } }

Tips

  • Stem deze drempelwaarde af op uw WooCommerce-instellingen, zodat de berichten accuraat blijven.
  • Test met kortingsbonnen en belastingen om er zeker van te zijn dat de berekening overeenkomt met uw beleid.

Prijs- en valutabeheer: WooCommerce-codefragmenten

Overzichtelijke prijsstelling schept vertrouwen. Deze codefragmenten voegen ondersteuning voor regionale valuta toe en zorgen voor een overzichtelijker prijsbeeld in uw hele webwinkel.

Voeg een aangepaste valuta en symbool toe

Handig voor regionale merken of testwinkels. Voeg dit toe aan het functions.php-bestand van het child-thema of aan een snippets-plugin.

// Registreer een aangepaste valutacode add_filter( 'woocommerce_currencies', 'seahawk_add_currency' ); function seahawk_add_currency( $currencies ) { $currencies['ABC'] = __( 'Voorbeeldvaluta', 'woocommerce' ); // Vervang ABC en de naam return $currencies; } // Voeg een symbool toe aan uw aangepaste valuta add_filter( 'woocommerce_currency_symbol', 'seahawk_add_currency_symbol', 10, 2 ); function seahawk_add_currency_symbol( $symbol, $currency ) { if ( 'ABC' === $currency ) { $symbol = '¤'; // Vervang door uw symbool } return $symbol; }

Waar kun je het gebruiken?

  • WooCommerce-instellingen ⟶ Algemeen ⟶ Valutaopties.
  • Selecteer je nieuwe valuta nadat je de code hebt toegevoegd.

Verwijder nullen uit de prijs

Een overzichtelijkere prijsweergave verbetert de leesbaarheid.

add_filter( 'woocommerce_price_trim_zeros', '__return_true' );

Wat het doet

  • Geeft 19 weer in plaats van 19.00.
  • Houdt alleen decimalen bij wanneer nodig.

Optioneel ⟶ Prijsformaat per taal instellen

Pas de scheidingstekens voor duizendtallen en decimalen aan voor specifieke markten.

add_filter( 'wc_price_args', 'seahawk_price_args_by_locale' ); function seahawk_price_args_by_locale( $args ) { // Voorbeeld voor EU-stijl if ( is_user_logged_in() && function_exists( 'get_user_locale' ) && 'fr_FR' === get_user_locale() ) { $args['decimal_separator'] = ','; $args['thousand_separator'] = ' '; } return $args; }

Betalingen, e-mails en orderverwerking: WooCommerce-codefragmenten

Verbeter de communicatie en controle met een paar betrouwbare codefragmenten. Deze helpen je team belangrijke updates te zien, ordergegevens aan e-mails toe te voegen, het afrekenproces te pauzeren tijdens onderhoud en risicovolle bestellingen te blokkeren.

Voeg een extra e-mailontvanger toe voor voltooide bestellingen

Neem contact op met de klantenservice of de boekhouding zodra een bestelling is afgerond.

add_filter( 'woocommerce_email_recipient_customer_completed_order', 'seahawk_extra_completed_order_recipient', 10, 2 ); function seahawk_extra_completed_order_recipient( $recipient, $order ) { $extra = 'ops@example.com'; // Vervang dit door uw adres if ( $recipient && strpos( $recipient, $extra ) === false ) { $recipient .= ', ' . $extra; } return $recipient; }

Tip

  • Voor blind copy kun je gebruikmaken van woocommerce_email_headers en een BCC-header toevoegen.

Voeg aangepaste ordermetadata toe aan transactionele e-mails

Toon een trackingcode of een opgeslagen aangepast veld in e-mails aan klanten.

// 1) Sla een aangepast order-meta-veld op voor demonstratiedoeleinden: add_action( 'woocommerce_checkout_update_order_meta', 'seahawk_save_tracking_meta' ); function seahawk_save_tracking_meta( $order_id ) { // Vervang dit door je eigen logica die een echte trackingwaarde opslaat: if ( ! metadata_exists( 'post', $order_id, '_tracking_code' ) ) { update_post_meta( $order_id, '_tracking_code', 'ABC123' ); } } // 2) Voeg deze meta toe aan e-mails: add_filter( 'woocommerce_email_order_meta_fields', 'seahawk_add_tracking_to_emails', 10, 3 ); function seahawk_add_tracking_to_emails( $fields, $sent_to_admin, $order ) { $tracking = $order->get_meta( '_tracking_code' ); if ( $tracking ) { $fields['tracking_code'] = array( 'label' => __( 'Trackingcode', 'woocommerce' ), 'value' => esc_html( $tracking ), ); } return $fields; }

Waar het wordt weergegeven

  • Klant verwerkt bestelling
  • Klant heeft bestelling voltooid
  • Admin Nieuwe bestelling

Weiger de afrekenprocedure als de gebruiker nog openstaande bestellingen heeft

Handig voor fraudebestrijding of speciale workflows. Blokkeert het afrekenproces wanneer een klant met een overeenkomend e-mailadres nog openstaande bestellingen heeft.

add_action( 'woocommerce_after_checkout_validation', 'seahawk_block_when_pending_orders', 10, 2 ); function seahawk_block_when_pending_orders( $data, $errors ) { if ( is_user_logged_in() ) { $customer_id = get_current_user_id(); $args = array( 'type' => 'shop_order', 'status' => array( 'wc-pending' ), 'limit' => 1, 'customer_id' => $customer_id, 'return' => 'ids', ); $pending = wc_get_orders( $args ); if ( ! empty( $pending ) ) { $errors->add( 'seahawk_pending_block', __( 'U heeft een openstaande bestelling. Voltooi de betaling of annuleer deze voordat u een nieuwe bestelling plaatst.' ) ); } return; } // Gastafrekening ⟶ matchen op factuur-e-mailadres $email = isset( $data['billing_email'] ) ? sanitize_email( $data['billing_email'] ) : ''; if ( $email ) { $args = array( 'type' => 'shop_order', 'status' => array( 'wc-pending' ), 'limit' => 1, 'billing_email' => $email, 'return' => 'ids', ); $pending = wc_get_orders( $args ); if ( ! empty( $pending ) ) { $errors->add( 'seahawk_pending_block_guest', __( 'U heeft een openstaande bestelling. Voltooi de betaling of annuleer deze voordat u een nieuwe bestelling plaatst.' ) ); } } }

Notities

  • Pas het bericht aan uw ondersteuningsworkflow aan.
  • Overweeg om, indien nodig, contante betaling bij levering of bankoverschrijving toe te staan ​​bij het afrekenen.

Vakantie- of pauzemodus inschakelen

Houd de catalogus zichtbaar terwijl u het winkelmandje en de betaalfunctie uitschakelt. Ideaal voor onderhoudsperiodes of voorraadcontroles.

add_action( 'init', 'seahawk_holiday_mode' ); function seahawk_holiday_mode() { if ( ! apply_filters( 'seahawk_holiday_mode_enabled', false ) ) { return; } remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 ); remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 ); remove_action( 'woocommerce_proceed_to_checkout', 'woocommerce_button_proceed_to_checkout', 20 ); remove_action( 'woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 20 ); add_action( 'woocommerce_before_main_content', 'seahawk_shop_disabled_notice', 5 ); add_action( 'woocommerce_before_cart', 'seahawk_shop_disabled_notice', 5 ); add_action( 'woocommerce_before_checkout_form', 'seahawk_shop_disabled_notice', 5 ); } function seahawk_shop_disabled_notice() { wc_print_notice( __( 'Onze winkel is tijdelijk niet beschikbaar. Kom snel terug.' ), 'error' ); }

Hoe schakel je dit in/uit?

  • Stel het filter in op 'true' in een kort helper-codefragment of via een sitespecifieke plugin:
add_filter( 'seahawk_holiday_mode_enabled', '__return_true' );

Optioneel ⟶ Wijzig de afzendernaam en het afzenderadres voor e-mails

Zorg ervoor dat de afzender van uw e-mail aansluit bij uw merkidentiteit .

add_filter( 'wp_mail_from_name', 'seahawk_wp_mail_from_name', 99 ); function seahawk_wp_mail_from_name( $name ) { $wc_name = get_option( 'woocommerce_email_from_name' ); return $wc_name ? html_entity_decode( $wc_name ) : $name; } add_filter( 'wp_mail_from', 'seahawk_wp_mail_from', 99 ); function seahawk_wp_mail_from( $email ) { $wc_email = get_option( 'woocommerce_email_from' ); return $wc_email ? sanitize_email( $wc_email ) : $email; }

Waar moet ik dit configureren?

  • WooCommerce ⟶ Instellingen ⟶ E-mails ⟶ Naam en adres van de afzender.

Regels voor klantaccounts en toegang: WooCommerce-codefragmenten

Accountgegevens vormen de basis voor ondersteuning, bestelgeschiedenis en afgeschermde content . Gebruik deze codefragmenten om accountvelden te beheren en functies te ontgrendelen voor eerdere kopers.

Maak accountvelden verplicht bij het afrekenen

Vereis een gebruikersnaam en wachtwoord wanneer u wilt dat klanten een account aanmaken tijdens het afrekenen.

add_filter( 'woocommerce_checkout_fields', 'seahawk_require_account_on_checkout' ); function seahawk_require_account_on_checkout( $fields ) { if ( isset( $fields['account']['account_username'] ) ) { $fields['account']['account_username']['required'] = true; } if ( isset( $fields['account']['account_password'] ) ) { $fields['account']['account_password']['required'] = true; } if ( isset( $fields['account']['account_password-2'] ) ) { $fields['account']['account_password-2']['required'] = true; } return $fields; }

Goed voor

  • Lidmaatschapswinkels.
  • Ondersteuning voor het opnieuw bestellen en opgeslagen adressen.
  • Onboarding na aankoop.

Controleer of een gebruiker specifieke producten al heeft gekocht

Handig voor het ontgrendelen van downloads, het beperken van herhaalde aankopen of het tonen van upgrade-aanbiedingen.

function seahawk_user_bought_any( $product_ids = array(), $user_id = 0 ) { if ( empty( $product_ids ) ) return false; if ( ! $user_id && is_user_logged_in() ) { $user_id = get_current_user_id(); } if ( ! $user_id ) return false; $orders = wc_get_orders( array( 'type' => 'shop_order', 'status' => array( 'wc-completed', 'wc-processing' ), 'limit' => -1, 'customer_id' => $user_id, 'return' => 'ids', ) ); if ( empty( $orders ) ) return false; foreach ( $orders as $order_id ) { $order = wc_get_order( $order_id ); foreach ( $order->get_items() as $item ) { $pid = $item->get_product_id(); $vid = $item->get_variation_id(); if ( in_array( $pid, $product_ids, true ) || in_array( $vid, $product_ids, true ) ) { return true; } } } return false; }

Hoe te gebruiken in een sjabloon

// Voorbeeld in een producttemplate of shortcode $unlock_for = array( 21, 67 ); // Product-ID's die toegang verlenen if ( seahawk_user_bought_any( $unlock_for ) ) { echo '<p> Bedankt voor je aankoop. Je bonuscontent is ontgrendeld.</p> '; } anders { echo '<p> Koop de cursus om bonuslessen te ontgrendelen.</p> '; }

Ideeën

  • Toon een aangepast tabblad alleen voor eerdere kopers.
  • Vervang 'Toevoegen aan winkelwagen' door een downloadlink.
  • Bied vorige eigenaren korting op upgrades.

Zoeken en filteren: WooCommerce-codefragmenten

Bepaal zelf wat shoppers zien in zoekresultaten en sjablonen. Overzichtelijke resultaten helpen gebruikers sneller de juiste producten te vinden en houden privécategorieën verborgen.

Een categorie verbergen voor de zoekfunctie op de website

Sluit categorieën zoals verhuur, groothandel of conceptversies uit van de zoekresultaten.

add_action( 'pre_get_posts', 'seahawk_hide_category_from_search' ); function seahawk_hide_category_from_search( $query ) { if ( is_admin() || ! $query->is_main_query() || ! $query->is_search() ) { return; } $tax_query = array( array( 'taxonomy' => 'product_cat', 'field' => 'slug', 'terms' => array( 'rentals' ), ​​// Vervang door je categorie-slug 'operator' => 'NOT IN', ), ); $query->set( 'post_type', array( 'product' ) ); $query->set( 'tax_query', $tax_query ); }

Gebruiksvoorbeelden

  • Verberg artikelen die alleen in de groothandel verkrijgbaar zijn.
  • Seizoensgebonden concepten moeten tot de lancering worden uitgesloten.
  • Houd B2B-bundels buiten de zoekresultaten voor de detailhandel.

Snelle controles op categorie of tag in sjablonen

Laad blokken, badges of berichten voorwaardelijk op basis van categorie of tag.

// In een productloop of een enkele template: als ( has_term( 'sneakers', 'product_cat', get_the_ID() ) ) { echo ' <span class="badge">Limited Edition</span> '; } als ( has_term( array( 'gift', 'bundle' ), 'product_tag', get_the_ID() ) ) { echo '<p> Verzending binnen 24 uur</p> '; }

Ideeën

  • Toon een "Klaar om cadeau te geven"-badge voor artikelen met een label.
  • Voeg maattabellen alleen toe aan kledingcategorieën.
  • Plaats veiligheidsinstructies op cosmetische producten.

Categorieën uitsluiten van de widget Productcategorieën

Zorg ervoor dat de zijbalken zich richten op wat je wilt dat gebruikers bekijken.

add_filter( 'woocommerce_product_categories_widget_args', 'seahawk_widget_exclude_cats' ); function seahawk_widget_exclude_cats( $args ) { $args['exclude'] = array( 16, 25 ); // Vervang door categorie-ID's return $args; }

Tip

  • Vind ID's onder Producten ⟶ Categorieën ⟶ beweeg de muis over de naam om de ID in de URL te zien.

Verbeteringen voor beheerdersgemak: WooCommerce-codefragmenten

Een WooCommerce-winkel runnen betekent dat je veel tijd doorbrengt in het WordPress-beheerpaneel . Deze codefragmenten maken je dagelijkse werk gemakkelijker door belangrijke details overzichtelijk weer te geven en uitgaande e-mails af te stemmen op je merkidentiteit.

Voeg aangepaste kolommen toe aan de lijst met bestellingen

Toon extra gegevens zoals serienummers of trackingcodes direct in de orderlijst.

// Voeg een nieuwe kolom toe add_filter( 'manage_edit-shop_order_columns', 'seahawk_edit_shop_order_columns' ); function seahawk_edit_shop_order_columns( $columns ) { $columns['serial'] = __( 'Serienummer', 'woocommerce' ); return $columns; } // Vul de kolom met gegevens add_action( 'manage_shop_order_posts_custom_column', 'seahawk_shop_order_column_content', 10, 2 ); function seahawk_shop_order_column_content( $column, $post_id ) { if ( 'serial' === $column ) { $serial = get_post_meta( $post_id, '_order_serial_number', true ); if ( $serial ) { echo esc_html( $serial ); } else { echo '—'; } } }

Waarom het helpt

  • Bespaart muisklikken door gegevens direct weer te geven.
  • Vermindert de tijd die nodig is om elke bestelling te openen.

Voeg gekoppelde producten of SKU's toe aan aangepaste berichttypen

Als u aangepaste productinstellingen gebruikt, kunt u de kolommen verder uitbreiden.

add_filter( 'manage_edit-product_columns', 'seahawk_edit_product_columns' ); function seahawk_edit_product_columns( $columns ) { $columns['sku'] = __( 'SKU', 'woocommerce' ); return $columns; } add_action( 'manage_product_posts_custom_column', 'seahawk_product_column_content', 10, 2 ); function seahawk_product_column_content( $column, $post_id ) { if ( 'sku' === $column ) { $product = wc_get_product( $post_id ); echo $product ? $product->get_sku() : ''; } }

Gebruiksvoorbeeld

  • Bekijk in één oogopslag de product-SKU's.
  • Zorg ervoor dat catalogusbeheerders efficiënt blijven werken.

Stem de naam en het adres van de e-mailafzender af op het merk

De standaardinstellingen van WordPress kunnen er onprofessioneel uitzien. Verbeter dit door waarden uit de WooCommerce-instellingen over te nemen.

add_filter( 'wp_mail_from_name', 'seahawk_custom_from_name', 99 ); function seahawk_custom_from_name( $name ) { $wc_name = get_option( 'woocommerce_email_from_name' ); return $wc_name ? html_entity_decode( $wc_name ) : $name; } add_filter( 'wp_mail_from', 'seahawk_custom_from_address', 99 ); function seahawk_custom_from_address( $email ) { $wc_email = get_option( 'woocommerce_email_from' ); return $wc_email ? sanitize_email( $wc_email ) : $email; }

Waar waarden instellen

  • WooCommerce ⟶ Instellingen ⟶ E-mails ⟶ Naam en adres van de afzender.

Prestatie- en lay-outhulpmiddelen: WooCommerce-codefragmenten

Snellere pagina's en overzichtelijke lay-outs verhogen de conversie. Deze codefragmenten zorgen ervoor dat uw winkelwagen er goed uitziet op mobiele apparaten en dat zoekopdrachten naar aanbevolen producten efficiënter verlopen.

Maak de winkelwagentafel geschikt voor mobiele apparaten

Transformeer de winkelwagentabel in gestapelde rijen op kleine schermen. Voeg deze CSS toe aan het stylesheet van je child theme of aan een CSS-paneel in de Customizer.

/* Mobielvriendelijke WooCommerce winkelwagentabel */ @media screen and (max-width: 700px) { .woocommerce table.shop_table, .woocommerce table.shop_table thead, .woocommerce table.shop_table tbody, .woocommerce table.shop_table th, .woocommerce table.shop_table td, .woocommerce table.shop_table tr { display: block; } .woocommerce table.shop_table thead tr { position: absolute; top: -9999px; left: -9999px; } .woocommerce table.shop_table tr { margin-bottom: 12px; border: 1px solid #e5e7eb; border-radius: 8px; overflow: hidden; } .woocommerce table.shop_table td { position: relative; padding-left: 50% !important; border: none; } border-bottom: 1px solid #f1f5f9; } .woocommerce table.shop_table td::last-child { border-bottom: none; } .woocommerce table.shop_table td::before { position: absolute; top: 10px; left: 10px; width: 45%; white-space: nowrap; font-weight: 600; content: attr(data-title); } }

Hoe het werkt

  • Maakt gebruik van het data-title-attribuut dat WooCommerce toevoegt aan tabelcellen.
  • Verbergt de koptekst en verandert elke rij in een kaart.
  • Verbetert de leesbaarheid op telefoons zonder plug-in.

Gebruik een Transient voor ID's van uitgelichte producten

Het cachen van een lijst met aanbevolen producten vermindert het aantal herhaalde zoekopdrachten. U hoeft de lijst maar één keer te initialiseren en kunt deze vervolgens in verschillende sjablonen hergebruiken.

function seahawk_get_featured_product_ids( $cache_key = 'seahawk_featured_ids', $ttl = HOUR_IN_SECONDS ) { $ids = get_transient( $cache_key ); if ( false !== $ids ) { return $ids; } $featured_query = new WP_Query( array( 'post_type' => 'product', 'posts_per_page' => -1, 'meta_query' => array( array( 'key' => '_featured', 'value' => 'yes', 'compare' => '=', ), ), 'fields' => 'ids', 'no_found_rows' => true, ) ); $ids = $featured_query->posts; set_transient( $cache_key, $ids, $ttl ); return $ids; } // Voorbeeldgebruik ⟶ een mini-grid bouwen add_shortcode( 'seahawk_featured_grid', function( $atts ) { $ids = seahawk_get_featured_product_ids(); if ( empty( $ids ) ) return '<p> Geen aanbevolen producten gevonden.</p> '; $out = '<ul class="featured-grid"> '; foreach ( $ids as $pid ) { $out .= '<li> <a href="' . esc_url( get_permalink( $pid ) ) . '">' . esc_html( get_the_title( $pid ) ) . '</a></li> '; } $out .= '</ul> '; return $out; } );

Tips

  • Wis de tijdelijke gegevens wanneer u de status 'uitgelicht' wijzigt.
  • Gebruik productupdates om de cache te wissen.
add_action( 'save_post_product', function( $post_id ) { delete_transient( 'seahawk_featured_ids' ); } );

Details over naleving en lokalisatie: WooCommerce-codefragmenten

Kleine aanpassingen aan formulieren en taalinstellingen maken het afrekenproces sneller en nauwkeuriger voor verschillende regio's. Deze codefragmenten helpen je bij het lokaliseren zonder extra plug-ins.

Verwijder het veld 'State' waar het niet nodig is

Sommige landen gebruiken geen staten. Door dit veld te verbergen, wordt het formulier korter en wordt verwarring voorkomen.

add_filter( 'woocommerce_default_address_fields', 'seahawk_remove_state_field' ); function seahawk_remove_state_field( $fields ) { if ( isset( $fields['state'] ) ) { $fields['state']['required'] = false; $fields['state']['hidden'] = true; } return $fields; }

Tip

  • Gebruik voorwaardelijke logica als je het alleen voor specifieke landen wilt verbergen.

Voeg een aangepast land toe aan de lijst

Handig voor testomgevingen of specifieke regio's.

add_filter( 'woocommerce_countries', 'seahawk_add_custom_country' ); function seahawk_add_custom_country( $countries ) { $countries['XX'] = __( 'Exampleland', 'woocommerce' ); // Vervang code en naam return $countries; } add_filter( 'woocommerce_continents', 'seahawk_map_custom_country' ); function seahawk_map_custom_country( $continents ) { // Voeg je landcode toe aan een continent if ( isset( $continents['EU']['countries'] ) ) { $continents['EU']['countries'][] = 'XX'; } return $continents; }

Waar het verschijnt

  • WooCommerce-instellingen ⟶ Algemeen ⟶ Verkooplocaties.
  • Landkeuzemenu's op de afreken- en accountpagina's.

Microtekst snel vertalen met gettext

Corrigeer typefouten of pas de formulering in de hele winkel aan zonder sjablonen te bewerken.

add_filter( 'gettext', 'seahawk_quick_translate', 10, 3 ); function seahawk_quick_translate( $translated, $original, $domain ) { // Voorbeeld ⟶ verander “Kies een optie” in “Selecteer” if ( 'Kies een optie' === $original && 'woocommerce' === $domain ) { return 'Selecteer'; } // Voorbeeld ⟶ hernoem “Toevoegen aan winkelwagen” naar “Toevoegen aan tas” if ( 'Toevoegen aan winkelwagen' === $original && 'woocommerce' === $domain ) { return 'Toevoegen aan tas'; } return $translated; }

Notities

  • Zorg ervoor dat de tekenreeks exact overeenkomt met de originele tekenreeks.
  • Zorg ervoor dat wijzigingen consistent zijn met de huisstijl van uw merk.

Optioneel ⟶ Prijsscheidingstekens lokaliseren per taal

Help gebruikers prijzen in een vertrouwd formaat te lezen.

add_filter( 'wc_price_args', 'seahawk_price_format_by_locale' ); function seahawk_price_format_by_locale( $args ) { if ( function_exists( 'get_user_locale' ) && 'fr_FR' === get_user_locale() ) { $args['decimal_separator'] = ','; $args['thousand_separator'] = ' '; } return $args; }

Test

  • Totaalbedrag winkelwagen.
  • Kortingsbonnen en belastingen.
  • Bestelmails.

Slotgedachten

Je hebt nu een bibliotheek met WooCommerce-codefragmenten die betrekking hebben op catalogusweergave, afrekenproces, verzendlogica, prijsstelling, lokalisatie en beheergemak. Door ze samen te gebruiken, krijg je controle zonder zware plugins en blijft je WordPress-site compact.

Voordat je ze implementeert, houd dan deze laatste aanbevelingen in gedachten:

  • Test codefragmenten altijd eerst in een testomgeving voordat je ze op een live website toepast.
  • Maak back-ups van je functions.php-bestand of de export van je codefragmenten-plugin.
  • Voeg bij elk codefragment commentaar toe, zodat toekomstige ontwikkelaars begrijpen wat elk fragment doet.
  • Bekijk de WooCommerce-updates ⟶ Sommige codefragmenten moeten mogelijk in de loop der tijd worden aangepast.

Met de juiste zorg toegepast, kunnen deze kleine functies u tientallen plugin-installaties besparen en uw webwinkel sneller en gemakkelijker te beheren maken.

Veelgestelde vragen over WooCommerce-codefragmenten

Wat is de veiligste manier om WooCommerce-codefragmenten toe te voegen?

De veiligste manier is om het functions.php-bestand van een child theme of een Code Snippets-plugin te gebruiken. Dit zorgt ervoor dat je code intact blijft tijdens thema-updates en beheerd kan worden zonder de themabestanden direct te hoeven bewerken.

Moet ik functions.php of een codefragmenten-plugin gebruiken?

Als je volledige controle wilt, werkt functions.php prima. Voor meer flexibiliteit, vooral op websites van klanten, is een plugin zoals Code Snippets Pro makkelijker te beheren en biedt het automatische import- en exportmogelijkheden.

Kan ik mijn website beschadigen met een foute codefragment?

Ja. Een enkele PHP-fout kan een fatale fout veroorzaken. Test codefragmenten altijd eerst op een testomgeving voordat u ze aan een live webwinkel toevoegt.

Vertragen codefragmenten WooCommerce?

Nee, niet als het correct is geschreven. Sterker nog, codefragmenten vervangen vaak plugins, wat de code overzichtelijker maakt en je webwinkel sneller laat laden.

Hoe test ik codefragmenten nadat ik ze heb toegevoegd?

Test de app zowel als gast als ingelogde gebruiker. Doorloop de winkelwagen, de afrekenpagina en de accountgegevens. Controleer of de verzendkosten, de betaalmethode en het totaalbedrag nog steeds correct werken.

Gerelateerde berichten

Migratie van SilkStart naar WordPress

Migreren van SilkStart naar WordPress: 6 bewezen stappen om kostbare fouten te voorkomen

Migreren van SilkStart naar WordPress is geen simpele platformoverdracht. Het is een complete migratie

WordPress-beveiligingsplugins versus serverbeveiliging

WordPress-beveiligingsplugins versus beveiliging op serverniveau: wat is het verschil?

Het verschil tussen beveiligingsplugins voor WordPress en beveiliging op serverniveau wordt vaak verkeerd begrepen, en dat is precies de reden waarom veel WordPress-gebruikers

Productafbeeldingformaat in WooCommerce

De productafbeeldingsgrootte in WooCommerce die de meeste webwinkels verkeerd inschatten (2026)

De afmetingen van productafbeeldingen in WooCommerce zijn een van de meest over het hoofd geziene instellingen in elke webwinkel.

Begin vandaag nog met Seahawk

Meld je aan in onze app om onze prijzen te bekijken en kortingen te ontvangen.