Changeset 3467415
- Timestamp:
- 02/23/2026 08:54:44 AM (5 weeks ago)
- Location:
- clonable
- Files:
-
- 136 added
- 15 edited
-
tags/2.9.3 (added)
-
tags/2.9.3/Bootstrap.php (added)
-
tags/2.9.3/clonable-wp.php (added)
-
tags/2.9.3/controllers (added)
-
tags/2.9.3/controllers/Controller.php (added)
-
tags/2.9.3/controllers/DashboardController.php (added)
-
tags/2.9.3/controllers/EmailTranslationsController.php (added)
-
tags/2.9.3/controllers/LandingPageController.php (added)
-
tags/2.9.3/controllers/LanguageSwitcherController.php (added)
-
tags/2.9.3/controllers/LanguageTagController.php (added)
-
tags/2.9.3/controllers/SettingController.php (added)
-
tags/2.9.3/controllers/WoocommerceController.php (added)
-
tags/2.9.3/controllers/index.php (added)
-
tags/2.9.3/exceptions (added)
-
tags/2.9.3/exceptions/ApiException.php (added)
-
tags/2.9.3/exceptions/CurlException.php (added)
-
tags/2.9.3/exceptions/ValidationException.php (added)
-
tags/2.9.3/helpers (added)
-
tags/2.9.3/helpers/Functions.php (added)
-
tags/2.9.3/helpers/Html.php (added)
-
tags/2.9.3/helpers/Json.php (added)
-
tags/2.9.3/helpers/Locales.php (added)
-
tags/2.9.3/helpers/MultiCurrency.php (added)
-
tags/2.9.3/helpers/Session.php (added)
-
tags/2.9.3/helpers/TextTranslator.php (added)
-
tags/2.9.3/helpers/UrlTranslator.php (added)
-
tags/2.9.3/helpers/clonable-locales-list.php (added)
-
tags/2.9.3/helpers/index.php (added)
-
tags/2.9.3/images (added)
-
tags/2.9.3/images/Logo_Icon_white.png (added)
-
tags/2.9.3/images/Logo_Icon_white.svg (added)
-
tags/2.9.3/images/clonable-full-logo.png (added)
-
tags/2.9.3/images/clonable.png (added)
-
tags/2.9.3/images/configure-wordpress-thumbnail.png (added)
-
tags/2.9.3/images/flags.png (added)
-
tags/2.9.3/images/index.php (added)
-
tags/2.9.3/images/language-switcher-thumbnail.png (added)
-
tags/2.9.3/index.php (added)
-
tags/2.9.3/middleware (added)
-
tags/2.9.3/middleware/Auth.php (added)
-
tags/2.9.3/middleware/ClonedSite.php (added)
-
tags/2.9.3/middleware/MiddlewareHandler.php (added)
-
tags/2.9.3/middleware/MiddlewareInterface.php (added)
-
tags/2.9.3/middleware/WooCommerce.php (added)
-
tags/2.9.3/middleware/index.php (added)
-
tags/2.9.3/models (added)
-
tags/2.9.3/models/ApiKey.php (added)
-
tags/2.9.3/models/ClonableWooCommerce.php (added)
-
tags/2.9.3/models/ClonedSite.php (added)
-
tags/2.9.3/models/EmailTranslations.php (added)
-
tags/2.9.3/models/LanguageSwitcher.php (added)
-
tags/2.9.3/models/LanguageTag.php (added)
-
tags/2.9.3/models/Settings.php (added)
-
tags/2.9.3/models/Site.php (added)
-
tags/2.9.3/models/index.php (added)
-
tags/2.9.3/objects (added)
-
tags/2.9.3/objects/ApiResponse.php (added)
-
tags/2.9.3/objects/CircuitBreaker.php (added)
-
tags/2.9.3/objects/ClonableConfig.php (added)
-
tags/2.9.3/objects/ClonableResponse.php (added)
-
tags/2.9.3/objects/CurlBuilder.php (added)
-
tags/2.9.3/objects/ExcludedProductTerm.php (added)
-
tags/2.9.3/objects/Notification.php (added)
-
tags/2.9.3/objects/index.php (added)
-
tags/2.9.3/readme-da_DK.txt (added)
-
tags/2.9.3/readme-de_DE.txt (added)
-
tags/2.9.3/readme-es_ES.txt (added)
-
tags/2.9.3/readme-fr_FR.txt (added)
-
tags/2.9.3/readme-it_IT.txt (added)
-
tags/2.9.3/readme-nb_NO.txt (added)
-
tags/2.9.3/readme-nl_NL.txt (added)
-
tags/2.9.3/readme-sv_SE.txt (added)
-
tags/2.9.3/readme.txt (added)
-
tags/2.9.3/routes (added)
-
tags/2.9.3/routes/Router.php (added)
-
tags/2.9.3/routes/index.php (added)
-
tags/2.9.3/services (added)
-
tags/2.9.3/services/AdminUIService.php (added)
-
tags/2.9.3/services/AllowedHostsService.php (added)
-
tags/2.9.3/services/ApiService.php (added)
-
tags/2.9.3/services/CacheService.php (added)
-
tags/2.9.3/services/ClonableWooCommerceService.php (added)
-
tags/2.9.3/services/EmailTranslationsService.php (added)
-
tags/2.9.3/services/LanguageSwitcherService.php (added)
-
tags/2.9.3/services/LanguageTagService.php (added)
-
tags/2.9.3/services/LocaleService.php (added)
-
tags/2.9.3/services/MultiCurrencyService.php (added)
-
tags/2.9.3/services/ShortCodeService.php (added)
-
tags/2.9.3/services/SubfolderService.php (added)
-
tags/2.9.3/services/SyncService.php (added)
-
tags/2.9.3/services/index.php (added)
-
tags/2.9.3/services/modules (added)
-
tags/2.9.3/services/modules/DataPanelModule.php (added)
-
tags/2.9.3/services/modules/ExclusionModule.php (added)
-
tags/2.9.3/services/modules/ProductImporterModule.php (added)
-
tags/2.9.3/services/modules/TaxonomyModule.php (added)
-
tags/2.9.3/services/modules/index.php (added)
-
tags/2.9.3/traits (added)
-
tags/2.9.3/traits/Forms.php (added)
-
tags/2.9.3/traits/PluginCheck.php (added)
-
tags/2.9.3/traits/Validation.php (added)
-
tags/2.9.3/traits/index.php (added)
-
tags/2.9.3/uninstall.php (added)
-
tags/2.9.3/views (added)
-
tags/2.9.3/views/DashboardView.php (added)
-
tags/2.9.3/views/EmailTranslationsView.php (added)
-
tags/2.9.3/views/LanguageSwitcherView.php (added)
-
tags/2.9.3/views/LanguageTagView.php (added)
-
tags/2.9.3/views/Layout.php (added)
-
tags/2.9.3/views/OnboardingView.php (added)
-
tags/2.9.3/views/SettingsView.php (added)
-
tags/2.9.3/views/ViewInterface.php (added)
-
tags/2.9.3/views/WoocommerceView.php (added)
-
tags/2.9.3/views/css (added)
-
tags/2.9.3/views/css/clonable-admin-bar.css (added)
-
tags/2.9.3/views/css/clonable-extra-button.css (added)
-
tags/2.9.3/views/css/clonable-global.css (added)
-
tags/2.9.3/views/css/clonable-language-switcher.css (added)
-
tags/2.9.3/views/css/clonable-thumbnails.css (added)
-
tags/2.9.3/views/css/clonable-woocommerce.css (added)
-
tags/2.9.3/views/css/clonable.css (added)
-
tags/2.9.3/views/css/fomantic-dropdown.css (added)
-
tags/2.9.3/views/css/fomantic-transition.css (added)
-
tags/2.9.3/views/css/freakflags.css (added)
-
tags/2.9.3/views/css/index.php (added)
-
tags/2.9.3/views/index.php (added)
-
tags/2.9.3/views/scripts (added)
-
tags/2.9.3/views/scripts/alpine.js (added)
-
tags/2.9.3/views/scripts/dohjs.js (added)
-
tags/2.9.3/views/scripts/email-translations.js (added)
-
tags/2.9.3/views/scripts/fomantic-dropdown.js (added)
-
tags/2.9.3/views/scripts/fomantic-transition.js (added)
-
tags/2.9.3/views/scripts/index.php (added)
-
tags/2.9.3/views/scripts/language-switcher.js (added)
-
tags/2.9.3/views/scripts/onload.js (added)
-
tags/2.9.3/views/scripts/woocommerce-clone-field.js (added)
-
trunk/clonable-wp.php (modified) (2 diffs)
-
trunk/controllers/EmailTranslationsController.php (modified) (13 diffs)
-
trunk/controllers/WoocommerceController.php (modified) (4 diffs)
-
trunk/helpers/TextTranslator.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/ClonableWooCommerceService.php (modified) (1 diff)
-
trunk/services/EmailTranslationsService.php (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
clonable/trunk/clonable-wp.php
r3455196 r3467415 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.9. 27 Version: 2.9.3 8 8 Author: Clonable BV 9 9 Author URI: https://www.clonable.net 10 10 License: GPL v2 or later 11 11 Requires PHP: 7.0 12 Tested up to: 6.9 12 Tested up to: 6.9.1 13 13 */ 14 14 … … 126 126 127 127 define('CLONABLE_NAME', 'Clonable'); 128 define('CLONABLE_VERSION', '2.9. 2');128 define('CLONABLE_VERSION', '2.9.3'); 129 129 130 130 if (defined('WP_CLI') && WP_CLI) { -
clonable/trunk/controllers/EmailTranslationsController.php
r3452753 r3467415 8 8 use Clonable\Models\EmailTranslations; 9 9 10 class EmailTranslationsController extends Controller { 10 class EmailTranslationsController extends Controller 11 { 11 12 use Validation; 12 13 13 14 private static $instance = null; 14 15 15 public static function get_instance() { 16 public static function get_instance() 17 { 16 18 if (self::$instance === null) { 17 19 self::$instance = new EmailTranslationsController(); … … 21 23 } 22 24 23 private function __construct() { 25 private function __construct() 26 { 24 27 // Keep constructor private 25 28 $this->view = new EmailTranslationsView(); 26 29 } 27 30 28 public function validate($request) { 29 $this->validate_fields($request ,EmailTranslations::$fields); 30 } 31 32 public function clonable_email_translations_enabled_validate($input) { 33 return $this->validate_checkbox($input ,'clonable_email_translations_enabled'); 34 } 35 36 public function clonable_email_translations_excluded_addresses_validate($input) { 31 public function validate($request) 32 { 33 $this->validate_fields($request, EmailTranslations::$fields); 34 } 35 36 public function clonable_email_translations_enabled_validate($input) 37 { 38 return $this->validate_checkbox($input, 'clonable_email_translations_enabled'); 39 } 40 41 public function clonable_woocommerce_enable_pdf_invoice_translation_validate($input) 42 { 43 return $this->validate_checkbox($input, 'clonable_woocommerce_enable_pdf_invoice_translation'); 44 } 45 46 public function clonable_email_translations_excluded_addresses_validate($input) 47 { 37 48 if (!is_string($input)) { 38 49 $input = ''; … … 44 55 } 45 56 46 $parts = preg_split('/[\s,;]+/' ,$input ,- 1 ,PREG_SPLIT_NO_EMPTY);57 $parts = preg_split('/[\s,;]+/', $input, -1, PREG_SPLIT_NO_EMPTY); 47 58 48 59 $valid = []; … … 63 74 if (!empty($invalid) && \function_exists('add_settings_error')) { 64 75 add_settings_error( 65 'clonable_email_translations_excluded_addresses' ,66 'clonable_invalid_excluded_emails' ,67 'Invalid email address(es): ' . implode(', ' ,$invalid),76 'clonable_email_translations_excluded_addresses', 77 'clonable_invalid_excluded_emails', 78 'Invalid email address(es): ' . implode(', ', $invalid), 68 79 'error' 69 80 ); 70 81 } 71 82 72 return implode(', ' ,$valid); 73 } 74 75 public function clonable_email_headers_by_domain_validate($input) { 83 return implode(', ', $valid); 84 } 85 86 public function clonable_email_headers_by_domain_validate($input) 87 { 76 88 // The UI may submit a JSON string; normalize to array. 77 89 if (is_string($input)) { 78 $decoded = json_decode(stripslashes($input) ,true);90 $decoded = json_decode(stripslashes($input), true); 79 91 if (json_last_error() === JSON_ERROR_NONE) { 80 92 $input = $decoded; … … 109 121 if (function_exists('add_settings_error')) { 110 122 add_settings_error( 111 'clonable_email_headers_by_domain' ,112 'clonable_invalid_from_address_' . md5($domain) ,123 'clonable_email_headers_by_domain', 124 'clonable_invalid_from_address_' . md5($domain), 113 125 "Invalid From Address for domain '{$domain}': " . $row['from_address'] 114 126 ); … … 123 135 if (function_exists('add_settings_error')) { 124 136 add_settings_error( 125 'clonable_email_headers_by_domain' ,126 'clonable_invalid_reply_to_' . md5($domain) ,127 "Invalid Reply-To Address for domain '{$domain}': " . (string) $row['reply_to'] ,137 'clonable_email_headers_by_domain', 138 'clonable_invalid_reply_to_' . md5($domain), 139 "Invalid Reply-To Address for domain '{$domain}': " . (string) $row['reply_to'], 128 140 'error' 129 141 ); … … 137 149 if (function_exists('add_settings_error')) { 138 150 add_settings_error( 139 'clonable_email_headers_by_domain' ,140 'clonable_invalid_sender_name_' . md5($domain) ,151 'clonable_email_headers_by_domain', 152 'clonable_invalid_sender_name_' . md5($domain), 141 153 "Invalid Sender Name for domain '{$domain}': " . $row['sender_name'] 142 154 ); … … 151 163 $sanitized_logo = \function_exists('esc_url_raw') 152 164 ? esc_url_raw($email_logo) 153 : (string) filter_var($email_logo ,FILTER_SANITIZE_URL);165 : (string) filter_var($email_logo, FILTER_SANITIZE_URL); 154 166 155 167 // Check if the URL entered is an image URL 156 $path = parse_url($sanitized_logo ,PHP_URL_PATH);157 $ext = is_string($path) ? strtolower((string) pathinfo($path ,PATHINFO_EXTENSION)) : '';158 $is_image = in_array($ext ,['png' ,'jpg' ,'jpeg' ,'gif' ,'webp' ,'svg'] ,true);168 $path = parse_url($sanitized_logo, PHP_URL_PATH); 169 $ext = is_string($path) ? strtolower((string) pathinfo($path, PATHINFO_EXTENSION)) : ''; 170 $is_image = in_array($ext, ['png', 'jpg', 'jpeg', 'gif', 'webp', 'svg'], true); 159 171 160 172 if (!$sanitized_logo || !$is_image) { … … 162 174 if (\function_exists('add_settings_error')) { 163 175 add_settings_error( 164 'clonable_email_headers_by_domain' ,165 'clonable_invalid_email_logo_' . $domain ,176 'clonable_email_headers_by_domain', 177 'clonable_invalid_email_logo_' . $domain, 166 178 "Invalid Email Logo URL for clone domain '{$domain}': " . ($row['email_logo'] ?? '') 167 179 ); … … 173 185 174 186 $validated_rows[] = [ 175 'clone_id' => $clone_id ,176 'domain' => $domain ,177 'from_address' => $from_address ,178 'reply_to' => $reply_to ,179 'sender_name' => $sender_name ,180 'email_logo' => $email_logo ,187 'clone_id' => $clone_id, 188 'domain' => $domain, 189 'from_address' => $from_address, 190 'reply_to' => $reply_to, 191 'sender_name' => $sender_name, 192 'email_logo' => $email_logo, 181 193 ]; 182 194 } … … 185 197 } 186 198 187 public function clonable_wpo_replacements_by_domain_validate($input) { 199 public function clonable_wpo_replacements_by_domain_validate($input) 200 { 188 201 // The UI submits a JSON string via a hidden input; normalize to array. 189 202 if (is_string($input)) { 190 $decoded = json_decode(stripslashes($input) ,true);203 $decoded = json_decode(stripslashes($input), true); 191 204 if (json_last_error() === JSON_ERROR_NONE) { 192 205 $input = $decoded; … … 230 243 if (function_exists('add_settings_error')) { 231 244 add_settings_error( 232 'clonable_wpo_replacements_by_domain' ,233 'clonable_invalid_shop_email_' . md5($domain) ,245 'clonable_wpo_replacements_by_domain', 246 'clonable_invalid_shop_email_' . md5($domain), 234 247 "Invalid shop email address for domain '$domain': " . $shop_email_address 235 248 ); … … 240 253 241 254 $validated_rows[] = [ 242 'clone_id' => $clone_id ,243 'domain' => $domain ,244 'shop_phone_number' => $shop_phone_number ,245 'shop_email_address' => $shop_email_address ,246 'shop_name' => $shop_name ,247 'vat_number' => $vat_number ,248 'coc_number' => $coc_number ,249 'shop_address_line_1' => $shop_address_line_1 ,250 'shop_address_line_2' => $shop_address_line_2 ,251 'shop_address_country' => $shop_address_country ,252 'shop_address_state' => $shop_address_state ,253 'shop_address_city' => $shop_address_city ,254 'shop_address_postcode' => $shop_address_postcode ,255 'shop_address_additional' => $shop_address_additional ,255 'clone_id' => $clone_id, 256 'domain' => $domain, 257 'shop_phone_number' => $shop_phone_number, 258 'shop_email_address' => $shop_email_address, 259 'shop_name' => $shop_name, 260 'vat_number' => $vat_number, 261 'coc_number' => $coc_number, 262 'shop_address_line_1' => $shop_address_line_1, 263 'shop_address_line_2' => $shop_address_line_2, 264 'shop_address_country' => $shop_address_country, 265 'shop_address_state' => $shop_address_state, 266 'shop_address_city' => $shop_address_city, 267 'shop_address_postcode' => $shop_address_postcode, 268 'shop_address_additional' => $shop_address_additional, 256 269 ]; 257 270 } -
clonable/trunk/controllers/WoocommerceController.php
r3452753 r3467415 91 91 } 92 92 93 public function clonable_woocommerce_enable_pdf_invoice_translation_validate($input) {94 return $this->validate_checkbox($input, 'clonable_woocommerce_enable_pdf_invoice_translation');95 }96 97 93 public function clonable_curcy_currency_override_validate($input) 98 94 { … … 139 135 } 140 136 141 $domain_part = preg_replace('/^https?:\/\//', '', $row->domain); 137 $domain_part = preg_replace('/^https?:\/\//', '', $row->domain); 142 138 $domain_part = explode('/', $domain_part, 2)[0]; 143 139 … … 150 146 return $old_input; 151 147 } 152 148 153 149 if (!empty($row->billing_country) && !preg_match('/^[A-Z]{2}$/', $row->billing_country)) { 154 150 add_settings_error('clonable_default_country_by_domain', 'err_invalid_billing_country', "Landcode " . esc_html($row->billing_country) . " is niet valide. Gebruik een 2-letter ISO landcode."); … … 160 156 return $old_input; 161 157 } 162 163 158 } 164 159 -
clonable/trunk/helpers/TextTranslator.php
r3455196 r3467415 36 36 $editorToken = null; 37 37 $timeoutSec = 10; 38 $max_length = 49152; 38 39 39 40 if ($content === '') { 40 41 throw new \RuntimeException('Content cannot be empty.'); 42 } 43 44 if (strlen($content) > $max_length) { 45 return $content; // Content length exceeds limit, return original content 41 46 } 42 47 … … 133 138 $is_html = strip_tags($content) !== $content; 134 139 $text_only = !$is_html; 135 $max_length = 16384;140 $max_length = 49152; 136 141 137 142 // if HTML, minify and clean it first -
clonable/trunk/readme-da_DK.txt
r3455196 r3467415 3 3 Tags: oversættelser, oversæt, flersproget, clonable, seo 4 4 Requires at least: 5.0 5 Tested up to: 6.9 5 Tested up to: 6.9.1 6 6 Requires PHP: 7.2 7 Stable tag: 2.9. 27 Stable tag: 2.9.3 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.9.3 35 Problems with default emails when clonable email translations are turned off. 36 34 37 v2.9.2 35 38 Bugfix PHP versions lower that 8.0 -
clonable/trunk/readme-de_DE.txt
r3455196 r3467415 3 3 Tags: Übersetzungen, übersetzen, mehrsprachig, clonable, seo 4 4 Requires at least: 5.0 5 Tested up to: 6.9 5 Tested up to: 6.9.1 6 6 Requires PHP: 7.2 7 Stable tag: 2.9. 27 Stable tag: 2.9.3 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.9.3 35 Problems with default emails when clonable email translations are turned off. 36 34 37 v2.9.2 35 38 Bugfix PHP versions lower that 8.0 -
clonable/trunk/readme-es_ES.txt
r3455196 r3467415 3 3 Tags: traducciones, traducir, multilingüe, clonable, seo 4 4 Requires at least: 5.0 5 Tested up to: 6.9 5 Tested up to: 6.9.1 6 6 Requires PHP: 7.2 7 Stable tag: 2.9. 27 Stable tag: 2.9.3 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.9.3 35 Problems with default emails when clonable email translations are turned off. 36 34 37 v2.9.2 35 38 Bugfix PHP versions lower that 8.0 -
clonable/trunk/readme-fr_FR.txt
r3455196 r3467415 3 3 Tags : traductions, traduire, multilingue, clonable, seo 4 4 Requires at least: 5.0 5 Tested up to: 6.9 5 Tested up to: 6.9.1 6 6 Requires PHP: 7.2 7 Stable tag: 2.9. 27 Stable tag: 2.9.3 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.9.3 35 Problems with default emails when clonable email translations are turned off. 36 34 37 v2.9.2 35 38 Bugfix PHP versions lower that 8.0 -
clonable/trunk/readme-it_IT.txt
r3455196 r3467415 3 3 Tags: traduzioni, tradurre, multilingue, clonable, seo 4 4 Requires at least: 5.0 5 Tested up to: 6.9 5 Tested up to: 6.9.1 6 6 Requires PHP: 7.2 7 Stable tag: 2.9. 27 Stable tag: 2.9.3 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.9.3 35 Problems with default emails when clonable email translations are turned off. 36 34 37 v2.9.2 35 38 Bugfix PHP versions lower that 8.0 -
clonable/trunk/readme-nb_NO.txt
r3455196 r3467415 3 3 Tags: oversettelser, oversette, flerspråklig, clonable 4 4 Requires at least: 5.0 5 Tested up to: 6.9 5 Tested up to: 6.9.1 6 6 Requires PHP: 7.2 7 Stable tag: 2.9. 27 Stable tag: 2.9.3 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.9.3 35 Problems with default emails when clonable email translations are turned off. 36 34 37 v2.9.2 35 38 Bugfix PHP versions lower that 8.0 -
clonable/trunk/readme-nl_NL.txt
r3455196 r3467415 3 3 Tags: vertalingen, vertalen, meertalig, clonable 4 4 Requires at least: 5.0 5 Tested up to: 6.9 5 Tested up to: 6.9.1 6 6 Requires PHP: 7.2 7 Stable tag: 2.9. 27 Stable tag: 2.9.3 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.9.3 35 Problems with default emails when clonable email translations are turned off. 36 34 37 v2.9.2 35 38 Bugfix PHP versies lager dan 8.0 -
clonable/trunk/readme-sv_SE.txt
r3455196 r3467415 3 3 Tags: översättningar, översätta, flerspråkig, clonable, seo 4 4 Requires at least: 5.0 5 Tested up to: 6.9 5 Tested up to: 6.9.1 6 6 Requires PHP: 7.2 7 Stable tag: 2.9. 27 Stable tag: 2.9.3 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.9.3 35 Problems with default emails when clonable email translations are turned off. 36 34 37 v2.9.2 35 38 Bugfix PHP versions lower that 8.0 -
clonable/trunk/readme.txt
r3455196 r3467415 3 3 Tags: translations, translate, multilingual, clonable, seo 4 4 Requires at least: 5.0 5 Tested up to: 6.9 5 Tested up to: 6.9.1 6 6 Requires PHP: 7.2 7 Stable tag: 2.9. 27 Stable tag: 2.9.3 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.9.3 35 Problems with default emails when clonable email translations are turned off. 36 34 37 v2.9.2 35 38 Bugfix PHP versions lower that 8.0 -
clonable/trunk/services/ClonableWooCommerceService.php
r3452753 r3467415 30 30 return; 31 31 } 32 32 33 33 $include_woocommerce_analytics = get_option('clonable_woocommerce_analytics_enabled', 'on') === 'on'; 34 34 if ($include_woocommerce_analytics) { -
clonable/trunk/services/EmailTranslationsService.php
r3452753 r3467415 19 19 20 20 public function __construct() { 21 if (!$this->emailTranslationsEnabled()) { 22 return; 23 } 24 21 25 add_filter('wp_mail' ,[$this ,'translateMail'] ,PHP_INT_MAX); 22 26 add_filter('wp_mail_from' ,[$this ,'setMailFrom'] ,PHP_INT_MAX); … … 28 32 public function translateMail(array $args): array { 29 33 $clone_id = $this->getCloneIdFromRequest(); 30 if (empty($clone_id) || !$this->emailTranslationsEnabled()) {34 if (empty($clone_id)) { 31 35 return $args; 32 36 } … … 74 78 public function setMailFrom(string $from): string { 75 79 $clone_id = $this->getCloneIdFromRequest(); 76 if (empty($clone_id) || !$this->emailTranslationsEnabled()) {80 if (empty($clone_id)) { 77 81 return $from; 78 82 } … … 92 96 public function setMailSenderName(string $name): string { 93 97 $clone_id = $this->getCloneIdFromRequest(); 94 if (empty($clone_id) || !$this->emailTranslationsEnabled()) {98 if (empty($clone_id)) { 95 99 return $name; 96 100 } … … 110 114 public function setMailHeaderImage(string $image): string { 111 115 $clone_id = $this->getCloneIdFromRequest(); 112 if (empty($clone_id) || !$this->emailTranslationsEnabled()) {116 if (empty($clone_id)) { 113 117 return $image; 114 118 }
Note: See TracChangeset
for help on using the changeset viewer.