nor1m
@nor1m
web-developer

Как взять данные о заказе с помощью хука?

Так я начинаю отправлять данные в crm:
add_action( 'woocommerce_new_order', 'sdgroup_new_order' );
function sdgroup_new_order( $order, $data ){
    send_order_to_amo_crm($order);
}

Внутри этой функции есть такой код:
$order = wc_get_order( $order_id );
Он не работает, выдает ошибку:
wc_get_order should not be called before post types are registered (woocommerce_after_register_post_type action)

Работает если в лоб юзать хук woocommerce_after_register_post_type
Вот так:
add_action( 'woocommerce_after_register_post_type', 'action_function_name_6370' );
function action_function_name_6370(){
    send_order_to_amo_crm(83796);
}

Но я не могу сразу 2 хука использовать. Что тут можно сделать ? Мне самое главное при заказе отправить данные в crm
  • Вопрос задан
  • 213 просмотров
Решения вопроса 1
Мне надо было сделать выгрузку заказов в google sheets
Не помню почему (к сожалению не сделал комментариев по этому поводу), но я отказался от использования хука "woocommerce_new_order" и воспользовался хуком "woocommerce_checkout_order_processed"
он также передает в аргументах "order_id"
В результате все работает ОК

Но есть один момент, который для моих заказчиков является плюсом - Это
Когда клиент делает заказ и пытается оплатить его банковской картой, мой код отрабатывает еще до попытки оплаты, и отравляет данные в таблицу google. Если у клиента оплата прошла, то позже приходят сообщения на почту о новом заказе, но если оплата не прошла (ну например денег не хватило на карте), то на почту ничего не приходит, и менеджер никак не узнает о попытке. В результате отображение созданных заказов в google таблице помогает связаться с клиентом и помочь оформить заказ наложенным платежом, или еще как.

ps. делалось для версии WP 4.6.1 WC 2.6.11
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы