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.