Hoe prachtig zou het zijn als jouw klanten de vrijheid hadden om zelf hun gewenste bezorgdatum te kiezen? Deze functionaliteit zou voor bepaalde producten uiterst handig kunnen zijn. Helaas is deze optie niet standaard geïntegreerd in de WooCommerce-plug-in. Natuurlijk kun je altijd overwegen een specifieke plug-in hiervoor te downloaden of aan te schaffen, maar je hebt ongetwijfeld al gehoord dat het gebruik van te veel plug-ins op je website afgeraden wordt. Gelukkig heb ik de oplossing gevonden: een eenvoudige PHP-snippet die je kunt toevoegen aan je website.
Twee manieren om PHP-snippets toevoegen aan je WordPress-website.
Je kunt PHP-snippets toevoegen aan je WordPress-website op twee verschillende manieren: direct in het functions.php-bestand van je thema of via de Snippets plug-in.
Het rechtstreeks integreren van snippets in functions.php geeft je volledige controle over de code, waardoor je specifieke functionaliteiten direct in het thema kunt implementeren. Bovendien kun je via het bestandsbeheer altijd nog bij je functions.php indien er iets kapot gaat in je website. Deze manier van het toevoegen van PHP-snippets vereist wel basiskennis van PHP en WordPress-themastructuur.
Mijn persoonlijke voorkeur gaat uit naar de Snippets-plugin. Met deze plug-in kun je codefragmenten toevoegen, bewerken en beheren zonder het thema aan te raken. Het voordeel hiervan is dat je thema-updates kunt uitvoeren zonder dat je je zorgen hoeft te maken over het verlies van je aangepaste code. Bovendien is het een efficiënte manier om snippets te organiseren en te delen tussen verschillende WordPress-thema’s. Veel websites hebben deze, of een vergelijkbare, plug-in al geïnstalleerd.

Woo-bezorgdatumveld toevoegen Snippet
Voeg de volgende code toe aan je functions.php of in de Code Snippets plug-in:
// Voeg het bezorgdatumveld toe aan het afrekenen
add_action("woocommerce_after_order_notes", "cwpai_add_delivery_date_field");
function cwpai_add_delivery_date_field($checkout)
{
$min_date = date('Y-m-d', strtotime('+2 days')); // 2 dagen vanaf vandaag
$max_date = date('Y-m-d', strtotime('+7 days')); // 7 dagen vanaf vandaag
echo '<div id="cwpai_delivery_date_field"><label>' . __("Bezorgdatum") . "</label>";
woocommerce_form_field(
"cwpai_delivery_date",
[
"type" => "date",
"class" => ["cwpai-field-class form-row-wide"],
"required" => true, // Dit veld is verplicht
"custom_attributes" => [
'min' => $min_date,
'max' => $max_date
],
],
$checkout->get_value("cwpai_delivery_date")
);
echo "</div>";
}
// Bewaar de bezorgdatum in de besteldata
add_action(
"woocommerce_checkout_update_order_meta",
"cwpai_save_delivery_date_to_order_meta"
);
function cwpai_save_delivery_date_to_order_meta($order_id)
{
if (!empty($_POST["cwpai_delivery_date"])) {
update_post_meta(
$order_id,
"cwpai_delivery_date",
sanitize_text_field($_POST["cwpai_delivery_date"])
);
}
}
// Geef de bezorgdatum weer in de aangepaste kolom
add_action('woocommerce_admin_order_data_after_shipping_address', 'cwpai_my_orders_delivery_date_column');
function cwpai_my_orders_delivery_date_column($order)
{
$delivery_date = "<strong>Delivery Date:</strong><br>" . get_post_meta($order->get_id(), 'cwpai_delivery_date', true); // Ontvang aangepaste besteldata
echo !empty($delivery_date) ? $delivery_date : 'N/A';
}
WooCommerce Snippet bewerken.
Zo makkelijk kan het zijn om deze functie toe te voegen aan je WooCommerce webshop. Het is zelfs mogelijk om de snippet naar wens aan te passen. Ik heb duidelijke labels toegevoegd bij de aanpasbare stukjes, zodat je precies weet wat je kunt veranderen.
Indien je geen aanpassingen hebt gemaakt in de snippet, hebben je klanten minimaal twee dagen na de bestelling als eerste mogelijke bezorgdatum. Je hebt de vrijheid om dit te wijzigen via de label // 2 dagen vanaf vandaag. Hetzelfde geldt voor de laatst mogelijke bezorgdatum, die je kunt aanpassen via // 7 dagen vanaf vandaag.
Je hebt ook de mogelijkheid om het veld voor de bezorgdatum naar keuze verplicht of optioneel te maken. Standaard staat het op verplicht ingesteld, maar je kunt dit aanpassen bij // Dit veld is verplicht door simpelweg ’true’ te wijzigen naar ‘false’ als je wilt dat het veld optioneel wordt.
De snippet is geschreven door Web Squadron.