Попытка найти правильный крючок для отправки заказа WooCommerce

У меня есть плагин, который я разработал, который соединяет заказ WooCommerce с HubSpot. Проблема, с которой я столкнулся, заключается в том, что, хотя он работает, хук, который я использую прямо сейчас, отправляет информацию о заказе в HubSpot до, и это технически завершено. Таким образом, это означает, что такие вещи, как невыполненные заказы, отправляются как ожидающие, а коды купонов опускаются.

Так что мне интересно, какой правильный крючок использовать.

Моя цель: каждый раз, когда заказ WooCommerce создается и завершается и заказ WooCommerce обновляется, отправлять данные в HubSpot.

Что у меня есть до сих пор:

add_action('save_post_shop_order', 'printout', 10, 3);

function printout($post_ID, $post, $update)
{
    if (!is_admin()){
        return;
    }

    if ($update){
        $msg = $post_ID;
        $order = get_woocommerce_order($msg);
        mainplugin($msg, $order);
    }

}


add_action('woocommerce_new_order', 'neworder_delegator', 10, 2);


function neworder_delegator($order_id, $order){
    mainplugin($order_id, $order);
}

Так что я думаю, я просто ищу правильный крючок, чтобы получить то, что я хочу.

Спасибо!

🤔 А знаете ли вы, что...
С PHP можно создавать кастомные расширения с помощью Си-кода.


1
21
1

Ответ:

Решено

Вот ваш ответ:

Каждый переход заказа WooCommerce имеет один или несколько динамических хуков, которые срабатывают при изменении статуса.

Они начинаются с «woocommerce_order_status_», а оставшаяся часть действия — это либо новый статус, на который перешел заказ, либо статусы «вход» и «из», задействованные в формате «<status_transition_from>к<status_transition_to>».

Примеры

Вы можете подключить свою функцию к

add_action( 'woocommerce_order_status_completed', 'your_order_completed_function');

Чтобы активировать вашу функцию только тогда, когда заказ переходит в состояние завершено, и нет при возврате средств, отмене, приостановке и т. д., поскольку они будут выполняться при других действиях, таких как

woocommerce_order_status_refunded
woocommerce_order_status_cancelled
woocommerce_order_status_on-hold
woocommerce_order_status_failed
woocommerce_order_status_processing

Отредактировано для добавления ссылки на официальные документы WooCommerce:

https://woocommerce.github.io/code-reference/hooks/hooks.html