Changeset 3477243
- Timestamp:
- 03/08/2026 03:12:00 AM (4 weeks ago)
- Location:
- currency-switcher-woocommerce/trunk
- Files:
-
- 8 edited
-
currency-switcher-woocommerce.php (modified) (10 diffs)
-
includes/admin/class-alg-currency-reports.php (modified) (7 diffs)
-
includes/admin/settings/class-alg-wc-currency-switcher-settings-countries.php (modified) (4 diffs)
-
includes/admin/settings/class-alg-wc-currency-switcher-settings-languages.php (modified) (4 diffs)
-
includes/admin/settings/class-alg-wc-currency-switcher-settings-section.php (modified) (3 diffs)
-
includes/class-alg-exchange-rates-crons.php (modified) (3 diffs)
-
includes/class-alg-wc-currency-switcher.php (modified) (2 diffs)
-
readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
currency-switcher-woocommerce/trunk/currency-switcher-woocommerce.php
r3304107 r3477243 4 4 Plugin URI: https://wpwham.com/products/currency-switcher-for-woocommerce/ 5 5 Description: Currency Switcher for WooCommerce. 6 Version: 2.16. 46 Version: 2.16.5 7 7 Author: WP Wham 8 8 Author URI: https://wpwham.com 9 9 Text Domain: currency-switcher-woocommerce 10 10 Domain Path: /langs 11 Copyright: © 2018-202 5WP Wham. All rights reserved.11 Copyright: © 2018-2026 WP Wham. All rights reserved. 12 12 License: GNU General Public License v3.0 13 13 License URI: http://www.gnu.org/licenses/gpl-3.0.html … … 34 34 35 35 if ( ! defined( 'WPWHAM_CURRENCY_SWITCHER_VERSION' ) ) { 36 define( 'WPWHAM_CURRENCY_SWITCHER_VERSION', '2.16. 4' );36 define( 'WPWHAM_CURRENCY_SWITCHER_VERSION', '2.16.5' ); 37 37 } 38 38 if ( ! defined( 'WPWHAM_CURRENCY_SWITCHER_DBVERSION' ) ) { … … 56 56 * 57 57 * @class Alg_WC_Currency_Switcher 58 * @version 2.16. 458 * @version 2.16.5 59 59 * @since 1.0.0 60 60 */ … … 70 70 * @since 1.0.0 71 71 */ 72 public $version = '2.16. 4';72 public $version = '2.16.5'; 73 73 74 74 /** … … 98 98 * Alg_WC_Currency_Switcher Constructor. 99 99 * 100 * @version 2.16. 4100 * @version 2.16.5 101 101 * @since 1.0.0 102 102 * @access public … … 106 106 * @todo (maybe) add all currencies (so no other additional plugin is required) 107 107 */ 108 function __construct() { 109 110 // Set up localisation 111 add_action( 'init', array( $this, 'load_localization' ) ); 112 108 public function __construct() { 109 113 110 // 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) 117 123 $compatibility = new Alg_Switcher_Third_Party_Compatibility(); 118 124 $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 128 130 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 139 138 /** 140 139 * Show action links on the plugin screen … … 168 167 } 169 168 } 170 169 170 171 171 /** 172 172 * Include required core files used in admin and on the frontend. 173 173 * 174 * @version 2.16. 0174 * @version 2.16.5 175 175 * @since 1.0.0 176 176 * @todo (maybe) import/export all settings 177 177 */ 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 193 183 // Settings 194 184 require_once( 'includes/admin/settings/class-alg-wc-currency-switcher-settings-section.php' ); … … 213 203 update_option( 'alg_currency_switcher_version', $this->version ); 214 204 } 215 205 216 206 // Per product Settings 217 207 if ( 'yes' === get_option( 'alg_currency_switcher_per_product_enabled', 'yes' ) ) { 218 208 require_once( 'includes/admin/class-alg-wc-currency-switcher-per-product.php' ); 219 209 } 220 210 221 211 // Coupons Settings 222 212 if ( 'yes' === get_option( 'alg_currency_switcher_fixed_coupons_base_currency_enabled', 'no' ) ) { 223 213 require_once( 'includes/admin/class-alg-wc-currency-switcher-coupons.php' ); 224 214 } 225 215 226 216 // Crons & Reports 227 217 if ( 'yes' === get_option( 'alg_wc_currency_switcher_enabled', 'yes' ) ) { … … 231 221 require_once( 'includes/admin/class-alg-currency-reports.php' ); 232 222 } 233 223 234 224 // Widget 235 225 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 241 230 /** 242 231 * add settings to WC status report … … 332 321 } 333 322 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 334 336 } 335 337 -
currency-switcher-woocommerce/trunk/includes/admin/class-alg-currency-reports.php
r2753549 r3477243 5 5 * The Currency Switcher Currency Reports class. 6 6 * 7 * @version 2.1 5.17 * @version 2.16.5 8 8 * @since 1.0.0 9 9 * @author Algoritmika Ltd. 10 * @author WP Wham .10 * @author WP Wham 11 11 */ 12 12 … … 211 211 * @return array 212 212 * 213 * @version 2.1 3.0213 * @version 2.16.5 214 214 * @since 2.13.0 215 215 */ … … 217 217 global $wpdb; 218 218 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 } 220 224 221 225 return $clauses; … … 230 234 * @return array 231 235 * 232 * @version 2.1 3.0236 * @version 2.16.5 233 237 * @since 2.13.0 234 238 */ … … 237 241 $currency = $this->get_current_currency(); 238 242 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 } 240 248 241 249 return $clauses; … … 250 258 * @return array 251 259 * 252 * @version 2.1 3.0260 * @version 2.16.5 253 261 * @since 2.13.0 254 262 */ 255 263 public function filter_clauses_select( $clauses, $context ) { 256 264 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 } 258 270 259 271 return $clauses; … … 308 320 return $currency; 309 321 } 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 310 335 } 311 336 -
currency-switcher-woocommerce/trunk/includes/admin/settings/class-alg-wc-currency-switcher-settings-countries.php
r3143821 r3477243 3 3 * Currency Switcher - Currency Countries Section Settings 4 4 * 5 * @version 2.16. 05 * @version 2.16.5 6 6 * @since 2.0.0 7 7 * @author Tom Anbinder … … 63 63 * get_currency_countries_settings. 64 64 * 65 * @version 2.16. 065 * @version 2.16.5 66 66 * @since 2.0.0 67 67 * @todo check if "geolocate" option in WooCommerce is really required, if so - fix the message … … 122 122 ) : array() ) 123 123 ), 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() ) 131 136 ), 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 ), 144 151 ), 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() ) 145 155 ), 146 156 ) ); … … 151 161 alg_maybe_update_option_value_type( $option_id, $as_text ); 152 162 $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() ) 160 175 ), 161 176 ) ); -
currency-switcher-woocommerce/trunk/includes/admin/settings/class-alg-wc-currency-switcher-settings-languages.php
r3143821 r3477243 3 3 * Currency Switcher - Currency Locales Section Settings 4 4 * 5 * @version 2.16. 05 * @version 2.16.5 6 6 * @since 2.5.0 7 7 * @author Tom Anbinder … … 63 63 * get_currency_locales_settings. 64 64 * 65 * @version 2.16. 065 * @version 2.16.5 66 66 * @since 2.5.0 67 67 * @todo add more info (WPML, Polylang etc.) … … 115 115 ) : array() ) 116 116 ), 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() ) 124 129 ), 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() ) 132 142 ), 133 143 ) ); … … 138 148 alg_maybe_update_option_value_type( $option_id, $as_text ); 139 149 $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() ) 147 162 ), 148 163 ) ); -
currency-switcher-woocommerce/trunk/includes/admin/settings/class-alg-wc-currency-switcher-settings-section.php
r1908825 r3477243 3 3 * Currency Switcher - Section Settings 4 4 * 5 * @version 2. 8.75 * @version 2.16.5 6 6 * @since 1.0.0 7 7 * @author Tom Anbinder 8 * @author WP Wham 8 9 */ 9 10 … … 17 18 * Constructor. 18 19 * 19 * @version 1.0.020 * @version 2.16.5 20 21 * @since 1.0.0 21 22 */ … … 23 24 add_filter( 'woocommerce_get_sections_alg_wc_currency_switcher', array( $this, 'settings_section' ) ); 24 25 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(); 26 27 } 27 28 -
currency-switcher-woocommerce/trunk/includes/class-alg-exchange-rates-crons.php
r3252003 r3477243 5 5 * The WooCommerce Currency Switcher Exchange Rates Crons class. 6 6 * 7 * @version 2.16. 37 * @version 2.16.5 8 8 * @since 1.0.0 9 9 * @author Tom Anbinder … … 16 16 17 17 class Alg_Currency_Switcher_Exchange_Rates_Crons { 18 18 19 19 public $update_intervals = null; 20 20 … … 22 22 * Constructor. 23 23 * 24 * @version 1.0.024 * @version 2.16.5 25 25 * @since 1.0.0 26 26 */ 27 function __construct() { 28 $this->update_intervals = array( 27 public function __construct() { 28 29 $this->update_intervals = array( 29 30 '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' ), 34 35 ); 35 add_action( 'init', array( $this, 'schedule_the_events' ) ); 36 add_action( 'admin_init', array( $this, 'schedule_the_events' ) ); 36 37 37 add_action( 'alg_update_exchange_rates_hook', array( $this, 'update_the_exchange_rates' ) ); 38 38 add_filter( 'cron_schedules', array( $this, 'cron_add_custom_intervals' ) ); 39 40 $this->schedule_the_events(); 39 41 } 40 42 43 41 44 /** 42 45 * 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 640 640 * change_shipping_price_by_currency. 641 641 * 642 * @version 2.1 5.2642 * @version 2.16.5 643 643 * @since 1.0.0 644 644 * @todo (maybe) re-check `calc_shipping_tax()` … … 657 657 isset( $package_rate->cost ) 658 658 ) { 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 ); 660 660 if ( isset( $package_rate->taxes ) && ! empty( $package_rate->taxes ) ) { 661 661 if ( $this->do_round_or_pretty_shipping_rate( $currency_code ) ) { -
currency-switcher-woocommerce/trunk/readme.txt
r3304107 r3477243 3 3 Tags: currency switcher, multicurrency, multi currency, currency, switcher 4 4 Requires at least: 4.4 5 Tested up to: 6. 86 Stable tag: 2.16. 45 Tested up to: 6.9 6 Stable tag: 2.16.5 7 7 License: GNU General Public License v3.0 8 8 License URI: http://www.gnu.org/licenses/gpl-3.0.html … … 113 113 114 114 == 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). 115 119 116 120 = 2.16.4 - 2025-05-31 =
Note: See TracChangeset
for help on using the changeset viewer.