Stores that sell standard products rarely encounter the need for more functionality when selecting or using an eCommerce platform. Most platforms offer the ability to sell tee shirts or other simple products, then send those products to customers and charge them. However, there are tons of other business models in the eCommerce space that will require some specific functionality to make sure the business runs smoothly.
The way your products get into the hands of your customers is one aspect of your business that may require some additional features. For example, what if you’ll ship to customers using UPS rates or allow customers to schedule delivery or pickup times? You’ll need to extend the basic WooCommerce functionality to do so.
That’s where something like the WooCommerce Order Delivery Date Pro plugin from Tyche Softwares can come into play. This plugin will allow your customers to set order delivery dates and times right from the WooCommerce checkout.
Table of Contents
- Overview & Costs
- Setup & Usage
- Customer Experience
- Managing Orders
- Adding Orders
- Support & Documentation
- Other Comments
- Conclusions
WooCommerce includes core shipping methods for both Local Delivery and Local Pickup:
However, these core methods are a bit lacking for many stores. While you do have the flexibility to enable them based on postal code, there’s no way to accept date or time slots.
As a customer, I love delivery. Especially for large items like furniture, or for time sensitive items that I buy locally, like flowers. However, I definitely want to be able to select when the delivery person should be showing up while I make my purchase.
The WooCommerce Order Delivery Date plugin is designed to make setting WooCommerce delivery dates and pickup times easy and flexible in order to fix this problem. You can enable the ability for customers to select a delivery date, date with a customizable time, or date with a time slot.
Pricing ranges from $99 to $249, which depends on how many stores you’ll use the plugin for. If you’d like to take the plugin for a test drive before purchasing, you can check out the Frontend demo or Admin demo. There are also FAQs available to help you determine if the plugin is right for your shop.
WooCommerce Order Delivery Date Pro can be used as a lightweight appointment or booking scheduler as well, as it supports any model that would require a date and time for customers on a per-order basis.
Setting up WooCommerce delivery dates, pickup times, or any date / time information for orders is really simple. You’ll first determine if you want to allow delivery on specific days, such as Monday – Wednesday – Friday, or only on certain dates. This will determine how you configure the plugin.
All settings are located under the Order Delivery Date menu. I’m going to set up a schedule of days so that the available deliveries will repeat each week under the “Date Settings”. You simply have to check which days to enable, and enter the fee for delivery if the day incurs one (you can otherwise enter 0 or leave it blank).
I also really liked the ability to tweak delivery availability on those days and how far in advance it can be scheduled. From the same settings page, you can configure the minimum number of days needed to schedule delivery, as well as how many days in advance customers can schedule delivery. This is handy for large items like furniture, as you probably don’t want purchased items taking up space long after being sold while you could be bringing in new inventory.
You can also opt to include the date information in confirmation emails and lock out delivery after a certain number of orders. This gives you a sort of “stock” management system for your deliveries on a given day.
After setting up my WooCommerce delivery dates, I checked out the “Time Settings” page. You can use this to allow customers to select a custom time for a delivery. This will create a slider for both the hours and minutes so they can choose any time within the range you’ve configured for delivery, pickup, or whatever you’re using the plugin to schedule.
Here is also where you can set expedited fees for same day or next day delivery that will be added to any other fees already present. You can also set cut off times, so customers ordering after this time will not be able to select these delivery options.
If you do choose to enable the “time capture” option so customers can select a time, note that you should not use time slots in addition to this, as it will be confusing for customers, and for you when looking at orders.
(The top time is a time capture, while the bottom is a time slot.)
If you’d instead like to use a time slot dropdown, you can go to the “Time Slots” settings. These settings will let you enable time slots and create each available slot. You can also lock out new orders once a time slot has been selected a certain number of times, which acts like “stock” management for your delivery personnel.
Now that I’ve got my basic delivery options set up, I can finish out the rest of the options. The “Appearance” settings will let you select one of 62 different languages for your delivery options, your date format and calendar theme, as well as set up the labels for your delivery options. WooCommerce Order Delivery Date Pro is also compatible with WPML for stores using WPML to create multilingual sites.
You can determine how many months should be shown when customers use your calendar on the checkout page as well.
Finally, I set up my “Holiday” settings. Any dates you enter as a holiday will become unavailable in the calendar on the checkout page. If a customer tries to select a holiday date, it will be displayed as “Holiday” so they know why it’s unavailable.
As a last note, there is one setting that I didn’t need for my setup, but could be used – the “Delivery Dates” setting. I could use this to allow delivery on specific dates rather than based on a day of the week. You can use this instead of the “Date Settings” if preferred.
That’s all there is to setup! The WooCommerce delivery date and time picker will now be shown on your checkout page right after the billing fields.
Once you’ve set up all fields in the admin, customers will be able to view and select your WooCommerce delivery dates, times, or time slots.
I set up my calendar to display 2 months with the time capture option. This allows customers to set whatever time they want for delivery or pickup. Customers simply select a date and use the sliders at the bottom to set hours and minutes for the time of their choice.
This is super handy for shops that allow pickup, as customers can tell you when they’ll arrive so that you can have the order prepared and ready to be carted away. I would have preferred a larger interval than “per minute”, such as customers being able to move a slider for every 10-15 minutes so you don’t get a time like 10:53 for the time capture. However, it works well to allow customers to configure the time of their choice.
If you use time slots instead of the time capture, customers will simply select a pre-set time slot from a dropdown menu, which is really handy for scheduling local deliveries or services where you don’t have an exact time available.
If you’ve set any fees for your delivery dates or same / next day delivery, these will be displayed in the order details table to inform customers before they check out.
While you don’t have to use any shipping methods for this plugin to work, you may also allow shipping or delivery / pickup for your products. If that’s the case, it’s helpful to use this conjunction with the WooCommerce local delivery or pickup shipping methods so that customers can select this at checkout. Just be sure that you don’t add fees to both the shipping method and the WooCommerce delivery date.
I’d then add instructions for customers to make it clear which shipping method they should select if they’re using the WooCommerce delivery date / time selector on the checkout page. You can do so easily with a tiny code snippet (here are instructions on how to add code to your site).
add_action( 'woocommerce_after_checkout_billing_form', 'wc_delivery_date_notice_text' ); function wc_delivery_date_notice_text() { echo '<em>Please enter these options if choosing "Local Delivery" for shipping.</em>'; }
This code snippet will add a tiny notice after your WooCommerce delivery date fields – you can adjust the text as needed.
If you prefer, you could put this text before the WooCommerce delivery date fields by making the priority of your function higher:
add_action( 'woocommerce_after_checkout_billing_form', 'wc_delivery_notice_text', 9 ); function wc_delivery_notice_text() { echo '<hr /><em>Please enter these options if choosing "Local Delivery" for shipping.</em>'; }
This will add our horizontal bar and text right above the delivery field options so that customers are aware of which shipping method to select.
You could also use something like the WooCommerce Advanced Free Shipping plugin to create a method for this since the delivery charges will not be added as part of the shipping method, but rather as a separate line item, so it doesn’t matter which shipping method you choose.
One other thing I did to make the customer experience smoother was to remove the (Free) label from after the Local Delivery and Local pickup shipping methods using this snippet.
However, I made a minor change. Instead of replacing “(Free)” with a blank space, I added a notice about the fees that would be applied. My string replace instead looked like this:
"(Free)", "Saturday charges apply", $label
This is an easy way to inform customers of charges they’ll incur, and it will be displayed with the shipping method.
Finally, customers can view any selected delivery or pickup dates and times when they view an order from the “My Account” page:
Overall, the date picker is very easy for customers to use, and flexible enough to be used for any checkout, as it’s not tightly tied to a shipping method. This lets you use it without a shipping method at all, or with any method of your choice. Just be sure that customers know what to do 🙂 .
Once customers have gone through the checkout process and selected a delivery date and/or time, this information will be displayed as part of the order, and can be edited by an admin.
You’ll be able to get a bird’s eye view of all scheduled delivery dates when viewing the “Orders” screen, as a new column for Delivery Date (or whatever your label is) will be added.
Your WooCommerce delivery date or pickup time will also be displayed on the order itself so that it can be managed or changed as needed.
If you need to edit or add WooCommerce delivery dates or pickup information, you can do so from the “Custom Fields” section of the order. You’ll use your field name, such as “Delivery date” or “Pickup time” to set this value, and can also set or edit time slots.
Any charges for delivery will also be added to the order as line items, which means you can edit or add them as needed.
Overall, setting up and managing orders with the plugin is very simple, and I was up and running within 15-20 minutes. Unless you need to change time slots or dates, you won’t have to worry about continuously configuring the plugin or changing options, which is fantastic.
The only thing you may need to do is manually schedule a WooCommerce delivery date or pickup time. For example, if you take phone orders, you may need to enter this information for a customer. You can do so by creating a new order.
The new order won’t have our pickup time yet, and we can’t set it with the billing details. Instead, we’ll set it elsewhere.
Once you’ve added your products to the order, keep scrolling down to the “Custom fields”. Your delivery options are set as order custom fields, which you can add or edit as needed. Add a custom field for your date and use the label name, i.e., “Delivery Date”, “Pickup day”, etc. You can also enter a time slot if using one.
Once you’ve added your delivery information, don’t forget to add any fees as needed to the order table, such as a delivery, next day, or Saturday delivery fee. You can then calculate taxes and totals for the order.
Finally, save the order. Your delivery information is now saved and will be displayed for the order and in the column on the “Orders” page.
Should you need any help while setting up or using the plugin, there are several support resources available. The documentation wasn’t really needed when I set up the plugin, as settings were clear and easy to follow. However, it was pretty helpful when I read through the differences in using time slots vs time capture for delivery times.
When you purchase the plugin, you are provided with a license that expires after one year (though it can be renewed at a discounted rate). Your license includes support, so you can ask questions or get help via the plugin forums or through an email ticket with the support staff.
I didn’t need to use any support resources while using the plugin, but responses in the forums are active and helpful, and you can check these out yourself.
While the plugin’s main “advertised” feature is to allow you to set WooCommerce delivery dates, there are several other uses for a calendar / time picker on your checkout page. This can be used as a lite version for a booking system, such as one that will allow you to schedule coaching, meetings, or phone calls. You can also use it create WooCommerce order pickup times instead of delivery times.
Since it’s not tied into a particular shipping method, you can use it for any scheduling on a per-order basis.
The only concerns I had with the plugin are related to the code structure. The code doesn’t always use namespacing for functions or constants, which has the potential to cause conflicts. For example, if I were to make a plugin that lets you sort products in the shop, I’d probably include something like wc_shop_sorter_
in front of my functions and constants so they won’t have the same name as functions and constants in other plugins or themes (which can crash your site). The constants like CALENDAR_THEME
in the plugin have the potential to cause conflicts with other calendar-related plugins.
I loved that the WooCommerce Order Delivery Date Pro plugin was very simple to use for both shop administrators and customers. The ability to select both dates and times helps any shop schedule deliveries or pickups, but I really found the options to set “inventory” by limiting the number of deliveries useful. The same day and next day fees and cutoff times are also great, and automate your delivery scheduling completely.
Order management is simple, and you can view all delivery or pickup dates and times right from the “Orders” view to easily understand how many deliveries have to go out on a given day. I would love to see an add-on for this to display or export a calendar of delivery dates, but they’re easy enough to manage as-is. I had a couple of qualms about code structure, but nothing interfered with the plugin functionality or user experience at all.
If you want to allow for WooCommerce delivery dates, pickup dates and times, order-based scheduling, or any other scheduling functions in your checkout process, this plugin is a simple and easy tool to help you add them and manage inventory for your dates and time slots. You can check it out here: