/** * Collect system information for support * * @return array of system data for support * @author Peter Chester */ public static function getSupportStats() { $user = wp_get_current_user(); $plugins = array(); if (function_exists('get_plugin_data')) { $plugins_raw = wp_get_active_and_valid_plugins(); foreach ($plugins_raw as $k => $v) { $plugin_details = get_plugin_data($v); $plugin = $plugin_details['Name']; if (!empty($plugin_details['Version'])) { $plugin .= sprintf(' version %s', $plugin_details['Version']); } if (!empty($plugin_details['Author'])) { $plugin .= sprintf(' by %s', $plugin_details['Author']); } if (!empty($plugin_details['AuthorURI'])) { $plugin .= sprintf('(%s)', $plugin_details['AuthorURI']); } $plugins[] = $plugin; } } $network_plugins = array(); if (is_multisite() && function_exists('get_plugin_data')) { $plugins_raw = wp_get_active_network_plugins(); foreach ($plugins_raw as $k => $v) { $plugin_details = get_plugin_data($v); $plugin = $plugin_details['Name']; if (!empty($plugin_details['Version'])) { $plugin .= sprintf(' version %s', $plugin_details['Version']); } if (!empty($plugin_details['Author'])) { $plugin .= sprintf(' by %s', $plugin_details['Author']); } if (!empty($plugin_details['AuthorURI'])) { $plugin .= sprintf('(%s)', $plugin_details['AuthorURI']); } $network_plugins[] = $plugin; } } $mu_plugins = array(); if (function_exists('get_mu_plugins')) { $mu_plugins_raw = get_mu_plugins(); foreach ($mu_plugins_raw as $k => $v) { $plugin = $v['Name']; if (!empty($v['Version'])) { $plugin .= sprintf(' version %s', $v['Version']); } if (!empty($v['Author'])) { $plugin .= sprintf(' by %s', $v['Author']); } if (!empty($v['AuthorURI'])) { $plugin .= sprintf('(%s)', $v['AuthorURI']); } $mu_plugins[] = $plugin; } } $keys = apply_filters('tribe-pue-install-keys', array()); $systeminfo = array('url' => 'http://' . $_SERVER["HTTP_HOST"], 'name' => $user->display_name, 'email' => $user->user_email, 'install keys' => $keys, 'WordPress version' => get_bloginfo('version'), 'PHP version' => phpversion(), 'plugins' => $plugins, 'network plugins' => $network_plugins, 'mu plugins' => $mu_plugins, 'theme' => wp_get_theme()->get('Name'), 'multisite' => is_multisite(), 'settings' => TribeEvents::getOptions()); $systeminfo = apply_filters('tribe-events-pro-support', $systeminfo); return $systeminfo; }
/** * enforce saving on additional fields tab * @author jkudish * @since 2.0.5 * @return void */ public function force_save_meta() { $options = TribeEvents::getOptions(); $options = self::save_meta_options($options); $options = TribeEvents::setOptions($options); }
/** * Saves the options for the plugin * * @param array $options formatted the same as from getOptions() * @return void */ public function setOptions($options, $apply_filters = true) { if (!is_array($options)) { return; } if ($apply_filters == true) { $options = apply_filters('tribe-events-save-options', $options); } if (update_option(TribeEvents::OPTIONNAME, $options)) { self::$options = apply_filters('tribe_get_options', $options); if (isset(TribeEvents::$options['eventsSlug'])) { if (TribeEvents::$options['eventsSlug'] != '') { TribeEvents::flushRewriteRules(); } } return true; } else { TribeEvents::$options = TribeEvents::getOptions(); return false; } }
/** * Saves the options for the plugin * * @param array $options formatted the same as from getOptions() * @param bool $apply_filters * * @return void */ public function setOptions($options, $apply_filters = true) { if (!is_array($options)) { return; } if ($apply_filters == true) { $options = apply_filters('tribe-events-save-options', $options); } // @TODO use TribeEvents::getOptions if (update_option(TribeEvents::OPTIONNAME, $options)) { self::$options = apply_filters('tribe_get_options', $options); return true; } else { TribeEvents::$options = TribeEvents::getOptions(); return false; } }
/** * Generate a hash with all the system support information * * @return string of encoded support info * @author Peter Chester */ public static function generateSupportHash() { $user = wp_get_current_user(); $plugins_raw = wp_get_active_and_valid_plugins(); $plugins = array(); foreach ($plugins_raw as $k => $v) { $plugins[] = basename($v); } $systeminfo = array('URL' => 'http://' . $_SERVER["HTTP_HOST"] . $_SERVER['REQUEST_URI'], 'NAME' => $user->display_name, 'EMAIL' => $user->user_email, 'PLUGIN VERSION' => TribeEvents::VERSION, 'WORDPRESS VERSION' => get_bloginfo('version'), 'PHP VERSION' => phpversion(), 'PLUGINS' => $plugins, 'THEME' => get_current_theme(), 'MU INSTALL' => is_multisite() ? 'TRUE' : 'FALSE', 'SETTINGS' => TribeEvents::getOptions(), 'ERRORS' => self::$debug_log); $systeminfo = apply_filters('tribe-events-pro-support', $systeminfo); $systeminfo = serialize($systeminfo); $systeminfo = base64_encode($systeminfo); return $systeminfo; }
/** * enforce saving on additional fields tab * @author jkudish * @since 2.0.5 * @return void */ public static function force_save_meta() { $options = TribeEvents::getOptions(); $options = self::save_meta_options($options); TribeEvents::instance()->setOptions($options); }