Как отправлять сообщения из Contact Form 7 (разные формы) в разные группы?

Ссылка скопирована
1 ответ

На сайте Wordpress формы сделаны с помощью Contact Form 7, налажена отправка запросов из форм в телеграмм с помощью Contact Form 7 + Telegram.
необходимо одну из форм направлять в отдельную для этой формы группу.
как разделить запросы: запросы из форм A,B,C в группу A, а запросы из формы D в группу B?

Дополнительно

Откуда нам знать как у тебя реализована отправка в телегу.
Но не понятно что мешает отправить нужную форму по нужному адресу.

  • я же написала, плагин Contact Form 7 + Telegram, стандартные настройки - введен в плагине токен бота, бот добавлен в группу, активирован (/cf7tg_start). все
    в формах CF7 добавлен шорткод [telegram]. все отправляется корректно, но в одну группу. а мне из всех форм нужно выделить одну и конкретно из этой формы отправлять запросы в другую группу
  • MagnoliasFlwrs, телеграмма нет ни в ВП ни в CF7. А интеграции можно сделать десятком разных способов.
    Но если ты считаешь, что всё всем понятно - что ж, я удаляюсь.
  • необходимо одну из форм направлять в отдельную для этой формы группу.
    как разделить запросы: запросы из форм A,B,C в группу A, а запросы из формы D в группу B?

    На сколько я знаю, готовым способом - никак, надо писать плагин, который будет обрабатывать определенные формы.

  • Михаил Р., там 3 разных формы. В чем проблема каждую отправить куда надо - не понятно.
  • Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Сергей Миронов Ответ

    Разделить отправку Contact Form 7 по разным Telegram-группам можно только там, где у интеграции есть выбор получателя. Если ваш плагин «Contact Form 7 + Telegram» поддерживает отдельный chat_id на уровне конкретной формы, используйте эту настройку. Если в плагине есть только один глобальный чат и shortcode [telegram], готового переключателя может не быть.

    Технически задача решается через ID формы: формы A, B, C отправляем в один chat_id, форму D — в другой. Пример собственной отправки после успешной отправки CF7:

    add_action('wpcf7_mail_sent', function ($form) {
        $chat_map = [
            123 => '-1001111111111',
            456 => '-1002222222222',
        ];
     
        $form_id = (int) $form->id();
        if (empty($chat_map[$form_id])) {
            return;
        }
     
        $submission = WPCF7_Submission::get_instance();
        $data = $submission ? $submission->get_posted_data() : [];
     
        $text = 'Новая заявка с формы #' . $form_id . "n";
        foreach ($data as $key => $value) {
            if (is_array($value)) {
                $value = implode(', ', $value);
            }
            $text .= $key . ': ' . wp_strip_all_tags($value) . "n";
        }
     
        wp_remote_post('https://api.telegram.org/bot' . TELEGRAM_BOT_TOKEN . '/sendMessage', [
            'body' => [
                'chat_id' => $chat_map[$form_id],
                'text'    => $text,
            ],
        ]);
    });

    add_action('wpcf7_mail_sent', function ($form) { $chat_map = [ 123 => '-1001111111111', 456 => '-1002222222222', ]; $form_id = (int) $form->id(); if (empty($chat_map[$form_id])) { return; } $submission = WPCF7_Submission::get_instance(); $data = $submission ? $submission->get_posted_data() : []; $text = 'Новая заявка с формы #' . $form_id . "n"; foreach ($data as $key => $value) { if (is_array($value)) { $value = implode(', ', $value); } $text .= $key . ': ' . wp_strip_all_tags($value) . "n"; } wp_remote_post('https://api.telegram.org/bot' . TELEGRAM_BOT_TOKEN . '/sendMessage', [ 'body' => [ 'chat_id' => $chat_map[$form_id], 'text' => $text, ], ]); });

    • ID формы виден в списке Contact Form 7 или в shortcode формы.
    • ID группы Telegram обычно начинается с -100.
    • Токен бота лучше хранить в wp-config.php или настройках своего плагина, а не прямо в теме.
    • Если старый плагин продолжит отправлять все формы в общий чат, будут дубли.

    Поэтому сначала проверьте настройки текущего плагина. Если per-form chat_id нет, нормальный путь — небольшой mu-plugin/кастомный плагин с картой form_id => chat_id и отключением старой отправки там, где она дублирует сообщения.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно