=== Easy Upload Files During Checkout ===
Contributors: fahadmahmood
Tags: attach files, upload files, during checkout process, checkout process, login
Requires at least: 3.0
Tested up to: 6.9
Stable tag: 3.0.2
Requires PHP: 7.0
License: GPL2
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Attach files during checkout process on cart page with ease.


== Description ==
* Author: [Fahad Mahmood](https://www.androidbubbles.com/contact)
* Project URI: <http://androidbubble.com/blog/wufdc>
* Multiple Attachments (For Advanced Users): <https://shop.androidbubbles.com/product/woocommerce-upload-files-checkout>
* Demo URI: <http://demo.androidbubble.com/product/furniture>
* License: GPL 3. See License below for copyright jots and tittles.

Attach files during checkout process with ease. Easy Upload Files During Checkout is a free plugin with a few premium features. It provides the facility of attaching files with orders during checkout. You can set display for uploading button on cart page, checkout page or checkout page after notes. For product pages, you will need premium version. Some check boxes on settings page to attach or detach billing/shipping details, order comments, secure file links and enable upload after login/register. You can also choose a checkbox to send attachments in email.
You can control allowed files types on settings page like doc,txt,jpeg,png in an input text field. You can set upload file required with toggle button and specify maximum upload size in Megabytes on settings page. Example is available there. It provides secure storage for your upload files/directories with Amazon, it's a new and premium feature. Setup your account on Amazon and get safe and secure storage for your important uploads. The premium version allows you to upload multiple files, change loading animation and display browse button on product page. It also provides an optional tab, with that tab you can select products which you want to whiteflag for upload files. By default, it is enabled for all products.

If you want new users to provide some required information (ID, resume etc.) you can enable new users to upload file(s) while registering even for the first time. On settings tab check the radio button "Registration Page" next to "Display on:" and browse button will appear on registration page. If you make upload field required, a warning message will appear that  file is not uploaded.

= Tags =
woocommerce, order, wpml

###Basic Features
* Display on cart on page (during checkout)
* Editable caption and success message
* Set image dimensions for uploading
* Define maximum upload size
* Specify allowed file types
* Upload single file (Only one file one)
* Make upload field required
* Define error message

###Advanced Features
* Shortcode + Compatibility with Hello Elementor WordPress Themes
* Display on product page
* Display on top of the checkout page
* Display on thank you page
* Display on order view page
* Upload files to directory with Amazon (Optional)
* File thumbnails/icons with filename
* Change loading animation

###Beta Features
* Display on registration page
* Upload multiple files during registration
* Make upload field required on registration page
* Define error message on registration page


= Basic Version Demo =
[youtube https://youtu.be/GrQxj3olZ9E]

= Premium Version Demo =
[youtube https://youtu.be/p1m3-HuxVt8]

= Variable Products Demo =
[youtube https://youtu.be/5uFQX7G7pn4]

= Using Hello Elementor WordPress Themes? =
[youtube https://youtu.be/JVYiwN7J7FQ]



== Screenshots ==
1. Quick Overview - Basic Version
2. Settings Page > Attachments display in emails is an optional feature. You can turn this OFF.
3. WooCommerce Order View > Attachments are displayed in metabox
4. Wrong filetype and size will turn the selected file red with appropriate warning message
5. Upload progress view in PRO version
6. Upload progress post view in PRO version
7. Wrong filetype and size will turn the selected file red with appropriate warning message in PRO version
8. Optional settings to restrict upload fields display to a few selected products
9. Setup Amazon account to save upload files on remote server with Amazon s3
10. Default and WooCommerce upload directory
11. S3 services in Amazon
12. S3 buckets / folders created automatically by plugin Easy Upload Files During Checkout
13. Synchronized directories and files by plugin Easy Upload Files During Checkout
14. Turn on / off file thumbnails / icons with filename
15. Attachments displaying in order email and order receipts as well
16. Quick Overview - Premium Version
17. Display browse button on registration page
18. A warning will appear if upload field is required and file is not uploaded
19. Salesforce compatibility and action hooks to get link of attachments after placing the order.
20. Easy Upload Files button on product page (Front-end).
21. Display attachments under product title.
22. Note/description for uploaded files.

== Installation ==
To use Easy Upload Files During Checkout, you will need:
* An installed and configured copy of [WordPress][](version 3.0 or later).
* FTP, SFTP or shell access to your web host

= New Installations =

Method-A:

1. Go to your wordpress admin "yoursite.com/wp-admin"

2. Login and then access "yoursite.com/wp-admin/plugin-install.php?tab=upload

3. Upload and activate this plugin

4- That's it, now see your dashboard and ask Easy Upload Files During Checkout anything

Method-B:

1.	Download the Easy Upload Files During Checkout installation package and extract the files on your computer. 
2.	Create a new directory named `Easy Upload Files During Checkout` in the `wp-content/plugins` directory of your WordPress installation. Use an FTP or SFTP client to upload the contents of your Easy Upload Files During Checkout archive to the new directory	that you just created on your web host.
3.	Log in to the WordPress Dashboard and activate the Easy Upload Files During Checkout plugin.
4.	Once the plugin is activated, Easy Upload Files During Checkout will be displayed on your dashboard.

[Quick Start]: <http://androidbubble.com/blog/wufdc>
[For Multiple Attachments]: <https://shop.androidbubbles.com/product/woocommerce-upload-files-checkout>

== Changelog ==
= 3.0.1 =
* Added proper user permission checks in critical functions to prevent unauthorized access. [Security report by Legion Hunter — coordinated disclosure via Patchstack] 05/02/2026
= 2.9.9 = 
* Fixed a stored XSS vulnerability related to uploaded file handling by adding stricter MIME/content validation, preventing direct script execution from wp-content/uploads, and enforcing safer file delivery. [Security report by Ahmad Salem — coordinated disclosure] 26/10/2025
* Improved admin performance by implementing AJAX-based batch loading for product selection in optional settings. 26/10/2025
= 2.9.7 =
* Fixed custom metaboxes compatibility with the latest WooCommerce updates. Attachments now appear correctly under the submit button on the order edit page. Further improvements in progress for email integration. 19/09/2025 [Thanks to Jürgen]
= 2.9.5 =
* Update query updated for the attachments and made its impact narrow on the thank you page. 30/10/2024 [Thanks to Gordon Hill]
= 2.9.4 =
* HTML entities related issue due to esc_html function resolved by using wp_kses_post. 17/01/2024 [Thanks to Manoj Pal]
= 2.9.3 =
* Shortcode related improvements and a new function wufdc_parameters_loaded() introduced. 11/10/2023 [Thanks to DI Marcel Fleisch]
* Warning: Undefined array key "HTTP_HOST", fixed. 19/10/2023 [Thanks to Gordon Hill]
= 2.9.2 =
* Shortcode enabled for the cart page as well. 08/06/2023 [Thanks to Gordon Hill]
= 2.9.1 =
* WooCommerce session related fix implemented. 07/06/2023 [Thanks to Caterina Tosati]
= 2.9.0 =
* Version updated for broken links. 31/05/2023
= 2.8.9 =
* Version updated for WordPress. 02/05/2023
= 2.8.8 =
* Implementation on cart page revised. 28/04/2022 [Thanks to kyleets] 
= 2.8.7 =
* Compatibility for Elementor theme using the shortcode. 08/04/2022 [Thanks to Pasquale - TAGIT adv] 
= 2.8.6 =
* Cart page file uploading improved. 06/04/2022 [Thanks to Michael Kaeflein] 
= 2.8.5 =
* Checkout page form submission refined. 22/03/2022 [Thanks to Sharon] 
= 2.8.4 =
* Product page uploading files and order page files display have been improved. 07/03/2022 [Thanks to Claire Dekens] 
= 2.8.3 =
* upload_max_filesize issue has been fixed. 26/02/2022 [Thanks to Claire Dekens] 
= 2.8.2 =
* An improved version with the shortcode possibility. 23/02/2022 [Thanks to Pete Winter] 
= 2.8.1 =
* An improved version with EPS filetype tested. 01/02/2022 [Thanks to sophiemayk] 
= 2.8.0 =
* An improved version with error display on unfiltered filetypes. 26/01/2022 [Thanks to sophiemayk] 
= 2.7.9 =
* Display Attachments Under Product Title refined. 13/11/2021 [Thanks to Claire Dekens / Fotoprinten op groot formaat]
= 2.7.8 =
* Some PHP notices are fixed. 13/11/2021
* Cart page related quantity update issue resolved. 16/11/2021 [Thanks to bitfireadmin]
= 2.7.7 =
* Required file check on checkout page. 27/10/2021
= 2.7.6 =
* Update IP based uniqueness. 15/10/2021
* Orphan files tab introduced. 21/10/2021 [Thanks to muneebkiani]
= 2.7.5 =
* A new version with wp_kses_post() updates. 15/09/2021
= 2.7.4 =
* A new version with wp_kses_post() updates. 14/09/2021
= 2.7.3 =
* A new version with ecs_html() updates. 14/09/2021
= 2.7.2 =
* A new version with ecs_html() updates. 13/09/2021
= 2.7.1 =
* A new version with ecs_html() updates. 11/09/2021
= 2.7.0 =
* A new version with updated verison of bootstrap and a few other improvements. 11/09/2021
= 2.6.9 =
* A new version without WooCommerce logo in the banner. 11/09/2021
= 2.6.8 =
* Handled a few PHP warnings and notices accordingly. 20/08/2021 [Thanks to avdbos]
= 2.6.7 =
* Filetype icons are revised for non-image filetypes. 19/05/2021 [Thanks to Guillaume Roosalem]
= 2.6.6 =
* Updated MySql query to remove an error. 15/05/2021 [Thanks to Mark Taylor]
= 2.6.5 =
* ORDER ID based file URL option refined. 03/05/2021 [Thanks to Guillaume Roosalem]
= 2.6.4 =
* ORDER ID based file URL option refined. 29/04/2021 [Thanks to Guillaume Roosalem]
= 2.6.3 =
* WC()->session related fix revised. 06/02/2021
= 2.6.2 =
* WC()->session related fix released. 05/02/2021 [Thanks to peachpay]
= 2.6.1 =
* Brazilian Portuguese translation added. 27/01/2021 [Thanks to Netart Lucas Nascimento]
= 2.6.0 =
* File type check on server side added as an option. 20/01/2021
= 2.5.9 =
* File type check on server side added optionally. [Thanks to Mark Taylor & Team Ibulb Work]
= 2.5.8 =
* Variable product uploaded items uniqueness ensured. [Thanks to Dimitri & Team AndroidBubbles]
= 2.5.7 =
* Custom page product shortcode compatibility and radio buttons changed to checkboxes for multi-selection on settings page. Netherlands language added. [Thanks to Dimitri & Rawinthiran]
* New option added under product title in cart tables to show filenames uploaded. [Thanks to Dimitri & Team Ibulb Work]
= 2.5.6 =
* Salesforce compatibility refined. [Thanks to Mark Taylor]
= 2.5.5 = 
* WooCommerce PayPal Checkout Gateway Plugin compatibility added. [Thanks to Pete Winter & Abu Usman]
= 2.5.4 = 
* File links instead of filename in email for attachments. [Thanks to Pete Winter]
= 2.5.3 = 
* AI filetype checked and a few improvements made. [Thanks to Jose]
* Assets updated. [Thanks to GP Themes Team]
= 2.5.2 =
* Update cart button will redirect back to cart page. [Thanks to Csapó Ádám]
* Action hook provided for post order placement scripts. [Thanks to Rawinthiran]
= 2.5.1 = 
* Description for uploaded files can be added optionally.
* Salesforce compatibility added. [Thanks to Mark Taylor]
= 2.5.0 = 
* Uploaded files immediate and correct reflection on the product page. [Thanks to GP Themes Team]
= 2.4.9 = 
* Enabled/Disabled functionality revised for product pages. [Thanks to José Joaquín González Haro]
= 2.4.8 = 
* Restriction functionality revised for product pages. [Thanks to GP Themes Team & andycannan]
= 2.4.7 = 
* Maximum upload files limit revised. [Thanks to GP Themes Team & Team Ibulb Work]
= 2.4.6 = 
* Upload success response updated with default HTML elements to avoid complete page load in response. [Thanks to Team Ibulb Work, @andycannan and @piximo01] 
= 2.4.5 = 
* Assets updated. [Thanks to GP Themes Team] 
= 2.4.4 = 
* Registration form, upload file functionality updated.
= 2.4.3 = 
* Registration form, upload file functionality. [Thanks to Amir Sheikhan]
= 2.4.2 = 
* Uploaded file path issue resolved. [Thanks to morphman & andycannan]
= 2.4.1 = 
* WPML related improvements performed. [Thanks to akelsy]
= 2.4.0 = 
* Settings link on plugins list page was bugging - Fixed. [Thanks to Gabriel Lazcorreta]
= 2.3.9 =
* Shop page add to cart was redirecting to the first product - Fixed.
= 2.3.8 =
* Only variables should be passed by reference - Fixed
= 2.3.7 =
* Tabs switching refined.
= 2.3.6 =
* Updated sanitization. [Thanks to WordPress Plugin Review Team]
= 2.3.5 =
* Checkout page, required items were being ignored on upload. Fixed. [Thanks to Manas Mitra]
= 2.3.4 =
* Product page, add to cart button was behaving odd, fixed. [Thanks to J.J. González Haro]
= 2.3.3 =
* Checkout page / top of the page (beta) feature added. [Thanks to Marco]
= 2.3.2 =
* Refined version for AWS backup functionality. [Thanks to Ibulb Work Team]
= 2.3.1 =
* Product page, add to cart button was behaving odd, fixed. [Thanks to J.J. González Haro]
= 2.3.0 =
* Product page was redirecting to cart page, fixed. [Thanks to J.J. González Haro]
= 2.2.9 =
* Product based maximum allowed and mandatory files option added. [Thanks to @acuasif]
= 2.2.8 =
* ORDER ID based links corrected in admin emails. [Thanks to @acuasif]
= 2.2.7 =
* Uploads directory path related user experience improved. [Thanks to @acuasif]
= 2.2.6 =
* Releasing another version for WPML Plugin "sitepress-multilingual-cms". [Thanks to J.J. González Haro]
= 2.2.5 =
* Refining checkout page refresh option. [Thanks to razie94]
= 2.2.4 =
* Beta methods added for upload field. [Thanks to GP Themes Team] 
= 2.2.3 =
* Fixed product page based restriction issue. [Thanks to J.J. González Haro]
= 2.2.2 =
* Improved image manipulation and settings page. [Thanks to Ibulb Work Team]
= 2.2.1 =
* Added image dimensions on edit product page as well. [Thanks to Ibulb Work Team]
* Added open form for other pages of WooCommerce as well. [Thanks to Amy Roseman]
= 2.2.0 =
* Updating assets. [Thanks to GP Themes Team]
= 2.1.9 =
* Page refresh is just an option now. Settings page improved as well. [Thanks to  Felipe Tao]
= 2.1.8 =
* Fatal error related global variable $product get fixed. [Thanks to Amy Roseman]
= 2.1.7 =
* eufdc_get_uploaded_temp_files related fatal error fixed. [Thanks to rvnd]
= 2.1.6 =
* Released an improved version for WPML Plugin "sitepress-multilingual-cms". [Thanks to J.J. González Haro]
= 2.1.5 =
* FAQs updated. [Thanks to GP Themes Team]
= 2.1.4 =
* Worked on WPML compatibility. [Thanks to J.J. González Haro]
= 2.1.3 =
* Added a new feature to turn filetype icons and image thumbnails ON. [Thanks to thealika]
= 2.1.2 =
* An important CSS fix made. [Thanks to Sergio Zapatero]
= 2.1.1 =
* Another PHP notice fixed.
= 2.1.0 =
* Translation strings revised. [Thanks to GP Themes Team]
= 2.0.9 =
* Improved translation strings. [Thanks to J.J. González Haro]
= 2.0.8 =
* Improved version with a few important checks. [Thanks to Joshua McFaul & Navid]
= 2.0.7 =
* Improved layout with bootstrap. [Thanks to Ibulb Work Team]
= 2.0.6 =
* With a few more improvements. [Thanks to Ibulb Work Team]
= 2.0.5 =
= 2.0.4 =
* Amazon connectivity and sync features added. [Thanks to Ibulb Work Team]
= 2.0.3 =
* Listing all items from current month bug has been fixed. [Thanks to Nico Franke]
= 2.0.2 =
* Undefined index notice fixed. [Thanks to Fahad Mahmood & Ibulb Work Team]
= 2.0.1 =
* A few tweaks on back-end. [Thanks to Rui Guerreiro]
= 2.0.0 =
* Extra order note has been wrapped with a condition. [Thanks to soothaa]
= 1.9.9 =
* Order ID based directory path related issue resolved.
= 1.9.8 =
* Order ID based directory creation and files uploading feature refined.
= 1.9.7 =
* Order ID based directory creation and files uploading to relevant order id directory. [Thanks to Rui Guerreiro]
= 1.9.6 =
* Product page, field required JS interval implemented for lazy pages. [Thanks to Rui Guerreiro]
= 1.9.5 =
* Fatal error fixed on request. [Thanks to Affordable Imprints, Diego Rodriguez and JASON VELÁZQUEZ]
= 1.9.4 =
* Simple and Variable product page positions selection refined on single product page. [Thanks to Sophie Kunterbunt]
= 1.9.3 =
* Custom error message and file required option improved on single product page. [Thanks to Diego Rodriguez]
= 1.9.2 =
* Savy function improved on single product page. [Thanks to Beata Galova]
= 1.9.1 =
* In premium version, red color premium image will get green. [Thanks to Beushin]
= 1.9.0 =
* Checkout page with page refresh option, CSS refined. [Thanks to Steve Penner]
= 1.8.9 =
* Download upload directory featured added in premium version. [Thanks to Ms. Rommel]
= 1.8.8 =
* Savy change event triggered on load. [Thanks to Katja Rommel]
= 1.8.7 =
* Product page hooks added on settings and improved redirections on front-end. [Thanks to Steve Penner]
= 1.8.6 =
* Languages reviewed. [Thanks to Rais Sufyan]
= 1.8.5 =
* Browse buttons display condition at once and one at a time, a new feature introduced. [Thanks to Brett Polakowski]
= 1.8.4 =
* Product page will not forget the selections on refresh now. [Thanks to Katja Rommel]
= 1.8.3 =
* Added a few checks on checkout page. [Thanks to Damon Henrichs]
= 1.8.2 =
* Added a few checks on eufdc initlize area. [Thanks to Katja Rommel]
= 1.8.1 =
* Added another condition for post_parent=0. [Thanks to WP Docs Plugin Team]
= 1.8.0 =
* Product page position changed. [Thanks to Ms. Rommel]
= 1.7.9 =
* German & French languages are added. [Thanks to Abu Usman]
= 1.7.8 =
* WooCommerce installed/activated check. [Thanks to Nick]
= 1.7.7 =
* Spanish translation added. [Thanks to J.J. González Haro]
= 1.7.6 =
* Product page reload feature revised.
= 1.7.5 =
* Synchronous XMLHttpRequest related patch added. [Thanks to J.J. González Haro]
= 1.7.4 =
* Settings page updated with upload_max_filesize and post_max_size. [Thanks to J.J. González Haro]
= 1.7.3 =
* Another PHP Warning has been fixed. [Thanks to pbatson]
= 1.7.2 =
* Another PHP Notice has been fixed. [Thanks to Stefano]
= 1.7.1 =
* Order ID related PHP snippet improved. [Thanks to Infocon]
= 1.7.0 =
* wc_get_cart_url and wc_get_checkout_url implemented with conditions. [Thanks to displaysales]
= 1.6.9 =
* wc_checkout_order_processed related script reviewed and improved. [Thanks to Mihail Tirdea]
= 1.6.8 =
* Cart page ajax reload revised. [Thanks to Dennis Schmelter]
= 1.6.7 =
* Single products can have dedicated attachments now. [Thanks to Jon Stanton]
= 1.6.6 =
* Single product, cart and checkout pages are tested again with required check. [Thanks to Matthias Collomp]
= 1.6.5 =
* Single product page hook updated. [Thanks to Jon Stanton]
= 1.6.4 =
* Proceed to checkout button hyperlink handled for file required check. [Thanks to Matthias Collomp]
= 1.6.3 =
* Added an additional check for single product page. [Thanks to Daniel Garcia]
= 1.6.2 =
* WooCommerce checkout page files uploading has been improved by handling useless errors. [Thanks to Katja Rommel]
= 1.6.1 =
* Single product can have upload file buttons without adding to cart, product should be selected from optional tab in settings first. [Thanks to Daniel Garcia]
= 1.6.0 =
* Added an additional option to restrict users to login/register prior file upload. [Thanks to Silvia Todorova]
= 1.5.9 =
* Added an additional form class to cover WooCommerce cart-form in recent version. [Thanks to Daniel Garcia]
= 1.5.8 =
* Introduced a secure way to access the uploaded files without revealing the path to the public users. [Thanks to thomassultana]
= 1.5.7 =
* Proceed to checkout button avoided on cart page in recent version. [Thanks to fancyaddict]
= 1.5.6 =
* A few HTML elements are revised and rechecked the uploaded files URL. [Thanks to Suzanne Jones]
= 1.5.5 =
* Upload directory is available with writable status and it's parent directories as well. [Thanks to Anthony Geraud]
= 1.5.4 =
* https related ABSPATH and home_url() issue fixed. [Thanks to Grahesh Parker]
= 1.5.3 =
* History pushstate related issue traced. [Thanks to Tor André Sandum]
= 1.5.2 =
* Excluded a-save-ignore class from jQuery savy script. [Thanks to Thomas Sultana]
= 1.5.1 =
* Optional settings are added with selection of products to restrict upload files. [Thanks to Daniel Garcia]
= 1.5.0 =
* Uploading images checkout page and unfiltered types area revised. [Thanks to Katja Rommel]
= 1.4.9 =
* WooCommerce product reviews submission related issue resolved. [Thanks to ash chop]
= 1.4.8 =
* WooCommerce session hook changed to wp for better results.
= 1.4.7 =
* Fatal error fixed related to get_cart(). [Thanks to Archie & Adolit]
= 1.4.6 =
* Fatal error fixed, updated plugin and used alternative instead of get_cart_contents_count(). [Thanks to Archie]
= 1.4.5 =
* Uploading images from product page. [Thanks to maazsharifkhan34]
* Loading animation image can be changed.
* And a few more important improvements.
= 1.4.3 =
* Uploading images checkout page, WooCommerce errors related issues fixed. [Thanks to Katja Rommel]
= 1.4.2 =
* Uploaded file path corrected with home_url() duplication. [Thanks to Giulio Soligo]
* Page refresh after each upload on checkout page added on settings page as an option. [Thanks Jeffrey Stilwell]
= 1.4.1 =
* Uploading images under notes not working, fixed. [Thanks to Katja Rommel]
* Automatically placing order after upload, fixed. [Thanks Jeffrey Stilwell]
= 1.4.0 =
* Improved the uploaded items list, will show nothing if not uploaded anything. [Thanks to Dekadinious]
= 1.3.9 =
* Uploading images without page refresh. [Thanks to Katja Rommel]
= 1.3.8 =
* Automatic updates for premium version added.
= 1.3.7 =
* Separate uploads directory feature added. [Thanks to Dennis Schmelter]
= 1.3.6 =
* Proceed to checkout button text issue resolved. [Thanks to Kim & Angel Domino Evers]
= 1.3.5 =
* Layout disturbance controlled. [Thanks to Mike]
= 1.3.4 =
* Plugin will not generate thumbnails for file type images.
* Multiple attachments in email with pending status of WooCommerce Orders. [Thanks to Dennis Schmelter]
= 1.3.3 =
* Uploading feature refined on checkout page.
= 1.3.2 =
* Upload feature refined on checkout page. [Thanks to Choy Jin Xiang]
= 1.3.1 =
* For password protected pages/posts, an exception has been added. [Thanks to MediaWorks]
= 1.3.0 =
* Image dimensions related improvements made. [Thanks to Dax Castro]
= 1.2.9 =
* Sanitized input and fixed direct file access issues.
= 1.2.8 =
* Required file error thing managed. [Thanks to x2keys]
= 1.2.7 =
* Redirect glitch has been sorted out. [Thanks to Geetar]
= 1.2.6 =
* Upload and proceed to checkout module refined. [Thanks to Dalan Decker]
= 1.2.5 =
* Upload and proceed to checkout module improved. [Thanks to Alexis Lassartre]
= 1.2.4 =
* Problem with error messages has been resolved. [Thanks to arikver]
= 1.2.3 =
* Braintree related payment processing compatibility added. [Thanks to Georg Winkler]
= 1.2.2 =
* For password protected pages, an exception has been added. [Thanks to Mark]
* Multiple attachments in email > problem has been fixed. [Thanks to Alex Hoogeboom]
= 1.2.1 =
* Checkout Page > After notes added. [Thanks to Andy Towler]
* Cart page > empty fields > redirect to checkout. [Thanks to Michael Quiles]
= 1.2.0 =
* HTML elements can be used in caption and error boxes. [Thanks to Sam Strayer]
= 1.1.9 =
* Plugin is now translatable.
= 1.1.8 =
* Session removed from init. [Thanks to Brandon D]
= 1.1.7 =
* Uploaded files are visible in customer order receipt email. [Thanks to Peter Outshoorn] 
= 1.1.6 =
* Uploaded files are visible in my account > orders and order confirmation page. [Thanks to alexander77] 
= 1.1.5 =
* Attachment path issue resolved. [Thanks to Tim Burgess]
= 1.1.4 =
* Shipping and billing details can be optionally disabled in WooCommerce checkout process.
= 1.1.3 =
* Plugin is available in other languages too. Initially offered in Brazilian Portuguese. [Thanks to Anderson Gomes]
= 1.1.2 =
* An important conditional tweak. [Thanks to leonbax & ladyinc3]
= 1.0.9 =
* Cart and Checkout pages validation refined again.
= 1.0.8 =
* Cart and Checkout pages validation refined. [Thanks to Daniel Mesteru]
= 1.0.7 =
* Enque style and script related fix. [Thanks to thaikolja]
= 1.0.6 =
* An important update. [Thanks to Luan Cuba]
= 1.0.5 =
* An important update. [Thanks to Thomas LEFEVRE]
= 1.0.4 =
* An important update. [Thanks to Dave Jones]
= 1.0.3 =
* An important update.
= 1.0.2 =
* An important update.
= 1.0.1 =
* An important update.

== Upgrade Notice ==
= 3.0.1 =
Added proper user permission checks in critical functions to prevent unauthorized access.
= 2.9.9 =
This release includes a critical security fix for a stored XSS vulnerability in file uploads (reported responsibly by Ahmad Salem) and introduces improved AJAX-based product loading for better admin performance. All users are strongly advised to update immediately.
= 2.9.7 =
Fixed custom metaboxes compatibility with the latest WooCommerce updates. Attachments now appear correctly under the submit button on the order edit page.
= 2.9.5 =
Update query updated for the attachments and made its impact narrow on the thank you page.
= 2.9.4 =
HTML entities related issue due to esc_html function resolved.
= 2.9.3 =
Shortcode related improvements.
= 2.9.2 =
Shortcode enabled for the cart page as well.
= 2.9.1 =
WooCommerce session related fix implemented.
= 2.9.0 =
Version updated for broken links.
= 2.8.9 =
Version updated for WordPress.
= 2.8.8 =
Implementation on cart page revised.
= 2.8.7 =
Compatibility for Elementor theme using the shortcode.
= 2.8.6 =
Cart page file uploading improved.
= 2.8.5 =
Checkout page form submission refined.
= 2.8.4 =
Product page uploading files and order page files display have been improved.
= 2.8.3 =
upload_max_filesize issue has been fixed.
= 2.8.2 =
An improved version with the shortcode possibility.
= 2.8.1 =
An improved version with EPS filetype tested.
= 2.8.0 =
An improved version with error display on unfiltered filetypes.
= 2.7.9 =
Display Attachments Under Product Title refined.
= 2.7.8 =
Some PHP notices are fixed.
= 2.7.7 =
Required file check on checkout page.
= 2.7.6 =
Update IP based uniqueness.
= 2.7.5 =
A new version with wp_kses_post() updates.
= 2.7.4 =
A new version with wp_kses_post() updates.
= 2.7.3 =
A new version with ecs_html() updates.
= 2.7.2 =
A new version with ecs_html() updates.
= 2.7.1 =
A new version with ecs_html() updates.
= 2.7.0 =
A new version with updated verison of bootstrap and a few other improvements.
= 2.6.9 =
A new version without WooCommerce logo in the banner.
= 2.6.8 =
Handled a few PHP warnings and notices accordingly.
= 2.6.7 =
Filetype icons are revised for non-image filetypes.
= 2.6.6 =
Updated MySql query to remove an error.
= 2.6.5 =
ORDER ID based file URL option refined.
= 2.6.4 =
ORDER ID based file URL option refined.
= 2.6.3 =
WC()->session related fix revised.
= 2.6.2 =
WC()->session related fix released.
= 2.6.1 =
Brazilian Portuguese translation added.
= 2.6.0 =
File type check on server side added as an option.
= 2.5.9 =
File type check on server side added optionally.
= 2.5.8 =
Variable product uploaded items uniqueness ensured.
= 2.5.7 =
Custom page product shortcode compatibility and radio buttons changed to checkboxes for multi-selection on settings page.
= 2.5.6 =
Salesforce compatibility refined.
= 2.5.5 = 
WooCommerce PayPal Checkout Gateway Plugin compatibility added.
= 2.5.4 = 
File links instead of filename in email for attachments.
= 2.5.3 = 
Assets updated.
= 2.5.2 =
Update cart button will redirect back to cart page.
= 2.5.1 = 
Description for uploaded files can be added optionally.
= 2.5.0 = 
Uploaded files immediate and correct reflection on the product page.
= 2.4.9 = 
Enabled/Disabled functionality revised for product pages.
= 2.4.8 = 
Restriction functionality revised for product pages.
= 2.4.7 = 
Maximum upload files limit revised.
= 2.4.6 = 
Upload success response updated with default HTML elements to avoid complete page load in response.
= 2.4.5 = 
Assets updated.
= 2.4.4 = 
Registration form, upload file functionality updated.
= 2.4.3 = 
Registration form, upload file functionality.
= 2.4.2 = 
Uploaded file path issue resolved.
= 2.4.1 = 
WPML related improvements performed.
= 2.4.0 = 
Settings link on plugins list page was bugging - Fixed.
= 2.3.9 =
Shop page add to cart was redirecting to the first product - Fixed.
= 2.3.8 =
Only variables should be passed by reference.
= 2.3.7 =
Tabs switching refined.
= 2.3.6 =
Updated sanitization.
= 2.3.5 =
Checkout page, required items were being ignored on upload. Fixed.
= 2.3.4 =
Product page, add to cart button was behaving odd, fixed.
= 2.3.3 =
Checkout page / top of the page (beta) feature added.
= 2.3.2 =
Refined version for AWS backup functionality.
= 2.3.1 =
Product page, add to cart button was behaving odd, fixed.
= 2.3.0 =
Product page was redirecting to cart page, fixed.
= 2.2.9 =
Product based maximum allowed and mandatory files option added.
= 2.2.8 =
ORDER ID based links corrected in admin emails.
= 2.2.7 =
Uploads directory path related user experience improved.
= 2.2.6 =
Releasing another version for WPML Plugin "sitepress-multilingual-cms".
= 2.2.5 =
Refining checkout page refresh option.
= 2.2.4 =
Beta methods added for upload field.
= 2.2.3 =
Fixed product page based restriction issue.
= 2.2.2 =
Improved image manipulation and settings page.
= 2.2.1 =
Added image dimensions on edit product page as well.
= 2.2.0 =
Updating assets.
= 2.1.9 =
Page refresh is just an option now. Settings page improved as well.
= 2.1.8 =
Fatal error related global variable $product get fixed.
= 2.1.7 =
eufdc_get_uploaded_temp_files related fatal error fixed.
= 2.1.6 =
Released an improved version for WPML Plugin "sitepress-multilingual-cms".
= 2.1.5 =
FAQs updated.
= 2.1.4 =
Worked on WPML compatibility.
= 2.1.3 =
Added a new feature to turn filetype icons and image thumbnails ON.
= 2.1.2 =
An important CSS fix made.
= 2.1.1 =
Another PHP notice fixed.
= 2.1.0 =
Translation strings revised.
= 2.0.9 =
Improved translation strings.
= 2.0.8 =
Improved version with a few important checks.
= 2.0.7 =
Improved layout with bootstrap.
= 2.0.6 =
With a few more improvements. 
= 2.0.5 =
= 2.0.4 =
Amazon connectivity and sync features added.
= 2.0.3 =
Listing all items from current month bug has been fixed.
= 2.0.2 =
Undefined index notice fixed.
= 2.0.1 =
A few tweaks on back-end.
= 2.0.0 =
Extra order note has been wrapped with a condition.
= 1.9.9 =
Order ID based directory path related issue resolved.
= 1.9.8 =
Order ID based directory creation and files uploading feature refined.
= 1.9.7 =
Order ID based directory creation and files uploading to relevant order id directory.
= 1.9.6 =
Product page, field required JS interval implemented for lazy pages.
= 1.9.5 =
Fatal error fixed on request
= 1.9.4 =
Simple and Variable product page positions selection refined on single product page.
= 1.9.3 =
Custom error message and file required option improved on single product page.
= 1.9.2 =
Savy function improved on single product page.
= 1.9.1 =
In premium version, red color premium image will get green.
= 1.9.0 =
Checkout page with page refresh option, CSS refined.
= 1.8.9 =
Download upload directory featured added in premium version.
= 1.8.8 =
Savy change event triggered on load.
= 1.8.7 =
Product page hooks added on settings and improved redirections on front-end.
= 1.8.6 =
Languages reviewed.
= 1.8.5 =
Browse buttons display condition at once and one at a time, a new feature introduced.
= 1.8.4 =
Product page will not forget the selections on refresh now.
= 1.8.3 =
Added a few checks on checkout page.
= 1.8.2 =
* Added a few checks on eufdc initlize area.
= 1.8.1 =
Added another condition for post_parent=0.
= 1.8.0 =
Product page position changed.
= 1.7.9 =
German & French languages are added.
= 1.7.8 =
WooCommerce installed/activated check.
= 1.7.7 =
Spanish translation added.
= 1.7.6 =
Product page reload feature revised.
= 1.7.5 =
Synchronous XMLHttpRequest related patch added.
= 1.7.4 =
Settings page updated with upload_max_filesize and post_max_size.
= 1.7.3 =
Another PHP Warning has been fixed.
= 1.7.2 =
Another PHP Notice has been fixed.
= 1.7.1 =
Order ID related PHP snippet improved.
= 1.7.0 =
wc_get_cart_url and wc_get_checkout_url implemented with conditions.
= 1.6.9 =
wc_checkout_order_processed related script reviewed and improved.
= 1.6.8 =
Cart page ajax reload revised.
= 1.6.7 =
Single products can have dedicated attachments now.
= 1.6.6 =
Single product, cart and checkout pages are tested again with required check.
= 1.6.5 =
Single product page hook updated.
= 1.6.4 =
Proceed to checkout button hyperlink handled for file required check.
= 1.6.3 =
Added an additional check for single product page.
= 1.6.2 =
WooCommerce checkout page files uploading has been improved by handling useless errors.
= 1.6.1 =
Single product can have upload file buttons without adding to cart, product should be selected from optional tab in settings first.
= 1.6.0 =
Added an additional option to restrict users to login/register prior file upload.
= 1.5.9 =
Added an additional form class to cover WooCommerce cart-form in recent version.
= 1.5.8 =
Introduced a secure way to access the uploaded files without revealing the path to the public users.
= 1.5.7 =
Proceed to checkout button avoided on cart page in recent version.
= 1.5.6 =
A few HTML elements are revised and rechecked the uploaded files URL.
= 1.5.5 =
Upload directory is available with writable status and it's parent directories as well.
= 1.5.4 =
https related ABSPATH and home_url() issue fixed.
= 1.5.3 =
History pushstate related issue traced.
= 1.5.2 =
Excluded a-save-ignore class from jQuery savy script.
= 1.5.1 =
Optional settings are added with selection of products to restrict upload files.
= 1.5.0 =
Uploading images checkout page and unfiltered types area revised.
= 1.4.9 =
WooCommerce product reviews submission related issue resolved.
= 1.4.8 =
WooCommerce session hook changed to wp for better results.
= 1.4.7 =
Fatal error fixed related to get_cart().
= 1.4.6 =
Fatal error fixed, updated plugin and used alternative instead of get_cart_contents_count().
= 1.4.5 =
A few important improvements.
= 1.4.3 =
Uploading images checkout page, WooCommerce errors related issues fixed.
= 1.4.2 =
A couple of important updates.
= 1.4.1 =
Uploading images under notes not working, and automatically placing order after upload, fixed.
= 1.4.0 =
Improved the uploaded items list, will show nothing if not uploaded anything.
= 1.3.9 =
Uploading images without page refresh.
= 1.3.8 =
Automatic updates for premium version added.
= 1.3.7 =
Separate uploads directory feature added.
= 1.3.6 =
Proceed to checkout button text issue resolved.
= 1.3.5 =
Layout disturbance controlled.
= 1.3.4 =
Plugin will not generate thumbnails for file type images and multiple attachments in email with pending status of WooCommerce Orders.
= 1.3.3 =
Uploading feature refined on checkout page.
= 1.3.2 =
Upload feature refined on checkout page.
= 1.3.1 =
For password protected pages/posts, an exception has been added.
= 1.3.0 =
Image dimensions related improvements made.
= 1.2.9 =
Sanitized input and fixed direct file access issues.
= 1.2.8 =
Required file error thing managed.
= 1.2.7 =
A few important updates.
= 1.2.4 =
Problem with error messages has been resolved.
= 1.2.3 =
Important updates.
= 1.2.2 =
A few important updates.
= 1.2.1 =
Checkout Page > After notes added.
= 1.2.0 =
HTML elements can be used in caption and error boxes.
= 1.1.9 =
Plugin is now translatable.
= 1.1.8 =
Session removed from init.
= 1.1.7 =
Uploaded files are visible in customer order receipt email.
= 1.1.6 =
Uploaded files are visible in my account > orders and order confirmation page.
= 1.1.5 =
Attachment path issue resolved.
= 1.1.4 =
Shipping and billing details can be optionally disabled in WooCommerce checkout process.
= 1.1.3 =
Plugin is available in other languages too. Initially offered in Brazilian Portuguese.
= 1.1.2 =
An important conditional tweak.
= 1.0.9 =
Cart and Checkout pages validation refined again.
= 1.0.8 =
Cart and Checkout pages validation refined.
= 1.0.7 =
Enque style and script related fix.
= 1.0.6 =
An important update.
= 1.0.5 =
An important update.
= 1.0.4 =
An important update.
= 1.0.3 =
An important update.
= 1.0.2 =
An important update.
= 1.0.1 =
An important update.

= Upgrades =

To *upgrade* an existing installation of Easy Upload Files During Checkout to the most recent release:
1.	Download the Easy Upload Files During Checkout installation package and extract the files on your computer. 
2.	Upload the new PHP files to `wp-content/plugins/wufdc`,	overwriting any existing Easy Upload Files During Checkout files that are there.
3.	Log in to your WordPress administrative interface immediately in order to see whether there are any further tasks that you need to perform to complete the upgrade.
4.	Enjoy your newer and hotter installation of Easy Upload Files During Checkout

[Easy Upload Files During Checkout project homepage]: <https://www.androidbubbles.com/extends/wordpress/plugins>

== Frequently Asked Questions ==


= What are the orphan files? And how does this plugin handles orphan files? =

What happens if a customer doesn't complete the order but he has uploaded the file? Does that file gets deleted automatically?

These files are not deleted automatically. There is a tab named "Orphan Files" which will show all the orphan files either actually exist or recorded in database only and removed from the server. Select "Fetch Statistics" and click scan button to load statistics. Select "Fetch Orphan Files" and click "Scan the Database" button to load all orphan files. You can delete all orphan files in this tab, if you want.

[youtube https://www.youtube.com/watch?v=RW2r-4MvIpk]

= How it works on registration page? =
[youtube http://www.youtube.com/watch?v=P1GT3LabSEg]

= How to install on MAC? =

How to install WordPress and WooCommerce Addon Easy Upload Files During Checkout using virtual machine having ubuntu on MAC:

[youtube http://www.youtube.com/watch?v=_H3i69PX7uQ]

= Is this compatible with all WordPress themes? =

Yes, it is compatible with all WordPress themes which are developed according to the WordPress theme development standards. 

= How can i report an issue to the plugin author? =

It's better to post on support forum but if you need it be fixed on urgent basis then you can reach me through my blog too. You can find my blog link above.

= What are the basic or free features offered? =

In basic version you can upload one file, restrict file-type, set error message and caption text, disable or enable extra fields on checkout page. You can display upload field on cart page and checkout page.

= What are the exenteded or premium features offered? =

Premium features are those in which you might will need some customizations and it would require my input in term of time and cost. Like, a number of loading animations are provided so you can match them with your WordPress theme or choice. You can allow uploading multiple files. Upload directory can be changed over and over again without any conflict with the previous directory path. 

You can display upload fields on Product page as well. Obviously this feature will involve more complexity and reporting details, that's why it's a premium feature. 

You can restrict the image file dimensions as well, it's another complex area and you can have some different request as another improvement.

= May i restrict the upload files to a few selected products only? =

Yes. By default all products will have upload fields but if you will select any checkbox so it will be restricted to the allowed/checked products only. Don't forget that upload field will only work when a user will select a product for cart. It means, it only consider the items which are added to cart. Quantity doesn't matter though.

There are three pages which can have upload file display. 
1) Single Product Page
2) Cart Page
3) Checkout Page

Condition: If a product is in the cart so because of that product permission status, upload fields will be displayed or simply do not select any checkbox and it will work for all. 

Above all, i am always open to your suggestions. Either you use FREE or PREMIUM version, whoever suggest me a feature so i acknowledge the name in changelog with thanks. This plugin reached at this level with all of your help and suggestions.

= How Amazon S3 backup feature work? =
Amazon S3. This feature is recently added as a beta version, basically premium features are related to multiple files and product page based upload. So Amazon related feature might will evolve in upcoming versions as we will use it in more scenarios. Your feedback would be appreciated.

= How to upload files in a separate directory? =
[youtube https://www.youtube.com/watch?v=Q_S1FwCIvOg]

= How to customize upload sequence of files? =
[youtube https://www.youtube.com/watch?v=Ct6Wwn_sTLk]

= How to upload files in order ID based directories? =
[youtube https://www.youtube.com/watch?v=Z2Vxug5EM0Q]

= Can i upload files for appointment calendar or for any other plugin? =
[youtube https://youtu.be/I-TX7rr8JQQ]

= How does it work with WooCommerce PayPal Checkout Gateway Plugin? =
It detects if WooCommerce is active and also you chose checkout page for uploading files button. It also detects if WooCommerce PayPal Checkout Gateway plugin is active and the related radio button is checked? When all conditions are meeting, only then it warns you before checkout if upload file is required and nothing uploaded yet. It is a user-friendly feature added on 19th December 2020.

== License ==
This WordPress Plugin is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or any later version. This free software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this software. If not, see http://www.gnu.org/licenses/gpl-2.0.html.