Форма перехвата WP / Elementor и перенаправление с данными - PullRequest
0 голосов
/ 13 октября 2018

У меня есть встроенная в Elementor форма, которую я хочу перехватить, обработать данные и переслать третьей стороне, а затем показать данные на «подтверждающей» карте.

Я могу построить весь этот процесс как одну страницу, задавая каждый из них как не отображаемый с помощью CSS, а затем показывая / скрывая с помощью JS, когда я получаю ответы AJAX.Это не идеально, так как ломается с выключенным JS.

Я не смог найти правильный хелот Elementor и способ заполнить новую страницу PHP, кто-нибудь имел опыт с этим?

1 Ответ

0 голосов
/ 30 марта 2019

Существует несколько способов POST-данных на другой URL из веб-формы Elementor.

Один из них использует множество интеграций API, таких как Mailchimp, ActiveCampaign, Zapier и т. Д. (См. * 1004).* и (https://docs.elementor.com/category/405-integrations)

Другой (очень ограниченный метод) - использование действия формы после отправки и выбор «перенаправления», а затем использование короткого кода каждого поля в качестве отдельных строк данных в URL-адресе, например:

mysite.com / thank-you? Fname = [field id = "fname"] & lname = [field id = "lname"]

Вы даже можете создать свою страницу / thank-you / вElementor, чтобы получить эти данные и заполнить элементы Elementor, такие как текст, заголовок, ссылки и т. Д., Данными поля формы. Например, я мог бы добавить текстовый элемент на страницу / thank-you / и выбрать динамический вместо ввода в текстовой областии из динамического раскрывающегося списка выберите «параметр запроса», а для «типа» выберите GET и в качестве имени параметра используйте ваши уникальные URL-ключи, такие как fname, lname и т. д. Вы даже можете установить префикс, суффикс и даже запасной вариант text вместе с ним.

Наконец, здесь приведена статья о том, как выполнить внутренний код для передачи данных извне (https://developers.elementor.com/forms-api/#Form_New_Record_Action).

// A send custom WebHook
add_action( 'elementor_pro/forms/new_record', function( $record, $handler ) {
    //make sure its our form
    $form_name = $record->get_form_settings( 'form_name' );

    // Replace MY_FORM_NAME with the name you gave your form
    if ( 'MY_FORM_NAME' !== $form_name ) {
        return;
    }

    $raw_fields = $record->get( 'fields' );
    $fields = [];
    foreach ( $raw_fields as $id => $field ) {
        $fields[ $id ] = $field['value'];
    }

    // Replace HTTP://YOUR_WEBHOOK_URL with the actuall URL you want to post the form to
    wp_remote_post( 'HTTP://YOUR_WEBHOOK_URL', [
        'body' => $fields,
    ]);
}, 10, 2 );

И поток с множеством других примеров, интегрирующихся с различнымиAPI, использующие этот шаблон в качестве учебника для начинающих (https://github.com/elementor/elementor/issues/2397)

...