GN In-Store Coupons
This is a plugin that check if a user is already on a Mail Mint list or is a newly register WooCommerce customer and if so checks if they have received a coupon that has Store Branding and a unique code. The Discount Rate can be defined on a stand-alone settings screen in admin
Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/georgewebdevcy/gn-in-store-coupons/archive/refs/heads/main.zipThe GN In-Store Coupons plugin for WordPress.
Description
Issue a branded, single-use in-store coupon to newly registered WooCommerce customers and subscribed contacts in selected Mail Mint lists. Coupons are emailed automatically when issuance is enabled. They never work at online checkout.
The In-Store Coupons admin menu contains a searchable register and settings for coupon amount in EUR, minimum purchase, expiry, store logo, color, and terms. Administrators configure issuance; administrators and WooCommerce shop managers can inspect, redeem, revoke, and resend the same coupon.
One coupon is allowed per normalized email address and linked WordPress account, ever. Redeemed, expired, and revoked records remain in the permanent ledger. Different email addresses belonging to the same person cannot be identified unless linked to the same WordPress account. Coupon records and settings are retained on uninstall to avoid accidentally resetting lifetime eligibility.
Configuration
New customer issuance can be enabled separately from full automatic issuance. My Account and checkout registrations use WooCommerce's customer-created event. Choose a new-customer Mail Mint list to add these customers without activating list-wide coupon emails. New CRM contacts are subscribed by default under the store's configured policy; existing subscription and unsubscribe statuses are preserved. This does not record explicit marketing consent. Coupon email delivery is independent of newsletter subscription status. List sync failures retry up to three times without reissuing an existing coupon.
Issuance starts paused. In In-Store Coupons > Settings, choose the coupon amount and minimum purchase, validity (0 means no expiry), branding and Mail Mint lists. Enabling automatic issuance emails both existing subscribed contacts in those lists and future eligible customers. Mail Mint Pro is not required.
Mail Mint contacts are processed in batches of 50; email batches contain up to 25 coupons. Background work uses WordPress Cron and requires site traffic or a server cron runner. Failed emails can be retried from the coupon detail screen without issuing another code. "Accepted by mailer" is not confirmation of inbox delivery. An interrupted send remains unconfirmed; staff may retry the same coupon after 10 minutes, which can resend a previously accepted email.
Issued coupons retain a snapshot of their discount and branding. The standard offer is EUR 15 off purchases of EUR 150 or more, with no expiry. Staff verify the purchase total before discount and record redemption before payment. The plugin does not connect to an in-store till or verify its transaction totals. Public coupon links are secret bearer links with the customer's name and email shown. Exclude the gn_store_coupon query parameter from any full-page/CDN cache.
Installation
- Use WordPress 6.5 or newer and install and activate WooCommerce and Mail Mint.
- Upload the gn-in-store-coupons directory to wp-content/plugins/.
- Activate GN In-Store Coupons through the Plugins screen in WordPress.
WordPress blocks activation until both required plugins are installed and active. Mail Mint Pro is optional and does not replace the required Mail Mint plugin.
Updates
Updates are provided by the public GitHub repository: https://github.com/GeorgeWebDevCy/gn-in-store-coupons
Plugin Update Checker checks for updates periodically. Use "Check for updates" on the WordPress Plugins screen to check manually. No GitHub token is required. WordPress controls whether available updates are installed automatically.
The checker uses the latest non-prerelease GitHub release, then the highest version tag, and falls back to the main branch when neither is available. Update packages use GitHub source archives and include the bundled updater.
Changelog
1.7.1
- Use the WordPress profile name when a campaign contact has no name saved.
1.7.0
- Queue a separate personalized coupon email for sent recipients of the linked Mail Mint campaign.
- Preserve lifetime eligibility and leave unrelated list issuance paused.
1.6.1
- Remove the invalid-sample wording from personalized previews and sample emails.
1.6.0
- Display customer name and email on coupon pages and emails.
- Add saved sample recipients and non-redeemable sample emails without using lifetime eligibility.
1.5.0
- Show permanent coupon references (CPN-000123) in admin, coupon pages and email subjects/bodies.
- Search by the formatted reference or numeric ID, alongside code, customer and email.
1.4.0
- Add new-customer-only coupon issuance and Mail Mint list assignment for WooCommerce registrations.
- Preserve existing contact status and prevent duplicate coupons on registration retries.
1.3.0
- Add Greek and English social PNGs in square and story formats, with matching captions in settings.
- Link to the separately reviewed Mail Mint campaign without scheduling or sending it.
1.2.0
- Add fixed EUR coupons and minimum purchase amounts, defaulting to EUR 15 off EUR 150 with no expiry.
- Show the purchase requirement on coupons, emails and staff details; preserve legacy percentage snapshots.
1.1.2
- Remove product category restrictions and category controls from all coupon screens.
1.1.1
- Hide the generic all-categories caption on coupons and emails; retain selected category names.
1.1.0
- Add lifetime issuance ledger, staff coupon register, redemption and revocation.
- Add automatic WooCommerce/Mail Mint eligibility and queued coupon email.
- Add branded coupon views, expiry, settings, previews, and delivery status.
1.0.2
- Require WooCommerce and Mail Mint through WordPress native plugin dependencies.
- Require WordPress 6.5 or newer for dependency enforcement.
1.0.1
- Integrate Plugin Update Checker 5.7 for GitHub-hosted WordPress updates.
1.0.0
- Initial plugin foundation.
Third-party Libraries
Plugin Update Checker 5.7 by Janis Elsts is bundled under includes/plugin-update-checker/ and licensed under the MIT license. Source: https://github.com/YahnisElsts/plugin-update-checker/tree/v5.7 The upstream license is included in that directory as license.txt.