Заказ поступает в базу до оплаты клиента в WordPress, как сделать чтоб уведомление приходил после оплаты клиента?
Заказы интегрированы с телеграммо, после подтверждения заказа приход уведомление в телеграмм о новом заказе,
нужно сделать так чтоб заказы приходили после оплаты клиента.
Дополнительно:
Слишком размытый вопрос. Как именно приходит ? Используйте хукaction которой срабатывает после оплаты и будет вам счастье
в таком виде приходит в телеграмм до оплаты клиента, а счета в банке не сразу получится проверить сразу пришли деньги или нет, я сам не очень разбираюсь в Wordpress, если вы можете помочь и если вы не против я б связался б с вами в тг или ж ватсап. Спасибо заранее.
Ответы:
Можете использовать этот хук
add_action( 'woocommerce_payment_complete', 'so_payment_complete' ); function so_payment_complete( $order_id ){ // тут отправляете инфо о заказе в телегу } } |
add_action( 'woocommerce_payment_complete', 'so_payment_complete' ); function so_payment_complete( $order_id ){ // тут отправляете инфо о заказе в телегу } }
Но, скорее всего, придется в настройках телеграммо покопаться
Пример взят отсюда
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос

Уведомление в Telegram сейчас, судя по описанию, отправляется при создании заказа, а заказ в WooCommerce создаётся до оплаты. Это нормальная логика: пользователь оформил заказ, WooCommerce создал запись, затем платёжная система должна подтвердить оплату. Если уведомление нужно только после оплаты, его нужно вешать не на создание заказа, а на смену статуса на оплаченный.
Для WooCommerce используйте hook:
add_action('woocommerce_payment_complete', function ($order_id) { $order = wc_get_order($order_id); if (!$order) { return; } // Здесь отправляйте уведомление в Telegram. });
Либо на конкретную смену статуса:
add_action('woocommerce_order_status_processing', function ($order_id) { $order = wc_get_order($order_id); if (!$order) { return; } // Оплаченный заказ для физического товара. });
Для виртуальных/цифровых товаров WooCommerce может переводить заказ сразу в
completed, тогда добавьте и этот статус:add_action('woocommerce_order_status_completed', 'send_paid_order_to_telegram'); add_action('woocommerce_order_status_processing', 'send_paid_order_to_telegram'); function send_paid_order_to_telegram($order_id) { $order = wc_get_order($order_id); if (!$order) { return; } if ($order->get_meta('_telegram_sent')) { return; } // send message $order->update_meta_data('_telegram_sent', 1); $order->save(); }
Метка
_telegram_sentнужна, чтобы не отправить уведомление дважды при повторной смене статуса. Если платёжная система не меняет статус после оплаты, нужно сначала настроить callback/webhook платёжки. Без уведомления от банка/платёжной системы WordPress не узнает, что деньги пришли.Итог: переносите отправку Telegram с hook создания заказа на hook успешной оплаты или статус
processing/completed. Тогда неоплаченные заказы не будут улетать в Telegram как реальные оплаченные заявки.