/**
  * Store ionic user id to database and echo json result
  */
 public function process_parameter()
 {
     $params = $_REQUEST;
     if (isset($params['do-ionic-user-cron']) === true) {
         $sendPush = new Ionic_User_Send_Push();
         $sendPush->send_scheduled_push_notification();
         exit;
     }
     if (empty($params['ionic-user-id']) === false) {
         if (empty($params['action']) === true) {
             echo json_encode(array('success' => false, 'message' => 'Missing action'));
             exit;
         }
         $userIdManager = new Ionic_User_UserId_Manager();
         switch ($params['action']) {
             case 'store':
                 $result = $userIdManager->store_userId($params['ionic-user-id']);
                 self::echo_result($result, $params['action']);
                 exit;
             case 'delete':
                 $result = $userIdManager->delete_userId($params['ionic-user-id']);
                 self::echo_result($result, $params['action']);
                 exit;
             default:
                 echo json_encode(array('success' => false, 'message' => 'Not allowed action'));
                 exit;
         }
     }
 }
 public function admin_menu_options()
 {
     if (!current_user_can('manage_options')) {
         wp_die(__('You do not have sufficient permissions to access this page.'));
     }
     // Store / load data from / to options
     $storeData = self::store_option(self::OPTION_NAME, $_POST);
     $options = self::load_options(self::OPTION_NAME);
     $totalUserIds = Ionic_User_UserId_Manager::get_total_userIds();
     if (filter_input(INPUT_POST, 'store-scheduled-push')) {
         if (filter_input(INPUT_POST, 'scheduled-send-to-all')) {
             $userIds = 'all';
         } else {
             $userIds = filter_input(INPUT_POST, 'scheduled-user-ids');
         }
         $scheduledStoreReturn = Ionic_User_Scheduled_Manager::store_scheduled(filter_input(INPUT_POST, 'scheduled-date'), filter_input(INPUT_POST, 'scheduled-time'), filter_input(INPUT_POST, 'scheduled-text'), $userIds);
         if (is_wp_error($scheduledStoreReturn)) {
             $error = $scheduledStoreReturn->get_error_message();
         }
     }
     if (filter_input(INPUT_GET, 'deleteScheduledId')) {
         Ionic_User_Scheduled_Manager::delete_scheduled(filter_input(INPUT_GET, 'deleteScheduledId'));
     }
     if (filter_input(INPUT_POST, 'send-push')) {
         // Send push notification
         if (filter_input(INPUT_POST, 'send-to-all') !== null) {
             $userIds = Ionic_User_UserId_Manager::get_all_userIds();
         } else {
             $userIds = explode(';', filter_input(INPUT_POST, 'send-user-ids'));
         }
         $sendPushReturn = Ionic_User_Send_Push::send_push_notification(filter_input(INPUT_POST, 'send-text'), $userIds, $options);
         if (is_wp_error($sendPushReturn)) {
             $error = $sendPushReturn->get_error_message();
         }
     }
     $tab = $_REQUEST['tab'] ? $_REQUEST['tab'] : 'settings';
     if ($tab === 'userIds') {
         $pagenum = filter_input(INPUT_GET, 'pagenum') ? absint(filter_input(INPUT_GET, 'pagenum')) : 1;
         $userIdsPages = Ionic_User_UserId_Manager::get_userIds_page_links($pagenum);
     }
     if ($tab === 'scheduled') {
         $pagenum = filter_input(INPUT_GET, 'pagenum') ? absint(filter_input(INPUT_GET, 'pagenum')) : 1;
         $scheduledPages = Ionic_User_Scheduled_Manager::get_scheduled_page_links($pagenum);
     }
     if ($tab === 'history') {
         $pagenum = filter_input(INPUT_GET, 'pagenum') ? absint(filter_input(INPUT_GET, 'pagenum')) : 1;
         $historyPages = Ionic_User_History_Manager::get_history_page_links($pagenum);
     }
     $template = IUP_PLUGIN_DIR_PATH . 'assets/html/iup-admin-' . $tab . '.html';
     if (is_file($template) === true) {
         require $template;
     }
 }