WooCommerce comes with 5 core shipping methods to cover several basic scenarios:
- Flat Rate so you can set per order or per item shipping
- International Flat Rate if you want to sell to other countries and restrict flat rate to your own
- Free shipping that can be restricted based on order minimum, coupons used, or country
- Local pickup that can be restricted by postcode if you have a brick-and-mortar location and local customers
- Local delivery that can be restricted by postcode so you can deliver orders to your local customers
While local pickup and local delivery can be geographically limited, they can’t be time limited — customers have no way of scheduling pickups or deliveries. Depending on what you sell, this may be integral to your business model. For example, florist shops typically need to accept a delivery date (and maybe even time) to be able to fulfill orders.
If you need to accept date and / or time fields as part of your order fulfillment process, the WooCommerce Order Delivery Date Pro plugin ($99) can allow you to:
- capture dates, times, or time slots for delivery
- add delivery / pickup fees for certain days of the week or specific dates
- and manage holidays or other pickup schedules.
We’ve previously published a detailed review of the plugin, but there are several improvements that have been made since then we’ll be taking a look at today.
While the basic functionality that was included in our original review remains, there are some substantial changes to the plugin. First, the entire codebase has been rewritten to improve structure and organization. Order management has become easier with the addition of order filtering and a delivery calendar.
Delivery dates can be managed by shipping method and by product category to give you the granular control over delivery times and availability that you need.
Time slots, flexibility in setting times by day or specific date, and integration with other plugins have all been improved for a much more complete experience in managing order deliveries. This is a vastly improved plugin over our original review 🙂
The first change that becomes quickly apparent when WooCommerce Order Delivery Date Pro 3.0 is installed is how much easier the settings are to navigate. The settings now use the WordPress settings API, which makes them look more native to your site.
The date settings still have some of the features I love, such as the ability to set fees for certain delivery days (such as Saturday delivery charges), enable delivery information in order emails, and enabling which days are available for delivery. In addition, you can still lock out delivery for a date after a certain number of deliveries to ensure you can meet the delivery schedule.
The only thing I think this screen is missing is the ability to set a label for a fee to control how it’s shown to the customer (instead of just “Delivery charges”).
There are some useful additions, too. First, you can now set a Minimum Delivery Time, rather than a minimum number of days. This makes it far more feasible to provide same-day delivery (if you choose to), as you don’t have to set a minimum of one-day. Instead, you can require at least 3 hours for delivery, or whatever number of hours you need.
You can opt to show delivery information in the “Orders” list to quickly see delivery details (this was possible before, but could not be disabled).
And you can filter orders by delivery to view today’s deliveries, or deliveries by month.
Finally, there are several new integrations available with other WooCommerce extensions, which we’ll take a closer look at shortly.
Time settings will still allow you to enable time capture and the time range available for delivery, with one major addition: you can now set a fee for same day delivery. Previously, next day delivery fees could be set, but same day delivery fees were not available (most likely due to the fact that you couldn’t set a minimum number of hours for delivery, so many shops required at least one day).
As we said in our previous review, I’d recommend using time capture or time slots, but not both, to schedule deliveries, as otherwise customers could be confused. The top time input is a time capture, while the bottom is a time slot:
Time slot settings have had some serious updates to add two major features. First, time slots can be set per day to allow you to use different time slots for different days of the week.
This allows to offer times on Mondays, Wednesdays, or Fridays, while offering different slots on Tuesdays and Thursdays, or offering fewer slots on Saturdays. I’d love to see a bit of improvement in adding these slots per day (currently you have to add all slots for Monday, then all slots for Tuesday, etc, instead of “sharing” slots across days), but this is an excellent change for shops that offer limited delivery schedules on certain days.
You can also set up time slots per date instead of per day if you have specific delivery dates set up under the “Delivery Dates” tab.
Finally, time slots can be created without an end time so that they’re open-ended. You can set a delivery timeslot for “3pm onward” to signify “delivery after 3p” instead of setting a specific end time for the slot. To do so, you can leave the delivery end time as 00:00.
Holidays are a great feature of WooCommerce Order Delivery Date Pro, as they allow you to avoid deliveries on those dates. While you could always add holidays, you can now easily add date ranges for a holiday instead of adding every single day individually, making holiday set up much faster.
Setting up specific delivery dates has always been possible with Order Delivery Date Pro, but you can now set up dates and fees for those dates. This can let you enable certain weekend deliveries you wouldn’t normally use, or add surcharges for deliveries around holidays, such as a Valentine’s day surcharge for flower deliveries, or a day-before-Christmas fee.
Since you can now use both recurring weekdays and specific dates for timeslots, using specific dates becomes far more compelling for additional delivery dates or dates with surcharges.
With the ability to use weekdays and dates with time slots, you can now set up a scenario like this:
- Monday-Thursday deliveries are regular with set time slots
- Friday deliveries have a more limited schedule
- Holiday deliveries, such as Halloween, have time slots that stop at 3pm and add additional delivery charges
Appearance settings have not been left behind in the recent changes either. There are a few new settings of note:
- you can determine what day the week should start on
- you can determine if delivery date fields should be shown with billing or shipping fields
- you can add a label / note with the field, such as “time slots are not guaranteed” or “Saturday charges apply”
- you can hide the delivery date field if the order consists of all virtual products (which don’t require shipping or delivery)
Now we’re getting to some of my favorite changes 🙂 One new tab has been added to the settings area for additional functionality: Settings by Shipping Method.
This will allow you to enable or disable delivery based on a particular shipping method in your shop.
For example, you can disable delivery dates for flat rate shipping, free shipping, and international shipping, and this will prevent delivery date fields from showing at checkout if these methods are selected.
You can then enable delivery date fields for other methods, such as local delivery or local pickup. If you add settings for the shipping method, these will override the general / global settings so that the shipping method
Once you’ve configured these settings per method, your checkout will respect them and any fees associated with them. If delivery dates are not available for the method, they won’t be shown. Otherwise, delivery dates and times can be chosen:
(Note that checkout fields have been simplified in these screenshots to be able to show all data.)
You can also now enable delivery per categories, which is a huge bonus for flexibility. When you edit a category, you can enable or disable delivery for the product.
While viewing your product categories, you’ll be able to see if delivery dates are enabled or not.
If an order consists entirely of products in a delivery-disabled category, delivery dates will not be available.
A new delivery calendar is available under the “Order Delivery Date” menu, which will show all scheduled item deliveries and link to the order in which it was purchased. This makes managing delivery orders much easier, as you can see all scheduled deliveries in one view.
WooCommerce Order Delivery Date Pro is now integrated with several other extensions and plugins to improve how it fits into your store’s workflow.
- WooCommerce Order / Customer CSV Export
- WooCommerce Checkout Field Editor
- WooCommerce Zapier
- PDF Invoices & Packing Lists for WooCommerce
- Print Invoices & Delivery Notes for WooCommerce
- Print Orders for WooCommerce
You can also use the plugin with WPML to translate your site; the plugin now includes .pot file so that all strings are translation-ready.
The customer experience while using the plugin at checkout is fairly unchanged from previous versions, but the shipping methods integration makes this selecting delivery dates easier for customers to understand, as you can hide them for virtual products or only show them for certain shipping methods.
Order management is mostly unchanged as well, as viewing delivery dates or manually adding orders can still be done. The addition of the delivery calendar is very helpful for managing orders as well.
While the code quality can still be improved, the structure and organization is much better, as structure is broken up appropriately and prefixing is now used to avoid conflicts. The plugin has also added several hooks (along with a developer reference) to make it easier to customize.
There are some downsides to using the plugin still:
- The ability to add a label for fees to control how they’re displayed to customers would be nice
- Time slots per day are great, but the ability to share settings across days (i.e., a multiselect for days) would make setup easier
- Since both global settings and settings per shipping method can be set, this can make set up a bit confusing if you don’t realize that per-shipping settings will override your global / standard settings, so some UI refinements would help with this
Shops can now enable delivery settings based on shipping method and enable / disable delivery dates for product categories, making it far easier to have granular control over when delivery is available. You can also disable the delivery date field for all-virtual orders, as it’s unnecessary in this case.
Management is much easier with the delivery calendar, as you can get a view of all delivery dates in your shop to schedule deliveries. Filtering orders by delivery date also helps with this.
Time slots are far improved, as they can be set for both recurring weekdays as well as specific dates, and integrations with other plugins help Order Delivery Date to integrate with the rest of your site and workflow.
I’ve asked about changes that are on the way, and the roadmap for the plugin looks to provide more control based on the geography of the customer. For example, the “settings by shipping method” will allow you to set delivery fees based on product categories, post code, or state / city. The recent changes and upcoming features make Order Delivery Date Pro a great solution for stores that need to gather date or time-related information for their orders.