То, что я пытаюсь сделать, это сделать заказ программно, а затем подключить его данные для передачи информации в API, например:
function make_custom_order() {
$order = wc_create_order();
$order->add_product( wc_get_product( $product_id ), 1 );
$order->set_address( $order_info, 'billing' );
$order->calculate_totals();
$order->update_status('pending');
update_post_meta($order->get_id(), 'offer_id', $offer_id);
update_post_meta($order->get_id(), 'country_code', $country_code);
update_post_meta($order->get_id(), 'price', $price);
update_post_meta($order->get_id(), 'lander', $lander);
update_post_meta($order->get_id(), 'ip', $ip);
update_post_meta($order->get_id(), 'referrer', $referrer);
update_post_meta($order->get_id(), 'device', $device);
update_post_meta($order->get_id(), 'product_id', $product_id);
update_post_meta($order->get_id(), 'network', 'somenetwork');
}
add_action( 'woocommerce_checkout_process', 'make_custom_order' );
Это работает, и заказ создан, теперь дляЧасть стороннего API, я использую эту функцию:
add_action( 'woocommerce_new_order', 'send_to_api' );
function send_to_api( $order_id ) {
echo get_post_meta( $order_id, 'device', true );
}
Однако я заметил, что woocommerce_new_order запускается до сохранения метаданных, и я не могу получить метаданные для отправки в сторонний API.
Кто-нибудь знает, как подключить новый порядок после сохранения метаданных всех пользовательских полей?
Спасибо