Contcatform7 или Ninja формы хранения данных в пользовательской таблице базы данных - Wordpress - PullRequest
0 голосов
/ 04 января 2019

Я использую форму Ninja и контактную форму 7 для доступа к пользовательскому вводу.Но проблема, с которой я сталкиваюсь, заключается в том, что представление хранится в таблицах по умолчанию (wp_post и wp_metapost).Мне неудобно получать доступ к введенной заявке.Поэтому я хотел сохранить представление в моей пользовательской таблице в той же базе данных.Как я могу это сделать?

Я использую WordPress сайт с формой ниндзя (контактная форма 7 тоже хорошо), локальный Wamp-сервер Mysql.

1 Ответ

0 голосов
/ 04 января 2019

Пожалуйста, проверьте следующие шаги, как вы можете добавить данные в пользовательскую таблицу базы данных.

1) Создать таблицу базы данных, используя следующий запрос

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

2) Создать форму контактной формы 7 со следующим полем

[text* name] 
[submit "Send"]

3) Добавьте следующий код в файл fucntions.php

 remove_all_filters ('wpcf7_before_send_mail');
 add_action( 'wpcf7_before_send_mail', 'before_send_mail_contactform7' );  

 function before_send_mail_contactform7( $formdata_db ) 
{

   $mydb_CUSTOM = new wpdb('DB_USERNAME','DB_PASSWORD','DB_NAME','HOST_NAME'); // add db detail here

   $formdata_db = WPCF7_Submission::get_instance();

  if ( $formdata_db ) 
    $formData = $formdata_db->get_posted_data();

  $name = $formData['name']; // set form data in variable

   $mydb_CUSTOM->insert( 'contactfordata', array( 'name' =>$name ), array( '%s' ) ); // insert the data in your custom table.
}

Это будет работать для вас проверенный код.

...