Automatisch een gratis cadeau toevoegen aan je winkelwagen in WooCommerce

Automatisch een gratis cadeau toevoegen aan je winkelwagen in WooCommerce

Wil je klanten belonen met een gratis product zodra ze boven een bepaald bedrag bestellen? Dat kan eenvoudig met een klein stukje code in WooCommerce. In deze blog laten we zien hoe je automatisch een gratis cadeau toevoegt bij een minimale bestelwaarde — zonder extra plugins, én met een duidelijke melding voor de klant.

waarom een gratis cadeau?

Een gratis product is een slimme manier om:

  • het gemiddelde bestelbedrag te verhogen

  • klanten te verrassen en aan je merk te binden

  • je voorraad van kleine producten slim in te zetten

Veel webshops gebruiken dit bijvoorbeeld rond de feestdagen: “Bestel boven de €39 en ontvang gratis kerstsokken!”

hoe werkt het technisch?

Met een korte PHP-snippet in je thema (of een mini-plugin) controleert WooCommerce telkens de inhoud van de winkelwagen. Zodra het subtotaal boven de ingestelde grens komt, voegt het systeem automatisch een bepaald product toe.

Daalt het bedrag weer onder de drempel? Dan wordt het cadeau weer verwijderd.

Daarnaast zorgt de code ervoor dat:

  • de prijs van het cadeau altijd €0 blijft

  • wholesale-klanten of B2B-rollen uitgesloten kunnen worden

  • er geen dubbele exemplaren in het mandje komen

  • het cadeau zichtbaar is met een mooie banner boven de winkelwagen

de code

Plaats onderstaande code in functions.php van je (child)theme of in een eigen plugin:

// gratis cadeau boven €39 – inclusief banner
// volledige code zie: https://hakhak.nl/blog/gratis-product-woocommerce
add_action(‘wp’, ‘czo_handle_free_gift’);
add_action(‘woocommerce_before_calculate_totals’, ‘czo_handle_free_gift’, 1);

function czo_handle_free_gift() {
if ( is_admin() && ! wp_doing_ajax() ) return;
if ( ! ( is_cart() || is_checkout() || wp_doing_ajax() ) ) return;

$user = wp_get_current_user();
$excluded_roles = [ ‘wholesale_customer’, ‘b2b_user’, ‘wholesale_buyer’, ‘trade_customer’ ];
if ( array_intersect( $excluded_roles, (array) $user->roles ) ) return;

$product_id = 306139; // ID van het cadeauproduct
$threshold = 39;
$cart = WC()->cart;
if ( ! $cart ) return;

$gift_key = false;
$gift_qty = 0;
$subtotal = 0.0;

foreach ( $cart->get_cart() as $key => $item ) {
if ( (int) $item[‘product_id’] === (int) $product_id ) {
$gift_key = $key;
$gift_qty += (int) $item[‘quantity’];
continue;
}
$subtotal += (float) $item[‘line_subtotal’];
}

if ( $subtotal >= $threshold && ! $gift_key ) {
$product = wc_get_product( $product_id );
$variation_id = 0;
$variation_data = [];
if ( $product && $product->is_type(‘variable’) ) {
$children = $product->get_children();
if ( ! empty( $children ) ) {
$variation_id = reset( $children );
$variation = new WC_Product_Variation( $variation_id );
foreach ( $variation->get_attributes() as $name => $value ) {
$variation_data[ ‘attribute_’ . $name ] = $value;
}
}
}
$cart->add_to_cart( $product_id, 1, $variation_id, $variation_data );
} elseif ( $subtotal < $threshold && $gift_key ) {
$cart->remove_cart_item( $gift_key );
}
}

// prijs altijd €0 houden
add_action(‘woocommerce_before_calculate_totals’, function( $cart ){
if ( ! $cart ) return;
$product_id = 306139;
foreach ( $cart->get_cart() as $item ) {
if ( (int) $item[‘product_id’] === (int) $product_id ) {
$item[‘data’]->set_price( 0 );
}
}
}, 999);

// banner boven winkelwagen/afrekenen
add_action( ‘woocommerce_before_cart’, ‘czo_show_free_gift_banner’ );
add_action( ‘woocommerce_before_checkout_form’, ‘czo_show_free_gift_banner’ );

function czo_show_free_gift_banner() {
$cart = WC()->cart;
if ( ! $cart ) return;

$product_id = 306139;
$threshold = 39;
$subtotal = $cart->get_subtotal();
$has_gift = false;

foreach ( $cart->get_cart() as $item ) {
if ( (int) $item[‘product_id’] === (int) $product_id ) {
$has_gift = true;
break;
}
}

if ( $has_gift ) {
echo ‘<div style=”background:#f6fff4;border:1px solid #c8e6c9;padding:12px 16px;margin-bottom:16px;border-radius:6px;color:#2e7d32;text-align:center;”>
Gratis cadeau toegevoegd aan je winkelwagen!</div>’;
} else {
$remaining = max( 0, $threshold – $subtotal );
echo ‘<div style=”background:#fff8e1;border:1px solid #ffe082;padding:12px 16px;margin-bottom:16px;border-radius:6px;color:#ff6f00;text-align:center;”>
⚠️ Nog €’ . wc_price( $remaining ) . ‘ bestellen voor een gratis cadeau!</div>’;
}
}

Let op: vervang 306139 door het product-ID van jouw cadeauartikel.
Zet dat product op “zichtbaar”, op voorraad en met een prijs van €0.

resultaat

  • Onder €39: een gele melding met het resterende bedrag

  • Boven €39: een groene banner met “Gratis cadeau toegevoegd aan je winkelwagen!”

  • Het cadeau verdwijnt automatisch zodra het totaal weer onder de drempel komt

  • Wholesale-klanten worden netjes uitgesloten

conclusie

Met een paar regels code kun je WooCommerce veel persoonlijker maken. Geen dure plugin, geen ingewikkelde instellingen — gewoon een klein cadeautje dat automatisch meebeweegt met de winkelwagen.

Een subtiele, maar effectieve manier om conversie én klanttevredenheid te verhogen


meer slimme WooCommerce-tips?

Bij HakHak delen we regelmatig korte, praktische oplossingen voor WordPress- en WooCommerce-sites.
Volg onze blog of schrijf je in voor de nieuwsbrief — dan mis je geen enkel scriptje, optimalisatie-tip of performance-hack.

Geplaatst in de categorie: Blog

Bouw je website in minuten met de nieuwe AI Website Builder van WordPress.com

AI doet het werk voor jou

WordPress.com komt met iets nieuws: een AI Website Builder waarmee je in een paar minuten een complete website kunt laten maken. De tool bedenkt zelf de lay-out, schrijft teksten en voegt afbeeldingen toe. Handig voor iedereen die snel online wil, zonder zelf te hoeven puzzelen met thema’s en instellingen.

Vertel de chatbot wat je wilt

Het werkt eigenlijk heel simpel. Je vertelt een chatbot wat voor soort website je nodig hebt – bijvoorbeeld een portfolio, blog of zakelijke site – en hoe je wilt dat deze eruitziet. Denk aan kleuren, stijlen of de vormgeving van de header. Hoe specifieker je bent, hoe beter het eindresultaat. Daarna kun je de website zelf aanpassen, of gewoon de chatbot vragen om wijzigingen door te voeren.

Snel starten, laagdrempelig publiceren

Voor nu werkt de AI Website Builder alleen bij het starten van een nieuwe site. Uitproberen kan gratis met een WordPress.com-account, maar zodra je de site live wilt zetten, heb je een betaald hostingpakket nodig. Dat begint vanaf vier euro per maand. Zo maakt WordPress.com het wel erg makkelijk om binnen no-time een eigen plek op het web te hebben.

Geplaatst in de categorie: Blog

Een WordPress plugin die met behulp van AI plugins schrijft

We leven in mooie tijden. Het is nu zelfs zo ver dat er een WordPress plugin is ontwikkeld, die nieuwe plugins maakt mbv. AI. Dat lijkt een soort inception. Maar het werkt echt.

Met WP-Autoplugin haal je een gratis WordPress-plugin in huis die kunstmatige intelligentie inzet om plugins te genereren, verbeteren en uitbreiden – precies wanneer jij dat nodig hebt. Je geeft een korte beschrijving en de plugin zet dit om in werkende code. Zo bouw je in no-time een functionele plugin die aansluit op jouw wensen, zonder overbodige ballast. Van het creëren van gloednieuwe plugins tot het repareren of uitbreiden van bestaande oplossingen: jij behoudt altijd de volledige controle over het proces.

De mogelijkheden zijn breed. Heb je een logge plugin die je website vertraagt? Vervang deze door een lichte, doelgerichte versie die alleen doet wat jij nodig hebt. Wil je juist een maatwerkoplossing voor jouw specifieke site? Dan maak je eenvoudig een eigen plugin zonder ingewikkelde workarounds of stapels extra plugins. Ook voor ontwikkelaars is WP-Autoplugin handig: je genereert snel een solide basis om verder op te bouwen, of kiest voor een complexere pluginstructuur met meerdere bestanden en schaalbaarheid.

Wat WP-Autoplugin extra aantrekkelijk maakt, is de focus op vrijheid en privacy. De plugin is volledig gratis, zonder premium versies, advertenties of verplichte accounts. Jij kiest zelf welk AI-model of welke provider je gebruikt en brengt je eigen API-sleutel mee. Bovendien ondersteunt de plugin meerdere talen en is hij gemakkelijk te vertalen. Het proces is simpel: beschrijf de plugin die je wilt, laat de AI een plan en code genereren, bekijk en pas aan waar nodig, en installeer alles met één klik. Daarnaast kun je bugs verhelpen, nieuwe functies toevoegen of met de Explain Plugin-functie inzicht krijgen in de werking van jouw plugins.

 

Geplaatst in de categorie: Blog

Automatisch oude orders verwijderen uit Woocommerce

Hoe meer bestellingen je binnen krijgt op je Woocommerce webshop, hoe meer je database zicht vult. Op zich geen probleem, de performance zal goed blijven. Zeker met HPOS ingeschakeld. Maar wat nu als je echt miljoenen bestellingen binnen krijgt. Het kan zo maar gebeuren dat jouw webshop echt een grote vlucht neemt. Het is dan zaak je database zo schoon en opgeruimd mogelijk te houden. Dit kan eenvoudig door het toevoegen van een zogenaamde Snippet. Die automatisch orders ouder dan 6 maanden verwijderd uit Woocommerce.

Voeg hiervoor onderstaande snippet toe via de Snippet plugin.

 

add_action( ‘admin_footer’, ‘auto_trash_old_completed_orders’ );
function auto_trash_old_completed_orders(){
$completed_orders = wc_get_orders( array(
‘limit’ => 10, // By batch of 10 orders
‘status’ => ‘completed’,
‘date_created’ => ‘<‘ . date(“Y-m-d”, strtotime(“-6 months”)),
) );

if ( count($completed_orders) > 0 ){
foreach( $completed_orders as $completed_order ) {
$completed_order->delete(true);
}
}
}

Geplaatst in de categorie: Blog