Abandoned Cart CRON job stops working when the plugin doesn't have enough permissions to create (or write to) smaily-cart.txt log file in /wp-content/plugins/smaily-for-woocommerce.
Steps for reproducing
Setup a WooCommerce site with at least single product.
Create two Customer user accounts with invalid email address (e.g. customer@smaily.sandbox, customer2@smaily.sandbox, etc.).
Configure Smaily for WooCommerce plugin with Abandoned Cart functionality.
Log in with the first Customer user and add a product to cart.
Log in with the second Customer user and add a product to cart.
Wait until configured Abandoned Cart cutoff time has passed (or force carts to abandoned state manually in smaily_abandoned_cart table).
Run smaily_cron_abandoned_carts_email CRON job.
Expected behavior
API request to trigger abandoned cart automation is executed for both carts.
Actual behavior
API request triggering abandoned cart automation is only executed for one of the carts.
Version information
WordPress 6.6.2
WooCommerce 9.3.3
Smaily for WooCommerce 1.11.2
I think the most reasonable solution would be to replace custom file log writing with error_log function which is also mentioned in Debugging in WordPress article.
Abandoned Cart CRON job stops working when the plugin doesn't have enough permissions to create (or write to)
smaily-cart.txt
log file in/wp-content/plugins/smaily-for-woocommerce
.Steps for reproducing
customer@smaily.sandbox
,customer2@smaily.sandbox
, etc.).abandoned
state manually insmaily_abandoned_cart
table).smaily_cron_abandoned_carts_email
CRON job.Expected behavior API request to trigger abandoned cart automation is executed for both carts.
Actual behavior API request triggering abandoned cart automation is only executed for one of the carts.
Version information WordPress 6.6.2 WooCommerce 9.3.3 Smaily for WooCommerce 1.11.2