Dynamic Code stamps each coupon with a generated, trackable code — created once, on a schedule, per print, per email, or per reveal.
Per-coupon setup #
On the coupon editor's Content tab, the Dynamic Code control chooses when a code is generated:

- Dynamic Code modes: Inactive, Once, On Expiration Change (a new code each time a recurring coupon rolls over), On Loading of Print View (each visitor gets their own code), On Sending of Email Coupon, and the reveal combinations (generate on click of the reveal overlay).
Below the mode you set the pieces of the code:
- Base text plus a generated segment, positioned as prefix or suffix.
- Code length for the generated segment, and a font color.
- CSV list — supply your own pool of codes instead of random generation. Codes are issued in file order, first unused code first (already-issued codes are skipped), reading the first column of the file. When every code in the file has been issued, the coupon stops displaying for new visitors rather than repeating codes — visitors who already have a code keep theirs. If the CSV file is later deleted from the Media Library or disk, the coupon simply issues no code (nothing breaks). Files are capped at 1 MB — roughly 100,000 single-column codes (developers can change this with the
cctor_addons_dynamic_csv_max_bytesfilter). - WooCommerce connect — register each generated code as a store coupon (see WooCommerce Coupons).
Site-wide defaults for all of these live under Coupons → Options → Defaults.
Tracking codes #
Every generated code is stored: the Generated Dynamic Codes box on the coupon's edit screen lists codes with their generation context, so staff can verify a code a customer presents.
Codes render into the coupon wherever the [dynamiccode] tag sits in your Terms — or automatically if you don't place it.