Skip to content

Cron & Scheduled Tasks

Configure your hosting scheduler to call the site’s auction endpoints. Replace https://example.com with your actual WordPress home URL, including any installation subdirectory.

Open Auctions → Settings → Tools → Cron Secret Token. Use Generate Token, then Save changes. Copy each saved External Cron URL into the corresponding hosting scheduler job. The URLs include the auction-cron-key parameter when a token is configured.

A blank token allows unauthenticated requests. With a saved token, a missing or incorrect key returns HTTP 403 without running the task. After changing the token, update every external cron job. Keep tokens and authenticated URLs out of screenshots, public logs, and support requests.

Endpoint Starting schedule
/?auction-cron=check Every minute; processes due auction closures and lot checks.
/?auction-cron=mails Every two hours, matching the plugin’s admin recommendation.
/?auction-cron=relist Hourly, when using automatic relisting.
/?auction-cron=closing-soon-emails Hourly, matching the plugin’s admin recommendation; use a shorter interval for short notice windows.
/?auction-cron=remind-to-pay Daily, when using payment reminders.

These examples show the endpoint schedule without token protection. When a token is saved, replace each example URL with its complete saved URL from Tools. Keep the URL quoted so the shell preserves query parameters.

Terminal window
* * * * * curl --fail --silent --show-error 'https://example.com/?auction-cron=check' >/dev/null
0 */2 * * * curl --fail --silent --show-error 'https://example.com/?auction-cron=mails' >/dev/null
0 * * * * curl --fail --silent --show-error 'https://example.com/?auction-cron=relist' >/dev/null
0 * * * * curl --fail --silent --show-error 'https://example.com/?auction-cron=closing-soon-emails' >/dev/null
0 9 * * * curl --fail --silent --show-error 'https://example.com/?auction-cron=remind-to-pay' >/dev/null

The daily time uses the scheduler’s timezone. Use the scheduler equivalent for your hosting platform. Run only the optional mail/relist tasks your store needs.

Under Auctions → Settings → Tools → External Cron Status, each task shows Last started and Last successful completion in the site’s timezone. Refresh the page to update the cards.

Status Meaning
Never run No external request has been recorded since tracking became available.
No successful completion yet A request started, but no successful completion is recorded.
OK A recent successful completion is recorded.
Late The last success is older than the task’s tolerance, or an initial run has not completed within that tolerance.
Error The tracked task threw an error. Check server logs before retrying.
Currently running An additional indicator for a recently started request that has not recorded completion.

The late thresholds are five minutes for check, four hours for mails, two hours for relist and closing-soon-emails, and two days for remind-to-pay. Optional tasks you have not configured may show Never run.

These cards track external requests only. WordPress cron execution is separate. A successful completion records that the handler returned; verify the intended auction result and email or payment outcome separately. Requests rejected for an invalid token do not update these cards, so check the hosting scheduler’s HTTP result when diagnosing missing runs.

The plugin attempts to schedule woocommerce_simple_auctions_lots_cron_event on the every_minute WordPress recurrence. Check that the recurrence exists and the event runs on your installation. The external check endpoint also invokes the lot check.

Do not disable WordPress cron without providing a replacement for WordPress and WooCommerce scheduled tasks. Calling auction endpoints alone is not a replacement for all site tasks.

Use a test auction with a near-future closing time. Check scheduler exit status, endpoint access, final auction state, winner processing, and email delivery. A blank HTTP response by itself does not prove that a particular auction changed state.

Exclude the auction-cron query endpoints from full-page caching, maintenance-page redirects, and access challenges that prevent scheduler requests from reaching WordPress.