Plugin slug: goup-approved-customer-invoice-gateway · Version: 1.0.5 · Author: GoUpWP · https://goupwp.com/plugins/approved-customer-invoice-gateway
What it does
Adds a Pay by Invoice payment method to WooCommerce that is offered only to customer accounts you have individually approved. Guests, unapproved accounts and roles never see it — approval is per user, never per role. Approved customers place the order without paying online; the order lands in the status you choose and your invoice terms are recorded on the order.
Works with the classic checkout and the Checkout Block, and with HPOS.
Installation
- Download the plugin ZIP from your GoUpWP account (Account → Licenses → Download).
- In WordPress go to Plugins → Add New → Upload Plugin, choose the ZIP and click Install Now, then Activate.
- WooCommerce must be installed and active; the plugin shows a notice and stays idle until it is.
- Open WooCommerce → License: Approved Customer Invoice Gateway and paste the license key from your account. Activation unlocks
one-click updates and support for this site. A
localhost,*.test,*.localorstaging.site counts as a staging activation and does not use your production seat.
The plugin keeps working if the license expires: only updates and support pause until it is renewed.
Setup
- WooCommerce → Settings → Payments → Pay by Invoice: enable the method and set the title and description customers see, the order status after checkout (On hold is recommended), the default invoice terms (e.g. "Net 30"), and the instructions shown on the thank-you page and in customer emails.
- WooCommerce → Invoice Customers: search by name, email, username, company or user ID and click Approve. Bulk approve/revoke is available, and the Approved / Not approved filters show who has access.
- Optional per-customer overrides live on the user's profile (Users → Edit): custom invoice terms and an internal note that is never shown to the customer.
How eligibility is checked
- The gateway is available only to logged-in users whose account is approved, at every step: when checkout loads, when the order is placed (classic and Store API), and on the "pay for order" page — a customer can only use it for their own orders.
- Approval, terms and the approval timestamp are snapshotted on the order, so revoking a customer later never changes historical orders. The order screen shows both the snapshot and the customer's current status.
- Administrators can still choose the method when creating orders manually in the dashboard.
Emails and thank-you page
The instructions text and the invoice terms are appended to customer emails and shown on the thank-you page. Admin emails are untouched.
Privacy
The plugin registers a personal-data exporter and eraser for the approval metadata. Order snapshots are retained under the store's normal order-retention rules.
Developer hooks
goup_acig_is_customer_approved( bool $approved, int $user_id )— override the approval decision.goup_acig_gateway_is_available( bool $available, int $user_id )— final say on eligibility.goup_acig_customer_terms( string $terms, int $user_id )— customer-specific terms.goup_acig_invoice_order_status( string $status, WC_Order $order )— status after checkout.goup_acig_invoice_instructions( string $text, WC_Order $order, string $context )—thankyouoremail.goup_acig_order_snapshot_data( array $meta, WC_Order $order, int $user_id )— extra_goup_invoice_*meta.- Actions:
goup_acig_customer_approved,goup_acig_customer_revoked,goup_acig_approval_updated.
Troubleshooting
- Approved customer cannot see the method — confirm the gateway is enabled under Payments, the customer is
logged in, and no other plugin filters
woocommerce_available_payment_gatewaysafter this one. Enable Debug logging in the gateway settings and read WooCommerce → Status → Logs → goup-approved-customer-invoice-gateway. - Diagnostics: WooCommerce → Invoice Diagnostics lists environment details and approved-customer counts to include in support tickets.
Updates and licensing
- Updates arrive through the normal Dashboard → Updates and Plugins screens. Every package is downloaded over a signed, time-limited link and verified against its SHA-256 checksum before WordPress installs it.
- View details on the Plugins screen shows the changelog for the new version.
- If the license is not active you still see that an update exists; the row explains that renewing restores one-click updates.
- The license page shows the installed version, the environment this site was classified as (production or staging), your activation counts and the renewal date, and has a Check for updates button.
- Deactivate on this site frees the seat so the key can be used on another site. Deleting the plugin from the Plugins screen also frees the seat automatically.
- Nothing is sent to goupwp.com except the license key, an installation ID, the site URL and the WordPress, PHP and plugin versions used for compatibility checks.
Support and maintenance
- Open a ticket from Account → Support on goupwp.com; include the output of the plugin's Diagnostics tab.
- Keep WordPress, WooCommerce and the plugin updated and test changes on a staging site first.
- The plugin declares compatibility with WooCommerce High-Performance Order Storage (HPOS) and the Cart and
Checkout Blocks, and is translation-ready (
languages/). - Uninstalling removes the plugin's data only when the Delete data on uninstall option is enabled, so a reinstall keeps your configuration; license data is always removed.
Release history
1.0.5 26 September 2026 · tested with WordPress 7.1
- Tightened Order Pay and Store API ownership checks so approved accounts cannot authorize guest or third-party orders.
- Added target-user permission checks to every approval mutation path.
- Made approval transitions idempotent, repaired approval counts on upgrade, and kept them synchronized during erasure and user deletion.
- Expanded privacy exports and removed empty customer metadata.
- Improved customer-search and quick-action failure feedback.
1.0.4 26 September 2026 · tested with WordPress 7.1
- GoUpWP admin identity: every plugin screen now opens with a GoUpWP header showing the plugin name, version, documentation, support and licence status.
- GoUpWP styling for settings, rule tables, tabs, cards and buttons, scoped to this plugin's screens so WordPress and other plugins are untouched.
- GoUpWP mark on the Plugins screen, Documentation and Support links in the plugin row, and GoUpWP icons on the Dashboard → Updates screen.
1.0.3 20 September 2026 · tested with WordPress 7.1
- Updates: the installer now fetches a freshly signed download link at install time and verifies the SHA-256 checksum, so "Update now" works hours after WordPress last checked for updates.
- Updates: update checks are cached for six hours and the Plugins screen shows a clear message (with a link to the license page) when an update exists but the license is not active.
- License screen: named per plugin in the WooCommerce menu, shows the installed version and a "Check for updates" button, and every string is translatable.
- Plugins screen: Settings and License links on the plugin row.
- Uninstall: releases the license seat on goupwp.com and removes all license data, regardless of the data-retention setting.
- Code style: all source files expanded to readable, documented PHP.
- Fixed the "View orders" link on the Invoice Customers screen, which did not filter the orders list by customer.
1.0.2 20 September 2026 · tested with WordPress 7.1
- License screen now explains activation failures (unrecognised key, wrong plugin, site limit reached, expired) and shows the environment, activation counts and end date.
- Activate and Deactivate always contact goupwp.com immediately instead of waiting out a network backoff.
1.0.1 20 September 2026 · tested with WordPress 7.1
- Added the GoUpWP licensing and update client.
- Normalized plugin headers and code style.