This is a cron issue.
- Install a plugin called “WP Control” that inspects and manages wp cron actions
- Load up schedule actions
- See what time woocommerce wc_scheduled_sales action loads – likely it is not done at midnight
- Fix the time to midnight. If you want to be safe, can change it to hourly, which is not necessary
What happens is when woocommerce was first installed it uses the website’s original time zone. Even if timezone is changed after, this cron’s time will not be updated. So it may not end up at correct time (midnight).
A manual adjustment will fix this.