hooks(); ( new Adverships_Affiliate_Woo() )->hooks(); ( new Adverships_Affiliate_Refund() )->hooks(); // --- Sales alerts (WP-Cron poll + email/admin-notice) --- ( new Adverships_Affiliate_Alerts() )->hooks(); // --- Privacy (GDPR exporter/eraser registration) --- ( new Adverships_Affiliate_Privacy() )->hooks(); // --- Admin screens --- $this->settings = new Adverships_Affiliate_Settings(); $this->dashboard = new Adverships_Affiliate_Dashboard(); $this->creators = new Adverships_Affiliate_Creators(); $this->settings->hooks(); if (is_admin()) { add_action('admin_menu', array($this, 'register_menu')); add_action('admin_enqueue_scripts', array($this, 'admin_assets')); add_filter('plugin_action_links_' . ADVERSHIPS_AFF_BASENAME, array($this, 'action_links')); } // Note: WordPress.org auto-loads translations by slug since WP 4.6, so no // load_plugin_textdomain() call is needed. } public function register_menu() { $cap = 'manage_woocommerce'; if (!current_user_can($cap)) { $cap = 'manage_options'; } add_menu_page( __('Adverships', 'adverships-affiliate'), __('Adverships', 'adverships-affiliate'), $cap, 'adverships', array($this->dashboard, 'render'), 'dashicons-chart-area', 56 ); add_submenu_page('adverships', __('Dashboard', 'adverships-affiliate'), __('Dashboard', 'adverships-affiliate'), $cap, 'adverships', array($this->dashboard, 'render')); add_submenu_page('adverships', __('Creators', 'adverships-affiliate'), __('Creators', 'adverships-affiliate'), $cap, 'adverships-creators', array($this->creators, 'render')); add_submenu_page('adverships', __('Settings', 'adverships-affiliate'), __('Settings', 'adverships-affiliate'), $cap, 'adverships-settings', array($this->settings, 'render')); } public function admin_assets($hook) { if (strpos((string) $hook, 'adverships') === false) { return; } wp_enqueue_style( 'adverships-affiliate-admin', ADVERSHIPS_AFF_URL . 'assets/css/adverships-admin.css', array(), ADVERSHIPS_AFF_VERSION ); } public function action_links($links) { $url = admin_url('admin.php?page=adverships-settings'); $settings_link = '' . esc_html__('Settings', 'adverships-affiliate') . ''; array_unshift($links, $settings_link); return $links; } }