403) ); } // Security: Double-check user permissions if (!current_user_can('edit_posts')) { wp_die( __('You do not have permission to create posts.', 'sliderberg'), __('Permission Error', 'sliderberg'), array('response' => 403) ); } // IMPORTANT: Keep post content exactly as provided - DO NOT MODIFY $post_content = '

Welcome to Your First Slide

Start customizing your slider by adding content, images, and more slides. Click on this slide to edit its background and content.

Get Started
'; // Security: Sanitize post title and prepare data $post_data = array( 'post_title' => sanitize_text_field(__('New Post with SliderBerg', 'sliderberg')), 'post_content' => $post_content, // Content kept exactly as provided 'post_status' => 'draft', 'post_type' => 'post', 'post_author' => get_current_user_id(), 'meta_input' => array( '_sliderberg_created' => current_time('mysql'), '_sliderberg_version' => SLIDERBERG_VERSION ) ); // Security: Use wp_insert_post with error handling $post_id = wp_insert_post($post_data, true); if (is_wp_error($post_id)) { error_log('SliderBerg: Failed to create post - ' . $post_id->get_error_message()); wp_die( __('Failed to create post. Please try again.', 'sliderberg'), __('Creation Error', 'sliderberg'), array('response' => 500) ); } if ($post_id) { // Security: Sanitize redirect URL and validate $edit_url = admin_url('post.php?post=' . absint($post_id) . '&action=edit'); $edit_url = wp_validate_redirect($edit_url, admin_url()); // Security: Add success message and redirect wp_safe_redirect($edit_url); exit; } else { wp_die( __('Failed to create post. Please try again.', 'sliderberg'), __('Creation Error', 'sliderberg'), array('response' => 500) ); } } add_action('admin_init', 'sliderberg_handle_create_post_action'); /** * Enhanced function to handle page creation with additional security */ function sliderberg_handle_create_page_action() { // Security: Check if this is our action if (!isset($_GET['action']) || $_GET['action'] !== 'sliderberg_create_page') { return; } // Security: Validate the request if (!sliderberg_validate_action_request('sliderberg_create_page')) { wp_die( __('Security check failed. Please try again.', 'sliderberg'), __('Security Error', 'sliderberg'), array('response' => 403) ); } // Security: Double-check user permissions if (!current_user_can('edit_pages')) { wp_die( __('You do not have permission to create pages.', 'sliderberg'), __('Permission Error', 'sliderberg'), array('response' => 403) ); } // IMPORTANT: Keep page content exactly as provided - DO NOT MODIFY $page_content = '

Welcome to Your Landing Page

Create an amazing landing page with this slider. Add compelling content, beautiful images, and call-to-action buttons to engage your visitors.

Learn More
'; // Security: Sanitize page title and prepare data $page_data = array( 'post_title' => sanitize_text_field(__('New Landing Page with SliderBerg', 'sliderberg')), 'post_content' => $page_content, // Content kept exactly as provided 'post_status' => 'draft', 'post_type' => 'page', 'post_author' => get_current_user_id(), 'meta_input' => array( '_sliderberg_created' => current_time('mysql'), '_sliderberg_version' => SLIDERBERG_VERSION ) ); // Security: Use wp_insert_post with error handling $page_id = wp_insert_post($page_data, true); if (is_wp_error($page_id)) { error_log('SliderBerg: Failed to create page - ' . $page_id->get_error_message()); wp_die( __('Failed to create page. Please try again.', 'sliderberg'), __('Creation Error', 'sliderberg'), array('response' => 500) ); } if ($page_id) { // Security: Sanitize redirect URL and validate $edit_url = admin_url('post.php?post=' . absint($page_id) . '&action=edit'); $edit_url = wp_validate_redirect($edit_url, admin_url()); // Security: Add success message and redirect wp_safe_redirect($edit_url); exit; } else { wp_die( __('Failed to create page. Please try again.', 'sliderberg'), __('Creation Error', 'sliderberg'), array('response' => 500) ); } } add_action('admin_init', 'sliderberg_handle_create_page_action'); /** * Enhanced admin styles enqueue with security checks */ function sliderberg_admin_styles($hook) { // Security: Only load on our admin pages if (strpos($hook, 'sliderberg-welcome') !== false) { // Security: Verify user has access to this page if (!current_user_can('edit_posts')) { return; } wp_enqueue_style( 'sliderberg-admin-welcome', SLIDERBERG_PLUGIN_URL . 'assets/css/admin-welcome.css', array(), SLIDERBERG_VERSION ); wp_enqueue_script( 'sliderberg-admin-welcome', SLIDERBERG_PLUGIN_URL . 'assets/js/admin-welcome.js', array('jquery'), SLIDERBERG_VERSION, true ); } } add_action('admin_enqueue_scripts', 'sliderberg_admin_styles'); /** * Enhanced activation redirect with security checks */ function sliderberg_activation_redirect() { // Security: Check activation redirect option and user permissions if (get_option('sliderberg_activation_redirect', false) && current_user_can('edit_posts')) { delete_option('sliderberg_activation_redirect'); // Security: Only redirect for single plugin activation, not bulk if (!isset($_GET['activate-multi'])) { $redirect_url = admin_url('admin.php?page=sliderberg-welcome'); wp_safe_redirect($redirect_url); exit; } } } add_action('admin_init', 'sliderberg_activation_redirect'); /** * Set activation redirect flag on plugin activation */ function sliderberg_set_activation_redirect() { // Security: Only set flag if user can edit posts if (current_user_can('edit_posts')) { add_option('sliderberg_activation_redirect', true); } } // Use the main plugin file for activation hook register_activation_hook(dirname(__DIR__) . '/sliderberg.php', 'sliderberg_set_activation_redirect'); /** * Enhanced welcome page with security improvements */ function sliderberg_welcome_page() { // Security: Final permission check if (!current_user_can('edit_posts')) { wp_die( __('You do not have permission to access this page.', 'sliderberg'), __('Permission Error', 'sliderberg'), array('response' => 403) ); } // Security: Generate secure nonces with enhanced security $create_post_nonce = sliderberg_generate_secure_nonce('sliderberg_create_post'); $create_page_nonce = sliderberg_generate_secure_nonce('sliderberg_create_page'); // Security: Create properly escaped URLs $create_post_url = esc_url(admin_url('admin.php?page=sliderberg-welcome&action=sliderberg_create_post&_wpnonce=' . $create_post_nonce)); $create_page_url = esc_url(admin_url('admin.php?page=sliderberg-welcome&action=sliderberg_create_page&_wpnonce=' . $create_page_nonce)); ?>

1

<?php echo esc_attr__('Add SliderBerg Block', 'sliderberg'); ?>
2

<?php echo esc_attr__('Customize Slides', 'sliderberg'); ?>
3

<?php echo esc_attr__('Configure Settings', 'sliderberg'); ?>

📝

🏠

🎨

📱

🎯

🔧

🖼️

⏱️

📐

🎯

array( 'name' => 'Ultimate Blocks', 'slug' => 'ultimate-blocks', 'description' => __('Enhance your Gutenberg editor with 25+ powerful blocks.', 'sliderberg') ), 'wp-table-builder' => array( 'name' => 'WP Table Builder', 'slug' => 'wp-table-builder', 'description' => __('Create beautiful tables with an intuitive drag & drop interface.', 'sliderberg') ), 'tableberg' => array( 'name' => 'Tableberg', 'slug' => 'tableberg', 'description' => __('Create and manage tables directly in the Gutenberg editor.', 'sliderberg') ) ); foreach ($plugins as $plugin) { $status = 'install'; $button_text = __('Install Now', 'sliderberg'); if (is_plugin_active($plugin['slug'] . '/' . $plugin['slug'] . '.php')) { $status = 'active'; $button_text = __('Active', 'sliderberg'); } elseif (file_exists(WP_PLUGIN_DIR . '/' . $plugin['slug'] . '/' . $plugin['slug'] . '.php')) { $status = 'inactive'; $button_text = __('Activate', 'sliderberg'); } ?>