DocumentationProFee watchdog

Fee watchdogPro

The watchdog checks your recent orders once a day and warns you when one was paid with a fee-configured method but carries no fee. A plugin conflict or an update can stop the fee being added, and nothing else tells you. Pro.

ProUpdated for 3.0.0

What the fee watchdog checks

Once a day it samples up to 25 orders per fee-configured method from the last 7 days. Only orders placed through the classic or block checkout count, in the processing, on-hold or completed status.

Each one is re-priced through the same guard chain, rule selection and fee engine that charged it. An order is a miss only when today’s settings would charge it and no fee line is there.

What it does not flag

Accuracy over heuristics. None of these is a miss:

  • a rule whose conditions did not match the order
  • a free-shipping order on a method with “don’t charge when shipping is free”
  • a fee that came out at zero
  • an order created in the admin or paid through a pay-for-order link — those have their own rules and are not sampled
  • orders older than the current configuration’s first sighting — a fee added yesterday cannot flag last week’s orders

A watchdog that cries wolf gets switched off, so this one only speaks when the numbers are real.

The notice

A dismissible admin notice, naming each gateway, the period and the counts — “Cash on delivery — 4 of 12 recent orders are missing the configured payment fee” — with a Review fee settings link. It also offers to stop warning about the current configuration, for a fee you know is meant to be missing.

Silencing it

This is expected — don’t warn again for this configuration. The snooze is tied to a hash of the current fee settings: change anything and the watchdog re-arms, so a snooze cannot outlive the situation it was given for.

When it runs

Daily, through Action Scheduler (WooCommerce’s own background queue), falling back to WP-Cron on a store without it. The hook is pay4payment_fee_watchdog; the run is unscheduled when the plugin is deactivated. Developers can raise the threshold with the pay4payment_watchdog_min_missing filter — see the hooks list.

What to do with a hit

Open one of the orders. The troubleshooting page is the list of usual suspects, and the first three cover most cases: another plugin recalculating totals after this one, the Checkout block moved into a template part, and a fee switched off by mistake.

The watchdog is Pro. It is the feature nobody asks for and everybody is glad of the first time it fires.

See pricing