load_dependencies(); // Check required plugins add_action('admin_init', array($this, 'check_required_plugins')); // Add admin menu items add_action('admin_menu', array($this, 'add_admin_menu'), 99); // Register admin assets add_action('admin_enqueue_scripts', array($this, 'register_admin_assets')); // Initialize components $this->init_components(); } /** * Load required dependencies */ private function load_dependencies() { require_once STUDIOU_WCPCM_PLUGIN_DIR . 'includes/class-studiou-wc-product-cat-manage-db.php'; require_once STUDIOU_WCPCM_PLUGIN_DIR . 'includes/class-studiou-wc-product-cat-manage-export.php'; require_once STUDIOU_WCPCM_PLUGIN_DIR . 'includes/class-studiou-wc-product-cat-manage-import.php'; } /** * Initialize components */ private function init_components() { $this->db = new Studiou_WC_Product_Cat_Manage_DB(); $this->exporter = new Studiou_WC_Product_Cat_Manage_Export($this->db); $this->importer = new Studiou_WC_Product_Cat_Manage_Import($this->db); } /** * Check if required plugins are active */ public function check_required_plugins() { if (!is_admin() || isset($_GET['activate-multi'])) { return; } // Check for WooCommerce if (!class_exists('WooCommerce') || !defined('WC_VERSION') || version_compare(WC_VERSION, '9.7', '<')) { add_action('admin_notices', array($this, 'woocommerce_missing_notice')); deactivate_plugins(STUDIOU_WCPCM_PLUGIN_BASENAME); if (isset($_GET['activate'])) { unset($_GET['activate']); } } } /** * WooCommerce missing notice */ public function woocommerce_missing_notice() { ?>

', '' ); ?>

admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce('studiou-wcpcm-nonce'), 'i18n' => array( 'importSuccess' => __('Import successful', 'studiou-wc-product-cat-manage'), 'importError' => __('Import error', 'studiou-wc-product-cat-manage'), 'exportSuccess' => __('Export successful', 'studiou-wc-product-cat-manage'), 'exportError' => __('Export error', 'studiou-wc-product-cat-manage'), ) )); } } /** * Render import page */ public function render_import_page() { include STUDIOU_WCPCM_PLUGIN_DIR . 'views/import.php'; } /** * Render export page */ public function render_export_page() { include STUDIOU_WCPCM_PLUGIN_DIR . 'views/export.php'; } } /** * Begin execution of the plugin */ function run_studiou_wc_product_cat_manage() { // Create instance new Studiou_WC_Product_Cat_Manage(); } // Run the plugin run_studiou_wc_product_cat_manage();