HEX
Server: LiteSpeed
System: Linux linux31.centraldnserver.com 4.18.0-553.83.1.lve.el8.x86_64 #1 SMP Wed Nov 12 10:04:12 UTC 2025 x86_64
User: salamatk (1501)
PHP: 8.1.33
Disabled: show_source, system, shell_exec, passthru, exec, popen, proc_open
Upload Files
File: /home/salamatk/takarzan.ir/wp-content/plugins/luman-plus/Includes/Bootstrap.php
<?php

namespace lumanPlus;


use lumanPlus\Core\Logger;

/**
 * Class Bootstrap
 *
 * @package Flexicore\MultiGate
 */
class Bootstrap {

    /**
     * Boot Plugin
     *
     * @return void
     */
    public static function boot () : void {
        if ( !defined('ABSPATH') ) {
            return;
        }

        self::initConstants();

    }

    /**
     * Define the Necessary Constants
     *
     * @return void
     */
    public static function initConstants () : void {
        /**
         * Define General Constants
         */
        define('LPL_VERSION', '1.0.8');
        define('LPLPATH',true);
        define('LPL_PLUGIN_PAGE_TITLE','لومان پلاس');
        define('LPL_PLUGIN_MENU_TITLE','لومان پلاس');
        define('LPL_PLUGIN_CAPABILITY','manage_options');
        define('LPL_PLUGIN_MENU_SLUG','lumanPlus');
        define('LPL_PLUGIN_ICON','dashicons-plus');
        define('LPL_PLUGIN_POSITION','60');

        define('LPL_NAME', 'Luman-Plus');
        define('LPL_SLUG', 'luman-plus/luman-plus.php');
        define('LPL_PERSIAN_SLUG', 'سیستم ورود | عضویت لومان پلاس');

        /**
         * Define General Pages
         */
        define('LPL_PAGE', 'lumanPlus');
        define('LPL_SETTINGS_PAGE','Settings');
        define('LPL_NOTIFICATIONS_PAGE','Notifications');


        /**
         * Shorthand to DIRECTORY_SEPARATOR Constant
         */
        define('LPL_DS', DIRECTORY_SEPARATOR);


        /**
         * Define path constants
         */
        $pluginDir    = wp_normalize_path(plugin_dir_path(__DIR__));
        $mainDir      = $pluginDir . LPL_DS . 'Includes/';
        $frontDir     = $mainDir . 'Front/';
        $configDir    = $mainDir . 'Config/';
        $migrationDir = $mainDir . 'Database/';
        $logsDir      = $mainDir . 'Logs/';
        $routesDir    = $mainDir . 'Web/';

        define('LPL_DIR', $pluginDir);
        define('LPL_FRONT_DIR', $frontDir);
        define('LPL_CONFIG_DIR', $configDir);
        define('LPL_DATABASE_DIR', $migrationDir);
        define('LPL_LOGS_DIR', $logsDir);
        define('LPL_ROUTES_DIR', $routesDir);

        /**
         * Define url constants
         */
        $pluginUrl  = wp_normalize_path(plugin_dir_url(__DIR__));
        $assetsUrl  = $pluginUrl . 'assets/';
        $scriptsUrl = $assetsUrl . 'js/';
        $stylesUrl  = $assetsUrl . 'css/';
        $mediaUrl   = $assetsUrl . 'media/';

        define('LPL_URL', $pluginUrl);

        define('LPL_ASSETS_URL', $assetsUrl);
        define('LPL_ASSETS_SCRIPTS_URL', $scriptsUrl);
        define('LPL_ASSETS_STYLES_URL', $stylesUrl);
        define('LPL_ASSETS_MEDIA_URL', $mediaUrl);

    }

    public static function initDB(): void
    {
        self::initConstants();

        $sqlFile = LPL_DATABASE_DIR . 'migrations.sql';

        if (!file_exists($sqlFile)) {
            // error_log('فایل SQL پیدا نشد: ' . $sqlFile);
            return;
        }

        global $wpdb;

        $sqlRaw = file_get_contents($sqlFile);

        $queries = array_filter(array_map('trim', explode(';', $sqlRaw)));

        foreach ($queries as $query) {
            if (!empty($query)) {
                $wpdb->query($query);
            }
        }
    }


}

// Include AI module
require_once __DIR__ . '/AI/AI_Handler.php';
require_once __DIR__ . '/AI/AI_Hooks.php';
require_once __DIR__ . '/AI/AI_Cache.php';