public static function load() { self::$data['options'] = self::_options(); $temp = get_transient('kcsb'); if ($temp) { self::$item_to_edit = $temp; delete_transient('kcsb'); } require_once dirname(__FILE__) . '/builder-table.php'; $table = new kcSettings_builder_table(array('plural' => 'kcsb-table', 'kcsb' => array('settings' => self::$data['kcsb']['settings'], 'options' => self::$data['options']))); self::$table = $table; $action = $table->current_action(); if (!$action || !in_array($action, array('delete', 'edit', 'purge', 'empty', 'clone', 'activate', 'deactivate', 'export'))) { return; } $update = false; # Singular if (isset($_REQUEST['id']) && in_array($_REQUEST['id'], self::$data['kcsb']['settings'][$_REQUEST['id']])) { check_admin_referer("__kcsb__{$_REQUEST['id']}"); $items = array($_REQUEST['id']); } elseif (isset($_REQUEST['ids']) && is_array($_REQUEST['ids']) && !empty($_REQUEST['ids'])) { check_admin_referer('bulk-kcsb-table'); $items = $_REQUEST['ids']; } $single = count($items) < 2 ? true : false; switch ($action) { case 'activate': foreach ($items as $item) { self::$data['kcsb']['settings'][$item]['status'] = '1'; } $update = true; self::$update_message = $single ? __('Setting succesfully activated.', 'kc-settings') : __('Settings succesfully activated.', 'kc-settings'); break; case 'deactivate': foreach ($items as $item) { self::$data['kcsb']['settings'][$item]['status'] = '0'; } $update = true; self::$update_message = $single ? __('Setting succesfully deactivated.', 'kc-settings') : __('Settings succesfully deactivated.', 'kc-settings'); break; case 'delete': foreach ($items as $item) { unset(self::$data['kcsb']['settings'][$item]); } $update = true; self::$update_message = $single ? __('Setting succesfully deleted.', 'kc-settings') : __('Settings succesfully deleted.', 'kc-settings'); break; case 'empty': $result = 0; foreach ($items as $item) { if (self::$data['kcsb']['settings'][$item]['type'] === 'plugin' && delete_option(self::$data['kcsb']['settings'][$item]['prefix'] . '_settings')) { $result++; } } if ($result) { $message = $result === 1 ? __('Setting values succesfully removed from database.', 'kc-settings') : __('Settings values succesfully removed from database.', 'kc-settings'); kcSettings::add_notice('updated', "<strong>{$message}</strong>"); } break; case 'clone': if (isset($_REQUEST['new']) && !empty($_REQUEST['new'])) { $new_id = sanitize_html_class($_REQUEST['new']); if ($new_id && !isset(self::$data['kcsb']['settings'][$new_id])) { $new = self::$data['kcsb']['settings'][$_REQUEST['id']]; $new['id'] = $new_id; self::$data['kcsb']['settings'][$new_id] = $new; $update = true; self::$update_message = __('Setting succesfully cloned.', 'kc-settings'); } } break; case 'edit': self::$item_to_edit = wp_parse_args(self::$data['kcsb']['settings'][$_REQUEST['id']], self::$data['defaults']); break; case 'export': if (isset($_REQUEST['type']) && isset(self::$data['kcsb']['items'][$_REQUEST['type']][$_REQUEST['id']])) { self::$item_to_export = self::_exporter($_REQUEST['type'], self::$data['kcsb']['items'][$_REQUEST['type']][$_REQUEST['id']]); } break; } if ($update) { update_option('kcsb', self::$data['kcsb']['settings']); } }