Plugin Directory

Changeset 3477243


Ignore:
Timestamp:
03/08/2026 03:12:00 AM (4 weeks ago)
Author:
wpwham
Message:

Version 2.16.5 update

Location:
currency-switcher-woocommerce/trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • currency-switcher-woocommerce/trunk/currency-switcher-woocommerce.php

    r3304107 r3477243  
    44Plugin URI: https://wpwham.com/products/currency-switcher-for-woocommerce/
    55Description: Currency Switcher for WooCommerce.
    6 Version: 2.16.4
     6Version: 2.16.5
    77Author: WP Wham
    88Author URI: https://wpwham.com
    99Text Domain: currency-switcher-woocommerce
    1010Domain Path: /langs
    11 Copyright: © 2018-2025 WP Wham. All rights reserved.
     11Copyright: © 2018-2026 WP Wham. All rights reserved.
    1212License: GNU General Public License v3.0
    1313License URI: http://www.gnu.org/licenses/gpl-3.0.html
     
    3434
    3535if ( ! defined( 'WPWHAM_CURRENCY_SWITCHER_VERSION' ) ) {
    36     define( 'WPWHAM_CURRENCY_SWITCHER_VERSION', '2.16.4' );
     36    define( 'WPWHAM_CURRENCY_SWITCHER_VERSION', '2.16.5' );
    3737}
    3838if ( ! defined( 'WPWHAM_CURRENCY_SWITCHER_DBVERSION' ) ) {
     
    5656 *
    5757 * @class   Alg_WC_Currency_Switcher
    58  * @version 2.16.4
     58 * @version 2.16.5
    5959 * @since   1.0.0
    6060 */
     
    7070     * @since 1.0.0
    7171     */
    72     public $version = '2.16.4';
     72    public $version = '2.16.5';
    7373
    7474    /**
     
    9898     * Alg_WC_Currency_Switcher Constructor.
    9999     *
    100      * @version 2.16.4
     100     * @version 2.16.5
    101101     * @since   1.0.0
    102102     * @access  public
     
    106106     * @todo    (maybe) add all currencies (so no other additional plugin is required)
    107107     */
    108     function __construct() {
    109 
    110         // Set up localisation
    111         add_action( 'init', array( $this, 'load_localization' ) ); 
    112 
     108    public function __construct() {
     109       
    113110        // Include required files
    114         $this->includes();
    115 
    116         // Add compatibility with third party plugins
     111        require_once( 'includes/functions/alg-switcher-selector-functions.php' );
     112        require_once( 'includes/functions/alg-switcher-functions.php' );
     113        require_once( 'includes/functions/alg-switcher-exchange-rates-functions.php' );
     114        require_once( 'includes/functions/alg-switcher-country-functions.php' );
     115        require_once( 'includes/functions/alg-switcher-locale-functions.php' );
     116        require_once( 'includes/class-alg-switcher-third-party-compatibility.php' );
     117        $this->core = require_once( 'includes/class-alg-wc-currency-switcher.php' );
     118       
     119        // Updates
     120        require_once( 'includes/database-updates.php' );
     121       
     122        // Add compatibility with third party plugins (must be done before init)
    117123        $compatibility = new Alg_Switcher_Third_Party_Compatibility();
    118124        $compatibility->init();
    119 
    120         // Settings & Scripts
    121         if ( is_admin() ) {
    122             add_filter( 'woocommerce_get_settings_pages', array( $this, 'add_woocommerce_settings_tab' ) );
    123             add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), array( $this, 'action_links' ) );
    124             add_action( 'woocommerce_system_status_report', array( $this, 'add_settings_to_status_report' ) );
    125         }
    126        
    127         // WooCommerce scheduled tasks
     125       
     126        // Global
     127        add_action( 'init', array( $this, 'includes' ) );
     128       
     129        // Admin
    128130        add_action( 'wc_after_products_ending_sales', array( $this, 'cleanup_ended_sales_prices' ) );
    129        
    130     }   
    131            
    132     /**
    133      * @since   2.16.4
    134      */
    135     public function load_localization() {
    136         load_plugin_textdomain( 'currency-switcher-woocommerce', false, dirname( plugin_basename( __FILE__ ) ) . '/langs/' );
    137     }
    138 
     131        add_action( 'woocommerce_system_status_report', array( $this, 'add_settings_to_status_report' ) );
     132        add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), array( $this, 'action_links' ) );
     133        add_filter( 'woocommerce_get_settings_pages', array( $this, 'add_woocommerce_settings_tab' ) );
     134       
     135    }
     136   
     137   
    139138    /**
    140139     * Show action links on the plugin screen
     
    168167        }
    169168    }
    170 
     169   
     170   
    171171    /**
    172172     * Include required core files used in admin and on the frontend.
    173173     *
    174      * @version 2.16.0
     174     * @version 2.16.5
    175175     * @since   1.0.0
    176176     * @todo    (maybe) import/export all settings
    177177     */
    178     private function includes() {
    179        
    180         // Database Updates
    181         require_once( 'includes/database-updates.php' );
    182 
    183         // Functions
    184         require_once( 'includes/functions/alg-switcher-selector-functions.php' );
    185         require_once( 'includes/functions/alg-switcher-functions.php' );
    186         require_once( 'includes/functions/alg-switcher-exchange-rates-functions.php' );
    187         require_once( 'includes/functions/alg-switcher-country-functions.php' );
    188         require_once( 'includes/functions/alg-switcher-locale-functions.php' );
    189 
    190         // Compatibility
    191         require_once( 'includes/class-alg-switcher-third-party-compatibility.php' );
    192 
     178    public function includes() {
     179       
     180        // Localization
     181        load_plugin_textdomain( 'currency-switcher-woocommerce', false, dirname( plugin_basename( __FILE__ ) ) . '/langs/' );
     182       
    193183        // Settings
    194184        require_once( 'includes/admin/settings/class-alg-wc-currency-switcher-settings-section.php' );
     
    213203            update_option( 'alg_currency_switcher_version', $this->version );
    214204        }
    215 
     205       
    216206        // Per product Settings
    217207        if ( 'yes' === get_option( 'alg_currency_switcher_per_product_enabled', 'yes' ) ) {
    218208            require_once( 'includes/admin/class-alg-wc-currency-switcher-per-product.php' );
    219209        }
    220 
     210       
    221211        // Coupons Settings
    222212        if ( 'yes' === get_option( 'alg_currency_switcher_fixed_coupons_base_currency_enabled', 'no' ) ) {
    223213            require_once( 'includes/admin/class-alg-wc-currency-switcher-coupons.php' );
    224214        }
    225 
     215       
    226216        // Crons & Reports
    227217        if ( 'yes' === get_option( 'alg_wc_currency_switcher_enabled', 'yes' ) ) {
     
    231221            require_once( 'includes/admin/class-alg-currency-reports.php' );
    232222        }
    233 
     223       
    234224        // Widget
    235225        require_once( 'includes/class-alg-widget-currency-switcher.php' );
    236 
    237         // Core
    238         $this->core = require_once( 'includes/class-alg-wc-currency-switcher.php' );
    239     }
    240 
     226       
     227    }
     228   
     229   
    241230    /**
    242231     * add settings to WC status report
     
    332321    }
    333322
     323    /**
     324     * Check if HPOS is enabled.
     325     *
     326     * @version 2.16.5
     327     * @since   2.16.5
     328     */
     329    public function is_hpos_enabled() {
     330        return (
     331            method_exists( '\Automattic\WooCommerce\Utilities\OrderUtil', 'custom_orders_table_usage_is_enabled' )
     332            && \Automattic\WooCommerce\Utilities\OrderUtil::custom_orders_table_usage_is_enabled()
     333        );
     334    }
     335
    334336}
    335337
  • currency-switcher-woocommerce/trunk/includes/admin/class-alg-currency-reports.php

    r2753549 r3477243  
    55 * The Currency Switcher Currency Reports class.
    66 *
    7  * @version 2.15.1
     7 * @version 2.16.5
    88 * @since   1.0.0
    99 * @author  Algoritmika Ltd.
    10  * @author  WP Wham.
     10 * @author  WP Wham
    1111 */
    1212
     
    211211     * @return array
    212212     *
    213      * @version 2.13.0
     213     * @version 2.16.5
    214214     * @since   2.13.0
    215215     */
     
    217217        global $wpdb;
    218218       
    219         $clauses[] = "JOIN {$wpdb->postmeta} currency_postmeta ON {$wpdb->prefix}wc_order_stats.order_id = currency_postmeta.post_id";
     219        if ( $this->is_hpos_enabled() ) {
     220            $clauses[] = "JOIN {$wpdb->prefix}wc_orders currency_orders ON {$wpdb->prefix}wc_order_stats.order_id = currency_orders.id";
     221        } else {
     222            $clauses[] = "JOIN {$wpdb->postmeta} currency_postmeta ON {$wpdb->prefix}wc_order_stats.order_id = currency_postmeta.post_id";
     223        }
    220224       
    221225        return $clauses;
     
    230234     * @return array
    231235     *
    232      * @version 2.13.0
     236     * @version 2.16.5
    233237     * @since   2.13.0
    234238     */
     
    237241        $currency = $this->get_current_currency();
    238242       
    239         $clauses[] = "AND currency_postmeta.meta_key = '_order_currency' AND currency_postmeta.meta_value = '{$currency}'";
     243        if ( $this->is_hpos_enabled() ) {
     244            $clauses[] = "AND currency_orders.currency = '{$currency}'";
     245        } else {
     246            $clauses[] = "AND currency_postmeta.meta_key = '_order_currency' AND currency_postmeta.meta_value = '{$currency}'";
     247        }
    240248       
    241249        return $clauses;
     
    250258     * @return array
    251259     *
    252      * @version 2.13.0
     260     * @version 2.16.5
    253261     * @since   2.13.0
    254262     */
    255263    public function filter_clauses_select( $clauses, $context ) {
    256264       
    257         $clauses[] = ', currency_postmeta.meta_value AS currency';
     265        if ( $this->is_hpos_enabled() ) {
     266            $clauses[] = ', currency_orders.currency AS currency';
     267        } else {
     268            $clauses[] = ', currency_postmeta.meta_value AS currency';
     269        }
    258270       
    259271        return $clauses;
     
    308320        return $currency;
    309321    }
     322   
     323    /**
     324     * Check if HPOS is enabled.
     325     *
     326     * @return bool
     327     *
     328     * @version 2.16.5
     329     * @since   2.16.5
     330     */
     331    protected function is_hpos_enabled() {
     332        return alg_wc_currency_switcher_plugin()->is_hpos_enabled();
     333    }
     334   
    310335}
    311336
  • currency-switcher-woocommerce/trunk/includes/admin/settings/class-alg-wc-currency-switcher-settings-countries.php

    r3143821 r3477243  
    33 * Currency Switcher - Currency Countries Section Settings
    44 *
    5  * @version 2.16.0
     5 * @version 2.16.5
    66 * @since   2.0.0
    77 * @author  Tom Anbinder
     
    6363     * get_currency_countries_settings.
    6464     *
    65      * @version 2.16.0
     65     * @version 2.16.5
    6666     * @since   2.0.0
    6767     * @todo    check if "geolocate" option in WooCommerce is really required, if so - fix the message
     
    122122                ) : array() )
    123123            ),
    124             array(
    125                 'title'     => __( 'Enter countries as comma separated text', 'currency-switcher-woocommerce' ),
    126                 'type'      => 'checkbox',
    127                 'desc'      => __( 'Enable', 'currency-switcher-woocommerce' ),
    128                 'desc_tip'  => __( 'To see different input fields, save changes after you set this option.', 'currency-switcher-woocommerce' ),
    129                 'id'        => 'alg_wc_currency_switcher_currency_countries_as_text_enabled',
    130                 'default'   => 'no',
     124            array_merge(
     125                array(
     126                    'title'     => __( 'Enter countries as comma separated text', 'currency-switcher-woocommerce' ),
     127                    'type'      => 'checkbox',
     128                    'desc'      => __( 'Enable', 'currency-switcher-woocommerce' ),
     129                    'desc_tip'  => __( 'To see different input fields, save changes after you set this option.', 'currency-switcher-woocommerce' ),
     130                    'id'        => 'alg_wc_currency_switcher_currency_countries_as_text_enabled',
     131                    'default'   => 'no',
     132                ),
     133                ( get_option( 'wpwham_currency_switcher_version' ) !== 'legacy' ? array(
     134                    'custom_attributes' => apply_filters( 'alg_wc_currency_switcher_plugin_option', array( 'disabled' => 'disabled' ), 'settings' ),
     135                ) : array() )
    131136            ),
    132             array(
    133                 'title'     => __( 'Override country', 'currency-switcher-woocommerce' ),
    134                 'type'      => 'select',
    135                 'class'     => 'wc-enhanced-select',
    136                 'id'        => 'alg_wc_currency_switcher_currency_countries_override',
    137                 'default'   => 'disabled',
    138                 'options'   => array(
    139                     'disabled' => __( 'Override disabled', 'currency-switcher-woocommerce' ),
    140                     'checkout_billing'  => __( 'Override with billing country on checkout page only', 'currency-switcher-woocommerce' ),
    141                     'all_site_billing'  => __( 'Override with billing country on all site', 'currency-switcher-woocommerce' ),
    142                     'checkout_shipping' => __( 'Override with shipping country on checkout page only', 'currency-switcher-woocommerce' ),
    143                     'all_site_shipping' => __( 'Override with shipping country on all site', 'currency-switcher-woocommerce' ),
     137            array_merge(
     138                array(
     139                    'title'     => __( 'Override country', 'currency-switcher-woocommerce' ),
     140                    'type'      => 'select',
     141                    'class'     => 'wc-enhanced-select',
     142                    'id'        => 'alg_wc_currency_switcher_currency_countries_override',
     143                    'default'   => 'disabled',
     144                    'options'   => array(
     145                        'disabled' => __( 'Override disabled', 'currency-switcher-woocommerce' ),
     146                        'checkout_billing'  => __( 'Override with billing country on checkout page only', 'currency-switcher-woocommerce' ),
     147                        'all_site_billing'  => __( 'Override with billing country on all site', 'currency-switcher-woocommerce' ),
     148                        'checkout_shipping' => __( 'Override with shipping country on checkout page only', 'currency-switcher-woocommerce' ),
     149                        'all_site_shipping' => __( 'Override with shipping country on all site', 'currency-switcher-woocommerce' ),
     150                    ),
    144151                ),
     152                ( get_option( 'wpwham_currency_switcher_version' ) !== 'legacy' ? array(
     153                    'custom_attributes' => apply_filters( 'alg_wc_currency_switcher_plugin_option', array( 'disabled' => 'disabled' ), 'settings' ),
     154                ) : array() )
    145155            ),
    146156        ) );
     
    151161                alg_maybe_update_option_value_type( $option_id, $as_text );
    152162                $settings = array_merge( $settings, array(
    153                     array(
    154                         'title'   => '#' . ( $i + 1 ) . ' [' . $currency . '] ' . $all_currencies[ $currency ],
    155                         'id'      => $option_id,
    156                         'default' => '',
    157                         'type'    => ( $as_text ? 'text'    : 'multiselect' ),
    158                         'options' => ( $as_text ? ''        : alg_get_countries() ),
    159                         'class'   => ( $as_text ? 'widefat' : 'chosen_select' ),
     163                    array_merge(
     164                        array(
     165                            'title'   => '#' . ( $i + 1 ) . ' [' . $currency . '] ' . $all_currencies[ $currency ],
     166                            'id'      => $option_id,
     167                            'default' => '',
     168                            'type'    => ( $as_text ? 'text'    : 'multiselect' ),
     169                            'options' => ( $as_text ? ''        : alg_get_countries() ),
     170                            'class'   => ( $as_text ? 'widefat' : 'chosen_select' ),
     171                        ),
     172                        ( get_option( 'wpwham_currency_switcher_version' ) !== 'legacy' ? array(
     173                            'custom_attributes' => apply_filters( 'alg_wc_currency_switcher_plugin_option', array( 'disabled' => 'disabled' ), 'settings' ),
     174                        ) : array() )
    160175                    ),
    161176                ) );
  • currency-switcher-woocommerce/trunk/includes/admin/settings/class-alg-wc-currency-switcher-settings-languages.php

    r3143821 r3477243  
    33 * Currency Switcher - Currency Locales Section Settings
    44 *
    5  * @version 2.16.0
     5 * @version 2.16.5
    66 * @since   2.5.0
    77 * @author  Tom Anbinder
     
    6363     * get_currency_locales_settings.
    6464     *
    65      * @version 2.16.0
     65     * @version 2.16.5
    6666     * @since   2.5.0
    6767     * @todo    add more info (WPML, Polylang etc.)
     
    115115                ) : array() )
    116116            ),
    117             array(
    118                 'title'     => __( 'Enter locales as comma separated text', 'currency-switcher-woocommerce' ),
    119                 'type'      => 'checkbox',
    120                 'desc'      => __( 'Enable', 'currency-switcher-woocommerce' ),
    121                 'desc_tip'  => __( 'To see different input fields, save changes after you set this option.', 'currency-switcher-woocommerce' ),
    122                 'id'        => 'alg_wc_currency_switcher_currency_locales_as_text_enabled',
    123                 'default'   => 'no',
     117            array_merge(
     118                array(
     119                    'title'     => __( 'Enter locales as comma separated text', 'currency-switcher-woocommerce' ),
     120                    'type'      => 'checkbox',
     121                    'desc'      => __( 'Enable', 'currency-switcher-woocommerce' ),
     122                    'desc_tip'  => __( 'To see different input fields, save changes after you set this option.', 'currency-switcher-woocommerce' ),
     123                    'id'        => 'alg_wc_currency_switcher_currency_locales_as_text_enabled',
     124                    'default'   => 'no',
     125                ),
     126                ( get_option( 'wpwham_currency_switcher_version' ) !== 'legacy' ? array(
     127                    'custom_attributes' => apply_filters( 'alg_wc_currency_switcher_plugin_option', array( 'disabled' => 'disabled' ), 'settings' ),
     128                ) : array() )
    124129            ),
    125             array(
    126                 'title'     => __( 'Always use locale to assign currency', 'currency-switcher-woocommerce' ),
    127                 'type'      => 'checkbox',
    128                 'desc'      => __( 'Enable', 'currency-switcher-woocommerce' ),
    129                 'desc_tip'  => __( 'If disabled - currency will be assigned by locale only once (on first visit), then standard session value will be used.', 'currency-switcher-woocommerce' ),
    130                 'id'        => 'alg_wc_currency_switcher_currency_locales_use_always_enabled',
    131                 'default'   => 'yes',
     130            array_merge(
     131                array(
     132                    'title'     => __( 'Always use locale to assign currency', 'currency-switcher-woocommerce' ),
     133                    'type'      => 'checkbox',
     134                    'desc'      => __( 'Enable', 'currency-switcher-woocommerce' ),
     135                    'desc_tip'  => __( 'If disabled - currency will be assigned by locale only once (on first visit), then standard session value will be used.', 'currency-switcher-woocommerce' ),
     136                    'id'        => 'alg_wc_currency_switcher_currency_locales_use_always_enabled',
     137                    'default'   => 'yes',
     138                ),
     139                ( get_option( 'wpwham_currency_switcher_version' ) !== 'legacy' ? array(
     140                    'custom_attributes' => apply_filters( 'alg_wc_currency_switcher_plugin_option', array( 'disabled' => 'disabled' ), 'settings' ),
     141                ) : array() )
    132142            ),
    133143        ) );
     
    138148                alg_maybe_update_option_value_type( $option_id, $as_text );
    139149                $settings = array_merge( $settings, array(
    140                     array(
    141                         'title'   => '#' . ( $i + 1 ) . ' [' . $currency . '] ' . $all_currencies[ $currency ],
    142                         'id'      => $option_id,
    143                         'default' => '',
    144                         'type'    => ( $as_text ? 'text'    : 'multiselect' ),
    145                         'options' => ( $as_text ? ''        : alg_wc_cc_get_all_locales() ),
    146                         'class'   => ( $as_text ? 'widefat' : 'chosen_select' ),
     150                    array_merge(
     151                        array(
     152                            'title'   => '#' . ( $i + 1 ) . ' [' . $currency . '] ' . $all_currencies[ $currency ],
     153                            'id'      => $option_id,
     154                            'default' => '',
     155                            'type'    => ( $as_text ? 'text'    : 'multiselect' ),
     156                            'options' => ( $as_text ? ''        : alg_wc_cc_get_all_locales() ),
     157                            'class'   => ( $as_text ? 'widefat' : 'chosen_select' ),
     158                        ),
     159                        ( get_option( 'wpwham_currency_switcher_version' ) !== 'legacy' ? array(
     160                            'custom_attributes' => apply_filters( 'alg_wc_currency_switcher_plugin_option', array( 'disabled' => 'disabled' ), 'settings' ),
     161                        ) : array() )
    147162                    ),
    148163                ) );
  • currency-switcher-woocommerce/trunk/includes/admin/settings/class-alg-wc-currency-switcher-settings-section.php

    r1908825 r3477243  
    33 * Currency Switcher - Section Settings
    44 *
    5  * @version 2.8.7
     5 * @version 2.16.5
    66 * @since   1.0.0
    77 * @author  Tom Anbinder
     8 * @author  WP Wham
    89 */
    910
     
    1718     * Constructor.
    1819     *
    19      * @version 1.0.0
     20     * @version 2.16.5
    2021     * @since   1.0.0
    2122     */
     
    2324        add_filter( 'woocommerce_get_sections_alg_wc_currency_switcher',              array( $this, 'settings_section' ) );
    2425        add_filter( 'woocommerce_get_settings_alg_wc_currency_switcher_' . $this->id, array( $this, 'get_settings' ), PHP_INT_MAX );
    25         add_action( 'init',                                                           array( $this, 'add_settings_hooks' ) );
     26        $this->add_settings_hooks();
    2627    }
    2728
  • currency-switcher-woocommerce/trunk/includes/class-alg-exchange-rates-crons.php

    r3252003 r3477243  
    55 * The WooCommerce Currency Switcher Exchange Rates Crons class.
    66 *
    7  * @version 2.16.3
     7 * @version 2.16.5
    88 * @since   1.0.0
    99 * @author  Tom Anbinder
     
    1616
    1717class Alg_Currency_Switcher_Exchange_Rates_Crons {
    18 
     18   
    1919    public $update_intervals = null;
    2020   
     
    2222     * Constructor.
    2323     *
    24      * @version 1.0.0
     24     * @version 2.16.5
    2525     * @since   1.0.0
    2626     */
    27     function __construct() {
    28         $this->update_intervals  = array(
     27    public function __construct() {
     28       
     29        $this->update_intervals = array(
    2930            'minutely'   => __( 'Update Every Minute', 'currency-switcher-woocommerce' ),
    30             'hourly'     => __( 'Update Hourly', 'currency-switcher-woocommerce' ),
    31             'twicedaily' => __( 'Update Twice Daily', 'currency-switcher-woocommerce' ),
    32             'daily'      => __( 'Update Daily', 'currency-switcher-woocommerce' ),
    33             'weekly'     => __( 'Update Weekly', 'currency-switcher-woocommerce' ),
     31            'hourly'     => __( 'Update Hourly',       'currency-switcher-woocommerce' ),
     32            'twicedaily' => __( 'Update Twice Daily',  'currency-switcher-woocommerce' ),
     33            'daily'      => __( 'Update Daily',        'currency-switcher-woocommerce' ),
     34            'weekly'     => __( 'Update Weekly',       'currency-switcher-woocommerce' ),
    3435        );
    35         add_action( 'init',                           array( $this, 'schedule_the_events' ) );
    36         add_action( 'admin_init',                     array( $this, 'schedule_the_events' ) );
     36       
    3737        add_action( 'alg_update_exchange_rates_hook', array( $this, 'update_the_exchange_rates' ) );
    3838        add_filter( 'cron_schedules',                 array( $this, 'cron_add_custom_intervals' ) );
     39       
     40        $this->schedule_the_events();
    3941    }
    40 
     42   
     43   
    4144    /**
    4245     * On an early action hook, check if the hook is scheduled - if not, schedule it.
  • currency-switcher-woocommerce/trunk/includes/class-alg-wc-currency-switcher.php

    r3252003 r3477243  
    640640     * change_shipping_price_by_currency.
    641641     *
    642      * @version 2.15.2
     642     * @version 2.16.5
    643643     * @since   1.0.0
    644644     * @todo    (maybe) re-check `calc_shipping_tax()`
     
    657657                isset( $package_rate->cost )
    658658            ) {
    659                 $package_rate->cost = $this->maybe_round_and_pretty_shipping_rate( $package_rate->cost * $currency_exchange_rate, $currency_code );
     659                $package_rate->cost = $this->maybe_round_and_pretty_shipping_rate( (float) $package_rate->cost * (float) $currency_exchange_rate, $currency_code );
    660660                if ( isset( $package_rate->taxes ) && ! empty( $package_rate->taxes ) ) {
    661661                    if ( $this->do_round_or_pretty_shipping_rate( $currency_code ) ) {
  • currency-switcher-woocommerce/trunk/readme.txt

    r3304107 r3477243  
    33Tags: currency switcher, multicurrency, multi currency, currency, switcher
    44Requires at least: 4.4
    5 Tested up to: 6.8
    6 Stable tag: 2.16.4
     5Tested up to: 6.9
     6Stable tag: 2.16.5
    77License: GNU General Public License v3.0
    88License URI: http://www.gnu.org/licenses/gpl-3.0.html
     
    113113
    114114== Changelog ==
     115
     116= 2.16.5 - 2026-03-07 =
     117* FIX: PHP notices.
     118* FIX: missing some data on Analytics pages when HPOS enabled (104281).
    115119
    116120= 2.16.4 - 2025-05-31 =
Note: See TracChangeset for help on using the changeset viewer.