First you need to Create a table and add fields example “contacts” and table fields are below
id , form_id, first_name, last_name, email_id, phone_no, subject, message, date
if you not able to create any table. just copy the below code and pest in to your functions.php file
function ab_create_table_contact_form() {
global $wpdb;
$table_name = $wpdb->prefix. "contacts";
global $charset_collate;
$charset_collate = $wpdb->get_charset_collate();
global $db_version;
if( $wpdb->get_var("SHOW TABLES LIKE '" . $table_name . "'") != $table_name)
{
$create_sql = "CREATE TABLE " . $table_name . " (
id INT(11) NOT NULL auto_increment,
form_id int(11) NOT NULL,
first_name VARCHAR(255) NOT NULL,
last_name VARCHAR(255) NOT NULL,
email_id VARCHAR(255) NOT NULL,
phone_no int(11) NOT NULL,
subject VARCHAR(255) NOT NULL,
message TEXT NOT NULL,
date datetime NOT NULL DEFAULT current_timestamp()
PRIMARY KEY (id))$charset_collate;";
require_once(ABSPATH . "wp-admin/includes/upgrade.php");
dbDelta( $create_sql );
}
//register the new table with the wpdb object
if (!isset($wpdb->contacts))
{
$wpdb->reviews = $table_name;
//add the shortcut so you can use $wpdb->stats
$wpdb->tables[] = str_replace($wpdb->prefix, '', $table_name);
}
}
add_action( 'init', 'ab_create_table_contact_form');
after that now just copy below code and pest in to your functions.php file
add_action('wpcf7_before_send_mail', 'ab_before_send_mail' );
function ab_before_send_mail($form_tag) {
global $wpdb;
$table_name = $wpdb->prefix.'contacts';
$submission = WPCF7_Submission::get_instance();
$contact_form = $submission->get_contact_form();
if ($submission) {
$form_data = $submission->get_posted_data();
$form_id = $form_tag->id();
$first_name = $form_data['first-name'];
$last_name = $form_data['last-name'];
$email_id = $form_data['your-email'];
$phone_no = $form_data['phone-number'];
$subject = $form_data['your-subject'];
$message = $form_data['your-message'];
$form_date = current_time('Y-m-d H:i:s');
$data = array(
'form_id' => $form_id,
'first_name' => $first_name,
'last_name' => $last_name,
'email_id' => $email_id,
'phone_no' => $phone_no,
'subject' => $subject,
'message' => $message,
'date' => $form_date
);
$wpdb->insert( $table_name, $data);
}
}
Last Update on:January 7th, 2024 at 6:09 pm