__( '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 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!
Please provide valid inputs.
| ID | Name | Message | |
|---|---|---|---|
| id); ?> | name); ?> | email); ?> | message); ?> |
| No data found. | |||