Plugin Directory

Changeset 3484657


Ignore:
Timestamp:
03/17/2026 10:29:26 AM (2 weeks ago)
Author:
simplercheckout
Message:

Version 1.4.0

Location:
simpler-checkout
Files:
22 edited
1 copied

Legend:

Unmodified
Added
Removed
  • simpler-checkout/tags/1.4.0/README.txt

    r3472496 r3484657  
    55Tested up to: 6.5
    66Requires PHP: 7.0
    7 Stable tag: 1.3.5
     7Stable tag: 1.4.0
    88License: GPLv3
    99License URI: https://www.gnu.org/licenses/gpl-3.0.html
     
    3535
    3636== Changelog ==
     37
     38== 1.4.0
     39Breaking: Drop support for PHP versions <7.4
     40Fix: SLM phone field, collect package rates before calculating quotes
     41Fix(submit): Add shipping item only if not exists
     42Fix(hook): Pass shipping method on COD hook
    3743
    3844== 1.3.5
  • simpler-checkout/tags/1.4.0/includes/Compatibility/cod.php

    r3318023 r3484657  
    5252            $codCost = $availablePaymentMethods['cod']->settings['pay4pay_charges_fixed'] ?? 0;
    5353        }
    54         $codCost = apply_filters('simplerwc_cod_cost', $codCost);
     54
     55        $codCost = apply_filters('simplerwc_cod_cost', $codCost, $shippingMethod);
     56
     57        if ($codCost === false) {
     58            return $paymentMethods;
     59        }
    5560
    5661        $paymentMethods[] = new PaymentMethod(
  • simpler-checkout/tags/1.4.0/includes/Compatibility/skroutz-slm.php

    r3449341 r3484657  
    1212    function simplerwc_skroutz_slm_after_set_checkout_data($order, $order_request)
    1313    {
    14         if ($order_request == null
    15             || $order_request->get_order() == null
    16             || $order_request->get_user() == null
    17             || $order_request->get_ship_to() == null
     14        if (
     15            $order_request == null ||
     16            $order_request->get_order() == null ||
     17            $order_request->get_user() == null ||
     18            $order_request->get_ship_to() == null
    1819        ) {
    1920            return;
    2021        }
    2122
    22         if ( ! $pickupPoint = $order_request->get_order()->get_pickup_point()) {
     23        if (!($pickupPoint = $order_request->get_order()->get_pickup_point())) {
    2324            return;
    2425        }
    2526
    26         if ( ! $pickupPoint->isSkroutz()) {
     27        if (!$pickupPoint->isSkroutz()) {
    2728            return;
    2829        }
    2930
     31        $rcpt = trim($order_request->get_ship_to()->get_recipient());
     32        [$first, $last] = preg_match('/^(.*)\s+(\S+)$/u', $rcpt, $m) ? [$m[1], $m[2]] : [$rcpt, ''];
    3033        $_POST['shipping_method'] = ['slm_delivery_service'];
    31         // TODO: is it ok to use fname/lname instead of address->recipient?
    32         $_POST['billing_first_name']       = $order_request->get_user()->get_first_name();
    33         $_POST['billing_last_name']        = $order_request->get_user()->get_last_name();
    34         $_POST['recipient_phone']          = $order_request->get_ship_to()->get_phone();
    35         $_POST['slm_external_id']          = $pickupPoint->getId();
     34        $_POST['billing_first_name'] = $first;
     35        $_POST['billing_last_name'] = $last;
     36        $_POST['billing_phone'] = $order_request->get_ship_to()->get_phone();
     37        $_POST['slm_external_id'] = $pickupPoint->getId();
    3638        $_POST['slm_friendly_name_locker'] = $pickupPoint->getName();
    3739    }
    3840
    3941    add_action('simplerwc_after_set_checkout_data', 'simplerwc_skroutz_slm_after_set_checkout_data', 10, 2);
     42
     43    function simplerwc_skroutz_slm_fix_package_rates($rates, $package)
     44    {
     45        if (!function_exists('cart_not_contains_included_category')) {
     46            return $rates;
     47        }
     48        // Ensure the global cart contents reflect this package so that
     49        // cart_not_contains_included_category() (used by SLM's filter at
     50        // priority 100) sees the correct products for the category check.
     51        \WC()->cart->cart_contents = $package['contents'];
     52        return $rates;
     53    }
     54
     55    add_filter('woocommerce_package_rates', 'simplerwc_skroutz_slm_fix_package_rates', 99, 2);
    4056}
    4157
  • simpler-checkout/tags/1.4.0/includes/Models/Address.php

    r3292379 r3484657  
    8787    public function to_address_props($prefix = '')
    8888    {
    89         $pfx = strlen($prefix) > 0 ? "${prefix}_" : "";
     89        $pfx = strlen($prefix) > 0 ? "{$prefix}_" : "";
    9090        $addr = [
    91             "${pfx}country"   => $this->country,
    92             "${pfx}state"     => $this->state,
    93             "${pfx}postcode"  => $this->postcode,
    94             "${pfx}city"      => $this->city,
    95             "${pfx}address_1" => $this->address,
    96             "${pfx}address_2" => '',
    97             "${pfx}phone" => $this->phone
     91            "{$pfx}country"   => $this->country,
     92            "{$pfx}state"     => $this->state,
     93            "{$pfx}postcode"  => $this->postcode,
     94            "{$pfx}city"      => $this->city,
     95            "{$pfx}address_1" => $this->address,
     96            "{$pfx}address_2" => '',
     97            "{$pfx}phone" => $this->phone
    9898        ];
    9999
    100100        $name = explode(' ', $this->recipient, 2);
    101101        if (count($name) == 2) {
    102             $addr["${pfx}first_name"] = $name[0];
    103             $addr["${pfx}last_name"] = $name[1];
    104         } else if (count($name) == 1) {
    105             $addr["${pfx}first_name"] = '';
    106             $addr["${pfx}last_name"] = $name[0];
     102            $addr["{$pfx}first_name"] = $name[0];
     103            $addr["{$pfx}last_name"] = $name[1];
     104        } elseif (count($name) == 1) {
     105            $addr["{$pfx}first_name"] = '';
     106            $addr["{$pfx}last_name"] = $name[0];
    107107        }
    108108        return $addr;
  • simpler-checkout/tags/1.4.0/includes/Services/OrderService.php

    r3460072 r3484657  
    9999        \WC()->checkout()->set_data_from_cart($order);
    100100        if (defined('WC_VERSION') && version_compare(WC_VERSION, '10.3.0', '>=')) {
    101             if (!empty($chosen_shipping_methods)) {
     101            $existing_shipping_items = $order->get_items('shipping');
     102            if (!empty($chosen_shipping_methods) && empty($existing_shipping_items)) {
    102103                foreach (\WC()->shipping->get_packages() as $package_key => $package) {
    103104                    $rate_id = $order_request->get_order()->get_shipping()->get_rate_id();
  • simpler-checkout/tags/1.4.0/includes/constants.php

    r3472496 r3484657  
    11<?php
    22
    3 const SIMPLERWC_VERSION = '1.3.5';
     3const SIMPLERWC_VERSION = '1.4.0';
    44
    55function simplerwc_get_sdk_uri()
  • simpler-checkout/tags/1.4.0/simpler.php

    r3472496 r3484657  
    88 * Description: Simpler Checkout lets your customers complete their purchases in seconds, with any payment method they want, in any device or browser and without a password.
    99 * Tags: woocommerce, checkout, payments, conversion rate
    10  * Version: 1.3.5
     10 * Version: 1.4.0
    1111 * Requires at least: 5.1
    12  * Tested up to: 6.8.3
    13  * Requires PHP: 7.0
     12 * Tested up to: 6.9.1
     13 * Requires PHP: 7.4
    1414 * License: GPLv3
    1515 * License URI: https://www.gnu.org/licenses/old-licenses/gpl-3.0.html
  • simpler-checkout/tags/1.4.0/vendor/autoload.php

    r3472496 r3484657  
    55require_once __DIR__ . '/composer/autoload_real.php';
    66
    7 return ComposerAutoloaderInit44d8ec30b4e255d093502062480b594c::getLoader();
     7return ComposerAutoloaderInit518d5b2204de620a2c70502a75960703::getLoader();
  • simpler-checkout/tags/1.4.0/vendor/composer/autoload_real.php

    r3472496 r3484657  
    33// autoload_real.php @generated by Composer
    44
    5 class ComposerAutoloaderInit44d8ec30b4e255d093502062480b594c
     5class ComposerAutoloaderInit518d5b2204de620a2c70502a75960703
    66{
    77    private static $loader;
     
    2525        require __DIR__ . '/platform_check.php';
    2626
    27         spl_autoload_register(array('ComposerAutoloaderInit44d8ec30b4e255d093502062480b594c', 'loadClassLoader'), true, true);
     27        spl_autoload_register(array('ComposerAutoloaderInit518d5b2204de620a2c70502a75960703', 'loadClassLoader'), true, true);
    2828        self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
    29         spl_autoload_unregister(array('ComposerAutoloaderInit44d8ec30b4e255d093502062480b594c', 'loadClassLoader'));
     29        spl_autoload_unregister(array('ComposerAutoloaderInit518d5b2204de620a2c70502a75960703', 'loadClassLoader'));
    3030
    3131        $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
     
    3333            require __DIR__ . '/autoload_static.php';
    3434
    35             call_user_func(\Composer\Autoload\ComposerStaticInit44d8ec30b4e255d093502062480b594c::getInitializer($loader));
     35            call_user_func(\Composer\Autoload\ComposerStaticInit518d5b2204de620a2c70502a75960703::getInitializer($loader));
    3636        } else {
    3737            $map = require __DIR__ . '/autoload_namespaces.php';
  • simpler-checkout/tags/1.4.0/vendor/composer/autoload_static.php

    r3472496 r3484657  
    55namespace Composer\Autoload;
    66
    7 class ComposerStaticInit44d8ec30b4e255d093502062480b594c
     7class ComposerStaticInit518d5b2204de620a2c70502a75960703
    88{
    99    public static $prefixLengthsPsr4 = array (
     
    9393    {
    9494        return \Closure::bind(function () use ($loader) {
    95             $loader->prefixLengthsPsr4 = ComposerStaticInit44d8ec30b4e255d093502062480b594c::$prefixLengthsPsr4;
    96             $loader->prefixDirsPsr4 = ComposerStaticInit44d8ec30b4e255d093502062480b594c::$prefixDirsPsr4;
    97             $loader->classMap = ComposerStaticInit44d8ec30b4e255d093502062480b594c::$classMap;
     95            $loader->prefixLengthsPsr4 = ComposerStaticInit518d5b2204de620a2c70502a75960703::$prefixLengthsPsr4;
     96            $loader->prefixDirsPsr4 = ComposerStaticInit518d5b2204de620a2c70502a75960703::$prefixDirsPsr4;
     97            $loader->classMap = ComposerStaticInit518d5b2204de620a2c70502a75960703::$classMap;
    9898
    9999        }, null, ClassLoader::class);
  • simpler-checkout/tags/1.4.0/vendor/composer/installed.php

    r3472496 r3484657  
    11<?php return array(
    22    'root' => array(
    3         'pretty_version' => '1.3.5',
    4         'version' => '1.3.5.0',
     3        'pretty_version' => '1.4.0',
     4        'version' => '1.4.0.0',
    55        'type' => 'wordpress-plugin',
    66        'install_path' => __DIR__ . '/../../',
    77        'aliases' => array(),
    8         'reference' => 'ce8b66633ff86efac60fd2d6cf6406373f43ce0b',
     8        'reference' => '119e479f7049a9b03d467393a23de98311361555',
    99        'name' => 'simpler-checkout/woo',
    1010        'dev' => false,
     
    1212    'versions' => array(
    1313        'simpler-checkout/woo' => array(
    14             'pretty_version' => '1.3.5',
    15             'version' => '1.3.5.0',
     14            'pretty_version' => '1.4.0',
     15            'version' => '1.4.0.0',
    1616            'type' => 'wordpress-plugin',
    1717            'install_path' => __DIR__ . '/../../',
    1818            'aliases' => array(),
    19             'reference' => 'ce8b66633ff86efac60fd2d6cf6406373f43ce0b',
     19            'reference' => '119e479f7049a9b03d467393a23de98311361555',
    2020            'dev_requirement' => false,
    2121        ),
  • simpler-checkout/trunk/README.txt

    r3472496 r3484657  
    55Tested up to: 6.5
    66Requires PHP: 7.0
    7 Stable tag: 1.3.5
     7Stable tag: 1.4.0
    88License: GPLv3
    99License URI: https://www.gnu.org/licenses/gpl-3.0.html
     
    3535
    3636== Changelog ==
     37
     38== 1.4.0
     39Breaking: Drop support for PHP versions <7.4
     40Fix: SLM phone field, collect package rates before calculating quotes
     41Fix(submit): Add shipping item only if not exists
     42Fix(hook): Pass shipping method on COD hook
    3743
    3844== 1.3.5
  • simpler-checkout/trunk/includes/Compatibility/cod.php

    r3318023 r3484657  
    5252            $codCost = $availablePaymentMethods['cod']->settings['pay4pay_charges_fixed'] ?? 0;
    5353        }
    54         $codCost = apply_filters('simplerwc_cod_cost', $codCost);
     54
     55        $codCost = apply_filters('simplerwc_cod_cost', $codCost, $shippingMethod);
     56
     57        if ($codCost === false) {
     58            return $paymentMethods;
     59        }
    5560
    5661        $paymentMethods[] = new PaymentMethod(
  • simpler-checkout/trunk/includes/Compatibility/skroutz-slm.php

    r3449341 r3484657  
    1212    function simplerwc_skroutz_slm_after_set_checkout_data($order, $order_request)
    1313    {
    14         if ($order_request == null
    15             || $order_request->get_order() == null
    16             || $order_request->get_user() == null
    17             || $order_request->get_ship_to() == null
     14        if (
     15            $order_request == null ||
     16            $order_request->get_order() == null ||
     17            $order_request->get_user() == null ||
     18            $order_request->get_ship_to() == null
    1819        ) {
    1920            return;
    2021        }
    2122
    22         if ( ! $pickupPoint = $order_request->get_order()->get_pickup_point()) {
     23        if (!($pickupPoint = $order_request->get_order()->get_pickup_point())) {
    2324            return;
    2425        }
    2526
    26         if ( ! $pickupPoint->isSkroutz()) {
     27        if (!$pickupPoint->isSkroutz()) {
    2728            return;
    2829        }
    2930
     31        $rcpt = trim($order_request->get_ship_to()->get_recipient());
     32        [$first, $last] = preg_match('/^(.*)\s+(\S+)$/u', $rcpt, $m) ? [$m[1], $m[2]] : [$rcpt, ''];
    3033        $_POST['shipping_method'] = ['slm_delivery_service'];
    31         // TODO: is it ok to use fname/lname instead of address->recipient?
    32         $_POST['billing_first_name']       = $order_request->get_user()->get_first_name();
    33         $_POST['billing_last_name']        = $order_request->get_user()->get_last_name();
    34         $_POST['recipient_phone']          = $order_request->get_ship_to()->get_phone();
    35         $_POST['slm_external_id']          = $pickupPoint->getId();
     34        $_POST['billing_first_name'] = $first;
     35        $_POST['billing_last_name'] = $last;
     36        $_POST['billing_phone'] = $order_request->get_ship_to()->get_phone();
     37        $_POST['slm_external_id'] = $pickupPoint->getId();
    3638        $_POST['slm_friendly_name_locker'] = $pickupPoint->getName();
    3739    }
    3840
    3941    add_action('simplerwc_after_set_checkout_data', 'simplerwc_skroutz_slm_after_set_checkout_data', 10, 2);
     42
     43    function simplerwc_skroutz_slm_fix_package_rates($rates, $package)
     44    {
     45        if (!function_exists('cart_not_contains_included_category')) {
     46            return $rates;
     47        }
     48        // Ensure the global cart contents reflect this package so that
     49        // cart_not_contains_included_category() (used by SLM's filter at
     50        // priority 100) sees the correct products for the category check.
     51        \WC()->cart->cart_contents = $package['contents'];
     52        return $rates;
     53    }
     54
     55    add_filter('woocommerce_package_rates', 'simplerwc_skroutz_slm_fix_package_rates', 99, 2);
    4056}
    4157
  • simpler-checkout/trunk/includes/Models/Address.php

    r3292379 r3484657  
    8787    public function to_address_props($prefix = '')
    8888    {
    89         $pfx = strlen($prefix) > 0 ? "${prefix}_" : "";
     89        $pfx = strlen($prefix) > 0 ? "{$prefix}_" : "";
    9090        $addr = [
    91             "${pfx}country"   => $this->country,
    92             "${pfx}state"     => $this->state,
    93             "${pfx}postcode"  => $this->postcode,
    94             "${pfx}city"      => $this->city,
    95             "${pfx}address_1" => $this->address,
    96             "${pfx}address_2" => '',
    97             "${pfx}phone" => $this->phone
     91            "{$pfx}country"   => $this->country,
     92            "{$pfx}state"     => $this->state,
     93            "{$pfx}postcode"  => $this->postcode,
     94            "{$pfx}city"      => $this->city,
     95            "{$pfx}address_1" => $this->address,
     96            "{$pfx}address_2" => '',
     97            "{$pfx}phone" => $this->phone
    9898        ];
    9999
    100100        $name = explode(' ', $this->recipient, 2);
    101101        if (count($name) == 2) {
    102             $addr["${pfx}first_name"] = $name[0];
    103             $addr["${pfx}last_name"] = $name[1];
    104         } else if (count($name) == 1) {
    105             $addr["${pfx}first_name"] = '';
    106             $addr["${pfx}last_name"] = $name[0];
     102            $addr["{$pfx}first_name"] = $name[0];
     103            $addr["{$pfx}last_name"] = $name[1];
     104        } elseif (count($name) == 1) {
     105            $addr["{$pfx}first_name"] = '';
     106            $addr["{$pfx}last_name"] = $name[0];
    107107        }
    108108        return $addr;
  • simpler-checkout/trunk/includes/Services/OrderService.php

    r3460072 r3484657  
    9999        \WC()->checkout()->set_data_from_cart($order);
    100100        if (defined('WC_VERSION') && version_compare(WC_VERSION, '10.3.0', '>=')) {
    101             if (!empty($chosen_shipping_methods)) {
     101            $existing_shipping_items = $order->get_items('shipping');
     102            if (!empty($chosen_shipping_methods) && empty($existing_shipping_items)) {
    102103                foreach (\WC()->shipping->get_packages() as $package_key => $package) {
    103104                    $rate_id = $order_request->get_order()->get_shipping()->get_rate_id();
  • simpler-checkout/trunk/includes/constants.php

    r3472496 r3484657  
    11<?php
    22
    3 const SIMPLERWC_VERSION = '1.3.5';
     3const SIMPLERWC_VERSION = '1.4.0';
    44
    55function simplerwc_get_sdk_uri()
  • simpler-checkout/trunk/simpler.php

    r3472496 r3484657  
    88 * Description: Simpler Checkout lets your customers complete their purchases in seconds, with any payment method they want, in any device or browser and without a password.
    99 * Tags: woocommerce, checkout, payments, conversion rate
    10  * Version: 1.3.5
     10 * Version: 1.4.0
    1111 * Requires at least: 5.1
    12  * Tested up to: 6.8.3
    13  * Requires PHP: 7.0
     12 * Tested up to: 6.9.1
     13 * Requires PHP: 7.4
    1414 * License: GPLv3
    1515 * License URI: https://www.gnu.org/licenses/old-licenses/gpl-3.0.html
  • simpler-checkout/trunk/vendor/autoload.php

    r3472496 r3484657  
    55require_once __DIR__ . '/composer/autoload_real.php';
    66
    7 return ComposerAutoloaderInit44d8ec30b4e255d093502062480b594c::getLoader();
     7return ComposerAutoloaderInit518d5b2204de620a2c70502a75960703::getLoader();
  • simpler-checkout/trunk/vendor/composer/autoload_real.php

    r3472496 r3484657  
    33// autoload_real.php @generated by Composer
    44
    5 class ComposerAutoloaderInit44d8ec30b4e255d093502062480b594c
     5class ComposerAutoloaderInit518d5b2204de620a2c70502a75960703
    66{
    77    private static $loader;
     
    2525        require __DIR__ . '/platform_check.php';
    2626
    27         spl_autoload_register(array('ComposerAutoloaderInit44d8ec30b4e255d093502062480b594c', 'loadClassLoader'), true, true);
     27        spl_autoload_register(array('ComposerAutoloaderInit518d5b2204de620a2c70502a75960703', 'loadClassLoader'), true, true);
    2828        self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
    29         spl_autoload_unregister(array('ComposerAutoloaderInit44d8ec30b4e255d093502062480b594c', 'loadClassLoader'));
     29        spl_autoload_unregister(array('ComposerAutoloaderInit518d5b2204de620a2c70502a75960703', 'loadClassLoader'));
    3030
    3131        $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
     
    3333            require __DIR__ . '/autoload_static.php';
    3434
    35             call_user_func(\Composer\Autoload\ComposerStaticInit44d8ec30b4e255d093502062480b594c::getInitializer($loader));
     35            call_user_func(\Composer\Autoload\ComposerStaticInit518d5b2204de620a2c70502a75960703::getInitializer($loader));
    3636        } else {
    3737            $map = require __DIR__ . '/autoload_namespaces.php';
  • simpler-checkout/trunk/vendor/composer/autoload_static.php

    r3472496 r3484657  
    55namespace Composer\Autoload;
    66
    7 class ComposerStaticInit44d8ec30b4e255d093502062480b594c
     7class ComposerStaticInit518d5b2204de620a2c70502a75960703
    88{
    99    public static $prefixLengthsPsr4 = array (
     
    9393    {
    9494        return \Closure::bind(function () use ($loader) {
    95             $loader->prefixLengthsPsr4 = ComposerStaticInit44d8ec30b4e255d093502062480b594c::$prefixLengthsPsr4;
    96             $loader->prefixDirsPsr4 = ComposerStaticInit44d8ec30b4e255d093502062480b594c::$prefixDirsPsr4;
    97             $loader->classMap = ComposerStaticInit44d8ec30b4e255d093502062480b594c::$classMap;
     95            $loader->prefixLengthsPsr4 = ComposerStaticInit518d5b2204de620a2c70502a75960703::$prefixLengthsPsr4;
     96            $loader->prefixDirsPsr4 = ComposerStaticInit518d5b2204de620a2c70502a75960703::$prefixDirsPsr4;
     97            $loader->classMap = ComposerStaticInit518d5b2204de620a2c70502a75960703::$classMap;
    9898
    9999        }, null, ClassLoader::class);
  • simpler-checkout/trunk/vendor/composer/installed.php

    r3472496 r3484657  
    11<?php return array(
    22    'root' => array(
    3         'pretty_version' => '1.3.5',
    4         'version' => '1.3.5.0',
     3        'pretty_version' => '1.4.0',
     4        'version' => '1.4.0.0',
    55        'type' => 'wordpress-plugin',
    66        'install_path' => __DIR__ . '/../../',
    77        'aliases' => array(),
    8         'reference' => 'ce8b66633ff86efac60fd2d6cf6406373f43ce0b',
     8        'reference' => '119e479f7049a9b03d467393a23de98311361555',
    99        'name' => 'simpler-checkout/woo',
    1010        'dev' => false,
     
    1212    'versions' => array(
    1313        'simpler-checkout/woo' => array(
    14             'pretty_version' => '1.3.5',
    15             'version' => '1.3.5.0',
     14            'pretty_version' => '1.4.0',
     15            'version' => '1.4.0.0',
    1616            'type' => 'wordpress-plugin',
    1717            'install_path' => __DIR__ . '/../../',
    1818            'aliases' => array(),
    19             'reference' => 'ce8b66633ff86efac60fd2d6cf6406373f43ce0b',
     19            'reference' => '119e479f7049a9b03d467393a23de98311361555',
    2020            'dev_requirement' => false,
    2121        ),
Note: See TracChangeset for help on using the changeset viewer.