JAD Bank Receipt Upload for WooCommerce

Description

JAD Bank Receipt Upload for WooCommerce extends WooCommerce Direct Bank Transfer (BACS) with an optional proof-of-payment upload workflow.

This is an independent extension for WooCommerce and is not affiliated with or endorsed by WooCommerce.

Customers can upload a receipt during checkout, on the Pay for Order page, or on the Order Received page. Administrators can view, upload, replace, approve, reject, or remove receipts from the WooCommerce order screen.

The plugin supports JPG, JPEG, PNG, and PDF files up to 5 MB. Receipt files are stored in a protected directory and delivered only after the order and requester are authorized.

Receipt Storage and Retention

Receipt files use randomized storage folders and filenames. Apache and IIS protection files deny direct requests, while receipt previews and downloads are served through WordPress after authorization. Nginx administrators can additionally deny direct web access to the /wp-content/uploads/bruw/ directory in the site’s server configuration.

Temporary checkout receipts that are not attached to an order are automatically deleted after 24 hours. A salted, one-way connection identifier limits excessive anonymous temporary uploads; the original address is not stored by the plugin.

Order receipt files remain with their WooCommerce order and are deleted when that order is permanently deleted. By default, settings and remaining receipts are preserved when the plugin is uninstalled to prevent accidental accounting-data loss. Enable “Delete plugin settings and stored receipt files when the plugin is uninstalled” under Data Retention to remove them during uninstall.

External Services

This plugin includes the Freemius SDK for optional usage opt-in, product updates, upgrade links, licensing for the separately distributed PRO plugin, and optional deactivation feedback. The free plugin remains usable without opting in.

When an administrator explicitly opts in or submits optional feedback, Freemius may receive site, WordPress, PHP, plugin, administrator, and diagnostic information needed to provide those services. No customer receipt file or bank-account detail is sent to Freemius by this plugin.

Freemius Terms of Service: https://freemius.com/terms/

Freemius Privacy Policy: https://freemius.com/privacy/

How It Works

  1. The customer selects Direct Bank Transfer.
  2. The configured bank details and exact payment amount are displayed.
  3. The customer makes the transfer.
  4. The customer optionally uploads a receipt.
  5. An administrator verifies the transfer and approves or rejects the receipt.

Free Version

The WordPress.org version is complete and fully functional. It includes:

  • WooCommerce Direct Bank Transfer integration
  • One configurable bank account
  • Optional receipt uploads during checkout
  • Receipt uploads on Pay for Order and Order Received pages
  • JPG, JPEG, PNG, and PDF support up to 5 MB
  • Protected receipt storage and authorized delivery
  • Receipt preview, removal, and replacement
  • Upload progress and mobile camera/file chooser support
  • Automatic deletion of removed receipt files
  • Administrator receipt upload and replacement
  • Administrator receipt approval and rejection
  • Customer locking after a receipt is approved
  • Exact transfer amount and order-number Bank Message display
  • Copy buttons for bank details
  • Direct Bank Transfer payment icon

Separate PRO Plugin

JAD Bank Receipt Upload for WooCommerce PRO is distributed as a separate plugin. No PRO implementation is bundled, disabled, restricted, or locked inside this WordPress.org package.

The separate PRO plugin adds:

  • Unlimited banks and customer bank selection
  • Automatic receipt and WooCommerce order status changes
  • Receipt management from My Account
  • Administrator-selected rejection reasons and customer rejection emails
  • Direct replacement and receipt-upload links sent by email
  • Payment-method changes after ordering
  • Required checkout receipt uploads
  • Role, username, upload, removal, approval, and rejection permissions

Installation

  1. Install and activate WooCommerce.
  2. Upload and activate JAD Bank Receipt Upload for WooCommerce.
  3. Go to WooCommerce > Bank Receipt Upload.
  4. Configure the gateway and bank account.
  5. Save the gateway settings and bank details.
  6. Place a test BACS order before accepting live payments.

FAQ

Does the plugin process or confirm bank payments?

No. It collects payment receipts. An administrator must verify the transfer in the relevant bank account.

Which files are supported?

JPG, JPEG, PNG, and PDF files up to 5 MB.

Are receipt files public?

No public receipt URL is displayed. The plugin uses randomized storage folders and filenames, installs Apache/IIS deny rules, and serves receipts through an authorization check. Administrators, the order owner, or a guest with the matching order key can access the relevant receipt. Nginx administrators should apply the deny rule shown on the settings page for additional server-level protection.

Can administrators upload receipts?

Yes. Users with the WooCommerce management capability can upload or replace receipts on the order screen.

Are checkout uploads required?

No. Receipt uploads are optional in this version.

How many bank accounts can I configure?

This version supports one bank account. Unlimited banks are implemented only in the separately distributed PRO plugin.

What happens when a receipt is approved?

The receipt is locked against customer replacement or removal. Administrators can still manage it from the order screen.

What happens when a receipt is rejected?

The rejected file is removed, and the customer can upload a replacement from the Order Received page.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“JAD Bank Receipt Upload for WooCommerce” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

2.0.4

  • Added automatic cleanup of abandoned temporary checkout receipts.
  • Added anonymous upload throttling using a salted one-way connection identifier.
  • Added randomized private storage folders in addition to randomized filenames.
  • Deleted managed receipt files when their WooCommerce orders are permanently deleted.
  • Added optional complete data deletion during uninstall while preserving data by default.
  • Added Freemius external-service and receipt-retention documentation.
  • Added Nginx protection guidance and an extra directory-index protection file.
  • Added the minimum WordPress version to the main plugin header.
  • Improved template attribute escaping and asset versioning.
  • Fixed infinite recursion in the WordPress upload-directory filter when uploading receipts.
  • Removed the persistent Nginx guidance notice from the settings screen.
  • Updated the Freemius premium suffix capitalization to PRO.
  • Configured the Free build as non-premium with a separate premium version and paid plans.
  • Registered uninstall handling through Freemius’s after_uninstall hook while continuing to preserve plugin data.
  • Removed the standalone uninstall.php file for Freemius deployment compatibility.

2.0.3

  • Moved bank-save nonce verification into the AJAX callback for clear WordPressCS recognition.

2.0.2

  • Hide customer-facing bank and receipt controls until a usable bank is configured.
  • Restore the bank-name button and shipping-method check before opening bank details.
  • Reset replacement-upload progress from zero and show live upload status.
  • Remove temporary receipt files when checkout total changes.

2.0.1

  • Renamed the plugin to JAD Bank Receipt Upload for WooCommerce.
  • Updated the repository slug and translation domain to jad-bank-receipt-upload-for-woocommerce.
  • Refactored the free plugin around a genuine single-bank data model.
  • Removed dormant functionality belonging to the separately distributed PRO plugin.
  • Retained the complete customer and administrator receipt workflow.

2.0.0

  • Added a complete customer and administrator receipt workflow.
  • Added capability and nonce checks to every state-changing request.
  • Added protected receipt delivery and safe managed-path deletion.
  • Added one configurable bank account with custom display fields.
  • Added immediate receipt preview replacement on customer and administrator screens.