I am creating order in the admin. I added some functionality to the order pay page which is sent to the customer (form-pay.php). I added ability to remove items from the order as well as update your billing and shipping info (both for the order and account). I use ajax and calculate_totals() after an item is removed, which works.
However, I can't seem to figure out how to get shipping applied to the order. I need this to happen when the order is created in the admin and when someone removes an item on the frontend.
I tried just setting the shipping post meta but that isn't working.
function my_order_update_shipping($order_id, $items) {
$order = wc_get_order($order_id);
$order_subtotal = $order->get_subtotal();
if($order_subtotal > '17.99'){
update_post_meta($order_id, '_order_shipping', '0');
}else{
update_post_meta($order_id, '_order_shipping', '4');
}
}
add_action('woocommerce_before_save_order_items', 'my_order_update_shipping');
How can I achieve this? Or apply a shipping method in this way?