Попытка найти правильный крючок для отправки заказа 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);
}

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

Спасибо!

Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Что нового в PHP 8.1?
Что нового в PHP 8.1?
Если вы все еще используете PHP 7, то эта статья для вас. В PHP 8, а именно в PHP 8.1, встроены некоторые очень востребованные функции, которые вам...
Разработка LMS на заказ для повышения эффективности работы и обучения
Разработка LMS на заказ для повышения эффективности работы и обучения
За последние годы в образовании произошла большая революция, и сегодня почти все учебные заведения делают упор на эксклюзивное управление учебным...
1
0
21
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 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

Ваш комментарий заставил меня улыбнуться, спасибо @sylargaf рад помочь :)

Tami 17.05.2022 14:51

Другие вопросы по теме