WooCommerce

  • Localization – Added Venezuelan states. #29477
  • Add – Feature WooCommerce Payments in the extensions store for stores in the US, Canada, UK, Ireland, Australia and New Zealand. #29843
  • Add – Product attributes lookup table and debug tools to manually fill or delete it. #29778
  • Add – dates_are_gmt parameters in REST API to searched posts using the post_date_gmt column.
  • Add – labels and searching terms in WooCommerce Navigation link block variations. #29772
  • Enhancement – Improved accessibility of the country and state address fields. #29706
  • Tweak – Updates the date_query usage in the CRUD controller to be consistent, generating an array of queries. #29909
  • Tweak – Search all extension categories instead of just searching the selected category. #29694
  • Tweak – Use WC Admin’s native notice nonce generation. #29637
  • Tweak – Change email settings help text to include troubleshooting steps. #29599
  • Fix – Bulk edit on external products causes an error when changing the Backorders setting. #29766
  • Fix – wc_get_low_stock_amount was returning a string, not an integer, for products not having an explicit low stock value set. #29721
  • Fix – Products left without default category assignment when all categories are deleted. #29681
  • Fix – Removed rounding at several places to better support precision when prices are entered more than 2dp. #29318
  • Fix – Migrate deprecated jQuery 3 functions. #29044
  • Dev – Refactored Tracker to use direct DB calls instead of CRUD. #29877
  • Dev – Introduce an option for assignment of variations for Remote Inbox Notification A/B testing. #29894
  • Add – Add plugin installer to allow installation of plugins via URL #6805
  • Add – Optional children prop to SummaryNumber component #6748
  • Dev – Add data source filter to remote inbox notification system #6794
  • Dev – Add A/A test #6669
  • Dev – Add support for nonces in note actions #6726
  • Dev – Add support for running php unit tests in PHP 8. #6678
  • Dev – Add event recording to start of gateway connections #6801
  • Dev – Do a git clean before the core release. #6945
  • Dev – Fix a bug where trying to load an asset registry causes a crash. #6951
  • Feature – Add recommended payment methods in payment settings. #6760
  • Fix – Disable the continue btn on OBW when requested are being made #6838
  • Fix – Event tracking for merchant email notes #6616
  • Fix – Use the store timezone to make time data requests #6632
  • Fix – Update the checked input radio button margin style #6701
  • Fix – Convert date to timestamp before passing to set_date_prop to persist timezone #6795
  • Fix – Make pagination buttons height and width consistent #6725
  • Fix – Retain persisted queries when navigating to Homescreen #6614
  • Fix – Update folded header style #6724
  • Fix – Unreleated variations showing up in the Products reports #6647
  • Fix – Check active plugins before getting the PayPal onboarding status #6625
  • Fix – Remove no-reply from inbox notification emails #6644
  • Fix – Set up shipping costs task, redirect to shipping settings after completion. #6791
  • Fix – Onboarding logic on WooCommerce update to keep task list present. #6803
  • Fix – Pause inbox message “GivingFeedbackNotes” #6802
  • Fix – Missed DB version number updates causing unnecessary upgrades. #6818
  • Fix – Parsing bad JSON string data from user WooCommerce meta. #6819
  • Fix – Remove PayPal for India #6828
  • Fix – Address an issue with OBW when installing only WooCommerce payments and Jetpack. #6957
  • Fix – Calling of get_script_asset_filename with extra parameter #6955
  • Fix – Show Google Listing and Ads in installed marketing extensions section. #7029
  • Performance – Avoid updating customer info synchronously from the front end. #6765
  • Tweak – Add settings_section event prop for CES #6762
  • Tweak – Refactor payments to allow management of methods #6786
  • Tweak – Add tracking data for the preview site button #6623
  • Tweak – Update WC Payments copy on the task list #6734
  • Tweak – Add check to see if value for contains is array, show warning if not. #6645
  • Tweak – Sort the extension task list by completion status and allow toggling visibility. #6792
  • Tweak – Update PayU logo #6829
  • Tweak – Store profiler – Changed MailPoet’s title and description #6886
  • Tweak – Store profiler – Changed MailPoet’s title and description #6990
  • Tweak – Adjust WC Pay supported countries #7048
  • Update – Replace marketing extension – Google Listings and Ads. #6939
  • Update – Update choose niche note cta URL #6733
  • Update – UI updates to Payment Task screen #6766
  • Update – Adding setup required icon for non-configured payment methods #6811
  • Update – Payment recommendation screen transition and add external link icon. #7022
**WooCommerce**

* Dev - Add support for "cities" and "postcodes" fields to the REST API endpoints to create/update tax rates. #29495
* Dev - The taxes GET endpoint now supports sorting by priority. #29495
* Enhancement - Add a new `woocommerce_cart_product_not_enough_stock_already_in_cart_message` filter to allow developers to filter an add-to-cart error when there isn't enough in stock taking into account what's already in the cart. #29304
* Enhancement - Pass `$handler`, and prevent logging from `woocommerce_logger_log_message` filter when the message is null. #29572
* Fix - Added parameter `$item` (instance of WC_Order_Item) to both the function `wc_downloadable_file_permission` and the filter hook `woocommerce_downloadable_file_permission`. #23188
* Fix - Add array-typed "cities" and "postcodes" to the response of the "tax" endpoint in the REST API to overcome the limitation of "city" and "postcode" returning always one single value. #27751
* Fix - Update tax rate for existing taxes when recalculating order totals. #27985
* Fix - Replace page setup dropdowns with AJAX powered search selects. #29181
* Fix - Return 0 if order isn't available in `WC_Payment_Gateway::get_order_total()`. #29314
* Fix - Fix console error on IE11 when opening admin pages. #29322
* Fix - Prevent crash when log file can't be opened for writing. #29396
* Fix - Closes the section "Store management insights" in email settings. #29447
* Fix - Fixed return type of `WC_Shortcode_Products::get_type()`. #29452
* Fix - Fix syntax error in the admin (products/orders) list table. #29469
* Fix - Cart duplicate debug shipping notices in certain situations. #29480
* Fix - Trying to update the cities or postcodes (only) or a tax rate via REST API returned an error. #29495
* Fix - Unneeded browser popup message of unsaved changes when adding a shipping zone with a shipping method. #29510
* Fix - Update the persistent cart after it's loaded on customer login. Fixes an issue whereby unavailable products would be validated on every login. #29517
* Fix - Updated `$customer->get_shipping()` and `$customer->get_billing()` to return the full address after updating individual fields. #29538
* Fix - Prevent cart to reset all nonce in front-end. #29542
* Fix - Bump the version of the "Grouped product add to cart" template to 4.8.0 (was still at 4.0.0 by mistake). #29601
* Fix - If we have a non-empty shipping address then do not overwrite the state or country fields with billing address data. #29605
* Tweak - Add the support to `optgroups` in single select on Settings API. #29145
* Tweak - Improves performance by avoiding an unnecessary redirect if custom permalink structure does not contain trailing slashes. #29422
* Tweak - Update SSR db version tooltip to more accurately state the db version. #29438
* Tweak - Adjust Twenty Twenty One order items header alignment. #29485
* Tweak - Lost password form alignment issues. #29496
* Tweak - Improve accessibility by adding `aria-hidden="true"` on strikethrough prices. #29603
* Tweak - Default store location to US California. #29654
* Tweak - Default store currency to USD. #29752

** WooCommerce Blocks - 4.8.0 & 4.9.0 & 4.9.1 **

* Dev - Removed legacy handling for SSR blocks that rendered shortcodes. #4010
* Fix - Customer address country saving to orders in certain circumstances. #4013
* Fix - Prevent error messages returned by the API from displaying raw HTML. #4005
* Fix - Proceed to checkout button click bug happening when the Coupon error is visible in the Cart block. #3996
* Fix - Use font color in payment methods border. #4051
* Fix - Load translation file for JS files that has translatable strings. #4050
* Fix - Stop shipping package titles line-breaks occurring in the middle of a word. #4049
* Fix - Fixed styling issues on the cart and checkout page in Twenty(X) themes. #4046
* Fix - Fix headline alignment in the empty state of the cart block. #4044
* Fix - Fix button alignment in Featured Product and Featured Category blocks. #4028
* Fix - Check if Cart and Checkout are registered before removing payment methods. #4056
* Enhancement - Registered payment methods now have access to the `shouldSavePayment` prop in their components (which indicates whether the shopper has checked the save payment method checkbox. #3990
* Enhancement - Payment methods implementing the `savedTokenComponent` configuration property will now have the `onPaymentProcessing` event available to the registered component. #3982
  • Update – WooCommerce Admin package 2.0.2. #29229
  • Update – WooCommerce Blocks package 4.4.3. #29016
  • Fix – Error in notice message of reports when WC Admin is disabled via a filter. #29095
  • Fix – Error when calculating orders with tax option rounding at subtotal level in PHP 8. #29089
  • Fix – price filtering not working properly with variable products whose variations have different prices. #29043
  • Fix – Removed extra closing brace from the Zone regions help text. #29036
  • Fix – Tax name/label is not being updated in the order when it is changed. #28983
  • Fix – Additional protection after wc_get_product to account for invalid ID. #28962
  • Fix – orders list from returning false values if orders are missing. #28927
  • Fix – Terms and Policy checkbox wording settings not shown in customizer. #28735
  • Fix – Admin notices sometimes were persisting even after dismissing. #28500
  • Fix – Calculate discount based on order location in the admin view. #26983
  • Fix – SASS variables not being compile correctly due to recent SASS version. #29120
  • Fix – Placeholder image height in cart. #29139
  • Dev – Updated admin bar icons to use SVG and Dashicons instead of custom font. #29094
  • Dev – Admin menu modification has been moved from admin_head hooks to admin_menu hooks. #29088
  • Dev – status report generation time to the Status Report. #28980
  • Dev – Add the ‚woocommerce_exporter_product_types‘ filter to allow third-parties to filter the product types which can be imported and exported. #28950
  • Dev – Filter added to allow ‚woocommerce_hold_stock_minutes‘ to be customized. #28933
  • Dev – Add optional semicolon to JS code for better compatibility. #28880
  • Dev – Added Guatemala states. #28755
  • Dev – jQuery 3 deprecated functions update. #28753
  • Dev – Add Woo Version as global prop in track events. #28627
  • Dev – Added orders count by payment method to Tracker data and replaced direct DB calls with CRUD. #28584
  • Dev – WC_Tax::get_tax_rate_classes() is now public. #27671
  • Dev – „Store management insights“ option now is turned off by default. #29105
  • Dev – Update the woo widget stock links to the new analytics page. #29093
  • Tweak – Updated WooCommerce logo color. #29054
  • Tweak – Correctly aligns content in the checkout with Twenty Twenty-One. #28951
  • Tweak – Use assigned variable for $post_thumbnail_id instead of calling function more than once. #28919
  • Tweak – Ensure that all tracker values collected for orders are of string type. #28893
  • Tweak – Adjust CSS font size and spacing for Twenty Twenty One. #28827
  • Tweak – Bump minimum supported version of PHP to 7.0. #6046
  • Tweak – update the content and timing of the NeedSomeInspiration note. #6076
  • Tweak – Adjust the Marketing note not to show until store is at least 5 days. #6083
  • Tweak – Refactored extended task list. #6081
  • Fix – Add support for a floating-point number as a SummaryNumber’s delta. #5926
  • Fix – allow for more terms to be shown for product attributes in the Analytics orders report. #5868
  • Fix – Fixed the Add First Product email note checks. #6260
  • Fix – Onboarding – Fixed „Business Details“ error. #6271
  • Fix – Show management links when only main task list is hidden. #6291
  • Fix – Correct the Klarna slug. #6440
  • Add – new inbox message – Getting started in Ecommerce – watch this webinar. #6086
  • Add – Remote inbox notifications contains comparison and fix product rule. #6073
  • Add – Task list payments – include Mollie as an option. #6257
  • Update – store deprecation welcome modal support doc link #6094
  • Update – Homescreen layout, moving Inbox panel for better interaction. #6122
  • Enhancement – Allowing users to create products by selecting a template. #5892
  • Enhancement – Use the new Paypal payments plugin for onboarding. #6261
  • Dev – Add wait script for mysql to be ready for phpunit tests in docker. #6185
  • Dev – Remove old debug code for connecting to Calypso / WordPress.com. #6097
  • Dev – Allow highlight tooltip to use body tag as parent. #6309
  • Update – Jetpack Autoloader to 2.9.1.
  • Update – Update package for WooCommerce core inclusion.
  • Enhancements – Design tweaks to the cart page which move the quantity picker below each cart item and improve usability on mobile. (3734)
  • Enhancements – Store API – Fix selected rate in cart shipping rates response. (3680)
  • Enhancements – Create get_item_responses_from_schema abstraction. (3679)
  • Enhancements – Show itemized fee rows in the cart/checkout blocks. (3678)
  • Enhancements – Extensibility: Show item data in Cart and Checkout blocks and update the variation data styles. (3665)
  • Enhancements – Introduce SlotFill for Sidebar. (3361)
  • Enhancements – Add the ability to directly upload an image in Featured Category and Featured Product blocks. (3579)
  • Enhancements – Fix coupon code button height not adapting to the font size. (3575)
  • Enhancements – Fixed Coupon Code panel not expanding/contracting in some themes. (3569)
  • Enhancements – Fix: Added fallback styling for screen reader text. (3557)
  • Fix – Ensure empty categories are correctly hidden in the product categories block. (3765)
  • Fix – Added missing wrapper div within FeaturedCategory and FeatureProduct blocks. (3746)
  • Fix – Set correct text color in BlockErrorBoundry notices. (3738)
  • Fix – Hidden cart item meta data will not be rendered in the Cart and Checkout blocks. (3732)
  • Fix – Improved accessibility of product image links in the products block by using correct aria tags and hiding empty image placeholders. (3722)
  • Fix – Add missing aria-label for stars image in the review-list-item component. (3706)
  • Fix – Prevent „X-WC-Store-API-Nonce is invalid“ error when going back to a page with the products block using the browser back button. (3770)
  • Fix – Adds a default „features“ array for payment methods which do not define supported features. Fixes conflicts with 3rd Party payment method integrations.
  • Fix – Fix an error that was blocking checkout with some user saved payment methods. (3627)
  • Fix – Fix nonce issues when adding product to cart from All Products. (3598)
  • Fix – Fix bug inside Product Search in the editor. (3578)
  • Fix – Fix console warnings in WordPress 5.6. (3577)
  • Fix – Fixed text visibility in select inputs when using Twenty Twenty-One theme’s dark mode. (3554)
  • Fix – Fix product list images skewed in Widgets editor. (3553)
  • Add address validation to values posted to the Checkout via StoreApi. (3552)
  • Fix – Fix Fees not visible in Cart & Checkout blocks when order doesn’t need shipping. (3521)
  • Fix – Fix All Products block edit screen. (3547)
  • Fix – Checkout block: Prevent Create an account from creating up a user account if the order fails coupon validation. (3423)
  • Fix – Make sure cart is initialized before the CartItems route is used in the Store API. (3488)
  • Fix – Fix notice close button color in Twenty Twenty One dark mode. (3472)
  • Fix – Remove held stock for a draft order if an item is removed from the cart. (3468)
  • Fix – Ensure correct alignment of checkout notice’s dismiss button. (3455)
  • Fix – Fixed a bug in Checkout block (Store API) causing checkout to fail when using an invalid coupon and creating an account.
  • Fix – Checkout block: Correctly handle cases where the order fails with an error (e.g. invalid coupon) and a new user account is created. (3429)
  • Update – Hide the All Products Block from the new Gutenberg Widget Areas until full support is achieved. (3737)
  • Update – Legacy star-rating class name has been removed from Product rating block (inside All Products block). That element is still selectable with the .wc-block-components-product-rating class name. (3717)
  • Update – Update input colors and alignment. (3597)
  • Update – Removed compatibility with packages in WordPress 5.3. (3541)
  • Update – Bumped the minimum WP required version to 5.4. (3537)
  • Dev – Change register_endpoint_data to use an array of params instead of individual params. (3478)
  • Dev – Expose store/cart via ExtendRestApi to extensions. (3445)
  • Dev – Added formatting classes to the Store API for extensions to consume.
  • Dev – Refactored and reordered Store API checkout processing to handle various edge cases and better support future extensibility. (3454)
* Enhancement - Create additional download permissions for simple downloadable products that are converted to variable products provided that there are variations offering the same files. #28521
* Enhancement - Export SASS variables as CSS variables. #28709
* Tweak - Added "Store management insights" option. #28712
* Tweak - Styling for dismiss link of the store notice for Twenty Twenty and Twenty Twenty One themes. #28790
* Tweak - Notice to deprecate legacy reports in favor of the newer analytics page. #28799
* Tweak - Ability to create new tags for products when creating a product via the REST API. #28723
* Tweak - Disable untested plugin's notice from System Status and Plugin's page. #28840
* Tweak - Use `wp_robots_no_robots()` when available to support WP 5.7. #28993
* Fix - Improves the logic for deleting variations when a product type is changed. #27137
* Fix - Use 'setlocale' in 'wc_ascii_uasort_comparison' for compatibility with PHP 8. #27844
* Fix - Normalize end of lines in log-handler-email tests for compatibility with PHP 8. #27844
* Fix - Invert `if` statement to reduce nesting level in `\WC_Shipping::calculate_shipping_for_package`. #28558
* Fix - Changed value for speak to fix css3 validation issue. #28607
* Fix - Check if Cart and Checkout pages are using block instead of shortcode for the Status check. #28679
* Fix - Attributes on Edit Product page - "Select all" not working after "Select none" used. #28681
* Fix - Ensure the orders and products statuses are reverted correctly when restoring them. #28690
* Fix - Add checks to make sure session is initialised before loading the data store. #28692
* Fix - Update featured extensions API endpoint on WooCommerce/Extensions page. #28719
* Fix - Add Authorization header to the features extensions and search requests made to the marketplace. #28719
* Fix - Duplicate New Order emails being sent when changing order status. #28809
* Fix - Add migration to fix existing product review count. #28814
* Fix - Fixed issues with empty prices in PHP 8. #28900
* Dev - Increased WordPress minimum version to 5.4 according to WooCommerce's L-2 support policy. #28977
* Dev - Use a custom fork of PHPUnit 7 in PHP 8 to workaround compatibility issues. #27844
* Dev - Introduced `woocommerce_activated_plugin` hook. #28698
* Dev - Clean up the `WC_Shipping_Zone_Data_Store::read()` method, documenting the `woocommerce_shipping_zone_loaded` hook. #28801
* Dev - Updated the Jetpack Autoloader to 2.9.1. #29057
* Localization - Adding states for Dominican Republic. #28713
* Localization - Restored list of Serbia districts #28778
* Localization - Update Indian state name from `Orissa` to `Odisha`. #28740
* Localization - Remove post code requirement for Guatemala. #28706
* Localization - Fixed name for state in Guatemala. #28706
* Localization - Add 'Ladakh' to the list of Indian states. #28458
* Localization - Revert change and make city and postcode required again for Serbia. #28415
* Performance - Added cache and filter for wc-customer get operations. #27352
* Performance - Hydrate caches for wc_get_order to improve performance. #27734
* Performance - Fetch only required data from DB when possible in API calls. #27735
* Enhancement - add product and variation before_set_stock action hooks to allow 3rd party plugins to snapshot a product’s stock quantity before it is updated. #27558
* Enhancement - Add the ability to avoid unsupported updates based on the PHP version. #28151
* Fix - Format tax class before insertion to prevent conflicts with default classes. #27451
* Fix - Change href of premium support link. #27675
* Fix - `get_next` will now return null if the same action is currently executing to help with missed webhooks issue. #27850
* Fix - Return default date/time formats from wc_date_format and wc_time_format if WP core formats are empty. #28322
* Fix - Use WC function to get low stock amount instead of accessing option directly. #28440
* Fix - Use single quotes inside MySQL query to avoid issues when ANSI_QUOTES is enabled. #28468
* Fix - Remove deprecated PayPal Standard "Page Style" setting. #28499
* Fix - Remove GB and IM from EU VAT countries. #28538
* Fix - Fix issue where customer could checkout although mandatory field "Country" was not given. #28543
* Fix - Switch to general tab when enabling virtual on a product setting. #28414
* Fix - Unwanted HTML is showing up on the product search fields when searching for a product variation. #28416
* Fix - Add `postbox` class to `woocommerce_attribute wc-metabox` for proper targeting. #28351
* Fix - Error tooltip misaligned on tax country field. #28565
* Fix - Prevent meta_data from overwriting column data in customer's read. #28102
* Fix - Also count comment types with '' and 'comment' in the review count query. #28624
* Fix - Better error messages when usage limit are reached. #28592
* Fix - Adjust stock items only for statuses which reduces the stock. #28620
* Fix - Named parameter to fix DB update routine on PHP8. #28537
* Fix - Add protection around func_get_args_call for backwards compatibility. #28677
* Fix - Restore stock_status in REST API V3 response. #28731
* Fix - Revert some of the changes related to perf enhancements (27735) as it was breaking stock_status filter. #28745
* Dev - Hook for intializing price slider in frontend. #28014
* Dev - Add support for running a custom initialization script for tests. #28041
* Dev - Use the coenjacobs/mozart package to renamespace vendor packages. #28147
* Dev - Documentation for `wc_get_container`. #28269
* Dev - Removed unused dockerfile. #28270
* Dev - replaces deprecated jQuery.fn.click( handler ) with jQuery.fn.on( 'click', handler ). #28332
* Dev - removed jQuery code that didn't work that was supposed to interact with the coupon page. #28287
* Dev - Documentation return type fixes for WC_Payment_Gateway class. #28358
* Dev - Remove function existence check for determine_locale. #28386
* Dev - add a missing second parameter to our copy of the WP action lostpassword_post. #28467
* Dev - Added argument on wc_get_template() to pass email object to email header and footer templates. #28204
* Dev - Add is_numeric checks on sales reports by date to prevent notices with PHP 7.4. #28403
* Tweak - Removed the "Features" settings page now that the WooCommerce Admin dashboard is enabled by default. #27047
* Tweak - Deprecate old setup wizard. #26853
* Tweak - Add WC pages when the plugin is activated now that the old setup wizard was deprecated. #26853
* Fix - When adding a grouped product to the cart, quantity is passed through the `woocommerce_stock_amount` filter like it's done for simple and variable products. #27219
* Fix - Several style improvements to notices in theme Twenty Twenty. #27387
* Fix - Fixed countries list sorting and added support to PHP internationalization functions. #27416
* Fix - Remove "There are no notes yet" after adding the first one by AJAX. #27449
* Fix - Fix PHP docblock summary to properly reflect the role of `wc_get_coupon_id_by_code` function. #27453
* Fix - Fix white space character in add-to-cart script. #27459
* Fix - Adding missing css property to email templates to ensure header background color is less likely to be overridden by email client. #27525
* Fix - Encapsulate scope of `c` variable to avoid polluting the global scope and potentially causing problems if other plugins use the same variable name. #27610
* Fix - Fix bug when using tax classes with some non-ASCII characters. #27615
* Fix - Paypal gateway: protect code against a fatal error if WooCommerce is unable to communicate with PayPal. #27616
* Fix - Added WP environment type to tracker. #27685
* Fix - Prevent fatal errors when trying to determine what is the product type taxonomy term. #27441
* Fix - Typo in the error message shown in the customizer. #27008
* Dev - Introduced `woocommerce_return_to_shop_text` filter. #25419
* Dev - Introduced `woocommerce_cart_item_required_stock_is_not_enough` filter. #26196
* Dev - Changed relative `include` paths to absolute `include` paths using `__DIR__`. #27433
* Dev - Fixed duplicated use of `woocommerce_add_$notice_type`. #27437
* Dev - Allow public access to core capabilities for other plugins. #26976
* Dev - Add `woocommerce_should_send_no_stock_notification` filter. #27634
* Dev - New action 'woocommerce_after_order_details' added in a order-details.php template. #26327
* Dev - Fix and improve documentation of wc_string_to_bool and wc_bool_to_string. #27662
* Localization - Remove duplicated entry for Cyprus when listing countries by continent. #27636
* Localization - Add Egypt regions. #27495
* Localization - Updated name for the Hungarian county called Csongrád-Csanád. #27075
* Localization - Adding states for Benin country. #27217
* Localization - Add KR locale info. #27496
* Localization - Fixed the name of the Spain state of `Biscay`. #27548
* Fix - Prevent variable product to be added to cart until a valid variation is selected first. #28103
* Fix - Restored support for custom `taxonomy-product_cat-.php` and `taxonomy-product_tag-.php` templates. #28377
* Fix - Display overrides of `taxonomy-product_<cat|tag>.php` and `content-product_cat.php` templates in Status page. #28378
* Dev - Apply `woocommerce_cart_needs_payment` filter in `WC_Checkout::process_checkout()` to make backwards compatible. #28281
* Tweak - Update `product_cat/tag` taxonomy template file names to `product-cat/tag`. #27736
* Tweak - Exclude draft pages from the "Shop page" setting. #27890
* Tweak - Styling to properly display product reviews within the dashboard activity widget. #27968
* Fix - Fixes Photoswipe action buttons being obscured by admin bar. #27010
* Fix - Allow variation image to be removed via REST API. #27299
* Fix - Fixed WP CLI command to delete tax classes. #27310
* Fix - Prevent regenerate image filter loop. #27483
* Fix - Fixed some race conditions in `WC_Install`. #27696
* Fix - Improved PHP 8 support for `Automattic\WooCommerce\RestApi\Utilities\SingletonTrait`. #27707
* Fix - Adjust stock even if `reduce_stock` meta is not set in `wc_maybe_reduce_stock_levels`. #27763
* Fix - Removed duplicated CSS code from jQuery UI. #27767
* Fix - HTML syntax error in scheduled product message. #27842
* Fix - Update logic to determine if an order requires payment to check the order instead of the cart. #27893
* Fix - Use `Set password` title for lost password reset form when applicable. #27898
* Fix - REST API - Fixed deprecated notices while querying orders and refunds through REST API v1 endpoints. #27934
* Fix - Email address starting with `www` being displayed as a URL link in the admin order details page. #27983
* Fix - Unexpected HTTP 401 "Sorry, you cannot list resources" REST API responses that occur when a plugin or custom code determines the current WordPress user before WooCommerce is fully initialized. #27587
* Dev - Add `woocommerce_should_send_low_stock_notification` filter. #27819
* Dev - Introduce (again) a dependency injection framework for the code in the src directory. #27733
* Dev - Remove leftover code and data from the reverted improvement for variations filtering by attribute. #27748
* Dev - Escaped labels in `woocommerce_form_field()`. #27800
* Dev - Add a `NumberUtil::round` method to workaround a breaking change in the buil-in round function in PHP8. #27830
* Dev - Remove default value from optional parameters that are followed by required parameters in functions/methods, since those are de-facto required and trigger a deprectation notice in PHP 8. #27840
* Dev - REST API - Add user-friendly attribute names and values to order line items metadata.
* Dev - REST API - Adds `parent_name` to `line_items` of the GET /orders endpoint.
* Localization - Added Serbia districts. #27778
* Localization - Make city, and postcode non-required fields. #27779
* Localization - Add i18n locale information for Uganda, Kenya and Tanzania. #27164
* Localization - Renamed "Postcode / ZIP" to "Pin code", and renamed "State / County" to "State" for India. #27516
* Localization - Added postcode validation for addresses in India. #27546
* Tweak - Removed the "Features" settings page now that the WooCommerce Admin dashboard is enabled by default. #27047
* Tweak - Deprecate old setup wizard. #26853
* Tweak - Add WC pages when the plugin is activated now that the old setup wizard was deprecated. #26853
* Fix - When adding a grouped product to the cart, quantity is passed through the `woocommerce_stock_amount` filter like it's done for simple and variable products. #27219
* Fix - Several style improvements to notices in theme Twenty Twenty. #27387
* Fix - Fixed countries list sorting and added support to PHP internationalization functions. #27416
* Fix - Remove "There are no notes yet" after adding the first one by AJAX. #27449
* Fix - Fix PHP docblock summary to properly reflect the role of `wc_get_coupon_id_by_code` function. #27453
* Fix - Fix white space character in add-to-cart script. #27459
* Fix - Adding missing css property to email templates to ensure header background color is less likely to be overridden by email client. #27525
* Fix - Encapsulate scope of `c` variable to avoid polluting the global scope and potentially causing problems if other plugins use the same variable name. #27610
* Fix - Fix bug when using tax classes with some non-ASCII characters. #27615
* Fix - Paypal gateway: protect code against a fatal error if WooCommerce is unable to communicate with PayPal. #27616
* Fix - Added WP environment type to tracker. #27685
* Fix - Prevent fatal errors when trying to determine what is the product type taxonomy term. #27441
* Fix - Typo in the error message shown in the customizer. #27008
* Dev - Introduced `woocommerce_return_to_shop_text` filter. #25419
* Dev - Introduced `woocommerce_cart_item_required_stock_is_not_enough` filter. #26196
* Dev - Changed relative `include` paths to absolute `include` paths using `__DIR__`. #27433
* Dev - Fixed duplicated use of `woocommerce_add_$notice_type`. #27437
* Dev - Allow public access to core capabilities for other plugins. #26976
* Dev - Add `woocommerce_should_send_no_stock_notification` filter. #27634
* Dev - New action 'woocommerce_after_order_details' added in a order-details.php template. #26327
* Dev - Fix and improve documentation of wc_string_to_bool and wc_bool_to_string. #27662
* Localization - Remove duplicated entry for Cyprus when listing countries by continent. #27636
* Localization - Add Egypt regions. #27495
* Localization - Updated name for the Hungarian county called Csongrád-Csanád. #27075
* Localization - Adding states for Benin country. #27217
* Localization - Add KR locale info. #27496
* Localization - Fixed the name of the Spain state of `Biscay`. #27548
* Localization - Added postcode validation for Bosnia and Herzegovina. #27048
* Localization - Added the postcode validation for Liechtenstein. #27059
* Localization - Add i18n locale information for Liechtenstein, Switzerland and Austria. #27193
* Tweak - Increase priority of `admin_body_class` filter to avoid comflict with plugins that incorrectly remove all body classes from WP. #27426
* Tweak - Rename built-in PayPal payment method to PayPal Standard. #27468
* Fix - Remove whitespace within a link. #26897
* Fix - `get_review_count_for_product` return all comments count not only 'review' types #26928
* Fix - Hidden field type is now supported by `woocommerce_form_field`. #27023
* Fix - Remove state for country liechtenstein. #27057
* Fix - Fixed validation of variation attributes while adding products to the cart. #27115
* Fix - Coupon code inconsistent between admins and shop owners. #27140
* Fix - Fixed the logic behind "Hide shipping costs until an address is entered". #27143
* Fix - Searches for variations now will fallback to parent SKU if one is not entered. #27171
* Fix - Release coupon holds for cancelled orders previously in pending status. #27179
* Fix - Fixes Japan zip code format issue (dash is now optional). #27244
* Fix - Restore backward compatibility with WC 4.x and forward compatibility with WC 5.5. #27318
* Fix - Switch to site locale before translating refund reason. #27323
* Fix - Declare `WC_Post_Types::updated_term_messages` as a static method to remove PHP deprecation warning. #27436
* Fix - Allow HTML to be entered in product title for formatting purposes. #27465
* Fix - Filter by attribute widget not working properly for variations having attribute values of "Any...". #27508
* Fix - Fixed the layout of the variations and attributes sections in the product page in the admin when running WP >= 5.5. #27590
* Dev - Added additional stock-based cart filters including `woocommerce_cart_product_cannot_add_another_message`, `woocommerce_cart_product_out_of_stock_message`, and `woocommerce_cart_product_not_enough_stock_message`. #26439
* Dev - Changed text domain to `woocommerce` for REST API files. #27248
* Dev - Added file path to the `woocommerce_file_download_method` filter. #27152
* Dev - Merge API Package into core. #27100
* Accessibility: Adds alt attribute to photoswipe gallery images. #26945
* Enhancement - Remove the privacy page dropdown from the Accounts & Privacy page. #26809
* Enhancement - Added automatic language pack updates for WooCommerce.com extensions. #26750
* Enhancement - Improvements for the Hungarian address format. #26697
* Enhancement - Dropdown arrow width was made smaller. #26202
* Enhancement - Add a "No change" option to the "Stock status" selector in quick edit, preselect it when the product being edited is a variable product. #26174
* Enhancement - Don't request language packs for empty locales list. #27148
* Localization - Added 14 Namibia regions. #26894
* Localization - Change default Greek states names to English. #26719
* Localization - Improved Puerto Rico addresses and improve address formatting. #26698
* Localization - Wrapped price and currency inside a BDI tag, in order to prevent the bidirectional algorithm to produce confusing results. #26462
* Localization - Added Algerian provinces. #25687
* Tweak - Added "order_total" to the wcadmin_orders_edit_status_change tracker event. #26935
* Tweak - Fixed WooCommerce menu for users that can only manage orders on WooCommerce. #26877
* Tweak - Limit nocache headers to googleweblight by default. #26858
* Tweak - Preserve quantity input value when changing variations. #26805
* Tweak - Confirm before running any tool from the WooCommerce Status settings. #26660
* Tweak - Limit stock changes for order items to status methods for consistency. #26642
* Tweak - Custom vendor taxonomy update messages. #26634
* Tweak - Remove HTML tags from plain text email template for Customer new account. #26613
* Tweak - Conditionally change the text in My account to reflect if shipping is disabled. #26325
* Tweak - Show CSV file name in result message when product import is complete. #25240
* Tweak - Improve order details UI to highlight "Paid" and "Net Payment" sections. #27142
* Fix - Remove the dot after the generated password in new account emails. #27073
* Fix - Delayed the execution of all webhooks until after the request has completed. #27067
* Fix - [Importer/Exporter] Fixed the value display of "Published" for children of draft variable products. #27046
* Fix - Removed the extra id parameter added to CLI commands that shouldn't have one. #27017
* Fix - Added the missing instance_id to the REST CLI command so that shipping zone method commands will work. #27017
* Fix - Add rating_count to order by rating clause. #26964
* Fix - Don't show premium support forum link if the store is not connected to WooCommerce.com. #26932
* Fix - Incorrect capability used on add order note while creating an user note. #26920
* Fix - Preserve HTML entities from product names in the cart page. #26885
* Fix - Display warning hen leaving settings page without saving first. #26880
* Fix - Remove wc_round_tax_total from shipping tax because shipping prices never include tax so rounding down is not needed. #26850
* Fix - Make the "Please log in" message displayed to users with an existing account a hyperlink. #26837
* Fix - Typo in composer.json for makepot. #26829
* Fix - Layout issue on the checkout page when switching countries. #26697
* Fix - Missing closing select tag to the product exporter category select. #26680
* Fix - Possible PHP undefined index notice before WooCommerce has been configured. #26658
* Fix - A deferred product sync is now scheduled when a product having a parent (e.g. a variation product) is deleted, not only when it's saved. #26629
* Fix - Stock status of variable products that handle stock at the main product level is now appropriately updated when the product is saved. #26611
* Fix - Discounted prices are no longer underlined in Twenty Twenty. #26609
* Fix - Email link color clash. #26591
* Fix - Remove HTML from error message. #26589
* Fix - Fixed Tooltip flashing. #26558
* Fix - Correctly displays the instructional option as default in the select box for picking a Country / Region on the checkout page. #26554
* Fix - Default option "Select a country..." will now display accurately on Country select box in Cart shipping calculator. #26541
* Fix - Fixed user capability required to view the order count indicator. #26338
* Fix - The filtering widget now works as expected with variable products, displaying those products for which visible variations are available. #26260
* Fix - Added a z-index to the remove button (x) to set the z-order of the element. #26202
* Fix - Don't change the stock status of variations when bulk editing a variable product and leaving the "Stock status" selector as "No change". #26174
* Fix - Remove new WP 5.5 meta box arrows from "Order data" and "Order items" meta boxes. #27173
* Fix - After clicking to update WooCommerce, the user will stay in the same page instead of being redirected to the "Settings" page. #27172
* Fix - "Product type" dropdown missing from Product's data meta box on WP 5.5. #27170
* Fix - Removed the JETPACK_AUTOLOAD_DEV define. #27185
* Fix - Fixed "virtual" and "downlodable" pointers on product walkthrough. #27145
* Fix - Updated tested up to for WordPress 5.5. #27334
* Dev - Update WooCommerce Admin version to v1.4.0. #27378
* Dev - Upgraded to v2.2 of Jetpack Autoloader. #27358
* Dev - Update jest-preset-default version to ^6.2.0. #27090
* Dev - Added a second $existing_meta_keys parameter to the woocommerce_duplicate_product_exclude_meta filter. #27038
* Dev - Remove leftover note for translators in customer-completed-order.php. #26989
* Dev - Allow extend BACS accounts filter with order ID. #26961
* Dev - Add npm run build:packages to npm run build. #26906
* Dev - Add woocommerce_order_note_added action. #26846
* Dev - Add tests for template cache. #26840
* Dev - Add filter to allow disabling nocache headers. #26802
* Dev - Introduce a dependency injection framework for the code in the src directory. #26731
* Dev - Normalized parameters of woocommerce_product_importer_parsed_data filter. #26669
* Dev - Introduced new WC_Product_CSV_Importer::get_formatting_callback() fixing a typo in the method name. #26668
* Dev - Allow set "date_created" while creating orders via CRUD. #26567
* Dev - Allow set a custom as order key using wc_generate_order_key(). #26566
* Dev - Allow set order_key while creating an order via CRUD. #26565
* Dev - Introduced woocommerce_product_cross_sells_products_heading filter. #26545
* Dev - Added the removed_coupon_in_checkout event that is triggered on the Checkout page after a coupon is removed using .woocommerce-remove-coupon button. #26536
* Dev - Remove no longer used styles from TwentyTwenty. #26516
* Dev - Fix error message in wc_get_template() function. #26515
* Dev - Add npm publish script for @woocommerce/e2e-environment. #26432
* Dev - Make WC_Cart::display_prices_including_tax aware of tax display changes. #26400
* Dev - Deprecated WC_Legacy_Cart::tax_display_cart in favor of WC_Cart:: get_tax_price_display_mode(). #26400
* Dev - Add an optional $render_variations argument to in WC_Product_Variable::get_available_variation() in order to allow plugins to avoid performance bottlenecks. #26303
* Dev - Ensure wc_load_cart loads its own dependencies. #26219
* Dev - Clean up deprecated documentation. #27054
* Dev - Update WooCommerce Blocks version to 3.1.0. #27177
* Dev - Added woocommerce_order_item_quantity filter to ReserveStock::reserve_stock_for_order(). #27251
* Dev - Updated docs to make the type in docblock more specific. #27285
* Enhancement - Show notice to update to latest PHP if version is < 7.2. #26775
* Enhancement - Add template cache clearing. #26752
* Enhancement - Add 47 Kenya counties. #26728
* Enhancement - Accessibility: add aria-disabled attribute to "Update cart" button on checkout page. #26726
* Enhancement - Update "Subtotal" translation string in wc-template-functions.php. #26706
* Enhancement - Add a new Features settings section, enabling woocommerce_homescreen_enabled for all new stores. #26625
* Enhancement - Add warning in status report if a base database table is missing. #26455
* Enhancement - Updated stock handling to prevent race conditions when orders come in at the same time. #26395
* Tweak - Allow checkout even if reserved table is not present. #26705
* Tweak - Add note to Products Importer description that TXT files are also supported. #26670
* Tweak - Allow set different notice types with WC_Admin_Notices. #26410
* Tweak - Fix redundant setting of object cache when attribute taxonomies are not being used. #26518
* Fix - Encode HTML entities for product attribute name and values. #26754
* Fix - Fix an issue with attribute value escaping in product CSV exports. #26739
* Fix - Fix comment_type value for reviews created with WordPress 5.5. #26729
* Fix - Close unbalanced

tag in auth “Grant Access” form template file. #26725 * Fix – Remove check for the existing term when parsing category via CSV & instead catch an existing term error when adding a new category to the database. #26720 * Fix – Domain update script now replaces woocommerce-admin domain also in Blocks package. #26690 * Fix – Correct grammar mistake in the help tip of the Connected to WooCommerce.com field of the System Status Report. #26666 * Fix – Allow float value timezone offsets to display the correct float values. #26637 * Fix – Add asterisk to star rating if ‘Star ratings should be required, not optional’ checkbox is enabled. #26596 * Fix – Use calculations similar to cart for orders as well (fixed regression). #26583 * Fix – Fixed data-id of notices in checkout. #26386 * Fix – Fixed password visible toggle in the checkout page. #26292 * Fix – Product description display fix when multiple products shortcodes are present on a page. #26250 * Fix – Using the add-to-cart parameter with a product variant id will now have the variation attributes populated correctly. #26237 * Fix – Better template caching support for multi-server environments. #23971 * Fix – Fix updating the wc_reserve_stock stock_quantity value after making changes to the cart in between checkouts. #26807 * Fix – Put back the remove element for multiselects on selectWoo. #26849 * Dev – Adjusted the WC tested up to check to only apply to major versions. #26685 * Dev – Make shipping calculations more flexible by providing actions. #26542 * Dev – Trigger check_variations with custom values. #26525 * Dev – Add verify_base_db method to check if all base tables are present. #26454 * Dev – Added action before the “Add payment method” save button and a filter to validate manually added fields when adding payment method. #26445 * Dev – `wc_get_shipping_method_count() has a new argument (`$enabled_only`) which allows restricting the non-legacy shipping methods to the enabled ones. #25753 * Dev – Added pre query filters for WP dashboard WooCommerce status widget. #25321 * Dev – Removed type hints from src folder. #26963

* Enhancement - Added Ghanaian regions to the state dropdown. #26273
* Enhancement - Added Mozambique provinces to the state dropdown. #26162
* Enhancement - Added support for the new group descriptions available on WordPress privacy exporters as of WP 5.3. #25575
* Fix - Fixed false positives when checking if uploads directory is public. #26600
* Fix - Introduced a new admin body class for supporting styling issues in WP 5.3+. #26251
* Fix - Removed case conversion of meta keys from CSV imports. #25517
* Fix - Allow schedule coupons via CRUD. #26387
* Fix - Password visibility toggle when password strength check fails. #26132
* Fix - Cross-sell placement when product has no description. #26334
* Fix - Display of the rate limit warning during payment method creation. #26411
* Fix - Made the shipping zone matching query's `zone_id` field more specific. #26308
* Fix - Corrected the display of RTL languages on the WooCommerce.com addons page. #26080
* Fix - Removed the postcode field for Ghana. #26272
* Fix - Made the hiding of state fields more explicit for Germany, Denmark, and Sweden. #25598
* Fix - Ensured that global attribute prefixes are passed to the `woocommerce_attribute_label` filter. #26022
* Dev - Increased WordPress minimum version to 5.2 according to policy. #26550
* Dev - Added the customer as a third argument to the `woocommerce_matched_rates` filter. #26361
* Dev - Introduced `woocommerce_menu_order_count` filter. #26044
* Dev - Introduced `should_send_ajax_request.adding_to_cart `cart event to allow short-circuiting cart addition. #25760
* Dev - Made the jQuery selector for checkout form rows less specific. #25654
* Dev - Changed the `{site_address}` placeholder to `{site_url}` for clarity. #25630
* Dev - Deprecated `.wp-policy-help` and replaced with with the `.privacy-policy-tutorial` and `.wp-suggested-text` classes added in WP 5.1. #26072
* Dev - Updated `automattic/jetpack-autoloader` to 1.7.0. #26559
* Dev - Add a way to fetch basic object data. #26025
* Enhancement - Add support for trash status for products in V2 and V3 API. #184
* Dev - Updated minimum PHP requirement to 7.0 to keep up with WooCommerce Core.
* Dev - Fixed failing unit tests. #105
* Enhancement - Add onboarding payments note #4157 
* Enhancement - Marketing Inbox Note #4030
* Performance - Use Route based code splitting to reduce bundle size #4094
* Performance - trim down inbox note API request. #3977
* Fix - Proper display of elements in wc-admin pages when in a RTL environment. #4051
* Fix - Update UX when knowledge base articles fail to retrieve #4133
* Fix - Updated messaging after last step in OBW. #4148
* Fix - Reset profiler when visiting old OBW URL #4166.
* Fix - Dashboard flash before OBW chunk loads #4259
* Tweak - Enable the default homepage template to be filtered #4072
* Tweak - Create admin note if Jetpack or WooCommerce Services plugin doesn't get installed due to an error during OBW #3888
* Tweak - Update Email Marketing note. #4167
* Tweak - Adjust "demo products" verbiage to "Sample Products" #4184
* Tweak - Don't reschedule imports on failed imports #4263
* Tweak - Remove obsolete inbox messages #4182
* Tweak - Updates to WooCommerce Payments in Setup Checklist #4293
* Dev - Make query selector for admin alerts more specific #4289
* Dev - Guard against null themes in OBW #4244
* Dev - Update wcadmin db version after db callback #4323
* Dev - Only migrate options on version change #4324
* Dev - Use `PAGE_ROOT` constant to reduce redundant strings #4238
* Dev - Decouple Plugins DataStore from onboarding feature #4048
* Dev - Move API out of Onboarding #4093
* Dev - Add Profiler Step View Tracks #4141
* Dev - Add React Testing Library #4221
* Dev - Add List and Link components to Storybook #4219
* Dev - Cast Shipping Total to float #4042
* Dev - Dynamic Currency with Context API #4027
* Dev - Remove Duplicate array entry #4049
* Enhancement - Added notice about public uploads directory. #26207
* Tweak - Disallow directory listing in woocommerce_uploads when "Redirect only" it's the selected download method. #26399
* Fix - Added correct handling of nonces to database update notice dismissal. #26500
* Dev - Updated WooCommerce admin version to 1.1.3 and Action Scheduler to 3.1.6.
* Dev - Add prop `isEnabled` and a function to dynamically enable tracks. #26493

**WooCommerce Admin**
* Tweak - Onboarding: Add Jetpack flow back to onboarding profiler. #4382
* Fix - Respect tracking opt-in before new page load. #4368

**ActionScheduler**
* Fix - Shutdown deprecated notice changed to a warning when as_* functions called without data store initialization. #546
**WooCommerce**
* Enhancement - Update dependency woocommerce/woocommerce-admin to v1.1.0 #26057
* Enhancement - Updated jetpack-autoloader to 1.6 and woocommerce-blocks to 2.5.16. #26099
* Enhancement - Added option to ignore discounts from cart's total amount to enable free shipping. #24776
* Enhancement - Changed show password icon color to a darker grey hue. #25625
* Enhancement - Use new Setup Wizard for all users. #26016
* Security - Fixed unescaped meta data while duplicating products. Reported by Slavco.
* Tweak - Show notice for WP min version to WP 5.2. #26094
* Tweak - Improve the string for untested WooCommerce extensions in the system status page to avoid confusion. #25904
* Tweak - Updated KZT (₸) symbol. #25609
* Tweak - Trim whitespaces and strip slashes from MaxMind License Key. #25466
* Tweak - Updated "Help" tabs documentation. #25826
* Tweak - Update serbian currency symbol to рсд from дин. #25885
* Fix - Password visibility toggle to hide password again from text. #25627
* Fix - Undefined property error when attempting to modify the coupon post meta. #25755
* Fix - Remove some of the individual rounding logic to make sure we round at certain places only. #25800
* Fix - Order totals calculation if the order contains taxable and non-taxable products and percentage coupons. #25092
* Fix - Wording for cancelled order email. #25316
* Fix - Removed guided tour videos link on setup wizard (since current link only redirects to the docs). #25823
* Fix - Add RTL style to the onboarding wizard. #25835
* Fix - Trigger change and set val to qty on the frontend so that it properly updates event handlers. #25903
* Fix - Corrected the way percent coupons apply remainders across the order. #25943
* Fix - Clarified the error messaging for WooCommerce.com package update failures. #26034
* Fix - Enforce per user usage limit check for a coupon on guest users based on email. #26066
* Fix - Remove elements with style=display:none explicitly to address a regression causing broken email html. #26075
* Dev - Added woocommerce_can_restock_refunded_items filter. #25728
* Dev - Added woocommerce_order_get_tax_location filter. #25727
* Dev - Updated stock handling to prevent race conditions when orders come in at the same time. #25708
* Dev - Updated /myaccount/form-login.php to use consistent kebab-case class names for woocommerce-form-row. #25668
* Dev - Add filter woocommerce_product_upsells_products_heading to allow heading modification without having to override the template file. #25628
* Dev - Added woocommerce_order_get_tax_location filter. #25727
* Dev - Added the get_woocommerce_currency_symbols function to allow develops to get an array of all the currency symbol registered with WooCommerce. #25733
* Dev - Changed string typed label_class to array in checkout fields.
* Dev - Added "woocommerce_emogrifier" action before the content of the emails is "emogrified". #25801
* Dev - Add Ability to Filter Event Props. #25851
* Dev - Updated the unit test install script to support paths to MySQL sockets that contain spaces. #25923
* Dev - Made the default test source folders support the system tmp folder. #25923
* Dev - Add cart & checkout block/shortcode info to tracker data. #25932
* Dev - Make WC_Product_Data_Store_CPT::update_product_stock operations atomic. #26039
* Dev - Adds usage data for the of cart & checkout blocks (currently in development in WooCommmerce Blocks plugin) to the WC Tracker snapshot. #26084
* Dev - Implement some additional tracks for coupons, orders, and products. #26085
**WooCommerce**
* Enhancement - Update Action Scheduler to 3.1.4. #25966
* Enhancement - Bump Woocommerce Admin dependency to version 1.0.2. #25961
* Enhancement - Update dependency woocommerce/woocommerce-admin to v1.0.3 #25975
* Fix - Add `usage_count` meta before using it in a query. #25882
* Fix - Corrected argument type validation in plugin installer API. #25858
* Fix - Use standard `admin_url` function instead of absolute path. #25884
* Fix - Reverted the performance optimization made to variation saving. #25950
* Fix - Send dummy params to evaluate_cost method to detect validation errors. #25946
* Fix - Made the package shipping check more permissive. #25916
* Fix - Fix admin notes table does not exist errors when upgrading to 4.0.x. #25891

**WooCommerce Admin**
* Enhancement - Onboarding: business step: add Google Ads extension install.
* Tweak - create database tables on an earlier hook to avoid conflicts with core WooCommerce.
* Fix - Add Report Extension Example: Add default props to ReportFilters.
* Fix - Product report sorting by SKU when some products don't have SKUs.
* Fix - type warning on install timestamp in PHP 7.4.
* Fix - PHP error when WooCommerce core is Network Active on Multisites.
* Fix - missing database table errors on WooCommerce upgrade.
* Fix - undefined const `WC_ADMIN_VERSION_NUMBER` when WP < 5.3
* Fix - Made the admin note loading more resilient to prevent failures when loading notes with invalid content_data. #3926
* Fix - Removed `replace_actionscheduler_store_class` function. #3936
* Fix - Rename Google Shopping image asset. #3931
* Fix - Fix calling protected `has_satisfied_dependencies` on outdated plugin. #3938
* Dev - Add Changelog script.
* Dev - Fix failing tests after WC core merge.
* Dev - Bump WooCommerce tested up to tag.
* Dev - Update prestart script so readme.txt stable tag is updated.

**Action Scheduler**
* Fix - Re-create tables if needed on Scheduled Actions screen load. #492
* Fix - Add null action check on Scheduled Actions screen list rows. #493
* Fix - Fix context on ignored action log message. #481
* Fix - Restore scheduled action row and bulk action processing on WooCommerce Status screen. #487
* Fix - Include logs table re-create missed in #492. #495
* Fix - Ensure valid table name in save action. #498
* Enhancement - Included information about packages in the System Status Report. #25584
* Enhancement - New WooCommerce Admin. #25011
* Enhancement - Update dependency woocommerce/woocommerce-blocks to v2.5.12 #25587
* Enhancement - Updated Action Scheduler to 3.0.1. #25566
* Enhancement - Update dependency woocommerce/woocommerce-admin to v0.25.1. #25620
* Enhancement - Update dependency woocommerce/woocommerce-blocks to v2.5.13. #25696
* Enhancement - Added the WC Admin enabled db update notice. #25736
* Enhancement - Update Action Scheduler to version 3.1.1. #25745
* Enhancement - Update dependency woocommerce/woocommerce-blocks to v2.5.14. #25807
* Enhancement - Update dependency woocommerce/woocommerce-admin to v1.0. #25822
* Enhancement - Update dependency woocommerce/action-scheduler to v3.1.2. #25859
* Performance - Improved the client-side preparation for variation saving. #25382
* Tweak - Enhance order details and payment summary. #25504
* Tweak - Increase new onboarding group test to 50%. #25501
* Tweak - Increased range and precision for `min_price` and `max_price` in the product meta lookup table. #25253
* Tweak - Move action scheduler to external via composer. #25404
* Tweak - Only update the customer IP address when order gets created from admin. #25137
* Tweak - Remove WooCommerce Admin install alert. #25502
* Tweak - Removed WC Admin from the Setup Wizard if it's already active. #25562
* Tweak - Set email header table width to 100% for full width. #25294
* Tweak - Simplified MaxMind integration title. #25522
* Tweak - Update 'Country' to 'Country / Region' label. #25530
* Tweak - WooCommerce.com plugins auto-install and update improvement. #25532
* Fix - Add missing closing tag. #25319
* Fix - Added validation to the cost field for flat rate shipping. #24919
* Fix - Address in shipping calculator malformed for Canada. #25149
* Fix - Adjusted package shipping rates to only be visible when a full address is entered. #25128
* Fix - Check for WooCommerce Admin feature plugin class before adding install notice. #25395
* Fix - Corrected the performance issues caused by the Cash-On-Delivery plugin's initialization process. #25512
* Fix - Duplicate webhook deliveries. #25183
* Fix - Fix fatal error that would occur when calling the WC_Payment_Gateways::set_current_gateway() function and there is no WC session. #25322
* Fix - Fixed adding multiple items to cart from any product listing page. #24818
* Fix - Fixed get_discount function return type. #25567
* Fix - Fixed possible multiple is_vat_exempt order meta in order creation. #25426
* Fix - Fixed wrong context help for translators. #25496
* Fix - Make `WC_Shipping::is` package shippable less strict. #25386
* Fix - Prevent undefined `wp_delete_user()` error while removing inactive accounts. #25489
* Fix - Removed constants and autoloader from the uninstall script. #25589
* Fix - Removed the lowercase conversion for product search terms that caused incorrect results to case sensitive searches. #25314
* Fix - Restored the default behavior of "Shipping destination" option. #25571
* Fix - Set image CSS on emails to be `max-width: 100%` so that they don't break the email template. #24764
* Fix - Setup wizard shipping setup verification logic correction. #25540
* Fix - Fixed typo in label. #25645
* Fix - Added the missing "bestRating" and "worstRating" params to structured schema data. #25667
* Fix - Replaced deprecated Jetpack::is_staging_site call. #25670
* Fix - Avoid `Automattic\Jetpack\Constants` in main woocommerce class. #25697
* Fix - Change the namespace of the WC Admin Package class and update WC Admin package. #25701
* Fix - Unmark completed AS migration during the update to make sure AS migration happens. #25707
* Fix - configure Jetpack plugin before trying to connect/register. #25742
* Fix - Check configure exists before calling to support older JP versions. #25747
* Fix - Prevent edited attribute notice being hidden by new dashboard. #25757
* Fix - Corrected the cache invalidation behavior of order item CRUD actions. #25734
* Fix - Don't show duplicated update notifications on Woo Screens. #25828
* Fix - Escape MaxMind database URL. #25682
* Fix - System status report should correctly identify inactive package. #25830
* Dev - Added support for placeholder attribute in quantity inputs. #25418
* Dev - Added `tax_status` and `tax_class` columns to the product meta data lookup table. #25428
* Dev - Introduced `woocommerce_top_rated_widget_args` filter. #25320
* Dev - Introduced `woocommerce_admin_process_variation_object` hook. #24929
* Dev - Added actions before and after grouped product list to allow adding custom rows. #25093
* Dev - Added filter to tweak whether a product has enough stock while attempting to pay for an order. #25230
* Dev - Added the `automattic/jetpack-constants` package and replace PHP constant definition checks with it. #25516
* Dev - Added a `triggerHandler` called `checkout_place_order_success` on a successful order during the checkout process. #25289
* Dev - Allow filtering of default meta value inside `WC_Data::get_meta` even if meta key not found. #24066
* Dev - Includes Emogrifier composer package instead of including into `includes/libraries`. #25525
* Dev - Introduce `WC_Countries::get_vat_countries` for returning a list of countries that uses VAT and refactor `WC_Countries::get_european_union_countries` with backward compatibility and deprecation to remove the VAT functionality from there. Brexit, remove GB from `WC_Countries::get_european_union_countries`. #24943
* Dev - Introduced `woocommerce_download_product_filepath` filter. #25485
* Dev - Introduced `woocommerce_email_content_type` filter. #25405
* Dev - Updated `woocommerce_email_from_name` and `woocommerce_email_from_address` filter arguments to include `wp_email()` default data. #25405
* Dev - Introduced `woocommerce_shortcode_products_query_results` filter. #25573
* Dev - Removed `hash_equals()` polyfill as it was no longer needed. #25474
* Dev - Removed unused `.order-actions` CSS. #25581
* Dev - Applies woocommerce_maxmind_geolocation_database_path in MaxMind database migration. #25681
* Dev - Support both .data() and .dataset for formdata in add to cart requests. #25726
* Fix - Replaced deprecated Jetpack::is_staging_site call. #25670
* Fix - Corrected the cache invalidation behavior of order item CRUD actions. #25734
* Fix - Configure Jetpack plugin before trying to connect/register. #25742
* Fix - Check configure exists before calling to support older JP versions. #25747
* Fix - Better handling of coupon code when rendering.
* Dev - Updated WooCommerce blocks to 2.5.14 (See changelog at https://github.com/woocommerce/woocommerce-gutenberg-products-block/releases).
* Security - Show a notice when a logged-in customer pays for a guest order.
* Security - Disallow links in coupon error messages.
* Fix - Restored the default behavior of the "Shipping destination" option. #25571
  • * Tweak - Trim whitespaces and strip slashes from MaxMind License Key.
    * Dev - Prevent empty notices to get displayed on frontend.
    * Fix - Show "-" instead of "0" when tax isn't applicable to a product.
    * Fix - Fixed fatal error on the thank you page if order is not specified.
    * REST API - Fixed - Product and variations schema to allow remove sale prices, dimensions and weight.
  • * Enhancement - Added a "Show" button next to the password field on the login fields. #24915
    * Enhancement - New WooCommerce Onboarding experience (shows to only 10% of new users). #24991
    * Enhancement - Introduced Payment Gateway API to support "pay button". #25000
    * Enhancement - Includes WooCommerce Blocks 2.5.3, introducing an "All Products" block, a new block listing products using client side rendering (requires WordPress 5.3), and more. #25181
    * Tweak - Updated PayPal standard "Thank you" page message to comply with PayPal Guidelines. #24756
    * Tweak - Account for non-EU countries that collect VAT and rename tax to VAT on the frontend. #24999
    * Tweak - Cache checkout fragments and update DOM on change only. #24227
    * Tweak - Eliminate extra update order AJAX request on checkout page load. #24271
    * Tweak - Prevent billing address from being updated on shipping update. #24374
    * Tweak - Added a tooltip in the "Coupon expity date" field. #24749
    * Tweak - Make phone numbers clickable in emails. #24786
    * Tweak - Prevent PHP warnings in tracker if order doesn't have a created date yet. #24846
    * Tweak - Capitalize "T" in "Move to Trash" phrase on order page in wp-admin to be consistent with product and coupon pages. #24867
    * Tweak - Changed `wp_cache` invalidation from using increment to using microtime. #24961
    * Tweak - Made the usage tracking link on the setup wizard more transparent. #25026
    * Tweak - Fixed menu highlight of My Account page when browsing "Add payment method" page. #25041
    * Tweak - Prevent creating products before registering related post types and taxonomies. #25049
    * Tweak - Include processing orders in tracker data when opted in. #25071
    * Tweak - Centralize check for default themes to fix Storefront appearance in the Setup Wizard. #25216
    * Tweak - Adds a WordPress version check before recommending the WooCommerce Admin plugin during setup. #25260
    * Fix - Added license key support recent changes from MaxMind GeoLite2. #25378
    * Fix - Honor tax rounding preference in edit item and refund flows. #24208
    * Fix - Prevent incorrect number of decimal points in prices. #24281
    * Fix - Fixed initial support for Gutenberg's Experimental Legacy Widget block. #24292
    * Fix - Fix overriding of query when using orderby on archives with a static homepage. #24683
    * Fix - Use of `wp_unslash()` function when escaping admin settings values. #24793
    * Fix - Do not set the tracking cookie when doing ajax requests. #24798
    * Fix - Display button to delete images from product galleries in the admin when using a mobile device. #24840
    * Fix - Fixed order note's date format. #24843
    * Fix - Refactored `WC_Order_Factory::get_order()` to remove function deprecated in PHP 7.0. #24852
    * Fix - Fixed product stock status changes on Bulk Edit save when "Enable stock management" is disabled. #24876
    * Fix - Fixed default country code fallback in wc_get_customer_default_location(). #24884
    * Fix - Fixed misleading message for Shipping options in cart. #24914
    * Fix - Customizer not loading when viewing from WordPress.com. #24935
    * Fix - Prevent notice when a variable product has no images. #24986
    * Fix - Adjusted the slug generation for duplicated variable products to prevent performance degradation when using templates. #25064
    * Fix - Added appropriate minification to photoswipe.css. #25074
    * Fix - Corrected the sorting behavior for the "products" shortcode when manually sorting products. #25084
    * Fix - Fixed invalid backlinks for in-app purchases. #25098
    * Fix - Corrected the media element player initialization for product variation descriptions. #25103
    * Fix - Enable WooCommerce.com Site API on installations not using permalink. #25131
    * Fix - WooCommerce.com Site API now returns success if the plugin was previously installed. #25140
    * Fix - WooCommerce.com Site API checks to `move_product` case to make sure result array contains `folder_exists` item and doesn't return a warning. #25160
    * Fix - Ensure that categories containing only private products are selectable in the product exporter. #25132
    * Fix - Prevent variable product parents from being added to orders. #25162
    * Fix - Use sorting settings as a default to product shortcodes. #25180
    * Fix - Applied setup wizard CSS fixes to the respective WP versions. #25197
    * Fix - Fixed "account erasure request" URL in WordPress 5.3. #25208
    * Fix - Ensure all cache get removed on webhook deletion. #25164
    * Fix - Adjusted the checkout email validation regex to be more accurate. #25251
    * Template - Introduced `woocommerce_product_related_products_heading` filter. #25059
    * Template - Introduced `woocommerce_before_lost_password_confirmation_message` and `woocommerce_after_lost_password_confirmation_message` hooks. #25096
    * REST API - Fixed `date_created` and `date_created_gmt` for customers v2. #25181
    * REST API - Fixed Restored "Total post count" section on System Status endpoint v2 and v3. #25181
    * REST API - Filter empty objects from results before loop. #25181
    * Dev - Introduce new PHP 7.0 minimum requirement.
    * Dev - Introduce new WordPress 5.0 minimum requirement.
    * Dev - Check for max discount to be "-ve" to prevent overwriting refunded fee amount. #24341
    * Dev - Add unload event to the checkout page to prevent reloading during checkout after placing an order. #24609
    * Dev - Only toggle form field description if element exists. #24752
    * Dev - Introduced `woocommerce_{$export_type}_export_delimiter` filter to change separator string while exporting CSV files. #24759
    * Dev - Introduced `woocommerce_after_order_refund_item_name` hook. #24760
    * Dev - Introduced `woocommerce_kses_notice_allowed_tags` filter. #24849
    * Dev - Introduced `woocommerce_shipping_not_enabled_on_cart_html` filter. #24914
    * Dev - Introduced `woocommerce_show_invalid_variations_notice` filter. #24934
    * Dev - Introduced `woocommerce_upsells_order` filter. #25017
    * Dev - Introduced `woocommerce_before_settings_{current_tab}` and `woocommerce_after_settings_{current_tab}` hooks. #25028
    * Dev - Included third parameter `$order` to `woocommerce_order_get_formatted_billing_address` and `woocommerce_order_get_formatted_shipping_address` filters. #24870
    * Dev - Pass the `$clear_persistent_cart` variable to the `woocommerce_before_cart_emptied` and `woocommerce_cart_emptied actions`. #24930
    * Dev - Made variables in `assets/css/_variables.scss` default. #24822
    * Dev - Refactor to use the same rounding logic in orders and cart. #24828
    * Dev - Add order note immediately after status change before the `woocommerce_order_status_changed action. #24879
    * Dev - Added support for custom attributes in `wc_placeholder_img()`. #24937
    * Dev - Added initial support for inline notices on checkout. #25001
    * Dev - Introduced wc_get_product_object() helper. #25031
    * Dev - Pass the correct `$this->updated_props` variable to the `woocommerce_coupon_object_updated_props` action's second paramater. #25077
    * Dev - Remove a few calls to `func_get_args()` and `call_user_func_array()` with the spread operator for better code legibility and performance gains. #25101
    * Dev - New `woocommerce_valid_order_statuses_for_payment` hook that triggers when an order is paid. Use this new hook instead of `woocommerce_order_status_changed` or woocommerce_order_status_{old_status}}_to_{new_status}` to trigger code for payment completion. #25158
    * Dev - Ability to exclude certain product types from product search calls. #25162
    * Dev - Raise exception when `WC_Product_Variation` is instantiated with an ID that belongs to an object that is not a variation. #25178
    * Localization - Add subdivisions of Laos. #24765
    * Localization - Fixed translatable string in WooCommerce's libraries. #24892 #24894
    * Localization - Fixed translatable string comments for translators. #24928
    * Localization - Add postcode validation for Slovenia. #25174
  • Tweak – Include 5 latest reviews to Product’s schema. – #24278
  • Fix – Improve select2 style and admin screen button alignments in WP 5.3 #25125
  • Fix – Fix order action button centering for WP 5.3. #25119
  • Fix – Improved WooCommerce and Twenty twenty styling. #25085
* Enhancement - Show error message in "My Account - view order" if order does not exist. #24435
* Enhancement - Add support to allow connect and install for in-app purchase flow. #24451
* Enhancement - Declared support to Unicode CLDR. #24564
* Enhancement - Declared support for PHP 7.4 in CI by removing PHP 7.4 from list of allowed failures. #24668
* Enhancement - Update the recommended PHP version to 7.0 and the recommended WP version to 5.0. #24730
* Enhancement - Change On Boarding Wizard to opt out of usage tracking by default. #24680
* Enhancement - Add `Available on backorder` message for products available on backorder. #24559
* Tweak - Hide Vietnam's state field. #24158
* Tweak - Better wording when no downloads are available on My Account > Downloads. #24172
* Tweak - Only consider orders created via checkout to hold stock. #24159
* Tweak - Stop to load order data twice in "View order" screen on "My Account" page. #24437
* Tweak - Prevent PHP warnings in tracker if order doesn't have a created date yet. #24441
* Tweak - Use `wc_get_checkout_url()` to get checkout URL. #24544
* Tweak - Maintain value of select fields in credit card form. #24720
* Tweak - Prevent filter per category while exporting product variations. #24517
* Tweak - Better wording for subtotal of items in cart and review order. #24440
* Tweak - Prevent new lines in product quantity in checkout details. #24311
* Tweak - Add a tooltip in the "Coupon expity date" field. #24749
* Tweak - CSS styling changes for WP 5.3. #24832
* Template - Moved HTML for displaying product price filter widget to a new template `product price filter widget`. #23384
* Accessibility - Make $subtext color darker. #24739
* Dev - Consistent register/login submit button css class names. Preserve old class names as well for backwards compatibility. #23701
* Dev - Added woocommerce_disable_password_change_notification filter, set to false by default. #24154
* Dev - Add filter `woocommerce_cart_item_removed_message` and `woocommerce_cart_product_cannot_be_purchased_message` to filter notice content when an item is removed from cart, or when a product cannot be purchased. #24176
* Dev - Prevent fatal error if trying to run `wc_load_cart()` before `before_woocommerce_init`. #24198
* Dev - Add woocommerce_get_zone_criteria filter hook to add custom criteria for matching zone ID. #24199
* Dev - Fire actions `woocommerce_before_delete_product_variation`, `woocommerce_delete_product_variation` and `woocommerce_trash_product_variation` appropriately when deleting or trashing product variations. #24239
* Dev - In filter `woocommerce_update_product_stock_query` use `$new_stock` instead of `$stock_quantity`. #24229
* Dev - Introduced woocommerce_prevent_adjust_line_item_product_stock filter. #24279
* Dev - Introduced `woocommerce_logout_default_redirect_url` filter to allow custom default URL. #24282
* Dev - Added woocommerce_sort_fees_callback filter. #24280
* Dev - Remove deprecated i18n/states directory. #24364
* Dev - Add filter `woocommerce_shipping_show_shipping_calculator` for showing shipping calculator. #24375
* Dev - Corrected UG states location. #24388
* Dev - Remove deprecations notices with PHP 7.4 by changing parameter order for `implode`. #24396
* Dev - Add ``$this` param to email filter for additional_content added in 3.7. #24399
* Dev - Add `woocommerce_product_import_process_item_data` filter to allow modifying a row before importing. #24412
* Dev - Fixed warnings when error_get_last() returns null. #24442
* Dev - Use brackets instead of braces to avoid deprecation notice in PHP 7.4. #24460
* Dev - Implement Puppeteer's architecture for running E2E tests locally. #24479
* Dev - Remove call to get_magic_quotes_runtime() as it is deprecated as of PHP 7.4. #24485
* Dev - Return value of `$mailer->send()` in `wc_mail` function. #24505
* Dev - Remove Selenium e2e tests & add Puppeteer new product e2e test. #24513
* Dev - Add a filter `woocommerce_ajax_add_order_item_validation` to allow validations in `add_order_item` function. #24518
* Dev - Use `wc_get_cart_url` instead of `wc_get_page_permalink( 'cart' )` because former has a filter `woocommerce_get_cart_url` to allow customization. #24530
* Dev - New `woocommerce_product_after_tabs` action hook added. #24694
* Dev - Enable append hashes on custom events (like ajax requests) #24665 
* Dev - Introduced `woocommerce_order_get_formatted_billing_address` and `woocommerce_order_get_formatted_shipping_address` filters. #24677
* Dev - WC_Abstract_Order::recalculate_coupons() is public now. #24740
* Dev - Added 'applied_coupon' trigger to checkout.js. #24406
* Dev - Introduced woocommerce_output_cart_shortcode_content filter. #24738
* Dev - Add WPML compatibility to the geolocation URL. #24722
* Dev - Validate server requirements in WCCCOM Site Installer endpoints. #24690
* Dev - Introduced woocommerce_payment_token_class filter. #24542
* Dev - Add support for post type count to system status report. #24536
* Dev - Check for max discount to be -ve to prevent overwriting refunded fee amount. #24341
* Dev: Add filter woocommerce_european_union_countries to the method WC_Countries::get_european_union_countries(). #24741
* Dev - Allow WC_Product_Query sort products by include order. #24294
* Dev - Removed duplicated include of WC_Admin_Importers. #24751
* Dev - Refactor minimum requirement notice to use constant for easier changes in the future. #24830
* Fix - Clean products transients when term is removed. #23991
* Fix - Only add the image node to structured data if product has image. #24191
* Fix - Product attribute terms endpoint in legacy REST API v3 by converting `attribute_id` to int. #24203
* Fix - Prevent duplicate processing/stock reduction when IPN or PDT notifications are enabled by checking if order is not already in `processing` or `completed` status. #24249
* Fix - Position of ID section in mobile rows actions when displaying the list of products in the admin. #24277
* Fix - Endpoints URLs to follow slashes preferences from WordPress permalinks. #24283
* Fix - Ensure that postcode validation doesn't return any whitespace on beginning and end of a postcode. #24284
* Fix - Shipping classes sort under products alphabetically. #24291
* Fix - Shipping rates layout in admin settings. #24327
* Fix - Retain the focus on the select box when product variation is changed. #24339
* Fix - Prevent PHP notice in WC_Order_Item_Data_Store::get_order_item_type() when there is no entry in the database for the order item ID passed. #24353
* Fix - Add translation in class-wc-shipping.php for matching zone message. #24366
* Fix - Previewing email template. #24380
* Fix - Check if order exist before generate hash for downloads. #24384
* Fix - Ensure WC_Product_Data_Store_CPT::is_existing_sku() return boolean. #24385
* Fix - `function_exists` check for wc_hex_is_light(). #24391
* Fix - Removed Emoji from default additional email content due problem on some database that doesn't allow Emojis. #24450
* Fix - Fixed escaping on an attribute in `class-wc-admin-menus.php`. #24466
* Fix - Add translation for image alt attribute text in multiple places. #24467, #24468, #24469
* Fix - Uneven padding in the input field with class "location-input" in on boarding wizard. #24476
* Fix - Duplicate id in pages settings. #24478
* Fix - Use `esc_attr_e` instead of `esc_html_e` for escaping an attribute in multiple places. #24481, #24520, #24521, #24522, #24523, #24524
* Fix - Use `esc_attr__` instead of `esc_html__` in escaping attributes string. #24525, #24529
* Fix - Typo fix in payment captured error message. #24501
* Fix - Documentation URL in failed order email content. #24535
* Fix - "Add to cart" links in feed. #24545
* Fix - Escaping in Storefront banner. #24546
* Fix - Use `wp_kses_post` to allow certain html tags in extensions page. #24589
* Fix - Escape `$prefix` in item download links. #24601
* Fix - Use `esc_attr` instead of `esc_html` in multiple places for proper escaping. #24613, #24614
* Fix - Use `esc_html` instead of `esc_attr` in multiple places for proper escaping. #24616
* Fix - Use `esc_html_e` instead of `_e` in multiple places for proper escaping. #24615, #24618, #24630
* Fix - Use `esc_html__` instead of `esc_html` for proper escaping and some typo fixes. #24639
* Fix - Add no-store and remove max-age header (no longer needed). #24652
* Fix - Use correct meta value for `downloadable` column in product lookup table regenerate function. #24681
* Fix - Admin sub-menus becoming unaligned when scrolling down in the orders page when there are no orders. #24688
* Fix - OWB country and sell in person alignment. #24700
* Fix - Domain replacement script now replaces both double and single quoted `woo-gutenberg-products-block` with `woocommerce` in both PHP and JavaScript files. #24696
* Fix - Convert `current_user_id` to string in some places to prevent unnecessary session database updates. #24016
* Fix - Fixed description of failed order emails. #24737
* Fix - Fixed Photoswipe styles. #24296
* Fix - Also consider refunded item when updating order and adjusting stocks. #24745
* Fix - Handle 0 attribute value for variations correctly. #24750
* Fix - Fixed spaces in form fields of External Products. #24295
* Fix - Removed links to downloadable products from refund emails. #24952
* Localization - Add Zambia's Provinces to the list of states. #24307
* Localization - Adaptation of the order of last name and first name and addresses in Japan. #24336
* Localization - Fixed Namibian dollar symbol. #24438
* Localization - Change localization tag `action-scheduler` to `woocommerce`. #24474
* Localization - Fixed missing US Minor Outlying Islands states. #24826
* Security - Add an exit after the redirect when checking author archive capabilities for customers.
* Security - Ensure 404 pages with single product urls cannot be exploited using Open Redirect.
* Security - Add an exit after the redirect when checking author archive capabilities for customers.
* Security - Ensure 404 pages with single product urls cannot be exploited using Open Redirect.
* Enhancement - Added table ENGINE to system status report for debugging purposes. #23101
* Enhancement - Format empty cart message as information notice. #23152
* Enhancement - Add taxonomy-specific classes to active filters widget. #23122
* Enhancement - Allow emails `Thanks` wording to be modified via the email settings. #22927
* Enhancement - Move tax classes from WordPress Options to a new `wc_tax_rate_classes` table. #23093
* Enhancement - Make WooCommerce shop roles translatable. #23150
* Enhancement - Prevent the Cart, Checkout and My Account pages from being set to the same pages. #23479
* Enhancement - New coupon code generate button on the coupon page. #24069
* Enhancement - Add `tag_operator` paramater to the `[products]` shortcode for use with the `tag` paramater ie. `[products tag='tag1,tag2' tag_operator='AND']`. #24111
* Tweak - When cleaning up variations due to product type change, force delete them instead of trashing. #23478
* Tweak - Change wording on the link to change the address so reflect if an address is already present or not. #23532
* Tweak - If variations are missing prices, show a notice in the product data panel. #23133
* Tweak - Use `determine_locale()` to properly load custom translation files. #23785
* Tweak - OBW: Switch shipping labels and shipping zones placement. #23781
* Tweak - Show the quantity refunded on customer facing order screens. #23038
* Tweak - CSV product import now allows true/false values for the published field, as well as the original 0 (private), -1 (draft), 1 (publish) values. #23207
* Tweak - Update product attribute sorting tooltip to clarify usage. #23222
* Tweak - Store tax rate percentage in the tax line items on orders. #23268
* Tweak - Remove the left and right margin from the logo in emails. #23360
* Tweak - Use the high res version of the WP spinner in the coupon Block UI. #23364
* Tweak - Improve user registration validation messages. #23468
* Tweak - Auto generate a new username when a username is blacklisted by WordPress. #23672
* Tweak - Guest cart sessions now gets deleted when a user logs in, preventing duplicate cart sessions. #23687
* Tweak - Include the store's base postcode and city when calculating order taxes. #23695
* Tweak - Update the generate username setting description label to reflect how the username is actually generated. #23911
* Tweak - OBW: Adjust plugin highlight container sizes to avoid overlap. #23997
* Tweak - Round tax amounts late when the round at subtotal level setting is enabled to reduce rounding errors. #24024
* Tweak - OBW: Now includes WooCommerce Admin as a recommended plugin. #24058 
* Template - Review and update all template files escaping. #23460
* Template - Remove mention of shipping section from the checkout/form-login.php template as shipping is not always a requirement for an order. #23941
* Template - Add new filter `woocommerce_before_thankyou` to the checkout/thankyou.php template. #23538
* Template - Add new `woocommerce_widget_shopping_cart_total` hook to replace hardcoded subtotal in cart/mini-cart.php template. #24145
* Template - Add new `woocommerce_widget_shopping_cart_after_buttons` hook in cart/mini-cart.php template. #24145
* Template - Add new `woocommerce_before_cart_collaterals` hook in cart/cart.php template. #24145
* Template - Correct the plural forms usage in loop/result-count.php template. #24005
* Dev - Introduce new PHP 5.6 minimum requirement. #23924
* Dev - Introduce new WordPress 4.9 minimum requirement. #24156
* Dev - Move the settings save functionality from the `settings_page_init` function to the `wp_loaded` action so it is not saved after the settings page renders. #23091
* Dev - Add quantity input action hooks `woocommerce_before_add_to_cart_quantity` and `woocommerce_after_add_to_cart_quantity`. #23166
* Dev - Add `$this` parameter to email class filters. #23250
* Dev - Add new `WC_Abstract_Order::get_coupons()` method for returning all coupon line item objects on an order. #23663
* Dev - Added new action `woocommerce_product_read` to `WC_Product_Data_Store_CPT::read()`. #23181
* Dev - Add new filter `woocommerce_admin_order_buyer_name` to the `WC_Admin_List_Table_Orders::render_order_number_column()` method to change the buyer name in orders list screen. #23741
* Dev - Add new actions to `WC_Helper` class for when WooCommerce.com Product Subscription statuses change `woocommerce_helper_subscription_activate_success`, `woocommerce_helper_subscription_activate_error`, `woocommerce_helper_subscription_deactivate_success`, and `woocommerce_helper_subscription_deactivate_error`. #23041
* Dev - Extend usage and event tracking (if opted in) to system status, admin order and admin coupon pages. #23190 #23189 #23883
* Dev - Add `woocommerce_after_X_object_save` actions, and passed objects to `woocommerce_new_x` and `woocommerce_update_x` actions. #23338
* Dev - Update customer order and lifetime spend totals in `wc_update_new_customer_past_orders()` to trigger `customer.updated` webhooks for paid orders. #23402
* Dev - Preserve the State field's custom css classes when selecting an option from the Country dropdown. #23433
* Dev - Add new `woocommerce_product_related_posts_shuffle` filter in `wc_get_related_products()` to enable/disable related product shuffling, defaults to true. #23562
* Dev - Deprecate the `WC_Abstract_Order::get_used_coupons()` method and replace it with a new method `WC_Abstract_Order::get_coupon_codes()`. #23689
* Dev - Add new `woocommerce_prices_include_tax` filter in the `wc_prices_include_tax()` function. #23697
* Dev - Add new `woocommerce_admin_after_product_gallery_item` filter in the `WC_Meta_Box_Product_Images::output()` method for adding additional markup after product gallery items. #23743
* Dev - Remove unused images `assets/images/klarna-white.png` and `assets/images/square-white.png`. #23748
* Dev - Move Free Shipping method JavaScript code from outputting on all shipping setting pages to just the Free Shipping page using the `admin_footer` hook. #23776
* Dev - Prevent PHP fatal error while throwing exceptions in `woocommerce_rest_insert_{post_type}_object` hooks. #23793
* Dev - Add new `woocommerce_enforce_password_strength_meter_on_checkout` filter in the `WC_Frontend_Scripts::get_script_data()` method to allow enforcing the password strength meter on checkout. #23811
* Dev - Add new `woocommerce_search_products_post_statuses` filter in the `WC_Product_Data_Store_CPT::search_products()` method for controlling what post statuses to include in product searches. #23838
* Dev - Allow filtering `woocommerce_order_formatted_shipping_address` even when no shipping address is defined. #23859
* Dev - Change the query in the `WC_Product_Data_Store::find_matching_product_variation()` method to always respect the ordering of variations. #23881
* Dev - Move all feature plugin features out from the WooCommerce codebase and utilize composer and an autoloader for including it in WooCommerce core, affects WC REST API and WC Blocks. #23957
* Dev - Allow displaying multiple error messages through the registration validation. #23968
* Dev - Add new `woocommerce_cart_item_removed_notice_type`, `woocommerce_cart_updated_notice_type` and `woocommerce_add_to_cart_notice_type` filters for changing the default notice types for cart notices. #24021
* Dev - Add namespaced support for Jetpack 7.5 tracking library. #24140
* Dev - Add support for an improved WooCommerce.com Marketplace browse and purchase experience (in progress). #24075 #24123
* Dev - Added `$order` and `$product` as parameters to the `woocommerce_ajax_order_item` filter in `WC_Ajax::add_order_item()`. #24108
* Dev - Add new `woocommerce_product_import_image_separator` filter in `WC_Product_CSV_Importer::parse_images_field()` for adjusting the product images seperator. #24120
* Dev - Add new `woocommerce_widget_shopping_cart_subtotal()` template function that hooks into the `woocommerce_widget_shopping_cart_total` action to output the mini cart subtotal. #24145
* Dev - Deprecate the `woocommerce_before_cart_item_quantity_zero` action from `WC_Cart::restore_cart_item()` in favor of existing `woocommerce_cart_item_removed` action. #23112
* Dev - Deprecate WC_Tax::maybe_remove_tax_class_rates which hooked into the WP Options update hook for taxes in favor of new function WC_Tax::delete_tax_class_by which works on the new tax classes table. #24213
* Fix - Use version_compare for determining the maximum WooCommerce database version number. #23092
* Fix - Missing space and closing `` tag in WooCommerce.com disconnect message. #24073
* Fix - CSV Importer - Skip rows during update if a SKU column exists, but the value is empty. #23262
* Fix - Allow matching `Any` attributes when calling `WC_Product_Data_Store::find_matching_product_variation()`. #23067
* Fix - Switch coupon amount validation based on decimal seperator setting. #23137
* Fix - Show the correct results for shortcodes on static homepages when sorting. #23159
* Fix - Queue AJAX add to cart events to avoid overwriting session data. #23293
* Fix - Wrong subtotals when changing tax classes via the `woocommerce_product_get_tax_class` filter. #23344
* Fix - Fatal error on plain text order emails where products were deleted. #23754
* Fix - Do not pass the `no_shipping` argument to PayPal when the order contains shippable items. #23773
* Fix - Product review form does respects the `require_name_email` WordPress core option. #23786
* Fix - Do not cache expired sessions, negative expiry causes errors in some caching modules. #23863
* Fix - WC_Log_Handler_DB logs now uses the same timestamp format as text logs, Y-m-d H:i:s. #23863
* Fix - Display line breaks for customer notes in emails, and order details. #23969
* Fix - Correct plural forms usage in `WC_Admin_Report` class. #24020
* Fix - System status database info section throwing a PHP notice on some DB environments. #24023
* Fix - On the system status database info section display a message informing users that WooCommerce was unable to get database information instead of an error, when a database sharding plugin is active. #24034
* Fix - Usage and event tracking (if opted in) was not working correctly in the OBW. #24056
* Fix - Fatal error on downloads report when some download files were missing. #24118
* Fix - Prevents the taxes columns from being removed when the order is no longer editable in admin. #23884
* Performance - Improve the speed of the admin dashboard by only updating transients once per class. #23011
* Performance - Reduce number of queries needed to populate variations data by priming post caches. #23272
* Performance - Persistant cart improvements, only update the persistent cart if the cart items actually change. #23112
* Performance - Exclude `action_log` comment types from `wp_count_comments`. #24071
* Localization - Added validation for Italian postcodes. #23269
* Localization - Remove unused tax locale defaults since we now promote auto tax services instead. #23431
* Localization - Define correct address format for Uganda. #23178
* Localization - Hide the postcode and update the state label to "Province" for Mozambique. #23764
* Localization - OBW: Make postal code optional based on locale data. #23915
* Localization - Add new currency for São Tomé, Príncipe dobra and Mauritanian ouguiya. #23950
* Localization - Change Canada poscode label to `Postal code`. #23740

* Security – Introduce file type check for tax rate importer.
* Security – Added nonce check to CSV importer actions.
* Enhancement – WordPress & PHP upgrade nudges when running older versions. #23975
* Fix – “Filter by price” widget excludes category when combined with a product attribute. #23720
* Fix – Add query parameter (GET) forwarding when processing batch API requests. #23769
* Fix – Fixed query of top rated products shortcode. #23771
* Fix – Typo in customers endpoint schema. #23812
* Fix – Update Emogrifier library to fix problem with nth-child pseudo selector. #23824
* Fix – Avoid outputting a rating of zero when product has comments without a review rating. #23828
* Fix – Do not throw a PHP notice if including the rest API handlers manually. #23840
* Fix – WooCommerce Tracker review count. #23849
* Fix – Coupon usage limit issue when applying coupon to order in the backend. #23851
* Fix – Fatal error when trying to apply virtual coupons to guest orders. #23877
* Fix – AJAX update order review doesn’t reload the page. #23891
* Fix – Variation matching returns incorrect values when using a large number of variations combined with 0 values attributes. #23909
* Fix – Password mismatch when user registered with password containing a double quote. #23926
* Fix – Minor Shipping Zone UI issue due to conflict with some browser extensions. #23789
* Fix – Make Products->Categories active when clicked on “Make Default” link under any product category. #23936
* Fix – Update URL describing how to increase PHP memory limit on system status page. #23919
* Fix – Sets the position of the tracking image to fixed, so it doesn’t affect page layout. #23953
* Fix – Button to manually update database in WooCommerce > Status > Tools. #23966
* Fix – Tracks blog ID retrieval from Jetpack options. #24028
* Fix – Fixed support to parentheses in phone numbers validation. #23967
* Tweak – Improve tooltip text describing the product sale dates in the product admin page. #23935
* Tweak – Made NL postcode validation more flexible, allowing lowercase and missing space. #23837
* Localization – Display city field as optional for Singapore addresses. #23878
* Dev – Add filters to file paths passed to the different xsendfile like backends. #23814

Fix – State not required for Serbia. #23430
Fix – # symbol in product category name broke product export. #23454
Fix – XML export caused fatal errors due to Action Scheduler adding invalid characters. #23456
Fix – Invalid password messages when password contains backslashes. #23499
Fix – Dismiss button in WC admin notices “legacy_shipping” and “no_shipping_methods” were not clickable. #23517
Fix – WC $wpdb->tables not defined early enough. #23529
Fix – Tracks JS not printed on last page of OBW. #23519
Fix – Error in the logic used to build fields for external products when the query string contained full-stops, pluses or spaces in the values of the parameters. #23535
Fix – UI page width issue on OBW. #23526
Fix – Customer address not auto populated on checkout after registering and filling in address prior. #23528
Fix – Available WooCommerce extension updates not showing in System Status report. #23601
Fix – wc_change_get_terms_defaults throwing undefined index notices. #23611
Fix – System Status report alway showing checkmark next to Connected to WooCommerce.com. #23617
Fix – State field never populated when loading customer address on order via wp-admin. #23615
Fix – Order sorting not working in wp-admin when Yoast SEO active. #23590
Fix – Attribute ordering not working in product edit screen. #23625
Fix – Tracks reporting incorrect order totals due to refunds being excluded in calculation. #23671
Fix – Reload state options when creating a new order in WP-Admin and changing country. #23602
Fix – New webhooks not showing in the webhook admin list page when you have object caching enabled. #23713
Fix – Missing coupon expiry dates, restore coupons expiry_date backward compatibility. #23714
Fix – Bulk stock update could result in all products set to out of stock, change ensures consistency between db and Product instance in memory. #23534
Fix – Dashboard stats widget including unpublished products in out of stock and low in stock counts. #23734
Fix – PayPal payment not captured when you transition an order from a custom order status to completed or processing. #23634
Tweak – Confirm before saving empty list of countries to sell to in settings. #23597
Tweak – Change default WC API version used when creating webhooks to the latest WC API version. #23515
Tweak – Report a bug button now points to the new issue template in GitHub. #23580
Tweak – Do not display taxes in totals columns when taxes not enabled. #23579
Tweak – WC WP-CLI upgrade routine mimics wp-admin upgrade when no updates found by setting DB version to current version. #23666
Tweak – Template caching now cache based on WC_VERSION to avoid issues with symlinked plugin folders. #23546
Tweak – OBW payment gateway selection defaults. #23690
Localization – Add Serbia locale defaults. #23428
Localization – Add address format for Serbia. #23429

Fix – [3.6.x] Fix CSS classname conflict with themes due to missing product object global. #23377
Fix – [3.6.x] Fix security check on email template preview page. #23356
Fix – [3.6.x] Prevent wc_ascii_uasort_comparison throwing notices in some server configs. #23363
Fix – [3.6.x] is_request_to_rest_api should check for wc endpoints only. #23372
Fix – [3.6.x] Fixed use of get_term_meta in REST API endpoints. #23457
Fix – [3.6.x] Fixed missing closing tag for log-in link for reviews. #23445
Fix – [3.6.x] Fixed average_rating in the db upgrade routine for lookup table. #23465
Fix – [3.6.x] More useful update notices if cron is disabled. #23383
Fix – [3.6.x] Prevent term ordering queries inserted by wc_terms_clauses from conflicting with custom where clauses. #23449
Fix – [3.6.x] When product lookup table is generating for the first time, avoid wrong stock statuses being set for variable products. #23455
Fix – [3.6.x] Ensure webhooks respect registered order args. #23444
Fix – [3.6.x] REST API – Return custom attribute with defined name instead of lowercase name. #23482
Fix – [3.6.x] Fix 3.6 conflict with Woo Blocks plugin 1.4. #23399
Fix – [3.6.x] Allow default sorting of WC taxonomies to be overwritten by get_terms orderby. #23477
Fix – [3.6.x] Improve wc_rating_count lookup table generation with large numbers of posts. #23486
Fix – [3.6.x] Avoid recurring event for suggestions updates. #23484
Fix – Revert selectWoo escaping change and instead escape user names. Avoids issues displaying slash characters. #23334
Fix – If an empty array is passed to the v3 API for images, images should be unset. #23339
Fix – Fix attribute renaming when dealing with unicode characters. #23132
Fix – Preserve full-stops in external product URLs. #23196
Fix – Add check for VAT exemption inside display_prices_including_tax. #23201
Fix – Avoid post update in wc_update_product_stock to prevent product titles being updated. #23249
Fix – Updated Back to Items link when editing attribute terms. #23238
Fix – Network orders widget not showing orders when installed as a network plugin. #23270
Fix – Correctly map attributes in CSV when the number is not at the end of the cell. #23251
Fix – Fixed highlighting of Orders list item in My Account when looking at individual order. #23236
Fix – Applies wp_strip_all_tags to the line item name when building PayPal request URL. #23297
Fix – Non int value handling in wc_let_to_num. #23329
Fix – Style span.description elements after select2 boxes. #23252
Fix – Switch to subquery for sale products to prevent large query errors on some hosting environments. #23266
Fix – Add offerCount to variable product structured data. #23349
Fix – Cart widget – Allow title to be removed. #23370
Fix – Prevent order data being escaped incorrectly on save when using quotes. #23380
Fix – Prevent plugins causing notices by calling get_catalog_ordering_args incorrectly. #23451
Fix – Product list view shipping class filter display correct products. #23446
Fix – Twenty Seventeen On Sale badge hidden behind product image. #23450
Fix – Correct postcode validation on my-account page. #23483
Fix – Fixed compatibility with the Jetpack Beta Tester plugin when loading the Tracks client library. #23397
Fix – Updated anchor for “How to create a child theme” with the correct target address in the Codex. #23469
Tweak – Update action scheduler to version 2.2.5. #23489
Tweak – Removed 2 old admin notices for featured moved in past versions. #23263
Localization – Make the state/county field optional at checkout for Greece. #23365

* Fix - Remove calls to 'header_register_callback' to prevent conflicts with some hosting providers and PHP versions.
* Enhancement - Merged WooCommerce Gutenberg Products Block feature plugin. Adds blocks for the new editor, including
                hand picked products, featured products, products by category/attribute, sale products, new products, top rated
                products, and best selling products. #22954
* Enhancement - Only include order erasure bulk action if erasure is enabled in settings. #22354
* Enhancement - Customer notes containing URLs now automatically converts to clickable links. #21927
* Enhancement - Add increase and decrease stock options to bulk edit form. #22475
* Enhancement - Allow states in zones to be searched by country name. #22339
* Enhancement - Added registration success notices to account pages. #22650
* Enhancement - Store notice is visible again if the notice text is changed. #22645
* Enhancement - Add aria-label attribute to shop orderby selector to improve accessibility. #22683
* Enhancement - When adding, editing, and deleting items manually from orders, the corresponding product stock will be
                updated to reflect the event and an order note will log the event. #22329
* Enhancement - Added suggestions for official extensions to Products, Edit Product and Orders screens.
* Enhancement - Store attribute values as post_excerpt for variations to support easier searching for variations. #22083
* Enhancement - Improved username generation and introduced wc_create_new_customer_username function. #23145
* Enhancement - Allow opting out of Marketplace Suggestions 23218
* Tweak - Generalize shipping estimate text on cart page. #22467
* Tweak - Include auto draft orders in order list filters. #22380
* Tweak - Only include the network orders widget on the main site dashboard. #22318
* Tweak - Only show available shipping continents when selecting shipping zone region. #22131
* Tweak - Use Shortcode block on default WooCommerce pages. #21817
* Tweak - Show full category hierarchy in product URLs when term IDs are not sequential. #22526
* Tweak - Make sure account and checkout endpoints only work under account and checkout pages. #22631
* Tweak - Show loading graphic when order form is submitted. #22664
* Tweak - Add alt text to gallery images #22863
* Tweak - Improved `display_name` generation during checkout. #22786
* Tweak - Send correct calling code and phone number to PayPal standard when using non-US addresses. #22693
* Tweak - Added tooltip to refund-amount input box and made it readonly when taxes are enabled. #22820
* Tweak - Remove admin alert for the WooCommerce Gutenberg Products Block feature plugin. #22982
* Tweak - Setup Wizard: support keyboard navigation to toggle on/off features. #22936
* Tweak - Set reply-to address for all emails. #22979
* Tweak - Setup wizard redirection improvements. #22977
* Tweak - Simplify display of discount amounts within orders. #22949
* Tewak - Remove Marketplace Suggestions from product listing page. #23211
* Template - Moved the order of rememberme checkboxes for accessibility so they tab in order. #21454
* Template - New structure for attributes template, including new `woocommerce_display_product_attributes` filter. #22480
* Template - Admin cancelled order email reworded. #22971
* Dev - Update action scheduler to version 2.2.2. #23162
* Dev - Update action scheduler to version 2.2.1. #23016
* Dev - Use ActionScheduler for database updates. Improved update notice. #22904
* Dev - Introduce `woocommerce_reviews_title` filter. #22216
* Dev - Added `woocommerce_cheque_process_payment_order_status` filter allowing plugins to change the order status to the Cheque gateway. #21402
* Dev - Add the current coupon object to the `woocommerce_get_shop_coupon_data` filter. #21442
* Dev - New filter `woocommerce_gallery_image_html_attachment_image_params` for manipulating gallery images. #22005
* Dev - New filter `woocommerce_widget_get_current_page_url` for manipulating links in widgets. #21537
* Dev - Move wc_get_template filter to allow plugins to register locations for template files that do not exist in WooCommerce core. #21764
* Dev - Add support for custom classes on global/quantity-input.php. #21553
* Dev - Pass product object to `woocommerce_add_to_cart_redirect` filter where appropriate. #22123
* Dev - Add support for forgetting the cart contents and user session when switching between accounts using the User Switching plugin. #21991
* Dev - Added a consistent form class to the Track Order Form. #21991
* Dev - Add $orderby and $order params to filter `woocommerce_get_catalog_ordering_args`. #22257
* Dev - Add new pre query filter to WC_Product_Data_Store_CPT::search_products(). #22165
* Dev - Added additional parameters to the `woocommerce_variation_option_name` filter. #21153
* Dev - Added new filter `woocommerce_get_min_max_price_meta_query`. #22255
* Dev - Added a filter to WC_REST_CRUD_Controller::get_collection_params method to allow developers to change params in
        the same way as WP_Rest_Posts_controller::get_collection_params. #21562
* Dev - Add $zone param to woocommerce_shipping_zone_before_methods_table and woocommerce_shipping_zone_after_methods_table actions. #21961
* Dev - Added `woocommerce_geolocation_ajax_get_location_hash` filter. #22350
* Dev - Added `woocommerce_variation_prices_array` filter. #21003
* Dev - Added `wc_emptied_cart` javascript event when cart is emptied. #22469
* Dev - Switched `woocommerce_ordered_again` hook to ref_array. #22425
* Dev - `woocommerce_checkout_before_order_review_heading` action added in checkout form template. #22481
* Dev - Added `woocommerce_variation_header` hook in variations list. #21341
* Dev - Add a filter, woocommerce_current_user_can_edit_customer_meta_fields, to bypass manage_woocommerce when editing customer meta fields. #22277
* Dev - Adds filter on the return value of function 'get_item_tax_rates'. This gives developers the possibility to
        prevent the mandatory caching of tax rates. #22488
* Dev - Add filters for mail callback in WC_Email::send method. #22394
* Dev - Add an instance method to WC_Admin_Taxonomies. #21884
* Dev - Added `woocommerce_order_is_pending_statuses` filter and `wc_get_is_pending_statuses` function. #22409
* Dev - Filter save_payment_method_checkbox to allow "Save to account" checkbox to be removed from the checkout form. #21859
* Dev - Added triggers to the gallery script to allow 3rd parties to run scripts before and after initialization. #22501
* Dev - Added `woocommerce_add_to_cart_qty_html` filter. #21069
* Dev - Prevent extract from polluting hook arguments in wc_get_template(). #21722
* Dev - Add `woocommerce_pre_remove_cart_item_from_session` hook to allow removal of cart items when the cart is loaded from the session. #22290
* Dev - Add `$attribute` to `woocommerce_product_option_terms` filter. #21648
* Dev - Added error handling and timeout to cart fragment ajax call. #21043
* Dev - Remove unused legacy 'woocommerce_lock_down_admin' option and use filter only instead. #17796
* Dev - Allow custom settings sections in the Shipping tab. #21719
* Dev - Update Emogrifier library to 2.1. #22342
* Dev - Moved core state codes to a single file. #22339
* Dev - Adds filter for product categories displayed by `product_categories` shortcode. #22571
* Dev - Moves cart hash calculation to WC_Cart class. #21050
* Dev - Removed deprecated Simplify gateway. #22410
* Dev - Added `woocommerce_paypal_force_one_line_item` filter to control how items are sent to PayPal. #22653
* Dev - Added `woocommerce_update_product_stock_query` to filter the direct sql query to update product stock. #22672
* Dev - Added `woocommerce_product_loop_title_classes` filter to modify product title loop classes. #22717
* Dev - Delay `woocommerce_loaded` hook until all plugins are loaded. #22536
* Dev - Added `woocommerce_product_price_class` filter to modify product price classes. #22748
* Dev - `woocommerce_product_stock_status_options` filter added for stock status options. #22834
* Dev - `woocommerce_before_cart_emptied` action before cart is emptied. #22846
* Dev - Added filters for shipping options - `woocommerce_shipping_ID_option` and `woocommerce_shipping_ID_instance_option`. #22771
* Dev - Refactor comment/rating update functions. #22909
* Dev - Introduced wc_sanitize_phone_number() function. #22962
* Dev - Added `woocommerce_get_product_subcategories_cache_key` filter to allow the cache to be renamed if for instance
        the site runs in multiple languages and needs a unique cache per language. #22915
* Dev - Inactive, MU, Dropin plugins and WooCommerce.com account connection status added to System Status Report. #22887
* Dev - Make error handling consistent in payment processing for pay page and checkout. #22916
* Dev - Improved usage and event tracking (if opted in). #22955
* Dev - Pass class context to woocommerce_email_styles filter. #23027
* Fix - Use correct address for taxes when applying/removing coupons. #22802
* Fix - Hide ratings on the shop page when reviews are disabled. #22476
* Fix - Fix W3C validation of single product page quantity input. #22333
* Fix - Give product variations a unique guid after creation. #22324
* Fix - Deduct correct refunded amounts in calculated net daily sales export CSV. #22518
* Fix - Country sorting for stores which use a language that uses a lot of accented characters, e.g. Spanish. #22417
* Fix - Customer VAT exempt status now carries through to order when placed via checkout. #22458
* Fix - Handle full refunds for taxes by code report. #21843
* Fix - Option "Used for variations" should show only for variable products when saving attributes. #22524
* Fix - Allow pa_ in product attribute slugs. #22112
* Fix - Fix customer creation dates in API. #22269
* Fix - Get widget instance setting defaults so it shows in customiser before save. #22345
* Fix - PR state codes. #22339
* Fix - Allow selecting states from the Country / State drop-down for your store address when you have the option
        enabled to sell to specific countries. #22339
* Fix - Restrict the price filter widget to filtering the main product query. #22621
* Fix - Default placeholder image resizing. #22443
* Fix - HTML tags should be stripped from description in Structured Data of Product. #22596
* Fix - For logged in customers, pull default address fields from customer object, not session object, to avoid incorrect mixes of data. #22392
* Fix - Misc tax rounding improvements. #22420
* Fix - Respect shop page subcategories setting when `page/N/` is added to the URL. #22589
* Fix - Check for decoded taxonomy name when unsetting product terms. #22740
* Fix - If date paid is not set but payment complete status has passed, set it. #22735
* Fix - Prevent webhooks for drafts, and correct create vs updated for manual orders. #22731
* Fix - Ignore invalid default customer locations. #22357
* Fix - The state select field was missing a placeholder. #22357
* Fix - Fix state field rendering when customer address is not in a valid selling country. #22357
* Fix - Correctly handle negative fees when using the REST API. #22782
* Fix - Make sure local_pickup taxes do not hang around when local_pickup is not available for the selected location during checkout. #22826
* Fix - Remove Plugin and Theme background installer hooks, cannot run as there are no events scheduled for it. #22799
* Fix - Trigger zoom if moving cursor over image quickly in product gallery. #22784
* Fix - PayPal: Add meta data, before changing order status. #22892
* Fix - Make price filter widget tax aware when you have excl prices entered but show prices incl of tax. #22540
* Fix - Loop attribute panels to disable options rather than look at values to prevent notices. #22891
* Fix - When deleting zone methods, also remove setting options. #22867
* Fix - Correctly show state fields after posting the edit address form. #22948
* Fix - Validate coupon usage limit for manual orders correctly before order is saved. #22980
* Fix - Make coupon code sanitization match post_title sanitization. #22945
* Fix - Ensure WC_Helper sees plugin activation events via CLI. #22972
* Fix - Setup wizard redirection improvements. #22977
* Fix - Correctly show stock status for products when manually creating an order in the admin. #22997
* Fix - After logging in update customer session ID. #23001
* Fix - Narrow viewport css in setup wizard. #23033
* Fix - Allow entering of date only ( no time ) when placing a singular product on sale. #22973
* Fix - Download link URL in helper. #23146
* Fix - Completed email wording update. #23128
* Fix - REST API: Allow filtering by future status #23138
* Fix - Update refund reason to make it clear process is manual. #23149
* Fix - Hide stock status for variations when the parent is managing stock. #23069
* Fix - Force variation product type in WC_Ajax::add_variation. #23131
* Fix - WooCommerce writes current_theme_supports_woocommerce option on every regular page view. #23035
* Fix - Update the rating request text in the footer to be friendlier for screen reader users. #23039
* Fix - Null check variable before accessing its properties on checkout page. #23047
* Fix - Recognize all input fields with ID for checkout fields. #23050
* Fix - Avoid regenerating thumbnails on every page load. #21800
* Fix - Changed 'private' methods on WC_Breadcrumb class to 'protected'. #23057
* Fix - Jumping to top of page when dismissing store notice. #23066
* Fix - Backwards compatibility issues with wc_get_template #23197
* Fix - Remove date restriction of Facebook Plugin feature in OBW #23210
* Fix - Updates to usage tracking logic #23231
* Fix - Add get_post_status helper method and ensure prefix gets added for most statuses #23203
* Fix - Add link to suggstions management #23229
* Fix - Make usage tracking opt-out text more clear #23216
* Fix - CSS Issues with suggestions display #23241
* Fix - Product search may fail to return valid results when using the 'include' flag to search within a limited set.
* Fix - Change aria-labelledby to aria-label on quantity input. #23186
* Performance - Product meta data lookup table used for sorting and slow queries. #22718
* Performance - Prime caches when reading variations. #22587
* Performance - Only include REST API classes and objects during `rest_api_init` hook. #22615
* Performance - Improved how versioned transients are set/cleanup to avoid cron. #22511
* Performance - Optimized product CSS class functions to avoid multiple product reads and duplication. #22610
* Performance - Improved caching of template loader, product types, and layered nav widget. #22612
* Performance - Remove external lookup of IP addresses on localhost. #22608
* Performance - Improved speed of the `find_matching_product_variation` variation lookup function. #22423
* Performance - Prevent frontend code from being loaded during REST API. #21090
* Performance - Load only active webhooks on pages and allow limits to be set by developers. #22760
* Performance - Index on downloadable_product_permissions to improve speed when fetching downloads for customers. #22906
* Performance - Improved term ordering queries, making the sorting apply by default via the DB query rather than sorting
                all terms with PHP. Removed legacy term meta table usage. #22570
* Performance - Use day, not time, in status widget for caching. #22950
* Performance - Improve slow term ordering by using queries instead of php. #22570
* Performance - Removes legacy woocomerce_termmeta table and swap out all calls to legacy term meta functions to the new WP ones. #22570
* Performance - Apply term  sorting using get_terms_defaults hook instead of custom parameters. #22570
* Performance - Use pre_get_terms hook to detect menu_order sorting param and apply to the term query. Meta sorting is now possible through WP. #22570
* Performance - Use terms_clauses hook to support numeric name sorting and to improve the menu order sorting so it works if meta is missing. #22570
* Performance - Added caching to System Status Report. #22887
* Performance - Delete empty meta on update in data-stores. #22773
* Performance - Image regeneration edge cases. #22818
* Performance - Don’t query for an order count unnecessarily. #22984
* Performance - Add caching to attribute functions. #22938
* Performance - Add ability to run product lookup table updates via WP CLI. #23031
* Localization - Modify administrative regions of Greece to default to their english ISO 3166-2 names, instead of using the native GR names. #21945
* Localization - Added US Minor Outlying Islands as states to avoid confusion with US. #22468
* Localization - Dutch postcode validation. #22316
* Localization - Made municipality address field optional for Latvia. #22487
* Localization - Added new Venezuelan currency Bs S. #22435
* Localization - Added Danish locale. #22495
* Localization - Update Peruvian currency. #22602
* Localization - Update CA address format. #22692
* Localization - Updated JP field order. #22774
* Security - Added escaping for states on the user profile screen.
* Security - Added escaping for PhotoSwipe captions.
* Security - Added escaping for SelectWoo selected options.
* Security - Improved the way in which state fields are regenerated by JavaScript to ensure values are properly escaped.
* Fix - Removes invalid product structured data from archives, and include more data on single product pages. #22925
		Product structured data should only be generated for visible data, and not on archives when there are single
		product pages available, as per the documentation.
		Since this change removes structured data from archives, the filters `woocommerce_structured_data_product_limit`
		and `woocommerce_structured_data_product_limited` have also been removed.
		To customize product structured data, for example adding custom fields or include on archives, see this article:
		https://github.com/woocommerce/woocommerce/wiki/Structured-data-for-products.
* Fix - Fix last item in breadcrumb structured data, and include on shop page. #22925
* Fix - Get insert ID before running actions in `_insert_tax_rate`. #22868
* Fix - Add precision to tax in the discount class so min spend checks work correctly. #22888
* Fix - Update troubleshooting link in failed order email. #22943
* Fix - Update Flexslider to 2.7.2.
* Fix - Fill user's account first name and last name only when those fields are empty. #22783
* Fix - Fix allow product low stock threshold be the WC settings default. #22777
* Fix - Fix error on product category when sorting by multiple fields. #22066
* Fix - Recalculate coupon totals after adding a coupon to an order. #22580
* Fix - Include refunded orders in top sellers, earners sales by product. #22581
* Fix - Fix issue where "Any" attributes on variable products not always selectable on front end. #22067
* Fix - Ensure partial refunds fire order.updated webhooks. #22072
* Fix - Reload the cart page when the cart is empty. #22114
* Fix - Always show the price filter widget when filtering products by price. #22303
* Fix - Added body `{padding: 0;}` CSS rule to the email-styles.php to fix the iOS emails layout issue. #22309
* Fix - Update variable product default attributes to reflect attribute terms slug edit. #22398
* Fix - Adds all 3 callback arguments to the `woocommerce_order_item_display_meta_value` filter called from the `get_formatted_legacy` method of the WC_Order_Item_Meta class. #22411
* Fix - Remove html from add coupon error alert during manual order entry. #22424
* Fix - Include tax in subtotals when validating coupon minimum and maximum in manual order entry. #22464
* Fix - Fix ssl check in case shop page no longer exists. #22531
* Fix - Exclude `paged` from price slider and rating filter. #22533
* Fix - Limit bulk variation percentage price adjustment to decimal places in pricing settings. #22537
* Fix - Fix category image `name` field to be used for API POST/PUT. #22553
* Fix - Fix remote request test in `get_environment_info()`. #22551
* Fix - Fix notices when images have no metadata or their metadata is removed. #22562
* Fix - Check for presence of 'save' entry in post data when determining whether to save settings. #22572
* Fix - Additional CSS support for more input types on variations panel in admin. #22590
* Fix - Over escaping rating widget html. #22593
* Fix - Update cron sale price removal to remove the price at midnight after the sale ends. #22609
* Fix - WC_Log_Handler_File::remove - fix for MS Windows #22624
* Fix - Only require flat shipping rate when shipping method is enabled in the On-Boarding Wizard. #22599
* Fix - Fix wrong variable check in `add_uncropped_metadata`. #22638
* Fix - No alert for mis-matched password reset. #22642
* Fix - Hold-stock behavior between simple products and variable products was different. #22646
* Fix - OBW: Offer Storefront when WP 5.0 default theme is active #22649
* Fix - Add novalidate attribute to payment form to prevent hidden fields preventing submission. #22662
* Fix - Switch span to paragraph for descriptions in admin user profile view to correct spacing. #22663
* Fix - Added POST variable check in product data meta box. #22681
* Fix - PayPal item name encoding. #22684
* Fix - Move PayPal BN partner ID. #22763
* Fix - The "for" attribute of a label for a radio input is invalid in `woocommerce_form_field`. #22690
* Fix - Custom payment options sections was not loading settings. #22704
* Fix - Breadcrumbs on custom post types was using the singular name instead of plural. #22705
* Fix - Fixed generate webhook signature when secret contains special chars. #22722
* Fix - Set correct item meta after restocking items with refunds. #22729
* Fix - Sales by Product to consistently calculate net sales counts and amounts. #22711
* Fix - Importer - Variations cannot be drafts so set to private. #22736
* Fix - Next/previous links for orders REST endpoint when `status` query parameter is present. #22741
* Fix - Default value passed to sorting dropdown #22677
* Tweak - Updates Mailchimp branding in setup wizard. #22514
* Tweak - Refactor `@id` generation for product structured data to prevent plugin conflicts. #22554
* Tweak - Keep count of the number of times custom coupons apply. #22529
* Tweak - Change WooCommerce emails footer from `Powered by WooCommerce` to `Built with WooCommerce`. #22530
* Security - Improved escaping for Photoswipe captions.
* Security - Improved escaping for JSON attributes and structured data.
* Tweak - Allow limited html in woocommerce_rating_filter_count filter. #21904
* Tweak - Remove 'on-hold' orders from admin tax reports for more logical reporting. #22419
* Tweak - Remove payment phrases from processing emails. #22418
* Tweak - Removed display of cost for local pickup when free. #22446
* Fix - Unescape CSV formulas in product attributes in CSV importer/exporter. #21938
* Fix - Remove use of non-existing `WC_REST_Dev_Setting_Options_Controller` class. #22121
* Fix - Fix edge case where `get_plugins` would not have the custom WooCommerce plugin headers if `get_plugins` was called early. #21669
* Fix - Prevent PHP warning when deprecated user meta starts with uppercase. #21943
* Fix - Fixed support for multiple query parameters translated to meta queries via REST API requests. #22108
* Fix - Prevent PHP errors when trying to access non-existant report tabs. #22183
* Fix - Filter by attributes dropdown placeholder text should not be wrapped in quotes. #22185
* Fix - Apply sale price until end of closing sale date. #22189
* Fix - Allow empty schema again when registering a custom field for the API. #22204
* Fix - Don't display escaped html on checkout when javascript is disabled. #22214
* Fix - Fixed formatted address in uppercase for languages that use accents. #22096
* Fix - Reload the cart page when the cart is empty when there is a hash in the URL. #22114
* Fix - Do not schedule duplicate webhooks within 10 minutes of each other to maintain previous behavior. #22088
* Fix - Return correct next scheduled date for items in queue by fixing date instantiation in WC_Action_Queue::get_next(). #22104
* Fix - Allow products to use default low stock threshold. #22084
* Fix - Fix 0 value attribute permalink calculation, property population in REST api. #22026
* Fix - Ensure cache delete on coupon trash or delete. #22053
* Fix - Ensure product parent exists before getting its image. #22074
* Fix - Correctly use wildcard character on email restrictions on coupons. #22167
* Fix - Avoids Warnings in Action Scheduler Library for PHP 5.2. #22160
* Fix - Don't include product in BreadcrumbList structured data so Google will recognize stand-alone Product structured data. #22344
* Fix - Fix Product widget showing hidden products when hide out of stock was enabled. #22230
* Fix - Run webhook status updates through new wc_is_webhook_valid_status functions when doing API requests. #22205
* Fix - Correct quote handling in tax class names. #22270
* Fix - Prevent style side-effects on notices on the Extensions pages. #22330
* Fix - Check stock status of items when 'ordering again' from the account page. #22331
* Fix - Improve rounding when rounding at subtotal level in cart. #21217
* Fix - Restores an opportunity to print non-cart related notices that a few extensions are relying on. #22337
* Fix - Correct order item meta alignment in order emails when using an RTL language. #22376
* Fix - Fix bug where product status was erroneously going to draft status in some circumstances on new published variable products. #20667
* Fix - Load customer data for logged in users regardless of being member of sub-site to avoid errors. #22448
* Fix - Use slug sanitization on product export category slugs for better foreign character support. #22320
* Fix - Correct item subtotal rounding when multiple taxes are applied so it matches the cart. #22416
* Fix - Prevent fatal errors when retrieving network orders for sites that do not have WooCommerce activated. #22439
* Fix - Numerous bug fixes around checkout field locales on first load. #22444
* Fix - Correct position of admin notices on my-account pages. #22445
* Fix - Fixed padding of addresses in email template. #22466
* Fix - Prevent payment method descriptions sliding up/down if selected after ajax updates. #22459
* Fix - Fixed formatted address in uppercase for languages that use accents. #22096
* Fix - Fix product updating on import for SKUs with special characters. #22071
* Fix - Ensure cache_delete on coupon deletion. #22053
* Fix - Make product edit form aware publish was pressed. #20667
* Fix - Unescape imported CSV formulas in product attributes. #21938
* Fix - Warning when deprecated user meta starts with uppercase. #21943
* Fix - Filter out buttons from the onRowClick event on the Orders list view page. #21966
* Fix - Update "Filter Products by Attribute" widget when product stock quantity changes via "Quick Edit" or WC API. #22029
* Fix - Ensure product parent exists before getting its image. #22074
* Fix - Fixed support for multiple query parameters translated to meta queries via REST API requests. #22108
* Fix - Strip hash from URL when reload refunds in the dashboard. #22116
* Fix - Prevent notice when using non existing value for tabs in WooCommerce > Reports > Stock. #22183
* Fix - Filter by attributes dropdown placeholder text wrapped in quotes. #22185
* Fix - Fix escaped html on checkout when javascript is disabled. #22214
* Fix - Allow empty schema again when registering a custom field for the API. #22204
* Fix - Fix import & export of newline characters in product description fields. #22298
* Fix - Allow quotes in tax class names. #22270
* Fix - Sale price applies to end of closing sale date. #22189
* Fix - Product export by unicode product categories. #22320
* Fix - Check stock status of items when 'ordering again' from the account page. #22331
* Fix - Issue where images offloaded to external servers caused errors and broken images when changing aspect ratios. #22461
* Fix - Remove block comments from shop page description. #22334
* Dev - REST API - 0 value attribute permalink calculation, property population in REST api. #22026
* Dev - REST API - Fixed support to order results by slugs. #22168
* Dev - REST API - Removed extra inherited filters from product endpoint in variations endpoint. #22452
* Fix - Fix orders list in the admin after a change introduced in WordPress 5.0.2. #22273
* Enhancement - Added compatibility for Twenty Nineteen theme. #21970
* Update - Prepare WooCommerce for PHP 7.3. #22009
* Tweak - Updates the signature field type to "password" in PayPal settings for increased security. #21715
* Tweak - Change the filter name in the /myaccount/lost-password-confirmation.php template to differentiate between other filter with same name and different message. #21829
* Tweak - Reintroduce Preview button by popular demand with the understanding that the Preview will only work on some product fields. It was removed from pubished products in 3.5.0 to prevent confusion. #21838
* Tweak - Add tool to systems status tools for running the DB update routine. #21923
* Tweak - Revert default behavior for `woocommerce_formatted_address_force_country_display` filter to maintain backwards compatibility. #21865
* Tweak - Update products block notice for WP 5.0. #21930
* Tweak - Use wp_kses_post instead of esc_html for sanitizing product titles to allow minimal HTML in product titles. #21936
* Tweak - Use dedicated woocommerce_add_order_again_cart_item to filter cart item data when ordering again. Prevents issues with applying woocommerce_add_cart_item out of context. #21947
* Tweak - Remove postal code for Angola, São Tomé and Príncipe since they don't use postal codes and update locale info. #21984 #21985 #21987
* Fix - Metadata with array key of 0 can save properly. #21641
* Fix - Prevent deleting the default product category via REST API. #21696
* Fix - Fix 'Table does not exist' messages on System Status Report in multisite. #21706
* Fix - Add dynamic SSL check to dashboard SSL notice to prevent misdiagnosing that sites aren't set up with SSL. #21738
* Fix - Don't show escaped HTML in admin order item details for fees. #21769
* Fix - Don't include draft variable products in on sale product results. #21778
* Fix - Add woocommerce_hold_stock_minutes check back to stock check in cart/checkout. #21797 #22050
* Fix - Fix potential undefined index notice on checkout fields when comparing the sort order. #21801
* Fix - Throw an error when trying to set a variation as the parent of a variation in the CSV importer. #21810
* Fix - Make "account erasure request" text translatable. #21812
* Fix - Display notices on Order Pay page. #21821
* Fix - Fix tax rate uploading by file path. #21831
* Fix - Make wc_download_log_permission_id constraint creation work better on multisites and multiple sites using the same DB. #21836 #21940
* Fix - Don't render undecoded HTML entities in variations dimensions. #21844
* Fix - Do not check for stock when not managing stock or have backorders enabled when paying through the order-pay page. #21849
* Fix - Apply priority field sorting on additional filters to make it apply on the edit address pages as well. #21856
* Fix - Fix export and edit of attribute labels with html encoded special characters in product CSV exporter. #21864
* Fix - Prevent fatal error when rendering plaintext customer invoice email. #21879
* Fix - Prevent fatal error when delivering webhooks using v3 API. #21921
* Fix - Prevent undefined variable notice in wc_increase_stock_levels. #21928
* Fix - Fix overescaping image output on product widget. #21929
* Fix - Croatian Kuna symbol should be lowercase. #21934
* Fix - Fixed an error when deleting logged entries when using the 'WC_Log_Handler_DB' handler. #21949
* Fix - Update ShipStation plugin info so install works through setup wizard. #21953
* Fix - Use dynamic DB table name in product list table shipping class query. #21954
* Fix - Log file date/time should be in UTC and not site timezone as per the +00:00:00 string appended to it. #21981
* Fix - Set customer's country to selling country when only selling to one country and default customer location is 'none'. #21995
* Fix - Change new account email copy to be compatible with auto-generated accounts. #21999
* Fix - Correct Aria-Labelledby attribute for quantity selectors. #22000
* Fix - Show notices on lost password page. #22001
* Fix - Fix authentication errors when using the REST API with 3rd-party authentication. #22013
* Fix - Fix issues where potentially not all active plugins were included on the system status report. #22057
* Fix - Make PDT validation use the same rounding as the IPN validation to prevent erroneous totals mismatch. #21729
Feature – REST API v3. #20111
Feature – Option has been added on the inventory tab of the edit product page to set a low stock threshold for individual products. #20260
Feature – Add ability to export products by category to the CSV exporter. #20870
Feature – Ability to define custom product placeholder images that will resize to correct store aspect ratio. #20644
Enhancement – Excluded children categories from WP_Query in product shortcode if cat_operator=AND. #20207
Enhancement – Add anchor tag example to email template preview. #20246
Enhancement – Introduce is_paypal_supported_currency check in setup wizard. #20244
Enhancement – Payment method table reordering accessibility. #19844
Enhancement – Log errors from transaction emails with logger. #20203
Enhancement – Improved shipping calculator experience. Shows destination country and added context to calculate shipping link. #20345
Enhancement – On the fly image generation for frontend, if image sizes are missing. #20011
Enhancement – SelectWoo enabled product categories dropdown widget. #20617
Enhancement – Make it easier to read and act upon the outdated template notice. #20732
Enhancement – Styled date, time, etc. inputs in admin to match styling of other inputs. #21013
Enhancement – Show update notices on the System Status page for WordPress.org hosted Official WooCommerce extensions. #21073
Enhancement – Better wording for transactional emails. #21288
Fix – Check billing email is posted before using in WC_Cart::check_customer_coupons. #20180
Fix – Shipping postcode formatting when only posting a billing address. #20330
Fix – Correctly show/hide save card checkbox on tokenization form. #20506
Fix – orderby and order parameters in WC_Customer_Download_Log_Data_Store::get_download_logs() were ignored. #20931
Fix – Unslash city name to prevent double escape in tax settings. #21205
Fix – Updated phone validation logic. #21188
Fix – Fix weight and dimensions cache of variable products if childs doesn’t have any of those params. #21244
Fix – Correctly replace images in the woocommerce_uploads folder with the placeholder image. #20848
Fix – Show parent variable product in shipping class admin screen when variation has shipping class. #21278
Fix – Correctly excluded administrators from „Customer list“ report. #21304
Fix – Update quick edit logic to show/hide Stock qty and Backorders fields. #21301
Fix – Fix Layered Nav Widget where special HTML entities did not display correctly in the „Any %s“ string. #21312
Fix – Set the is_checkout javascript parameter on any page that uses the checkout filter or shortcode. #21328
Fix – Fix cron_interval property support in WP_Background_Process. #21353
Fix – CSS Changes to make text fields line up on the shipping settings page. #21247
Fix – Add extra null check to fix an issue with select payment fields using disabed select as placeholders. #21391
Fix – Don’t modify attributes orderby when sorting by name. #21408
Fix – Allow saving a stock quantity of 0 using quick edit. #21447
Fix – Change the query used to save session data to the database to protect against deadlocks. #21455
Fix – Make sure default category tooltip is rendered when the image column is deactivated. #21410
Fix – Fix warning when using logger instance in woocommerce_logging_class filter. #21448
Fix – Use uppercase „ID“ when sorting product queries by ID. #21461
Fix – Consistently escape the gateway ID in the checkout payment method template. #21439
Fix – Avoid treating HTTP 301 and 302 codes as failures for webhooks. #21491
Fix – Add address_1 to shipping packages info in WC_Cart:: get_shipping_packages to make it work correctly in address formatting functions. #21493
Fix – Don’t fire two of the same action when saving shipping settings. #21494
Fix – Remove double condition for address line 2 in WC_Countries::get_default_address_fields. #20629
Fix – Correctly handle shorthand values for memory_limit in php.ini. #21557
Fix – Product shortcode numeric term slug matching. #21560
Fix – Remove the erasure tools links from the descriptions of the erasure settings for users without the manage_privacy_options capability. #21565
Fix – Don’t double urldecode posted variation attributes. #21570
Fix – Don’t double-sanitize cart images. #21574
Fix – Check if ID exists and is not empty before set Product’s download ID in API. #21588
Fix – Ensure wp_list_pluck() gets a array and not possibly null in WC_Product_Data_Store_CPT::update_attributes. #21591
Fix – Trim CSV header rows to prevent leading/trailing whitespace issues. #21614
Fix – Show draft products in previews on unsupported themes. #21619
Fix/Tweak – Fire woocommerce_grant_product_download_access hook after the download has its ID set. #20905
Fix/Tweak/Performance – Change wp_woocommerce_sessions primary key to session_id. #21245
Tweak – Show empty terms in admin product category filter dropdown. #20324
Tweak – Don’t force default token gateway active by default. #20125
Tweak – Move notice output to hooked in functions. #19794
Tweak – Apply order bulk actions in chronological order. #20338
Tweak – Updated Emogrifier to 2.0. #20547
Tweak – Avoid using wp.template (eval) in add-to-cart-variation.js. #19496
Tweak – Hide Preview button when creating new products, as most fields aren’t set up for it. #20650
Tweak – For guests, store all address fields to the session whilst placing an order. #20665
Tweak – Removed ‚ajax_add_to_cart‘ class from ‚Read more‘ button. #20690
Tweak – Removed unnecessary checkout form change trigger on load of the checkout page. #20655
Tweak – Add image size filters to wc_get_product_attachment_props(). #20722
Tweak – Only display the current site’s tables for a multisite install when viewing the system status. #20731
Tweak – include the file path and line number where a fatal error occurred in the fatal errors log. #20787
Tweak – Cast tax rate to float so that it can be treated as number further on in the code. #20910
Tweak – Send webhooks using Action Scheduler. #20030
Tweak – Update customer’s ip address on successful payment. #21038
Tweak – Changed wc_clean to checking for valid utf8 for line items and password. #20993
Tweak – Add to cart notice actions (View cart/Continue shopping) now have tabindex 1 for improved accessibility. #21108
Tweak – Remove icanhazip from geolocation services. #21198
Tweak – Remove unnecessary aria-required attributes from product reviews template. #21211
Tweak – Added hidden label for screen readers on checkout address line 2 input. #21193
Tweak – Remove empty space in mini-cart template. #21261
Tweak – Tax display in cart now depends on whether customer is tax exempt. #21292
Tweak – Change sort dropdown option „Sort by newness“ to „Sort by latest“. #21311
Tweak – Sanitize endpoint slugs upon saving. #21355
Tweak – Ignore converting float meta value for registered post meta. #21333
Tweak – Remove ‚order_again‘ query string to avoid multiple re-orders. #21444
Tweak – Remove Netherlands Antilles from the North America continent definitions. #21449
Tweak – Display label and meta on the same line in order emails to match frontend Order Details styling. #21456
Tweak – Use wp_get_upload_dir for geolite DB path. #21550
Performance/Tweak – Use post_author for the order customer instead of ‚_customer_user‘ meta data. #17895
Performance – Exclude frontend include from REST API calls. #20000
Performance – Improve performance of the query to delete version transients by removing unneeded „ORDER BY“. #21274
Dev – REST API – Allows oAuth1.0a authentication under SSL.
Dev – REST API – Fix position param for images. #20497
Dev – REST API – Handle children products deletion regardless of type. #20670
Dev – Added woocommerce_increase_coupon_usage_count and woocommerce_decrease_coupon_usage_count action hooks to increase extensibility of Coupons. #19981
Dev – Add endpoints to account menu items filter. #19980
Dev – Added qty param to wc_add_to_cart_message filter. #19817
Dev – Added woocommerce_search_products_ids filter. #20160
Dev – Introduced woocommerce_cart_calculate_shipping_address field to allow manipulation of cart shipping calculator data. #20046
Dev – Introduced woocommerce_shipping_calculator_enable_country filter. #20046
Dev – Pass product id to backorder notification. #20416
Dev – Added woocommerce_cart_shipping_total filter to control shipping display. #20591
Dev – Refactor „Order again“ handling to separate logic better. #20606
Dev – Added ‚woocommerce_products_admin_list_table_filters‘ filter to make it easier to customize the products list table filters. #20634
Dev – Added woocommerce_shipping_method_add_rate_args and woocommerce_shipping_method_add_rate filters. #20633
Dev – Added woocommerce_coupon_validate_user_usage_limit filter. #20630
Dev – Add hooks needed for product custom tables feature plugin. #20520
Dev – Added new filter to ‚Item in quotes‘ translation for messages. #20714
Dev – Add ‚woocommerce_shutdown_error‘ hook triggered on request termination with an error. #20787
Dev – New filter ‚woocommerce_admin_meta_boxes_variations_count‘ to customize the shown count of variations. #21067
Dev – Added ability to query products that have a field set in wc_get_products/WC_Product_Query using the wildcard symbol ‚*‘. #21162
Dev – Added a JavaScript events before and after the order total recalculation on the Edit Order page. #21181
Dev – Check for needs_payment instead of has_status( 'pending' ) in PayPal PDT handler for custom order status support. #21200
Dev – Added form action hooks for edit account and login templates. #21248
Dev – Add action for when system tools are run. #21270
Dev – Add – woocommerce_restock_refunded_items filter to control default state of the restock option when refunding items on an order. #21314
Dev – Add an extensible/swappable job queue via WC_Action_Queue and WC_Queue_Interface. #20030
Dev – Use WC_Action_Queue for schedule and delivery of webhooks. #20030
Dev – Include Action Scheduler v2.1.0 and use it for the default job queue. #21424 / #20030
Dev – Save reviews under the ‚review‘ comment type. #21305
Localization – Updated IT provinces. #20286
Localization – Eircode validation. #20330
Localization – Disable postcode requirement for Bahrain. #21103
Localization – Make postcode field optional and hidden for Nigeria and label State. #21056
Localization – Make Romania state selection mandatory. #21180
Localization – Make city field optional and hidden for Singapore addresses. #21016
  • * Fix - Tweak sanitization when resetting password cookie. #20901
    * Fix - Use `+` instead of `array_merge` when appending parent to tax class to fix issues with numeric tax class names. #20916
    * Fix - Correct translation for North Khorasan. #20972
    * Fix - Unify scroll-to notices for all browsers. #20992
    * Fix - Prevent multiple slashing of variation's SKU. #21019
    * Fix - Variation image in fullscreen now shows correct caption for the respective image. #21022
    * Fix - Vertically center admin order action buttons. #21053
    * Fix - Correct context for shipping packages translation. #21065
    * Fix - Add permission checks for installing Jetpack on the setup wizard. #21072
    * Fix - Use refund currency instead of store default currency when displaying refund amount in the edit order screen. #21106
    * Fix - Fix a typo in REST API customer schema. #21171
    * Fix - Use entire sentence for checkout address_2 placeholder string. #21186
    * Fix - Only suppress comments number on unsupported theme shop page. #21191
    * Fix - Don't allow users without manage_product_terms permissions to create categories using the product importer. #21192
    * Fix - Correct sale coupon restriction logic. #21219
  • Fix – Better escaping on product quick edit. #20740
  • Fix – Log file deletion. #20730
  • Fix – Search feature in Webhooks and REST API keys settings. #20706
  • Fix – Notices in REST API keys settings screen. #20706
  • Fix – add a check to prevent WC_Geolite_Integration::get_country_iso() from generating a PHP undefined index notice when unable to determine the country code for a given IP address. #20608
  • Fix – Variable product stock display if parent is stock managed and not the variation. #20661
  • Fix – Correctly hide cost for zero cost shipping methods after placing orders. #20663
  • Fix – Disabled autocomplete to prevent datepicker overlapping. #20687
  • Fix – Prevent a PHP notice in the setup wizard when store state is not selectable. #20695
  • Fix – Fix logic error in WC_Product_CSV_Exporter::get_column_value_stock. #20753
  • Fix – Fixed missing notice about no product variation matching. #20762
  • Fix – Correct PHPDocs in exporter class. #20861
  • Fix – Prevent Mailchimp redirection during the Setup Wizard. #20879
  • Fix – Don’t hide coupon form after coupon has been applied. #20889
  • Tweak – Remove (optional) text from Address line 2 field. #20622 #20639
  • Tweak – Removed 100% width for images on single product page using 2017 theme. #20818
  • Tweak – Add margin to best selling product title in the dashboard widget to avoid overlapping the sparkline. #20849
  • Tweak – Re-add woocommerce_order_details_after_customer_details_filter removed during WC 3.2. #20886
  • Dev – Added woocommerce_calculate_item_totals_taxes filter. #20586
  • Dev – Links to next and previous page sent out in HTTP header via REST API fixed for some endpoints. #20686
  • Dev – Better wc_format_phone_number cleaning. #20637
  • Fix – Fix label for the price filter widget on RTL sites. #20417
  • Fix – Checkout: stopPropagation when payment method selected so description tips show on radio buttons. #20432
  • Fix – Shipping zone settings: fixed title for shipping methods without settings. #20441
  • Fix – Ensure custom Webhook topic selections are correctly saved in admin. #20406
  • Fix – Webhook bottom bulk actions. #20445
  • Fix – Fixes multisite orders dashboard widget to use order number rather than ID. #20457
  • Fix – Add check to ensure download log FK does not exist before adding it. Update routine will cleanup any duplicates. #20478
  • Fix – IPv6 support with HTTP_X_FORWARDED_FOR header. #20479
  • Fix – Avoid setting wrong prices when syncing grouped products with children. #20482
  • Fix – Separation of explode and end functions in two lines. End function should get a reference as parameter. #20500
  • Fix – Initialize payment gateways before running bulk actions so gateways can listen for events. #20502
  • Fix – Cast shipping total to a float so incl. tax shows only when needed. #20531
  • Fix – Fix automatic stock status updates based on stock level. #20573
  • Fix – Improved sanitize_special_column_name_regex trim to fix column matching when importing CSVs. #20486
  • Fix – Force importer log table to wrap long columns. #20534
  • Fix – Rest API: Prevent errors if variation parent is invalid and cannot be read. #20572
  • Fix – Rest API: Remove legacy API enabled check from auth endpoint. #20499
  • Fix – Display products on sub-subcategories when sorting parent category by price. #20579
  • Fix – Set order status to refunded when a PayPal transaction is refunded. #20574
  • Fix – fix undefined index in abstract-wc-widget. #20544
  • Fix – Round items for order total when recalculating order values to match cart. #20533
  • Fix – Removed mysql transactions when updating order status, tweaked caching, and improved version transient cleanup to prevent possible deadlocks on checkout. #20537
  • Tweak – Added a message to promote Wootenberg when running Gutenberg feature plugin. #20524
  • Tweak – Added a warning notice before removing personal data from orders in bulk. #20481
  • Dev – generate_select_html and generate_multiselect_html functions again support the usage of integer-keyed arrays as available values. #20569
  • Dev – Allow order billing fields to use a provided ‚value‘. #20424
Fix – Flexslider gallery fixes for RTL sites, and for variation image switching. #20328 #20321

Fix – Allow forms to be submitted when the password strength library fails to load. #20362

Fix – Personal data exporter: Do not export a customer data group containing no data. #20347

Fix – Fix navigation notification in settings when clicking save. #20335

Fix – Show discount amount for free shipping coupons. #20334

Fix – Fixed cache clearing for category children for sites running object caching. #20308

Fix – Use correct escaping on select2 placeholders. #20364

Fix – Order by price clauses when searching within terms. #20391

Fix – Clear needs_processing transient when adding a product to an order. #20390

Enhancement – Permission_id constraint checks on install. #20366

Dev – Added order to „woocommerce_order_is_vat_exempt“ filter arguments. #20365

Localization – Disable states for Bahrain. #20363

Localization – Disable states for Luxemberg. #20389

* Fix - Fix webhook admin filtering URLs. #20236
* Fix - Add missing wp_unslash calls to product data meta box to prevent quote characters being escaped on save. #20235
* Fix - Display price filter widget in LTR mode on RTL sites. #20221
* Fix - Refactor WC_Coupon constructor to allow for passing in coupon objects. #20193
* Fix - Path field in advanced CSV importer was broken due to an esc_url call. #20191
* Fix - Prevent shipping method instances trying to save settings on non-instance screens. #20217
* Fix - Wrapper function to get full mysql version string with mariadb handling. #20231
* Fix - woocommerce_pagination had some extra white space. #20214
* Fix - If a file size cannot be read, ignore range headers to prevent offsite downloads being 0kb. #20205
* Fix - Allow HTML when using `wc_attribute_label()`. #20202
* Fix - Update address-i18n.js to prevent appending multiple "(optional)" labels. #20195
* Fix - Check plugin properties exist when listening to auto_update_plugin hook. #20234
* Fix - Add extra checks in `get_canonical_package_rate_ids` to prevent notices. #20237
* Fix - Fix infinite loop with importing tax rates. #20253
* Fix - Echo attribute label for "empty" default option. #20256
* Fix - Fix download sample tax rates URL format. #20272
* Fix - Product properties should not be accessed directly PHP notice when calling `wc_get_product_attachment_props`. #20282
* Fix - If flexslider is disabled, gallery images also need to trigger photoswipe on click. #20290
* Fix - Product import file uploads on windows servers. #20273
* Fix - Fix variation attribute selection via the cart page/query string. #20293
* Fix - Add greater specificity to required styling in 2017 theme. #20296
* Enhancement - Export legacy paypal meta data in personal data exporter. #20200
* Enhancement - Improve performance of `wc_update_340_states` update routine to help prevent timeouts. #20241
* Dev - Remove red styling for PHP notice if using > 5.6. #20294
* Dev - Add an action hook after printing the cart item name. #20190
* Localization - Use "payment tokens" terminology in exports. #20197
  1. Feature – GDPR: Tools to export WooCommerce data using the new export functionality in WordPress 4.9.6. #19330
  2. Feature – GDPR: Tools to bulk anonymize order data in admin. #19330
  3. Feature – GDPR: Tools to turn off company/address-2/phone checkout fields to avoid unnecessary data collection, and a toggle to choose how required fields are presented. This is available via the Customizer. #19637
  4. Feature – GDPR: Tools in the Customizer to change the terms and conditions checkbox label on the checkout. #19637
  5. Feature – GDPR: Tools to define a privacy policy for the account page and checkout page in „account privacy“ settings and within the Customizer. #19747
  6. Feature – GDPR: Tools to automatically clean up and remove order personal data after a set time period. #19743
  7. Feature – GDPR: Added privacy snippet which works with the new privacy page functionality in WordPress 4.9.6. #19749
  8. Feature – Added a new order widget to the dashboard (on multisite) so you can see your orders across multiple stores on the same WordPress network. #17598
  9. Feature – Added „display name“ input on the My Account page. #19078
  10. Feature – Product search improvements including stopword support and support for searching for multiple products at the same time. #19096
  11. Feature – Cash on Delivery gateway can be enabled/disabled for specific shipping methods instead of only method types. #19221
  12. Feature – Add wildcard email support for coupons. #19331
  13. Feature – Added support for the GeoLite2 library as a replacement for the deprecated MaxMind GeoIP library. #19419
  14. Feature – Added tool for cleaning up download permissions table. #19922
  15. Tweak – GDPR: Improved appearance of checkout field ‚descriptions‘ (if used) to make them more useful for privacy notices. #19637
  16. Tweak – GDPR: Improved related data cleanup when deleting users/orders. #19330
  17. Tweak – GDPR: Notice about HTTPS as a requirement in admin if missing. #19756
  18. Tweak – GDPR: Improved the checkout (payments) settings screen, moved page options to a new „advanced“ section, and made an „Accounts and Privacy“ section. #19703
  19. Tweak – GDPR: Hash customer email address in download URLs to protect privacy. #18957
  20. Tweak – GDPR: Add highlight to T&C checkbox if not checked to show it needs to be checked. #19177
  21. Tweak – GDPR: Automatically purge old logs after 30 days. #19920
  22. Tweak – GDPR: Only log Webhook body if WP_DEBUG is enabled. #19914
  23. Tweak – GDPR: Store less PII in PayPal standard. #19914
  24. Tweak – Only show admin notices on WooCommerce screens/plugins/dashboard. #19772
  25. Tweak – Standardize stock update messages in admin and correctly log who performed the action. When an order note is added after modifying stock manually, update order notes display via AJAX. #18080
  26. Tweak – Rollback if payment complete or update status fails to prevent partial order updates on failure. #18175
  27. Tweak – Made the system status tool which purges user carts also purge persistent carts. #18492
  28. Tweak – Display whether or not external object cache is enabled in system status report. #18595
  29. Tweak – Display zero value when using shipping classes. #18624
  30. Tweak – Fixed settings table styling on mobile. #18655
  31. Tweak – Updated Flexslider to version 2.7.0. #18779
  32. Tweak – Enable screen options for list screens. #18817
  33. Tweak – Don’t call WC_Install::install() on downgrades. #18818
  34. Tweak – Remove user login from reset password link to protect personally identifying info. #18820
  35. Tweak – Added a function to return a list of custom tables to aid with cleanup. #18831
  36. Tweak – Enable going backwards in the setup wizard. #18921
  37. Tweak – Make sure terms page exists and isn’t trashed before using it. #18993
  38. Tweak – Toggle when clicking anywhere in toggle row during setup wizard. #19035
  39. Tweak – Use read_product permissions instead of edit_product for ajax product search. #19087
  40. Tweak – Add priceSpecification property with valueAddedTaxIncluded to product structured data. #19091
  41. Tweak – Importer remembers mappings across imports. #19110
  42. Tweak – Made coupon total displayed in cart more consistent. #19166
  43. Tweak – Remove forced CSS line-heights to improve text input displays across different browsers. #19174
  44. Tweak – When loading default attributes/variation, if there is no longer a match, reset the form and hide the notice #19190
  45. Tweak – Removed admin product type column from core and made it into a free feature plugin. #19192
  46. Tweak – Use woocommerce-no-js class to hide JavaScript-only forms and content. #19199
  47. Tweak – Activate plugins during installation process even if directory doesn’t match slug. #19200
  48. Tweak – Allow category and attribute ids in the products shortcode instead of only slugs. #19204
  49. Tweak – Invalidate cart items when important props like product type are updated. #19255
  50. Tweak – Don’t use mysql functions directly on system status page to prevent errors if they are disabled. #19281
  51. Tweak – Replaces have_posts with woocommerce_product_loop which looks to see if there are products, or if the loop is going to be showing something else. #19288
  52. Tweak – Delete widget options and order notes on uninstall. #19371
  53. Tweak – Add unique names to all nonces in template fields and forms. #19387
  54. Tweak – Enable using the tab key to select elements in selectWoo dropdowns. #19416
  55. Tweak – Added autocomplete attributes to form elements for better autocomplete support. #19426
  56. Tweak – Removed PayPal line item limit and ensured URLs are shorter than maximum length. #19493
  57. Tweak – Disable Gutenberg editor on products posts. #19543
  58. Tweak – Improvements around UI and wording of store setup step in setup wizard, a revamped extras step, and other improvements.
  59. Tweak – Only push images to lightbox if an image is found. #19568
  60. Tweak – Added and improved notices around old PHP versions and disabled geolocation on PHP 5.4 or lower. #19573
  61. Tweak – The manage_stock field in the product API can return a mixed type instead of boolean for variations. #19598
  62. Tweak – Link product import/export to WordPress import/export capabilities. #19602
  63. Tweak – Use   to separate asterisks in required fields to prevent awkward line breaks. #19610
  64. Tweak – Load meta box input values using CRUD and edit context. #19670
  65. Tweak – Scroll to notices on cart/checkout for better mobile visibility. #19699
  66. Tweak – Add filter to coupon URL on „Edit order“ screen. #19777
  67. Tweak – Throw error if order can’t be loaded on checkout. #19802
  68. Tweak – Remove deprecated freegeoip service from geolocation. #19841
  69. Tweak – Allow arrays of query vars in wc_get_orders and wc_get_products. #19848
  70. Tweak – Invalidate fragment cache on theme switch.
  71. Tweak – Include select tags when saving payment details temporarily in checkout.js. #19854
  72. Tweak – Update – Include pending products in export. #19928
  73. Tweak – Deprecate woocommerce_ajax_added_order_items action in favor of more useful action. #19933
  74. Tweak – Enable touch-to-zoom on touch devices to make photoswipe more easily accessible. #20002
  75. Tweak – Wizard: List out all plugins to be installed upon proceeding to the next step, with a highlight on hover indicating relevant settings. #19952
  76. Tweak – Hide/show password strength meter instead of removing/inserting password strength meter. #20006
  77. Tweak – Added support for HTTP_RANGE requests (used by iOS devices) to Force download method. #19984
  78. Tweak – Replaced protocol-relative URLs for thumbnails in the cart and mini-cart with protocol-specific URLs to prevent problems with URLs that include port section. #19934
  79. Tweak – In CSV exports, wrap cell in ‚ rather than just prepending to escape values. #20041
  80. Tweak – Add JS listeners for reloading/reinitializing order items in edit-order page. #20082
  81. Fix – Properly set orderby and order when calling WC_Customer_Download_Data_Store::get_downloads(). #1862
  82. Fix – Set maxlength for order item meta key to avoid values disappearing if too long. #18918
  83. Fix – Remove hardcoded /wp-content check for downloads. #18961
  84. Fix – Made get_on_sale_products respect the setting to hide outofstock products. #18984
  85. Fix – Prevent shortcode [product_page] redirecting to the actual product’s page after add to cart. #19043
  86. Fix – Make the „main term“ logic match for both the breadcrumb and product categories widget. #19044
  87. Fix – Check parent status too when seeing if variation is purchasable. #19045
  88. Fix – Fix uppercasing of accented characters. #19086
  89. Fix – Do not allow updating parent ID from variations after created. #19097
  90. Fix – Ensure coupon amount is not empty to prevent non-numeric value errors. #19098
  91. Fix – Ensure shop archive works correctly when paged=1 is in the URL. #19104
  92. Fix – Ensure orders created with woocommerce_adjust_non_base_location_prices filter active have the same cost on frontend and admin. #19109
  93. Fix – Handling in the CLI to prevent Resource does not exist errors when using commands of a certain format. #19123
  94. Fix – Use subtotal when calculating discounts in admin/orders to ensure prices are the same as on the frontend. #19159
  95. Fix – Use kses to process download names to prevent escaped HTML displaying in emails.
  96. Fix – Remove translation from Thailand state file to prevent PayPal errors around unsupported characters. #19219
  97. Fix – Fix auto-select variation URLs with special characters in them. #19283
  98. Fix – Introduced wc_round_discount and improved consistency of discount rounding. #19291
  99. Fix – Only add schema for ratings to structured data when ratings are enabled. #19310
  100. Fix – Prevent default state applying unless the country was also unset in JS state/country inputs. #19338
  101. Fix – Escape quantity labels correctly to prevent broken html. #19375
  102. Fix – Delete orphaned variations after product import. #19378
  103. Fix – Ensure API credentials exist before defining PayPal refund support. #19380
  104. Fix – Force word-wrapping in the log viewer to prevent layout-breaking long lines. #19503
  105. Fix – Removes permission checks that were preventing webhooks from displaying properly when no post object existed. #19508
  106. Fix – Empty cart after completing PayPal payment. #19509
  107. Fix – Strip tags on aria-labels in Add to Cart template to prevent broken HTML. #19522
  108. Fix – Update post_modified date when saving products and variations but no other product data. #19595
  109. Fix – Clear comment count transient when cleaning product transients to prevent incorrect comment count displays. #19664
  110. Fix – Load gateways before order is saved/email is triggered to ensure all information gets sent/processed. #19667
  111. Fix – Clear shipping transient when saving shipping method on zones screen. #19668
  112. Fix – Handle escape characters for fputcsv to work around PHP standards issues. #19678
  113. Fix – Cast post IDs to integers in admin meta boxes. #19710
  114. Fix – Fix CSV unescaping of negative numbers in download expiry/limit columns. #19732
  115. Fix – Don’t load unsupported theme functionality if shop page ID is -1. #19822
  116. Fix – Select and display „Downloadable“ option in product admin filter when selected. #19876
  117. Fix – Add sort handle column when adding new tags. #19875
  118. Fix – More thorough CSV importer cleanup. #19877
  119. Fix – Fix gallery switching when image is the same #19878
  120. Fix – Ensure coupon amount is always returns as a float value #19889
  121. Fix – No update available message after activating subscription that has a valid update. #19831
  122. Fix – Include scheduled products in CSV export. #19907
  123. Fix – Generator tag actions should be filters. #19946
  124. Fix – WC API should not try to create a product image when creating a product variation if an empty image is passed. #19971
  125. Fix – Force settings API settings to autoload by default. #19998
  126. Fix – Cart html5 validation events when using keyboard. #20001
  127. Fix – Don’t show stock status fields in external product quick-edit. #20005
  128. Fix – Prevent an infinite loop if 2 grouped products are linked. #20020
  129. Fix – Switch stock_status when manage stock gets changed to prevent being out of stock if stock quantity is > 0. #20021
  130. Fix – When duplicating variation, set the date to null. #20083
  131. Fix – Fix rounding of line items for orders to match cart. #20086
  132. Fix – Remove hardcoded border in email template. #20090
  133. Fix – Prevent autofocus on checkout. #20123
  134. Fix – Recalc taxes if address changes in API. #20137
  135. Dev – Made wc_query_string_form_fields handle strings. #20162
  136. Dev – Added refunded_payment prop to orders for determining if payment was refunded via API. #18196
  137. Dev – Added extra params to woocommerce_order_get_downloadable_items. #18408
  138. Dev – Store shipping method ID and instance ID in separate fields instead of both in one serialized field. #18483
  139. Dev – Add woocommerce_rest_insert_system_status_tool hook that fires after executing a REST system status tool. #18505
  140. Dev – Gallery meta box is now powered by CRUD. #18511
  141. Dev – Refactor woocommerce_wp_select so it could be used for a multiselect. #18536
  142. Dev – Added ability to declare sanitize_callback in settings API. #18554
  143. Dev – Added support for additional HTML5 input types for settings/checkout forms. #18594
  144. Dev – Made ‚woocommerce_email_downloads_column_‘ hook format aware. #18600
  145. Dev – Add missing woocommerce_update_options__ actions for settings pages that override save method. #18609
  146. Dev – Allow default value for single_select_country and multi_select_countries. #18754 #18756
  147. Dev – Added grouped_form class to grouped product form element. #18786
  148. Dev – Mini cart item link now respects value of $product_permalink. #18979
  149. Dev – Added woocommerce_coupon_get_items_to_validate filter to enable excluding products from coupon validation. #19002
  150. Dev – Added woocommerce_persistent_cart_enabled filter. #19027
  151. Dev – Added woocommerce_admin_order_item_coupon_url filter. #19777
  152. Dev – Replaced calls to exit with wp_die in the ajax methods to enable unit testing of those methods.
  153. Dev – Introduce woocommerce_coupon_custom_discounts_array filter to allow post processing on custom coupons. #19148
  154. Dev – Move jQuery UI styles into WooCommerce assets folder and load them from there. #19173
  155. Dev – Added woocommerce_coupon_validate_expiry_date filter to enable modifying the coupon expiry date check. #19228
  156. Dev – Added woocommerce_shipping_calculator_enable_state filter to enable disabling state section in shipping calculator. #19241
  157. Dev – Added woocommerce_bacs_process_payment_order_status filter allowing plugins to change the order status to the BACS gateway. #19311
  158. Dev – Added woocommerce_coupon_sort filter to allow plugins to override the default coupon apply order. #19339
  159. Dev – Added woocommerce_before_output_product_categories and woocommerce_after_output_product_categories filters. #19363
  160. Dev – Added general woocommerce_form_field filter to make it easier to filter all of the form fields. #19388
  161. Dev – Added woocommerce_install_get_tables filter to enable plugins to register new, WooCommerce-specific tables. $19436
  162. Dev – Use get_variation_price method in structured data to grab min/max so filters are ran. #19527
  163. Dev – Added woocommerce_helper_suppress_connect_notice filter to enable suppressing the admin WordPress.com connection message. #19599
  164. Dev – Moved all photoswipe styles to photoswipe.css to make it easy to dequeue all the photoswipe styles. #19673
  165. Dev – Slash meta values before updating values in the data stores. #19675
  166. Dev – New wc_selected method to handle array key conversion to int. #19705
  167. Performance – Optimized saving of orders. Adds a transient for needs_processing, and only saves changes when saving order items. #18538
  168. Performance – Refactored the SQL query for WC_Customer_Download_Data_Store::get_downloads() to fetch available downloads faster. #18559
  169. Performance – Split the layered nav counts into multiple transient records by taxonomy and added a filter to allow bypassing caching. #19225
  170. Performance – Removed duplicate SET SESSION SQL_BIG_SELECTS=1 queries. #19502
  171. Performance – Avoid storing coupon _used_by data to prevent database bloat. #19669
  172. Performance – Introduced new wc_get_product_class() and wc_product_class() functions. #19639
  173. Performance – Series of tweaks aimed at reducing the number of queries performed #19918
  174. Template – Update cart coupon button from input to button type. #19059
  175. Template – Added woocommerce-form-register class to registration form. #19486
  176. Template – Added escaping to publish date. #19530
  177. Template – Added a template file for recent product reviews. #19711
  178. Template – Made add to cart templates more consistent between product types. #19666
  179. Localization – Switched Georgian Lari symbol to new UTF symbol. #19603
  180. Localization – Use ISO county codes for Irish states. #19658
  181. Localization – Use ISO county codes for BD states. #19744
  182. Localization – LR-Liberia states. #19709
  183. Localization – Update ZA tax rate. #19909
  184. Localization – Various spelling, grammar fixes, and phrasing improvements.
  185. Localization – Fix missing Bahrain country code. #20061
  1. Fix – Fixed is_numeric check which was affecting order subtotals/totals when using comma decimal separator.
  2. Fix – Add missing direct script access checks to loop templates.
  3. Fix – Added wp-post-image class to main image so variation images are swapped correctly.
  4. Fix – API – Adjusted schema for products shipping_class_id to integer.
  5. Fix – Made init tooltips event more specific to avoid conflict with Product Invoices extension.
  1. Fix – Fixed admin product SKU searching and searching non-published products.
  2. Fix – PHP7.1 notice when image height is empty.
  3. Fix – Prevent repeated update_option calls on page load due to php type juggling.
  4. Fix – Only do unsupported template rendering in the loop to prevent conflicts with other shortcodes on the shop page.
  5. Fix – Don’t prepend regular shortcodes with categories.
  6. Fix – If using get_catalog_ordering_args. remove the args when finished.
  7. Fix – Remove “Type” column on attributes table by default unless custom types are defined.
  8. Fix – Use verbose page rules when shop is in the URL, including shop base with category, to prevent 404s.
  9. Fix – Set woocommerce_hide_invisible_variations to true so disabled variation attributes are hidden on product pages.
  10. Fix – Help tip for webhook status.
  11. Fix – Shipping zone documentation help link was printing wrong.
  12. Fix – Stop background processing images when disabled via the filter.
  13. Fix – Only search when a search term is provided. Ignore empty strings.
  14. Fix – Fix check for external resources.
  15. Fix – Show full date for future orders.
  16. Fix – Prevent JS error is ‘orders’ row is disabled on order screen.
  17. Fix – Fix save of tax settings when no changes have been made.
  18. Fix – Add nonce to logout link on my account page so you do not need to confirm the action.
  19. Fix – Fix plain text entity replacement so currency symbols are included.
  20. Fix – API – Set status after order is created/updated so triggered emails are current.
  21. Fix – API – Fix single webhook endpoint.
  22. Tweak – Added help text for background image processing.
  23. Tweak – Added notice when background image processing is running, with cancel button.
  24. Tweak – Run background image processing less often by tracking changes.
  25. Tweak – Added system status tool to run background image processing manually.
  26. Tweak – If using Jetpack Photon, use that instead of background image processing.
  27. Tweak – Gallery thumbnail image size to handle small, square cropped images.
  28. Tweak – Helper function (and template version bump for image templates) to render gallery images.
  29. Tweak – Add help text for the default category to explain usage.
  30. Tweak – Allow changing the default product category.
  31. Tweak – Tweak mobile view of order preview to improve layout in non-english.
  32. Tweak – If selecting text, don’t link to order on row click.
  33. Localization – Remove isle of man state.
  1. Fix – Added woocommerce_output_product_categories to replace woocommerce_product_subcategories function to prevent outdated theme template files from outputting categories on the shop and category pages in err.
  2. Fix – Prevented columns from being set to anything lower than 1.
  3. Fix – Added extra error checking in Webhooks API to prevent notices when deleting Webhooks.
  4. Fix – Prevented list table classes being loaded multiple times. This also fixes compatibility with Smart Coupons extension.
  5. Fix – Removed stray debug string from order email template and fixed some typos.
  6. Fix – Set up the loop when calling wc_get_loop_prop. Fixes compatibility with some themes.
  7. Fix – Remove multiple application of filter ‘woocommerce_order_item_product’.
  8. Fix – Protect against theme support being defined too late. Fixes some issues with custom themes defining WooCommerce support incorrectly.
  9. Fix – Add fallback for themes that just get the pagination template.
  10. Fix – Made the on-the-fly image regen also regenerate missing sizes.
  11. Fix – Fixed missing user_id in webhook migration script.
  12. Fix – Allow uncategorized category to be sorted like the others.
  13. Fix – If theme support changes, we may need to flush permalinks since some are changed based on this flag.
  14. Fix – Fire hooks for pagination etc only when pagination is enabled.
  15. Fix – Default HTML in end wrapper template.
  16. Fix – Prevent regular pagination showing on archives for unsupported themes.
  17. Fix – Fix shop when shown as homepage in unsupported themes.
  18. Fix – Fix SKU mapping for placeholders during CSV import.
  19. Fix – Use CRUD search helper in admin products table so partial SKU search works.
  20. Fix – Fix bulk sale/regular price percentage handling.
  21. Fix – More specificity on smallscreen style override for columns.
  22. Tweak – Add notice for moved store notice setting.
  23. Tweak – Allow removing coupons on editable orders only.
  24. Tweak – Extended the background processing library to avoid changing methods in the library.
  25. Tweak – Do not show row settings if something is managing the number of products per page.
  26. Tweak – Allow devs to add ‘no-link’ class to elements to prevent order view link being triggered on row click.
  27. Tweak – Made woocommerce_resize_images filter more useful by calling it later.
  28. Tweak – Revert default columns back to 4 so it’s consistent with 3.2.
  1. Feature – Improved default appearance in themes which do not support WooCommerce, making the shop page shortcode based.
  2. Feature – Products shortcodes; improved random sorting, with some caching.
  3. Feature – Products shortcodes; support for pagination.
  4. Feature – Added new options to the WordPress Appearance Customizer; control the product grid (rows and columns), and image sizes.
  5. Feature – Improved how image sizes are defined and calculated. Set an aspect ratio (custom, 1:1, uncropped) and image sizes will be automagically calculated based on widths.
  6. Feature – Changing image sizes will trigger automatic thumbnail regeneration in the background.
  7. Feature – Improved how downloads are stored within products, and added new reporting/logging features to track who downloaded what, when.
  8. Feature – Improved the overall appearance of the backend orders list, and added a new ‘preview’ button to quickly see order details.
  9. Feature – New default sample data and placeholders.
  10. Feature – Added sandbox and live API details to the PayPal standard data, as well as an indication on the checkout to what mode is currently active. PayPal IPN email notifications are also now optional.
  11. Feature – Introduced product category threshold filter (woocommerce_product_category_filter_threshold). AJAX powered select will kick in when you have over 100 categories.
  12. Feature – Added add_to_cart_description method and aria-labels to cart buttons in the loop for accessibility.
  13. Feature – Ability to search in logs when the database logger is used.
  14. Performance – Adjusted how permalinks are retrieved and saved to avoid switching locales on each page load.
  15. Performance – Added cache when loading product variation attributes.
  16. Fix – Fix wc_notice_count logic.
  17. Fix – Correct bulk edit price formatting.
  18. Fix – Ajax add-to-cart button shortcode fix for variations.
  19. Tweak – Update billing if account form changes.
  20. Tweak – Remove videos from help sections.
  21. Tweak – Preserve seconds when saving order date.
  22. Tweak – Allow quantities less than 1, but not 0, in admin.
  23. Tweak – Post types with no archives should not show in breadcrumb.
  24. Tweak – Only load session handler class on frontend not during cron.
  25. Tweak – Moved the ‘Store Notice” option into the customizer.
  26. Tweak – Checkout Postcode / Zip validation error message was missing Billing / Shipping Identification.
  27. Tweak – Added Iris color picker validation.
  28. Tweak – Use scrollIntoView on checkout.
  29. Tweak – Converted input submit elements to button submit elements across the entire codebase for consistency.
  30. Tweak – Added {site_title} replacement for email footers.
  31. Tweak – Added delete product confirmation if a product has had sales.
  32. Tweak – Improved when “incl. VAT” is displayed in cart totals.
  33. Tweak – Use base text color for links in email templates.
  34. Tweak – Show theme overrides that are done through the wc_get_template filter in the system status report.
  35. Tweak – Added nofollow tags in layered nav to prevent duplicate indexed content.
  36. Tweak – Hide “incl. VAT” when no rates are defined in “single total” display mode.
  37. Tweak – Added replay protection for refunds.
  38. Tweak – GeoDB empty file handling.
  39. Tweak – Let wp_signon handle email to username conversion.
  40. Tweak – Made email field wider on checkout.
  41. Tweak – Post entire shipping selection when showing multiple packages.
  42. Dev – REST API – Orders should be created for users who exist on the site only.
  43. Dev – REST API – Fixed default value of “dp” on orders and refunds endpoints.
  44. Dev – Theming – Added theme support variables to declare image sizes used for products.
  45. Dev – Theming – Added support for single-product-postname.php template files.
  46. Dev – Added actions before calculations order totals and taxes and is_vat_excempt support.
  47. Dev – Add filter ‘woocommerce_coupon_get_apply_quantity’.
  48. Dev – Grouped products; added filters to allow custom columns and changes to values.
  49. Dev – Allow for cloning the WC_Cart object
  50. Dev – Apply filters to registration-error-email-exists error.
  51. Dev – Added woocommerce_cross_sells_order filter.
  52. Dev – Add order-details before hooks to complement existing hooks.
  53. Dev – WC_CHUNK_SIZE constant for controlling readfile.
  54. Dev – Add short circuit to customer bought product function.
  55. Dev – Added a wc_caught_exception method to aid with logging.
  56. Dev – Added Data stores and CRUD for working with Webhooks.
  57. Dev – Bumped minimum WP version requirement to 4.5 and removed legacy API files.
  58. Dev – New actions – woocommerce_order_details_before_order_table_items, woocommerce_order_details_after_order_table_items and woocommerce_order_details_before_order_table
  59. Dev – Passed widget_id to content-widget-product.php so actions can be ran conditionally, and added sanitisation to woocommerce_before_widget_product_list and woocommerce_after_widget_product_list.
  60. Dev – Improved the is_internal_meta_key checks to consider getters and setters.
  61. Dev – Cleaned up the Order Customer Details template.
  62. Dev – JavaScript payment_method_selected events on checkout.
  63. Dev – Add new $order->get_edit_order_url() method.
  64. Dev – Pass through options to zoom, flexslider, and photoswipe.
  65. Dev – Added actions before and after scheduled sales initiation and completion.
  66. Localization – Add direction character to currency output.
  67. Localization – States for Tanzania and Moldova.
  1. Fix – CSV Importer – Fix ID mapping to existing IDs.
  2. Fix – CSV Importer – Unslash header fields to avoid extra slashes.
  3. Fix – CSV Importer – Allow import and export of draft products.
  4. Fix – CSV Importer – Get global attribute ID only when is a global attribute.
  5. Fix – Remove URL fragment when appending geolocation hash.
  6. Fix – Additional cart rounding fixes so rounding before subtotal works again. Added more unit tests.
  7. Fix – Add BOM to exported report CSVs.
  8. Fix – is_visible should ensure product is is not trashed before returning true.
  9. Fix – Return packages with no rates back to the cart so the shipping calculator is displayed even when the current country is not shippable.
  10. Fix – Merge session and persistent carts when both exists after login.
  11. Fix – Remove „wc_error“ query string after login.
  12. Fix – Allow woocommerce_form_field() have ‚custom_attributes‘ equal 0.
  13. Fix – Bulk actions in status logs table.
  14. Fix – Exclude add-to-cart from pagination links.
  15. Fix – Updated $GLOBALS[‚post‘] data in products shortcode to prevent theme conflicts.
  16. Fix – Only remove base taxes in cart totals class if item is taxable.
  17. Fix – REST API – Fixed date format in reports schema.
  18. Fix – REST API – Updated product categories image schema.
  19. Fix – REST API – UUse KSES for purchase_note like in admin.
  20. Fix – REST API – Filter passed images before processing so they can be unset via querystring.
  21. Tweak – Use protected instead of private methods to allow easy override in session handler.
  22. Tweak – wc_lostpassword_url should not be used before init – added warning.Localization – Update Japanese prefectures to include prefecture type.