Как передать значения полей формы, представленной через CF7 на WordPress? - PullRequest
0 голосов
/ 23 октября 2019

Я энтузиаст WordPress, я пытаюсь что-то сделать, но я не нашел способа.

Вот сделка, у меня есть форма, созданная с помощью контактной формы 7, которую я хочуизвлеките значения при отправке формы и используйте их в теле страницы WordPress для скрипта, который я запускаю при отправке формы.

В моем файле functions.php у меня есть:

add_action('wpcf7_mail_sent','save_data_in_variables');
add_action('wpcf7_mail_failed','save_data_in_variables');

function save_data_in_variables($conference_form){
$submission = WPCF7_Submission::get_instance();
if (!$submission){
    echo 'Form was not sent';
}
$posted_data = $submission->get_posted_data();
}

function wpc_vc_shortcode( $atts ) {
echo $posted_data['your-name'];
}
add_shortcode( 'name_in_the_form', 'wpc_vc_shortcode');

и в теле страницы у меня запущен скрипт, который отправляет данные при отправке формы, но я хочу заменить значения на значения формы с помощью шорткода:

<script>
document.addEventListener( 'wpcf7mailsent', function( event ) {
truestats.logEvent('Lead Conference', { id: '[name-in-the-form]' } );
}, false );
</script>

Как мне это сделать? Пока я не показываю значения при отправке формы.

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

1 Ответ

0 голосов
/ 24 октября 2019

Вы можете получить опубликованные данные формы в вашем javascript, нет необходимости создавать шорткод и передавать его в javascript. Рассмотрим пример ниже

<script>
    document.addEventListener( 'wpcf7submit', function( event ) {
        if(event.detail.contactFormId == 'CONTACT_FORM_ID'){   // condition for specific form ,replace "CONTACT_FORM_ID" 
                                                               // with form id you want to use this code for 
            var inputs = event.detail.inputs;
            for ( var i = 0; i < inputs.length; i++ ) {
                if ( 'your-name' == inputs[i].name ) {
                    var name = inputs[i].value;
                    break;
                }
            }
            truestats.logEvent('Lead Conference', { id:  name } );
        }
    }, false );
</script>

Я использовал событие 'wpcf7submit' вместо события 'wpcf7mailsent', которое вы можете использовать в соответствии со своими потребностями.

Вы можете проверить События DOM предоставлены контактной формой 7 для дальнейшей справки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...