<?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');