Plugin Directory

Changeset 3462363


Ignore:
Timestamp:
02/16/2026 09:50:00 AM (6 weeks ago)
Author:
mailerlite
Message:

Update to version 3.1.10 from GitHub

Location:
woo-mailerlite
Files:
2 added
14 edited
1 copied

Legend:

Unmodified
Added
Removed
  • woo-mailerlite/tags/3.1.10/README.txt

    r3453754 r3462363  
    66Tested up to: 6.8.2
    77Requires PHP: 7.2.5
    8 Stable tag: 3.1.9
     8Stable tag: 3.1.10
    99License: GPLv3 or later
    1010License URI: http://www.gnu.org/licenses/gpl-3.0.html
     
    8585== Changelog ==
    8686
     87= 3.1.10 (16th February 2026) =
     88* Security improvements
     89
    8790= 3.1.9 (4th February 2026) =
    8891* Security improvements
  • woo-mailerlite/tags/3.1.10/bootstrap.php

    r3421835 r3462363  
    6868        'WooMailerLiteCollection' => 'includes/common/WooMailerLiteCollection.php',
    6969        'WooMailerLiteQueryBuilder' => 'includes/common/WooMailerLiteQueryBuilder.php',
    70 
     70        'WooMailerLiteEncryption' => 'includes/common/WooMailerLiteEncryption.php',
    7171
    7272        // includes/migrations
  • woo-mailerlite/tags/3.1.10/includes/WooMailerLite.php

    r3377455 r3462363  
    127127        $this->loader->add_action('wp_ajax_woo_mailerlite_reset_integration_settings', WooMailerLiteAdminSettingsController::instance(), 'resetIntegration');
    128128        $this->loader->add_action('wp_ajax_handle_debug_log', WooMailerLiteAdminWizardController::instance(), 'getDebugLogs');
    129         $this->loader->add_action('wp_ajax_woo_mailerlite_job_resolver', WooMailerLiteAdminSettingsController::instance(), 'jobResolver');
    130129        $this->loader->add_action('wp_ajax_woo_mailerlite_downgrade_plugin', WooMailerLiteAdminSettingsController::instance(), 'downgradePlugin');
    131130        $this->loader->add_action('wp_ajax_woo_mailerlite_enable_debug_mode', WooMailerLiteAdminSettingsController::instance(), 'enableDebugMode');
  • woo-mailerlite/tags/3.1.10/includes/WooMailerLiteService.php

    r3453754 r3462363  
    3636        $data = json_decode($data, true);
    3737        if (!isset($data['checkout_id'])) {
    38             $data['checkout_id'] = floor(microtime(true) * 1000);
     38            $data['checkout_id'] = wp_generate_uuid4();
    3939        }
    4040
     
    7474        $data = json_decode($data, true);
    7575        if (!isset($data['checkout_id'])) {
    76             $data['checkout_id'] = floor(microtime(true) * 1000);
     76            $data['checkout_id'] = wp_generate_uuid4();
    7777        }
    7878
  • woo-mailerlite/tags/3.1.10/includes/common/WooMailerLiteOptions.php

    r3377455 r3462363  
    44{
    55    private static $key = 'woo_mailerlite_options';
     6    private static $apiKey = 'apiKey';
    67    protected static $toJson = false;
    78
     
    4445                    return json_encode($options[$key]);
    4546                }
     47
     48                if ($key === self::$apiKey && !empty($options[$key])) {
     49                    $decrypted = WooMailerLiteEncryption::instance()->decrypt($options[$key]);
     50                    if ($decrypted !== false) {
     51                        return $decrypted;
     52                    } else {
     53                        self::update($key, WooMailerLiteEncryption::instance()->encrypt($options[$key]));
     54                    }
     55                }
    4656                return $options[$key];
    4757            }
     
    6171    public static function updateMultiple($data)
    6272    {
     73        if (isset($data[self::$apiKey]) && !empty($data[self::$apiKey])) {
     74            $data[self::$apiKey] = WooMailerLiteEncryption::instance()->encrypt($data[self::$apiKey]);
     75        }
    6376        $options =  get_option(self::$key, []);
    6477        $options = array_merge($options, $data);
  • woo-mailerlite/tags/3.1.10/includes/controllers/WooMailerLitePluginController.php

    r3421835 r3462363  
    7878                return false;
    7979            }
    80             if ($this->requestHas('ml_checkout')) {
    81                 $raw = intval($this->request['ml_checkout']);
    82                 $escaped = db()->esc_like($raw);
    83                 $escaped = '%checkout_id":' . addcslashes($escaped, '%_') . '%';
     80
     81            if ($this->requestHas('ml_checkout') && (ctype_digit($this->request['ml_checkout']) || wp_is_uuid($this->request['ml_checkout']))) {
     82                $escaped = db()->esc_like($this->request['ml_checkout']);
     83                $escaped = '%checkout_id":"' . addcslashes($escaped, '%_') . '"%';
    8484                $cart = WooMailerLiteCart::where('data', 'like', $escaped)->first();
    8585                if ($cart && $cart->exists()) {
  • woo-mailerlite/tags/3.1.10/woo-mailerlite.php

    r3453754 r3462363  
    1616 * Plugin URI:        https://mailerlite.com
    1717 * Description:       Official MailerLite integration for WooCommerce. Track sales and campaign ROI, import products details, automate emails based on purchases and seamlessly add your customers to your email marketing lists via WooCommerce's checkout process.
    18  * Version:           3.1.9
     18 * Version:           3.1.10
    1919 * Author:            MailerLite
    2020 * Author URI:        https://mailerlite.com
     
    4040 * Update when you release new versions.
    4141 */
    42 define( 'WOO_MAILERLITE_VERSION', '3.1.9' );
     42define( 'WOO_MAILERLITE_VERSION', '3.1.10' );
    4343
    4444define('WOO_MAILERLITE_ASYNC_JOBS', false);
  • woo-mailerlite/trunk/README.txt

    r3453754 r3462363  
    66Tested up to: 6.8.2
    77Requires PHP: 7.2.5
    8 Stable tag: 3.1.9
     8Stable tag: 3.1.10
    99License: GPLv3 or later
    1010License URI: http://www.gnu.org/licenses/gpl-3.0.html
     
    8585== Changelog ==
    8686
     87= 3.1.10 (16th February 2026) =
     88* Security improvements
     89
    8790= 3.1.9 (4th February 2026) =
    8891* Security improvements
  • woo-mailerlite/trunk/bootstrap.php

    r3421835 r3462363  
    6868        'WooMailerLiteCollection' => 'includes/common/WooMailerLiteCollection.php',
    6969        'WooMailerLiteQueryBuilder' => 'includes/common/WooMailerLiteQueryBuilder.php',
    70 
     70        'WooMailerLiteEncryption' => 'includes/common/WooMailerLiteEncryption.php',
    7171
    7272        // includes/migrations
  • woo-mailerlite/trunk/includes/WooMailerLite.php

    r3377455 r3462363  
    127127        $this->loader->add_action('wp_ajax_woo_mailerlite_reset_integration_settings', WooMailerLiteAdminSettingsController::instance(), 'resetIntegration');
    128128        $this->loader->add_action('wp_ajax_handle_debug_log', WooMailerLiteAdminWizardController::instance(), 'getDebugLogs');
    129         $this->loader->add_action('wp_ajax_woo_mailerlite_job_resolver', WooMailerLiteAdminSettingsController::instance(), 'jobResolver');
    130129        $this->loader->add_action('wp_ajax_woo_mailerlite_downgrade_plugin', WooMailerLiteAdminSettingsController::instance(), 'downgradePlugin');
    131130        $this->loader->add_action('wp_ajax_woo_mailerlite_enable_debug_mode', WooMailerLiteAdminSettingsController::instance(), 'enableDebugMode');
  • woo-mailerlite/trunk/includes/WooMailerLiteService.php

    r3453754 r3462363  
    3636        $data = json_decode($data, true);
    3737        if (!isset($data['checkout_id'])) {
    38             $data['checkout_id'] = floor(microtime(true) * 1000);
     38            $data['checkout_id'] = wp_generate_uuid4();
    3939        }
    4040
     
    7474        $data = json_decode($data, true);
    7575        if (!isset($data['checkout_id'])) {
    76             $data['checkout_id'] = floor(microtime(true) * 1000);
     76            $data['checkout_id'] = wp_generate_uuid4();
    7777        }
    7878
  • woo-mailerlite/trunk/includes/common/WooMailerLiteOptions.php

    r3377455 r3462363  
    44{
    55    private static $key = 'woo_mailerlite_options';
     6    private static $apiKey = 'apiKey';
    67    protected static $toJson = false;
    78
     
    4445                    return json_encode($options[$key]);
    4546                }
     47
     48                if ($key === self::$apiKey && !empty($options[$key])) {
     49                    $decrypted = WooMailerLiteEncryption::instance()->decrypt($options[$key]);
     50                    if ($decrypted !== false) {
     51                        return $decrypted;
     52                    } else {
     53                        self::update($key, WooMailerLiteEncryption::instance()->encrypt($options[$key]));
     54                    }
     55                }
    4656                return $options[$key];
    4757            }
     
    6171    public static function updateMultiple($data)
    6272    {
     73        if (isset($data[self::$apiKey]) && !empty($data[self::$apiKey])) {
     74            $data[self::$apiKey] = WooMailerLiteEncryption::instance()->encrypt($data[self::$apiKey]);
     75        }
    6376        $options =  get_option(self::$key, []);
    6477        $options = array_merge($options, $data);
  • woo-mailerlite/trunk/includes/controllers/WooMailerLitePluginController.php

    r3421835 r3462363  
    7878                return false;
    7979            }
    80             if ($this->requestHas('ml_checkout')) {
    81                 $raw = intval($this->request['ml_checkout']);
    82                 $escaped = db()->esc_like($raw);
    83                 $escaped = '%checkout_id":' . addcslashes($escaped, '%_') . '%';
     80
     81            if ($this->requestHas('ml_checkout') && (ctype_digit($this->request['ml_checkout']) || wp_is_uuid($this->request['ml_checkout']))) {
     82                $escaped = db()->esc_like($this->request['ml_checkout']);
     83                $escaped = '%checkout_id":"' . addcslashes($escaped, '%_') . '"%';
    8484                $cart = WooMailerLiteCart::where('data', 'like', $escaped)->first();
    8585                if ($cart && $cart->exists()) {
  • woo-mailerlite/trunk/woo-mailerlite.php

    r3453754 r3462363  
    1616 * Plugin URI:        https://mailerlite.com
    1717 * Description:       Official MailerLite integration for WooCommerce. Track sales and campaign ROI, import products details, automate emails based on purchases and seamlessly add your customers to your email marketing lists via WooCommerce's checkout process.
    18  * Version:           3.1.9
     18 * Version:           3.1.10
    1919 * Author:            MailerLite
    2020 * Author URI:        https://mailerlite.com
     
    4040 * Update when you release new versions.
    4141 */
    42 define( 'WOO_MAILERLITE_VERSION', '3.1.9' );
     42define( 'WOO_MAILERLITE_VERSION', '3.1.10' );
    4343
    4444define('WOO_MAILERLITE_ASYNC_JOBS', false);
Note: See TracChangeset for help on using the changeset viewer.