{"id":10559,"date":"2026-05-16T13:30:52","date_gmt":"2026-05-16T05:30:52","guid":{"rendered":"https:\/\/aeosub.com\/eux-pickup-delivery\/"},"modified":"2026-05-16T13:30:52","modified_gmt":"2026-05-16T05:30:52","slug":"eux-pickup-delivery","status":"publish","type":"post","link":"https:\/\/aeosub.com\/zh\/eux-pickup-delivery\/","title":{"rendered":"EUX Pickup &amp; Delivery"},"content":{"rendered":"<div class=\"plugin-info-card\" style=\"border: 1px solid #e2e8f0;border-radius: 10px;overflow: hidden;margin-bottom: 30px;font-family: -apple-system, system-ui, sans-serif;background: #fff\">\n<table style=\"width: 100%;border-collapse: collapse;font-size: 14px\">\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 15px 20px;text-align: left;width: 35%;color: #4a5568;background: #fcfcfc\"><img decoding=\"async\" src=\"https:\/\/ps.w.org\/eux-pickup-delivery\/assets\/icon-256x256.jpg?rev=3533557\" style=\"width: 40px;height: 40px;border-radius: 6px;margin-right: 12px;vertical-align: middle\"> Developer<\/th>\n<td style=\"padding: 15px 20px;font-weight: 500\"><a href=\"https:\/\/profiles.wordpress.org\/euxdigital\/\" target=\"_blank\" rel=\"noopener\">EUX Digital Agency<\/a><\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Version<\/th>\n<td style=\"padding: 12px 20px\">v1.0.0<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Active Installs<\/th>\n<td style=\"padding: 12px 20px\">0 +<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Requires \/ Tested<\/th>\n<td style=\"padding: 12px 20px\">5.0 \/ 6.9.4<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Last Updated<\/th>\n<td style=\"padding: 12px 20px\">2026-05-16 5:05am GMT<\/td>\n<\/tr>\n<tr>\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Official Link<\/th>\n<td style=\"padding: 12px 20px\"><a href=\"https:\/\/wordpress.org\/plugins\/eux-pickup-delivery\/\" target=\"_blank\" style=\"text-decoration: none;color: #4a3bca;font-weight: bold\" rel=\"noopener\">View Details \u2192<\/a><\/td>\n<\/tr>\n<\/table><\/div>\n<div class=\"plugin-short-desc\" style=\"margin: 20px 0;padding: 12px 15px;background: #f9fafb;border-left: 4px solid #4a3bca;border-radius: 6px;font-style: italic;color: #4a5568\">Add a Pickup &amp; Delivery step to your WooCommerce checkout, with date and time slot selection, delivery suburbs, and a flexible rules engine.<\/div>\n<p>EUX Pickup &amp; Delivery is a WooCommerce plugin developed by <strong>EUX Digital Agency<\/strong> that inserts a dedicated Pickup &amp; Delivery step between the shopping cart and the checkout. Customers choose how they want to receive their order, pick a date and (for pickup) a time slot, and then continue through to WooCommerce&#8217;s standard checkout with their choice stored on the order.<\/p>\n<p>The complete source code is available on <a href=\"https:\/\/github.com\/euxagency\/EUX-PAD\" rel=\"nofollow ugc noopener\" target=\"_blank\">GitHub<\/a>.<\/p>\n<h3>Key Features<\/h3>\n<p><strong>1. Dedicated Pickup &amp; Delivery Step<\/strong><br \/>\n* Automatically creates a &#8220;PAD&#8221; page on activation containing the <code>[wpd_pickup_delivery]<\/code> shortcode.<br \/>\n* Redirects customers from the cart to the PAD page before they can reach the checkout.<br \/>\n* Optional checkout progress bar: Shopping cart <span aria-hidden=\"true\" class=\"wp-exclude-emoji\">\u2192<\/span> Pickup &amp; Delivery <span aria-hidden=\"true\" class=\"wp-exclude-emoji\">\u2192<\/span> Checkout <span aria-hidden=\"true\" class=\"wp-exclude-emoji\">\u2192<\/span> Order complete.<br \/>\n* 5-minute session expiry on PAD selections so stale choices cannot reach the checkout.<br \/>\n* The Pickup tab, the Delivery tab, or both can be enabled independently \u2014 if both are off, the PAD step is skipped entirely.<\/p>\n<p><strong>2. Date and Time Slot Selection<\/strong><br \/>\n* React-powered UI that fetches available dates and time slots from the server on demand.<br \/>\n* Configurable number of days shown in the date picker (default 15).<br \/>\n* Pickup time slots generated from per-weekday opening hours and a configurable interval in minutes.<br \/>\n* Optional auto-refresh timer (default 5 minutes) prevents the customer from checking out with slots that are no longer current.<\/p>\n<p><strong>3. Pickup Settings<\/strong><br \/>\n* Store pickup address, contact phone number, and opening hours defined row-by-row per weekday (up to one row per day).<br \/>\n* Configurable time-slot interval in minutes.<br \/>\n* Independent enable\/disable toggle and custom label for the Pickup tab.<\/p>\n<p><strong>4. Delivery Settings<\/strong><br \/>\n* Manage allowed delivery suburbs using WooCommerce-style chips \u2014 type a suburb, press Enter or comma to add, \u00d7 to remove.<br \/>\n* Paste-supported input for bulk adding suburbs from a comma-separated list.<br \/>\n* Case-insensitive suburb matching on the customer&#8217;s delivery form.<br \/>\n* Independent enable\/disable toggle and custom label for the Delivery tab.<br \/>\n* If no suburbs are configured, any suburb is accepted.<\/p>\n<p><strong>5. Rules Engine<\/strong><br \/>\n* Create rules that enable or disable dates for pickup and\/or delivery.<br \/>\n* Each rule combines multiple conditions with AND logic.<br \/>\n* Rules are evaluated in priority order (lowest <code>order<\/code> wins) \u2014 the first matching rule decides the date.<br \/>\n* Conditions: Days of Week, Specific Dates, Delivery\/Pickup Method, and (when multi-store is enabled) Store.<br \/>\n* Operators supported: <em>matches any of<\/em>, <em>equal<\/em>, <em>not equal<\/em>, <em>contains<\/em>, <em>between<\/em> (depending on condition type).<\/p>\n<p><strong>6. Global Appearance &amp; Labels<\/strong><br \/>\n* Customize tab labels (Delivery \/ Pickup) and the continue button text.<br \/>\n* Upload pickup and delivery icons from the WordPress media library.<br \/>\n* Full colour customization via a CSS-variable-driven theme \u2014 tabs, day selector, time selector and continue button, including hover and selected states.<br \/>\n* Reset colours to WooCommerce-standard defaults with a single click.<br \/>\n* Toggle the checkout progress bar and the date refresh timer on or off.<\/p>\n<p><strong>7. Order Integration<\/strong><br \/>\n* Saves pickup\/delivery type, date, time slot and (for delivery) suburb, postcode and special instructions to the order.<br \/>\n* Displays the selected method and time on the order review, admin order screen, thank-you page, My Account orders list and transactional emails.<br \/>\n* Adds <em>Type<\/em> and <em>Date<\/em> columns to the WooCommerce orders admin list for both HPOS and legacy order storage.<br \/>\n* Forces the correct shipping method at checkout based on the customer&#8217;s pickup\/delivery choice.<br \/>\n* Hides the shipping address section and shipping totals row automatically when pickup is selected.<br \/>\n* Pre-fills the delivery form from the customer&#8217;s existing WooCommerce address when available.<br \/>\n* Editable from the admin order screen after the order is placed.<\/p>\n<h3>Benefits for Store Owners<\/h3>\n<ul>\n<li>Capture the customer&#8217;s chosen date up front, so fulfilment is scheduled from the moment the order is placed.<\/li>\n<li>Restrict delivery to the suburbs your drivers actually service.<\/li>\n<li>Block specific dates (public holidays, stocktake, owner leave) without editing code.<\/li>\n<li>Offer click-and-collect without needing a separate pickup plugin.<\/li>\n<li>Works with both classic and High-Performance Order Storage.<\/li>\n<\/ul>\n<h3>Technical Features<\/h3>\n<ul>\n<li>Built for <strong>WooCommerce 7.0+<\/strong> with full <strong>High-Performance Order Storage (HPOS)<\/strong> compatibility.<\/li>\n<li>Modern React front-end using <code>@wordpress\/element<\/code> and <code>@wordpress\/components<\/code>, bundled with webpack.<\/li>\n<li>Admin UI built on native WordPress components.<\/li>\n<li>REST API under two namespaces: <code>wpd\/v1<\/code> (settings) and <code>eux-pad\/v1<\/code> (date availability).<\/li>\n<li>Rule engine respects the WordPress site timezone.<\/li>\n<li>Settings and the auto-generated PAD page are cleanly removed on uninstall.<\/li>\n<li>Core scheduling and rule evaluation run entirely inside your WordPress installation.<\/li>\n<\/ul>\n<h3>External services<\/h3>\n<p>This plugin does <strong>not<\/strong> call EUX Digital Agency servers or include third-party analytics.<\/p>\n<p><strong>Optional: Google Maps (embed)<\/strong><br \/>\nIf you paste a <strong>Google Maps<\/strong> HTML embed into Pickup Settings (or a multi-store location\u2019s map field), the customer\u2019s <strong>browser<\/strong> loads Google\u2019s map resources to display that embed. Google may receive typical web data (for example IP address, referrer, and interaction with the map) as described in their policies. This only happens when you choose to add an embed; you can leave map fields empty.<\/p>\n<ul>\n<li><a href=\"https:\/\/policies.google.com\/terms\" rel=\"nofollow ugc noopener\" target=\"_blank\">Google Terms of Service<\/a>  <\/li>\n<li><a href=\"https:\/\/policies.google.com\/privacy\" rel=\"nofollow ugc noopener\" target=\"_blank\">Google Privacy Policy<\/a>  <\/li>\n<\/ul>\n<p><strong>Other map or iframe providers<\/strong><br \/>\nIf you embed another provider\u2019s map via HTML iframe, the visitor\u2019s browser loads that third party under that provider\u2019s terms \u2014 the plugin only outputs the HTML you save; it does not send your WooCommerce order data to those services by itself.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Add a Pickup &amp; Delivery step to your WooCommerce checkout, with date and time slot selection, delivery suburbs, and a flexible rules engine.<\/p>","protected":false},"author":1,"featured_media":9317,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[252],"tags":[684,685,906,907,569,555],"class_list":["post-10559","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-trends","tag-checkout","tag-delivery","tag-pickup","tag-scheduling","tag-woocommerce","tag-wordpress-plugin"],"_links":{"self":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts\/10559","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/comments?post=10559"}],"version-history":[{"count":0,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts\/10559\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/media\/9317"}],"wp:attachment":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/media?parent=10559"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/categories?post=10559"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/tags?post=10559"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}