Previously, order success emails were sent as soon as the order status changes. In WooCommerce 3.0.0, however, the method of sending order emails was changed to a cron job; this means emails are queued up and sent in one go, which is meant to speed things up and use less resources.
Unfortunately, many people have experienced issues with this and found that their WooCommerce order emails aren’t being sent at all. The guys at WooCommerce implemented a filter which allows you to revert back to the old method. So if you’re experiencing this issue, try adding the following to your theme’s functions.php file: