<?php
/**
 * Plugin Name: Dima Shop Pro
 * Plugin URI: https://dimashop.ir
 * Description: فروشگاه حرفه‌ای، سبک و امن وردپرس با پشتیبانی از درگاه‌های ایرانی، SEO پیشرفته، امنیت چندلایه، هوش مصنوعی GaptGPT و سیستم لایسنس یکپارچه
 * Version: 3.2.1
 * Author: Dima Team
 * Author URI: https://dimashop.ir
 * Text Domain: dima-shop
 * Domain Path: /languages
 * Requires at least: 5.8
 * Requires PHP: 7.4
 * License: GPL v2 or later
 * License URI: https://www.gnu.org/licenses/gpl-2.0.html
 */

if (!defined('ABSPATH')) exit;

// ═══════════════════════════════════════════════════════════════
// ثوابت اصلی
// ═══════════════════════════════════════════════════════════════
define('DIMA_SHOP_VERSION', '3.2.1');
define('DIMA_SHOP_PATH', plugin_dir_path(__FILE__));
define('DIMA_SHOP_URL', plugin_dir_url(__FILE__));
define('DIMA_SHOP_BASENAME', plugin_basename(__FILE__));
define('DIMA_SHOP_FILE', __FILE__);
define('DIMA_SHOP_MIN_PHP', '7.4');
define('DIMA_SHOP_MIN_WP', '5.8');

// آدرس‌های سرور لایسنس و بروزرسانی
define('DIMA_SHOP_API_URL', 'https://api.dimashop.ir');
define('DIMA_SHOP_UPDATE_URL', 'https://api.dimashop.ir/v1/updates');
define('DIMA_SHOP_SITE_URL', 'https://dimashop.ir');

// ═══════════════════════════════════════════════════════════════
// بررسی نیازمندی‌ها
// ═══════════════════════════════════════════════════════════════
function dima_shop_check_requirements() {
    $errors = array();
    
    if (version_compare(PHP_VERSION, DIMA_SHOP_MIN_PHP, '<')) {
        $errors[] = sprintf('PHP %s+ (نسخه فعلی: %s)', DIMA_SHOP_MIN_PHP, PHP_VERSION);
    }
    
    if (version_compare(get_bloginfo('version'), DIMA_SHOP_MIN_WP, '<')) {
        $errors[] = sprintf('WordPress %s+', DIMA_SHOP_MIN_WP);
    }
    
    if (!extension_loaded('pdo') || !extension_loaded('curl')) {
        $errors[] = 'افزونه‌های PHP (PDO, cURL) فعال نیستند';
    }
    
    if (!empty($errors)) {
        deactivate_plugins(DIMA_SHOP_BASENAME);
        wp_die(
            '<h1>Dima Shop فعال نشد</h1><p>نیازمندی‌های زیر برآورده نشده:</p><ul><li>' . 
            implode('</li><li>', $errors) . '</li></ul>',
            'خطای Dima Shop',
            array('back_link' => true)
        );
    }
}

// ═══════════════════════════════════════════════════════════════
// بارگذاری کلاس‌های اصلی
// ═══════════════════════════════════════════════════════════════
$core_files = array(
    // هسته فروشگاه
    'includes/class-dima-product.php',
    'includes/class-dima-cart.php',
    'includes/class-dima-checkout.php',
    'includes/class-dima-gateway.php',
    
    // امنیت و SEO
    'includes/class-dima-security.php',
    'includes/class-dima-seo.php',
    
    // دسته‌بندی و کوپن
    'includes/class-dima-attribute.php',
    'includes/class-dima-coupon.php',
    
    // گزارشات و ویژگی‌های کاربر
    'includes/class-dima-reports.php',
    'includes/class-dima-wishlist.php',
    'includes/class-dima-compare.php',
    'includes/class-dima-review.php',
    
    // ویژگی‌های پیشرفته فروش
    'includes/class-dima-flash-sale.php',
    'includes/class-dima-quick-view.php',
    'includes/class-dima-reward.php',
    'includes/class-dima-catalog-mode.php',
    
    // API و خروجی
    'includes/class-dima-rest-api.php',
    'includes/class-dima-pwa.php',
    'includes/class-dima-export.php',
    'includes/class-dima-notification.php',
    
    // مدیریت بروزرسانی و لایسنس
    'includes/class-dima-update-manager.php',
    
    // هوش مصنوعی GaptGPT
    'includes/class-dima-ai.php',
    
    // گالری و میگریتور
    'includes/class-dima-gallery.php',
    'includes/class-dima-migrator.php',
    
    // Import داده‌های نمونه
    'includes/class-dima-import-demo.php',
    
    // ویجت‌ها
    'includes/class-dima-widgets.php',
);

foreach ($core_files as $file) {
    $filepath = DIMA_SHOP_PATH . $file;
    if (file_exists($filepath)) {
        require_once $filepath;
    }
}

// ═══════════════════════════════════════════════════════════════
// کلاس اصلی پلاگین
// ═══════════════════════════════════════════════════════════════
class Dima_Shop {
    
    private static $instance = null;
    
    public static function get_instance() {
        if (null === self::$instance) {
            self::$instance = new self();
        }
        return self::$instance;
    }
    
    private function __construct() {
        // هوک‌های فعال‌سازی/غیرفعال‌سازی
        register_activation_hook(DIMA_SHOP_FILE, array($this, 'activate'));
        register_deactivation_hook(DIMA_SHOP_FILE, array($this, 'deactivate'));
        
        // هوک‌های اصلی
        add_action('init', array($this, 'init'));
        add_action('wp_enqueue_scripts', array($this, 'enqueue_scripts'));
        add_action('admin_enqueue_scripts', array($this, 'admin_enqueue_scripts'));
        add_action('admin_menu', array($this, 'add_admin_menu'), 9);
        add_action('admin_init', array($this, 'register_settings'));
        add_action('widgets_init', array($this, 'register_widgets'));
        
        // ثبت Shortcodes
        $this->register_shortcodes();
        
        // ثبت AJAX Handlers
        $this->register_ajax_handlers();
        
        // هوک‌های امنیتی
        add_action('send_headers', array($this, 'send_security_headers'));
        remove_action('wp_head', 'wp_generator');
        add_filter('the_generator', '__return_empty_string');
        add_filter('xmlrpc_enabled', '__return_false');
        remove_action('wp_head', 'rsd_link');
        remove_action('wp_head', 'wlwmanifest_link');
        remove_action('wp_head', 'wp_shortlink_wp_head');
        
        // Rewrite rules برای صفحات حساب کاربری
        add_action('init', array($this, 'add_rewrite_rules'));
        add_filter('query_vars', array($this, 'add_query_vars'));
        add_action('template_redirect', array($this, 'handle_account_pages'));
        
        // بررسی بروزرسانی
        add_action('admin_init', array($this, 'check_for_updates'));
        
        // Setup Wizard
        add_action('admin_notices', array($this, 'show_setup_wizard_notice'));
        add_action('admin_menu', array($this, 'add_setup_wizard_menu'));
        
        // لینک‌های plugin row
        add_filter('plugin_action_links_' . DIMA_SHOP_BASENAME, array($this, 'plugin_action_links'));
    }
    
    // ══════════════════════════════════════════════════════════
    // فعال‌سازی
    // ═══════════════════════════════════════════════════════════
    public function activate() {
        dima_shop_check_requirements();
        
        $this->create_tables();
        
        // ثبت Post Types و Taxonomies
        Dima_Product::register_post_type();
        Dima_Product::register_taxonomy();
        Dima_Product::register_brand_taxonomy();
        Dima_Attribute::register_taxonomy();
        
        $this->create_default_pages();
        $this->set_default_options();
        $this->create_upload_dirs();
        
        flush_rewrite_rules();
        
        update_option('dima_shop_version', DIMA_SHOP_VERSION);
        update_option('dima_shop_installed_at', current_time('mysql'));
        
        // نمایش پیام خوش‌آمد
        set_transient('dima_shop_activation_notice', true, 60);
    }
    
    // ═══════════════════════════════════════════════════════════
    // غیرفعال‌سازی
    // ═══════════════════════════════════════════════════════════
    public function deactivate() {
        flush_rewrite_rules();
        wp_clear_scheduled_hook('dima_daily_cleanup');
        wp_clear_scheduled_hook('dima_check_updates');
        wp_clear_scheduled_hook('dima_check_license');
    }
    
    // ═══════════════════════════════════════════════════════════
    // ایجاد جداول دیتابیس
    // ═══════════════════════════════════════════════════════════
    private function create_tables() {
        global $wpdb;
        $charset_collate = $wpdb->get_charset_collate();
        
        $tables = array();
        
        // جدول سفارشات
        $tables[] = "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}dima_orders (
            id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
            user_id bigint(20) UNSIGNED DEFAULT 0,
            session_id varchar(64) DEFAULT NULL,
            total_amount decimal(12,2) NOT NULL DEFAULT 0.00,
            discount_amount decimal(12,2) NOT NULL DEFAULT 0.00,
            shipping_amount decimal(12,2) NOT NULL DEFAULT 0.00,
            tax_amount decimal(12,2) NOT NULL DEFAULT 0.00,
            final_amount decimal(12,2) NOT NULL DEFAULT 0.00,
            reward_points_earned int(11) DEFAULT 0,
            reward_points_used int(11) DEFAULT 0,
            status varchar(30) NOT NULL DEFAULT 'pending',
            payment_method varchar(50) NOT NULL,
            transaction_id varchar(255) DEFAULT NULL,
            ref_id varchar(100) DEFAULT NULL,
            coupon_code varchar(50) DEFAULT NULL,
            customer_data longtext NOT NULL,
            ip_address varchar(45) DEFAULT NULL,
            user_agent text DEFAULT NULL,
            created_at datetime DEFAULT CURRENT_TIMESTAMP,
            updated_at datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
            PRIMARY KEY (id),
            KEY user_id (user_id),
            KEY status (status),
            KEY created_at (created_at),
            KEY transaction_id (transaction_id)
        ) {$charset_collate};";
        
        // جدول آیتم‌های سفارش
        $tables[] = "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}dima_order_items (
            id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
            order_id bigint(20) UNSIGNED NOT NULL,
            product_id bigint(20) UNSIGNED NOT NULL,
            variation_id bigint(20) UNSIGNED DEFAULT 0,
            quantity int(11) UNSIGNED NOT NULL DEFAULT 1,
            price decimal(12,2) NOT NULL DEFAULT 0.00,
            PRIMARY KEY (id),
            KEY order_id (order_id),
            KEY product_id (product_id)
        ) {$charset_collate};";
        
        // جدول کوپن‌ها
        $tables[] = "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}dima_coupons (
            id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
            code varchar(50) NOT NULL,
            type varchar(20) NOT NULL DEFAULT 'percent',
            value decimal(10,2) NOT NULL,
            min_amount decimal(12,2) DEFAULT 0.00,
            max_uses int(11) UNSIGNED DEFAULT 0,
            used_count int(11) UNSIGNED DEFAULT 0,
            expiry_date datetime DEFAULT NULL,
            status varchar(20) NOT NULL DEFAULT 'active',
            created_at datetime DEFAULT CURRENT_TIMESTAMP,
            PRIMARY KEY (id),
            UNIQUE KEY code (code),
            KEY status (status)
        ) {$charset_collate};";
        
        // جدول نظرات
        $tables[] = "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}dima_reviews (
            id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
            product_id bigint(20) UNSIGNED NOT NULL,
            user_id bigint(20) UNSIGNED DEFAULT 0,
            author_name varchar(100) NOT NULL,
            author_email varchar(100) DEFAULT NULL,
            rating tinyint(1) UNSIGNED NOT NULL DEFAULT 5,
            title varchar(200) DEFAULT NULL,
            content text,
            status varchar(20) NOT NULL DEFAULT 'pending',
            verified_purchase tinyint(1) DEFAULT 0,
            created_at datetime DEFAULT CURRENT_TIMESTAMP,
            PRIMARY KEY (id),
            KEY product_id (product_id),
            KEY user_id (user_id),
            KEY status (status)
        ) {$charset_collate};";
        
        // جدول شگفت‌انگیز
        $tables[] = "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}dima_flash_sales (
            id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
            product_id bigint(20) UNSIGNED NOT NULL,
            sale_price decimal(12,2) NOT NULL,
            start_time datetime NOT NULL,
            end_time datetime NOT NULL,
            stock_limit int(11) UNSIGNED DEFAULT 0,
            sold_count int(11) UNSIGNED DEFAULT 0,
            status varchar(20) NOT NULL DEFAULT 'active',
            created_at datetime DEFAULT CURRENT_TIMESTAMP,
            PRIMARY KEY (id),
            KEY product_id (product_id),
            KEY status (status)
        ) {$charset_collate};";
        
        // جدول امتیازات
        $tables[] = "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}dima_reward_points (
            id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
            user_id bigint(20) UNSIGNED NOT NULL,
            points int(11) NOT NULL,
            type varchar(30) NOT NULL,
            reference_id bigint(20) UNSIGNED DEFAULT NULL,
            description varchar(255) DEFAULT NULL,
            created_at datetime DEFAULT CURRENT_TIMESTAMP,
            PRIMARY KEY (id),
            KEY user_id (user_id),
            KEY type (type)
        ) {$charset_collate};";
        
        // جدول لاگ‌های امنیتی
        $tables[] = "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}dima_security_logs (
            id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
            event_type varchar(100) NOT NULL,
            severity varchar(20) NOT NULL DEFAULT 'warning',
            ip_address varchar(45) NOT NULL,
            user_id bigint(20) UNSIGNED DEFAULT 0,
            user_agent text DEFAULT NULL,
            details longtext,
            created_at datetime DEFAULT CURRENT_TIMESTAMP,
            PRIMARY KEY (id),
            KEY event_type (event_type),
            KEY ip_address (ip_address),
            KEY severity (severity),
            KEY created_at (created_at)
        ) {$charset_collate};";
        
        require_once ABSPATH . 'wp-admin/includes/upgrade.php';
        foreach ($tables as $sql) {
            dbDelta($sql);
        }
    }
    
    // ═══════════════════════════════════════════════════════════
    // ایجاد صفحات پیش‌فرض (مثل ووکامرس)
    // ═══════════════════════════════════════════════════════════
    private function create_default_pages() {
        $pages = array(
            'shop' => array(
                'title' => 'فروشگاه',
                'content' => '[dima_shop]',
                'option' => 'dima_shop_page',
                'slug' => 'shop'
            ),
            'cart' => array(
                'title' => 'سبد خرید',
                'content' => '[dima_cart]',
                'option' => 'dima_cart_page',
                'slug' => 'cart'
            ),
            'checkout' => array(
                'title' => 'تکمیل خرید',
                'content' => '[dima_checkout]',
                'option' => 'dima_checkout_page',
                'slug' => 'checkout'
            ),
            'account' => array(
                'title' => 'حساب کاربری من',
                'content' => '[dima_account]',
                'option' => 'dima_account_page',
                'slug' => 'my-account'
            ),
            'compare' => array(
                'title' => 'مقایسه محصولات',
                'content' => '[dima_compare]',
                'option' => 'dima_compare_page',
                'slug' => 'compare'
            ),
            'wishlist' => array(
                'title' => 'علاقه‌مندی‌های من',
                'content' => '[dima_wishlist]',
                'option' => 'dima_wishlist_page',
                'slug' => 'wishlist'
            ),
            'payment-result' => array(
                'title' => 'نتیجه پرداخت',
                'content' => '<!-- Dima Shop Payment Result --><p>در حال پردازش نتیجه پرداخت...</p>',
                'option' => 'dima_payment_result_page',
                'slug' => 'payment-result'
            ),
            'guide' => array(
                'title' => 'راهنمای استفاده از Dima Shop',
                'content' => '[dima_guide]',
                'option' => 'dima_guide_page',
                'slug' => 'dima-guide'
            ),
        );
        
        foreach ($pages as $key => $page_data) {
            // بررسی وجود صفحه (با slug یا option)
            $existing_page_id = get_option($page_data['option']);
            
            if ($existing_page_id && get_post($existing_page_id)) {
                continue; // صفحه قبلاً وجود دارد
            }
            
            // بررسی با slug
            $existing_by_slug = get_page_by_path($page_data['slug']);
            if ($existing_by_slug) {
                update_option($page_data['option'], $existing_by_slug->ID);
                continue;
            }
            
            // ایجاد صفحه جدید
            $page_id = wp_insert_post(array(
                'post_title' => $page_data['title'],
                'post_content' => $page_data['content'],
                'post_status' => 'publish',
                'post_type' => 'page',
                'post_author' => 1,
                'post_name' => $page_data['slug'],
                'comment_status' => 'closed',
                'ping_status' => 'closed'
            ));
            
            if ($page_id && !is_wp_error($page_id)) {
                update_option($page_data['option'], $page_id);
                
                // اضافه کردن meta برای شناسایی صفحات پلاگین
                update_post_meta($page_id, '_dima_shop_auto_created', '1');
                update_post_meta($page_id, '_dima_shop_page_type', $key);
            }
        }
    }
    
    // ═══════════════════════════════════════════════════════════
    // تنظیمات پیش‌فرض
    // ═══════════════════════════════════════════════════════════
    private function set_default_options() {
        $defaults = array(
            'dima_currency' => 'تومان',
            'dima_payment_gateway' => 'zarinpal',
            'dima_seo_enabled' => 1,
            'dima_security_enabled' => 1,
            'dima_schema_markup' => 1,
            'dima_reviews_enabled' => 1,
            'dima_rewards_enabled' => 1,
            'dima_rewards_per_purchase' => 100,
            'dima_reward_value' => 1000,
            'dima_catalog_mode' => 0,
            'dima_pwa_enabled' => 1,
            'dima_notification_email' => 1,
            'dima_notification_sms' => 0,
            'dima_update_check_enabled' => 1,
            'dima_ai_enabled' => 1,
            'dima_ai_daily_limit' => 100,
            
            // اطلاعات فروشگاه
            'dima_store_name' => get_bloginfo('name'),
            'dima_store_description' => '',
            'dima_store_logo' => '',
            'dima_store_phone' => '',
            'dima_store_email' => get_option('admin_email'),
            'dima_store_address' => '',
            'dima_store_city' => '',
            'dima_store_postal_code' => '',
            'dima_store_working_hours' => 'شنبه تا پنجشنبه: ۹ صبح تا ۹ شب',
            'dima_store_instagram' => '',
            'dima_store_telegram' => '',
            'dima_store_whatsapp' => '',
            'dima_store_twitter' => '',
            'dima_store_linkedin' => '',
            'dima_store_website' => home_url(),
            
            // SMS.ir
            'dima_sms_api_key' => '',
            'dima_sms_template_id' => '',
            'dima_sms_sender_number' => '',
            'dima_sms_param_code' => 'CODE',
            'dima_sms_param_brand' => 'BRAND',
            'dima_sms_param_order' => 'ORDER_ID',
            'dima_sms_param_amount' => 'AMOUNT',
        );
        
        foreach ($defaults as $key => $value) {
            if (get_option($key) === false) {
                update_option($key, $value);
            }
        }
    }
    
    // ═══════════════════════════════════════════════════════════
    // ایجاد دایرکتوری‌های آپلود
    // ═══════════════════════════════════════════════════════════
    private function create_upload_dirs() {
        $upload_dir = wp_upload_dir();
        $dima_dir = $upload_dir['basedir'] . '/dima-shop/';
        
        $dirs = array(
            $dima_dir,
            $dima_dir . 'exports/',
            $dima_dir . 'logs/',
            $dima_dir . 'backups/',
            $dima_dir . 'ai-images/',
        );
        
        foreach ($dirs as $dir) {
            if (!file_exists($dir)) {
                wp_mkdir_p($dir);
                file_put_contents($dir . '.htaccess', "Order deny,allow\nDeny from all\n");
                file_put_contents($dir . 'index.php', "<?php\n// Silence is golden.\n");
            }
        }
    }
    
    // ═══════════════════════════════════════════════════════════
    // Init
    // ═══════════════════════════════════════════════════════════
    public function init() {
        if (!session_id() && !headers_sent()) {
            session_start();
        }
        
        load_plugin_textdomain('dima-shop', false, dirname(DIMA_SHOP_BASENAME) . '/languages');
        
        // ثبت Post Types و Taxonomies
        Dima_Product::register_post_type();
        Dima_Product::register_taxonomy();
        Dima_Product::register_brand_taxonomy();
        Dima_Attribute::register_taxonomy();
        
        // مقداردهی کلاس‌ها
        if (get_option('dima_seo_enabled')) Dima_SEO::get_instance();
        if (get_option('dima_security_enabled')) Dima_Security::get_instance();
        if (get_option('dima_reviews_enabled')) Dima_Review::get_instance();
        if (get_option('dima_rewards_enabled')) Dima_Reward::get_instance();
        if (get_option('dima_catalog_mode')) Dima_Catalog_Mode::get_instance();
        if (get_option('dima_pwa_enabled')) Dima_PWA::get_instance();
        
        Dima_Wishlist::get_instance();
        Dima_Compare::get_instance();
        Dima_Flash_Sale::get_instance();
        Dima_Quick_View::get_instance();
        Dima_Rest_API::get_instance();
        Dima_Notification::get_instance();
        Dima_Update_Manager::get_instance();
        
        // هوش مصنوعی GaptGPT
        if (get_option('dima_ai_enabled', 1) && !empty(get_option('dima_ai_api_key'))) {
            Dima_AI::get_instance();
        }
        
        // گالری
        if (class_exists('Dima_Gallery')) {
            Dima_Gallery::get_instance();
        }
        
        // میگریتور (فقط در ادمین)
        if (is_admin() && class_exists('Dima_Migrator')) {
            Dima_Migrator::get_instance();
        }
        
        Dima_Widgets::init();
        
        // Cron Jobs
        if (!wp_next_scheduled('dima_daily_cleanup')) {
            wp_schedule_event(time(), 'daily', 'dima_daily_cleanup');
        }
        if (!wp_next_scheduled('dima_check_updates')) {
            wp_schedule_event(time(), 'daily', 'dima_check_updates');
        }
        
        add_action('dima_daily_cleanup', array($this, 'daily_cleanup'));
        add_action('dima_check_updates', array($this, 'check_for_updates'));
        
        // پیام خوش‌آمد پس از فعال‌سازی
        if (get_transient('dima_shop_activation_notice')) {
            add_action('admin_notices', array($this, 'show_welcome_notice'));
            delete_transient('dima_shop_activation_notice');
        }
    }
    
    // ═══════════════════════════════════════════════════════════
    // پیام خوش‌آمد
    // ═══════════════════════════════════════════════════════════
    public function show_welcome_notice() {
        ?>
        <div class="notice notice-success is-dismissible" style="padding: 20px; border-right: 4px solid #10b981;">
            <h2 style="margin-top: 0;">🎉 به Dima Shop خوش آمدید!</h2>
            <p>پلاگین فروشگاهی با موفقیت نصب شد. برای شروع:</p>
            <ol>
                <li>لایسنس خود را <a href="<?php echo admin_url('admin.php?page=dima-shop-settings&tab=license'); ?>"><strong>فعال کنید</strong></a></li>
                <li><a href="<?php echo admin_url('post-new.php?post_type=dima_product'); ?>">اولین محصول</a> را اضافه کنید</li>
                <li><a href="<?php echo admin_url('admin.php?page=dima-shop-settings'); ?>">تنظیمات</a> را پیکربندی کنید</li>
            </ol>
            <p>
                <a href="<?php echo admin_url('admin.php?page=dima-shop-guide'); ?>" class="button button-primary">مشاهده راهنما</a>
                <a href="https://api.dimashop.ir/auth/register.php" target="_blank" class="button">ثبت‌نام رایگان و دریافت لایسنس</a>
            </p>
        </div>
        <?php
    }
    
    // ═══════════════════════════════════════════════════════════
    // Setup Wizard Notice
    // ═══════════════════════════════════════════════════════════
    public function show_setup_wizard_notice() {
        if (!current_user_can('manage_options')) return;
        if (get_transient('dima_shop_setup_completed')) return;
        
        // بررسی وجود صفحات
        $required_pages = array(
            'dima_shop_page',
            'dima_cart_page',
            'dima_checkout_page',
            'dima_account_page'
        );
        
        $missing_pages = array();
        foreach ($required_pages as $option) {
            if (!get_option($option)) {
                $missing_pages[] = $option;
            }
        }
        
        if (empty($missing_pages)) {
            set_transient('dima_shop_setup_completed', true, DAY_IN_SECONDS * 30);
            return;
        }
        
        ?>
        <div class="notice notice-info is-dismissible" style="padding: 20px; border-right: 4px solid #6366f1;">
            <h2 style="margin-top: 0;">🎉 به Dima Shop خوش آمدید!</h2>
            <p>برای شروع استفاده از پلاگین، لطفاً مراحل نصب اولیه را تکمیل کنید:</p>
            <ol>
                <li>✅ ایجاد صفحات فروشگاه (سبد خرید، پرداخت، حساب کاربری)</li>
                <li>⚙️ تنظیم درگاه پرداخت</li>
                <li>🔑 فعال‌سازی لایسنس (اختیاری)</li>
                <li> نصب داده‌های نمونه (اختیاری)</li>
            </ol>
            <p>
                <a href="<?php echo admin_url('admin.php?page=dima-shop-setup'); ?>" class="button button-primary button-hero">
                    🚀 شروع نصب اولیه
                </a>
                <a href="<?php echo admin_url('admin.php?page=dima-shop-settings'); ?>" class="button">
                    ️ تنظیمات
                </a>
            </p>
        </div>
        <?php
    }
    
    public function add_setup_wizard_menu() {
        add_submenu_page(
            null,
            'نصب اولیه Dima Shop',
            'نصب اولیه',
            'manage_options',
            'dima-shop-setup',
            array($this, 'setup_wizard_page')
        );
    }
    
    public function setup_wizard_page() {
        include DIMA_SHOP_PATH . 'admin/setup-wizard.php';
    }
    
    // ═══════════════════════════════════════════════════════════
    // پاکسازی روزانه
    // ═══════════════════════════════════════════════════════════
    public function daily_cleanup() {
        global $wpdb;
        
        $wpdb->query("DELETE FROM {$wpdb->prefix}dima_security_logs WHERE created_at < DATE_SUB(NOW(), INTERVAL 30 DAY)");
        $wpdb->query("UPDATE {$wpdb->prefix}dima_flash_sales SET status = 'expired' WHERE end_time < NOW() AND status = 'active'");
    }
    
    // ═══════════════════════════════════════════════════════════
    // بررسی بروزرسانی
    // ═══════════════════════════════════════════════════════════
    public function check_for_updates() {
        if (class_exists('Dima_Update_Manager')) {
            Dima_Update_Manager::get_instance()->check_for_updates();
        }
    }
    
    // ═══════════════════════════════════════════════════════════
    // Rewrite Rules
    // ═══════════════════════════════════════════════════════════
    public function add_rewrite_rules() {
        add_rewrite_rule('^my-account/?$', 'index.php?dima_account=dashboard', 'top');
        add_rewrite_rule('^my-account/orders/?$', 'index.php?dima_account=orders', 'top');
        add_rewrite_rule('^my-account/orders/([0-9]+)/?$', 'index.php?dima_account=order-view&order_id=$matches[1]', 'top');
        add_rewrite_rule('^my-account/wishlist/?$', 'index.php?dima_account=wishlist', 'top');
        add_rewrite_rule('^my-account/rewards/?$', 'index.php?dima_account=rewards', 'top');
        add_rewrite_rule('^my-account/edit-address/?$', 'index.php?dima_account=edit-address', 'top');
    }
    
    public function add_query_vars($vars) {
        $vars[] = 'dima_account';
        $vars[] = 'order_id';
        return $vars;
    }
    
    public function handle_account_pages() {
        if (get_query_var('dima_account')) {
            if (!is_user_logged_in()) {
                wp_redirect(wp_login_url(get_permalink(get_option('dima_account_page'))));
                exit;
            }
            
            add_filter('the_title', function($title) {
                $account = get_query_var('dima_account');
                $titles = array(
                    'dashboard' => 'داشبورد',
                    'orders' => 'سفارشات من',
                    'order-view' => 'جزئیات سفارش',
                    'wishlist' => 'علاقه‌مندی‌ها',
                    'rewards' => 'امتیازات من',
                    'edit-address' => 'ویرایش آدرس',
                );
                return isset($titles[$account]) ? $titles[$account] : $title;
            });
        }
    }
    
    // ═══════════════════════════════════════════════════════════
    // بارگذاری اسکریپت‌های فرانت‌اند
    // ═══════════════════════════════════════════════════════════
    public function enqueue_scripts() {
        // Tailwind CSS
        wp_enqueue_script('tailwindcss', DIMA_SHOP_URL . 'assets/js/tailwind.js', array(), '3.3.0', false);
        
        // فونت Vazir
        wp_enqueue_style('dima-font-vazir', DIMA_SHOP_URL . 'assets/css/vazir.css', array(), '33.003');
        
        // استایل‌های اصلی
        wp_enqueue_style('dima-shop-style', DIMA_SHOP_URL . 'assets/css/style.css', array('dima-font-vazir'), DIMA_SHOP_VERSION);
        wp_enqueue_style('dima-frontend-style', DIMA_SHOP_URL . 'assets/css/frontend.css', array('dima-shop-style'), DIMA_SHOP_VERSION);
        wp_enqueue_style('dima-animations', DIMA_SHOP_URL . 'assets/css/animations.css', array(), DIMA_SHOP_VERSION);
        wp_enqueue_style('dima-widgets', DIMA_SHOP_URL . 'assets/css/widgets.css', array(), DIMA_SHOP_VERSION);
        
        // اسکریپت‌ها
        wp_enqueue_script('jquery');
        wp_enqueue_script('dima-shop-script', DIMA_SHOP_URL . 'assets/js/script.js', array('jquery'), DIMA_SHOP_VERSION, true);
        wp_enqueue_script('dima-widgets-script', DIMA_SHOP_URL . 'assets/js/widgets.js', array('jquery'), DIMA_SHOP_VERSION, true);
        
        // داده‌های JavaScript
        wp_localize_script('dima-shop-script', 'dima_shop', array(
            'ajax_url' => admin_url('admin-ajax.php'),
            'nonce' => wp_create_nonce('dima_shop_nonce'),
            'currency' => get_option('dima_currency', 'تومان'),
            'cart_url' => get_permalink(get_option('dima_cart_page')),
            'checkout_url' => get_permalink(get_option('dima_checkout_page')),
            'account_url' => get_permalink(get_option('dima_account_page')),
            'compare_url' => get_permalink(get_option('dima_compare_page')),
            'wishlist_url' => get_permalink(get_option('dima_wishlist_page')),
            'is_logged_in' => is_user_logged_in() ? 1 : 0,
            'compare_count' => class_exists('Dima_Compare') ? Dima_Compare::get_instance()->get_count() : 0,
            'wishlist_count' => class_exists('Dima_Wishlist') ? Dima_Wishlist::get_instance()->get_count() : 0,
            'api_url' => DIMA_SHOP_API_URL,
            'i18n' => array(
                'added_to_cart' => 'محصول به سبد خرید اضافه شد',
                'removed_from_cart' => 'محصول از سبد خرید حذف شد',
                'added_to_wishlist' => 'به علاقه‌مندی‌ها اضافه شد',
                'removed_from_wishlist' => 'از علاقه‌مندی‌ها حذف شد',
                'confirm_delete' => 'آیا مطمئن هستید؟',
                'error' => 'خطایی رخ داد',
            )
        ));
    }
    
    // ═══════════════════════════════════════════════════════════
    // اسکریپت‌های ادمین
    // ═══════════════════════════════════════════════════════════
    public function admin_enqueue_scripts($hook) {
        $is_dima_page = (
            strpos($hook, 'dima-shop') !== false ||
            get_post_type() === 'dima_product' ||
            (isset($_GET['taxonomy']) && in_array($_GET['taxonomy'], array('dima_product_cat', 'dima_attribute', 'dima_brand')))
        );
        
        if ($is_dima_page) {
            // فونت Vazir
            wp_enqueue_style('dima-font-vazir', DIMA_SHOP_URL . 'assets/css/vazir.css', array(), '33.003');
            
            // استایل‌های اصلی ادمین
            wp_enqueue_style('dima-admin-style', DIMA_SHOP_URL . 'assets/css/admin-style.css', array('dima-font-vazir'), DIMA_SHOP_VERSION);
            
            // CSS داشبورد
            if ($hook === 'dima-shop_page_dima-shop' || $hook === 'toplevel_page_dima-shop') {
                wp_enqueue_style('dima-admin-dashboard', DIMA_SHOP_URL . 'assets/css/admin-dashboard.css', array(), DIMA_SHOP_VERSION);
            }
            
            // CSS تنظیمات
            if (strpos($hook, 'dima-shop-settings') !== false || 
                (isset($_GET['page']) && $_GET['page'] === 'dima-shop-settings')) {
                wp_enqueue_style('dima-admin-settings', DIMA_SHOP_URL . 'assets/css/admin-settings.css', array(), DIMA_SHOP_VERSION);
            }
            
            // اسکریپت‌ها
            wp_enqueue_script('jquery');
            wp_enqueue_script('dima-admin-script', DIMA_SHOP_URL . 'assets/js/admin-script.js', array('jquery'), DIMA_SHOP_VERSION, true);
            
            // Chart.js برای گزارشات
            if (strpos($hook, 'reports') !== false) {
                wp_enqueue_script('chart.js', DIMA_SHOP_URL . 'assets/js/chart.js', array(), '4.4.0', true);
            }
            
            // Media Uploader
            wp_enqueue_media();
            
            // متغیر dima_shop برای صفحات ادمین
            wp_localize_script('dima-admin-script', 'dima_shop', array(
                'ajax_url' => admin_url('admin-ajax.php'),
                'nonce' => wp_create_nonce('dima_shop_nonce'),
                'currency' => get_option('dima_currency', 'تومان'),
                'is_admin' => 1,
                'api_url' => DIMA_SHOP_API_URL,
                'plugin_url' => DIMA_SHOP_URL,
                'version' => DIMA_SHOP_VERSION,
                'i18n' => array(
                    'saving' => 'در حال ذخیره...',
                    'saved' => 'ذخیره شد',
                    'loading' => 'در حال بارگذاری...',
                    'processing' => 'در حال پردازش...',
                    'error' => 'خطایی رخ داد',
                )
            ));
        }
    }
    
    // ═══════════════════════════════════════════════════════════
    // ثبت ویجت‌ها
    // ═══════════════════════════════════════════════════════════
    public function register_widgets() {
        if (class_exists('Dima_Widgets')) {
            Dima_Widgets::register_widgets();
        }
    }
    
    // ═══════════════════════════════════════════════════════════
    // هدرهای امنیتی
    // ══════════════════════════════════════════════════════════
    public function send_security_headers() {
        if (!is_admin() && !defined('REST_REQUEST')) {
            header('X-Frame-Options: SAMEORIGIN');
            header('X-Content-Type-Options: nosniff');
            header('X-XSS-Protection: 1; mode=block');
            header('Referrer-Policy: strict-origin-when-cross-origin');
            header("Permissions-Policy: geolocation=(), microphone=(), camera=()");
            header('Strict-Transport-Security: max-age=31536000; includeSubDomains');
        }
    }
    
    // ═══════════════════════════════════════════════════════════
    // منوی ادمین
    // ═══════════════════════════════════════════════════════════
    public function add_admin_menu() {
        // منوی اصلی محصولات
        add_menu_page(
            'محصولات Dima',
            'محصولات Dima',
            'manage_options',
            'edit.php?post_type=dima_product',
            '',
            'dashicons-products',
            56
        );
        
        add_submenu_page('edit.php?post_type=dima_product', 'همه محصولات', 'همه محصولات', 'edit_posts', 'edit.php?post_type=dima_product', '');
        add_submenu_page('edit.php?post_type=dima_product', 'افزودن محصول', 'افزودن محصول', 'edit_posts', 'post-new.php?post_type=dima_product', '');
        add_submenu_page('edit.php?post_type=dima_product', 'دسته‌بندی‌ها', 'دسته‌بندی‌ها', 'manage_categories', 'edit-tags.php?taxonomy=dima_product_cat&post_type=dima_product', '');
        add_submenu_page('edit.php?post_type=dima_product', 'ویژگی‌ها', 'ویژگی‌ها', 'manage_categories', 'edit-tags.php?taxonomy=dima_attribute&post_type=dima_product', '');
        add_submenu_page('edit.php?post_type=dima_product', 'برندها', 'برندها', 'manage_categories', 'edit-tags.php?taxonomy=dima_brand&post_type=dima_product', '');
        
        // منوی اصلی فروشگاه
        add_menu_page(
            'Dima Shop',
            'Dima Shop',
            'manage_options',
            'dima-shop',
            array($this, 'dashboard_page'),
            'dashicons-cart',
            57
        );
        
        add_submenu_page('dima-shop', 'داشبورد', 'داشبورد', 'manage_options', 'dima-shop', array($this, 'dashboard_page'));
        add_submenu_page('dima-shop', 'سفارشات', 'سفارشات', 'manage_options', 'dima-shop-orders', array($this, 'orders_page'));
        add_submenu_page('dima-shop', 'نظرات', 'نظرات', 'manage_options', 'dima-shop-reviews', array($this, 'reviews_page'));
        add_submenu_page('dima-shop', 'شگفت‌انگیز', 'شگفت‌انگیز', 'manage_options', 'dima-shop-flash-sales', array($this, 'flash_sales_page'));
        add_submenu_page('dima-shop', 'کوپن‌ها', 'کوپن‌ها', 'manage_options', 'dima-shop-coupons', array($this, 'coupons_page'));
        add_submenu_page('dima-shop', 'پاداش‌ها', 'پاداش‌ها', 'manage_options', 'dima-shop-rewards', array($this, 'rewards_page'));
        add_submenu_page('dima-shop', 'گزارشات', 'گزارشات', 'manage_options', 'dima-shop-reports', array($this, 'reports_page'));
        add_submenu_page('dima-shop', 'خروجی/ورودی', 'خروجی/ورودی', 'manage_options', 'dima-shop-export', array($this, 'export_page'));
        add_submenu_page('dima-shop', 'لاگ امنیتی', 'لاگ امنیتی', 'manage_options', 'dima-shop-security-logs', array($this, 'security_logs_page'));
        add_submenu_page('dima-shop', 'بروزرسانی‌ها', 'بروزرسانی‌ها', 'manage_options', 'dima-shop-updates', array($this, 'updates_page'));
        add_submenu_page('dima-shop', 'ابزار دیتابیس', 'ابزار دیتابیس', 'manage_options', 'dima-shop-db-tools', array($this, 'db_tools_page'));
        add_submenu_page('dima-shop', 'راهنما', 'راهنما', 'manage_options', 'dima-shop-guide', array($this, 'guide_page'));
        add_submenu_page('dima-shop', 'تنظیمات', 'تنظیمات', 'manage_options', 'dima-shop-settings', array($this, 'settings_page'));
    }
    
    // ═══════════════════════════════════════════════════════════
    // ثبت تنظیمات
    // ═══════════════════════════════════════════════════════════
    public function register_settings() {
        $settings = array(
            // عمومی
            'dima_currency', 'dima_payment_gateway',
            
            // درگاه‌های پرداخت
            'dima_zarinpal_merchant', 'dima_idpay_api_key',
            'dima_mellat_terminal_id', 'dima_mellat_username', 'dima_mellat_password',
            
            // صفحات
            'dima_shop_page', 'dima_cart_page', 'dima_checkout_page',
            'dima_account_page', 'dima_compare_page', 'dima_wishlist_page',
            'dima_payment_result_page', 'dima_guide_page',
            
            // ویژگی‌ها
            'dima_seo_enabled', 'dima_schema_markup', 'dima_security_enabled',
            'dima_reviews_enabled', 'dima_rewards_enabled',
            'dima_rewards_per_purchase', 'dima_reward_value',
            'dima_catalog_mode', 'dima_pwa_enabled',
            
            // اطلاع‌رسانی
            'dima_notification_email', 'dima_notification_sms', 'dima_sms_api_key',
            'dima_sms_template_id', 'dima_sms_sender_number',
            'dima_sms_param_code', 'dima_sms_param_brand', 'dima_sms_param_order', 'dima_sms_param_amount',
            
            // بروزرسانی
            'dima_update_check_enabled',
            
            // لایسنس
            'dima_license_key', 'dima_license_status', 'dima_license_info',
            'dima_license_activated_at',
            
            // هوش مصنوعی GaptGPT
            'dima_ai_api_key', 'dima_ai_enabled', 'dima_ai_daily_limit',
            'dima_ai_description', 'dima_ai_title', 'dima_ai_keywords',
            'dima_ai_image', 'dima_ai_blog', 'dima_ai_translate',
            
            // SEO و تحلیل
            'dima_google_analytics_id', 'dima_schema_org_name', 'dima_schema_org_logo',
            
            // اطلاعات فروشگاه
            'dima_store_name', 'dima_store_description', 'dima_store_logo',
            'dima_store_phone', 'dima_store_email', 'dima_store_address',
            'dima_store_city', 'dima_store_postal_code', 'dima_store_working_hours',
            'dima_store_instagram', 'dima_store_telegram', 'dima_store_whatsapp',
            'dima_store_twitter', 'dima_store_linkedin', 'dima_store_website',
        );
        
        foreach ($settings as $setting) {
            register_setting('dima_shop_settings', $setting);
        }
    }
    
    // ═══════════════════════════════════════════════════════════
    // ثبت Shortcodes
    // ═══════════════════════════════════════════════════════════
    private function register_shortcodes() {
        $shortcodes = array(
            'dima_shop' => 'shop_shortcode',
            'dima_cart' => 'cart_shortcode',
            'dima_checkout' => 'checkout_shortcode',
            'dima_product' => 'single_product_shortcode',
            'dima_account' => 'account_shortcode',
            'dima_compare' => 'compare_shortcode',
            'dima_wishlist' => 'wishlist_shortcode',
            'dima_flash_sale' => 'flash_sale_shortcode',
            'dima_quick_view' => 'quick_view_shortcode',
            'dima_flash_sale_products' => 'flash_sale_products_shortcode',
            'dima_categories_grid' => 'categories_grid_shortcode',
            'dima_brands' => 'brands_shortcode',
            'dima_features_bar' => 'features_bar_shortcode',
            'dima_guide' => 'guide_shortcode',
            'dima_footer' => 'footer_shortcode',
            'dima_contact' => 'contact_shortcode',
        );
        
        foreach ($shortcodes as $tag => $method) {
            add_shortcode($tag, array($this, $method));
        }
    }
    
    // ═══════════════════════════════════════════════════════════
    // ثبت AJAX Handlers
    // ═══════════════════════════════════════════════════════════
    private function register_ajax_handlers() {
        $actions = array(
            'add_to_cart', 'update_cart', 'apply_coupon', 'remove_coupon',
            'toggle_wishlist', 'get_wishlist',
            'toggle_compare', 'remove_compare',
            'live_search', 'filter_products',
            'submit_review',
            'quick_view',
            'redeem_rewards',
            'export_products', 'import_products',
            'dismiss_update_notice',
            'test_sms'
        );
        
        foreach ($actions as $action) {
            $method = 'ajax_' . $action;
            if (method_exists($this, $method)) {
                add_action('wp_ajax_dima_' . $action, array($this, $method));
                add_action('wp_ajax_nopriv_dima_' . $action, array($this, $method));
            }
        }
    }
    
    // ═══════════════════════════════════════════════════════════
    // Shortcode Handlers
    // ═══════════════════════════════════════════════════════════
    public function shop_shortcode($atts) {
        ob_start();
        include DIMA_SHOP_PATH . 'templates/shop.php';
        return ob_get_clean();
    }
    
    public function cart_shortcode($atts) {
        ob_start();
        include DIMA_SHOP_PATH . 'templates/cart.php';
        return ob_get_clean();
    }
    
    public function checkout_shortcode($atts) {
        ob_start();
        include DIMA_SHOP_PATH . 'templates/checkout.php';
        return ob_get_clean();
    }
    
    public function single_product_shortcode($atts) {
        ob_start();
        include DIMA_SHOP_PATH . 'templates/single-product.php';
        return ob_get_clean();
    }
    
    public function account_shortcode($atts) {
        ob_start();
        include DIMA_SHOP_PATH . 'templates/account.php';
        return ob_get_clean();
    }
    
    public function compare_shortcode($atts) {
        ob_start();
        include DIMA_SHOP_PATH . 'templates/compare.php';
        return ob_get_clean();
    }
    
    public function wishlist_shortcode($atts) {
        ob_start();
        include DIMA_SHOP_PATH . 'templates/account-wishlist.php';
        return ob_get_clean();
    }
    
    public function flash_sale_shortcode($atts) {
        ob_start();
        $atts = shortcode_atts(array('limit' => 8), $atts);
        include DIMA_SHOP_PATH . 'templates/flash-sale.php';
        return ob_get_clean();
    }
    
    public function quick_view_shortcode($atts) {
        ob_start();
        include DIMA_SHOP_PATH . 'templates/quick-view.php';
        return ob_get_clean();
    }
    
    public function flash_sale_products_shortcode($atts) {
        $atts = shortcode_atts(array('limit' => 8, 'category' => ''), $atts);
        
        $flash_sales = class_exists('Dima_Flash_Sale') 
            ? Dima_Flash_Sale::get_instance()->get_active_sales(intval($atts['limit']))
            : array();
        
        if (empty($flash_sales)) {
            return '<p style="text-align:center; color:#6b7280; padding:40px;">هیچ محصول شگفت‌انگیزی موجود نیست.</p>';
        }
        
        ob_start();
        $filepath = DIMA_SHOP_PATH . 'templates/flash-sale-grid.php';
        if (file_exists($filepath)) {
            include $filepath;
        }
        return ob_get_clean();
    }
    
    public function categories_grid_shortcode($atts) {
        $atts = shortcode_atts(array('columns' => 8, 'parent' => 0), $atts);
        
        $categories = get_terms(array(
            'taxonomy' => 'dima_product_cat',
            'hide_empty' => false,
            'parent' => intval($atts['parent']),
            'number' => intval($atts['columns'])
        ));
        
        if (empty($categories) || is_wp_error($categories)) {
            return '';
        }
        
        ob_start();
        $filepath = DIMA_SHOP_PATH . 'templates/categories-icons.php';
        if (file_exists($filepath)) {
            include $filepath;
        }
        return ob_get_clean();
    }
    
    public function brands_shortcode($atts) {
        $brands = get_terms(array(
            'taxonomy' => 'dima_brand',
            'hide_empty' => false,
            'number' => 12
        ));
        
        if (empty($brands) || is_wp_error($brands)) {
            return '';
        }
        
        ob_start();
        $filepath = DIMA_SHOP_PATH . 'templates/brands-logos.php';
        if (file_exists($filepath)) {
            include $filepath;
        }
        return ob_get_clean();
    }
    
    public function features_bar_shortcode($atts) {
        ob_start();
        $filepath = DIMA_SHOP_PATH . 'templates/features-bar.php';
        if (file_exists($filepath)) {
            include $filepath;
        }
        return ob_get_clean();
    }
    
    public function guide_shortcode($atts) {
        ob_start();
        $filepath = DIMA_SHOP_PATH . 'templates/guide.php';
        if (file_exists($filepath)) {
            include $filepath;
        }
        return ob_get_clean();
    }
    
    public function footer_shortcode($atts) {
        ob_start();
        $filepath = DIMA_SHOP_PATH . 'templates/footer.php';
        if (file_exists($filepath)) {
            include $filepath;
        }
        return ob_get_clean();
    }
    
    public function contact_shortcode($atts) {
        ob_start();
        $filepath = DIMA_SHOP_PATH . 'templates/contact.php';
        if (file_exists($filepath)) {
            include $filepath;
        }
        return ob_get_clean();
    }
    
    // ═══════════════════════════════════════════════════════════
    // صفحات ادمین
    // ═══════════════════════════════════════════════════════════
    public function dashboard_page() { 
        $filepath = DIMA_SHOP_PATH . 'admin/dashboard.php';
        if (file_exists($filepath)) include $filepath;
    }
    
    public function orders_page() { 
        $filepath = DIMA_SHOP_PATH . 'admin/orders.php';
        if (file_exists($filepath)) include $filepath;
    }
    
    public function reviews_page() { 
        $filepath = DIMA_SHOP_PATH . 'admin/reviews.php';
        if (file_exists($filepath)) include $filepath;
    }
    
    public function flash_sales_page() { 
        $filepath = DIMA_SHOP_PATH . 'admin/flash-sales.php';
        if (file_exists($filepath)) include $filepath;
    }
    
    public function coupons_page() { 
        $filepath = DIMA_SHOP_PATH . 'admin/coupons.php';
        if (file_exists($filepath)) include $filepath;
    }
    
    public function rewards_page() { 
        $filepath = DIMA_SHOP_PATH . 'admin/rewards.php';
        if (file_exists($filepath)) include $filepath;
    }
    
    public function reports_page() { 
        $filepath = DIMA_SHOP_PATH . 'admin/reports.php';
        if (file_exists($filepath)) include $filepath;
    }
    
    public function export_page() { 
        $filepath = DIMA_SHOP_PATH . 'admin/export.php';
        if (file_exists($filepath)) include $filepath;
    }
    
    public function security_logs_page() { 
        $filepath = DIMA_SHOP_PATH . 'admin/security-logs.php';
        if (file_exists($filepath)) include $filepath;
    }
    
    public function updates_page() { 
        $filepath = DIMA_SHOP_PATH . 'admin/updates.php';
        if (file_exists($filepath)) include $filepath;
    }
    
    public function db_tools_page() { 
        $filepath = DIMA_SHOP_PATH . 'admin/database-tools.php';
        if (file_exists($filepath)) include $filepath;
    }
    
    public function guide_page() { 
        $filepath = DIMA_SHOP_PATH . 'admin/guide.php';
        if (file_exists($filepath)) include $filepath;
    }
    
    public function settings_page() { 
        $filepath = DIMA_SHOP_PATH . 'admin/settings.php';
        if (file_exists($filepath)) include $filepath;
    }
    
    // ═══════════════════════════════════════════════════════════
    // AJAX Handlers
    // ═══════════════════════════════════════════════════════════
    public function ajax_add_to_cart() {
        check_ajax_referer('dima_shop_nonce', 'nonce');
        
        if (class_exists('Dima_Security') && !Dima_Security::check_rate_limit('add_to_cart', 30, 60)) {
            wp_send_json_error(array('message' => 'تعداد درخواست‌ها بیش از حد مجاز است'));
            return;
        }
        
        $product_id = isset($_POST['product_id']) ? absint($_POST['product_id']) : 0;
        $quantity = isset($_POST['quantity']) ? absint($_POST['quantity']) : 1;
        
        if ($product_id <= 0) {
            wp_send_json_error(array('message' => 'درخواست نامعتبر'));
            return;
        }
        
        $stock = Dima_Product::get_stock($product_id);
        if ($stock !== '' && intval($stock) < $quantity) {
            wp_send_json_error(array('message' => 'موجودی کافی نیست'));
            return;
        }
        
        $cart = Dima_Cart::get_instance();
        $cart->add_item($product_id, $quantity);
        
        wp_send_json_success(array(
            'message' => 'محصول به سبد خرید اضافه شد',
            'cart_count' => $cart->get_item_count(),
            'cart_total' => $cart->get_total()
        ));
    }
    
    public function ajax_update_cart() {
        check_ajax_referer('dima_shop_nonce', 'nonce');
        
        $product_id = isset($_POST['product_id']) ? absint($_POST['product_id']) : 0;
        $quantity = isset($_POST['quantity']) ? absint($_POST['quantity']) : 0;
        
        $cart = Dima_Cart::get_instance();
        $cart->update_item($product_id, $quantity);
        
        wp_send_json_success(array(
            'message' => 'سبد خرید بروزرسانی شد',
            'cart_total' => $cart->get_total(),
            'cart_count' => $cart->get_item_count()
        ));
    }
    
    public function ajax_apply_coupon() {
        check_ajax_referer('dima_shop_nonce', 'nonce');
        
        $coupon_code = isset($_POST['coupon_code']) ? sanitize_text_field($_POST['coupon_code']) : '';
        
        if (empty($coupon_code)) {
            wp_send_json_error(array('message' => 'کد کوپن را وارد کنید'));
            return;
        }
        
        $cart = Dima_Cart::get_instance();
        $coupon = Dima_Coupon::get_instance();
        $result = $coupon->apply_coupon($coupon_code, $cart->get_total());
        
        if (is_wp_error($result)) {
            wp_send_json_error(array('message' => $result->get_error_message()));
            return;
        }
        
        $cart->set_coupon($coupon_code, $result['discount']);
        
        wp_send_json_success(array(
            'message' => 'کوپن اعمال شد',
            'discount' => $result['discount'],
            'new_total' => $cart->get_total() - $result['discount']
        ));
    }
    
    public function ajax_submit_review() {
        check_ajax_referer('dima_shop_nonce', 'nonce');
        
        $product_id = isset($_POST['product_id']) ? absint($_POST['product_id']) : 0;
        $rating = isset($_POST['rating']) ? absint($_POST['rating']) : 5;
        $title = isset($_POST['title']) ? sanitize_text_field($_POST['title']) : '';
        $content = isset($_POST['content']) ? sanitize_textarea_field($_POST['content']) : '';
        
        if ($product_id <= 0 || $rating < 1 || $rating > 5) {
            wp_send_json_error(array('message' => 'اطلاعات نامعتبر'));
            return;
        }
        
        $review = Dima_Review::get_instance();
        $result = $review->add_review($product_id, $rating, $title, $content);
        
        if (is_wp_error($result)) {
            wp_send_json_error(array('message' => $result->get_error_message()));
            return;
        }
        
        wp_send_json_success(array('message' => 'نظر شما ثبت شد و پس از تایید نمایش داده می‌شود'));
    }
    
    public function ajax_quick_view() {
        check_ajax_referer('dima_shop_nonce', 'nonce');
        
        $product_id = isset($_POST['product_id']) ? absint($_POST['product_id']) : 0;
        
        if ($product_id <= 0) {
            wp_send_json_error(array('message' => 'محصول یافت نشد'));
            return;
        }
        
        ob_start();
        $GLOBALS['post'] = get_post($product_id);
        setup_postdata($GLOBALS['post']);
        include DIMA_SHOP_PATH . 'templates/quick-view.php';
        wp_reset_postdata();
        $html = ob_get_clean();
        
        wp_send_json_success(array('html' => $html));
    }
    
    public function ajax_redeem_rewards() {
        check_ajax_referer('dima_shop_nonce', 'nonce');
        
        if (!is_user_logged_in()) {
            wp_send_json_error(array('message' => 'لطفاً وارد حساب کاربری شوید'));
            return;
        }
        
        $points = isset($_POST['points']) ? absint($_POST['points']) : 0;
        
        $reward = Dima_Reward::get_instance();
        $result = $reward->redeem_points(get_current_user_id(), $points);
        
        if (is_wp_error($result)) {
            wp_send_json_error(array('message' => $result->get_error_message()));
            return;
        }
        
        wp_send_json_success(array(
            'message' => 'امتیازات با موفقیت تبدیل به کوپن تخفیف شد',
            'coupon_code' => $result['coupon_code'],
            'remaining_points' => $result['remaining_points']
        ));
    }
    
    public function ajax_export_products() {
        check_ajax_referer('dima_shop_nonce', 'nonce');
        
        if (!current_user_can('manage_options')) {
            wp_send_json_error(array('message' => 'دسترسی غیرمجاز'));
            return;
        }
        
        $export = Dima_Export::get_instance();
        $result = $export->export_products();
        
        if (is_wp_error($result)) {
            wp_send_json_error(array('message' => $result->get_error_message()));
            return;
        }
        
        wp_send_json_success(array(
            'message' => 'خروجی با موفقیت ایجاد شد',
            'download_url' => $result['url']
        ));
    }
    
    public function ajax_dismiss_update_notice() {
        check_ajax_referer('dima_shop_nonce', 'nonce');
        set_transient('dima_dismiss_update_' . DIMA_SHOP_VERSION, 1, DAY_IN_SECONDS * 7);
        wp_send_json_success();
    }
    
    /**
     * AJAX: تست ارسال پیامک
     */
    public function ajax_test_sms() {
        check_ajax_referer('dima_shop_nonce', 'nonce');
        
        if (!current_user_can('manage_options')) {
            wp_send_json_error(array('message' => 'دسترسی غیرمجاز'));
            return;
        }
        
        $mobile = sanitize_text_field($_POST['mobile'] ?? '');
        
        if (empty($mobile)) {
            wp_send_json_error(array('message' => 'شماره موبایل الزامی است'));
            return;
        }
        
        $notification = Dima_Notification::get_instance();
        
        // ارسال پیامک تست با کد تصادفی
        $test_code = rand(100000, 999999);
        $result = $notification->send_otp($mobile, $test_code);
        
        if (is_wp_error($result)) {
            wp_send_json_error(array('message' => $result->get_error_message()));
            return;
        }
        
        wp_send_json_success(array(
            'message' => 'پیامک تست با موفقیت ارسال شد. کد: ' . $test_code,
            'data' => $result
        ));
    }
    
    // ═══════════════════════════════════════════════════════════
    // لینک‌های Plugin Row
    // ═══════════════════════════════════════════════════════════
    public function plugin_action_links($links) {
        $custom_links = array(
            'settings' => '<a href="' . admin_url('admin.php?page=dima-shop-settings') . '">⚙️ تنظیمات</a>',
            'guide' => '<a href="' . admin_url('admin.php?page=dima-shop-guide') . '">📖 راهنما</a>',
            'license' => '<a href="' . admin_url('admin.php?page=dima-shop-settings&tab=license') . '" style="color:#10b981;font-weight:bold;">🔑 لایسنس</a>',
            'support' => '<a href="https://api.dimashop.ir/dashboard/support.php" target="_blank" style="color:#3b82f6;">🎧 پشتیبانی</a>',
        );
        
        return array_merge($custom_links, $links);
    }
   /**
    * ═══════════════════════════════════════════════════════════
    * Template Loader - لود قالب‌های سفارشی
    * ═══════════════════════════════════════════════════════════
    */
   public function load_custom_templates($template) {
       // صفحه محصول تکی
       if (is_singular('dima_product')) {
           $custom_template = DIMA_SHOP_PATH . 'templates/single-product.php';
           if (file_exists($custom_template)) {
               return $custom_template;
           }
       }
    
       // صفحه حساب کاربری
       if (get_query_var('dima_account')) {
           $custom_template = DIMA_SHOP_PATH . 'templates/account.php';
           if (file_exists($custom_template)) {
               return $custom_template;
           }
       }
    
       // صفحه فروشگاه
       if (is_post_type_archive('dima_product')) {
           $custom_template = DIMA_SHOP_PATH . 'templates/shop.php';
           if (file_exists($custom_template)) {
               return $custom_template;
           }
       }
    
       // صفحه دسته‌بندی محصول
       if (is_tax('dima_product_cat')) {
           $custom_template = DIMA_SHOP_PATH . 'templates/shop.php';
           if (file_exists($custom_template)) {
               return $custom_template;
           }
       }
    
       return $template;
   }
}

// ═══════════════════════════════════════════════════════════════
// شروع پلاگین
// ═══════════════════════════════════════════════════════════════
add_action('plugins_loaded', function() {
    Dima_Shop::get_instance();
});