Мне нужно сделать действие, когда заказ будет завершен.woocommerce_payment_complete не увольняется по порядку маркировки
Я попытался это:
function mysite_woocommerce_payment_complete($order_id) {
error_log("callback fired");
}
add_action('woocommerce_payment_complete', 'mysite_woocommerce_payment_complete');
Но когда я использую флажок, чтобы пометить заказ как заполнить здесь в окне администратора заказов,
... крючок не срабатывает. Я тоже пробовал woocommerce_order_status_changed
, он делает действие, когда я размещаю заказ, но ничего не делает, когда я отмечаю завершенный заказ.
Но когда я отмечаю, что заказ завершен, я получаю электронное письмо о его заполнении.
Спасибо!
Edit: Я тоже пытался woocommerce_order_status_changed
, таким образом:
function mysite_woocommerce_payment_complete($order_id, $old_status, $new_status) {
error_log("$old_status/$new_status \n");
}
add_action('woocommerce_order_status_changed', 'mysite_woocommerce_payment_complete', 99, 3);
но пожары на покупку (я выбрал банковский перевод) и показывает: «ожидание/на удержании», но не так - см. edi2 не срабатывает при ручном обновлении бэкэнд от «на удержании» до «завершено». Ни с помощью галочки, ни в интерфейсе одного порядка.
edit2 woocommerce_order_status_changed
и woocommerce_order_status_completed
работы, это только мое outputed тестирование "ошибка" в debug.log, не error_log по какой-то причине. woocommerce_payment_complete
, который я использовал ранее, не относится к таким методам, как банковский перевод, поэтому это не сработало. Благодаря @helgatheviking для быстрого и правильного ответа
Вы правы, что это ленивый ответ, просто указывая на то, что я считаю подходящим. Я попытаюсь придумать пример базового функционирования. – helgatheviking
Я * сделал * просто протестировал его на WC2.6.11, и эта функция была запущена при полном сохранении порядка в таблице обзора заказов и в окне «Редактировать индивидуальный заказ». Я просмотрел исходный код для 2.6.11 и ['woocommerce_order_status_completed'] (https://github.com/woocommerce/woocommerce/blob/2.6.11/includes/abstracts/abstract-wc-order.php#L2390) будет только не запускается, если у заказа нет идентификатора, старый статус равен новому статусу, или 'wp_update_post()' терпит неудачу. – helgatheviking
Попытался заменить как 'woocommerce_order_status_completed', так и' woocommerce_order_status_completed_notification' без успеха, также работает WC2.6.11:/ – Fanky