Я пытаюсь внедрить способ доставки сразу после оформления заказа.К сожалению, это не очень хорошо работает, и я не уверен, почему.Я попробовал все хуки после оформления заказа, но ...
Вот мой код:
add_action('woocommerce_checkout_create_order', 'action_checkout_order_processed', 10, 1);
function action_checkout_order_processed( $order ) {
$item = new WC_Order_Item_Shipping();
$item->set_method_title( "Безплатна Доставка - Speedy" );
$item->set_method_id( "speedy_shipping_method" ); // set an existing Shipping method rate ID
$item->calculate_taxes("0");
$shipping_item_id = $order->add_item( $item );
wc_add_order_item_meta($shipping_item_id, "method_id", "speedy_shipping_method");
wc_add_order_item_meta($shipping_item_id, "instance_id", "0");
wc_add_order_item_meta($shipping_item_id, "cost", "0");
wc_add_order_item_meta($shipping_item_id, "total_tax", maybe_unserialize('a:1:{s:5:"total";a:0:{}}'));
$order->calculate_totals();
$order->update_status('on-hold');
$order->save();
}
Это рабочий код в другой функции, поэтому у меня должно быть что-то ещенеправильно, но не уверен, что.
Заранее спасибо, если кто-нибудь может дать мне подсказку!