__( 'My Widgets', 'blockbloom' ), 'description' => __( 'Custom patterns for my theme', 'blockbloom' ), ] ); } add_action( 'init', 'mytheme_register_block_styles' ); function mytheme_register_block_styles() { // A “fancy” paragraph style register_block_style( 'core/paragraph', [ 'name' => 'fancy-paragraph', 'label' => __( 'Fancy Paragraph', 'blockbloom' ), ] ); // An “outline” button style register_block_style( 'core/button', [ 'name' => 'outline-button', 'label' => __( 'Outline Button', 'blockbloom' ), ] ); } //end register a block pattern function enqueue_tailwind_for_single_posts() { // Check if it's a single post page // Enqueue Tailwind CSS script from CDN wp_enqueue_script( 'tailwind-cdn', // Handle name wp_enqueue_style('Taiilwind_main', get_template_directory_uri() . '/css/tailwind.css', array(), '1.0', 'all') , // CDN URL array(), // Dependencies (none required) null, // Version (null to avoid appending version) false // Load in (false ensures it's in the head, not footer) ); // Add Tailwind config using inline script wp_add_inline_script( 'tailwind-cdn', "tailwind.config = { theme: { extend: { colors: { purple: { 400: '#a78bfa', 500: '#8b5cf6', 600: '#7c3aed', 700: '#6d28d9' } } } }, corePlugins: { preflight: false } };" ); } add_action('wp_enqueue_scripts', 'enqueue_tailwind_for_single_posts'); /** * simple data insertion */ function append_class_to_h2_in_post_content( $block_content, $block ) { if ( $block['blockName'] === 'core/post-content' ) { $block_content = preg_replace( '/]*)class="([^"]*)"/', ' tags with an existing class attribute $block_content = preg_replace( '/]*)class="([^"]*)"/', ' tags without a class attribute $block_content = preg_replace( '/]*class=)/', '

admin_url('admin-ajax.php'), )); } add_action('wp_enqueue_scripts', 'enqueue_custom_scripts'); // Enqueue scripts and styles function enqueue_block_assets() { // Enqueue Tailwind CSS wp_enqueue_style('Taiilwind_main', get_template_directory_uri() . '/css/tailwind.css', array(), '1.0', 'all'); // Enqueue custom JavaScript wp_enqueue_script('js_main', get_template_directory_uri() . '/js/custom-ajax.js', array(), null, true); } add_action('enqueue_block_assets', 'enqueue_block_assets'); //enqueue block assets css // Enqueue an additional custom CSS file. function my_block_theme_enqueue_styles_main() { wp_enqueue_style('custom-styles_main', get_template_directory_uri() . '/css/custom-styles.css', array(), '1.0'); } // Enqueue the custom CSS file for block editor add_action('enqueue_block_assets', 'my_block_theme_enqueue_styles_main'); // Create pages on theme activation function create_pages_on_theme_activation() { $pages_to_create = [ [ 'title' => 'Home', 'slug' => 'home', 'template' => 'index', ], [ 'title' => 'About', 'slug' => 'about', 'template' => 'About', ], [ 'title' => 'Contact', 'slug' => 'contact', 'template' => 'contact', ], [ 'title' => 'Blog', 'slug' => 'Blog', 'template' => 'Blog', ], ]; foreach ($pages_to_create as $page) { if (!get_page_by_path($page['slug'])) { $page_id = wp_insert_post([ 'post_title' => $page['title'], 'post_name' => $page['slug'], 'post_status' => 'publish', 'post_type' => 'page', 'post_content' => 'This is the ' . $page['title'] . ' page.', ]); if (!is_wp_error($page_id)) { update_post_meta($page_id, '_wp_page_template', $page['template']); } } } } add_action('after_switch_theme', 'create_pages_on_theme_activation'); // AJAX handler for form submission add_action('wp_ajax_sdp_submit_form', 'sdp_handle_ajax_submission'); add_action('wp_ajax_nopriv_sdp_submit_form', 'sdp_handle_ajax_submission'); function sdp_handle_ajax_submission() { // Verify nonce $nonce = $_POST['sdp_nonce'] ?? ''; if (!wp_verify_nonce($nonce, 'sdp_form_nonce')) { wp_send_json_error(['message' => 'Nonce verification failed.']); wp_die(); } // Sanitize input $name = sanitize_text_field($_POST['name'] ?? ''); $email = sanitize_email($_POST['email'] ?? ''); $message = sanitize_textarea_field($_POST['message'] ?? ''); // Validate if (empty($name) || !is_email($email) || empty($message)) { wp_send_json_error(['message' => 'All fields are required.']); exit; } // Insert into DB global $wpdb; $table_name = $wpdb->prefix . 'simple_data'; $result = $wpdb->insert($table_name, [ 'name' => $name, 'email' => $email, 'message' => $message ]); // Handle DB errors if ($result === false) { wp_send_json_error(['message' => 'Database error: ' . $wpdb->last_error]); exit; } // Success wp_send_json_success(['message' => 'Data Sent Succesfully!']); exit; // Critical to prevent extra output } //for admin and user to show the data //add form to sumit it backend // Add a menu item in the admin dashboard. add_action('admin_menu', 'sdp_add_menu'); function sdp_add_menu() { add_menu_page( 'BlockBloom', // Page title 'BlockBloom', // Menu title 'manage_options', // Capability 'simple-data', // Menu slug 'sdp_admin_page', // Callback function 'dashicons-admin-users', // Icon 20 // Position ); } // Display the admin page. function sdp_admin_page() { global $wpdb; $table_name = $wpdb->prefix . 'simple_data'; // Handle form submission. if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['sdp_submit'])) { $name = sanitize_text_field($_POST['name']); $email = sanitize_text_field($_POST['email']); $message= sanitize_text_field($_POST['message']); if ($name && $email && $message) { $wpdb->insert($table_name, ['name' => $name, 'email' => $email, 'message' => $message]); echo "

Data inserted successfully!

"; } else { echo "

Please provide valid inputs.

"; } } // Fetch data from the table. $results = $wpdb->get_results("SELECT * FROM $table_name"); ?>

Data List

prepare("AND MONTH(CURDATE()) = %s", $selected_month); } // Total count query $total_query = "SELECT COUNT(*) FROM $table_name WHERE 1=1 $month_where"; $total = $wpdb->get_var($total_query); $pages = ceil($total / $per_page); // Data query with pagination and ordering $query = "SELECT * FROM $table_name WHERE 1=1 $month_where ORDER BY id DESC LIMIT %d OFFSET %d"; $results = $wpdb->get_results($wpdb->prepare($query, $per_page, $offset)); ?>
ID Name Email Message
id); ?> name); ?> email); ?> message); ?>
No data found.
1) { echo 'Displaying ' . ($offset + 1) . '-' . min($offset + $per_page, $total) . ' of ' . $total . ''; echo ''; $current_url = admin_url('admin.php?page=simple-data'); $base_url = add_query_arg('paged', '%#%', $current_url); if ($current_page > 1) { $prev_page = $current_page - 1; echo '«'; } $page_links = paginate_links(array( 'base' => $base_url, 'format' => '', 'prev_text' => '«', 'next_text' => '»', 'total' => $pages, 'current' => $current_page, 'mid_size' => 2, )); echo $page_links; if ($current_page < $pages) { $next_page = $current_page + 1; echo '»'; } echo ''; } ?>

prefix . 'simple_data'; $wpdb->query("DROP TABLE IF EXISTS $table_name"); } // Create the table on theme activation. function sdp_create_table_on_theme_activation() { global $wpdb; $table_name = $wpdb->prefix . 'simple_data'; // Check if the table already exists. if ($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) { // SQL to create the table. $charset_collate = $wpdb->get_charset_collate(); $sql = "CREATE TABLE $table_name ( id mediumint(9) NOT NULL AUTO_INCREMENT, name varchar(255) NOT NULL, email varchar(255) NOT NULL, message text NOT NULL, PRIMARY KEY (id) ) $charset_collate;"; // Include the upgrade file to use dbDelta function. require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); dbDelta($sql); } } add_action('after_switch_theme', 'sdp_create_table_on_theme_activation'); //close widget //for night mode function my_theme_enqueue_scripts() { // Enqueue the script wp_enqueue_script( 'night-day-toggle', get_template_directory_uri() . '/assets/js/night-day-toggle.js', array(), filemtime(get_template_directory() . '/assets/js/night-day-toggle.js'), true ); // Localize script variables wp_localize_script('night-day-toggle', 'myThemeVars', array( 'sunIcon' => esc_url(get_template_directory_uri() . '/assets/sun.png'), 'nightIcon' => esc_url(get_template_directory_uri() . '/assets/night.png') )); } add_action('wp_enqueue_scripts', 'my_theme_enqueue_scripts');