{"id":134267,"date":"2026-10-24T07:10:51","date_gmt":"2026-10-24T07:10:51","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/order-upload-for-woocommerce\/"},"modified":"2026-10-24T09:27:29","modified_gmt":"2026-10-24T09:27:29","slug":"order-upload-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/order-upload-for-woocommerce\/","author":15744905,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.1.4","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"Order Upload for WooCommerce","header_author":"AzMarket","header_description":"Allows customers to upload order attachments","assets_banners_color":"e0e5f2","last_updated":"2026-10-24 09:27:29","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/azmarket.net\/item\/woocommerce-order-attachment-file-approval","header_author_uri":"https:\/\/azmarket.net","rating":0,"author_block_rating":0,"active_installs":10,"downloads":271,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"azmarket","date":"2026-10-24 09:30:22","revision":3763011},"1.0.1":{"tag":"1.0.1","author":"azmarket","date":"2026-10-24 09:27:29","revision":3763008}},"upgrade_notice":{"1.0.0":"<p>First release on WordPress.org.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3764483,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3764483,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3764483,"resolution":"772x250","location":"assets","locale":"","width":2209,"height":712}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[2264,288186,5887,288185,286],"plugin_category":[45,50],"plugin_contributors":[169474],"plugin_business_model":[],"class_list":["post-134267","plugin","type-plugin","status-publish","hentry","plugin_tags-attachment","plugin_tags-customer-upload","plugin_tags-file-upload","plugin_tags-order-upload","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-media","plugin_contributors-azmarket","plugin_committers-azmarket"],"banners":{"banner":"https:\/\/ps.w.org\/order-upload-for-woocommerce\/assets\/banner-772x250.png?rev=3764483","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/order-upload-for-woocommerce\/assets\/icon-128x128.png?rev=3764483","icon_2x":"https:\/\/ps.w.org\/order-upload-for-woocommerce\/assets\/icon-256x256.png?rev=3764483","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Order Upload for WooCommerce<\/strong> adds a drag and drop upload box to your store so customers can send you the files you need to fulfil an order: artwork for printing, photos for custom products, documents, design briefs and more.<\/p>\n\n<p>Files are linked to the order item they belong to, so you always know which file goes with which product.<\/p>\n\n<p>\ud83d\udccc <strong>Free Features<\/strong><\/p>\n\n<p><strong>1. Upload on the product page, cart and checkout<\/strong>\nTurn the upload box on or off for each place in the settings. You can also turn it off for single products from the product edit screen.<\/p>\n\n<p><strong>2. Classic and block Cart\/Checkout<\/strong>\nWorks with the shortcode cart and checkout pages and with the new Cart and Checkout blocks.<\/p>\n\n<p><strong>3. Files in the mini cart<\/strong>\nThe mini cart (classic widget and Mini-Cart block) shows how many files each product has and their names.<\/p>\n\n<p><strong>4. Modern drag and drop upload box<\/strong>\nDrag and drop or click to browse, upload progress, image thumbnails, file type icons and a remove button for each file.<\/p>\n\n<p><strong>5. Allowed file types and maximum size<\/strong>\nChoose the allowed file types from a list grouped by Images, Documents, Design, Audio &amp; video, Archives and Other, and set the maximum file size. Files are checked in the browser before they are sent and again on the server.<\/p>\n\n<p><strong>6. Multiple files and required upload<\/strong>\nAllow one or several files per product, and optionally require a file before the product can be added to the cart.<\/p>\n\n<p><strong>7. Customise the upload box<\/strong>\nShow or hide the heading, change its title, description and icon, change the icon of the drop zone (built-in icons or any image from the Media Library) and show or hide the \"Supported formats \/ Max size\" line.<\/p>\n\n<p><strong>8. Files in the order admin<\/strong>\nSee, preview and download the uploaded files in an \"Upload Files\" box on the order edit screen, and the number of files in the orders list. Compatible with High-Performance Order Storage (HPOS).<\/p>\n\n<p><strong>9. Files on the order received page<\/strong>\nCustomers see the files they sent on the \"Order received\" and \"My account &gt; View order\" pages.<\/p>\n\n<p><strong>10. Shortcode<\/strong>\nPlace the upload box anywhere with <code>[azwc_order_upload]<\/code>. Use <code>[azwc_order_upload header=\"0\"]<\/code> to hide the heading.<\/p>\n\n<p><strong>11. Secure by design<\/strong>\nFiles are stored in a protected folder with random names and are only served through permission-checked downloads. Uploads are checked by extension, real file content and image data, and text files are scanned for PHP code and binary content. All requests use nonces and ownership checks.<\/p>\n\n<p>\ud83d\udccc <strong>PRO Features<\/strong><\/p>\n\n<p><a href=\"https:\/\/azmarket.net\/item\/woocommerce-order-attachment-file-approval\">Order Upload for WooCommerce Pro<\/a> includes everything in the free version, plus:<\/p>\n\n<ul>\n<li><strong>File approval and revisions:<\/strong> approve files or ask for a new version, with revision history and a revision limit per customer.<\/li>\n<li><strong>Send files to customers:<\/strong> attach files (proofs, finished work) to an order from the admin.<\/li>\n<li><strong>Order-level upload at checkout:<\/strong> one upload box for the whole order, in several positions on the checkout page.<\/li>\n<li><strong>Upload after ordering:<\/strong> customers can add files on the \"Order received\" page and in My account.<\/li>\n<li><strong>My account \"Files\" page<\/strong> with all the customer's files.<\/li>\n<li><strong>Email notifications<\/strong> for new files, approvals and revisions.<\/li>\n<li><strong>Note field:<\/strong> customers can add a note with their files.<\/li>\n<li><strong>Download all files as a ZIP<\/strong> and bulk actions in the order admin.<\/li>\n<li><strong>Cart quantity = number of files<\/strong>, plus options to let customers download or delete their files.<\/li>\n<li>Premium support and updates.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Make sure WooCommerce is installed and active.<\/li>\n<li>Upload the <code>order-upload-for-woocommerce<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install the plugin from Plugins &gt; Add New.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Go to <strong>BH Plugins &gt; Order Upload<\/strong> to choose where the upload box is shown, the allowed file types and the maximum file size.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20work%20with%20the%20cart%20and%20checkout%20blocks%3F\"><h3>Does it work with the Cart and Checkout blocks?<\/h3><\/dt>\n<dd><p>Yes. The upload box works with both the classic (shortcode) and the block Cart\/Checkout pages.<\/p><\/dd>\n<dt id=\"is%20it%20compatible%20with%20the%20latest%20wordpress%20and%20woocommerce%3F\"><h3>Is it compatible with the latest WordPress and WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. Version 1.0.0 is tested with WordPress 7.1 and WooCommerce 11.2, and is compatible with High-Performance Order Storage (HPOS).<\/p><\/dd>\n<dt id=\"where%20are%20the%20files%20stored%3F\"><h3>Where are the files stored?<\/h3><\/dt>\n<dd><p>In <code>wp-content\/uploads\/azwc-order-uploads\/<\/code>. The folder is protected with an <code>.htaccess<\/code> file and files get random names. Files can only be downloaded by shop managers and by the customer who uploaded them.<\/p>\n\n<p>On <strong>Nginx<\/strong> servers <code>.htaccess<\/code> is ignored, so add this rule to your server configuration:<\/p>\n\n<pre><code>location ~* \/wp-content\/uploads\/azwc-order-uploads\/ { deny all; }\n<\/code><\/pre><\/dd>\n<dt id=\"which%20file%20types%20can%20customers%20upload%3F\"><h3>Which file types can customers upload?<\/h3><\/dt>\n<dd><p>You choose them in the settings. Dangerous types such as PHP, JavaScript, HTML and executables can never be uploaded, even if they are renamed.<\/p><\/dd>\n<dt id=\"the%20maximum%20size%20i%20set%20does%20not%20work\"><h3>The maximum size I set does not work<\/h3><\/dt>\n<dd><p>The limit can not be higher than the <code>upload_max_filesize<\/code> and <code>post_max_size<\/code> values of your server. The settings page shows both values. Ask your host to raise them if needed.<\/p><\/dd>\n<dt id=\"can%20i%20add%20extra%20checks%2C%20for%20example%20a%20virus%20scan%3F\"><h3>Can I add extra checks, for example a virus scan?<\/h3><\/dt>\n<dd><p>Yes. Developers can use the <code>azwc_ou_validate_upload<\/code> filter. Return a <code>WP_Error<\/code> to reject the file.<\/p><\/dd>\n<dt id=\"will%20i%20lose%20my%20files%20if%20i%20upgrade%20to%20pro%3F\"><h3>Will I lose my files if I upgrade to Pro?<\/h3><\/dt>\n<dd><p>No. Pro uses the same settings and files. When you activate Pro, the free version is turned off automatically.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0 - 2026-10-24<\/h4>\n\n<ul>\n<li>First release on WordPress.org.<\/li>\n<\/ul>","raw_excerpt":"Let customers upload files with their order: on the product page, in the cart and at checkout. Works with classic and block Cart\/Checkout.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/134267","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=134267"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/azmarket"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=134267"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=134267"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=134267"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=134267"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=134267"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=134267"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}