Поддержка Проблемы и решения contact form 7 и Unisender

  • Всем привет, стоит задача:

    На сайте есть несколько форм contact form 7. При их заполнении нужно передать данные из формы в нужный список рассылки на Unisender.

    Нашел подобное решение — https://webpatron.net/ru/blog/sovety-vebmasteru/item/10-integratsiya-wordpress-plagina-contact-form-7-s-servisom-unisender-com

    Но этот мануал уже устарел.

    Пробую реализовать по этому методу через создания плагина:

     add_action( 'wpcf7_mail_sent', 'wpcf7_get_unisender' );
        function wpcf7_get_unisender( $contact_form ) {
            $title = $contact_form->title;
            $posted_data = $contact_form->posted_data;
            if ('Contact form slider' == $title ) { 
                $submission = WPCF7_Submission::get_instance();
                $posted_data = $submission->get_posted_data();
                    
                $email = $posted_data['email-242'];
                $name = $posted_data['text-775'];
                file_get_contents('http://api.unisender.com/ru/api/subscribe?format=json&api_key=5u8o9sms6wa65bdate&list_ids=8501231&fields[email]='.$email.'&fields[Name]='.$name.'&double_optin=0&overwrite=0');
            }
        }

    Пока что не работает ((( Может кто сталкивался с подобной задачей?

    • Тема изменена 3 года, 10 месяцев назад пользователем Denis Yanchevskiy. Причина: Правила п14
Просмотр 2 ответов — с 1 по 2 (всего 2)
  • что именно не работает?
    вернее, на каком этапе работать перестает?

    Спасибо, все заработало. Немного затупил.

    Если кому потребуется вот код получившегося плагина:

     add_action( 'wpcf7_mail_sent', 'wpcf7_get_unisender' );
        function wpcf7_get_unisender( $contact_form ) {
            $title = $contact_form->title;
            if ( 'Contact form slider' == $title ) { // сравниваем название формы с нужной
           
                $submission = WPCF7_Submission::get_instance(); 
                $posted_data = & $submission->get_posted_data();
                    //далее мы перехватывает те поля из формы, которые хотим отправить в унисендер
                $email = $posted_data['email-242']; //перехватываем поле [your-message]
                $name = $posted_data['text-775']; //перехватываем поле [your-name]
                file_get_contents('http://api.unisender.com/ru/api/subscribe?format=json&api_key=хххххххххххх&list_ids=ууууу&fields[email]='.$email.'&double_optin=0&overwrite=0');
    
            }
        }
Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Тема «contact form 7 и Unisender» закрыта для новых ответов.