将联系表格 7 数据保存到自定义数据库而不是 wordpress 数据库中
Saving contact form 7 data into custom db and not wordpress db
我正在使用联系表 7 创建我的表单,我在同一台服务器上托管了一个自定义数据库,它应该包含相关数据。
我想将来自联系人 from7 的数据存储到我的自定义数据库中,而不是 wordpress 数据库中。
我现在functions.php正在做下面的事情,
add_action('wpcf7_before_send_mail', 'save_form');
function save_form($wpcf7) {
/* For connecting to database */
$dbuser = "user";
$dbpass = "pass";
$dbhost = "localhost";
$dbname = "cistom_db";
// Connect to server and select database.
$db = mysqli_connect($dbhost, $dbuser, $dbpass) or die("cannot connect");
mysqli_select_db($db, $dbname) or die("cannot select DB");
$submission = WPCF7_Submission::get_instance();
if ($submission) {
$submited = array();
$submited['title'] = $wpcf7->title();
} else {
echo 'error';
}
$insert_query = "insert into candidate(title)values('" . $submited['title'] . "')";
$result = mysqli_query($db, $insert_query);
if (!$result) {
die('Invalid query: $insert_query : ' . mysqli_error($db));
}
}
但是,这里似乎没有任何效果。有人可以帮忙吗?
按照步骤将联系表 7 数据存储在自定义 table:
1) 创建自定义 table
CREATE TABLE candidate(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(50)
);
2) 创建联系表 7 个字段
[text* title]
[submit "Send"]
3) 添加以下代码到 function.php
function contactform7_before_send_mail( $form_to_DB ) {
//set your db details
$mydb = new wpdb('root','','cistom_db','localhost');
$form_to_DB = WPCF7_Submission::get_instance();
if ( $form_to_DB )
$formData = $form_to_DB->get_posted_data();
$title = $formData['title'];
$mydb->insert( 'candidate', array( 'title' =>$title ), array( '%s' ) );
}
remove_all_filters ('wpcf7_before_send_mail');
add_action( 'wpcf7_before_send_mail', 'contactform7_before_send_mail' );
希望这对你有用。
我正在使用联系表 7 创建我的表单,我在同一台服务器上托管了一个自定义数据库,它应该包含相关数据。
我想将来自联系人 from7 的数据存储到我的自定义数据库中,而不是 wordpress 数据库中。
我现在functions.php正在做下面的事情,
add_action('wpcf7_before_send_mail', 'save_form');
function save_form($wpcf7) {
/* For connecting to database */
$dbuser = "user";
$dbpass = "pass";
$dbhost = "localhost";
$dbname = "cistom_db";
// Connect to server and select database.
$db = mysqli_connect($dbhost, $dbuser, $dbpass) or die("cannot connect");
mysqli_select_db($db, $dbname) or die("cannot select DB");
$submission = WPCF7_Submission::get_instance();
if ($submission) {
$submited = array();
$submited['title'] = $wpcf7->title();
} else {
echo 'error';
}
$insert_query = "insert into candidate(title)values('" . $submited['title'] . "')";
$result = mysqli_query($db, $insert_query);
if (!$result) {
die('Invalid query: $insert_query : ' . mysqli_error($db));
}
}
但是,这里似乎没有任何效果。有人可以帮忙吗?
按照步骤将联系表 7 数据存储在自定义 table:
1) 创建自定义 table
CREATE TABLE candidate(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(50)
);
2) 创建联系表 7 个字段
[text* title]
[submit "Send"]
3) 添加以下代码到 function.php
function contactform7_before_send_mail( $form_to_DB ) {
//set your db details
$mydb = new wpdb('root','','cistom_db','localhost');
$form_to_DB = WPCF7_Submission::get_instance();
if ( $form_to_DB )
$formData = $form_to_DB->get_posted_data();
$title = $formData['title'];
$mydb->insert( 'candidate', array( 'title' =>$title ), array( '%s' ) );
}
remove_all_filters ('wpcf7_before_send_mail');
add_action( 'wpcf7_before_send_mail', 'contactform7_before_send_mail' );
希望这对你有用。