Skip to content

Email throttling

Email throttling protects your store (and your affiliates’ inboxes) from runaway sends. If a bug or misconfiguration would otherwise blast someone with 50 commission-earned emails in an hour, throttling caps them.

Default cap

10 emails per recipient per template per day. Configurable at Settings → Email → Throttle.

Above the cap, additional emails are silently dropped and logged in Affiliates → Audit log → Throttled emails.

Hard cap

Above the soft cap, there’s a hard cap of 50 emails per recipient per template per day. The hard cap can’t be raised — it’s a safety net against runaway loops.

Per-template override

Some templates legitimately need higher caps (e.g. real-time commission notifications for high-volume affiliates). Override per template:

Settings → Email → Per-template caps:

TemplateDefault cap
Commission earned10/day
Welcome1/day
Approval / rejection1/day
Payout sent5/day
Password reset5/day
Test connection20/day (admin only)

What counts as “same template”

Templates are identified by their slug (e.g. commission_earned, welcome). Two emails from the same template to the same recipient count toward the cap, regardless of body content (A/B variants count together).

Inspecting throttle activity

Affiliates → Audit log → Throttled emails shows:

  • Recipient
  • Template slug
  • Timestamp of the throttle decision
  • Reason (“daily cap reached”)

Useful for diagnosing missing-email reports from affiliates.

Filter hook

Override the cap programmatically per recipient/template:

add_filter( 'asteris_aff_email_daily_cap', function( $cap, $template_slug, $recipient ) {
if ( $template_slug === 'commission_earned' && is_super_affiliate( $recipient ) ) {
return 50;
}
return $cap;
}, 10, 3 );

Cron cleanup

Throttle records older than 7 days are pruned daily. Reduce the window via asteris_aff_throttle_retention_days filter.