This one is specific to our servers and matters more for shops than for anything else.
WHY IT MATTERS
WooCommerce runs a great deal through scheduled actions: order status changes, stock adjustments, emails, subscription renewals, abandoned cart triggers and cleanup.
HTTP requests to /wp-cron.php are blocked across our servers, because WordPress triggers cron on every page load and that generates enormous unnecessary load. Without a real cron job, none of the above runs.
Symptoms are confusing: orders stuck on processing, confirmation emails never sent, stock not decreasing.
THE SETUP
- Edit
public_html/wp-config.phpand add above the "stop editing" line:
define('DISABLE_WP_CRON', true);- cPanel > Cron Jobs. Set the interval to every five minutes, and enter:
/usr/local/bin/php -q /home/USERNAME/public_html/wp-cron.php >/dev/null 2>&1Replace USERNAME with your cPanel username.
WHY FIVE MINUTES FOR A SHOP
Fifteen is fine for a blog. A shop wants order emails sent promptly, and five minutes is the practical balance.
CHECKING
WooCommerce > Status > Scheduled Actions. Pending actions should clear rather than accumulating.