getContainer()->getAdmitadManager()->handleUser(); $this->registerScripts(); new \Admitad\AdmitadRevision($this->getContainer()); } public function onLogin($login) { $user = null; $uid = $this->getContainer()->getParameters()->getUserId(); if (function_exists('get_user_by')) { $user = get_user_by('login', $login); } else { if (function_exists('get_userdatabylogin')) { $user = get_userdatabylogin($login); } } if (!$user) { return; } $userId = $user->ID; update_user_meta($userId, 'admitad_uid', $uid); } public function handleOrderCreate($orderId) { $this->getContainer()->getAdmitadManager()->sendPostback($orderId); $order = new WC_Order($orderId); $order->update_meta_data('admitad_uid', $this->getContainer()->getParameters()->getUserId()); $order->save_meta_data(); } public function adminInit() { add_action('wp_enqueue_scripts', array($this, 'registerScripts')); $tabs = array( new \Admitad\Tab\AuthTab($this->getContainer()), new \Admitad\Tab\MainTab($this->getContainer()), new \Admitad\Tab\RevisionTab($this->getContainer()), new \Admitad\Tab\ActionsTab($this->getContainer()), ); foreach ($tabs as $tab) { $tab->init(); } } /** * Регистрация скриптов в админке */ public function registerScripts() { $scripts = array( 'select2' => array( 'src' => $this->get_asset_url('assets/js/select2.js'), 'deps' => array('jquery'), 'version' => '1.0', ), ); $styles = array( 'select2' => array( 'src' => $this->get_asset_url('assets/css/select2.css'), 'deps' => array(), 'version' => '1.0', ), ); foreach ($scripts as $name => $row) { wp_register_script($name, $row['src'], $row['deps'], $row['version']); wp_enqueue_script($name); } foreach ($styles as $name => $row) { wp_register_style($name, $row['src'], $row['deps'], $row['version']); wp_enqueue_style($name); } } protected function getActionPage() { $current = $this->getCurrentActionName(); ob_start(); call_user_func(array($this, $this->getTabs()[$current]['action'])); return ob_get_clean(); } protected function getCurrentActionName() { $tabs = $this->getTabs(); reset($tabs); $currentName = key($tabs); foreach ($tabs as $name => $tab) { if (isset($_GET['action']) && $_GET['action'] == $name) { $currentName = $name; } } return $currentName; } /** * @return array * * Возвращает массив с актуальными вкладками */ protected function getTabs() { $auth = get_option('admitadtracking_auth'); if (!$auth['client_id'] || !$auth['client_secret']) { $tabs = array('auth' => array('name' => __('Auth', 'admitadtracking'))); return $tabs; } $tabs = array( 'main' => array('name' => __('Main', 'admitadtracking')), 'actions' => array('name' => __('Actions', 'admitadtracking')), 'revision' => array('name' => __('Revision', 'admitadtracking')), ); return $tabs; } public function adminMenu() { add_options_page(__('Admitad tracking', 'admitadtracking'), __('Admitad tracking', 'admitadtracking'), 'manage_options', 'admitadtracking', [$this, 'getOptionsPage']); } /** * Выводит контент страницы настроек */ public function getOptionsPage() { $current = $this->getCurrentActionName(); ?>

Admitad Tracking

getCurrentActionName(); ob_start(); foreach ($this->getTabs() as $name => $options) { $url = admin_url('admin.php?page=admitadtracking&action=' . $name); ?> container) { $this->container = new \Admitad\AdmitadContainer(); } return $this->container; } protected function getSettingName($name) { return $this->prefix . '-' . $name; } protected function getSettingGroupName($name) { return $this->prefix . '-' . $name . '-group'; } private function get_asset_url($path) { return str_replace(array('http:', 'https:'), '', plugins_url($path, __FILE__)); } }