From 97ed0c66352d02ff28850eef5ea9f6830a0d3b78 Mon Sep 17 00:00:00 2001 From: Luca Pipolo Date: Fri, 25 Oct 2024 11:17:05 +0200 Subject: [PATCH] chore: update plugin sitepress-multilingual-cms to 4.6.13 --- .../wpml-page-builders/vendor/autoload.php | 2 +- .../vendor/composer/autoload_real.php | 14 +- .../vendor/composer/autoload_static.php | 4 +- .../class-wpml-ls-menu-item.php | 1 + .../class-wpml-ls-render.php | 4 +- .../class-wpml-ls-template.php | 8 +- .../class-wpml-templates-factory.php | 151 ++++++++++++++---- .../absolute-links/absolute-links.class.php | 2 +- .../sitepress-multilingual-cms/readme.txt | 2 +- .../sitepress-multilingual-cms/sitepress.php | 6 +- .../vendor/autoload.php | 2 +- .../vendor/composer/autoload_real.php | 14 +- .../vendor/composer/autoload_static.php | 8 +- .../vendor/composer/installed.php | 12 +- 14 files changed, 159 insertions(+), 71 deletions(-) diff --git a/wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/vendor/autoload.php b/wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/vendor/autoload.php index 07a16264..89524a22 100644 --- a/wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/vendor/autoload.php +++ b/wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/vendor/autoload.php @@ -4,4 +4,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInit88c82b693cbb06834ce54e8a1610ba0c::getLoader(); +return ComposerAutoloaderInit6db28b495b608840254527e283111ebb::getLoader(); diff --git a/wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/vendor/composer/autoload_real.php b/wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/vendor/composer/autoload_real.php index 45e4bae9..6a86a6e9 100644 --- a/wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/vendor/composer/autoload_real.php +++ b/wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInit88c82b693cbb06834ce54e8a1610ba0c +class ComposerAutoloaderInit6db28b495b608840254527e283111ebb { private static $loader; @@ -24,15 +24,15 @@ public static function getLoader() require __DIR__ . '/platform_check.php'; - spl_autoload_register(array('ComposerAutoloaderInit88c82b693cbb06834ce54e8a1610ba0c', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInit6db28b495b608840254527e283111ebb', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); - spl_autoload_unregister(array('ComposerAutoloaderInit88c82b693cbb06834ce54e8a1610ba0c', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit6db28b495b608840254527e283111ebb', 'loadClassLoader')); $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); if ($useStaticLoader) { require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInit88c82b693cbb06834ce54e8a1610ba0c::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit6db28b495b608840254527e283111ebb::getInitializer($loader)); } else { $map = require __DIR__ . '/autoload_namespaces.php'; foreach ($map as $namespace => $path) { @@ -53,12 +53,12 @@ public static function getLoader() $loader->register(true); if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInit88c82b693cbb06834ce54e8a1610ba0c::$files; + $includeFiles = Composer\Autoload\ComposerStaticInit6db28b495b608840254527e283111ebb::$files; } else { $includeFiles = require __DIR__ . '/autoload_files.php'; } foreach ($includeFiles as $fileIdentifier => $file) { - composerRequire88c82b693cbb06834ce54e8a1610ba0c($fileIdentifier, $file); + composerRequire6db28b495b608840254527e283111ebb($fileIdentifier, $file); } return $loader; @@ -70,7 +70,7 @@ public static function getLoader() * @param string $file * @return void */ -function composerRequire88c82b693cbb06834ce54e8a1610ba0c($fileIdentifier, $file) +function composerRequire6db28b495b608840254527e283111ebb($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; diff --git a/wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/vendor/composer/autoload_static.php b/wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/vendor/composer/autoload_static.php index efee2e65..4839f275 100644 --- a/wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/vendor/composer/autoload_static.php +++ b/wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInit88c82b693cbb06834ce54e8a1610ba0c +class ComposerStaticInit6db28b495b608840254527e283111ebb { public static $files = array ( 'b45b351e6b6f7487d819961fef2fda77' => __DIR__ . '/..' . '/jakeasmith/http_build_url/src/http_build_url.php', @@ -310,7 +310,7 @@ class ComposerStaticInit88c82b693cbb06834ce54e8a1610ba0c public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->classMap = ComposerStaticInit88c82b693cbb06834ce54e8a1610ba0c::$classMap; + $loader->classMap = ComposerStaticInit6db28b495b608840254527e283111ebb::$classMap; }, null, ClassLoader::class); } diff --git a/wp-content/plugins/sitepress-multilingual-cms/classes/language-switcher/class-wpml-ls-menu-item.php b/wp-content/plugins/sitepress-multilingual-cms/classes/language-switcher/class-wpml-ls-menu-item.php index e6d00a18..21998aed 100644 --- a/wp-content/plugins/sitepress-multilingual-cms/classes/language-switcher/class-wpml-ls-menu-item.php +++ b/wp-content/plugins/sitepress-multilingual-cms/classes/language-switcher/class-wpml-ls-menu-item.php @@ -1,5 +1,6 @@ assets->maybe_late_enqueue_template( $slot->template() ); $this->current_template = clone $this->templates->get_template( $slot->template() ); + $sandbox = false; if ( $slot->template_string() ) { $this->current_template->set_template_string( $slot->template_string() ); + $sandbox = true; } $model = $this->model_build->get( $slot, $this->current_template->get_template_data() ); if ( $model['languages'] ) { $this->current_template->set_model( $model ); - $html = $this->current_template->get_html(); + $html = $this->current_template->get_html( $sandbox ); } } diff --git a/wp-content/plugins/sitepress-multilingual-cms/classes/language-switcher/class-wpml-ls-template.php b/wp-content/plugins/sitepress-multilingual-cms/classes/language-switcher/class-wpml-ls-template.php index 63fb9199..7b84c259 100644 --- a/wp-content/plugins/sitepress-multilingual-cms/classes/language-switcher/class-wpml-ls-template.php +++ b/wp-content/plugins/sitepress-multilingual-cms/classes/language-switcher/class-wpml-ls-template.php @@ -61,10 +61,14 @@ public function set_model( $model ) { * @throws \WPML\Core\Twig\Error\RuntimeError * @throws \WPML\Core\Twig\Error\SyntaxError */ - public function get_html() { + public function get_html( $sandbox = false ) { $ret = ''; if ( $this->template_paths || $this->template_string ) { - $ret = parent::get_view(); + if ( $sandbox ) { + $ret = parent::get_sandbox_view( null, null ); + } else { + $ret = parent::get_view( null, null ); + } } return $ret; } diff --git a/wp-content/plugins/sitepress-multilingual-cms/classes/templating/class-wpml-templates-factory.php b/wp-content/plugins/sitepress-multilingual-cms/classes/templating/class-wpml-templates-factory.php index 3a27839f..906d2fdf 100644 --- a/wp-content/plugins/sitepress-multilingual-cms/classes/templating/class-wpml-templates-factory.php +++ b/wp-content/plugins/sitepress-multilingual-cms/classes/templating/class-wpml-templates-factory.php @@ -8,6 +8,28 @@ abstract class WPML_Templates_Factory { const NOTICE_GROUP = 'template_factory'; const OTGS_TWIG_CACHE_DISABLED_KEY = '_otgs_twig_cache_disabled'; + /* + * List of tags and filters that are allowed in the sandbox mode. + * Specifically excluded 'include' and 'import' tags. + * Excluded the 'filter', 'reduce', 'map' filters. + */ + const SANDBOX_FUNCTIONS = [ + 'attribute', 'block', 'constant', 'country_names', 'country_timezones', 'currency_names', 'cycle', 'date', + 'html_classes', 'language_names', 'locale_names', 'max', 'min', 'parent', 'random', 'range', 'script_names', + 'source', 'template_from_string', 'timezone_names' + ]; + const SANDBOX_TAGS = [ 'apply', 'autoescape', 'block', 'cache', 'do', 'embed', 'flush', 'for', 'from', 'if', + 'macro', 'set', 'with' + ]; + const SANDBOX_FILTERS = ['abs', 'batch', 'capitalize', 'column', 'convert_encoding', 'country_name', + 'currency_name', 'currency_symbol', 'data_uri', 'date', 'date_modify', 'default', 'escape', 'first', + 'format','format_currency', 'format_date', 'format_datetime', 'format_number', 'format_time', + 'html_to_markdown', 'inky_to_html', 'inline_css', 'join', 'json_encode', 'keys', 'language_name', + 'last', 'length', 'locale_name', 'lower', 'markdown_to_html', 'merge', 'nl2br', 'number_format', + 'replace', 'reverse', 'round', 'sort', 'spaceless', 'striptags', 'title', 'trim', 'upper', + 'url_encode', 'url_decode', 'u', 'wordwrap' + ]; + /** @var array */ protected $custom_filters; @@ -28,6 +50,9 @@ abstract class WPML_Templates_Factory { /** @var Twig_Environment */ protected $twig; + /** @var Twig_Environment */ + protected $sandboxTwig; + /** * WPML_Templates_Factory constructor. * @@ -59,6 +84,38 @@ public function show( $template = null, $model = null ) { echo $this->get_view( $template, $model ); } + public function get_sandbox_view( $template = null, $model = null ) { + $output = ''; + $this->maybe_init_sandbox_twig(); + + if ( null === $model ) { + $model = $this->get_model(); + } + if ( null === $template ) { + $template = $this->get_template(); + } + + try { + $output = $this->sandboxTwig->render( $template, $model ); + } catch ( RuntimeException $e ) { + if ( $this->is_caching_enabled() ) { + $this->disable_twig_cache(); + $this->sandboxTwig = null; + $this->maybe_init_sandbox_twig(); + $output = $this->get_sandbox_view( $template, $model ); + } else { + $this->add_exception_notice( $e ); + } + } catch ( Twig_Error_Syntax $e ) { + $message = 'Invalid Twig template string: ' . $e->getRawMessage() . "\n" . $template; + $this->get_wp_api()->error_log( $message ); + } catch ( WPML\Core\Twig\Sandbox\SecurityNotAllowedFilterError $e ) { + $this->get_wp_api()->error_log( $e->getMessage() ); + } + + return $output; + } + /** * @param ?string $template * @param ?array $model @@ -99,42 +156,11 @@ public function get_view( $template = null, $model = null ) { } protected function maybe_init_twig() { - if ( ! $this->twig ) { - $loader = $this->get_twig_loader(); - - $environment_args = array(); - - if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) { - $environment_args['debug'] = true; - } - - if ( $this->is_caching_enabled() ) { - $wpml_cache_directory = new WPML_Cache_Directory( $this->get_wp_api() ); - $this->cache_directory = $wpml_cache_directory->get( 'twig' ); - - if ( $this->cache_directory ) { - $environment_args['cache'] = $this->cache_directory; - $environment_args['auto_reload'] = true; - } else { - $this->disable_twig_cache(); - } - } + $this->_init_twig( false ); + } - $this->twig = $this->get_wp_api()->get_twig_environment( $loader, $environment_args ); - if ( $this->custom_functions && count( $this->custom_functions ) > 0 ) { - foreach ( $this->custom_functions as $custom_function ) { - $this->twig->addFunction( $custom_function ); - } - } - if ( $this->custom_filters && count( $this->custom_filters ) > 0 ) { - foreach ( $this->custom_filters as $custom_filter ) { - $this->twig->addFilter( $custom_filter ); - } - } - if ( Obj::propOr( false, 'debug', $environment_args ) ) { - $this->twig->addExtension( new \WPML\Core\Twig\Extension\DebugExtension() ); - } - } + protected function maybe_init_sandbox_twig() { + $this->_init_twig( true ); } abstract public function get_template(); @@ -204,4 +230,59 @@ protected function get_twig_loader() { return $loader; } + + + protected function _init_twig( $sandbox = false ) { + if ( ( ! $this->twig && ! $sandbox ) || ( ! $this->sandboxTwig && $sandbox ) ) { + $loader = $this->get_twig_loader(); + + $environment_args = array(); + + if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) { + $environment_args['debug'] = true; + } + + if ( $this->is_caching_enabled() ) { + $wpml_cache_directory = new WPML_Cache_Directory( $this->get_wp_api() ); + $this->cache_directory = $wpml_cache_directory->get( 'twig' ); + + if ( $this->cache_directory ) { + $environment_args['cache'] = $this->cache_directory; + $environment_args['auto_reload'] = true; + } else { + $this->disable_twig_cache(); + } + } + + $twig = $this->get_wp_api()->get_twig_environment( $loader, $environment_args ); + if ( $this->custom_functions && count( $this->custom_functions ) > 0 ) { + foreach ( $this->custom_functions as $custom_function ) { + $twig->addFunction( $custom_function ); + } + } + if ( $this->custom_filters && count( $this->custom_filters ) > 0 ) { + foreach ( $this->custom_filters as $custom_filter ) { + $twig->addFilter( $custom_filter ); + } + } + if ( Obj::propOr( false, 'debug', $environment_args ) ) { + $twig->addExtension( new \WPML\Core\Twig\Extension\DebugExtension() ); + } + if ( $sandbox && ( ! defined( 'WPML_LS_TEMPLATE_UNSAFE_MODE' ) || ! WPML_LS_TEMPLATE_UNSAFE_MODE ) ) { + $policy = new \WPML\Core\Twig\Sandbox\SecurityPolicy( + self::SANDBOX_TAGS, + self::SANDBOX_FILTERS, + [], + [], + self::SANDBOX_FUNCTIONS + ); + $twig->addExtension( new \WPML\Core\Twig\Extension\SandboxExtension( $policy, true ) ); + } + if ( $sandbox ) { + $this->sandboxTwig = $twig; + } else { + $this->twig = $twig; + } + } + } } diff --git a/wp-content/plugins/sitepress-multilingual-cms/inc/absolute-links/absolute-links.class.php b/wp-content/plugins/sitepress-multilingual-cms/inc/absolute-links/absolute-links.class.php index c1918236..84b7ecff 100755 --- a/wp-content/plugins/sitepress-multilingual-cms/inc/absolute-links/absolute-links.class.php +++ b/wp-content/plugins/sitepress-multilingual-cms/inc/absolute-links/absolute-links.class.php @@ -183,7 +183,7 @@ public function _process_generic_text( $source_text, &$alp_broken_links ) { $request_match = $req_uri . '/' . $request; } - if ( preg_match( "!^$match!", $request_match, $matches ) || preg_match( "!^$match!", urldecode( $request_match ), $matches ) ) { + if ( preg_match( "#^$match#", $request_match, $matches ) || preg_match( "#^$match#", urldecode( $request_match ), $matches ) ) { // Got a match. // Trim the query of everything up to the '?'. diff --git a/wp-content/plugins/sitepress-multilingual-cms/readme.txt b/wp-content/plugins/sitepress-multilingual-cms/readme.txt index 588d60bb..8aab0373 100644 --- a/wp-content/plugins/sitepress-multilingual-cms/readme.txt +++ b/wp-content/plugins/sitepress-multilingual-cms/readme.txt @@ -1,2 +1,2 @@ === SitePress Multilingual CMS === -Stable tag: 4.6.12 \ No newline at end of file +Stable tag: 4.6.13 \ No newline at end of file diff --git a/wp-content/plugins/sitepress-multilingual-cms/sitepress.php b/wp-content/plugins/sitepress-multilingual-cms/sitepress.php index 00b97f9e..0a004028 100755 --- a/wp-content/plugins/sitepress-multilingual-cms/sitepress.php +++ b/wp-content/plugins/sitepress-multilingual-cms/sitepress.php @@ -2,10 +2,10 @@ /** * Plugin Name: WPML Multilingual CMS * Plugin URI: https://wpml.org/ - * Description: WPML Multilingual CMS | Documentation | WPML 4.6.12 release notes + * Description: WPML Multilingual CMS | Documentation | WPML 4.6.13 release notes * Author: OnTheGoSystems * Author URI: http://www.onthegosystems.com/ - * Version: 4.6.12 + * Version: 4.6.13 * Plugin Slug: sitepress-multilingual-cms * * @package WPML\Core @@ -29,7 +29,7 @@ return; } -define( 'ICL_SITEPRESS_VERSION', '4.6.12' ); +define( 'ICL_SITEPRESS_VERSION', '4.6.13' ); // Do not uncomment the following line! // If you need to use this constant, use it in the wp-config.php file diff --git a/wp-content/plugins/sitepress-multilingual-cms/vendor/autoload.php b/wp-content/plugins/sitepress-multilingual-cms/vendor/autoload.php index bbfd3a14..f27658be 100644 --- a/wp-content/plugins/sitepress-multilingual-cms/vendor/autoload.php +++ b/wp-content/plugins/sitepress-multilingual-cms/vendor/autoload.php @@ -4,4 +4,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInit94c4b71bcde764d13f2979261af726e4::getLoader(); +return ComposerAutoloaderInit65c4f41f6d25bd3a323807106b299e9c::getLoader(); diff --git a/wp-content/plugins/sitepress-multilingual-cms/vendor/composer/autoload_real.php b/wp-content/plugins/sitepress-multilingual-cms/vendor/composer/autoload_real.php index 361ff6cd..eea02b7d 100644 --- a/wp-content/plugins/sitepress-multilingual-cms/vendor/composer/autoload_real.php +++ b/wp-content/plugins/sitepress-multilingual-cms/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInit94c4b71bcde764d13f2979261af726e4 +class ComposerAutoloaderInit65c4f41f6d25bd3a323807106b299e9c { private static $loader; @@ -24,15 +24,15 @@ public static function getLoader() require __DIR__ . '/platform_check.php'; - spl_autoload_register(array('ComposerAutoloaderInit94c4b71bcde764d13f2979261af726e4', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInit65c4f41f6d25bd3a323807106b299e9c', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); - spl_autoload_unregister(array('ComposerAutoloaderInit94c4b71bcde764d13f2979261af726e4', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit65c4f41f6d25bd3a323807106b299e9c', 'loadClassLoader')); $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); if ($useStaticLoader) { require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInit94c4b71bcde764d13f2979261af726e4::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit65c4f41f6d25bd3a323807106b299e9c::getInitializer($loader)); } else { $map = require __DIR__ . '/autoload_namespaces.php'; foreach ($map as $namespace => $path) { @@ -53,12 +53,12 @@ public static function getLoader() $loader->register(true); if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInit94c4b71bcde764d13f2979261af726e4::$files; + $includeFiles = Composer\Autoload\ComposerStaticInit65c4f41f6d25bd3a323807106b299e9c::$files; } else { $includeFiles = require __DIR__ . '/autoload_files.php'; } foreach ($includeFiles as $fileIdentifier => $file) { - composerRequire94c4b71bcde764d13f2979261af726e4($fileIdentifier, $file); + composerRequire65c4f41f6d25bd3a323807106b299e9c($fileIdentifier, $file); } return $loader; @@ -70,7 +70,7 @@ public static function getLoader() * @param string $file * @return void */ -function composerRequire94c4b71bcde764d13f2979261af726e4($fileIdentifier, $file) +function composerRequire65c4f41f6d25bd3a323807106b299e9c($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; diff --git a/wp-content/plugins/sitepress-multilingual-cms/vendor/composer/autoload_static.php b/wp-content/plugins/sitepress-multilingual-cms/vendor/composer/autoload_static.php index fd882f8f..e5e4901e 100644 --- a/wp-content/plugins/sitepress-multilingual-cms/vendor/composer/autoload_static.php +++ b/wp-content/plugins/sitepress-multilingual-cms/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInit94c4b71bcde764d13f2979261af726e4 +class ComposerStaticInit65c4f41f6d25bd3a323807106b299e9c { public static $files = array ( 'b45b351e6b6f7487d819961fef2fda77' => __DIR__ . '/..' . '/jakeasmith/http_build_url/src/http_build_url.php', @@ -2013,9 +2013,9 @@ class ComposerStaticInit94c4b71bcde764d13f2979261af726e4 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit94c4b71bcde764d13f2979261af726e4::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit94c4b71bcde764d13f2979261af726e4::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInit94c4b71bcde764d13f2979261af726e4::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInit65c4f41f6d25bd3a323807106b299e9c::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit65c4f41f6d25bd3a323807106b299e9c::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInit65c4f41f6d25bd3a323807106b299e9c::$classMap; }, null, ClassLoader::class); } diff --git a/wp-content/plugins/sitepress-multilingual-cms/vendor/composer/installed.php b/wp-content/plugins/sitepress-multilingual-cms/vendor/composer/installed.php index 88021c52..46dc0f6e 100644 --- a/wp-content/plugins/sitepress-multilingual-cms/vendor/composer/installed.php +++ b/wp-content/plugins/sitepress-multilingual-cms/vendor/composer/installed.php @@ -1,11 +1,11 @@ array( - 'pretty_version' => '4.6.12', - 'version' => '4.6.12.0', + 'pretty_version' => '4.6.13', + 'version' => '4.6.13.0', 'type' => 'wordpress-plugin', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), - 'reference' => '638198591142bd5bdc9deb355b122c3cfed48827', + 'reference' => '5ae1d953e255191d6f833f5d09e293051eaabbe0', 'name' => 'wpml/core', 'dev' => false, ), @@ -164,12 +164,12 @@ 'dev_requirement' => false, ), 'wpml/core' => array( - 'pretty_version' => '4.6.12', - 'version' => '4.6.12.0', + 'pretty_version' => '4.6.13', + 'version' => '4.6.13.0', 'type' => 'wordpress-plugin', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), - 'reference' => '638198591142bd5bdc9deb355b122c3cfed48827', + 'reference' => '5ae1d953e255191d6f833f5d09e293051eaabbe0', 'dev_requirement' => false, ), 'wpml/core-api' => array(