Content aan de WooCommerce bestelbevestiging toevoegen

Pas de emails van WooCommerce aan. Bijvoorbeeld om de klant met een aparte kortingscode terug te laten komen.

Wil je direct een mail ontvangen wanneer nieuwe snippets zijn toegevoegd?

Vul dan onderstaand formulier in en je krijgt direct na het toevoegen van nieuwe snippets een email. Zo blijf je altijd bij!

De standaard email van WooCommerce zijn nu niet echt verkopers-vriendelijk. Je kan er heel weinig aan veranderen. Nu is er een aantal plugins beschikbaar waarmee de tekst van de WooCommerce mails enigszins aan kan passen, maar je kan dit ook met een simpel codefragment doen.

Hierbij hebben we echter een tweetal uitdagingen. De eerste uitdaging is natuurlijk welke ‘hook’ we moeten gebruiken om onze extra content waar in te voegen. De tweede uitdaging is ervoor te zorgen, dat het in de juiste emails komt te staan.

Maar voor we het over code hebben, laten we eerst eens kijken waarom we het bijvoorbeeld zouden willen.

Uit diverse onderzoeken is gebleken, dat een klant gemiddeld driemaal ergens besteld moet hebben, om te herinneren bij welke webshop ze besteld hebben. Het is dus van belang, dat een potentiële klant zo snel mogelijk weer bij je terug komt.

Dit kan je bijvoorbeeld doen, door éénmalige korting te geven op een volgende bestelling. Je maakt dus een kortingsbon aan met een bepaald bedrag, of een bepaald percentage, korting. Laat zeggen, dat we onze klant 10% korting geven op de eerstvolgende bestelling met de kortingscode 10procent.

Wanneer ik deze kortingscode boven de productlijst in de email wil hebben, dan moet ik weten welke ‘hook’ ik nodig heb om dit te doen.

De volgende hooks zijn beschikbaar voor -in principe- iedere WooCommerce standaard mail.

  • woocommerce_email_header($email_heading, $email)
    Deze wordt als aanhef aangeroepen.
  • woocommerce_email_order_details($order, $sent_to_admin, $plain_text, $email)
    Deze wordt aangeroepn na de tekst die je zelf kan toevoegen onder WooCommerce->instellingen->E-mail
  • woocommerce_email_before_order_table($order, $sent_to_admin, $plain_text, $email)
    Deze wordt aangeroepen net voor de tabel met bestelde producten.
  • woocommerce_order_item_meta_start($item_id, $item, $order, $plain_text)
    Deze wordt aangeroepen net na het tonen van de productnaam. Je kan gebruiken om een aantal ‘meta’ velden bij het product te tonen, zoals bijvoorbeeld de SKU.
  • woocommerce_order_item_meta_start($item_id, $item, $order, $plain_text)
    Deze wordt aangeroepen na de woocommerce_order_item_meta_start functie. Je kan gebruiken om een aantal ‘meta’ velden bij het product te tonen, zoals bijvoorbeeld de SKU.
  • woocommece_email_after_order_table($order, $sent_to_admin, $plain_text, $email)
    Deze wordt aangeroepen na de producten tabel
  • woocommerce_email_order_meta($order, $sent_to_admin, $plain_text, $email)
    Deze wordt aangeroepen om meta informatie die betrekking heeft op de order zelf te kunnen plaatsen.
  • woocommerce_email_customer_details($order, $sent_to_admin, $plain_text, $email)
    Deze wordt net voor de klantinformatie aangeroepen.

De meest logische plaats om informatie over een korting op een nieuwe bestelling te plaatsen is mijns inziens net voor, of net na de producten tabel. Dus de woocommerce_mail_before_order_table of the woocommerce_after_order table.

Ik heb ervoor gekozen om het ervoor te doen. Maar erna zou net zo’n geldige reden geweest zijn.

Laten we nu de opgedane kennis verwerken in onze code-snippet.

<?php
add_action( 'woocommerce_email_before_order_table', 'wxp_add_content_specific_email', 20, 4 );
  
function wxp_add_content_specific_email( $order, $sent_to_admin, $plain_text, $email ) {
   if ( $email->id == 'customer_processing_order' ) {
      echo '<h2 class="email-upsell-title">Krijg 10% korting op je volgende bestelling!</h2>' 
      echo '<p class="email-upsell-p">Bedankt voor je aankoop.' 
      echo 'Geef bij je volgende bestelling de éénmalige code ' 
      echo '"<strong>10procent</strong>" in om 10% korting op je volgende aankoop te krijgen!</p>';
   }
}

In regel 5 wordt het type van de email bepaald, waarbij de tekst wel of niet geplaatst moet worden. We hebben nu gekozen voor de orderbevestiging ‘customer_processing_order’. De andere mogelijkheden zijn

  • cancelled_order
  • customer_completed_order
  • customer_invoice
  • customer_new_account
  • customer_note
  • customer_on_hold_order
  • customer_refunded_order
  • customer_reset_password
  • failed_order
  • new_order

Nog een uitbreidingssuggestie

Het is een beetje een heel specifieke toepassing, maar wanneer je MailPoet gebruikt voor je mailing, kan je eventueel ook overwegen de kortingscode klant specifiek te maken, en een bepaalde vervaldatum te geven. Hoe je dat doet kan je lezen in mijn artikel hierover.

En als je dan toch bezig bent, kan je net zo goed even de oude verlopen codes automatisch opschonen.

Codesnippet verbeteren

Het doel van deze code snippet is een probleem op te lossen in een specifieke situatie. Daarom zie je regelmatig voorbeelden waar je specifiek tekst moet aanpassen om te krijgen wat je wilt. 

Wil jij leren hoe je complete plugins zelf kunt programmeren inclusief ‘admin’ schermen voor het instellen en de output in de gewenste taal, dan is misschien de cursus ‘Introductiecursus Plugins Programmeren‘ iets voor jou. 

Wil je als ‘full stack’ WordPress programmeur aan de gang gaan, dan biedt WordXPression ook een compleet traject ‘WordPress Developer‘ aan. Dit is een traject wat deels online, deels klassikaal wordt gegeven.

WordPress Developer worden?

Wil je leren hoe je zelf plugins, thema's, shortcodes, widgets, Gutenberg blocks en meer kan maken?
Schrijf je dan in voor de cursus WordPress Developer.

Meer snippets

Een regel tekst boven of onder een blogpost plaatsen
Een standaard regel (of) blok tekst boven of onder je blogpost plaatsen valt eigenlijk best wel mee....
De WordPress 'admin bar' ook daadwerkelijk alleen voor admins
Zelf vind ik de WordPress ‘admin bar’ heel handig om snel toegang te krijgen tot verschillende...
WooCommerce Add to Cart button-tekst aanpassen
Hoe pas je de tekst van je 'add to cart' button makkelijk aan?
Custom fields in Elementor gebruiken
Elementor is natuurlijk een prachtige page- en theme builder, maar is toch een aantal kleine uitdagingen...
Het WordPress login logo aanpassen
Vervang het standaard WordPress logo door je eigen logo op het inlogscherm.
Maak WP Courseware lessen zichtbaar in Elementor
Standaard kan Elementor Pro jouw WP Courseware Units niet vinden. Zo los je dit op.

Veiligheid voor alles!

Met betrekking tot de code die je hier aantreft een aantal waarschuwingen, voordat je deze code snippets toepast op je eigen website.

  1. Voer de code nooit direct uit op je eigen website, maar probeer deze eerst op een staging omgeving of een locale kopie van je website. 
  2. Voor je de geteste code installeert op je website, maak eerst een back up van je website.
  3. Zorg altijd voor alle zekerheid, dat je voor je een aanpassing live zet, je ook de FTP gegevens van je website bij de hand hebt.  
 
Voel je je onvoldoende vertrouwd met het toepassen van een dergelijke code snippet, bedenk dat je dit ook door een professional kan laten doen. De WordXPression support strippenkaart is een voordelige manier om dit soort aanpassingen te laten doen.
Heeft dit artikel je geholpen je probleem op te lossen?
Deel het met je vrienden via je favoriete social media.

Heb je vragen bij, of opmerkingen over deze code snippet, stel deze bij de commentaren hieronder.

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Word je website de baas. Neem vandaag nog contact op!

Contact Information

WordXPression 

Bezoekadres
Eperweg 135 (op afspraak)
8072 PL Nunspeet

Postadres
Aardoliestraat 14-I
7553GT Hengelo

06-10449807 (van 9:00 tot 17:00 van ma-vr)

KVK : 75580152 

Social media
Stuur een bericht

Introductiecursus Plugins Programmeren

wordpress coding Can use php code as background in html

Ontdek de wereld van WordPress Plugin ontwikkeling met WordXPression's introductiecursus