Files
kristianwindandClaude Code c3fdec4e04
CI / Static checks (pull_request) Failing after 31s
Compatibility / WP latest / WC latest / PHP 7.4 (pull_request) Skipped
Compatibility / WP latest / WC beta / PHP 8.3 (pull_request) Skipped
Compatibility / WP latest / WC latest / PHP 8.3 (pull_request) Skipped
Compatibility / WP nightly / WC latest / PHP 8.3 (pull_request) Skipped
Compatibility / WP latest / WC latest / PHP 8.4 (pull_request) Skipped
Compatibility / Keep the compatibility headers honest (pull_request) Skipped
CI / WordPress latest + WooCommerce latest on PHP 8.3 (pull_request) Successful in 1m20s
Docs: avoid naming the release in prose; site-test count is 73
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-02 12:36:01 +02:00
..

Nolimit Discounts

Version 1.7.0 · a WooCommerce plugin · slug woocommerce-email-discount-manager

Gives a customer a discount, and decides which shipping methods they may choose, based on the email address they check out with.

What it does

A shop puts in email patterns and says what each one is worth. At checkout the plugin looks at the customer's email, finds the most specific pattern that matches, and applies it.

Three kinds of assignment, one per email pattern:

type effect
Group the customer gets a discount group's percent, on the product categories attached to that group
Coupon an existing WooCommerce coupon is applied automatically
Custom a flat percent off the whole cart

Patterns can be a full address (john@example.com), a domain (@company.com — everyone there), or a fragment (john — any address containing it). When more than one matches, the most specific wins: exact address, then domain, then fragment.

Shipping

A discount group can be given shipping rules, which is the half worth reading twice because it decides what a stranger sees.

A method a group is set to only is reserved for that group. Customers who match no group do not see it. Before 1.6.0 a method set up for approved company addresses stayed on the checkout for everybody, so free delivery meant for one customer could be chosen by anyone who found it — the bug that release fixed. Show is the weaker rule and reserves nothing: it offers the method to the group and leaves everyone else alone. 1.6.0 made show do both, which took ordinary methods away from strangers whenever they were listed beside a free one; the next release split them and turned every old show rule into only.

The plugin never leaves a customer with no shipping method at all. If applying the rules would empty the list, every method comes back.

What it is not

Facts that take a while to establish by reading the source, so they are written down here:

  • Not a coupon engine. The Coupon assignment type applies a coupon WooCommerce already has. This plugin does not create, price or validate one.
  • No public REST surface. There is a REST API, and every route requires manage_woocommerce. Nothing is readable by an anonymous visitor.
  • No telemetry. Nothing is sent anywhere. The only outbound request is the update check against the release feed, and it asks for a version number.
  • No block editor or shortcode. The customer-facing side is the cart and checkout calculation and nothing else.
  • Data survives uninstall. There is no uninstall.php and no uninstall hook, so deleting the plugin leaves its five tables and its options in the database. That is deliberate — deleting a plugin by accident should not destroy a shop's discount configuration — but it means a clean removal is a manual job. See ARCHITECTURE.md.

Where the rest is

document what is in it
SETUP.md installing it, and how to tell it is actually working
ARCHITECTURE.md files, boot order, where data lives, what activation does
CONTRACT.md every hook this plugin offers and every one it answers
RELEASE.md how a release is cut, and what is checked before it is called done

Requires WordPress 5.8+, WooCommerce 6.0+, PHP 7.4+. Tested against WordPress 7.1.2 and WooCommerce 11.1.2 on PHP 7.4, 8.3 and 8.4.