load_scripts(); $modal = new AffiliLabs_Modal(); $modal->load_scripts(); $modal->init(); $spinner = new AffiliLabs_Spinner(); $spinner->load_scripts(); $spinner->init(); wp_enqueue_style('affililabs-dashboard', AFFILILABS_DASHBOARD_CSS_URL, array(), AFFILILABS_VERSION); wp_enqueue_script('affililabs-dashboard', AFFILILABS_DASHBOARD_JS_URL, array('jquery'), AFFILILABS_VERSION, true); // Pre-calculate URLs to avoid JS hardcoding $add_product_url = wp_nonce_url(admin_url('admin.php?page=affililabs-product-edit'), 'affl_admin_nonce', 'nonce'); $connect_mkt_url = wp_nonce_url(admin_url('admin.php?page=affililabs-marketplace-edit'), 'affl_admin_nonce', 'nonce'); $create_list_url = wp_nonce_url(admin_url('admin.php?page=affililabs-list-edit'), 'affl_admin_nonce', 'nonce'); $ajax_url = admin_url('admin-ajax.php'); wp_localize_script( 'affililabs-dashboard', 'affililabs_dashboard', array( 'nonce' => wp_create_nonce('affl_admin_nonce'), 'ajax_url' => $ajax_url, 'admin_url' => admin_url(), 'i18n' => array( 'connected_text' => esc_html__('Connected', 'affililabs'), 'save_success_title' => esc_html__('Success', 'affililabs'), 'save_success' => esc_html__('Marketplace connected successfully!', 'affililabs'), 'save_error_title' => esc_html__('Error', 'affililabs'), 'save_error' => esc_html__('Failed to connect marketplace.', 'affililabs'), 'save_error_unknown' => esc_html__('An unknown error occurred.', 'affililabs'), 'connect_digistore_title' => esc_html__('Connect Digistore24', 'affililabs'), 'not_connected_text' => esc_html__('Not Connected', 'affililabs'), 'required_field' => esc_html__('This field is required.', 'affililabs'), 'connection_active' => esc_html__('Connection Active', 'affililabs'), 'select_logo_title' => esc_html__('Select Marketplace Logo', 'affililabs'), 'use_this_logo' => esc_html__('Use this logo', 'affililabs'), 'ready_to_link' => esc_html__('Ready to link', 'affililabs'), ), ) ); // Data fetching $amount_of_products = count((new WP_Query(array('post_type' => AFFILILABS_CPT_PRODUCT, 'post_status' => 'any', 'posts_per_page' => -1)))->posts); $amount_of_marketplaces = count(get_posts(array('post_type' => AFFILILABS_CPT_MARKETPLACE, 'post_status' => 'any', 'posts_per_page' => -1))); $amount_of_categories = count(get_categories(array('taxonomy' => AFFILILABS_TAXONOMY_PRODUCT_CATEGORY, 'hide_empty' => false))); $amount_of_criteria = count((new WP_Query(array('post_type' => AFFILILABS_CPT_CRITERION, 'post_status' => 'any', 'posts_per_page' => -1)))->posts); $amount_of_product_lists = count((new WP_Query(array('post_type' => AFFILILABS_CPT_COMPARISON_TABLE, 'post_status' => 'any', 'posts_per_page' => -1)))->posts); $amount_of_templates = count((new WP_Query(array('post_type' => AFFILILABS_CPT_TEMPLATE, 'post_status' => 'any', 'posts_per_page' => -1)))->posts); $is_digistore_connected = AFFLMarketplaceService::is_marketplace_connected('digistore'); // Setup Progress Calculation $marketplaces = AFFLMarketplaceService::get_all_marketplaces(); $setup_step_1_done = !empty($marketplaces); $setup_step_2_done = false; if ($setup_step_1_done) { foreach ($marketplaces as $mkt) { if (!empty($mkt['affiliate_id'])) { $setup_step_2_done = true; break; } } } $setup_step_3_done = $amount_of_categories > 0; $setup_step_4_done = $amount_of_products > 0; $completed_steps_count = 0; if ($setup_step_1_done) $completed_steps_count++; if ($setup_step_2_done) $completed_steps_count++; if ($setup_step_3_done) $completed_steps_count++; if ($setup_step_4_done) $completed_steps_count++; $progress_percentage = ($completed_steps_count / 4) * 100; ?>