Title: Checkout Files Upload for WooCommerce
Author: WP Wham
Published: <strong>6 September 2016</strong>
Last modified: 1 September 2026

---

Search plugins

![](https://ps.w.org/checkout-files-upload-woocommerce/assets/banner-772x250.jpg?
rev=1889976)

![](https://ps.w.org/checkout-files-upload-woocommerce/assets/icon-256x256.jpg?rev
=1490905)

# Checkout Files Upload for WooCommerce

 By [WP Wham](https://profiles.wordpress.org/wpwham/)

[Download](https://downloads.wordpress.org/plugin/checkout-files-upload-woocommerce.2.3.0.zip)

 * [Details](https://en-gb.wordpress.org/plugins/checkout-files-upload-woocommerce/#description)
 * [Reviews](https://en-gb.wordpress.org/plugins/checkout-files-upload-woocommerce/#reviews)
 *  [Installation](https://en-gb.wordpress.org/plugins/checkout-files-upload-woocommerce/#installation)
 * [Development](https://en-gb.wordpress.org/plugins/checkout-files-upload-woocommerce/#developers)

 [Support](https://wordpress.org/support/plugin/checkout-files-upload-woocommerce/)

## Description

Checkout Files Upload for WooCommerce plugin lets your customers upload files on(
or after) WooCommerce checkout.

#### Features

Set field’s **position** on WooCommerce checkout page:

 * Before checkout form.
 * After checkout form.
 * Do not add on checkout.

Set if file upload **is required**.

If you need files to be uploaded after order is created, you can optionally add 
field to:

 * WooCommerce **Thank You** (i.e. **Order Received**) page.
 * WooCommerce **My Account** page.

Add custom **label** to the field.

Set **accepted file types**.

Set custom Upload and Remove **button labels**.

Set **custom messages**:

 * “Wrong file type”.
 * “Wrong image dimensions” and “Couldn’t get image dimensions”.
 * “File is required”.
 * “File was successfully uploaded”.
 * “No file selected”.
 * “File was successfully removed”.

Optionally set field to show up only if in cart there are selected:

 * **Products**.
 * **Product categories**.
 * **Product tags**.

Add uploaded files to admin and customers **emails**.

Send **additional emails** if user uploads or removes files on “Thank You” or “My
Account” pages.

**Customize** the frontend files upload form.

Optionally enable **AJAX form** for file uploads.

Set **max file size** option.

Optionally **validate image dimensions**.

#### Feedback

 * We are open to your suggestions and feedback. Thank you for using or trying out
   one of our plugins!
 * Drop us a line at [www.wpwham.com](https://wpwham.com).

#### More

 * Visit the [Checkout Files Upload for WooCommerce plugin page](https://wpwham.com/products/checkout-files-upload-for-woocommerce/).

## Installation

 1. Upload the entire plugin folder to the `/wp-content/plugins/` directory.
 2. Activate the plugin through the “Plugins” menu in WordPress.
 3. Start by visiting plugin settings at “WooCommerce > Settings > Checkout Files Upload”.

## Reviews

![](https://secure.gravatar.com/avatar/ed6f9fbf6670b3c88288b505e60c404b1d6c677cb10f1bbc3b0c1b2708c85485?
s=60&d=retro&r=g)

### 󠀁[upload One image Only!](https://wordpress.org/support/topic/upload-one-image-only/)󠁿

 [neocopia](https://profiles.wordpress.org/neocopia/) 2 July 2025 1 reply

Sure the free version works for One image upload Only! Then you have to buy the 
Por version. Easy enough to use, could do with some better options within the layout

![](https://secure.gravatar.com/avatar/3535ea26c7685d84aa11091199dddf2d3208bb26a7bdb63e14bb56f402a18cd3?
s=60&d=retro&r=g)

### 󠀁[Ok but doesnt work properly with Divi](https://wordpress.org/support/topic/not-compatible-with-divi-8/)󠁿

 [rafaelzrt](https://profiles.wordpress.org/rafaelzrt/) 29 January 2025 1 reply

Simple to configure. Doesn't have a good support to Divi, it needs some custom adjustments
to work with Divi Woocommerce Modules.

![](https://secure.gravatar.com/avatar/4b1faff957eb4e4f18aaa777758a1bc5a24976325ffbfbc97bcc6ee06e7366c3?
s=60&d=retro&r=g)

### 󠀁[Awful customer support](https://wordpress.org/support/topic/awful-customer-support-3/)󠁿

 [varange](https://profiles.wordpress.org/varange/) 4 January 2024 4 replies

They still haven't updated this plugin to be HPOS compatible, although it is a simple
thing to do. Asking them to do anything, even in exchange for payment, is futile.
I think at this stage that I'll get my own plugin programmed if they don't update
within the next month. Shame on you!

![](https://secure.gravatar.com/avatar/019eda3d5f4fa7949879cc0b376b8b4557f081dad28825e04ce31b8e0621592f?
s=60&d=retro&r=g)

### 󠀁[Exactly What I Needed!](https://wordpress.org/support/topic/exactly-what-i-needed-907/)󠁿

 [diamondartdotlove](https://profiles.wordpress.org/diamondartdotlove/) 10 May 2023
1 reply

This plugin was ridiculously east to install and setup, and it is exactly what I
was looking for – a file upload for a custom product at checkout. And the Free version
is fully functional! WOOT!

![](https://secure.gravatar.com/avatar/980661a7dc98b29bf4934e0ff1baa16b3abcca87517b40567a1a11d905dd774c?
s=60&d=retro&r=g)

### 󠀁[Works, just as expected!](https://wordpress.org/support/topic/works-just-as-expected-10/)󠁿

 [ositaka](https://profiles.wordpress.org/ositaka/) 28 April 2021 1 reply

This plugin it might be very helpful if, for some reason, you have to let customers
upload files during the checkout.

![](https://secure.gravatar.com/avatar/caca1f1a00bf5ef207ec0f2c1eb63728b5b7eeaba303a1a71873f8bc44c4c240?
s=60&d=retro&r=g)

### 󠀁[This is the BEST plugin of its kind on the market, hands down](https://wordpress.org/support/topic/this-is-the-best-plugin-of-its-kind-on-the-market-hands-down/)󠁿

 [renisauria](https://profiles.wordpress.org/renisauria/) 1 April 2021 1 reply

The free version of this plugin is just brilliant! The UI is very easy to understand,
making it pretty straightforward to configure. We needed to have an upload field
on the Checkout so customers could attach a PDF file. The file can be included as
an actual email attachment, and not just a link. It also has the ability to include
the upload field conditionally, meaning you can link it to a specific product on
the backend, and it will just show if that product is in cart. I have tested multiple
checkout upload plugins over the last few months. This is HANDS DOWN the BEST plugin
of its kind on the market.

 [ Read all 14 reviews ](https://wordpress.org/support/plugin/checkout-files-upload-woocommerce/reviews/)

## Contributors and Developers

“Checkout Files Upload for WooCommerce” is open source software. The following people
have contributed to this plugin.

Contributors

 *   [ WP Wham ](https://profiles.wordpress.org/wpwham/)

[Translate “Checkout Files Upload for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/checkout-files-upload-woocommerce)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/checkout-files-upload-woocommerce/),
check out the [SVN repository](https://plugins.svn.wordpress.org/checkout-files-upload-woocommerce/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/checkout-files-upload-woocommerce/)
by [RSS](https://plugins.trac.wordpress.org/log/checkout-files-upload-woocommerce/?limit=100&mode=stop_on_copy&format=rss).

## Change Log

#### 2.3.0 – 2024-08-28

 * NEW: add setting “Allow delete” (allows users with access to WooCommerce/Orders
   to delete files from orders — previously this was always true).
 * FIX: prevent upload progress bars from having duplicate IDs (minor UI glitch).
 * FIX: potential bug when deleting pending checkout uploads (thanks to Tobias —#
   110420).
 * UPDATE: updated .pot file for translations.

#### 2.2.6 – 2026-05-15

 * FIX: recent Woocommerce changes breaking HPOS compatibility mode.

#### 2.2.5 – 2026-05-06

 * FIX: error when “Max file size” setting is empty on PHP 8 (#107736).
 * FIX: add capability check.

#### 2.2.4 – 2026-03-10

 * FIX: preventing multiple uploaders from appearing (#106708).
 * FIX: potential conflict with Divi theme (#106397).

#### 2.2.3 – 2026-02-18

 * FIX: PHP notice.

#### 2.2.2 – 2025-05-31

 * FIX: add filter ‘wpwham_checkout_files_upload_validate_file_type’.

#### 2.2.1 – 2025-04-24

 * FIX: “file required” not working if uploader placed outside of main checkout 
   form via shortcode (#89416).
 * FIX: PHP notice.
 * FIX: escape text in translation shortcodes.

#### 2.2.0 – 2024-08-28

 * NEW: add shortcode ‘wpwham_checkout_files_uploader’.
 * FIX: issue with uploads sometimes not being processed.
 * FIX: issue with metabox not displaying on admin Order page when “HPOS” enabled.

#### 2.1.5 – 2023-07-13

 * FIX: PHP 8.2 notices.

#### 2.1.4 – 2022-06-02

 * FIX: add nonce checks to AJAX actions.
 * UPDATE: updated .pot file for translations.

#### 2.1.3 – 2022-05-10

 * FIX: escape filenames on order confirmation/thank you pages.

#### 2.1.2 – 2021-12-23

 * FIX: minor display bug in settings due to WooCommerce update.

#### 2.1.1 – 2021-09-16

 * UPDATE: PHP 8 now officially supported.
 * UPDATE: updated .pot file for translations.

#### 2.1.0 – 2021-04-15

 * NEW: added more options to “validate image dimensions” setting: “greater than
   or equal”, and “less than or equal”.
 * NEW: added button to delete file attachments on admin “edit order” page. (If 
   you don’t want the ability to delete files, you can use the filter `wpwham_checkout_files_upload_allow_admin_delete_files`
   to disable it).
 * FIX: check if server’s temporary directory is writeable. If not, display an error
   message. (Solves an issue with 0-byte files being uploaded).
 * FIX: bug where sometimes 0-byte files were attached to order emails.
 * UPDATE: for text labels/notices, made it possible for a translated string to 
   take precedence over stored settings. (Previously it was the other way around.
   This should now make things easier if you use a translation plugin like LocoTranslate,
   Polylang, etc).
 * UPDATE: performance improvement — load our admin assets only when needed.
 * UPDATE: updated .pot file for translations.

#### 2.0.4 – 2021-01-12

 * FIX: clean output buffer before downloads (solves conflict with some 3rd-party
   plugins which interfere with the output buffer, causing downloads to appear as
   empty or corrupt).

#### 2.0.3 – 2020-09-17

 * UPDATE: display our settings in WC status report.

#### 2.0.2 – 2020-08-21

 * FIX: upload button translation issue (removed old label settings, added new ones).
 * UPDATE: updated .pot file for translations.

#### 2.0.1 – 2020-06-17

 * FIX: issue with upload button not working in certain themes.
 * FIX: user permissions issue incorrectly preventing downloading of images from
   the WP admin side.
 * FIX: JS typo.

#### 2.0.0 – 2020-06-11

 * NEW: **Breaking Change** the `Form (simple)` template has been removed, and `
   Form (AJAX)` is now the standard template. `Form (AJAX)` has been the default
   since v1.4.0 (2018-08-25), so for most people this change will have no effect.
   However, if you were using `Form (simple)`, or if you had customized either template,
   please double check your settings to make sure things look correct. Or, you can
   reset the settings to get a fresh start.
 * NEW: **Breaking Change** in template settings, the variable `%field_html%` which
   previously contained BOTH the field html AND the upload button itself, has been
   split into separate variables `%field_html%` and `%button_html%`. Your template
   settings will be updated automatically to reflect this.
 * NEW: image thumbnails will be shown by default. The image feature has existed
   since v1.4.0 (2018-08-25), but some people didn’t realize this and/or didn’t 
   know they needed to add `%image%` into the template to enable it. Now `%image%`
   is included in the template by default. If you don’t want this, simply edit your
   template settings and remove the `%image%` variable.
 * NEW: show spinner when processing, and prevent checkout form submission before
   upload is completed.
 * UPDATE: change the way we handle sessions — only start them when needed, not 
   on every page load.
 * UPDATE: extensive code refactoring.
 * UPDATE: updated some styling and text. For example, progress bars (if enabled)
   are now green.
 * UPDATE: updated .pot file for translations.

#### 1.5.4 – 2020-01-14

 * UPDATE: add new filters ‘wpw_checkout_files_upload_form_html’ and ‘wpw_checkout_files_upload_form_ajax_html’.
 * UPDATE: wrap checkout page file upload controls in

<

div>.

#### 1.5.3 – 2019-11-22

 * UPDATE: bump tested versions

#### 1.5.2 – 2019-11-15

 * UPDATE: bump tested versions

#### 1.5.1 – 2019-09-12

 * UPDATE: bump tested upto versions

#### 1.5.0 – 2018-10-08

 * FIX: php notice
 * UPDATE: updated .pot file for translations

#### 1.4.5 – 2018-10-01

 * Dev – `[alg_wc_cfu_translate]` shortcode added and `do_shortcode()` is now applied
   to each file’s “Labels”.

#### 1.4.4 – 2018-09-13

 * Dev – Emails – “Additional Emails Options” subsection added.
 * Dev – “Raw” input is now allowed in all textarea admin settings fields.
 * Dev – Code refactoring – “Reset” function re-written.
 * Dev – Code refactoring – `custom_number_checkout_files_upload` settings type 
   removed.
 * Dev – “Your settings have been saved” admin notice added.

#### 1.4.3 – 2018-09-10

 * Dev – “Author URI” updated.

#### 1.4.2 – 2018-09-10

 * Dev – “Contributors” updated.

#### 1.4.1 – 2018-08-27

 * Fix – `%image%` in AJAX form fixed on “Thank you” and “My Account” pages.
 * Dev – “Validate image dimensions” options added for each file.
 * Dev – Minor code refactoring.
 * Dev – Minor admin settings restyling.

#### 1.4.0 – 2018-08-25

 * Fix – User file download fixed on “Thank you” and “My Account” pages.
 * Dev – `%image%` replaced value added.
 * Dev – “AJAX form” now is enabled (`yes`) in settings by default.
 * Dev – Code refactoring.
 * Dev – Minor admin settings restyling.
 * Dev – Plugin URI updated.

#### 1.3.0 – 2018-06-09

 * Fix – Case insensitive comparison of the “Accepted file types” options.
 * Fix – Default values fixed for all `get_option()` calls.
 * Dev – “AJAX form” options added.
 * Dev – “Max file size” options added.
 * Dev – Filter rewritten.
 * Dev – Admin settings – “Reset settings” section added.
 * Dev – Admin settings – Files settings added as separate sections.
 * Dev – Admin settings – Minor changes: restyling; `select` option type changed
   to `wc-enhanced-select`; settings array saved as main class property.

#### 1.2.0 – 2017-05-10

 * Fix – `Call to undefined function is_shop_manager()` error fixed.
 * Dev – WooCommerce v3.x.x compatibility – Order ID – using function instead of
   accessing property directly.
 * Dev – `load_plugin_textdomain` moved to constructor from `init` hook.
 * Dev – Plugin link changed from `http://coder.fm` to `https://wpcodefactory.com`.

#### 1.1.1 – 2016-12-07

 * Dev – `alg_current_filter_priority()` modified for compatibility with WordPress
   since v4.7.
 * Dev – Language (POT) file updated.
 * Dev – Checking for Pro modified.

#### 1.1.0 – 2016-11-28

 * Dev – “Form Template Options” settings section added.
 * Dev – Language (POT) file added.
 * Dev – “Emails Options” settings moved to separate section.

#### 1.0.0 – 2016-09-05

 * Initial Release.

## Meta

 *  Version **2.3.0**
 *  Last updated **2 months ago**
 *  Active installations **7,000+**
 *  WordPress version ** 4.4 or higher **
 *  Tested up to **7.1.3**
 *  Language
 * [English (US)](https://wordpress.org/plugins/checkout-files-upload-woocommerce/)
 * Tags
 * [checkout](https://en-gb.wordpress.org/plugins/tags/checkout/)[woo-commerce](https://en-gb.wordpress.org/plugins/tags/woo-commerce/)
   [woocommerce](https://en-gb.wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://en-gb.wordpress.org/plugins/checkout-files-upload-woocommerce/advanced/)

## Ratings

 4.4 out of 5 stars.

 *  [  10 5-star reviews     ](https://wordpress.org/support/plugin/checkout-files-upload-woocommerce/reviews/?filter=5)
 *  [  2 4-star reviews     ](https://wordpress.org/support/plugin/checkout-files-upload-woocommerce/reviews/?filter=4)
 *  [  1 3-star review     ](https://wordpress.org/support/plugin/checkout-files-upload-woocommerce/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/checkout-files-upload-woocommerce/reviews/?filter=2)
 *  [  1 1-star review     ](https://wordpress.org/support/plugin/checkout-files-upload-woocommerce/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/checkout-files-upload-woocommerce/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/checkout-files-upload-woocommerce/reviews/)

## Contributors

 *   [ WP Wham ](https://profiles.wordpress.org/wpwham/)

## Support

Issues resolved in last two months:

     1 out of 1

 [View support forum](https://wordpress.org/support/plugin/checkout-files-upload-woocommerce/)