Preorder plugin is running a cron job in the background to check the preorders date. so when the preorder date arrives the order status will auto change to completed.
but in some cases, the date is not added as meta_key for preorder. which is the problem (see screenshot below) Most of the time we found it’s a third-party plugin( for checkout fields) conflict issue.
if you are using the “Checkout Field Editor for WooCommerce” plugin then you can try deactivating the plugin to check the conflict issue.
mainly preorder plugin adds a custom field called “pre-order date” which ID is `preorder_date` .so if you use a third-party plugin for the edit checkout fields then the preorder date field (custom field from preorder plugin) will be ignored and only core fields are available to edit. (the main reason of the conflict)
all you just need to add a new field by using the checkout field plugin with id “preorder_date”
Check full documentation for Pre-orders for Woocommerce