private function maybe_init_twig() { if (!isset($this->twig)) { $loader = new Twig_Loader_Filesystem($this->template_paths); $environment_args = array(); if (WP_DEBUG) { $environment_args['debug'] = true; } $wpml_cache_directory = new WPML_Cache_Directory(new WPML_WP_API()); $cache_directory = $wpml_cache_directory->get('twig'); if ($cache_directory) { $environment_args['cache'] = $cache_directory; $environment_args['auto_reload'] = true; } $this->twig = new Twig_Environment($loader, $environment_args); if (isset($this->custom_functions) && count($this->custom_functions) > 0) { foreach ($this->custom_functions as $custom_function) { $this->twig->addFunction($custom_function); } } if (isset($this->custom_filters) && count($this->custom_filters) > 0) { foreach ($this->custom_filters as $custom_filter) { $this->twig->addFilter($custom_filter); } } } }
function icl_reset_wpml($blog_id = false) { global $wpdb, $sitepress_settings; if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'resetwpml') { check_admin_referer('resetwpml'); } if (empty($blog_id)) { $filtered_id = filter_input(INPUT_POST, 'id', FILTER_SANITIZE_FULL_SPECIAL_CHARS, FILTER_NULL_ON_FAILURE); $filtered_id = $filtered_id ? $filtered_id : filter_input(INPUT_GET, 'id', FILTER_SANITIZE_FULL_SPECIAL_CHARS, FILTER_NULL_ON_FAILURE); $blog_id = $filtered_id !== false ? $filtered_id : $wpdb->blogid; } if ($blog_id || !function_exists('is_multisite') || !is_multisite()) { if (function_exists('is_multisite') && is_multisite()) { switch_to_blog($blog_id); } do_action('wpml_reset_plugins_before'); wp_clear_scheduled_hook('update_wpml_config_index'); $icl_tables = array($wpdb->prefix . 'icl_languages', $wpdb->prefix . 'icl_languages_translations', $wpdb->prefix . 'icl_translations', $wpdb->prefix . 'icl_translation_status', $wpdb->prefix . 'icl_translate_job', $wpdb->prefix . 'icl_translate', $wpdb->prefix . 'icl_locale_map', $wpdb->prefix . 'icl_flags', $wpdb->prefix . 'icl_content_status', $wpdb->prefix . 'icl_core_status', $wpdb->prefix . 'icl_node', $wpdb->prefix . 'icl_strings', $wpdb->prefix . 'icl_string_packages', $wpdb->prefix . 'icl_translation_batches', $wpdb->prefix . 'icl_string_translations', $wpdb->prefix . 'icl_string_status', $wpdb->prefix . 'icl_string_positions', $wpdb->prefix . 'icl_message_status', $wpdb->prefix . 'icl_reminders'); foreach ($icl_tables as $icl_table) { $wpdb->query("DROP TABLE IF EXISTS " . $icl_table); } delete_option('icl_sitepress_settings'); delete_option('icl_sitepress_version'); delete_option('_icl_cache'); delete_option('_icl_admin_option_names'); delete_option('wp_icl_translators_cached'); delete_option('wpml32_icl_non_translators_cached'); delete_option('WPLANG'); delete_option('wpml-package-translation-db-updates-run'); delete_option('wpml-package-translation-refresh-required'); delete_option('wpml-package-translation-string-packages-table-updated'); delete_option('wpml-package-translation-string-table-updated'); delete_option('icl_translation_jobs_basket'); delete_option('widget_icl_lang_sel_widget'); delete_option('icl_admin_messages'); delete_option('icl_adl_settings'); delete_option('wpml_tp_com_log'); delete_option('wpml_config_index'); delete_option('wpml_config_index_updated'); delete_option('wpml_config_files_arr'); $sitepress_settings = null; wp_cache_init(); $wpml_cache_directory = new WPML_Cache_Directory(new WPML_WP_API()); $wpml_cache_directory->remove(); do_action('wpml_reset_plugins_after'); $wpmu_sitewide_plugins = (array) maybe_unserialize(get_site_option('active_sitewide_plugins')); if (!isset($wpmu_sitewide_plugins[ICL_PLUGIN_FOLDER . '/sitepress.php'])) { $file = plugin_basename(WP_PLUGIN_DIR . '/' . ICL_PLUGIN_FOLDER . '/sitepress.php'); remove_action('deactivate_' . $file, 'icl_sitepress_deactivate'); deactivate_plugins(basename(ICL_PLUGIN_PATH) . '/sitepress.php'); $ra = get_option('recently_activated'); $ra[basename(ICL_PLUGIN_PATH) . '/sitepress.php'] = time(); update_option('recently_activated', $ra); } else { update_option('_wpml_inactive', true); } if (function_exists('is_multisite') && is_multisite()) { restore_current_blog(); } } }