Подключение к форме отправки виджета Elementor pro form

#wordpress #wordpress-rest-api #elementor

#wordpress #wordpress-rest-api #elementor

Вопрос:

Я создал форму с помощью виджета Elementor form, и это должна быть форма регистрации пользователя. Теперь я хочу получить поля ввода формы и добавить пользователя в базу данных. Как я могу получить поля формы? И отправка электронной почты (которую виджет Elementor form выполняет по умолчанию) должна быть отменена. Я могу отменить его exit после выполнения моего пользовательского кода (вставить пользователя в БД), чтобы вызов Elementor ajax не отправлял электронное письмо.
В виджете есть несколько перехватов (например, « elementor_pro/forms/form_submitted » и некоторые другие), но я хотел бы знать подходящий способсделайте это.

У вас есть какая-то идея? Пожалуйста, дайте мне знать.

Большое спасибо!

Ответ №1:

Из документации elementor это должно привести вас в правильном направлении ?! Вы можете получить доступ к значениям с помощью $records-> get(‘поля’)

 // 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'];
    }

    wp_remote_post( 'HTTP://YOUR_WEBHOOK_URL', [
        'body' => $fields,
    ]);
}, 10, 2 );
 

подробнее читайте здесь https://developers.elementor.com/forms-api/#Form_New_Record_Action