Changeset 3232500
- Timestamp:
- 01/31/2025 09:19:48 AM (14 months ago)
- Location:
- clonable
- Files:
-
- 116 added
- 13 edited
-
tags/2.3.1 (added)
-
tags/2.3.1/Bootstrap.php (added)
-
tags/2.3.1/clonable-wp.php (added)
-
tags/2.3.1/controllers (added)
-
tags/2.3.1/controllers/Controller.php (added)
-
tags/2.3.1/controllers/DashboardController.php (added)
-
tags/2.3.1/controllers/LandingPageController.php (added)
-
tags/2.3.1/controllers/LanguageSwitcherController.php (added)
-
tags/2.3.1/controllers/LanguageTagController.php (added)
-
tags/2.3.1/controllers/SettingController.php (added)
-
tags/2.3.1/controllers/WoocommerceController.php (added)
-
tags/2.3.1/controllers/index.php (added)
-
tags/2.3.1/helpers (added)
-
tags/2.3.1/helpers/Functions.php (added)
-
tags/2.3.1/helpers/Html.php (added)
-
tags/2.3.1/helpers/Json.php (added)
-
tags/2.3.1/helpers/Locales.php (added)
-
tags/2.3.1/helpers/Session.php (added)
-
tags/2.3.1/helpers/clonable-locales-list.php (added)
-
tags/2.3.1/helpers/index.php (added)
-
tags/2.3.1/images (added)
-
tags/2.3.1/images/clonable-full-logo.png (added)
-
tags/2.3.1/images/clonable.png (added)
-
tags/2.3.1/images/configure-wordpress-thumbnail.png (added)
-
tags/2.3.1/images/flags.png (added)
-
tags/2.3.1/images/index.php (added)
-
tags/2.3.1/images/language-switcher-thumbnail.png (added)
-
tags/2.3.1/index.php (added)
-
tags/2.3.1/middleware (added)
-
tags/2.3.1/middleware/Auth.php (added)
-
tags/2.3.1/middleware/ClonedSite.php (added)
-
tags/2.3.1/middleware/MiddlewareHandler.php (added)
-
tags/2.3.1/middleware/MiddlewareInterface.php (added)
-
tags/2.3.1/middleware/WooCommerce.php (added)
-
tags/2.3.1/middleware/index.php (added)
-
tags/2.3.1/models (added)
-
tags/2.3.1/models/ApiKey.php (added)
-
tags/2.3.1/models/ClonableWooCommerce.php (added)
-
tags/2.3.1/models/ClonedSite.php (added)
-
tags/2.3.1/models/LanguageSwitcher.php (added)
-
tags/2.3.1/models/LanguageTag.php (added)
-
tags/2.3.1/models/Settings.php (added)
-
tags/2.3.1/models/Site.php (added)
-
tags/2.3.1/models/index.php (added)
-
tags/2.3.1/objects (added)
-
tags/2.3.1/objects/ApiResponse.php (added)
-
tags/2.3.1/objects/CircuitBreaker.php (added)
-
tags/2.3.1/objects/ClonableConfig.php (added)
-
tags/2.3.1/objects/ClonableResponse.php (added)
-
tags/2.3.1/objects/CurlBuilder.php (added)
-
tags/2.3.1/objects/ExcludedProductTerm.php (added)
-
tags/2.3.1/objects/Notification.php (added)
-
tags/2.3.1/objects/index.php (added)
-
tags/2.3.1/readme-da_DK.txt (added)
-
tags/2.3.1/readme-de_DE.txt (added)
-
tags/2.3.1/readme-es_ES.txt (added)
-
tags/2.3.1/readme-fr_FR.txt (added)
-
tags/2.3.1/readme-it_IT.txt (added)
-
tags/2.3.1/readme-nb_NO.txt (added)
-
tags/2.3.1/readme-nl_NL.txt (added)
-
tags/2.3.1/readme-sv_SE.txt (added)
-
tags/2.3.1/readme.txt (added)
-
tags/2.3.1/routes (added)
-
tags/2.3.1/routes/Router.php (added)
-
tags/2.3.1/routes/index.php (added)
-
tags/2.3.1/services (added)
-
tags/2.3.1/services/AllowedHostsService.php (added)
-
tags/2.3.1/services/ApiService.php (added)
-
tags/2.3.1/services/ClonableWooCommerceService.php (added)
-
tags/2.3.1/services/LanguageSwitcherService.php (added)
-
tags/2.3.1/services/LanguageTagService.php (added)
-
tags/2.3.1/services/LocaleService.php (added)
-
tags/2.3.1/services/ShortCodeService.php (added)
-
tags/2.3.1/services/SubfolderService.php (added)
-
tags/2.3.1/services/SyncService.php (added)
-
tags/2.3.1/services/index.php (added)
-
tags/2.3.1/services/modules (added)
-
tags/2.3.1/services/modules/DataPanelModule.php (added)
-
tags/2.3.1/services/modules/ExclusionModule.php (added)
-
tags/2.3.1/services/modules/ProductImporterModule.php (added)
-
tags/2.3.1/services/modules/TaxonomyModule.php (added)
-
tags/2.3.1/services/modules/index.php (added)
-
tags/2.3.1/traits (added)
-
tags/2.3.1/traits/Forms.php (added)
-
tags/2.3.1/traits/Validation.php (added)
-
tags/2.3.1/traits/WooCommerceCheck.php (added)
-
tags/2.3.1/traits/index.php (added)
-
tags/2.3.1/uninstall.php (added)
-
tags/2.3.1/views (added)
-
tags/2.3.1/views/DashboardView.php (added)
-
tags/2.3.1/views/LanguageSwitcherView.php (added)
-
tags/2.3.1/views/LanguageTagView.php (added)
-
tags/2.3.1/views/Layout.php (added)
-
tags/2.3.1/views/OnboardingView.php (added)
-
tags/2.3.1/views/SettingsView.php (added)
-
tags/2.3.1/views/ViewInterface.php (added)
-
tags/2.3.1/views/WoocommerceView.php (added)
-
tags/2.3.1/views/css (added)
-
tags/2.3.1/views/css/clonable-extra-button.css (added)
-
tags/2.3.1/views/css/clonable-global.css (added)
-
tags/2.3.1/views/css/clonable-thumbnails.css (added)
-
tags/2.3.1/views/css/clonable-woocommerce.css (added)
-
tags/2.3.1/views/css/clonable.css (added)
-
tags/2.3.1/views/css/fomantic-dropdown.css (added)
-
tags/2.3.1/views/css/fomantic-transition.css (added)
-
tags/2.3.1/views/css/freakflags.css (added)
-
tags/2.3.1/views/css/index.php (added)
-
tags/2.3.1/views/index.php (added)
-
tags/2.3.1/views/scripts (added)
-
tags/2.3.1/views/scripts/alpine.js (added)
-
tags/2.3.1/views/scripts/dohjs.js (added)
-
tags/2.3.1/views/scripts/fomantic-dropdown.js (added)
-
tags/2.3.1/views/scripts/fomantic-transition.js (added)
-
tags/2.3.1/views/scripts/index.php (added)
-
tags/2.3.1/views/scripts/onload.js (added)
-
tags/2.3.1/views/scripts/woocommerce-clone-field.js (added)
-
trunk/clonable-wp.php (modified) (2 diffs)
-
trunk/helpers/Session.php (modified) (3 diffs)
-
trunk/models/Site.php (modified) (2 diffs)
-
trunk/readme-da_DK.txt (modified) (2 diffs)
-
trunk/readme-de_DE.txt (modified) (2 diffs)
-
trunk/readme-es_ES.txt (modified) (2 diffs)
-
trunk/readme-fr_FR.txt (modified) (2 diffs)
-
trunk/readme-it_IT.txt (modified) (2 diffs)
-
trunk/readme-nb_NO.txt (modified) (2 diffs)
-
trunk/readme-nl_NL.txt (modified) (2 diffs)
-
trunk/readme-sv_SE.txt (modified) (2 diffs)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/services/SubfolderService.php (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
clonable/trunk/clonable-wp.php
r3222934 r3232500 5 5 Description: Official plugin for improving your clones made with Clonable. 6 6 Plugin URI: https://kb.clonable.net/en/introduction/getting-started/wordpress#de-clonable-plug-in-downloaden 7 Version: 2.3. 07 Version: 2.3.1 8 8 Author: Clonable BV 9 9 Author URI: https://www.clonable.net … … 104 104 105 105 define('CLONABLE_NAME', 'Clonable'); 106 define('CLONABLE_VERSION', '2.3. 0');106 define('CLONABLE_VERSION', '2.3.1'); 107 107 108 108 try { -
clonable/trunk/helpers/Session.php
r3104460 r3232500 7 7 8 8 public static function old($option_name, $default_value = false) { 9 self::start_session_if_needed(); 9 10 if (isset($_SESSION[self::CLONABLE_VALIDATION_KEY][$option_name])) { 10 11 return $_SESSION[self::CLONABLE_VALIDATION_KEY][$option_name]; … … 14 15 15 16 public static function put_validation_data($key, $data) { 17 self::start_session_if_needed(); 16 18 $data = Json::handle_output(Json::handle_output($data)); 17 19 $_SESSION[self::CLONABLE_VALIDATION_KEY][$key] = $data; … … 19 21 20 22 public static function clear_validation_data() { 23 self::start_session_if_needed(); 21 24 unset($_SESSION[self::CLONABLE_VALIDATION_KEY]); 22 25 } 26 27 public static function start_session_if_needed() { 28 if (!session_id()) { 29 session_start(); 30 } 31 } 23 32 } -
clonable/trunk/models/Site.php
r3198101 r3232500 72 72 $mapped_subdomains = array_map(function ($clone) use ($domain) { 73 73 if ($clone["domain"] == $domain) { 74 return $clone["subfolder_clone"]; 74 return [ 75 'subfolder_clone' => $clone["subfolder_clone"], 76 'with_trailing_slash' => ($clone["use_subfolder_trailing_slash"] ?? true), 77 ]; 75 78 } 76 79 return null; … … 93 96 } 94 97 95 return 'https://' . $prefix . $clone['domain'] . $clone['subfolder_clone']; 98 $use_trailing_slash = ($clone['use_subfolder_trailing_slash'] ?? true); 99 if ($use_trailing_slash) { 100 return 'https://' . $prefix . $clone['domain'] . $clone['subfolder_clone']; 101 } else { 102 return 'https://' . $prefix . $clone['domain'] . substr($clone['subfolder_clone'], 0, -1); 103 } 96 104 } 97 105 -
clonable/trunk/readme-da_DK.txt
r3222934 r3232500 5 5 Tested up to: 6.7.1 6 6 Requires PHP: 7.2 7 Stable tag: 2.3. 07 Stable tag: 2.3.1 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.3.1 35 Understøttelse af kloner af undermapper uden efterfølgende skråstreg. 36 Rettelse af udefinerede sessioner. 37 34 38 v2.3.0 35 39 Kompatibilitet med WooCommerce High-Performance Order Storage -
clonable/trunk/readme-de_DE.txt
r3222934 r3232500 5 5 Tested up to: 6.7.1 6 6 Requires PHP: 7.2 7 Stable tag: 2.3. 07 Stable tag: 2.3.1 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.3.1 35 Unterstützung für Unterordner-Klone mit nicht-nachlaufendem Schrägstrich. 36 Fix für undefinierte Sitzungen. 37 34 38 v2.3.0 35 39 Kompatibilität mit WooCommerce High-Performance Order Storage -
clonable/trunk/readme-es_ES.txt
r3222934 r3232500 5 5 Tested up to: 6.7.1 6 6 Requires PHP: 7.2 7 Stable tag: 2.3. 07 Stable tag: 2.3.1 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.3.1 35 Soporte para clones de subcarpetas sin barra diagonal. 36 Corrección de sesiones no definidas. 37 34 38 v2.3.0 35 39 Compatibilidad con High-Performance Order Storage -
clonable/trunk/readme-fr_FR.txt
r3222934 r3232500 5 5 Tested up to: 6.7.1 6 6 Requires PHP: 7.2 7 Stable tag: 2.3. 07 Stable tag: 2.3.1 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.3.1 35 Prise en charge des clones de sous-dossiers sans barre oblique de fin. 36 Correction des sessions indéfinies. 37 34 38 v2.3.0 35 39 Compatibilité avec WooCommerce High-Performance Order Storage -
clonable/trunk/readme-it_IT.txt
r3222934 r3232500 5 5 Tested up to: 6.7.1 6 6 Requires PHP: 7.2 7 Stable tag: 2.3. 07 Stable tag: 2.3.1 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.3.1 35 Supporto per i cloni di sottocartelle con slash non traccianti. 36 Correzione di sessioni non definite. 37 34 38 v2.3.0 35 39 Compatibilità con High-Performance Order Storage -
clonable/trunk/readme-nb_NO.txt
r3222934 r3232500 5 5 Tested up to: 6.7.1 6 6 Requires PHP: 7.2 7 Stable tag: 2.3. 07 Stable tag: 2.3.1 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.3.1 35 Støtte for kloner av undermapper uten skråstrek. 36 Løsning for udefinerte økter. 37 34 38 v2.3.0 35 39 Kompatibilitet med High-Performance Order Storage -
clonable/trunk/readme-nl_NL.txt
r3222934 r3232500 5 5 Tested up to: 6.7.1 6 6 Requires PHP: 7.2 7 Stable tag: 2.3. 07 Stable tag: 2.3.1 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.3.1 35 Ondersteuning voor niet-trailing slash submappen klonen. 36 Fix voor ongedefinieerde sessies. 37 34 38 v2.3.0 35 39 Compatibiliteit met WooCommerce High-Performance Order Storage -
clonable/trunk/readme-sv_SE.txt
r3222934 r3232500 5 5 Tested up to: 6.7.1 6 6 Requires PHP: 7.2 7 Stable tag: 2.3. 07 Stable tag: 2.3.1 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.3.1 35 Stöd för kloner av undermappar med snedstreck utan efterföljande snedstreck. 36 Fix för odefinierade sessioner. 37 34 38 v2.3.0 35 39 Kompatibilitet med High-Performance Order Storage -
clonable/trunk/readme.txt
r3222934 r3232500 5 5 Tested up to: 6.7.1 6 6 Requires PHP: 7.2 7 Stable tag: 2.3. 07 Stable tag: 2.3.1 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.3.1 35 Support for non-trailing slash subfolder clones. 36 Fix for undefined sessions. 37 34 38 v2.3.0 35 39 Compatibility with WooCommerce High-Performance Order Storage -
clonable/trunk/services/SubfolderService.php
r3185619 r3232500 57 57 } 58 58 59 /** 60 * @return array 61 */ 59 62 private function get_subfolder_languages() { 60 63 $response = get_option("clonable_site"); … … 70 73 $server_data = $_SERVER; // this fixes some linting rules 71 74 72 $ languages = $this->get_subfolder_languages();75 $subfolder_languages = $this->get_subfolder_languages(); 73 76 $is_clonable_page = false; 74 $request_path = $server_data['REQUEST_URI']; 75 77 78 $request_url = explode('?', $server_data['REQUEST_URI'], 2); 79 $request_path = $request_url[0] ?? '/'; 76 80 if ($request_path == null || $request_path == '/' || !empty($server_data['HTTP_CLONABLE_CLONE_SUBFOLDER'])) { 77 81 return; … … 79 83 80 84 // Check if this request is for a subfolder 81 foreach ($ languages as $language) {82 if (Functions::str_starts_with($request_path, $ language)) {85 foreach ($subfolder_languages as $subfolder_language) { 86 if (Functions::str_starts_with($request_path, $subfolder_language['subfolder_clone'])) { 83 87 $is_clonable_page = true; 84 88 break; … … 86 90 87 91 // Intercept cases where eg /en is requested. Redirect those to /en/ 88 $trimmed_lang = rtrim($language, '/'); 92 $trimmed_lang = rtrim($subfolder_language['subfolder_clone'], '/'); 93 89 94 if ($request_path === $trimmed_lang) { 90 wp_redirect($language, 302, 'WordPress - Clonable'); 91 exit(); 92 } 93 } 94 95 if ($subfolder_language['with_trailing_slash']) { 96 wp_redirect($subfolder_language['subfolder_clone'], 302, 'WordPress - Clonable'); 97 exit(); 98 } else { 99 $is_clonable_page = true; 100 break; 101 } 102 } 103 } 104 105 $request_path = $request_path . (count($request_url) === 2 ? "?{$request_url[1]}" : ""); 95 106 if ($is_clonable_page) { 96 107 // Check the circuit breaker before actually sending the request to Clonable
Note: See TracChangeset
for help on using the changeset viewer.