=== ByC WooCommerce Order Delivery or Pickup with Date Time Location - WooODT Lite===
Contributors: mdalabar
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=MZZCSP2WRCYT2
Tags:  delivery date time, pickup date time location, delivery date, delivery time, delivery date time widget, pickup time, pickup date time, woocommerce delivery date time, woocommerce pickup date time, order delivery date time widget, order pickup date time widget, delivery calendar, automated shipping, pickup calendar, e-commerce pickup calendar, delivery calendar, pickup calendar, cart calendar, storefront calendar, calendar, checkout, checkout calendar, delivery date, pickup date, delivery time, pickup time, order delivery calendar, order pickup calendar, woocommerce delivery date, woocommerce pickup date, delivery calendar, pickup calendar, woocommerce pickup date, woocommerce pickup time, woocommerce delvery date, woocommerce delvery time, customer delivery date, delivery date time selection, customer pickup date time selection, food ordering system, food ordering, restaurant ordering system, food ordering widget, fast food ordering, woocommerce food ordering, woocommerce food ordering plugin, woocommerce food ordering widget, widget, WooODT, WooODT Lite.
Requires at least: 3.5
Tested up to: 5.3
Stable tag: 2.1.5
Requires PHP: 5.2.4
WC requires at least: 2.6
WC tested up to: 3.8.0
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html



== Description ==

Let you customers to choose order type as deliverable or self pickup along with their desired  date and  time, optionally offer to choose pickup location when you have multiple store location.

"Order Delivery or Pickup with Date Time Location" is a WooCommerce plugin that allow your customers to choose their desired delivery/pickup date and time optionally a pickup point on WoCommerce checkout page for your store. 

It comes with an widget and short code([ByConsole_WooODT]) as well that you can place on any page/sidebar/template to collect user's desired date time for delivery/pickup and location of pickup point before going to checkout page.


* Provide option for delivery or pickup or both
* Provide option to choose delivery date and time, pickup date and time &  pickup point location
* You can add as many pickup point as you may have
* You can disable the delivery / pickup time option
* You can disable the pickup location option
* Do not ask for date, time & order type when cart contains virtual products only
* Add a pre-order days, how much days in advance a delivery/pickup order can be placed
* You can disable pickup based on days of the week, i.e: you can disable pickup on each Sunday & Saturday
* You can disable delivery based on days of the week, i.e: you can disable delivery on each Thursday
* You can change the labels of the pickup and delivery button shown on checkout page/widget/form produced by short code
* Different time formats are available
* You can make delivery or pickup time as non required field
* Set delivery service start and end time
* Set pickup service start and end time
* You can change the position of the date and time field on the checkout page
* You can change the position of the date and time info section on order confirmation email. 
* You can show a different custom message on customer email and order completed page like,
**Pickup message like** Please pickup your order on 28 Sep 2019 at 09:45 AM
or
**Delivery message like** Your order will be delivered on 28 Sep 2019 at 09:45 AM

= Control how many number of days you allow in advance for delivery of an order =
You can set allowable days for pre-order. That is how much days in advance a order can be placed. Customers will be able to pick a date in advance on date picker calendar for maximum that number of days from current date.


= Setup your delivery & pickup service time separately =
You can set delivery & pickup hours in plugin settings page separately and customers will be allowed to select delivery/pickup time from your respective specified time range only.


= Control pickup hours to choose =
You can set pickup hours in plugin settings page and customers will be allowed to select pickup time from your specified time range only.


= Set minimum time to get deliver =
You can set minimum delivery time in plugin settings page and this info will be visible in widget.


= Allow customers to choose order type as delivery or pickup clearly =
Customer can select whether they will pickup their orders from you store or they need a delivery for their order.

= Add as many pickup point as you may have =
You can enable multiple pickup location feature, where customer can select from which pickup point they want to collect their order.

= Automated shipping based on order type selection =
It have a automated shipping selection, ie; if customer choose pickup instead of delivery then the Store Pickup shipping is automatically applied same as if deliver option is selected from widget then it will show your available shipping methods except the Store Pickup one.


= Control what texts to show on order completed/details page with date and time =
This plugin show the desired delivery/pickup date and time on order details page on front-end and you can control the texts to be shown there with their chosen date and time.

= Choose where and what texts to show for delivery/pickup date time on email =
Same info is shown on customers email also, while placing an order and you can control what texts to show with delivery/pickup date and time


= Choose where to place delivery/pickup info on order details page =
You can control where to show this delivery/pickup date and time on customer order page, two option is available as before item list or after item list.


= Get delivery/pickup data on admin order details page =
All info is also shown on admin order details page, ie; order type: delivery/pickup, Delivery/pickup date and delivery/pickup time.

= Place the short code anywhere =
Want to know on which date and time customer need the delivery or pickup before checking out? its easy with this plugin just put this short code where you need to collect those info "[ByConsole_WooODT]"

= Place the widget anywhere =
Widget produced by this plugin can be placed on any page/post, that will collect delivery date and time in advance. Also can be used to check if a delivery/pickup date time is available for any certain day on any page. specially on home page.


= Control all the texts/labels =
You can change text/label of each fields/buttons as per your need



= Get pro version here =
<a href="https://www.plugins.byconsole.com/product/byconsole-wooodt-extended/" target="_blank">Get Pro version</a>


= Features in pro version =


 Minimum lead time / wait time for same day delivery/pickup

 Minimum lead time / wait time as number of day(s) for delivery/pickup

 Order placing cutoff time for next day delivery/pickup 
 
 Order placing cutoff time for same day delivery/pickup

Create your own delivery slot per day & pickup slot based on week days

Limit each slot with maximum number of deliveries / pickups

Create multiple pickup location

Each pickup location admin will receive a copy of new order email whenever that location receive an order

Provide a fix amount of discount for each pickup location

Different pickup service time for each pickup location

Each delivery area has its own service days and service time 

 Setting up date format

 Create delivery location list

 Set casual holidays on each month's calendar

 Set National/public holiday on calendar

 Get customized/more extended copy to suit your all needs.

 And many more, we are offering maximum number of features.


= NB =

If you enjoy this plugin please put a review, that will encourage me to bring some more ...


== Installation ==
1. Upload the plugin files to the `/wp-content/plugins/` directory, or install the plugin through the WordPress plugins screen directly by uploading zip through "Upload Plugin" button in "Plugins" -> "Add New" screen of wp-admin area.

2. Activate the plugin through the 'Plugins' screen in WordPress

3. Use the Wp admin menu -> Order Delivery Time management screen to configure the plugin

4. Use the Wp admin menu -> Appearance -> Widgets -> Order delivery time widget and place it on your desired sidebar

OR

Search for "Order Delivery or Pickup with Date Time Location" in "Plugins" -> "Add New" screen within your WordPress wp-admin area and click install button


== Frequently Asked Questions ==

= I Don't want pickup time / delivery time option =

Yes, you can disable pickup/delivery time from plugin settings page. 


= I got time drop-down as blank =

Make sure you have added time in setting page.

= I want to only allow order for X days in advance & don't want buyer to choose a delivery/pickup date of say 2 months away from now =

Yes, you can set how many number of days to allow for placing an order in advance. Just put your desired number of days on plugin settings page for the field labeled as "Preorder Days:" in plugin settings page.

Lets say you want to allow up to 25 days for advance booking of an order, so if its 2nd of this current month, then buyers can choose any date till 27th of the current month, but not 28 for today. 

Same way if user check back on tomorrow that the 3rd of this month, then the date-picker calendar will allow to select any dates up to 28th of this month.   

= I want to change the text shown in the Pick and delivery selection button on the checkout page =
Yes, you can change them from plugin settings page, just put your own words on settings field labeled as "Pickup label text:" & "Delivery label text:"

= I want to change the time format of the Delivery / Pickup time selector =
You can do that by choosing an option from the settings field labeled as "Time format:", there are three options to choose 12 hours,24 hours without AM/PM & 24 hrs with AM/PM format

= I want to have the pickup / delivery time option, but don't want to make it as required field (as some time user may want to leave it empty) =
Yes you can do that from this plugin settings page. Just keep it unchecked the option labeled as "Time field is required:" on plugin settings page and save the settings.

= I don't do delivery / pickup on Saturday and Sundays (or weekend) =
You can disable the days of the week when you don't do delivery / pickup, you can have different days disabled for pickup and different days for delivery as well. When a day is disabled buyer wont be able to select that date.

= Does it disable date time for virtual products? =
Yes, it disable date time selection when you cart contains virtual products only. If there is any physical/simple product then it will ask for date time.

= Does it block order for same day delivery when delivery hours for the day is over? =
Yes, it stops taking order for same day delivery / pickup when delivery / pickup time is over for the day. Also it notifies buyers with a message like "We are closed for today, please select another date" when today's date is selected for delivery / pickup. 

= Showing flat rate/free shipping when pickup is selected =
Make sure you have added pickup as shipping method on all shipping zone where you allow pickup. If a shipping zone has both in store pickup & local delivery, this plugin will automatically select delivery when order type is selected as delivery. Same way when a shipping zone has both the method, it will auto select pickup when order type is selected as pickup.  

= I have added pickup locations but not showing on checkout page/widget =
Please make sure you have check the checkbox labeled as "Enable multiple pickup location" on Location Settings page.

= I don't want to offer pickup location selection =
Just disable multiple pickup location feature by unchecking "Enable multiple pickup location" on Location Settings page then save the settings.

= Why time field is not showing up? =
Make sure you have checked the checkbox "Ask for time" on very first settings page of the plugin, the 4th option on latest version.

= Will this plugin works with WooCommerce version below 2.6 =
Yes this plugin will work on Woocommerce version 2.2.0 too, its tested already.

= Date time and order type not working on checkout page but working on other pages where widget is present =
Please make sure you do not have the order delivery time widget placed on checkout page through any sidebar or by calling dynamic widget.

= After recent update checkout page shows notice as "Order type is a required field" =
Make sure you have updated to version 2.1.2 at-least. Also check what order type is chosen in settings field, you need to choose one order type as Delivery/Pickup/Both.

== Screenshots ==
1. Pickup/Delivery date selection on widget

2. Pickup/Delivery time selection on widget

3. Front-end widget

4. Admin setting page

5. Delivery/pickup info with date time in admin order details page

6. Order details with order type, date and time on frontend customer profile.

7. Customer email copy with delivery type, date and time

8. Widget produced by this plugin.

9. date selection from allowable dates on checkout page

10. Time selection from allowable time range on checkout page

11. Time selection from allowable time range on checkout page with toggle button

12. Store closed notice if delivery/pickup service time is over in case of same day delivery

13. Showing minimum delivery time on widget if delivery is selected by customer

14. Delivery/pickup service weekly off days settings

15. Pickup location settings

== Change log ==

= 1.0.1.0 =
Added calendar and time drop-down on checkout field too on checkout page.

Synchronizing the widget date time field value while changing date time field value in checkout field on checkout page

= 1.0.1.5 =
Fixed: Warning: Cannot modify header information

(Reported by @charleshahn)

= 1.0.1.6 =
Fixed: Make automated shipping selection work on checkout page without having to have the widget

Fixed: Undefined variable php notice, while wp debug is on. 

= 1.0.2.0 =
Language support added

Settings provided for customization of heading, labels and texts.

= 1.0.2.1 =
Restricted of selection past time of the day in time drop-down on widget and checkout page

= 1.0.2.2 =
Header output warning fixed

= 1.0.3.0 =
Delivery time for other than current day bug fixed (reported by @jaysim)

structure updated

= 1.0.3.1 =
Calendar issue fixed in case of pre-order days settings field leaved as empty

Possible error for new/next year date selection has been fixed

= 1.0.3.2 =
Translator options added for Take Away and Delivery string.

Translator options added for select time and select date input box place holder texts.

Order meta fetch process updated as per WooCommerce 3.0  standard.

Bug fixing - widget activated on other pages (date, time was not working on checkout page).

= 1.0.3.3 =
Edge/IE browser support increased

ODT widget moved at top of checkout page

Optimized to work with old PHP version

ODT widget customized visually

Rectification of minor bugs on previous version those were reported by users of this plugin

= 1.0.3.4 =
Same date past time issue fixed for languages other than English

Translation files added for Spanish, Dutch, German, Portuguese, Danish and French

= 1.0.3.5 =
Same day delivery/pickup time issue fixed when service time is over (notice text added under time picker input)

Widget issue fixed (Select date first alert box was appearing in version 1.0.3.4 widget)

Automated shipping selection fixed(existing customers issue), previously existing customers need to change zip code again on checkout page to make automated shipping selection effected.

New time format added (previously there was only one variation of 24 hours format and appeared as hh:mm:ss, now new option added as 24 hours(without seconds) that will appear as hh:mm )

= 1.0.3.6 =
Deprecated hook "woocommerce_order_items_table" (applied from WooCommerce version 3.0.0) is now replaced with "woocommerce_order_details_after_order_table_items".   

Undefined index notice appear on some server - fixed it in this version.

= 1.0.3.7 =
i) Label text "(optional)" removed and marked as required for order type, delivery/pickup date and delivery/pickup time input fields on checkout page. This label texts were added for latest version of WooCommerce as 3.4.x and WP 4.9.x.

ii) [deliver_date] and [deliver_time] short code like phrase has been changed to [byc_delivery_date] and [byc_delivery_time] respectively as well as [pickup_date] and [pickup_time] is now as [byc_pickup_date] and [byc_pickup_time] respectively. Please check plugin settings page and update accordingly.

= 1.0.4.0 =
i) Date and time option is removed when all products in cart are as virtual product.

= 1.0.4.1 =
i) Same day delivery and pickup issue fixed for IE (Previously showing past times for the same day date in IE ).

= 1.0.4.2 =
i) Past time blocking when pre-order days is set in settings page(previously there was a glitch).

= 1.1.0 =
i) Order type label and input selection style updated. Previously styled label and radio input got similar style after WC updated to 3.6.2, so it looked like order type label is also an input choice! This version has updated structure to separate order type label from order type inputs for newer version of WC.

= 1.1.5 =
i) Security increased

ii) Now you can request support directly from your dashboard.

= 1.1.6 =
i) Security increased.

= 1.1.7 =
i) Warning fixed on support request form.

ii) Delivery/pickup time can be optional.

= 1.1.8 =

i) After updates of 1.1.7 when time is set as optional, if a order has no time selected, then it does not show ODT data at all, like order type, delivery/pickup date and time on order complete page, order details page at admin side and even in email for customer and admin. - It has been fixed now in version 1.1.8

ii) If time is set as optional in settings page, yet it was showing as required field on version 1.1.7, its fixed in version 1.1.8

iii)  Regardless of selected order type(delivery/pickup) on order confirmation/completed page on front end, order edit page in admin and on emails it show as delivery date, delivery time as label for date and time, its fixed in this version 1.1.8, where it show date label as "Delivery date: when order type is delivery and show date label as "Pickup date" when order type is as pickup, same is fixed for pickup type order as well.

= 1.1.9 =
1) Functionality added to accept order without asking for delivery/pickup time.
2) Short code added for collecting required date time before going to checkout page. Place the short code on any page/template, Short code is as "[ByConsole_WooODT]"

= 2.0.0 =
1) Order type can be delivery only or pickup only or both, options provided in plugin settings page
2) Time format added for 24 hrs with AM/PM

= 2.0.5 =
1) Weekly delivery off day(s) functionality added
1) Weekly pickup off day(s) functionality added

= 2.0.6 =
Bug fix for v2.0.5. weekly off days for pickup/delivery was swapped with weekly service on days, fixed int his version.

= 2.0.7 =
Minor bug fix, when available order type is changed in settings panel, it does not update holidays instantly according to available order type on front-end. Fixed in this v2.0.7

= 2.1.0 =
1) Pickup location added
2) Minor bug fix from v2.0.7, where date saved on other pages by widget/shortcode was not reflecting on checkout page automatically.

= 2.1.1 =
1) Bug fix for v2.1.0, where order type button on checkout page always get to set as delivery.

= 2.1.2 =
1) Default fall back functionality added for older version those who update the plugin but don't configure new settings fields added in updated version.

= 2.1.3(18/10/2019) =
Added default configuration upon activation of the plugin.

= 2.1.4(30/10/2019) =
Warning("Invalid argument supplied") fixed.

= 2.1.5(21/11/2019) =
Weekly off days glitch fixed, previously it was problemtic when only one day is marked as weekly off day.

== Upgrade Notice ==

= 1.01.4 =
1) Date picker and time drop-down added on checkout field too, so update to avoid manual/invalid date/time input on checkout page(Previously it was only on widget)  

2) Some text changed

= 1.0.1.5 =
Fixed: Warning: Cannot modify header information

= 1.0.1.6 =
Fixed: Make automated shipping selection work on checkout page without having to have the widget

= 1.0.2.0 =
1) Language support added

2) Settings provided for customization of heading, labels and texts.

= 1.0.2.1 =
Restricted of selection past time of the day in time drop-down on widget and checkout page

= 1.0.2.2 =
Header output warning fixed

= 1.0.3.0 =
1) Delivery time for other than current day bug fixed

2) structure updated

= 1.0.3.1 =
1) Calendar issue fixed in case of pre-order days settings field leaved as empty

2) Possible error for new/next year date selection has been fixed

= 1.0.3.2 =
1) Translator option added for Take Away and Delivery.

2) Translator options added for select time and select date input box place holder texts.

3) Order meta fetch process updated as per WooCommerce 3.0  standard.

4) Bug fixing - widget activated on other pages (date, time was not working on checkout page).

= 1.0.3.2 =
1) Edge/IE browser support increased

2) ODT widget moved at top of checkout page

3) Optimized to work with old PHP version

4) ODT widget visually customized

5) Rectification of minor bugs on previous version those were reported by users of this plugin

= 1.0.3.4 =
1) Same date past time issue fixed for languages other than English

2) Translation files added for Spanish, Dutch, German, Portuguese, Danish and French

= 1.0.3.5 =
1) Widget issue fixed (Select date first alert box was appearing in version 1.0.3.4 widget)

2) Automated shipping selection fixed(existing customers issue), previously existing customers need to change zip code again on checkout page to make automated shipping selection effected.

3) New time format added (previously there was only one variation of 24 hours format and appeared as hh:mm:ss, now new option added as 24 hours(without seconds) that will appear as hh:mm )

= 1.0.3.6 =
1) Deprecated hook "woocommerce_order_items_table" (applied from WooCommerce version 3.0.0) is now replaced with "woocommerce_order_details_after_order_table_items".   

2) Undefined index notice appear on some server - fixed it in this version.

= 1.0.3.7 =
i) Label text "(optional)" removed and marked as required for order type, delivery/pickup date and delivery/pickup time input fields on checkout page. This label texts were added for latest version of WooCommerce as 3.4.x and WP 4.9.x.

ii) [deliver_date] and [deliver_time] short code like phrase has been changed to [byc_delivery_date] and [byc_delivery_time] respectively as well as [pickup_date] and [pickup_time] is now as [byc_pickup_date] and [byc_pickup_time] respectively. Please check plugin settings page and update accordingly.

= 1.0.4.0 =
i) Date and time option is removed when all products in cart are as virtual product.

= 1.0.4.1 =
i) Same day delivery and pickup issue fixed for IE (Previously showing past times for the same day date in IE )

= 1.0.4.2 =
i) Past time blocking when pre-order days is set in settings page(previously there was a glitch).

= 1.1.0 =
i) Order type label and input selection style updated. Previously styled label and radio input got similar style after WC updated to 3.6.2, so it looked like order type label is also an input choice! This version has updated structure to separate order type label from order type inputs for newer version of WC.


= 1.1.5 =
i) Security increased

ii) Now you can request support directly from your dashboard.

= 1.1.6 =
i) Security increased.

= 1.1.7 =
i) Warning fixed on support request form.

ii) Delivery/pickup time can be optional.

iii) Time selection on checkout page is optional now.


= 1.1.8 =
i) After updates of 1.1.7 when time is set as optional, if a order has no time selected, then it does not show ODT data at all, like order type, delivery/pickup date and time on order complete page, order details page at admin side and even in email for customer and admin. - It has been fixed now in version 1.1.8

ii) If time is set as optional in settings page, yet it was showing as required field on version 1.1.7, its fixed in version 1.1.8

iii)  Regardless of selected order type(delivery/pickup) on order confirmation/completed page on front end, order edit page in admin and on emails it show as delivery date, delivery time as label for date and time, its fixed in this version 1.1.8, where it show date label as "Delivery date: when order type is delivery and show date label as "Pickup date" when order type is as pickup, same is fixed for pickup type order as well.

= 1.1.9 =
1) Functionality added to accept order without asking for delivery/pickup time.
2) Short code added for collecting required date time before going to checkout page. Place the short code on any page/template, Short code is as "[ByConsole_WooODT]"

= 2.0.0 =
1) Order type can be delivery only or pickup only or both, options provided in plugin settings page
2) Time format added for 24 hrs with AM/PM

= 2.0.5 =
1) Weekly delivery off day(s) functionality added
1) Weekly pickup off day(s) functionality added

= 2.0.6 =
Bug fix for v2.0.5. weekly off days for pickup/delivery was swapped with weekly service on days, fixed int his version.

= 2.0.7 =
Minor bug fix, when available order type is changed in settings panel, it does not update holidays instantly according to available order type on front-end. Fixed in this v2.0.7

= 2.1.0 =
1) Pickup location added
2) Minor bug fix from v2.0.7, where date saved on other pages by widget/shortcode was not reflecting on checkout page automatically.

= 2.1.1 =
1) Bug fix for v2.1.0, where order type button on checkout page always get to set as delivery. Fixed in this v2.1.1

= 2.1.2 =
1) Default fall back functionality added for older version those who update the plugin but don't configure new settings fields added in updated version.

= 2.1.3(18/10/2019) =
Added default configuration upon activation of the plugin.

= 2.1.4(30/10/2019) =
Warning("Invalid argument supplied") fixed.

= 2.1.5(21/11/2019) =
Weekly off days glitch fixed, previously it was problemtic when only one day is marked as weekly off day.


== Features ==
1. Control number of days allowed for an advance delivery booking 

2. Control delivery hours to choose 

3. Control pickup hours to choose 

4. Set minimum time to get deliver 

5. Allow customers to choose delivery or pickup of orders 

6. Automated shipping based on order type selection 

7. Control what texts to show on order details page with date and time

8. Control where & what texts to show for delivery/pickup info on order completed/details page. 

9. Control where and what texts to show for delivery/pickup date time on email 

10. Get delivery/pickup data on admin order details page 

11. Language supported through .po and .mo file

12. all texts, labels and headings are open to customize.

13. Settings to make delivery/pickup time as optional.

14. Make store as delivery only or pickup only or offer both service.

15. Short code to place any where, to collect date time before going to checkout page.

16. You can disable pickup based on days of the week, i.e: you can disable pickup on each Sunday & Saturday

17. You can disable delivery based on days of the week, i.e: you can disable delivery on each Thursday

18. For same day delivery when time is over it shows message as "We are closed for today, please select another date"