[ 'options' => ['wp_age_gate_restrictions'], 'label' => __('Restrictions settings', 'age-gate') ], 'messages' => [ 'options' => [ 'wp_age_gate_messages', 'wp_age_gate_validation_messages', ], 'label' => __('Messages settings', 'age-gate') ], 'appearance' => [ 'options' => ['wp_age_gate_appearance'], 'label' => __('Appearance settings', 'age-gate') ], 'advanced' => [ 'options' => ['wp_age_gate_advanced'], 'label' => __('Advanced settings', 'age-gate') ], 'access' => [ 'options' => ['wp_age_gate_access'], 'label' => __('Access settings', 'age-gate') ] ]; $custom_settings = []; $custom_settings = apply_filters('age_gate_export_settings', $custom_settings); $custom_settings = (is_array($custom_settings) ? $custom_settings : []); $this->_exportOptions = array_merge($default_settings, $custom_settings, $default_settings); if(isset($_POST['ag_import_action']) && $this->settings['advanced']['enable_import_export']){ $this->_import_export(); } } /** * Add the sub menu for global Settings * @since 2.0.0 */ public function add_settings_page() { if(!$this->settings['advanced']['enable_import_export']) return; add_submenu_page( $this->plugin_name, __('Age Gate Import/Export Settings', 'age-gate'), __('Import/Export', 'age-gate'), AGE_GATE_CAP_ACCESS, $this->plugin_name . '-import-export', array($this, 'display_options_page') ); } /** * Display global settings options * @since 2.0.0 */ public function display_options_page() { include AGE_GATE_PATH . 'admin/partials/age-gate-admin-import-export.php'; } public function import_export_tab($tabs) { if(!$this->settings['advanced']['enable_import_export']) return $tabs; return array_merge($tabs, [ 'age-gate-import-export' => array( 'cap' => AGE_GATE_CAP_ACCESS, 'title' => _x('Import/Export', 'Admin tab title', 'age-gate') ) ]); } private function _import_export() { $post = $this->validation->sanitize($_POST); if ('export' === $post['ag_import_action']) { $settings = (isset($post['ag_setting'])) ? $post['ag_setting'] : []; $this->_export($settings); } else { $this->_import(); } } private function _export($settings = []){ if(!$settings){ add_action('admin_notices', function () { ?>