/**
  * 스크립트 추가 콜백
  *
  * @action  admin_enqueue_scripts
  * @used-by init()
  */
 public static function enqueue_scripts()
 {
     $screen = get_current_screen();
     if ($screen->id == 'settings_page_wpmem-settings' && wskl_GET('tab') == 'dabory-members') {
         wskl_enqueue_script('dabory-members-js', 'assets/js/dabory-members/admin.js', array('jquery'), WSKL_VERSION, TRUE, 'daboryMembers', array('editUrl' => admin_url('post.php')));
         wp_enqueue_style('dabory-members-css', plugin_dir_url(WSKL_MAIN_FILE) . 'assets/css/dabory-members/admin.css');
     }
 }
 /**
  * @action  load-settings_page_{$page_name}
  * @used-by WSKL_Dabory_Members_Admin::init()
  *
  * @uses    wskl_GET, wskl_POST, wskl_verify_nonce, add_settings_error
  * @uses    extract_option_values()
  * @uses    validate_option_values()
  * @throws \NonceVerificationFailureException
  */
 public static function update_dabory_members()
 {
     if (wskl_GET('tab') != 'dabory-members' || wskl_POST('action') != 'update_dabory_members') {
         return;
     }
     wskl_verify_nonce('wskl_83830_nonce', wskl_POST('wskl_members_nonce'));
     $options = self::extract_option_values();
     if (self::validate_option_values($options)) {
         foreach ($options as $key => $option_value) {
             self::update_option($key, $option_value);
         }
         /** success notice */
         add_settings_error('dabory-members', 'settings_updated', __('Settings saved.'), 'updated');
     }
 }
 public function update_settings()
 {
     if (wskl_GET('tab') !== $this->id || wskl_POST('action') != $this->action) {
         return;
     }
     wskl_verify_nonce($this->nonce_action, wskl_POST($this->nonce_param));
     /** @var array $extracted two keys are present: options, and error. */
     $extracted = $this->extract_option_values();
     if (is_array($extracted['options'])) {
         foreach ($extracted['options'] as $key => $option_value) {
             $this->update_option($key, $option_value);
         }
     }
     if (isset($extracted['error']) && !empty($extracted['error'])) {
         add_settings_error($this->id, 'validation_error', $extracted['error'], 'error');
         return;
     }
     do_action('wskl_wp_members_update_settings', $extracted);
     /** success notice */
     add_settings_error('dabory-members', 'settings_updated', __('Settings saved.'), 'updated');
 }
 public static function output_form($completed_message)
 {
     ob_start();
     $status = wskl_GET('status');
     // user is logged out when the withdrawal process is completed.
     // therefore this condition must be treated first.
     if ($status == 'complete') {
         $context = array('status' => 'complete', 'message' => $completed_message);
     } else {
         if (!is_user_logged_in()) {
             $context = array('status' => 'failure', 'message' => __('먼저 로그인 하세요', 'wskl'));
         } else {
             if ($status == 'failure') {
                 $context = array('status' => 'failure', 'message' => wskl_GET('message'));
             } else {
                 $context = array();
             }
         }
     }
     wskl_get_template('dabory-members/dabory-members-withdrawal.php', $context);
     return ob_get_clean();
 }
 /**
  * @param $license_type
  * @param mixed $tabs
  * @param $callback
  *
  * @used-by Woosym_Korean_Localization::init_payment_modules()
  * @used-by Woosym_Korean_Localization::init_essential_modules()
  * @used-by Woosym_Korean_Localization::init_extension_modules()
  * @used-by Woosym_Korean_Localization::init_marketing_modules()
  *
  * @return bool
  */
 private function admin_notice_unauthorized($license_type, $tabs, $callback)
 {
     $authorized = wskl_license_authorized($license_type);
     if (!$authorized && $this->is_request('admin')) {
         if (is_string($tabs)) {
             $tabs = array($tabs);
         }
         $page = wskl_GET('page');
         $_tab = wskl_GET('tab');
         if ($page == WSKL_MENU_SLUG && in_array($_tab, $tabs)) {
             add_action('admin_notices', $callback);
         }
     }
     return $authorized;
 }
 public function update_settings()
 {
     parent::update_settings();
     if (wskl_GET('tab') !== $this->id || wskl_POST('action') != $this->action) {
         return;
     }
     $interval = $this->get_option('interval');
     if ($interval) {
         $this->schedule_event();
     } else {
         $this->cancel_event();
     }
 }