Form submit through frontend side using wordpress custom plugin form through shortcode

Form submit through frontend side using wordpress custom plugin form through shortcode

<?php
/*
Plugin Name: Frontend Form Inserter
Description: A plugin to insert form data from the frontend.
Version: 1.0
Author: Your Name
*/

function fform_register_shortcode() {
ob_start();
?>
<form action="" method="post">
<input type="text" name="fform_name" placeholder="Enter your name" required>
<input type="email" name="fform_email" placeholder="Enter your email" required>
<input type="submit" name="fform_submit" value="Submit">
</form>
<?php

if (isset($_POST['fform_submit'])) {
fform_handle_submission();
}

return ob_get_clean();
}
add_shortcode('frontend_form', 'fform_register_shortcode');
function fform_handle_submission() {
global $wpdb;

$table_name = $wpdb->prefix . 'fform_submissions'; // Example table name

// Sanitize the incoming data
$name = sanitize_text_field($_POST['fform_name']);
$email = sanitize_email($_POST['fform_email']);

// Insert into database
$wpdb->insert(
$table_name,
[
'name' => $name,
'email' => $email,
'created_at' => current_time('mysql')
]
);

$inserted_id = $wpdb->insert_id;

echo '<p>Form submitted successfully!</p>';
}
function fform_create_table() {
global $wpdb;

$table_name = $wpdb->prefix . 'fform_submissions';

$charset_collate = $wpdb->get_charset_collate();

$sql = "CREATE TABLE $table_name (
id mediumint(9) NOT NULL AUTO_INCREMENT,
name tinytext NOT NULL,
email varchar(100) NOT NULL,
created_at datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
PRIMARY KEY (id)
) $charset_collate;";

require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta($sql);
}
register_activation_hook(__FILE__, 'fform_create_table');

 

 

 

Leave a Reply