This question already has an answer here:
Add shipped status on order status change and when status changed to shipped email notification will be send to billing email address. I tried more and more articles, Please help. I need more explanation from this one.
Please use below code in your functions.php
Register Shipped Order Status in WooCommerce
Here is the code for ending email to custom order status