Are you looking to find on why some of your orders have a MainOrderAccepted order status and a way to fix it?
The MainOrderAccepted order will be set after the purchase is made from the checkout page. This status means that a product has been purchased from the checkout page.
The order status MainOrderAccepted is set by the CartFlows when the main checkout product is purchased so this would delay the sending of the order delivery email by WooCommerce.
The reason behind that after the checkout page we will be displaying a new page which is Upsell or Downsell.
If the user abandons the checkout process by closing the Upsell / Downsell pages directly by closing the browser window then only the order status will be set as MainOrderAccepted. Because the user has left the checkout process in-between the ongoing checkout process.
But to mark the order as complete CartFlows have set the WP cron, which will automatically mark the order as complete after 30 minutes of the order. So in your case that CRON is not working.
To check whether the CRON is working you can install the WP Crontrol plugin which will verify its working. After installing the plugin you can search for the “carflows_schedule_normalize_order_status” cron name and check for the next run time.
If the cron is not registered then there might be a two possible cases and they are as follows:
First is that the plugin conflict:
- There might be some plugin restricting the execution of the CRON. To find it out, you can deactivate all the plugins except the WooCommerce, CartFlows and the Page Builder. Then place the test order and close the browser window as soon as you view the upsell/downsell page.
- Now, go to the WP-Crontrol plugin and check whether the CRON is set or not. If it is set then wait for 30 minutes.
- After 30 minutes, check whether the order status is updated to complete or not. If it changes then there is a conflict with one of the plugins.
Second is that the CRON service is disabled:
- The CRON job is a service available on the hosting server. So, in that case you need to get in touch with the hosting provider and ask them to enable the CRON job service.
- This will automatically start the CartFlows CRON to work and your order will be marked as completed from now on.
Note: In most of the cases, many hosting providers provide the Cron Job but it is disabled. They will enable it when the user asks for them to enable it.