get_module_settings($module_key); return isset($module_settings[$setting_key]) ? $module_settings[$setting_key] : $default; } /** * Set a setting value. * * @param string $module_key * @param string $setting_key * @param mixed $value * @return bool */ public function set($module_key, $setting_key, $value) { $module_settings = $this->get_module_settings($module_key); $module_settings[$setting_key] = $value; return $this->update_module_settings($module_key, $module_settings); } /** * Get all settings for a module. * * @param string $module_key * @return array */ public function get_module_settings($module_key) { if (!isset($this->settings_cache[$module_key])) { $this->settings_cache[$module_key] = get_option($this->option_prefix . $module_key, []); } return $this->settings_cache[$module_key]; } /** * Update all settings for a module. * * @param string $module_key * @param array $settings * @return bool */ public function update_module_settings($module_key, $settings) { $this->settings_cache[$module_key] = $settings; return update_option($this->option_prefix . $module_key, $settings); } /** * Delete all settings for a module. * * @param string $module_key * @return bool */ public function delete_module_settings($module_key) { unset($this->settings_cache[$module_key]); return delete_option($this->option_prefix . $module_key); } }