Я думаю, вы отправляете свойство set_paid на true
. Он устанавливает статус обработки и сокращения складских позиций. если вам необходимо выполнить действие после завершения оплаты заказа, вы можете использовать хук действия woocommerce_payment_complete .
function on_woocommerce_payment_complete($order_id){
}
add_action( 'woocommerce_payment_complete', 'on_woocommerce_payment_complete'
);`
Однако указанный хук срабатывает только тогда, когда статус заказа был из следующего массива
on-hold', 'pending', 'failed', 'cancelled
до отметки платежа завершено.
Для других статуй ордена срабатывает следующий крюк.
do_action( 'woocommerce_payment_complete_order_status_' . $this->get_status(), $this->get_id() );
Для более подробной информации вы можете проверить
public function payment_complete( $transaction_id = '' ) {
определить в
woocommerce\includes\class-wc-order.php