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

Я ищу плагин wordpress, который позволяет администратору создавать форму и отправлять эту форму на настраиваемый URL-адрес. Я использовал контактную форму 7, но она не позволяет использовать такую ​​функциональность.

Единственное решение, которое я нашел, - это либо создать настраиваемую форму, либо использовать перехватчики контактной формы 7 для получения данных публикации и отправки этих данных на настраиваемый URL-адрес через вызов curl.

Любое лучшее решение, пожалуйста ??

Использовал этот маленький крючок ниндзя, но не работает:

function ninja_forms_handler() {
  add_action ( 'ninja_forms_post_process', 'change_ninja_forms_landing_page', 1, 2 );
}
add_action('init', 'ninja_forms_handler');

function change_ninja_forms_landing_page(){
    global $ninja_forms_processing; 

    $form_id = $ninja_forms_processing->get_form_ID(); 

    $ninja_forms_processing->update_form_setting( 'landing_page', 'test.php' ); 
    }     
}

person Maha Dev    schedule 24.04.2017    source источник


Ответы (2)


Здесь я указал два способа, используя контактную форму 7

Way-1 Через URL-адрес настраиваемого действия контактной формы

  1. Создайте файл custom_url.php в корневой папке вашего сайта. В этом файле вы можете получить данные сообщения контактной формы и написать свой код curl и все, что захотите ..

  2. Скопируйте приведенный ниже код и вставьте в свою тему файл function.php.

     add_filter('wpcf7_form_action_url', 'wpcf7_custom_form_action_url');
     function wpcf7_custom_form_action_url()
        {
            return 'custom_url.php';
        }
    
  3. Дайте этому файлу custom_url.php действие контактной формы. Скопируйте приведенный ниже код и вставьте его на свою страницу или опубликуйте, где хотите.

    ‹Form class =" "action =" custom_url.php "method =" post "name =" "›
    [contact-form-7 id = "1" title = "contact form 7"]
    ‹/ форма>

Way-2 Хотя контактная форма 7 перехватывает "wpcf7_before_send_mail"

add_action('wpcf7_before_send_mail', 'CF7_pre_send');

function CF7_pre_send($cf7) {
    $submission = WPCF7_Submission::get_instance();

    if ($submission) {
        $posted_data = $submission->get_posted_data();
        $arrFields = array();
        foreach ($posted_data as $key => $value) {
            //$strKeyVals .= $key.":".$value.", ";
            if ("_wp" != substr($key, 0, 3)) {
                $arrFields[] = $key . '${$' . $value;
            }
        }
/* Here you can write curl and whatever you want */

    }
}
person Lucky    schedule 24.04.2017

Это должно помочь CF7 Docs.

Добавьте код только в нижний колонтитул шаблона страницы контактов.

Дай мне знать, как у тебя дела.

person stevie-c91    schedule 24.04.2017