Передача значения контактной формы 7 в другую форму в Wordpress - PullRequest
0 голосов
/ 05 июля 2019

У меня есть контактная форма на моем веб-сайте, которая сохраняет информацию в нашей базе данных контактных форм.Мне также нужно, чтобы эти данные были переданы в другую форму.

<div class="row">
<div class="column small-12 medium-6">[text* first-name placeholder "First Name*"]</div>
<div class="column small-12 medium-6">[text* last-name placeholder "Last Name*"]</div>
<div class="column small-12 medium-6">[email* email placeholder "Email*"]</div>
<div class="column small-12 medium-6">[text* phone placeholder "Phone*"]</div>
<div class="column checking"><span class="intro">Preferred method of contact*</span> [checkbox* checkbox use_label_element "Email" "Phone"]</div>
<div class="column small-12">[textarea* enquiry placeholder "Further Info"]</div>
<div class="column text-center"><button type="submit" class="button">Send Enquiry</button></div>
</div>

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

<form id="form" action="http:www.contoso.com.jsp" method="post">
<input type="hidden" name="FirstName" value="first-name"/>
<input type="hidden" name="LastName" value="last-name"/>
<input type="hidden" name="Email" value="email"/>
<input type="hidden" name="Mobile" value="phone"/>
<input type="hidden" name="Comment" value="enquiry"/>

Как получить информацию из первой формы во вторую через контактную форму 7 в Wordpress?

Я думал, что это может работать в дополнительных настройкахстраница CF7, но мои знания кодирования довольно низки:

document.getElementById('FirstName').value = document.getElementById('first-name').value;
document.getElementById('LastName').value = document.getElementById('last-name').value;
document.getElementById('Email').value = document.getElementById('email').value;
document.getElementById('Mobile').value = document.getElementById('phone').value;
document.getElementById('Comment').value = document.getElementById('enquiry').value;
on_submit: "document.forms['form'].submit();"

1 Ответ

0 голосов
/ 05 июля 2019

У меня есть другая логика для достижения вашей цели.1) создайте очень простую таблицу в базе данных ваших сайтов:

CREATE TABLE wp_cf7_test(
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(50)
);

2) Затем войдите в область администрирования ваших сайтов WordPress, откройте редактор форм Contact Form 7 и снова создайте очень простую форму, например:

[text* name]
[submit "Send"]

После того, как вы это сделаете, откройте ваш файл functions.php сайтов и создайте следующую функцию, которая должна быть достаточно понятной, инициализируйте глобальную переменную $ wpdb, которую мы будем использовать для запускавставить запрос.затем вы присваиваете переменную метод WPCF7_Submission :: get_instance () и получаете доступ к любым частям публикуемого массива, которые вам нужны, или в данном случае это всего лишь один элемент с именем «name», который называется полем ввода нашей формы.Наконец, вы выполняете функцию вставки, которая отправит ваши данные в таблицу, созданную ранее.:

<?php 
function contactform7_before_send_mail( $form_to_DB ) {
    global $wpdb;
    $form_to_DB = WPCF7_Submission::get_instance();
    if ( $form_to_DB ) 
        $formData = $form_to_DB->get_posted_data();
    $name = $formData['name'];

    $wpdb->insert( 'wp_cf7_test', array( 'name' =>; $name ), array( '%s' ) );
}
remove_all_filters ('wpcf7_before_send_mail');
add_action( 'wpcf7_before_send_mail', 'contactform7_before_send_mail' );

Наконец, получите значения Contactform7 в любую другую таблицу, которую вы хотите.

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