== Changelog == = 5.0.0 - 2021-02-09 = **WooCommerce** * 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 **WooCommerce Admin - 1.9.0** * Fix - Add Customer Type column to the Orders report table. #5820 * Fix - Product exclusion filter on Orders Report. * Fix - Typo in Variation Stats DataStore context filter value. * Fix - support custom attributes in Attribute advanced report filter. * Fix - Don't show Stock and Reviews Homescreen panels too early. * Tweak - Remove deprecated use of Jetpack in shipping label banner. #5929 * Fix - Undefined `$collate` variable when database does not have collation capability. #5992 * Tweak - Remove `visit_count` from track, and update task count logic. #5996 * Fix - Moved certified owner label for review to title. ##5877 * Fix - Move collapsible config to panels object, to allow for more control. #5855 * Enhancement - Show Help panel tooltip when user visits unfinished task more then once. #5826 * Tweak - Fix inconsistent REST API paramater name for customer type filtering. * Enhancement - Tasks extensibility in Home Screen. #5794 * Enhancement - Add page parameter to override default wc-admin page in Navigation API. #5821 * Fix - Invalidate product count if the last product was updated in the list. #5790 * Fix - Updating (non wordpress user) customer with order data * Dev - Add documentation for filter `woocommerce_admin_pages_list` and `wc_admin_register_page` #5844 * Dev - Revert work done in #4857 for automated shipping after OBW is completed #5971 * Add - Welcome modal when coming from Calypso #6004 * Enhancement - Add an a/b experiment for installing free business features #5786 * Dev - Add `onChangeCallback` feature to the wc-admin `
` component #5786 * Fix - Generate JSON translation chunks on plugin activation #6028 * Dev - Add merchant email notifications #5922 * Add - Email note to add first product. #6024 * Add - Note for users coming from Calypso. #6030 * Enhancement - Add an "unread" indicator to inbox messages. #6047 * Add - Manage activity from home screen inbox message. #6072 = 4.9.2 2021-01-25 = * Tweak - Disable untested plugin's notice from System Status and Plugin's page. #28840 = 4.9.1 2021-01-19 = * Fix - Reverts #28204 to ensure compatibility with extensions using legacy do_action calls. #28835 = 4.9.0 2021-01-12 = **WooCommerce** * 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 **WooCommerce - Admin 1.8.0 & 1.8.1** * Enhancement - Add “filter by variations in reports” inbox note. #5208 * Enhancement - Tasks extensibility in Home Screen. #5794 * Enhancement - Add page parameter to override default wc-admin page in Navigation API. #5821 * Enhancement - Introduce the customer effort score (CES) feature. * Enhancement - Rework task extensibility in the homescreen. #5794 * Enhancement - Migrate the reviews panel to the homescreen. #5706 * Enhancement - Migrate reviews panel to home screen. #5706 * Enhancement - Add Razorpay to payment task for stores in India – #5775 * Enhancement - Migrate Stock Panel to Homescreen. #5729 * Enhancement - Add enhanced placeholders for Marketing components. #5611 * Enhancement - Allow switching on/off the navigation feature in plugin and core builds. #5697 * Fix - Product exclusion filter on Orders Report. * Fix - Typo in Variation Stats DataStore context filter value. #5784 * Fix - Move collapsible config to panels object, to allow for more control. #5855 * Fix - Invalidate product count if the last product was updated in the list. #5790 * Fix - Add Customer Type column to the Orders report table. #5820 * Fix - Product exclusion filter on Orders Report. #5822 * Fix - Show the customer type column in Orders report table. #5820 * Fix - make sure ‘Customers’ page updates after order update. #5776 * Fix - Fix fatal errors when child themes are installed in a subdirectory. #5783 * Fix - Allow actionable statuses in orders endpoint(s) filters. #5733 * Fix - snackbar dismissal bug. #5696 * Fix - Only import the Gridicons we need, to reduce package size. #5668 * Fix - Stop order panels flickering on load. #5655 * Fix - Load wc-tracks to avoid fatal errors. #5645 #5638 * Fix - Preventing desktop-sized navigation placeholder from appearing on mobile during load. #5616 * Fix - Completed tasks tracking causing infinite loop #5941 * Fix - Remove Navigation access #5940 * Fix - Compile the debug module so it can be used in older browsers like IE11. #5968 * Tweak - Fix inconsistent REST API parameter name for customer type filtering. #5823 * Tweak - Improve styles of the tax task. #5709 * Tweak - Do not show store setup link on the homescreen. #5801 * Tweak - Revert the #5001 work to order tasks by completion. #5721 * Tweak - Revert the smart tax defaults work. #5720 * Tweak - Do not show store setup activity panel on the homescreen. #5801 * Tweak - Don’t show the Orders panel on the homescreen with the Task List. #5552 * Tweak - Continue showing tasklist even if list is complete, only hide if set to hidden. #5673 * Tweak - Remove check for Jetpack and WCS from Stripe onboarding task. #4933 **WooCommerce Blocks 3.9.0 & 4.0.0** * Enhancements - Expose `discount_type` in Store API coupon endpoints. ([3399](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3399)) * Enhancements - Exclude checkout-draft orders from WC Admin reports and My Account > Orders. ([3379](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3379)) * Fix - Hide spinner on cart block's "Proceed to Checkout" link when page unloads. ([3436](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3436)) * Fix - Fixed express payment methods processing not completing when Stripe payment method active. ([3432](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3432)) * Fix - Refresh PaymentRequest after cancelling payment to prevent addresses remaining populated on repeat attempts. ([3430](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3430)) * Fix - Ensure "Add a note to your order" section is styled correctly when disabled. ([3427](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3427)) * Fix - Prevent checkout step heading text overlapping actual heading on small viewports. ([3425](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3425)) * Fix - Improve Stripe payment request API payment method availability. ([3424](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3424)) * Fix - Stop hidden products from being linked in cart and checkout blocks. ([3415](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3415)) * Fix - Show Express Payment Method Error Notices after Payment Failure. ([3410](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3410)) * Fix - Fix cart block `isLarge` console error in the editor when running WordPress 5.6 beta. ([3408](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3408)) * Fix - Orders not being placed when paying with an Express payment method from the Cart block. ([3403](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3403)) * Fix - Fix incorrect usage of static method in Stripe payment method integration. ([3400](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3400)) * Fix - Cart and checkout should respect the global "Hide shipping costs until an address is entered" setting. ([3383](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3383)) * Fix - Sync shipping address with billing address when shipping address fields are disabled. This fixes a bug where taxes would not reflect changes in billing address when they are set to be calculated from billing address ([3358](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3358)) * Fix - Checkout block: Prevent `Create an account` from creating up a user account if the order fails coupon validation. ([3423](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3423)) * Fix - Make sure cart is initialized before the CartItems route is used in the Store API. ([3488](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3488)) * Fix - Fix notice close button color in Twenty Twenty One dark mode. ([3472](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3472)) * Fix - Remove held stock for a draft order if an item is removed from the cart. ([3468](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3468)) * Fix - Ensure correct alignment of checkout notice's dismiss button. ([3455](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/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](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3429)) * Dev - Refactored and reordered Store API checkout processing to handle various edge cases and better support future extensibility. ([3454](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3454)) * Dev - Support a plain js configuration argument to payment method registration APIs. ([3404](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3404)) * Dev - Change register_endpoint_data to use an array of params instead of individual params. ([3478](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3478)) * Dev - Expose store/cart via ExtendRestApi to extensions. ([3445](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3445)) * Dev - Added formatting classes to the Store API for extensions to consume. = 4.8.0 - 2020-12-08 = **WooCommerce** * Enhancement - Limited the system status report's "not tested with version" warning to major versions. #28114 * Enhancement - Add shipping, tax, and fee lines to refund REST API response. #28241 * Enhancement - Added support for Twenty Twenty-One theme. #28134 * Tweak - Reduced the memory usage of AJAX product searches. #28177 * Tweak - Replaced deprecated jQuery functionality. #28005, #28058 * Tweak - Hid "Add to cart" button for out of stock grouped products. #28169 * Tweak - Made product date deserialization more explicit. #28052 * Fix - Stock adjustment when deleting a refunded order item. #28069 * Fix - Avatar display for recent reviews widget in admin area. #28067 * Fix - Incorrect product sorting user capability. #28062 * Fix - PayPal response emptying uninitialized cart. #28027 * Fix - Display of visual feedback after pressing "Place Order" in `Twenty Twenty` and `Twenty Nineteen` themes #27997 * Fix - Category and tag bulk deletion message. #27856 * Fix - Corrected Puerto Rico address validation. #28465 * Dev - Filter: `woocommerce_product_has_options` to products. #27514 * Dev - Added error message to `checkout_error` JS event. #28101 * Dev - Replaced usage of deprecated `woocommerce_reset_loop()` in product category shortcodes. #28242 * Dev - Set "Tested up to" header to WordPress 5.6. #28388 * Localization - Jamaican currency, states, and address structure. #27723 * Localization - Better display of inclusive taxes during checkout. #28064 * Localization - Validation for Belgium postcodes. #28145 **WooCommerce Admin - 1.7.0 & 1.7.1 & 1.7.2 & 1.7.3** * Enhancement - Variations report. #5167 * Enhancement - Add ability to toggle homescreen layouts. #5429 * Enhancement - Accordion component #5474 * Enhancement - Badge component #5520 * Tweak - Remove customer analytics data upon order deletion #5171 * Tweak - Updating Stripe key field validation to support test keys #5201 * Tweak - Wrap search control selected items in list #5231 * Tweak - Update store setup link to redirect to setup wizard #5200 * Tweak - Removing breadcrumbs from wc-admin header #5232 * Tweak - Use consistent markdown headers in navigation readme #5417 * Tweak - Remove Store Setup Alert #5499 * Tweak - Customers: Update column heading for date registered #5542 * Tweak - alter homescreen layout. #5465 * Fix - Added support for custom actionable statuses. #5550 * Fix - wrong casing used on the PayPal brand name #5514 🎉 @rtpHarry * Fix - Import @wordpress/base-styles/default-custom-properties #5491 * Fix - downloads report #5441 * Fix - missing custom autocompleter attribute in Search component of Advanced Filter #5448 * Fix - empty no posts state on Marketing page. #5411 * Fix - visual issues in the Search component. #5199 * Fix - Inconsistent line endings in readme.txt. #5281 * Fix - popover menu to expand menu item width to 100% #5519 * Fix - Wrong class name for querying Categories Report #5522 🎉 @zzap * Fix - Remove label printing mention for non us countries #5527 * Fix - First product script navigation dependency #5584 * Fix - Added support for custom actionable statuses #5550 * Fix - Display the store management links last on the homescreen #5579 * Fix - Ensure the "Set up additional payment providers" inbox notification is shown when relevant after completing the OBW. #5547 * Fix - Load wc-tracks in the homepage notice admin script. #5638 * Fix - Link component prop caused a React warning. #5653 * Fix - Flickering of order panel while loading. #5655 * Fix - Tax code duplicated when clicking the button to remove. #5638 * Fix - Restore Autoloading of WooCommerce Classes in PHP Tests. #5650 * Fix - Skip WC Payment plugin note if plugin not added through the onboarding process. #5619 * Fix - Use error_log() to log the deprecated class calls instead of `_deprecated_function()`. #5802 * Fix - Don't show the Orders panel on the homescreen with the Task List. #5552 * Fix - Home Screen: Do not show store setup activity panel. #5801 * Dev - Home Screen - migrate orders panel. #5455 * Dev - Store Profiler - include Creative Mail as a free extension #5543 * Dev - Add undefined check in intervals data util #5546 * Dev - Fix wakeup visibility for PHP 8 compatibility #5211 * Dev - Fix header height and positioning for wc nav #5173 * Dev - Add remote inbox notification rule processors for country and state #5203 * Dev - Rename admin notes classes and file names to fit conventions #514 * Dev - remove checks of store registration that are no longer needed. #5170 * Dev - Fix version update script for composer.json #5165 * Dev - Remove getAdminLink from data package #5158 * Dev - Bump @woocommerce/components dependencies. #5153 * Dev - Add note status remote inbox notifications rule processor #5207 * Dev - Make code chunk filenames more stable. #5229 * Dev - Inbox Panel component moved #5252 * Dev - Added animation to Inbox note deletion #5263 * Dev - Update starter pack dependencies #5254 * Dev - Ensure test zips have latest packages from npm and composer. #5313 * Dev - Add remote inbox notifications rule allowing access to any option #5206 * Dev - Add manage orders on the go admin note #5159 * Dev - Add WooCommerceDependencyExtractionWebpackPlugin package #5198 * Dev - Migrate devdocs examples to Storybook stories #5271 * Dev - Remove Enzyme in favor of React Testing Library #5299 * Dev - Add exclusion rule to PHPCS config for TODO comments #5388 * Dev - Remove no longer used isPanelEmpty logic. #5423 * Dev - Use new @wordpress/components Card on Marketing page. #5428 * Dev - Add PSR-4 naming checks to PHP linting. #5512 * Dev - Rearrange the store management links under categories add filter woocommerce_admin_homescreen_quicklinks. #5476 * Dev - Restyle the setup task list header to display incomplete tasks #5520 **WooCommerce Blocks - 3.7.0 & 3.7.1 & 3.8.0 & 3.8.1** * Enhancement - Allow shoppers to sign-up for an account from the Checkout block. #3331 * Enhancement - Standardise & refactor colors scss to align with Gutenberg colors and WooCommerce brand. #3300 * Tweak - Show the phone number field in the billing section when shipping is disabled in settings. #3376 * Tweak - Add new doc referencing feature flags and experimental interfaces. #3348 * Tweak - Add __experimental_woocommerce_blocks_checkout_order_processed action. #3238 * Fix - Fix PHP 8 error when argument is not invocable in AssetsDataRegistry::Add_data. #3315 * Fix - Improve layout of Cart block line item quantity selector & price on smaller screens. #3299 * Fix - Correctly process orders with $0 total (e.g. via coupon) in Checkout block. #3298 * Fix - Respect Enable Taxes setting for checkout block taxes display. #3291 * Fix - Fix 3D secure payment errors. #3272 * Fix - Show current selected attributes when re-edit Products by Attribute block. #3185 * Fix - Ensure that accounts are not created via checkout block request if account registration is disabled for WooCommerce. #3371 * Fix - radio controls and checkboxes in Twenty Twenty One dark theme. #3446 * Fix - Twenty Twenty One Price filter, Active filters and radio control styling. #3444 * Fix - Twenty Twenty One Button and Placeholder Styling. #3443 * Fix - checkbox and textarea styles in Twenty Twenty One when it has dark controls active. #3450 = 4.7.1 - 2020-11-24 = **WooCommerce** * 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_.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 = 4.7.0 - 2020-11-10 = **WooCommerce** * 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 **WooCommerce Blocks - 3.5.0 & 3.6.0** * Make 'retry' property on errors from checkoutAfterProcessingWithSuccess/Error observers default to true if it's undefined. ([3261](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3261)) * Ensure new payment methods are only displayed when no saved payment method is selected. ([3247](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3247)) * Load WC Blocks CSS after editor CSS. ([3219](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3219)) * Restore saved payment method data after closing an express payment method. ([3210](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3210)) * Use light default background colour for country/state dropdowns. ([3189](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3189)) * Fix broken Express Payment Method use in the Checkout block for logged out or incognito users. ([3165](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3165)) * Fix State label for Spain. ([3147](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3147)) * Don't throw an error when registering a payment method fails. ([3134](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3134)) * Don't load contents of payment method hidden tabs. ([3227](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3227)) * Use noticeContexts from useEmitResponse instead of hardcoded values. ([3161](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3161)) **WooCommerce Admin - 1.6.3** * Tweak: Add BR and IN to list of stripe countries [#5377](https://github.com/woocommerce/woocommerce-admin/pull/5377) * Fix: Redirect instead of stalling on WCPay Inbox note action [#5413](https://github.com/woocommerce/woocommerce-admin/pull/5413) = 4.6.2 - 2020-11-05 = **WooCommerce** * Prevent checkout from creating accounts when related setting is disabled. = 4.6.1 - 2020-10-21 = **WooCommerce** * Update woocommerce-admin to 1.6.2. #28006 **WooCommerce Admin - 1.6.2** * Fix for missing activity panels. #5400 * Adds array casting on onboarding profile option. #5415 * Gutenberg compatibility fix for home screen inbox. #5416 * Gutenberg compat fix for empty reports (leaderboard, customers report). #5409 * i18n fix for Performance Indicators labels Home Screen. #5405 = 4.6.0 - 2020-10-14 = **WooCommerce** * 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 **WooCommerce Admin - 1.6.1** - Dev: Reviews wp.data store #4941 - Dev: Notes wp.data store #4943 - Dev: Add woocommerce_analytics_update_order_stats_data filter #4934 - Dev: Remove unused lib/date #4987 - Dev: Exports wp.data store #4958 - Dev: Remove _experimentalResolveSelect usage #4949 - Dev: Items wp.data store #5009 - Dev: Import wp.data store #4982 - Dev: Remove `fresh-data` wc-api dependency #5075 - Dev: Add initial e2e test suite #5028 - Dev: Combine translation chunks when languages updated #5094 - Dev: Add filters for columns in reports #5134 - Dev: Don't include "min" suffix in build JS files for core build #5130 - Dev: Store Profiler - Industry step: reduced padding and removed industry #5157 - Dev: Remove product settings video note #5213 - Enhancement: Add free local shipping zone on profile complete #4857 - Enhancement: Add woocommerce/tracks pacakage #5107 - Enhancement: Add filter to allow modification of report columns #4984 - Enhancement: Add WooCommerce Mobile Banner #5037 - Enhancement: Add Product Attribute advanced filter #5038 - Enhancement: Add support for advanced filters with multiple instances #5050 - Enhancement: Automated taxes smart default #5076 - Enhancement: Add product attribute filter to Orders report #5068 - Tweak: Remove payment task actions #4917 - Tweak: Don't import from React, use @wordpress/element #4978 - Tweak: Use filtered headers array in onColumnsChange callback #4964 - Tweak: Orders panel get selectors form wc-api #4997 - Tweak: Group tasks by completion in setup checklist #5001 - Tweak: Replace useFilters with WP withFilters #4962 - Tweak: Refactor header component to function #5023 - Tweak: Refactor task list status to onboarding data store #4998 - Tweak: Add monthly pricing toggle in OBW #5015 - Tweak: OBW style updates #5059 - Tweak: Remove chevron icons from Fish Setup task list #5114 - Tweak: Add option to not charge sales tax in setup checklist #5111 - Tweak: Enable homescreen for all sites #5108 - Tweak: Enable remote inbox in all envs #5160 - Tweak: Add opt-out for remote inbox #5162 - Fix: Table componenbt onQueryChange default prop #4959 - Fix: Dependency declarations in woocommerce/components #4972 - Fix: Text domains in stock report #4980 - Fix: Typo in reports store action creators #4992 - Fix: Note data actions and consolidate query constants #4990 - Fix: Advanced filters screen reader text #5032 - Fix: Show full variation name in products report #5056 - Fix: Card to connect to woocommerce.com #5129 - Fix: Search all variation attribute values #5141 - Fix: Force float before addition in taxes #5149 - Fix: Enlarged store profiler text in two steps #5194 - Fix: Bug where sometimes the task list would not vanish after being completed #5205 **WooCommerce Blocks - 3.2.0, 3.3.0 and 3.4.0** - Fix an undefined variable PHP notice related to Product REST API. [#2962](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/2962) - Fixed an issue that was making some blocks not to render correctly in the Empty cart template. [#2904](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/2904) - Fixes a styling issue in the Product Search block in the editor. [#3014](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3014) - Improved focus styles of error states on form elements. [#2974](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/2974) - Deprecate wc.wcSettings.setSetting function. [#3010](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3010) - Improve behaviour of draft order cleanup to account for clobbered custom shop order status. [#2912](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/2912) - Fixed styling options of the Product Title block (in All Products). [3095](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3095) - Fix product reviews schema date fields to use new (WP 5.5) `date-time` format. ([3109](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3109)) - Use wp_login_url instead of hardcoding login path. ([3090](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3090)) - Create DebouncedValidatedTextInput component. ([3108](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3108)) - Merge ProductPrice atomic block and component. ([3065](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3065)) = 4.5.2 - 2020-09-14 = * Fix - Revert the changes in filtering by attribute that were introduced in WooCommerce 4.4. #27625 * Fix - Adjusted validation to allow for variations with "0" as an attribute value. #27633 = 4.5.1 - 2020-09-09 = * Fix - Check for state and postcode fields only if required in `show_shipping`. #27628 = 4.5.0 - 2020-09-08 = **WooCommerce** * 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 **WooCommerce Admin 1.5.0** * Enhancement - Add eWAY to Payment Setup for AU/NZ Stores. #4947 * Fix - Use clipRule and fillRule props. #4889, part of #4864 * Fix - Admin order page shipping label prompt compatibility with WCS 1.24. #5025 * Dev - New notification: Don't forget to test your checkout. #4805 * Dev - Enable tax calculation before redirecting to standard tax rates page. #4878 * Dev - Added event recording to Orders, Stock, and Reviews panels. #4861 * Dev - Added personalization to purchase extension task. #4849 * Dev - Display modal with more info about the new homescreen. #4890 * Dev - Task list - add a shortcut back to store setup. #4853 * Dev - Update the colors of the illustrations in the welcome modal. #4945 = 4.4.1 - 2020-08-19 = **WooCommerce** * Fix - Add protection to run adjust methods only if product query. #27396 * Dev - Stripped the internals of the DI Container to address plugin dependency conflicts it caused. #27395 = 4.4.0 - 2020-08-18 = **WooCommerce** * 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 **REST API 1.0.15** * Enhancement - Introduced X-WP-Total header for product attributes GET endpoint listing the number of entries in the response. woocommerce/woocommerce-rest-api#171 * Enhancement - Introduced X-WP-TotalPages header for product attributes GET endpoint listing the number of pages that can be fetched. woocommerce/woocommerce-rest-api#171 * Enhancement - Introduced the modified option for orderby fetch requests in post based resources. woocommerce/woocommerce-rest-api#226 * Enhancement - Compatibility fixes for WordPress 5.5. woocommerce/woocommerce-rest-api#232 * Fix - Ensured Action Scheduler transients are cleared by "Clear Transients" tool. woocommerce/woocommerce-rest-api#152 * Fix - Corrected the schema datatype for coupon expiry_date, date_expires, and date_expires_gmt fields. woocommerce/woocommerce-rest-api#176 * Fix - Query parameters are now passed correctly when using the batch product variation endpoints. woocommerce/woocommerce-rest-api#191 * Fix - Fix regression and restore backward compatibility for date-time and mixed data types. woocommerce/woocommerce-rest-api#238 **WooCommerce Admin 1.4.0** * Enhancement - Move the WooCommerce > Coupons dashboard menu item to Marketing > Coupons. #4786 * Fix - Installation of child theme zip files from the store setup wizard. #4852 * Fix - Center the skip link on the theme selection step. #4847 * Fix - Removed item "profiler" from the menu. #4851 * Fix - PHP notices when hosts block certain WP scripts. #4856 * Fix - Remove new WP 5.5 meta box arrows in the shipping banner. #4914 * Fix - Allow revisiting of the payments task. #4918 * Fix - Use of Jetpack autoloader. #4920 * Fix - Only show WCPay task in US based stores. #4899 * Fix - Polyfill core-data saveUser() on WP 5.3.x. #4869 * Fix - Product types step bugs in onboarding wizard. #4900 * Fix - Center all descriptive text on onboarding wizard steps. #4902 * Fix - Match the requires version to the exact WordPress version number in readme.txt. #4956 * Fix - Change account required text on biz step in onboarding wizard. #4909 * Fix - Fix industry args type in REST API. #4974 * Fix - Update style on shipping banner. #4948 * Fix - CSS Fixes for Business Features Popover ( parts 1&2 ). #4994 * Dev - Add the experimental resolver to WCA data package. #4862 * Dev - Fix linter errors. #4904 * Dev - Fix usage of "package" tag in file headers. #4940 * Dev - Update Jetpack Autoloader to match Woo Core. #4993 **WooCommerce Blocks 3.0.0** * Build - Updated the automattic/jetpack-autoloader package to the 2.0 branch. #2847 * Enhancement - Add support for the Bank Transfer (BACS) payment method in the Checkout block. #2821 * Enhancement - Several improvements to make Credit Card input fields display more consistent across different themes and viewport sizes. #2869 * Enhancement - Cart and Checkout blocks show a notification for products on backorder. #2833 * Enhancement - Chip styles of the Filter Products by Attribute and Active Filters have been updated to give a more consistent experience. #2765 * Enhancement - Add protection for rogue filters on order queries when executing cleanup draft orders logic. #2874 * Enhancement - Extend payment gateway extension API so gateways (payment methods) can dynamically disable (hide), based on checkout or order data (such as cart items or shipping method). For example, Cash on Delivery can limit availability to specific shipping methods only. #2840 [DN] * Enhancement - Support Cash on Delivery core payment gateway in the Checkout block. #2831 * Performance - Don't load shortcode Cart and Checkout scripts when using the blocks. #2842 * Performance - Scripts only relevant to the frontend side of blocks are no longer loaded in the editor. #2788 * Performance - Lazy Loading Atomic Components. #2777 * Pefactor - Remove dashicon classes. #2848 **WooCommerce Blocks 3.1.0** * Fix - Missing permissions_callback arg in StoreApi route definitions. #2926 * Fix - 'Product Summary' in All Products block is not pulling in the short description of the product. #2913 * Dev - Add query filter when searching for a table. #2886 = 4.3.3 - 2020-08-14 = **WooCommerce REST API 1.0.10-pl-2** * Fix - Fix regression and restore backward compatibility for date-time and mixed datatypes. #239 = 4.3.2 - 2020-08-10 = **WooCommerce** * Fix - Remove new WP 5.5 meta box arrows from "Order data" and "Order items" meta boxes. #27173 * Fix - "Product type" dropdown missing from Product's data meta box on WP 5.5. #27170 **WooCommerce Blocks 2.7.3** * Fix - Fix missing permissions_callback arg in StoreApi route definitions. #2926 **WooCommerce REST API 1.0.10-pl-1** * Enhancement - Compatibility fixes for WordPress 5.5 #232 = 4.3.1 - 2020-07-21 = **WooCommerce Admin 1.3.1** * Fix - PHP Fatal errors when columns are missing from the Notes table. #4831 **WooCommerce Blocks 2.7.2** * Enhancement - Move Draft order logic behind feature flag. #2874 = 4.3.0 - 2020-07-08 = **WooCommerce** * 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 **REST API 1.0.10** * Enhancement - Add API tool to clear template cache. woocommerce/woocommerce-rest-api#212 * Enhancement - Add API tool to verify base DB tables. woocommerce/woocommerce-rest-api#188 **WooCommerce Admin 1.3.0** * Enhancement - Add Jetpack stats to performance indicatorts / homepage #4291 * Enhancement - New "Store Management" quick links card on WooCommerce home screen. #4350 * Enhancement - Inbox notifications layout updates #4218 * Enhancement - New Home Screen #4303 * Enhancement - Use WordPress Core colors for styling accents. #4558 * Tweak - make revenue report total sales column optional #4397 * Tweak - Adjustments to WooCommerce Payments setup task #4373 * Tweak - Handling of plugin installs in OBW #4411 * Tweak - Update design of Setup Checklist #4434 * Tweak - Add scrollable styling to left side of Table, and keep updated #4179 * Tweak - Add custom autocompleter support to Search component #4518 * Tweak - reduce asset filename length. #4535 * Tweak - Use single dash for country/state dropdown options #4553 * Tweak - Use label tag for toggleable shipping zones #4554 * Tweak - Make it easier to add submenu items to the Marketing menu #4561 * Tweak - Tag remove button style so it is properly centered. #4651 * Tweak - Tweak the embed page CSS so the top content sits better. #4622 * Tweak - Update summary number placeholder styles. #4682 * Fix - misaligned 'required' text on selects #4307 * Fix - exception when opening dashboard after selecting extensions to purchase #4357 * Fix - REST API collections schema #4377 * Fix - Monetary Advanced Filters in Customers Report with correct currency object prop. #4356 * Fix - In App purchase "back link" #4301 * Fix - Search results selectable by clicking on item text or icon #4474 * Fix - Filters' static query parameters #4458 * Fix - The WCPay method not appearing as recommended sometimes #4345 * Fix - Removed URLSearchParams method #4501 * Fix - REST API collections schema. #4484 * Fix - null issue in wpNavMenuClassChange #4513 🎉 gradosevic * Fix - RTL stylesheet loading for split code chunks. #4542 * Fix - Don't show store location step in tax and shipping tasks if the address has already been provided #4507 * Fix - Check for enabled methods before payment task completion #4530 * Fix - Solved a problem with the method onChoose in the last onboarding step. #4583 * Fix - Only mark purchase task as complete when products exist #4574 * Fix - WCPay sometimes not appearing on the task list. #4647 * Fix - Fix inbox spacing. #4632 * Fix - Don't include sourcemaps or unminified JS for "core" builds. #4642 * Fix - Add a bottom border to the Install Jetpack CTA. #4589 * Fix - Style cleanup from components update. #4606 * Fix - Check that the possibly_add_note function exists before calling it. #4680 * Fix - Remove unnecessary rest_api_init action that caused incompatibility issues with other plugins. #4691 * Fix - Fix dashboard task list menu placement. #4664 * Fix - Added styles to the unread notes counter in the inbox panel. #4690 * Fix - Fix spacing between stats overview and store management cards. #4681 * Fix - Added default value to the note icon. #4745 * Fix - Unnecessary REST API usage leading to potential overflow of Jetpack option sizes. #4755 * Dev - Add jest-dom eslint plugin. #4327 * Dev - Migrate onboarding data store to wp.data #4433 * Dev - Remove use of `IconButton` in favor of `Button` #4415 * Dev - Fix error handling for plugins on server error #4462 * Dev - update @wordpress/components and @wordpress/base*styles #4427 * Dev - Migrate user store to wp.data #4505 * Dev - Add options data store to wp.data #4144 * Dev - Runtime feature config override #4523 * Dev - Add deprecation notice for install_plugin() #4713 * Dev - Only load non-minified js files when SCRIPT_DEBUG is on, and env is development or plugin. #4747 **WooCommerce Admin 1.2.4** * Tweak - reduce asset filename length and remove tilde characters. #4535 * Fix - RTL stylesheet loading for split code chunks. #4542 **WooCommerce Blocks 2.7.1** * Fix - Use IE11 friendly code for Dashicon component replacement. #2708 * Fix - Fix PHP warnings produced by StoreAPI endpoints when variations have no prices. #2722 * Fix - Fix missing scoped variable in closure and missing schema definitions. #2724 * Fix - Fix undefined index notice for query_type on the product collection data endpoint. #2723 **WooCommerce Blocks 2.7.0** * Enhancement - Filter block font sizes have been adjusted to be in line with other blocks. #2594 * Enhancement - The All Products block and the other product grid blocks now share more styles and the markup is more similar (see release post or docs to learn how to undo this change). #2428 [DN] * Enhancement - The Cart and Checkout blocks now use the heading styles provided by the theme. #2597 * Enhancement - The Cart block titles have been merged into one. #2615 * Enhancement - The item count badges of the Checkout block have been updated so it looks better in light & dark backgrounds. #2619 * Enhancement - Checkout step progress indicator design has been updated to match the theme headings style. #2649 * Performance - Reduce bundlesize of blocks using @wordpress/components directly. #2664 * Fix - Fix bug in Checkout block preventing a retry of credit card payment when first credit card used fails and a new one is tried. #2655 * Fix - Avoid some theme style properties leaking into the Cart and Checkout select controls. #2647 * Fix - Fixes to the product grid blocks in Twenty Twenty: discounted prices are no longer underlined and the On Sale badge is correctly positioned in the All Products block. #2573 * Fix - Improved alignment of credit card validation error messages. #2662 * Fix - Show the 'No shipping methods' placeholder in the editor with the _Checkout_ block if there are shipping methods but all of them are disabled. #2543 **WooCommerce Blocks 2.6.1** * Fix - Updated the wc_reserved_stock table for compatibility with versions of MySql < 5.6.5. #2590 **WooCommerce Blocks 2.6.0** * Enhancement - Add dropdown display style to Filter Products by Attribute block. #1255 * Enhancement - Add option to display a Filter button to Filter Products by Attribute block. #1332 * Enhancement - Add support for image for product categories block #1739 * Enhancement - An error notice will be shown in All Product if the customer is trying to add a product above stock or sold individually. #2278 * Performance - Improvements to REST API performance #2248 * Performance - Avoid loading Assets API during REST requests #2286 * Fix - Add placeholder to the on-sale products block when no results are found. #1519 * Fix - Added correct ellipsis character in Product Search block #1672 * Fix - If product is changed for featured product block, update the link in the button. #1894 * Fix - Import from `@woocommerce/settings` in `@woocommerce/block-settings` #2330 * Dev - Accessibility of the All Products block and filter blocks has been improved. #1656 * Dev - All Products Block: Update sorting labels to match frontend options #2462 * Dev - Change PropType validation for Icon component #1737 * Dev - Changed default rows and columns for product grid blocks to 3x3. #1613 * Dev - Check for instance of WP_Block in render_callback #2258 * Dev - Devs: `ENABLE_REVIEW_RATING` setting was renamed to `REVIEW_RATINGS_ENABLED` and now it also verifies reviews are enabled, to better match WooCommerce API. #1374 * Dev - Fix price filtering when stored prices do not match displayed prices (determined by tax settings). #1612 * Dev - HTML editing is no longer supported in several blocks. #1395 * Dev - Implement __experimentalCreateInterpolateElement for translations. #1736 * Dev - Load WooCommerce Core translations for 'Sale!' and some other strings if translations are unavailable for WooCommerce Blocks. #1694 * Dev - Prevent data hydration on REST requests #2176 * Dev - Show relationship between terms in the active filters block. #1630 * Dev - Table creation validation for install routine #2287 * Dev - Update the icons used in the blocks. #1644 = 4.2.2 - 2020-06-23 = **WooCommerce** * Fix - Put back the remove element for multiselects on selectWoo. #26849 = 4.2.1 - 2020-06-22 = **WooCommerce** * Security - Escape HTML in SelectWoo. **WooCommerce Admin 1.2.4** * Tweak: reduce asset filename length and remove tilde characters. #4535 * Fix: RTL stylesheet loading for split code chunks. #4542 = 4.2.0 - 2020-06-02 = **WooCommerce** * 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 **REST API 1.0.8** * 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 **WooCommerce Admin 1.2.3** * 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 = 4.1.1 - 2020-05-19 = * 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 = 4.1.0 - 2020-05-05 = **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 = 4.0.1 - 2020-03-18 = **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 = 4.0.0 - 2020-03-10 = * 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 = 3.9.3 - 2020-02-27 = * 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). = 3.9.2 - 2020-02-13 = * 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 = 3.9.1 - 2020-01-28 = * 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. = 3.9.0 - 2020-01-21 = * 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 = 3.8.0 - 2019-11-05 = * 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 * Dev - Fixed number of arguments in filters on WC_Emails class. #25312 * 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 * Fix - Fixed button HTML element in the OBW. #25056 * 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. = 3.7.1 - 2019-10-09 * 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. = 3.7.0 - 2019-08-12 = * 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 blocked 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 = 3.6.5 - 2019-07-02 = * 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 = 3.6.4 - 2019-05-27 = * Enhancement - Add notice to install WooCommerce Admin. #23659 * Fix - Tracks: Add check for OBW is-opting-in. #23772 * Fix - Use HTTP protocol for schema.org's availability. #23774 * Fix - Coupon usage limit checks based on email never ran when orders are created via wp-admin. #23775 * Fix - Duplicate out of stock notices when navigating from cart to checkout and back to cart. #23791 * Fix - Remove sensitive information from refund reason when manually refunding an order, and move it to an order note. #23739 * Tweak - Tracks: set cookie on admin_init instead of wp_loaded. #23787 * Dev - Fixed number of arguments for all occurrences of the woocommerce_valid_order_statuses_for_cancel filter. #23704 * Dev - REST API - Stop order creation if invalid data is sent. #23325 * Dev - Introduce new wc_load_cart function for dynamically loading and initializing the cart. #23794 = 3.6.3 - 2019-05-16 = * 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 = 3.6.2 - 2019-04-24 = * Fix - Fix CSS classname conflict with themes due to missing product object global. #23377 * Fix - Fix security check on email template preview page. #23356 * Fix - Prevent `wc_ascii_uasort_comparison` throwing notices in some server configs. #23363 * Fix - `is_request_to_rest_api` should check for wc endpoints only. #23372 * Fix - Fixed use of get_term_meta in REST API endpoints. #23457 * Fix - Fixed missing closing tag for log-in link for reviews. #23445 * Fix - Fixed average_rating in the db upgrade routine for lookup table. #23465 * Fix - More useful update notices if cron is disabled. #23383 * Fix - Prevent term ordering queries inserted by wc_terms_clauses from conflicting with custom where clauses. #23449 * Fix - When product lookup table is generating for the first time, avoid wrong stock statuses being set for variable products. #23455 * Fix - Ensure webhooks respect registered order args. #23444 * Fix - REST API - Return custom attribute with defined name instead of lowercase name. #23482 * Fix - Fix 3.6 conflict with Woo Blocks plugin 1.4. #23399 * Fix - Allow default sorting of WC taxonomies to be overwritten by get_terms orderby. #23477 * Fix - Improve wc_rating_count lookup table generation with large numbers of posts. #23486 * Fix - 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 = 3.6.1 - 2019-04-18 = * Fix - Remove calls to 'header_register_callback' to prevent conflicts with some hosting providers and PHP versions. = 3.6.0 - 2019-04-17 = * 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 = 3.5.8 - 2019-04-16 = * Security - Added escaping for states on the user profile screen. * Security - Added escaping for PhotoSwipe captions. * Security - Added escaping for SelectWoo selected options. = 3.5.7 - 2019-03-19 = * Security - Improved the way in which state fields are regenerated by JavaScript to ensure values are properly escaped. = 3.5.6 - 2019-03-07 = * 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 = 3.5.5 - 2019-02-20 = * 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. = 3.5.4 - 2019-01-21 = * 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 = 3.5.3 - 2018-12-20 = * Fix - Fix orders list in the admin after a change introduced in WordPress 5.0.2. #22273 = 3.5.2 - 2018-11-29 = * 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 = 3.5.1 - 2018-10-31 = * Fix - Use CRUD method to get product images to fix custom tables missing images. #21608 * Fix - Use HTML entity for times sign when outputting dimensions to fix RTL support. #21633 * Fix - Fix India address format to look nice in the shipping calculator. #21647 * Fix - Don't default gallery variation images to gallery thumbnail size if flexslider is disabled. #21655 * Fix - Revert show shipping behavior change to prevent missing shipping line on Cart page. #21658 * Fix - Removed non-existing WC_Product_Simple->set_date_created_gmt method. #21675 * Fix - Use correct comment_type when fetching recent reviews for widget. #21689 * Fix - Do not include strong tags as part of translation string on subscriptions disconnect message. #21690 * Fix - Make it possible to send webhooks with the v3 API. #21745 * Fix - Fix get_cart_from_session infinite loop when filters used. #21749 * Fix - Use array instead of string to define class for address line 2 input on checkout. #21757 * Fix - Make checkout fields priority work correctly again. #21763 * Tweak - Remove mentions of deprecated live shipping rates from setup wizard. #21645 * Tweak- Update product block editor hook for WP 5.0. #21703 * Tweak - Merged similar strings to reduce number of translateable strings. #21704 * Tweak - Remove hated "Over to you" text from emails. #21709 * Tweak - Revert problematiic customer as post author change. #21740 = 3.5.0 - 2018-10-17 = * 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 = 3.4.6 - 2018-10-11 = * Fix - Security issues * Fix - Allow percent coupons with sale restrictions to apply to carts with sale items in them. #21241 * Fix - Prevent multiple slashing of variation's SKU. #21019 = 3.4.5 - 2018-08-29 = * 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 = 3.4.4 - 2018-07-25 = * Fix - Only wordwrap plain email content. #20723 * 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 = 3.4.3 - 2018-06-20 = * 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 = 3.4.2 - 2018-06-05 = * 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 = 3.4.1 - 2018-05-29 = * 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 = 3.4.0 - 2018-05-23 = * Feature - GDPR: Tools to export WooCommerce data using the new export functionality in WordPress 4.9.6. #19330 * Feature - GDPR: Tools to bulk anonymize order data in admin. #19330 * 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 * Feature - GDPR: Tools in the Customizer to change the terms and conditions checkbox label on the checkout. #19637 * Feature - GDPR: Tools to define a privacy policy for the account page and checkout page in "account privacy" settings and within the Customizer. #19747 * Feature - GDPR: Tools to automatically clean up and remove order personal data after a set time period. #19743 * Feature - GDPR: Added privacy snippet which works with the new privacy page functionality in WordPress 4.9.6. #19749 * 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 * Feature - Added "display name" input on the My Account page. #19078 * Feature - Product search improvements including stopword support and support for searching for multiple products at the same time. #19096 * Feature - Cash on Delivery gateway can be enabled/disabled for specific shipping methods instead of only method types. #19221 * Feature - Add wildcard email support for coupons. #19331 * Feature - Added support for the GeoLite2 library as a replacement for the deprecated MaxMind GeoIP library. #19419 * Feature - Added tool for cleaning up download permissions table. #19922 * Tweak - GDPR: Improved appearance of checkout field 'descriptions' (if used) to make them more useful for privacy notices. #19637 * Tweak - GDPR: Improved related data cleanup when deleting users/orders. #19330 * Tweak - GDPR: Notice about HTTPS as a requirement in admin if missing. #19756 * Tweak - GDPR: Improved the checkout (payments) settings screen, moved page options to a new "advanced" section, and made an "Accounts and Privacy" section. #19703 * Tweak - GDPR: Hash customer email address in download URLs to protect privacy. #18957 * Tweak - GDPR: Add highlight to T&C checkbox if not checked to show it needs to be checked. #19177 * Tweak - GDPR: Automatically purge old logs after 30 days. #19920 * Tweak - GDPR: Only log Webhook body if WP_DEBUG is enabled. #19914 * Tweak - GDPR: Store less PII in PayPal standard. #19914 * Tweak - Only show admin notices on WooCommerce screens/plugins/dashboard. #19772 * 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 * Tweak - Rollback if payment complete or update status fails to prevent partial order updates on failure. #18175 * Tweak - Made the system status tool which purges user carts also purge persistent carts. #18492 * Tweak - Display whether or not external object cache is enabled in system status report. #18595 * Tweak - Display zero value when using shipping classes. #18624 * Tweak - Fixed settings table styling on mobile. #18655 * Tweak - Updated Flexslider to version 2.7.0. #18779 * Tweak - Enable screen options for list screens. #18817 * Tweak - Don't call WC_Install::install() on downgrades. #18818 * Tweak - Remove user login from reset password link to protect personally identifying info. #18820 * Tweak - Added a function to return a list of custom tables to aid with cleanup. #18831 * Tweak - Enable going backwards in the setup wizard. #18921 * Tweak - Make sure terms page exists and isn’t trashed before using it. #18993 * Tweak - Toggle when clicking anywhere in toggle row during setup wizard. #19035 * Tweak - Use `read_product` permissions instead of `edit_product` for ajax product search. #19087 * Tweak - Add `priceSpecification` property with `valueAddedTaxIncluded` to product structured data. #19091 * Tweak - Importer remembers mappings across imports. #19110 * Tweak - Made coupon total displayed in cart more consistent. #19166 * Tweak - Remove forced CSS line-heights to improve text input displays across different browsers. #19174 * Tweak - When loading default attributes/variation, if there is no longer a match, reset the form and hide the notice #19190 * Tweak - Removed admin product type column from core and made it into a free feature plugin. #19192 * Tweak - Use `woocommerce-no-js` class to hide JavaScript-only forms and content. #19199 * Tweak - Activate plugins during installation process even if directory doesn't match slug. #19200 * Tweak - Allow category and attribute ids in the `products` shortcode instead of only slugs. #19204 * Tweak - Invalidate cart items when important props like product type are updated. #19255 * Tweak - Don't use mysql functions directly on system status page to prevent errors if they are disabled. #19281 * 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 * Tweak - Delete widget options and order notes on uninstall. #19371 * Tweak - Add unique names to all nonces in template fields and forms. #19387 * Tweak - Enable using the tab key to select elements in selectWoo dropdowns. #19416 * Tweak - Added autocomplete attributes to form elements for better autocomplete support. #19426 * Tweak - Removed PayPal line item limit and ensured URLs are shorter than maximum length. #19493 * Tweak - Disable Gutenberg editor on products posts. #19543 * Tweak - Improvements around UI and wording of store setup step in setup wizard, a revamped extras step, and other improvements. * Tweak - Only push images to lightbox if an image is found. #19568 * Tweak - Added and improved notices around old PHP versions and disabled geolocation on PHP 5.4 or lower. #19573 * Tweak - The `manage_stock` field in the product API can return a `mixed` type instead of `boolean` for variations. #19598 * Tweak - Link product import/export to WordPress import/export capabilities. #19602 * Tweak - Use ` ` to separate asterisks in required fields to prevent awkward line breaks. #19610 * Tweak - Load meta box input values using CRUD and edit context. #19670 * Tweak - Scroll to notices on cart/checkout for better mobile visibility. #19699 * Tweak - Add filter to coupon URL on "Edit order" screen. #19777 * Tweak - Throw error if order can't be loaded on checkout. #19802 * Tweak - Remove deprecated freegeoip service from geolocation. #19841 * Tweak - Allow arrays of query vars in wc_get_orders and wc_get_products. #19848 * Tweak - Invalidate fragment cache on theme switch. * Tweak - Include select tags when saving payment details temporarily in checkout.js. #19854 * Tweak - Update - Include pending products in export. #19928 * Tweak - Deprecate woocommerce_ajax_added_order_items action in favor of more useful action. #19933 * Tweak - Enable touch-to-zoom on touch devices to make photoswipe more easily accessible. #20002 * Tweak - Wizard: List out all plugins to be installed upon proceeding to the next step, with a highlight on hover indicating relevant settings. #19952 * Tweak - Hide/show password strength meter instead of removing/inserting password strength meter. #20006 * Tweak - Added support for HTTP_RANGE requests (used by iOS devices) to Force download method. #19984 * 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 * Tweak - In CSV exports, wrap cell in ' rather than just prepending to escape values. #20041 * Tweak - Add JS listeners for reloading/reinitializing order items in edit-order page. #20082 * Fix - Properly set orderby and order when calling WC_Customer_Download_Data_Store::get_downloads(). #1862 * Fix - Set maxlength for order item meta key to avoid values disappearing if too long. #18918 * Fix - Remove hardcoded /wp-content check for downloads. #18961 * Fix - Made get_on_sale_products respect the setting to hide outofstock products. #18984 * Fix - Prevent shortcode [product_page] redirecting to the actual product's page after add to cart. #19043 * Fix - Make the "main term" logic match for both the breadcrumb and product categories widget. #19044 * Fix - Check parent status too when seeing if variation is purchasable. #19045 * Fix - Fix uppercasing of accented characters. #19086 * Fix - Do not allow updating parent ID from variations after created. #19097 * Fix - Ensure coupon amount is not empty to prevent non-numeric value errors. #19098 * Fix - Ensure shop archive works correctly when `paged=1` is in the URL. #19104 * Fix - Ensure orders created with `woocommerce_adjust_non_base_location_prices` filter active have the same cost on frontend and admin. #19109 * Fix - Handling in the CLI to prevent `Resource does not exist` errors when using commands of a certain format. #19123 * Fix - Use subtotal when calculating discounts in admin/orders to ensure prices are the same as on the frontend. #19159 * Fix - Use `kses` to process download names to prevent escaped HTML displaying in emails. * Fix - Remove translation from Thailand state file to prevent PayPal errors around unsupported characters. #19219 * Fix - Fix auto-select variation URLs with special characters in them. #19283 * Fix - Introduced `wc_round_discount` and improved consistency of discount rounding. #19291 * Fix - Only add schema for ratings to structured data when ratings are enabled. #19310 * Fix - Prevent default state applying unless the country was also unset in JS state/country inputs. #19338 * Fix - Escape quantity labels correctly to prevent broken html. #19375 * Fix - Delete orphaned variations after product import. #19378 * Fix - Ensure API credentials exist before defining PayPal refund support. #19380 * Fix - Force word-wrapping in the log viewer to prevent layout-breaking long lines. #19503 * Fix - Removes permission checks that were preventing webhooks from displaying properly when no post object existed. #19508 * Fix - Empty cart after completing PayPal payment. #19509 * Fix - Strip tags on aria-labels in Add to Cart template to prevent broken HTML. #19522 * Fix - Update post_modified date when saving products and variations but no other product data. #19595 * Fix - Clear comment count transient when cleaning product transients to prevent incorrect comment count displays. #19664 * Fix - Load gateways before order is saved/email is triggered to ensure all information gets sent/processed. #19667 * Fix - Clear shipping transient when saving shipping method on zones screen. #19668 * Fix - Handle escape characters for fputcsv to work around PHP standards issues. #19678 * Fix - Cast post IDs to integers in admin meta boxes. #19710 * Fix - Fix CSV unescaping of negative numbers in download expiry/limit columns. #19732 * Fix - Don't load unsupported theme functionality if shop page ID is -1. #19822 * Fix - Select and display "Downloadable" option in product admin filter when selected. #19876 * Fix - Add sort handle column when adding new tags. #19875 * Fix - More thorough CSV importer cleanup. #19877 * Fix - Fix gallery switching when image is the same #19878 * Fix - Ensure coupon amount is always returns as a float value #19889 * Fix - No update available message after activating subscription that has a valid update. #19831 * Fix - Include scheduled products in CSV export. #19907 * Fix - Generator tag actions should be filters. #19946 * Fix - WC API should not try to create a product image when creating a product variation if an empty image is passed. #19971 * Fix - Force settings API settings to autoload by default. #19998 * Fix - Cart html5 validation events when using keyboard. #20001 * Fix - Don't show stock status fields in external product quick-edit. #20005 * Fix - Prevent an infinite loop if 2 grouped products are linked. #20020 * Fix - Switch stock_status when manage stock gets changed to prevent being out of stock if stock quantity is > 0. #20021 * Fix - When duplicating variation, set the date to null. #20083 * Fix - Fix rounding of line items for orders to match cart. #20086 * Fix - Remove hardcoded border in email template. #20090 * Fix - Prevent autofocus on checkout. #20123 * Fix - Recalc taxes if address changes in API. #20137 * Dev - Made wc_query_string_form_fields handle strings. #20162 * Dev - Added refunded_payment prop to orders for determining if payment was refunded via API. #18196 * Dev - Added extra params to `woocommerce_order_get_downloadable_items`. #18408 * Dev - Store shipping method ID and instance ID in separate fields instead of both in one serialized field. #18483 * Dev - Add `woocommerce_rest_insert_system_status_tool` hook that fires after executing a REST system status tool. #18505 * Dev - Gallery meta box is now powered by CRUD. #18511 * Dev - Refactor woocommerce_wp_select so it could be used for a multiselect. #18536 * Dev - Added ability to declare sanitize_callback in settings API. #18554 * Dev - Added support for additional HTML5 input types for settings/checkout forms. #18594 * Dev - Made 'woocommerce_email_downloads_column_' hook format aware. #18600 * Dev - Add missing `woocommerce_update_options__` actions for settings pages that override save method. #18609 * Dev - Allow default value for single_select_country and multi_select_countries. #18754 #18756 * Dev - Added `grouped_form` class to grouped product `form` element. #18786 * Dev - Mini cart item link now respects value of $product_permalink. #18979 * Dev - Added `woocommerce_coupon_get_items_to_validate` filter to enable excluding products from coupon validation. #19002 * Dev - Added `woocommerce_persistent_cart_enabled` filter. #19027 * Dev - Added `woocommerce_admin_order_item_coupon_url` filter. #19777 * Dev - Replaced calls to `exit` with `wp_die` in the ajax methods to enable unit testing of those methods. * Dev - Introduce `woocommerce_coupon_custom_discounts_array` filter to allow post processing on custom coupons. #19148 * Dev - Move jQuery UI styles into WooCommerce assets folder and load them from there. #19173 * Dev - Added `woocommerce_coupon_validate_expiry_date` filter to enable modifying the coupon expiry date check. #19228 * Dev - Added `woocommerce_shipping_calculator_enable_state` filter to enable disabling state section in shipping calculator. #19241 * Dev - Added `woocommerce_bacs_process_payment_order_status` filter allowing plugins to change the order status to the BACS gateway. #19311 * Dev - Added `woocommerce_coupon_sort` filter to allow plugins to override the default coupon apply order. #19339 * Dev - Added `woocommerce_before_output_product_categories` and `woocommerce_after_output_product_categories` filters. #19363 * Dev - Added general `woocommerce_form_field` filter to make it easier to filter all of the form fields. #19388 * Dev - Added `woocommerce_install_get_tables` filter to enable plugins to register new, WooCommerce-specific tables. $19436 * Dev - Use `get_variation_price` method in structured data to grab min/max so filters are ran. #19527 * Dev - Added `woocommerce_helper_suppress_connect_notice` filter to enable suppressing the admin WordPress.com connection message. #19599 * Dev - Moved all photoswipe styles to `photoswipe.css` to make it easy to dequeue all the photoswipe styles. #19673 * Dev - Slash meta values before updating values in the data stores. #19675 * Dev - New wc_selected method to handle array key conversion to int. #19705 * Performance - Optimized saving of orders. Adds a transient for needs_processing, and only saves changes when saving order items. #18538 * Performance - Refactored the SQL query for `WC_Customer_Download_Data_Store::get_downloads()` to fetch available downloads faster. #18559 * Performance - Split the layered nav counts into multiple transient records by taxonomy and added a filter to allow bypassing caching. #19225 * Performance - Removed duplicate `SET SESSION SQL_BIG_SELECTS=1` queries. #19502 * Performance - Avoid storing coupon `_used_by` data to prevent database bloat. #19669 * Performance - Introduced new wc_get_product_class() and wc_product_class() functions. #19639 * Performance - Series of tweaks aimed at reducing the number of queries performed #19918 * Template - Update cart coupon button from input to button type. #19059 * Template - Added `woocommerce-form-register` class to registration form. #19486 * Template - Added escaping to publish date. #19530 * Template - Added a template file for recent product reviews. #19711 * Template - Made add to cart templates more consistent between product types. #19666 * Localization - Switched Georgian Lari symbol to new UTF symbol. #19603 * Localization - Use ISO county codes for Irish states. #19658 * Localization - Use ISO county codes for BD states. #19744 * Localization - LR-Liberia states. #19709 * Localization - Update ZA tax rate. #19909 * Localization - Various spelling, grammar fixes, and phrasing improvements. * Localization - Fix missing Bahrain country code. #20061 = 3.3.5 - 2018-04-10 = * Fix - Shop page notice should not appear when editing the "Hello World!" page. * Fix - Inconsistent order item refund sign. * Fix - Change `wc_get_price_excluding_tax` to not round the return value so calculations in admin are not pre-rounded. * Fix - Use minimum price instead of maximum price when ordering variable products from low to high on term archives. * Fix - `order` and `orderby` on shop page when using rewrite rules. * Fix - Ajax loading spinner when using twentyseventeen theme. * Fix - Out of Stock products change stock to On Backorder when imported to update existing products. * Fix - Visibility dropdown not responding in quick edit when stock management is disabled. * Fix - Featured paramenter in products endpoint on REST API. * Fix - Linebreaks in order item meta. * Fix - Product rating count when updated by admin. * Tweak - Define array before attempting to append to it. * Tweak - Change WC WP-CLI commands default per_page value to 100. * Tweak - Ensure background process class returns `data` as an array. * Tweak - Increase orders table checkbox column size on small devices. * Tweak - Better support for infinite scroll in Jetpack. = 3.3.4 - 2018-03-20 = * Fix - Fixed undefined index after running setup wizard two times on fresh install. * Fix - wc_get_loop_class; force columns to be a minimum of 1. * Fix - Added loading spinner to WC panels in menu admin. * Fix - Use relative scheme for AJAX endpoint to avoid errors when using a mix of HTTP and HTTPS. * Fix - Fix SelectWoo templateSelection property. * Fix - Layered nav support on unsupported theme archives. * Fix - Prevent full refresh when editing store notice in the customizer. * Fix - Only append tax label in email content if taxes are enabled. * Fix - More reliable Jetpack detection. * Fix - Check if product has weight before calculate weight total in cart. * Fix - Correctly handle default ordering on the search page. * Fix - Fix default product category handling in installer. * Fix - Properly check slugs when updating attributes. * Fix - Use gallery thumbnail size for variation image switcher. * Fix - Clear subcategory cache when updating product categories. * Fix - Round fractional cents when out of base. * Fix - Inherit 'is variation' from existing attribute during csv import. * Fix - Set is_shortcode loop prop when outputting subcategories. * Fix - Reload gateways after updating the order. * Tweak - Use wc_get_default_products_per_row as the default for product shortcodes. * Tweak - Add post_excerpt to product search. * Tweak - Update the description of the user tracking notice in the onboarding wizard. * Tweak - Add extra data in order mobile view (status and date). * Tweak - Add profile link to order screen. = 3.3.3 - 2018-02-21 = * Fix - Fixed is_numeric check which was affecting order subtotals/totals when using comma decimal separator. * Fix - Add missing direct script access checks to loop templates. * Fix - Added wp-post-image class to main image so variation images are swapped correctly. * Fix - API - Adjusted schema for products shipping_class_id to integer. * Fix - Made init tooltips event more specific to avoid conflict with Product Invoices extension. = 3.3.2 - 2018-02-20 = * Fix - Fixed admin product SKU searching and searching non-published products. * Fix - PHP7.1 notice when image height is empty. * Fix - Prevent repeated update_option calls on page load due to php type juggling. * Fix - Only do unsupported template rendering in the loop to prevent conflicts with other shortcodes on the shop page. * Fix - Don't prepend regular shortcodes with categories. * Fix - If using get_catalog_ordering_args. remove the args when finished. * Fix - Remove "Type" column on attributes table by default unless custom types are defined. * Fix - Use verbose page rules when shop is in the URL, including shop base with category, to prevent 404s. * Fix - Set woocommerce_hide_invisible_variations to true so disabled variation attributes are hidden on product pages. * Fix - Help tip for webhook status. * Fix - Shipping zone documentation help link was printing wrong. * Fix - Stop background processing images when disabled via the filter. * Fix - Only search when a search term is provided. Ignore empty strings. * Fix - Fix check for external resources. * Fix - Show full date for future orders. * Fix - Prevent JS error is 'orders' row is disabled on order screen. * Fix - Fix save of tax settings when no changes have been made. * Fix - Add nonce to logout link on my account page so you do not need to confirm the action. * Fix - Fix plain text entity replacement so currency symbols are included. * Fix - API - Set status after order is created/updated so triggered emails are current. * Fix - API - Fix single webhook endpoint. * Tweak - Added help text for background image processing. * Tweak - Added notice when background image processing is running, with cancel button. * Tweak - Run background image processing less often by tracking changes. * Tweak - Added system status tool to run background image processing manually. * Tweak - If using Jetpack Photon, use that instead of background image processing. * Tweak - Gallery thumbnail image size to handle small, square cropped images. * Tweak - Helper function (and template version bump for image templates) to render gallery images. * Tweak - Add help text for the default category to explain usage. * Tweak - Allow changing the default product category. * Tweak - Tweak mobile view of order preview to improve layout in non-english. * Tweak - If selecting text, don't link to order on row click. * Localization - Remove isle of man state. = 3.3.1 - 2018-02-06 = * 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. * Fix - Prevented columns from being set to anything lower than 1. * Fix - Added extra error checking in Webhooks API to prevent notices when deleting Webhooks. * Fix - Prevented list table classes being loaded multiple times. This also fixes compatibility with Smart Coupons extension. * Fix - Removed stray debug string from order email template and fixed some typos. * Fix - Set up the loop when calling wc_get_loop_prop. Fixes compatibility with some themes. * Fix - Remove multiple application of filter 'woocommerce_order_item_product'. * Fix - Protect against theme support being defined too late. Fixes some issues with custom themes defining WooCommerce support incorrectly. * Fix - Add fallback for themes that just get the pagination template. * Fix - Made the on-the-fly image regen also regenerate missing sizes. * Fix - Fixed missing user_id in webhook migration script. * Fix - Allow uncategorized category to be sorted like the others. * Fix - If theme support changes, we may need to flush permalinks since some are changed based on this flag. * Fix - Fire hooks for pagination etc only when pagination is enabled. * Fix - Default HTML in end wrapper template. * Fix - Prevent regular pagination showing on archives for unsupported themes. * Fix - Fix shop when shown as homepage in unsupported themes. * Fix - Fix SKU mapping for placeholders during CSV import. * Fix - Use CRUD search helper in admin products table so partial SKU search works. * Fix - Fix bulk sale/regular price percentage handling. * Fix - More specificity on smallscreen style override for columns. * Tweak - Add notice for moved store notice setting. * Tweak - Allow removing coupons on editable orders only. * Tweak - Extended the background processing library to avoid changing methods in the library. * Tweak - Do not show row settings if something is managing the number of products per page. * Tweak - Allow devs to add 'no-link' class to elements to prevent order view link being triggered on row click. * Tweak - Made woocommerce_resize_images filter more useful by calling it later. * Tweak - Revert default columns back to 4 so it's consistent with 3.2. = 3.3.0 - 2018-01-30 = * Feature - Improved default appearance in themes which do not support WooCommerce, making the shop page shortcode based. * Feature - Products shortcodes; improved random sorting, with some caching. * Feature - Products shortcodes; support for pagination. * Feature - Added new options to the WordPress Appearance Customizer; control the product grid (rows and columns), and image sizes. * 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. * Feature - Changing image sizes will trigger automatic thumbnail regeneration in the background. * Feature - Improved how downloads are stored within products, and added new reporting/logging features to track who downloaded what, when. * Feature - Improved the overall appearance of the backend orders list, and added a new 'preview' button to quickly see order details. * Feature - New default sample data and placeholders. * 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. * Feature - Introduced product category threshold filter (`woocommerce_product_category_filter_threshold`). AJAX powered select will kick in when you have over 100 categories. * Feature - Added `add_to_cart_description` method and aria-labels to cart buttons in the loop for accessibility. * Feature - Ability to search in logs when the database logger is used. * Performance - Adjusted how permalinks are retrieved and saved to avoid switching locales on each page load. * Performance - Added cache when loading product variation attributes. * Fix - Fix wc_notice_count logic. * Fix - Correct bulk edit price formatting. * Fix - Ajax add-to-cart button shortcode fix for variations. * Tweak - Update billing if account form changes. * Tweak - Remove videos from help sections. * Tweak - Preserve seconds when saving order date. * Tweak - Allow quantities less than 1, but not 0, in admin. * Tweak - Post types with no archives should not show in breadcrumb. * Tweak - Only load session handler class on frontend not during cron. * Tweak - Moved the 'Store Notice" option into the customizer. * Tweak - Checkout Postcode / Zip validation error message was missing Billing / Shipping Identification. * Tweak - Added Iris color picker validation. * Tweak - Use scrollIntoView on checkout. * Tweak - Converted input submit elements to button submit elements across the entire codebase for consistency. * Tweak - Added `{site_title}` replacement for email footers. * Tweak - Added delete product confirmation if a product has had sales. * Tweak - Improved when "incl. VAT" is displayed in cart totals. * Tweak - Use base text color for links in email templates. * Tweak - Show theme overrides that are done through the wc_get_template filter in the system status report. * Tweak - Added nofollow tags in layered nav to prevent duplicate indexed content. * Tweak - Hide "incl. VAT" when no rates are defined in "single total" display mode. * Tweak - Added replay protection for refunds. * Tweak - GeoDB empty file handling. * Tweak - Let wp_signon handle email to username conversion. * Tweak - Made email field wider on checkout. * Tweak - Post entire shipping selection when showing multiple packages. * Dev - REST API - Orders should be created for users who exist on the site only. * Dev - REST API - Fixed default value of "dp" on orders and refunds endpoints. * Dev - Theming - Added theme support variables to declare image sizes used for products. * Dev - Theming - Added support for single-product-postname.php template files. * Dev - Added actions before calculations order totals and taxes and is_vat_excempt support. * Dev - Add filter 'woocommerce_coupon_get_apply_quantity'. * Dev - Grouped products; added filters to allow custom columns and changes to values. * Dev - Allow for cloning the WC_Cart object * Dev - Apply filters to registration-error-email-exists error. * Dev - Added `woocommerce_cross_sells_order` filter. * Dev - Add order-details `before` hooks to complement existing hooks. * Dev - WC_CHUNK_SIZE constant for controlling readfile. * Dev - Add short circuit to customer bought product function. * Dev - Added a `wc_caught_exception` method to aid with logging. * Dev - Added Data stores and CRUD for working with Webhooks. * Dev - Bumped minimum WP version requirement to 4.5 and removed legacy API files. * Dev - New actions - `woocommerce_order_details_before_order_table_items`, `woocommerce_order_details_after_order_table_items` and `woocommerce_order_details_before_order_table` * 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`. * Dev - Improved the `is_internal_meta_key` checks to consider getters and setters. * Dev - Cleaned up the Order Customer Details template. * Dev - JavaScript payment_method_selected events on checkout. * Dev - Add new `$order->get_edit_order_url()` method. * Dev - Pass through options to zoom, flexslider, and photoswipe. * Dev - Added actions before and after scheduled sales initiation and completion. * Localization - Add direction character to currency output. * Localization - States for Tanzania and Moldova. = 3.2.6 - 2017-12-13 = * Fix - CSV Importer - Fix ID mapping to existing IDs. * Fix - CSV Importer - Unslash header fields to avoid extra slashes. * Fix - CSV Importer - Allow import and export of draft products. * Fix - CSV Importer - Get global attribute ID only when is a global attribute. * Fix - Remove URL fragment when appending geolocation hash. * Fix - Additional cart rounding fixes so rounding before subtotal works again. Added more unit tests. * Fix - Add BOM to exported report CSVs. * Fix - is_visible should ensure product is is not trashed before returning true. * Fix - Return packages with no rates back to the cart so the shipping calculator is displayed even when the current country is not shippable. * Fix - Merge session and persistent carts when both exists after login. * Fix - Remove "wc_error" query string after login. * Fix - Allow woocommerce_form_field() have 'custom_attributes' equal 0. * Fix - Bulk actions in status logs table. * Fix - Exclude add-to-cart from pagination links. * Fix - Updated $GLOBALS['post'] data in products shortcode to prevent theme conflicts. * Fix - Only remove base taxes in cart totals class if item is taxable. * Fix - REST API - Fixed date format in reports schema. * Fix - REST API - Updated product categories image schema. * Fix - REST API - UUse KSES for purchase_note like in admin. * Fix - REST API - Filter passed images before processing so they can be unset via querystring. * Tweak - Use protected instead of private methods to allow easy override in session handler. * Tweak - wc_lostpassword_url should not be used before init - added warning. * Localization - Update Japanese prefectures to include prefecture type. = 3.2.5 - 2017-11-22 = * Fix - WordPress 4.9 - REST API - Updated schema, sanitization, and validation callbacks to support correct data types. * Fix - WordPress 4.9 - Fix an issue saving variation attributes on new products and with attributes containing slashes. * Fix - Save fee tax lines to new orders on checkout. * Fix - Restore the post global after rendering product shortcodes. * Fix - Fix product filtering when searching for a string including quote characters. * Fix - Fix layered nav drop-downs containing unicode characters. * Fix - Fix an edge case rounding bug with shipping taxes, and another with non-integer quantities. * Fix - Set correct defaults when adding a new shipping class in admin. = 3.2.4 - 2017-11-16 = * Fix - Cache IDs in shortcodes rather than query objects. * Fix - Fix float rounding issues in cart with currencies like Bitcoin. * Fix - Prevent slashes appearing in shipping fields and inside meta keys when using quotes. * Fix - Check valid data when filtering `wp_nav_menu_objects` to prevent conflicts. * Fix - `get_total_ex_tax` should exclude fee taxes. * Fix - Fix orders count in tax reports. * Fix - Allow removing coupons from the cart, even if coupons are disabled. * Fix - Prevent calculate_totals totals running too often. * Fix - Set attributes during variation creation so all options are correctly displayed in cart forms. * Fix - Grab description directly to pass through wc_format_content to prevent double sanitization. * Fix - Fix db warnings when using the "Add Order Indexes" tool. * Fix - Remove unnecessary html formatting in variation dimensions field. * Fix - Fix WC_Customer_Download isset method. * Fix - Removed class within class in admin meta boxes HTML. * Fix - Fixed wrong `flex-control-nav` selector scope in `add-to-cart-variation.js` * Fix - Allow variations to be added to cart from query string. * Fix - Use `add_filter` for `comment_feed_where` hook. * Fix - Change nocache_headers hook firing in the cache helper. * Fix - Coupon min/max spend based on displayed subtotal. * Fix - Fix event propagation on click in setup wizard and improve validation. * Fix - API - Change how line items are saved in API so calculations are correct. * Tweak - Hide downloads from admin emails. * Tweak - Set placeholder for variation lxwxh field to that of the parent. * Tweak - Improve the Add Payment Methods display so buttons are not shown when no payment methods support the feature. * Localization - Update NJ tax rate. * Localization - Add Belarusian ruble BYN. = 3.2.3 - 2017-11-02 = * Fix - Fixed a conflict with some slider plugins due to sanitization of archive/term descriptions. * Fix - Fixed a flexslider bug when there is only 1 image on the product page (no gallery). * Fix - Prevent potential notices when someone extends product tabs wrongly. * Fix - Fixed display of shipping calculator under some conditions. * Fix - Fix discount calculation when customer is not within the base location and prices include tax. = 3.2.2 - 2017-10-31 = * Fix - Properly escape commas when exporting products to CSV. * Fix - Fixed email template padding in Outlook. * Fix - Flexslider support for RTL languages and fixes for zoom target in Chrome. * Fix - Correctly sync prices for grouped products. * Fix - Filter and remove invalid tax classes names. * Fix - Stop showing "major" update notification for minor or patch releases. * Fix - Allow scroll bar in untested plugins list on the bulk plugin updates screen. * Fix - Fixed meta data cloning when duplicating products. * Fix - Clean "Filter Products by Attribute" widget cache when updating attributes. * Fix - Fixed warning messages when reseting passwords with an invalid key. * Fix - Cart totals: Don't add shipping costs unless show_shipping is true. * Fix - Cart totals: Calculate shipping after discounts so discount amounts are available. * Fix - Cart totals: Fixed issue where VAT exempt users where still being charged VAT on the totals. * Fix - Cart totals: Fixed the coupons user limit and calculations. * Fix - Fixed "relevance" default sorting in search results. * Fix - Use item tax class rather than product tax class when recalculating order totals. * Tweak - Allow shortcodes and relative URLs for downloads in product CSV importer. * Tweak - Save unsaved items first while deleting order items. * Tweak - Only change `nocacheheaders` when on a cart/checkout page. * Tweak - Setup locale before generating settings placeholders in email templates. * Tweak - On checkout, improved the field locale logic to work without clearing default values. * Tweak - Change title of customer invoice email for clarity. * Tweak - Use custom event instead of blur to trigger validation. * Tweak - Various selectWoo usability improvements and better support for keyboard controls on AJAX multiselect elements. * Tweak - Various setup Wizard improvements. * Dev - Fixed orders date query when querying by meta data. * Dev - In the CSV exporter, added a filter to process meta values before export. = 3.2.1 - 2017-10-13 = * Fix - Made grouped products display in the saved order, vs the menu order. * Fix - Made variations with 'same as parent' tax class calculate taxes correctly. * Fix - Fixed tax rate reverting to 0 when the tax rate itself is not changed and the row is saved. * Fix - Made tax rates sort correctly when defining postcodes and cities. * Fix - Made guided tour help tab videos lazy-load to prevent performance issues. * Fix - Added SelectWoo dependency to admin meta box scripts. * Fix - Fixed cart subtotal 1p rounding error. * Fix - Fixed discount logic to also look at variation parent categories when validating coupons. * Fix - Product import filename based matching, and full URL based matching where the date part would still be present. * Fix - Fixed storage of cart discounts when prices include tax. * Fix - Added styling for screen-reader-text for themes which do not define it. * Fix - Fixed legacy cart `prices_include_tax` variable. * Fix - Hide cat-parent class when category will show no children due to the new depth setting. * Fix - Make sure image zoom is enable for calling initZoomForTarget. * Fix - {blogname} email placeholder. * Fix - API - Use edit context when updating prices. * Tweak - Clearly describe when a feature is powered by WooCommerce Services in the setup wizard. * Tweak - Restored discount total line in order screen when discounts are present. * Tweak - Add back option to send admin new order email, and include order number and customer email in order emails. * Tweak - Replace settings screenshot on wp.org listing. = 3.2.0 - 2017-10-11 = * Feature - Coupons can now be applied and removed in admin when editing unpaid orders. * Feature - Simplified the ability to resend order details to customers with a single "Resend Order Details" action. * Feature - Added store street address, city and postal code to settings for use by plugins. * Feature - Wrapping values in quotes now let's you use commas in the product CSV importer. * Feature - If a fatal error occurs, WooCommerce will catch and log it to be viewed in WC > Status > Logs. * Feature - Drag and drop sorting on the grouped product field to control display order. * Feature - Integrated selectWoo; more accessible Select2 (enhanced select boxes) in admin and on the front-end. * Feature - Enhanced select boxes in the shipping calculator. * Feature - Enhanced select boxes in layered nav "or" widget. * Feature - Ajaxified the product category filter on the products screen. * Feature - `[products]` shortcode can be used in place of other product shortcodes - one shortcode to rule them all. * Feature - Added option to control maximum depth of product category widget, and cleaned up widget naming. * Feature - Show sorting options when viewing search results. This defaults to sorting by relevance. * Feature - Support for the `WC tested up to` plugin header to show which extensions have been tested against updates. * Feature - Helper - Filters on the subscription management screen, update notifications, and support for shared licenses. * Tweak - Importer now supports menu_order property, adds filename based titles to imported images, and correctly sets post status of variations. * Tweak - Made the buyer phone number clickable in the in the order back-end. * Tweak - Clean up user is_paying_customer after deleting an order. * Tweak - If stock changes between page load and editing, reject stock changes to avoid incorrect stock changes. * Tweak - Disable search engines indexing core, dynamic, cart/checkout pages. * Tweak - Added shortcodes to description output in structured data, and improved variable product data. * Tweak - Use AJAX when restoring an item in the cart, and removing an item from the mini-cart. * Tweak - On-boarding: added "next" button to pointers and allowed them to be dismissed. * Tweak - Display post states for WC pages e.g. shop, checkout etc. * Tweak - Improved order tracking page display and validation. * Tweak - Wizard improvements, with store-owner newsletter sign-up. * Tweak - Improved tax calculations on negative fees by apportioning to all items. * Tweak - Added logic to install the plugins and themes asynchronously without using wp-cron. * Tweak - Modify product API returned data by context. * Tweak - Move js clipboards off of zeroclipboard script. * Tweak - Remove spam trap field from registration form. * Tweak - Added screen reader text to quantity input template. * Fix - Improved error handling in the CSV importer when invalid files are uploaded. * Fix - Handle full refunds in tax report by date. * Fix - API - Return empty result when there is no on_sale products. * Fix - Fixed WC_Emails::wrap_message hooks . * Fix - Load up gateways on ajax order status transitions so PayPal funds capture when order is completed. * Fix - Replace wistia videos with youtube. * Fix - Handle sale dates on the fly in case of missed cron schedule. * Fix - If sorting by date in the REST API, fallback to ID so searches are consistant. * Fix - Do not apply custom sorting to product feeds. * Fix - Make importer columns case-insensitive. * Dev - Make parse_date_for_wp_query public. * Dev - API - Creating webhooks uses the current API version rather than the latest API version. * Dev - Product CRUD search helpers. * Dev - Refactor shipping rate to include instance IDs, and pass instance IDs through filters. * Dev - New attribute helper functions. * Dev - Order note helper functions. * Dev - Added the "Terms and conditions" page to the api system status report. * Dev - Made date inputs reusable. * Dev - Added option for merging when using 'Order Again' via filter `woocommerce_empty_cart_when_order_again`. * Dev - Added system status tool for re-populating order address search indexes. * Dev - Added system status tool for clearing webhook logs. * Dev - Added woocommerce_get_asset_url filter. * Dev - Show notice when internal meta props are accessed directly. * Dev - Improve meta data updates so data is only updated when changed. * Dev - Improved get_filtered_term_product_counts performance. * Dev - Introduced wc_get_account_orders_actions function. * Dev - `wc_get_account_formatted_address` can get address by customer ID. * Dev - Added `woocommerce_get_product_id_by_sku` filter. * Dev - Refactored cart to use new WC_Cart_Session/WC_Cart_Totals/WC_Cart_Fees/WC_Discounts classes. * Dev - New `WC_Shortcode_Products` class to handle all product based shortcodes. * Theming - Display downloads in their own table, universally, using a new template file. * Theming - Streamlined email templates content: using the new downloads table, moved billing email with the billing address, order notes into the order totals table, and removed the need for 'downloadable' subjects/headings. * Theming - Checkout: Order pay template * Localization - Added cantons of Switzerland. * Localization - Updated XAF and XOF currency codes. * Localization - Added rtl support for activation.css. * Localization - Updated Mexican states to use correct 2 letter codes. * Localization - Improved many strings by excluding HTML. = 3.1.2 - 2017-08-15 = * Fix - Importer: Prevent multiple placeholders being created when mixing IDs and SKUs. * Fix - Importer: correctly set stock management props. * Fix - Importer: Allow "unfiltered_html" for name, description and short description fields. * Fix - Fix filename image handling. * Fix - Rest API: Allow OPTIONS requests. * Fix - Fixed missing reviews in product_page shortcode when querying by SKU. * Fix - Don't subtract negative taxes in net sales report. * Fix - Sort by order + zone ID as a fallback in shipping zones so the zones always match in the same order. * Fix - Corrected subject and heading in customer refunded email. * Fix - Corrected handling of custom checkbox fields in checkout get_posted_data method. * Fix - Fix admin help videos async property. * Fix - Fixed price filters by introducing precision. * Fix - Improved customer IP address detection. * Fix - Fix dark theme readability. * Fix - CLI tools command. * Fix - Adjusted shop manager role to prevent unfiltered HTML being used. * Fix - Various notices/warnings. * Dev - Correctly invalidate cache after saving order items. * Dev - Added `woocommerce_data_store_wp_{$this->meta_type}_read_meta` filter. = 3.1.1 - 2017-07-11 = * Fix - Product importer: fixed handling of non UTF8 characters in descriptions. * Fix - Product importer: Allow times in date fields. * Fix - Product exporter: fixed meta data checkbox option. * Fix - Helper: Styling and connect button in non-english languages. * Fix - Tweak terms and conditions template to check for disallowed shortcodes. * Fix - Fixed order helper queries when before_date and after_date args are both, corrected use of "paged", and corrected use of filters. * Fix - Gallery; Trigger resize after main image loads to ensure correct gallery size. * Fix - Prevent extra slashes being added to meta values when using the CRUD. * Fix - Appends "where" clauses in the comment feed to prevent a notice. * Fix - Fixed structured data output for variable product prices. * Fix - 3.x issue: Changed state validation logic to work for MX states. * Fix - 3.x issue: 7day reports should start from midnight, not the current time. * Fix - 3.x issue: Status changes made by admin should be marked as a manual in the order notes. * Fix - 3.x issue: Allow unsetting product shipping class in REST API. * Fix - 3.x issue: Corrected error handling in zones shippingMethodView. * Tweak - Avoid CloudFlare email obfuscation in admin. * Tweak - Improved detection of DOING_AUTOSAVE in admin meta box code. * Tweak - Improved my-account redirects and fallbacks. * Tweak - Add `cart_subtotal` to the shipping package so prices are recalculated when needed. * Dev - Add search_customers() filter in customer data store. * Dev - Product exporter: woocommerce_product_export_skip_meta_keys filter to control what gets exported. * Dev - Pass correct value to woocommerce_shipping_classes_save_class when inserting a new term = 3.1.0 - 2017-06-28 = * Feature - Built-in product CSV importer and exporter for products. * Feature - Display (toggle-able) terms inline on the checkout rather than showing a link. * Feature - On the "pay for order" page, if logged out show a login form rather than an error message. * Feature - Enabled oembed support for product short descriptions. * Feature - Added bulk variation update for stock status. * Feature - On customer profiles: added a button to copy billing address to shipping address. * Feature - Setup Wizard - Automatic Shipping Zone Creation In Setup Wizard for the base location. * Feature - Setup Wizard - Added a new optional Storefront Theme step if you're using a non-WooCommerce compatible theme. * Feature - Made it possible to manage extension licenses purchased from WooCommerce.com on the extensions screen. * Tweak - Gallery - Added a data-caption for captions to support both captions and titles for SEO. * Tweak - Gallery - Used smoothHeight setting to better support images of different heights. * Tweak - UI - Added blank states for API keys & webhooks. * Tweak - UI - Made Product submenu labels consistent in admin. * Tweak - UI - Changed street address field label and placeholder to minimize user error on checkout. * Tweak - UI - Added a confirmation before deleting log files. * Tweak - If prices are the same for all variations, use price not priceSpecification in structured data. * Tweak - Added variable so shipping calculator is shown on first row only when showing multiple shipping packages. * Tweak - Updated mini-cart HTML to use a list. * Tweak - Allow linking to single product additional_information tab from url hash. * Tweak - Re-included WooCommerce endpoints on the appearance > menus screens. * Tweak - Always sync incorrect titles on variation read regardless of version. * Tweak - Standardize rating HTML in all templates. * Tweak - When searching, disable WC sort order so results are sorted by relevance. * Tweak - Update price sorting code to use min or max for variable products depending on sorting direction. * Tweak - Utilize $product method to get thumbnail in loops. * Tweak - Check for an existing display name before updating a user on checkout. Adds display_name prop to the CRUD. * Tweak - Adapt variable product price used in sorting based on direction of sort. * Tweak - Made state validation less strict for keys. * Tweak - For COD orders, force payment complete status to be completed. * Fix - Use get_max_purchase_quantity in cart template and fix logic when stock management is off. * Fix - Added log_id as the secondary sorting column to log list so log entries sort correctly. * Fix - Fix shop page when using shop base and UTF8 shop page slug. * Fix - Added handles so drag and drop does not break edit on mobile when sorting categories. * Fix - Added ABSPATH checks to all files. * Fix - Fixed how to flush rewrite rules after saving the shop main page. * Fix - Emails sent via admin should switch to global locale. * Fix - Set and restore wp_query so product page functions think it's a real product page. * Fix - Variation default value of '0' fails to save on product. * Fix - Prevent locations being added to the "Rest Of The World" shipping zone via the API. * Dev - Allow date created to be set in wc_create_refund. * Dev - Introduced a [WC_Order_Query class](https://github.com/woocommerce/woocommerce/wiki/wc_get_orders-and-WC_Order_Query) for finding/searching orders. * Dev - Added "restored" webhook. * Dev - Support floats for the custom attribute name sorting function. * Dev - Updated Emogrifier to version 1.2. * Dev - Sort product data tabs by priority in admin screen. * Dev - Added new hooks for: dashboard reviews widget, product and category sorting events, woocommerce_add_to_cart_sold_individually_found_in_cart, cart empty messages. * Dev - Added filters for zoom / flexslider / photoswipe enabling. * Dev - Added filter for cookie name. * Dev - Added ability to filter Photoswipe lightbox options. * Dev - Added new filter for product thumbnail size. * Dev - Added action for displaying custom data for fees in admin. * Dev - Changed build_payload from private to public in webhook system. * Dev - Added deprecated notice to WC_Order_Item_Meta (deprecated in 3.0). * Dev - Added namespace to jQuery events that are removed in VariationForm. * Dev - Made WC_Checkout::get_posted_data() public. * Dev - Add custom message for custom system status tools. * Dev - Added filters to change which order items are created and loaded to support custom item types. * Dev - Updated jQuery payment and serializejson libraries. * Localization - Added Bolivian states. * Localization - Use VAT for Norway instead of Tax. = 3.0.9 - 2017-06-22 = * Fix - Exclude sale products from category checks if coupon is not valid for sale products in coupon class. * Fix - Fix missing states in state field when selected country differs from checkout data. Required template modification. * Fix - Updated `woocommerce_email_actions` to send email when order status changes from processing to cancelled. * Fix - Fix undefined variables in terms and legacy order API endpoints. * Fix - Correctly update variation outofstock term on save. * Fix - Add a nonce and confirmation message for logging out via the customer my account page. * Fix - Allow setting grouped_products via the API. * Fix - Prevent edge case errors in `wc_get_product_term_ids`. * Fix - Remove extra escaping to fix saving of special characters in attribute terms. * Fix - Stricter shipping method matching in COD to prevent conflicts. * Fix - Recalculate totals after local pickup selection so taxes are recalculated. * Fix - Add missing nonce to product sales report. * Fix - Fix webhook save actions and ping the URL to test only once. * Fix - Fix issue with CLI IDs which overlap with actual data. * Fix - Normalise emails in coupons so lower/upper case is ignored. * Fix - Added background color to `x` button in product gallery edit box. * Dev - Renamed `woocommerce_credit_card_type_labels` filter from `wocommerce_credit_card_type_labels`. = 3.0.8 - 2017-06-06 = * Fix - Include multi-dimensional array support in oAuth1.0. * Fix - Stock/backorder notice when stock management is disabled. * Fix - Handle shipping item taxes if set to avoid the legacy fallback. * Fix - Variations should inherit purchase_note from parent. * Fix - Check if subtotal is blank, not empty, before setting for order items. * Fix - Cancelled email should be send for processing orders, not pending. * Fix - Missing variable in legacy API. * Fix - Correct price query when on a post type archive. * Fix - Missing $ip Variable in geolocation class. * Fix - A single multi-word attribute is fine for variation titles. * Fix - Gallery should be updated even if empty in REST API. * Fix - Fix saving of text attributes with special chars. * Fix - Undefined index warning when saving variations with stock management disabled. * Fix - Use meta id instead of key in WC_Order_Item::offsetGet. * Fix - Format parent stock qty on read. * Fix - Hide replies from recent reviews widgets. * Fix - Use formatted weight and dimensions for variations. * Fix - Ensure we have child before getting price to fix a notice in grouped products. * Fix - Fixed unicode characters when saving webhook delivery logs. * Fix - Avoid deprecated ID in legacy API. * Fix - Add correct args to woocommerce_shipping_zone_method_deleted and woocommerce_shortcode_products_query hooks. * Fix - Correctly append cache in product widget. * Fix - Add ability to invalidate cache by object ID. * Fix - Notice in structured data class. * Fix - Only delete if an object has an ID in CRUD to avoid wp_delete_post using global ID. * Fix - Avoid notices on checkout by ensuring all legacy data is correctly set. * Fix - Add failed to processing event for the processing email. * Fix - Store user ID and use that to determine if the session should be loaded or not. Ensures user data is correct and shipping calculator data is stored. = 3.0.7 - 2017-05-16 = * Fix - Display of grouped product permalinks + names. * Fix - Ensure `wc_get_payment_gateway_by_order` has a valid order ID to avoid errors. * Fix - Ensure `get_plugin_updates` exists in API. * Fix - Correctly set rating term after updating product visibility. * Fix - `is_ip_address` should be static. * Fix - Handle clearing for 3, 4, and 5 columns in the product gallery. * Fix - Some added protection against notices/errors in the assets and variation data-store files. * Fix - If backorders are enabled, do not make variable products out of stock. * Fix - Undefined function in `class-wc-embed.php`. * Fix - Fix 'base location' not being returned via the settings API. * Fix - When re-filling fields on checkout, only change the empty ones to avoid conflicts with gateway plugins and hidden fields. * Fix - Make calculate tax function clear taxes if taxes are disabled on recalculation. * Fix - Update all customer session address fields when updating via checkout. * Fix - Support customer searches < 3 characters long, but with result limiting. = 3.0.6 - 2017-05-09 = * Fix - Fixed conflict between global attributes and custom attributes with the same names. * Fix - Added missing "id" to API for shipping zone methods to support the CLI. * Fix - Incorrect use of `wc_format_price_range` in `get_price_html_from_to`. * Fix - Clone each meta object when cloning WC_Data object to avoid modifying original meta stdClass objects. * Fix - Fix non numeric warning for some order data. * Fix - Fixed a warning when no customer country is defined for state input. * Fix - Use term name when reordering so correct data is passed to the new order. * Fix - Formatting issues in wc_display_item_meta. * Fix - Check if IP address is valid in IP address detection code. * Fix - wc_attribute_taxonomy_id_by_name should use wc_sanitize_taxonomy_name to prevent breaking special chars. * Fix - Correct variable name in order structured data. * Fix - Prepend new item keys with `$items_key` to make them unique. * Fix - Hide offers from structured markup when blank. * Fix - Fixed "Process to checkout" button color in Twenty seventeen dark theme. * Fix - Only set reply-to if the email + name is set. * Fix - Correctly exclude terms in wc_get_related_products. * Fix - Reset post data prevents grouped products working in shortcodes. * Fix - Fix min price range comparisons. * Fix - Properly save order items in legacy REST API. * Fix - Use correct full size for variation images. * Fix - Add noscript style for gallery. * Fix - Fix/duplicate potential stock reduction with paypal. * Tweak - Improve _wc_term_recount performance. * Tweak - Improve plugin update detection in system status report to reduce timeouts. * Tweak - Improve "Save Order" button to reproduce WordPress post/page behavior. * Tweak - Added zipcode validation for France. * Dev - Added woocommerce_shop_order_search_results filter. = 3.0.5 - 2017-04-28 = * Fix - Tooltip display within shipping zone modals. * Fix - Fix missing title for actions column on mobile. * Fix - Allow forward slash in telephone field. * Fix - Sort grouped products by menu order when displaying. * Fix - Fix term exclusion in term count queries. * Fix - Filter invalid products before returning them for wc_get_products. * Fix - Prevent orders being their own parent (causes errors). * Fix - Correctly migrate legacy shipping taxes data. * Fix - Make sure the meta data cache is not shared among instances. * Fix - Correct the stock display notice when a variable product manages stock for it's children. * Fix - On multisite, add user to blog during checkout if not a user to prevent errors. * Fix - Correct sale price date handling with some timezone setups. * Fix - wc_attribute_taxonomy_id_by_name needs to use lowercase attribute slug to work. * Fix - Make changes to the buyer's company name in the shipping section of checkout persist. * Tweak - Add required placeholder for meta fields in backend. * Tweak - Don't strtolower address strings on checkout validation messages. * REST API - Prevent password change notification when creating a customer. * REST API - Removed duplicated items returned in shipping and checkout endpoints. * CLI - Fixed missing shipping zones route. * Dev - Make get_price_html handling match 2.6 and pass all values through woocommerce_get_price_html filter. * Dev - Legacy customer class missing get_address / get_address_2 functions. * Dev - Restored filter `woocommerce_checkout_customer_id` during checkout validation. * Dev - Adds missing `$this` argument for all `woocommerce_payment_complete_order_status` filters. = 3.0.4 - 2017-04-20 = * Fix - Variations were not inheriting the product image and shipping class ID. * Fix - Prevent rating/review counts being duplicated when duplicating products. * Fix - Fixed gallery navigation between images with long captions. * Fix - Support transparent PNG in the gallery by setting a background color. * Fix - Removed name/company from the shipping address Google map links. * Fix - Fixed the address field sorting script on the checkout. * Fix - Fixed the upgrade routine for grouped products so that parents are unset. * Fix - Fixed support for WordPress 4.7 user locale settings. * Fix - Fixed default option filter for product types in the product meta box. * Fix - Improved the css in Twenty Seventeen for dark color schemes. * Fix - Fixed display of refunds in sales report. * Fix - Updated `single-product/add-to-cart/variable.php` template version to 3.0.0 since it had changes since 2.6. * Fix - Fixed warnings when product attribute do not exists. * Fix - Used a div for comment-form-rating to prevent invalid nested markup. * Fix - Fixed some logic that checks if order taxes are compound. * Fix - Fixed SKU checks to only exclude products that are trashed. * Fix - Fixed display of download permissions in first email sent after checkout. * Fix - Hidden the backorder notification stock text when notification is disabled. * Fix - Fixed incorrect stock numbers in low stock emails. * Tweak - Removed the non-functional order total input box, and combined the recalculation buttons into one working button. * Tweak - Updated Guided Tour videos. * Tweak - Updated js-cookie.js to 2.1.4. * Tweak - Updated schema.org URLs to use HTTPS. * Tweak - Status report request timeouts. * REST API - Fixed an issue that prevented deleting a term if errors were thrown during creation. * REST API - Fixed reports endpoint when querying by date. * REST API - Fixed ignored order parameters when changing order status. * Dev - Support guest orders in `wc_get_orders` function. * Dev - Fixed downloadable variation filters for download URLs. * Dev - Added safeguards to prevent infinite loops while saving coupons, products and orders in admin. * Dev - Added a fallback for `queue_transactional_email` if background sending is disabled. * Dev - Added `has_shipping_address` helper method. * Dev - Introduced `woocommerce_order_item_get_formatted_meta_data` filter. * Dev - Made wc_add_order_item pass correct values to woocommerce_new_order_item. * Dev - Fixed `legacy_posted_data` access in checkout class. * Dev - Fixed undefined property notice in `WC_Order_Item::offsetGet`. * Dev - Fixed PHP 7.1 warnings when using non-float values to `wc_get_weight()`. * Dev - Fixed incorrect variable name in `wc_add_order_item()`. = 3.0.3 - 2017-04-13 = * Fix - Fixed an issue with variation tax-classes when set to 'parent'. This made taxes apply on top of the tax inclusive price in certain setups. * Fix - Escaped attribute translations in the `cart.php` template and bumped the template version to match. * Fix - Corrected the display of refund dates on the order screen. * Fix - Fixed the grouped product visibility check in the grouped.php template and bumped the template version to match. * Fix - Fixed the sale badge display for grouped products. * Fix - Added the `itemReviewed` structured data for product reviews to make it validate. * Fix - Made the `get_attribute` method work on variation objects. * Tweak - Turned off the deferred email sending by default which was added in 3.0. Whilst it does improve performance, there were compatibility problems on some servers. It can be enabled with a filter if desired. * Dev - Added backtrace information to the deprecation messages to help find problem plugins. = 3.0.2 - 2017-04-12 = * Fix - Removed required states for GP, GF, KW, LB, MQ, RE and YT countries. * Fix - Made cache in the [products] shortcode respect filters from plugins. * Fix - Added missing `woocommerce_cross_sells_columns` filter. * Fix - Fixed shortcode rendering on the shop page. * Fix - Fixed incorrect sale dates when bulk editing variations. * Fix - Fixed calls to wc_reduce_stock_levels in PayPal and Simplify gateways. * Fix - Exclude "location" meta when reading customer meta data. * Fix - Updated `emails/email-addresses.php`, `emails/email-order-details.php`, `content-single-product.php`, `checkout/form-shipping.php`, `myaccount/form-add-payment-method.php`, `myaccount/form-edit-address.php`, `myaccount/form-lost-password.php`, `myaccount/form-reset-password.php`, `myaccount/orders.php` and `myaccount/view-order.php` template version to 3.0.0 since they had changes since 2.6. * Fix - Fixed default behavior of variation tax classes when originally set to "parent". * Fix - When duplicating products, do not copy slug, append "(Copy)" to the product name, correctly copy all meta data, and prevent children of grouped products being duplicated too. * Fix - Removed duplicated items when outputting cross sells on the cart page. * Fix - Fixed output of default "add to cart" text of external products in loops. * Fix - Fixed backwards compatibility of guest checkout rules when being altered by plugins directly. * Fix - Use correct thumbnail sizes for variation images in the new gallery. * Fix - Fixed captions on thumbnails and main image in the new gallery. * Fix - Trigger wc_fragments_loaded after add to cart fragment refresh. * Fix - Download permissions; Convert dates to timestamp on read so UTC is preserved. * Fix - Fixed notices under PHP 7.1 when sorting products by name (numeric). * Fix - Added additional checks to ensure objects are read before using class methods to avoid errors. * Fix - Removed legacy suggest.js code which was causing JS error on bulk edit. * Fix - Fixed warnings on the "Lost password" page and when loading a product with invalid attributes. * Fix - Made background emailer update the queue after a successful send so duplicate mails are less likely. * Fix - Typo in flexslider_enabled option in new gallery script. * Fix - woocommerce_notify_low_stock and woocommerce_notify_no_stock options had no effect. * Tweak - For downloadable files, only validate file type when dealing with relative paths. * Tweak - Improved automatic variation name generation. * Dev - Added product visibility terms to system status report to help debug. * Dev - Introduced `woocommerce_admin_order_date_format` filter to replace missing `post_date_column_time`. * Dev - Introduced `woocommerce_update_customer_args` filter to prevent updates to user objects if needed. * REST API - Fixed saving of variations in legacy REST API v3. * REST API - Fixed backwards compatibility of line_items meta in legacy REST API. = 3.0.1 - 2017-04-06 = * Fix - Show catalog hidden products within grouped products. * Fix - Fade in the gallery in if no images are set or it's custom. * Fix - Use wc_deprecated_function in WC_Deprecated_Hooks so notices aren't output in ajax requests. * Fix - Added back the ability to include extra items to the System Status using the `woocommerce_system_status_environment_rows` filter. * Fix - Coupon category restrictions and limits for variations. * Fix - Allow shortcodes and HTML in variation descriptions like in 2.6. * Fix - Unset post date when duplicating products. * Fix - Show a sale price on variable products if on sale and all prices are the same. * Fix - Corrected download links when a product has multiple downloads. * Fix - Prevented potential errors if the product type was not posted for any reason on save. * Fix - Updated `single-product/up-sells.php`, `loop/add-to-cart.php`, `loop/rating.php`, `checkout/form-billing.php`, and `content-product.php` template version to 3.0.0. * Fix - Included clearfixes on billing and shipping field wrappers, * Fix - Fixed styling of logs table in some languages. * Fix - Fixed display of variation attributes on old orders. * Fix - Use placeholder text for external products add to cart button text if left blank. * Fix - Fallback to home URL if no shop page is set for system status security check for HTTPS. * Fix - For variations, pull tax status and sold individually from the parent since there is no UI to set this at variation level. * Fix - Moved cron emails to background processing to avoid multiple sends. * Fix - Wrapped structured data in a hidden element when added to emails. * Fix - Missing gateway information in queued emails. * Fix - Fixed a bug that caused pages to permanently reload if "Default customer location" was set to "Geolocate (with page caching support)". * Fix - When forcing shipping to billing, set the shipping fields in the order itself. * Fix - Check for invalid objects in WC_Register_WP_Admin_Settings. * Fix - Check for error object in wc_get_object_terms. * Fix - Removed slashes in shipping meta data on the order edit screen. * Fix - Prevented permalink rewrites for attributes with missing names. * Fix - Fixed saving of meta data when multiple extensions use the `save_post` action. * Fix - Allow search customers by ID in edit order screen. * Fix - Prevents session data overwriting customer data on login. * Fix - Fixed cross-sell column display and variation support. * Fix - Fixed variable product stock syncing on save. * Fix - Included try/catch wrapper to prevent issues with Select2. * Fix - Prevented a bug that deleted all variations when the product type was change from variable to simple. * Fix - Switched to WPDB to quicker update when syncing titles for variations. * Fix - Exclude deprecated properties when loading a customer object. * Fix - Fixed notices while trying to order again. * Fix - Fixed notices when `$wpdb->prefix` is empty. * Fix - Prevent errors when loading a product with an invalid download file types. * REST API - Fixed missing array declaration in CRUD controller. * REST API - Removed extra `exclude`, `include` and `search` parameters from taxes endpoint. * REST API - Fixed variation description formatting. * REST API - Fixed incorrect attribute check in products endpoint in Legacy REST API. * REST API - Allow variation image to be unset. = 3.0.0 - 2017-04-04 = * New gallery on single product pages with better mobile support, using PhotoSwipe and Zoom. Declare support with add_theme_support() - wc-product-gallery-zoom, wc-product-gallery-lightbox, wc-product-gallery-slider * Made the store notice dismissible on the frontend. * Variable products no longer show striked out prices in combination with ranges for clarity when on sale. * Prices no longer display as 'free' instead of 0, to fix issues with ranges and localization and for consistency. * Improved structured product data by using JSON-LD instead of inline Microdata. * Improved downloads list layout (template file). * Respect stock status and prevent the "out of stock threshold" setting affecting existing in-stock products. * Improved handling of shop page rewrite rules to allow subpages. * Redirect to login after password reset. * When using authorizations in PayPal Standard, automatically capture funds when the order goes processing/completed. * On multisite, when a user logs into a store with an account on a site, but not the current site, rather than error, add the user to the current site as a customer. * Show variable weights/dimensions even when parent values are not set. * Automatically sort tax rates rather than allow clunky manual sorting. * When deleting a tax rate class, remove it's tax rates. * Made WC_Logger pluggable via wc_get_logger function. * Use 'average rating' post meta for 'rating' product sorting option. * Show better labels in nav menus metabox. * Sort “Recently Viewed” products by the view order. * Removed internal scroll from log viewer. * Add reply-to to admin emails. * Improved the zone setup flow. * Made wc_get_wildcard_postcodes return the orignal postcode plus * since wildcards should match empty strings too. * Use all paid statuses in $customer->get_total_spent(). * Move location of billing email field to work with password managers. * Option to restrict selling locations by country. * Added tool to clear orphaned variations in system status. * Remove checkbox options in system status tools and replace with constants. * Added security section in system status report. * Add image_url setting to PayPal Standard. * Fixed attribute registration. Attributes are non-hierarchical by default (parent is not supported). * Add sort parameter to checkout fields to aid with sorting per locale. * Merged percent and percent product coupon types (they provide the same discount). * Prevent payment details being cleared after update_checkout events. * Performance - Converted _featured and _visibility meta data to terms for faster catalog queries. Upgrade routine handles migration. Developers may need to update queries to reflect this change. * Includes product attributes archives links in "Additional Information" tab. * Select2 has been upgraded to v4. * Improved logging system for extensions. * Tax suffix is now hidden on non-taxable products. * Grouped products are linked from the parent rather than the children. Children can be in more than one group. * Removed coupon usage link in coupons admin screen. * Performance - Converted rating filters to visibility terms. * Performance - Added visibility term for outofstock products to speed those queries up also. * Performance - Introduced a new CRUD (create, read, update, delete) system for Products, Orders, Customers and Shipping Zones. * Performance - Optimised variable product sync. Upper/lower price meta is no longer stored, just the main prices, if a child has weight, and if a child has dimensions. * Performance - Removed WP_Query from up-sells.php and related.php and replaced with PHP foreach loop (since we already have the product IDs). * Performance - Removed the feature where old orders get access to new downloads on product edit. Looping potentially thousands of orders to do this is too much of a performance burden for stores and this can sometimes be unexpected behavior too. This does however updates *edited* downloads. * Performance - Removed 'items' column on orders screen due to loading excessive data. * Performance - Deferred email sending for faster checkouts. Now uses CRON. * API - New Rest API v2 with support for meta_data amongst other things. * API - Removed last order from customers part of the API due to performance concerns - use orders endpoint instead. Other order data on the endpoint is now transient cached. * API - Allow oAuth1.0a authentication using headers. * API - New Shipping Zones endpoints. * API - New variations endpoints. * API - New settings endpoints. * API - Payment gateways and shipping methods endpoints. * API - Prevented the (broken) ability to manipulate variations directly on the products endpoints. * CLI - New CLI which uses the REST API endpoints rather than it's own functions. * Localization - Improved RTL support. * Localization - Added a language independent permalink setting function. * Localization - Added inline comments for placeholder strings. * Localization - Added Nigerian and Pakistan Provinces to i18n/state. * Localization - US and Poland postcode validation. * To read more about this release, see our dev blog announcement here: http://wp.me/p6wtcw-Uo = 2.6.14 - 2017-02-02 = * Fix - Ensure product exists in wc_update_product_stock. * Fix - Send emails using the site language. * Fix - Remove tilde typo. * Fix - Fixed notice in get_rating_count. * Tweak - Define arg and return data types, added extra descriptions, and correctly cast IDs in the Rest API. * Tweak - Handle custom error data in WC_REST_Exception. * Tweak - Display conflicted product ID when using a duplicate SKU via the API. * Localization - Add Finnish defaults to the installer. = 2.6.13 - 2017-01-18 = * Fix - Demo store banner styling in 2017. * Fix - Removed default instructions from COD, BACS and Check gateways so displayed messages can be unset. * Fix - Made variation options update on first load. * Localization - Added Romanian locale to the installer. = 2.6.12 - 2017-01-12 = * Fix - Make images shown up on pageload when using ajax variations. * Fix - Allow variations options to be deselected in IE11. * Fix - Disabled-button and pagination styling in 2017. * Fix - PHP 7.1 compatibility issues with non-numeric math operations. * Fix - Fix notices in abstract class when price is empty. = 2.6.11 - 2016-12-22 = * Fix - Variation form compatibility with quotes in attribute values, and initial variation image fadeIn on certain configs. = 2.6.10 - 2016-12-22 = * Fix - Flat rate no class costs when no shipping classes exist. * Fix - Returned REST API coupon expiry date. * Fix - reviews_allowed being set to false in Rest API. * Fix - Sales date series for some custom ranges. * Fix - Missing attributes when an option is chosen by default on variations. This was the result of a Firefox 50 compatibility fix. In order to support both Firefox, Chrome, IE, and Edge we've done some refactoring of the variation add to cart scripts. * Tweak - Updated Geo IP API services. * Dev - Added support for WP VIP/VIP GO GEO IP headers. * Dev - API - Throw error messages when product image ID is not a valid WordPress attachment ID. = 2.6.9 - 2016-12-07 = * Theme - Added support for Twenty Seventeen Theme. * Fix - Excluded webhook delivery logs from comments count. * Fix - Included password strength meter in "Lost Password" page. * Fix - Order fee currency in admin screen. * Fix - Variation selection on Firefox 40. * Fix - Don't prevent submission when table is not found on cart. * Fix - Improved layered nav counts on attribute archives. * Fix - Fixed pagination when removing layered nav items via widget. * Fix - Default BE tax rate. * Fix - Downloads should store variation ID rather than product if set. Also fixes link on account page. * Fix - Use wp_list_sort instead of _usort_terms_by_ID to be compatible with 4.7. * Fix - Only return empty string if empty for weight and dimension functions. * Fix - Added correct fallbacks for logout/lost password URLs when endpoints are not defined. * Security - Wrapped admin tax rate table values in _escape to thwart evil CSVs an admin user could upload. Vulnerability was discovered by Fortinet’s FortiGuard Labs. * Dev - API - Only update categories menu order and display if defined. * Dev - Fixed when should deliver wp_trash_post webhooks. = 2.6.8 - 2016-11-10 = * Fix - REQUEST_URI was missing a trailing slash when being compared in the cache prevention functions. * Fix - Prevent issues when sending empty prices to PayPal. * Fix - Invalid email check. * Tweak - New extensions screen. = 2.6.7 - 2016-10-26 = * Fix - Use FLOOR and CEIL to get price filter values. Fixes the issue where max price is capped at 99. * Fix - Hide "Sales this month" information from Dashboard widget for users that don't have `view_woocommerce_reports` capability. * Fix - Remove notices only once on cart so subsequent notices do not remove older notices. * Tweak - Improve credit card fields for better mobile experience. = 2.6.6 - 2016-10-20 = * Fix - Conflict with Local Pickup Plus extension due to 2.7.x code in has_shipping_method(). * Fix - Shipping method display order on frontend. = 2.6.5 - 2016-10-19 = * Fix - Shipping classes URL in admin. * Fix - Notice in reports when using custom date ranges. * Fix - When checking needs_shipping, ignore anything after : in the method ID. * Fix - Allow has_shipping_method to work with instances. * Fix - Potential notice in wc_add_to_cart_message(). * Fix - Prevent notice in wpdb_table_fix if termmeta table is not used. * Fix - Payment method box fixes e.g. maintain previously selected payment method after update. * Fix - Prevent multiple password validation methods at once on my account page. * Fix - Ship to specific counties option had no effect. * Fix - Broken Webhook delivery due to use of post_date_gmt which does not exist for drafts. * Fix - Use method title in admin shipping dropdown. * Fix - Fixed downloadable variable product URL. * Fix - Handle object when generate_cart_id is used to prevent notices. * Fix - Set header link color in emails. * Fix - Rest of the world ID 0 zone handling when using CRUD classes. * Fix - Cast prices as decimal when querying prices in price filter widget. * Fix - API - Fix coupon description field. * Fix - API - ID needs to be capitalized to allow correct sorting. * Fix - API - Fixed undefined order ID. * Fix - API - Allow API to save refund reason. * Fix - API - Resolved encoding issues with attribute and variation slugs. * Fix - API - get_attributes should return term name, not slug. * Fix - API - Product "filter" and "sku" parameters. * Fix - Handle info notices in cart, not just error messages. * Fix - Don't remove hyphens in attribute labels. * Fix - Start sales on variations after they are saved, if applicable. * Fix - Made the text showing max variations you can link match the actual filtered value. * Fix - Add missing tables to wpmu_drop_tables function. * Fix - When syncing variation stock, ensure post is a variation. * Fix - Resolved some sales by date sum issues. * Fix - Fix cart update in IE when enter key is pressed. * Fix - Variation is_on_backorder when parent manages stock. * Fix - Fix variation script malfunctioning when show_option_none arg is set to false. * Fix - Fire tokenisation event on load for pay page. * Fix - Populate attribute dropdown when empty. * Fix - Fix email check on my account page. * Fix - Send processing email on on-hold to processing transition. * Fix - Incompatibility with SQLite databases. * Fix - KGS and ISK currency symbols. * Tweak - Password reset now uses WP functions. * Tweak - Format US 9-digit postcodes. = 2.6.4 - 2016-07-26 = * Fix - Security - Only allow image MIME type upload via REST APIs. * Fix - Shipping method title display in COD settings. * Fix - Order date input in Edge browser. * Fix - Ensure value is not null in variations to support empty show_option_none setting. * Fix - get_the_title does not need escape in grouped template file. * Fix - Ensure WC_ROUNDING_PRECISION is defined and use it as a low precision boundary in wc_get_rounding_precision(). * Fix - Response body should be a string in webhook class. * Fix - Use h2 instead of h3 headings in profile screen. * Dev - API - Allow Allow meta_key/value filters for products. * Dev - CLI - Explode tags and category IDs to allow multiple comma separated values. * Dev - add $order arg to woocommerce_admin_order_item_class and woocommerce_admin_html_order_item_class filters. = 2.6.3 - 2016-07-19 = * Fix - Security - Escape captions in product-thumbnail and product-image templates (template versions have been bumped). * Fix - Fixed how we calculate shipping tax rates when using more than one tax class. * Fix - When duplicating product variations, set title, name, and guid. * Fix - Normalized 'read more' buttons. * Fix - Add to cart notices for grouped products. * Fix - Do not sanitize passwords in the settings API. * Fix - Handle shipping zone location range conversion during update (dashes to ...). * Fix - Always remove commas while processing flat rate costs. * Fix - Ensures account page layout is only applied to desktop-sized displays. * Fix - When getting layered nav counts, take search parameters into consideration. * Fix - Free shipping show/hide javascript. * Fix - Strip hash characters when exporting reports. * Fix - Use permission id to revoke access to downloads to prevent removing wrong rows. * Fix - When duplicating product variations, set title, name, and guid. * Fix - Set more appropriate default rounding precision based on currency decimal places. * Fix - Fix message styles for empty carts. * Fix - Fixed the load of the WC_Email_Customer_On_Hold_Order class. * Fix - Don't perform cart update on search submit. * Dev - API - Added support for WP REST API with custom URL prefixes. * Dev - API - Delete variations when deleting a variable product. * Dev - API - Fixed how we check for product types. * Dev - Added woocommerce_cart_id filter. * Dev - Add shortcode name param to shortcode_atts function calls. * Dev - Post custom data when fetching a variation via ajax. * Dev - Include child prices in grouped_price_html filter. * Dev - Allow filtering of variation stock quantity. * Dev - Added $_product argument to 'woocommerce_restock_refunded_item' hook. * Dev - Added a filter hook for the wc_ajax endpoint url. * Tweak - Include account page link in new customer account emails. * Tweak - Updated all URLs from WooThemes.com to WooCommerce.com. * Tweak - Cache the result of WC_Comments::wp_count_comments() in a transient (improves performance). = 2.6.2 - 2016-06-30 = * Fix - Set max index length on woocommerce_payment_tokenmeta table for utf8mb4 support. * Fix - is_available check for legacy shipping methods. * Fix - wc_add_to_cart_message() when non-array is passed. * Fix - Maximum coupon check should allow the 'maximum' value. * Fix - Product coupon logic to avoid applying non-applicable coupons. * Fix - Potential notices when leaving out 'default' field for shipping instances. * Fix - wp_cache_flush after term meta migration/update. * Fix - wc_add_to_cart_message() when non-array is passed. * Fix - woocommerce_redirect_single_search_result type check was incorrect. * Fix - Javascript show/hide of option in free shipping method. * Fix - Convert ellipsis to three periods when saving postcodes. * Fix - Prevent get_terms returning duplicates. * Fix - Removed non-existent country (Netherlands Antilles) from https://en.wikipedia.org/wiki/ISO_3166-1. * Fix - Grouped product range display when child is free. * Fix - Remove discount when checking free shipping min amount. * Fix - Prevent blocking the same element multiple times on cart page. * Fix - Don't sync ratings right after a new comment to prevent rating sync whilst rating meta does not exist yet. * Fix - Fix product RSS feeds when using shop base. * Fix - woocommerce_local_pickup_methods comparison by stripping instance IDs before the check. * Fix - During password resets, use cookie to store reset key and user login to avoid them being exposed in the URL/referer headers. * Dev - API - Fixed variable product stock at product level. * Dev - CLI - Introduces `woocommerce_cli_get_product_variable_types` filter. * Dev - Allow notices to be grouped on checkout after certain events. * Dev - API - Allows save images by ID with product variations. * Tweak - Made customer pay link display if order needs_payment() rather than checking pending status. * Tweak - Zones - Wording clarifications. * Tweak - Zones - Match zones with postcodes but no country. * Tweak - Zones - Match zones with no regions as 'everywhere'. * Tweak - Added view_admin_dashboard cap for disabling the admin access restriction in custom roles. * Tweak - Revised stock display based on feedback to hide 'in stock' message if stock management is off and only show available on backorder if notifying customer. * Tweak - Allow external product SKUs. * Tweak - PT (Portugal) and JP (Japan) postcode formats. * Tweak - Sort products from the `[product_category]` shortcode by menu order. * Tweak - Improve wc_orders_count() performance by running a query to count only posts of the given status. * Tweak - To allow my account page tabs to be disabled without code, you can now set the endpoint value to a blank string. = 2.6.1 - 2016-06-16 = * Fix - Added missing localized format for line taxes in orders screen to prevent total miscalculation in manual orders. * Fix - Improved the hour and time fields validation pattern on the orders screen. * Fix - PayPal does not allow free products, but paid shipping. Workaround by sending shipping as a line item if it is the only cost. * Fix - SKUs prop on products shortcode. * Fix - Layered nav counts when term_id does not match term_taxonomy_id (before splitting). * Fix - Fixed referer links from cart messages in WP 4.4. * Fix - Fix the showing/hiding of panels when terms do not exist by using wc_get_product_types() for retrieving product types. * Dev - content-product.php and content-product_cat.php contained the wrong version. * Dev - Show "matching zone" notice on the frontend when shipping debug mode is on. * Dev - Restored missing WC_Settings_API::init_form_fields() method to prevent potential errors in 3rd party gateways. * Dev - API - Fixed returned data from product images (changed `title` to `name`). * Dev - API - Fixed products schema for `grouped_products`. * Dev - API - Fixed products attribute options when contains `,`. * Tweak - Hide 'payment methods' screen if no methods support it. * Tweak - If shipping method count changes, reset to default. * Tweak - Avoid normalization of zone postcodes so wildcard matching can be performed on postcodes with spaces. E.g. SP1 * * Tweak - Allow max_fee in addition to min_fee in flat rate costs fields. * Tweak - Wrap order_schema_markup() output in hidden div in case script tag is stripped. = 2.6.0 - 2016-06-14 = * Feature - Introduced Shipping Zone functionality, and re-usable instance based shipping methods. * Feature - Tabbed "My Account" area. * Feature - Cart operations now use ajax (item quantities/remove, coupon apply/remove, shipping options). * Feature - Layered nav; filter by rating. * Feature - On-hold order emails. * Dev - All new REST API based on the WP REST API. The old WC REST API is still available, but the new one is preferred. * Dev - Added ability for shipping methods to store meta data to the order. * Dev - Added Payment Gateway Tokenization API for storing and retrieving tokens in a standardized manner. * Dev - Migrated custom term meta implementation to WP Term Meta. * Dev - Added new wc_get_orders() function to get order objects and ids instead of direct get_posts() calls. * Dev - Made coupon optional in cart has_discount() method. * Dev - Made the review template more editable. * Dev - Allowed product constructors to throw exceptions if invalid. * Dev - Wrapped currency symbols in a span to allow styling or replacement. * Fix - Update download permission user and email when changed. * Fix - Fixed shipping method unregistration. * Fix - Stopped create and update webhooks firing at the same time for products. * Fix - Allow COD to set on-hold status if the order contains downloads. * Fix - Force CURL to use TLS 1.2 for PayPal connections. * Tweak - Improved lost password flow. * Tweak - Show payment dates on order screen. * Tweak - Ignore catalog visibility on products shortcode when specifying IDs or SKUs. * Tweak - Added context to checkout error messages. * Tweak - Added SKU field to grouped products. * Tweak - Moved SKU field to inventory tab. * Tweak - Support qty display in cart messages. * Tweak - Hide min order amount field when not needed in shipping settings. * Tweak - If shipping < 999.99, use 'shipping' arg when passing values to PayPal. * Tweak - Show net sales on dashboard. * Tweak - Replaced credit card icons with SVG. * Tweak - Enqueue scripts on pages with checkout shortcodes. * Tweak - Color code the manual, system and customer notes. * Tweak - Layered Nav Refactoring to improve performance. * Tweak - Removed tag/cat classes from loops since WP does the same. * Tweak - Added hash check for orders so that if the cart changes before payment, a new order is made. * Tweak - Removed unused 'view mode' under screen options. * Tweak - Added 110 new currencies (including Bitcoin). * Tweak - New background updater for data upgrades. * Tweak - Blank slates in admin post screens. * Tweak - Added blockui when variations are being retrieved via ajax. * Tweak - Hide empty taxes by default (filterable). * Tweak - Allow failed orders to be edited. * Tweak - If there are no shipping methods setup, don’t prompt for shipping at checkout. * Tweak - Allowed country exclusion, rather than just inclusion, in ‘sell to’ setting. * Lots, lots more - [see the comparison here](https://github.com/woocommerce/woocommerce/compare/2.5.5...2.6.0). = 2.5.5 - 2016-03-11 = * Fix - Before running dbdelta, drop indexes to prevent duplicate key notices. * Fix - Prevent notice when unsetting terms on product edit screen. * Tweak - zeroclipboard fallback for firefox on system status report. * Tweak - Check valid product ID is provided on add_to_cart shortcode. = 2.5.4 - 2016-03-10 = * Fix - Fix table creation when using utf8mb4 charset. * Fix - Have wp_insert_post return WP_Error when creating our coupon, so the is_wp_error check can catch it. * Fix - Clear sale price on save if sale is no longer valid. * Fix - Round refund values to ensure refunds can be performed. * Fix - When getting coupon by code used twice, latest should be queried. * Fix - CLI improvements for setting up variations and deleting orders. * Fix - Allow big selects when getting variations to support larger queries. * Fix - Trigger webhook when user edits addresses on frontend. * Fix - Hide shipping row when calculator is disabled, and shipping costs are hidden. * Fix - Unset deleted attributes when updating products. * Tweak - Update date for paid orders during non-manual updates only. * Tweak - wc_get_page_permalink - if the page ID is not set, redirect home instead to prevent white screens. * Tweak - Remove log dir from system status report. * Tweak - When sorting by date, fallback to ID. * Tweak - Rename pay link for clarity. * Tweak - Provide a fallback message if copying to the clipboard fails in system status report. = 2.5.3 - 2016-03-01 = * Fix - Correct the 'unavailable template' call for variations so the message is displayed correctly, fixing a JS error. * Fix - Add 'media-models' dependency to write panel scripts. * Fix - Fix hide empty check in category walkers. * Fix - Current class fix on some servers when empty. * Fix - Multibyte safe trim string function. * Fix - Prevent a notice by stopping a loop in woocommerce_products_will_display from stomping on other variables. * Fix - If an attribute meta key is not set, technically its 'any', so should match. Prevents issues when meta data is missing after renaming attributes. * Fix - Make wc_get_product_variation_attributes ignore non variation attributes. * Fix - Notice when no order notes exist. * Fix - Removed extra tab from plain email shipping address. * Fix - Round shipping after tax calculation instead of before to prevent wrong taxes being calculated. * Fix - State input box was not reappearing when switching from a hidden input to a text input. * Fix - Don't duplicate rating and review counts. * Fix - CLI - Allow setting of a single category. * Fix - API - Replace term_taxonomy_id for term_id whilst creating/editing terms. * Fix - API - Fix parent_id and menu_order for variations. * Fix - Combine update post calls when update_status is ran. * Fix - Total number of comments in the admin panel. * Tweak - Show customer details for logged in users only on thanks page to prevent customer details being revealed if someone finds out the URL. * Tweak - Wrap status report in backticks to stop people breaking .org forums. * Tweak - Error handling for screen ids. * Tweak - Use $wpdb->replace instead of doing a select and then deciding to do an update or insert in session handler. * Tweak - Added check for private WooCommerce pages in status report. * Tweak - Transactional emails for failed -> on hold. * Dev - Include new triggers when removing and adding the password strength meter. * Dev - Allow pass objects and arrays as webhook callbacks. = 2.5.2 - 2016-02-01 = * Fix - Compatibility with w3 total cache inline minification. * Fix - Remove stock bw compat code which was preventing manage stock being disabled at variation level. * Fix - When calculating shipping total, force rounding. * Fix - Make save button clickable in tax rate table after using autocomplete field. * Fix - Fix passed image_size variable in email templates. * Fix - Don't show purchase note to admin in emails. * Fix - Fix 'hide empty' setting in category widget. * Fix - Prevent notice in get_allowed_countries. * Fix - Prevent add-to-cart querystring in pagination links. * Tweak - Allow propagation in variation script. * Tweak - Product image alt text. * Tweak - Remove notice and add styling for add payment page. * Tweak - Set input margin and label display for compatibility with themes using bootstrap CSS. * Tweak - Add context to category term localization. * Tweak - Moved cart URL functions to core-functions file to make them available in admin area. * Tweak - Added password hint text and error messages when showing the password strength meter in forms. * Tweak - Added Saudi Riyal currency. * Tweak - Added Russian Ruble symbol. * Tweak - When COOKIEPATH is an empty string, set to '/' so cookies work across all pages. * Dev - Template - Pass $category into wc_product_cat_class() in content-product_cat.php = 2.5.1 - 2016-01-25 = * Fix - Remove usage of get_currentuserinfo() which is deprecated in WordPress 4.5. * Fix - Fix responsive product sizes when the columns class is missing. * Fix - Fix function exists check for woocommerce_template_loop_category_title. * Fix - check_version on all requests so that the installer runs after remote plugin updates. * Fix - Only show the "add payment method" button when needed, and check for required fields on the add payment method page. * Fix - Correctly block UI to prevent attribute issues in backend when adding multiple attributes in quick succession. * Fix - Show SKU in admin emails. * Fix - Don't show downloads in admin emails. * Fix - Fix query/missing variable in validate_user_usage_limit function. * Fix - Prevent endless loading on checkout when reload_checkout session variable was used. * Fix - Correctly display html entities in tax screen autocomplete. * Fix - Do sales reports based on refund line items rather than fully refunded orders to prevent double refunds being reported. * Fix - Qty button can be hidden for variable products sold individually. * Fix - Show the taxable country rather than base country in "estimated for" text during checkout. * Fix - Prevent select2 gaining focus on IOS7 scroll. * Fix - API - Fix indexes on decimal and thousand values. * Tweak - Clear cron jobs on uninstall. * Tweak - Don't disable place order button on checkout if a weak password is used. * Tweak - Added password strength meter in lost password and edit accout pages. * Tweak - Pass $args to woocommerce_dropdown_variation_attribute_options_html hook. = 2.5.0 - 2016-01-18 = * Feature - New default session handler. Uses custom table to store data rather than the options table for performance and scalability reasons. https://woocommerce.wordpress.com/2015/10/07/new-session-handler-in-2-5/ * Feature - New tax settings UI - faster, enhanced with ajax, searchable. * Feature - WP CLI Support. https://woocommerce.wordpress.com/2015/10/01/sneak-peek-wp-cli-support-in-woocommerce/ * Feature - Added terms and conditions checkbox to pay page. * Feature - Password strength indicators. * Feature - Added 'pay' link to order screen. * Feature - Added admin order/payment failed notification. * Fix - Check for existence of global attribute when you get_attributes() for a product. * Fix - Show order by template on product search. * Fix - Search variation skus in backend search. * Tweak - For coupons with category restrictions, respect the category hierarchy. * Tweak - Added wc_array_cartesian function to generate variations in a logical order. * Tweak - Revised email settings screens to show emails in a table and avoid a long sub-nav. * Tweak - Default customer role capabilities. * Tweak - Expire mini-cart cache after 24 hours. * Tweak - Improved refund error messages in PayPal Standard. * Tweak - Removed language pack downloader in favour of translate.wordpress.org. * Tweak - Added onboarding wizard button to the contextual help so it can be accessed again. * Tweak - When a WordPress user is deleted, turn any orders they have into Guest orders. * Tweak - When calculating order taxes, respect tax settings and default to base country. * Tweak - Fade in variation images to avoid flicker during load. * Tweak - Display 2 averages on report (net and gross). * Tweak - Improve product search and use WPDB instead of several get_posts queries for performance. * Tweak - Use SKU for stock order notes. * Tweak - Added order notes for manual email sends. * Tweak - Sanitize shipping method labels/titles. * Tweak - Only display the coupon form on the checkout if a coupon hasn't been applied. * Tweak - Added billing address column to order screen (off for new users). * Tweak - Created function to disable author archives for customers. * Tweak - When updating cart hash, refresh all open tabs. * Tweak - Use new "question" mark icon font for help tips. * Tweak - Improved review verification status retrieval. * Tweak - Improve appearance when only 1 gateway is active. * Tweak - Aligned terms box left and added required asterisk. * Tweak - Removed dropdown display mode for cart shipping methods - radios are more flexible. * Dev - API - Added /products/shipping_classes endpoint. * Dev - API - Added support to POST, PUT, and DELETE categories and tags. * Dev - API - Added support to filter products by tag, category, shipping class, and attribute. * Dev - API - Added tax and tax_class endpoints. * Dev - Template - New star ratings. The old one was 5 separate buttons. This new one consolidates the 5 options into one element making it leaner visually and more intuitive. Works in IE9+ with a graceful degradation for IE8. * Dev - Template - Added `data-title` attribute to cart table. * Dev - Template - Product archive anchors are now hooked into templates rather than hard coded. * Dev - Template - Added template files for the customer details list in emails. emails/email-customer-details.php * Dev - Template - Revised single variation cart template. Template files now exist for variations, and the cart button will display (disabled) when no selections are made. * Dev - Template - Made "my orders" columns fully customizable with filters. * Dev - Template - Unified email template order details tables to use a single template. * Dev - Allow wc_clean to support arrays. * Dev - Added a manual update trigger for checkout. * Dev - Added woocommerce_is_price_filter_active filter to Query class. * Dev - Replaced some cart methods with dedicated functions. e.g. wc_ship_to_billing_address_only(). * Localisation - Add Kenyan currency and symbol. = 2.4.13 - 2016-01-11 = * Fix - Potential redirect loop when using 'unforce ssl' setting and a https home URL. * Fix - Escape option names when cleaning up sessions. = 2.4.12 - 2015-12-9 = * Fix - 4.4 - Permission error when editing attribute terms. * Fix - 4.4 - Missing variation images when wp_get_attachment_image_srcset() returns false instead of a string. * Fix - 4.4 - Use post-thumbnail size in admin to avoid srcset. * Fix - Webhook status not changed after save with active object-cache. = 2.4.11 - 2015-12-7 = * Fix - WordPress 4.4 support. * Fix - Removes Switzerland from EU VAT definition. * Fix - Fix auth endpoint urls. * Fix - To allow backslash in SKUs. * Fix - Sanity check for min/max quantity. * Fix - 4.4 - Shipping class menu display. * Fix - 4.4 - Admin menu icons and styling. * Fix - API - Variable product backorders editing. * Fix - API - Delete product transients when delete a variable product. * Fix - API - Returned status when have an invalid oAuth timestamp. * Fix - API - Early call of order status when editing orders. * Tweak - 4.4 - Basic support for product embeds. * Tweak - 4.4 - Support for srcset/sizes and responsive images. * Tweak - 4.4 - Support for Twenty Sixteen. = 2.4.10 - 2015-11-10 = * Fix - Geo IP - Correctly parse .dat files. * Fix - Geo IP - Ensure WC_Logger class exists before logging errors. * Fix - Geo IP - Prevent notices in ipv6 methods. * Tweak - Add information about credit card address for Simplify Commerce. = 2.4.9 - 2015-11-09 = * Fix - Check abspath exists in more files to prevent errors on direct access. * Fix - Hide SQL errors during ajax requests. * Fix - Fixed redirection loop on customizer screen. * Fix - Improved error handling in WC_Geo_IP. * Fix - Bulk edit sale prices. * Fix - Check for child themes in System Status. * Fix - API - Warnings when create attributes. * Fix - System Report: Template version check path. * Fix - Potential XSS within price.php fixed with escape on get_price() (would require edit/admin permissions to take advantage of). Discovered by FortiGuard Labs (https://www.fortiguard.com/). Template version has been bumped. = 2.4.8 - 2015-10-26 = * Fix - Help tips in variations admin. * Fix - API - Fixed customer count method. * Fix - Locale switching for city field. * Fix - Notice in wc_nav_menu_items when endpoint is not set. * Fix - Loading of correct variation prices when display is true and false in the same page load. * Fix - Shipping priority for methods with colons in the name. * Fix - Saving of passwords with '&' inside. * Fix - Remove double escaping of coupon descriptions. * Fix - Settings API default value should not apply if value of option is 0. * Fix - Avoid potential PHP Fatals by avoiding premature script enqueues. * Fix - Pass mimes when checking file type. * Fix - Reset shipping totals before calculation to prevent totals being used incorrectly. * Fix - API - Corrected how attributes terms saves non-latin characters. * Fix - API - Variations price sync. * Fix - API - Fixed lost variable products data when create/edit an order. * Tweak - Add trailing slash in get_page_uris to reduce likelihood of conflicts. * Tweak - API - Added refunded_item_id on GET orders//refunds endpoint. * Tweak - API - Allow variable products to get retrieved by SKU. * Tweak - API - Allow edit variations without define the product type to variable. = 2.4.7 - 2015-09-21 = * Fix - Handle Switzerland in get_european_union_countries. * Fix - For geolocation with static cache support, ensure hash is appended during form submission. * Fix - To prevent discounts being applied in 'random' order (based on order added to cart), sort cart items based on subtotal during calculate_totals. * Fix - Removed extra ob_start() in class-wc-shortcodes.php. * Fix - Show counts in category dropdown. * Fix - Escape add to cart messages to stop translations from breaking cart events. * Fix - Display of product/order tables in the dashboard when viewed on handheld devices. * Fix - API order item 'key' value. * Fix - Check specifically for Post IDs in WC Query verbose rules fix. * Fix - Only run maybe_set_cart_cookies if cart was loaded to prevent notices. * Fix - Variation loading/refresh after attribute saving. * Fix - Added monthly cron schedule. * Fix - Remove use of 'input' event in checkout scripts to prevent IE11 triggering updates on placeholder change. * Fix - AJAX variations not being found in some cases when product version was < 2.4, but attributes were updated after sync(). * Fix - Changed the way variable product prices get cached for greater plugin compatibility. See https://wp.me/p6wtcw-5x * Fix - Highlighting of reports chart. * Fix - Network activated plugins not showing up in system status report. * Fix - Tax fields showing on bulk/quick edit when disabled the tax system. * Fix - Tax status and tax class values within bulk edit. * Tweak - Allow bulk edit price to 0. * Tweak - Add filters to control "shipped via" text. * Tweak - Allow line breaks in non-variation attributes. * Tweak - Renamed wc_var_prices transient to allow them to flush on product save. * Tweak - woocommerce_save_account_details_required_fields hook. * Tweak - Only 'count' published variations. * Tweak - Display of order total in admin with refunds. * Tweak - Use Geolocation class for customer IP detection. * Tweak - Use the needs_payment function (DRY). * Tweak - Tweak wc_create_page to work with trashed pages. * Tweak - Redirect 'not right now' to referer in onboarding wizard. * Tweak - woocommerce_update_new_customer_past_order action. * Tweak - Prevent empty terms when using `wc_get_formatted_variation()`. * Tweak - Unslash shipping label on orders admin screen. * Tweak - Prevent wrong phone numbers on PayPal for CA and US when users add the prefix `+1`. * Template - Removed 'Payment' heading in `templates/checkout/form-pay.php`. * Template - Removed unnecessary clearing div in `templates/checkout/payment.php`. = 2.4.6 - 2015-08-24 = * Fix - menu_order notices on IIS. * Fix - Grouped product is_purchasable check during add to cart. * Fix - Subscriptions 2.0 (unreleased) compatibility. * Fix - Encode variation data in add_to_cart_url method. * Fix - Bulk update variation: Set manage stock when _manage_stock meta data is missing. * Fix - Bulk update variation: Allow stock to be set to 0. * Fix - Ajax variation < 2.4 attribute name handling. * Fix - During updates, only recreate .htaccess if not using redirect download method. * Fix - Handle non standard decimals in flat rate costs. * Tweak - WC Setup wizard: Fix manual setting of decimal/thousand separator. * Tweak - Set ajax/nocache headers for ajax requests. * Tweak - Add tooltips for tax status and tax class options. * Tweak - WC Setup wizard: multi-line step styling. * Tweak - WC Setup wizard: site icon display on WP 4.3. * Tweak - WC Setup wizard: tweaked wording. * Tweak - WC Setup wizard: Add spinner/loading indication between onboarding steps. * Tweak - Allow HTML in store notice. = 2.4.5 - 2015-08-20 = * Fix - Global text based attribute saving on product page. * Fix - save_account_details should check display name of current user. * Fix - Show the right 'no shipping available' message when a country does not have states. * Fix - Add required postcode marker after label replace. * Fix - Flush product cache so prices are regenerated after scheduled sale ends. * Fix - Removed /page/ when using layered nav dropdown. * Tweak - Allowed Zip/Post Codes description for Local Delivery. * Tweak - Improve display_item_downloads numbering and use same function in emails. * Tweak - API - Fixes notices about deprecated `$HTTP_RAW_POST_DATA` on PHP 5.6. * Tweak - In add_to_cart_action, check is_purchasable rather than post status. * Tweak - Add expand/close links for attributes and match variation UI. * Tweak - Added locale info for BD, NP, JP and HU * Tweak - woocommerce_delete_version_transients_limit filter. * Tweak - Suppress errors when calling set_time_limit to avoid hosting conflicts. * Tweak - Keep new variation in sync so actions can modify data. * Tweak - Improved download numbering in emails and order page. * Tweak - Allowed users to install translations for the current language during the Setup Wizard. = 2.4.4 - 2015-08-14 = * Fix - Ajax variation handling when 'any' attribute is set. * Fix - Run html_entity_decode over text attributes to fix problems with quote characters. * Fix - COD: remove shipping check if the cart is 100% virtual. * Tweak - Order variations by menu_order by fallback to ID. * Tweak - Include attribute archives support in the breadcrumbs. * Tweak - woocommerce_variable_children_args hook. = 2.4.3 - 2015-08-12 = * Fix - Query within wc_customer_bought_product(). * Fix - Tab hiding with some theme markup. * Fix - Ajax variations: stripslashes to fix attributes with quotes. * Fix - No longer returns to the first variation list page when deleting one variation. * Fix - Refund subjects when order contains downloadable product. * Fix - wc_get_product_variation_attributes should only get parent attributes which are for variations. * Tweak - Disable display_errors during ajax requests to prevent malformed JSON. * Tweak - When merging shipping taxes with a shipping rate taxes, ensure shipping rate taxes is not malformed. * Tweak - Improved refund email events and woocommerce_order_fully_refunded hook. = 2.4.2 - 2015-08-11 = * Fix - If all variations are out of stock, maintain pricing display. * Fix - Prevent double add to cart due to ajax endpoints. * Fix - ordering_args in product_category shortcode. * Fix - Tax inclusive prices rounding case. * Tweak - If no variation prices are found, show no price label rather than free. * Tweak - Made tab panel selector more specific to avoid theme conflicts. * Tweak - Made checkout make use of new ajax endpoints. * Tweak - woocommerce_force_ssl_checkout no longer needs to check for admin-ajax actions. * Tweak - Hide get_formatted_legacy notices when doing ajax. * Tweak - use shop_single instead of full image size for variations. = 2.4.1 - 2015-08-10 = * Fix - Tweaked the 2.4 upgrade routine to disable refund emails during update. * Fix - Notices when calling get_shipping_classes(). * Fix - Added upgrade routine to ensure _stock_status meta exists for variations created before WooCommerce 2.2 = 2.4.0 - 2015-08-10 = * Feature - Onboarding/setup wizard for new users to handle basic store settings and installation. * Feature - Improved help tabs with inline video tutorials where applicable. * Feature - New AJAX powered variations interface to improve edit product page loading times and posting large amounts of data. * Feature - For products with many variations, on the frontend switch to AJAX to load matching variations based on user input attributes, instead of doing it all inline. * Feature - Show full category hierarchy in permalinks. * Feature - Added priorities for shipping methods to give more control over defaults. * Feature - [Added a new geolocation option to support static page caching using AJAX and a querystring.](https://woocommerce.wordpress.com/2015/07/02/making-geolocation-static-cache-friendly-in-2-4/) * Feature - Email notifications for partial refunds. * Feature - Visual API authentication endpoint for 3rd party use. * Feature - API key generation changes. Secret keys no longer stored in database. * Feature - [Refactored Flat Rate Shipping for simplicity.](https://woocommerce.wordpress.com/2015/06/simplifying-flat-rate-shipping-in-wc-2-4/) * Feature - Made international shipping UI the same as flat rate. * Feature - New ajax endpoints to improve performance by avoiding admin overhead. * Fix - Ensure coupon taxes are reset when calculating totals. * Fix - Improve discount amount rounding. * Fix - Update order shipping after editing shipping from API. * Tweak - Moved country next to other address fields in Checkout UI. * Tweak - Improved reports, in particular for refunds. * Tweak - Improve save_attributes ajax function to correctly save text attributes. * Tweak - Base discounts on the undiscounted price. #5874 * Tweak - Added wc_product_cat_class functions. * Tweak - Display related products and upsells in 4 columns. * Tweak - Only redirect to welcome page for MAJOR versions/updates. * Tweak - GeoLocation IPv6 database. * Tweak - Improved text based attribute handling to prevent issues with slashes. * Tweak - Ajaxified the grouped product option. * Tweak - Email template improvements and wider email client compatibility. * Dev - Created a template file for the Proceed to Checkout button. * Dev - API version v3. * Dev - API - Implemented full support for Basic Authentication for v3, following the RFC 2617 specs. * Dev - API - Fixed Oauth 1.0a to strictly follow all specs from RFC 5849 for v3. * Dev - API - Added an endpoint to handle product attributes. * Dev - API - Auto generete passwords for new customers only when enabled the generate_password option. * Dev - API - Added display and image on product categories response. * Dev - API - Added endpoint for bulk update/insert coupons, customers, products and orders. * Dev - API - Deprecated /product/sku endpoint from v3. * Dev - API - Created the /products/id/orders endpoint to fetch orders containing a specific product. * Localisation - Added Argentine currency and provinces. * [Various other small fixes and enhancements.](https://github.com/woocommerce/woocommerce/issues?q=is%3Aissue+milestone%3A%222.4+Helpful+Hedgehog%22+is%3Aclosed) = 2.3.13 - 2015-07-07 = * Fix - Improved the email settings save and tabs for 3rd party plugins. * Fix - Datepicker range for variations. = 2.3.12 - 2015-07-06 = * Fix - Fixed Google Chrome forcing to use SSL. This can cause some issues on websites behind load balancers or reverse proxies. [Read more](https://docs.woocommerce.com/document/ssl-and-https/#websites-behind-load-balancers-or-reverse-proxies). * Fix - Escaped shop url in empty cart template. * Fix - Escaped product tabs titles. * Fix - Removed deprecated PHP4 constructor on Widget classes. * Fix - Wrong `price_slider_updated` JS event arguments. * Fix - Stock quantity type in WC-API. * Fix - Don't reveal username when login failed on valid email login. * Fix - Fatal error on order details when have some downloadable product deleted. * Fix - Relative paths validation for downloadable product. * Fix - Flat rate shipping costs should ignore virtual items. * Tweak - Keep product quantity when happens some error while add product on the cart. = 2.3.11 - 2015-06-10 = * Fix - Check if rating is enabled before check if rating is required to a review. * Fix - get_discounted_price needs to check if taxes are enabled. * Fix - Fixed filetype check for digital downloads. * Fix - Newfoundland and Labrador state rename. * Fix - Escaped js in widget layered nav when use the dropdown option. * Fix - Switch the permissions check for json_search_products to use the read_product capability. * Fix - Fixed the addition of variable products using the Order API. * Fix - Sale item exclusion logic for variations. * Fix - Clear correct variation stock transients when setting stock. * Fix - Switch to JSON to avoid unserializing untrusted data when handling responses from PayPal. * Fix - API - Fixed the sanitization for downloadable files on products endpoint. * Tweak - woocommerce_downloadable_file_exists filter. = 2.3.10 - 2015-06-01 = * Fix - Fixed theme check notice for core supported themes. * Fix - Add RTL direction to emails. * Fix - Fixed product category media upload modal. * Fix - Coupon maximum discount calculation. * Fix - PayPal icons and URLs. * Fix - API - Fixed subtotal_tax round and decimal dp. * Fix - Wrap payment js in jquery. * Fix - Delete correct transient when linking variations. * Fix - Set default currency position format string (in case of missing or invalid `woocommerce_currency_pos` option value). * Fix - Simplify Commerce undefined constant ('error_code' > '$error' typo). * Fix - Fixes too many arguments in function or method call: WC_Shortcode_My_Account::add_payment_method. * Fix - Pass correct number of arguments to `wc_lostpassword_url()`, `wc_nav_menu_items()`, `wc_nav_menu_item_classes()`, and `wc_change_term_counts()`. * Fix - Fixes usage of void return value from `wc_cart_totals_taxes_total_html()`. * Fix - Missing global in `render_product_columns()`. * Fix - Add `$args` arguments to `WC_Product_Factory->get_product_class()` to allow `$product_type` to be overwritten by `$args['product_type']`. * Fix - Remove call to `wp_specialchars_decode()` in `wc_get_price_thousand_separator()` and `wc_get_price_decimal_separator()`. * Fix - fclose in logging class requires a resource, not a string. * Fix - Prevent (admin) SQLi when setting stock levels for product variations. * Tweak - Extra escaping of customer emails in `wc_customer_bought_product()`. * Tweak - Improve tooltip sanitization. * Tweak - Escape provided array of post codes in tax class. * Tweak - Escape metadata when duplicating products. * Tweak - Escape permalink settings slugs. * Tweak - Sanitize columns value in shortcodes. * Tweak - Use prepare for updating attributes. * Tweak - Use wp_safe_remote_ functions in place of wp_remote_ where applicable. * Tweak - Added extra capability checks to notices, email template editing, and admin ajax requests. * Tweak - Set nonce_user_logged_out to WC session ID, if set. * Tweak - Added `wc_send_frame_options_header` function to prevent checkout and account pages from being used in iFrames. Added via filter so this can be disabled. * Tweak - Validate file types are allowed for downloadable products when saving. * Tweak - Filter: woocommerce_cart_item_removed_title * Tweak - Update html-admin-page-status-report.php to show unaltered URLs. * Tweak - When updating transients, clear previous version of transients. * Tweak - Replace max_related_posts_query for performance reasons. * Tweak - Combine transients for get_rating_count. * Tweak - Bump the PrettyPhoto version during enqueue to flush caches. * Tweak - Remove all instances of sslverify=false #8058 * Tweak - Error prevention when showing customer orders on the frontend. * Tweak - Added PH states. = 2.3.9 - 2015-05-19 = * Fix - Fixed language upgrader verification. * Fix - Refund reporting #8010 * Fix - Redirect after bulk editing. * Fix - Prevent variable overwrite in save_product_meta. * Fix - Fix stock report pagination. * Fix - Fixed paypal about URL for Malta. * Fix - Fixed save downloadable files for product variations. * Fix - Remove submitdiv and fix post status updating. * Fix - Fixed the sort order dropdown items when create new product attributes. * Fix - Move action to prevent infinite recursion on login/restoring saved carts. * Fix - Update PrettyPhoto to 3.1.6 to resolve XSS security issue https://github.com/scaron/prettyphoto/issues/149 = 2.3.8 - 2015-04-20 = * Fix - Ensure coupon taxes are reset when calculating totals. * Fix - Downloads url sanitization to work correctly with shortcodes and urls. * Fix - State/Country select2 issues with Internet Explorer. * Fix - Flat rate per item and per class if no additional costs added. * Fix - Simplify Commerce compatibility with free trial subscriptions. * Fix - Select2 z-index in the admin. * Fix - Postmeta records deletation on plugin uninstall. * Fix - List only approved comments in products reviews on API. * Fix - Improved variation SKU display. * Fix - Prices including tax within orders. * Fix - Ensure line taxes are stored when calculating tax theough the API. * Fix - Add null date check for download permissions. * Fix - PayPal Logging. * Fix - Coupon product id and category id checks should run for all coupon types. * Tweak - Hook in cart totals via action. * Tweak - Prevent errors when adding or deleting products for the coupon. * Tweak - Prevent errors when check customer capability to view orders. * Tweak - Ensure Price Filter links has a trailing slash to avoid pagination issues. * Tweak - Improved the check for mismatched totals in items lines for PayPal payment gateway. * Tweak - Use wc_stock_amount to format API orders stock amount. * Tweak - Ensure show_in_admin_all_list is respected for order statuses. * Tweak - Remove rounding from shipping costs for greater shipping tax precision. * Tweak - Only automatically cancel orders created via checkout + allow post_parent to be set. * Tweak - Deny all access to revisions through API. = 2.3.7 - 2015-03-18 = * Fix - Allow saving of empty download expiry date on orders. * Fix - get_total_discount() function with certain tax setups. * Fix - stock management for variations for Products API. * Fix - Price filter styling. * Fix - Support price filter min or max only. * Fix - Allowed paths for file url. * Tweak - Chile address format. * Tweak - Revised how discounts/discount taxes are stored for consistency. Always store ex. tax to make data retrieval easier, and to ensure totals are correct after settings changes. Backwards compatibility maintained through use of order versioning. * Tweak - Delete product attachments when the Products API fails. = 2.3.6 - 2015-03-13 = * Fix - Removal of coupons containing spaces. * Fix - Unclosed div in profile page. * Fix - Export report CSV. * Fix - Settings API - allow multiselect fields to be emptied. * Fix - Saving an order needs to save the discount amount ex. tax like the cart. * Fix - Order again with custom attributes. * Fix - [CVE-2015-2329] Prevent potential XSS within tooltips (discovered by Fortinet FortiGuard Labs). * Fix - Paypal debug option. * Fix - Removed $q->query['wc_query'] = 'product_query' which broke redirects (#7703). Use $q->get('wc_query') instead. * Fix - Sanitize tax_rate_id when saving taxes in the backend to prevent potential SQL injection (discovered by WordFence). * Tweak - Show discounts inc. tax when showing order totals inc. tax. * Tweak - Use 30 days instead of year for transients to avoid bugs in memcache plugins. * Tweak - Add reports menu item if user can access reports but not the main WC section. * Tweak - Improve grouped product quantity inputs. * Tweak - Load the persistent cart if cart is empty. * Tweak - Prevent cart being cleared when accessing the login page. * Tweak - Shipping calculator - Made state/postcode respect country locale like checkout. * Tweak - Move default customer location to general settings tab. * Tweak - Only run save_category_fields for product_cat taxonomy. * Tweak - Improved message when variation attributes are missing. * Tweak - Allow wc_attribute_label to support product-level attribute names. * Tweak - Added the option to not round the line total. * Tweak - Improved coupon percent calculation for fixed discounts. * Tweak - Show calculate total when shipping is needed, but shipping is hidden. * Tweak - Cart total labels. * Tweak - Increase wc_get_weight precision. * Dev - API - reports/sales now also returns total refunds. = 2.3.5 - 2015-02-20 = * Fix - Plain text address formatting. * Fix - Detect shortcodes when saving URLs. * Fix - Unhook wc_page_endpoint_title after it is ran once (main page title). * Fix - Taxes save issue when page is paginated. * Fix - Cross/up-sells should not search variations. * Fix - Related post offset. * Tweak - Round report values. * Tweak - Text in plain text emails. * Tweak - Improve category coupon message. * Tweak - Don't download GeoIP Database until geolocation option is enabled in settings. = 2.3.4 - 2015-02-17 = * Fix - limit_usage_to_x_items option in coupons. * Fix - Run coupon codes through html_entity_decode. * Fix - Tax by code report for refunds. * Fix - Auto-generation of slug when adding new attribute. * Fix - Prevented errors when `DOMDocument` is not found (used for your HTML/Multipart emails). * Fix - Load WC css on user edit screen. * Fix - DB error when showing reports by product without selecting a product. * Fix - Stock status when updating out of stock product. * Fix - Fix place order button text on init. * Fix - When duplicating products, handle entities. * Fix - Double shop page in breadcrumb and white space issues. * Fix - When purchasing multiple downloadable products (same item), multiply download limit by qty purchased. * Fix - Added checks for gzopen to prevent activation errors. * Tweak - Added DOMDocument item in the System Status as a requirement. * Tweak - Simplify default mode should be 'standard'. * Tweak - Set attribte 'query_var' true when public. * Tweak - Use wc_get_page_permalink() to get page permalinks. * Tweak - Register shop_order post statuses earlier to ensure statuses are registered for cron. * Tweak - Improvements to refund handling in Taxes by code/date, and sales by date reports. Gross/net excludes refunds. * Tweak - Share data between Sales by Date report and API. * Tweak - Related posts - replace ORDER BY RAND() with random offset. * Tweak - Run item meta label through wc_attribute_label() in admin order page. * Tweak - Run File URLs through esc_url_raw instead of wc_clean to preserve spaces. * Tweak - Small timeout on checkout update action to prevent several triggering at once. * Tweak - Restock items AFTER refund, not before. * Tweak - If logged in, populate customer data from user meta. = 2.3.3 - 2015-02-12 = * Fix - Potential notice with preg_match wildcard search, if used incorrectly. * Fix - Typo in get_from_name method. * Fix - Fix errors during checkout when mb_convert_encoding() is not supported. * Fix - Change hooks used to output post columns - fixes columns after quick edit. * Fix - Only apply product/cat coupon checks for cart to cart coupons. * Fix - Query in uninstall script. * Tweak - Only run the uninstaller if the "Uninstall on Delete" option is checked in system status. = 2.3.2 - 2015-02-12 = * Fix - Item meta removal query in order class. * Fix - Pass correct shipping cost to PayPal. * Fix - Flat rate extra costs when costs are an array. * Fix - When ratings are required for reviews, ensure validation is performed if the rating element is removed from DOM. * Fix - When updating shipping in cart, keep shipping calculator in DOM. * Fix - WC_TEMPLATE_DEBUG_MODE in admin. * Fix - Average product rating when ratings are not required. * Fix - attribute_public option. = 2.3.1 - 2015-02-11 = * Fix - When the geolocation database cannot download, ensure the correct method is used to log the error. * Fix - Notice in woocommerce_form_field(). * Fix - attribute_public notice before DB upgrade. * Fix - [products] ids and sku args. * Fix - Backwards compatibility for (deprecated) $tax variable in WC_Cart. * Fix - is_available() check in local pickup. * Fix - Added WC version of GEOIP classes to prevent conflicts with other plugins. = 2.3.0 - 2015-02-11 = * Feature - Option to geo-locate the customer's initial location. * Feature - Display taxes in store based on the customer location, rather than the shop base. * Feature - Made tax importer expand postcode ranges. * Feature - Print styles for reports. * Feature - Remove products from the cart in the widget. * Feature - Bulk edit sales schedule on variations. * Feature - Fresh new frontend / email design. * Feature - Undo link in message when removing products from the cart. * Feature - Compatibility with Twenty Fifteen default theme. * Feature - Added 'top freebies' to product report. * Feature - Added numeric sort for attributes. * Feature - Added support for some Jetpack features: Omnisearch, Publicize and Markdown editor. * Feature - UI for adding Webhooks. * Feature - Show Gross and Net totals in reports. * Refactor - Removed deprecated methods from WC_Frontend_Scripts and rewrote script registration and localization to run once. * Refactor - Routing all email functionality through one send() method. * Refactor - Replaced existing email css inliner with Emogrifier. * Refactor - get_product_search_form(). * Refactor - Improved the Shipping Class field in products quick edit and bulk edit. * Refactor - Removed style settings in favour of separate plugin. * Refactor - Removed quantity increment/decrement buttons in favour of separate plugin. * Feature - Added link on purchased products list on orders screen. * Fix - When 'hide out of stock products' is disabled, out of stock variations / attributes are now visible. * Fix - Fix cart coupon on-sale checks for variations. * Tweak - Double the default product image dimensions. * Tweak - Added refunds to Sales by Date report. * Tweak - Updated prevent_caching() method to work if a cart/checkout page isn't set. * Tweak - When user tries to download a file and isn't logged in, send them to the account page with a notice. * Tweak - Logic in wc_paying_customer to only increase for 'simple' orders. * Tweak - Added tool to refresh stats to customer list. * Tweak - Recent order table on my account is responsive. * Tweak - Drop WC tables in wpmu_drop_tables (for multisite). * Tweak - Moved 'Proceed to checkout' button on cart to beneath totals. * Tweak - Improved 'responsiveness' of product data tabs on add/edit product screen. * Tweak - Added 'stupidtable' script to allow order item sorting on the order screen (by name, cost, qty). * Tweak - In the cart, add variation selected data to the permalink. * Dev - API - Look up product by sku. * Dev - API - New parent_id param for products API. * Dev - API - Sales data in API now matches sales data in WooCommerce reports page. * Dev - API - Added 'net_sales' data to reports. * Dev - API - catalog_visibility is set to visible by default in products API. * Dev - API - Added new filter to query for specific products by ID: /products?filter[in] * Dev - Made template debug mode set WC_TEMPLATE_DEBUG_MODE constant and remove all overrides for all template loading functions. * Dev - Switched to .scss from .less for all styles. * Dev - Included bourbon for scss mixins. * Dev - Decoupled the order summary and payments area. Both are updated independently via ajax fragments and can be moved around via actions. TEMPLATES OVERRIDING THESE TEMPLATES WILL NEED TO UPDATE THEIR FILES. * Dev - Moved WC_Cart::get_cart_from_session() and dependencies to a later hook (was init, now wp_loaded). * Dev - Migrated away from CHOSEN to SELECT2. Chosen is still registered in case 3rd parties try to enqueue. * Localisation - Add Ukrainian currency and symbol. * Localisation - Greece regions. = 2.2.11 - 2015-01-29 = * Add - URL in Usage/Limit column in Coupons table to query for orders. * Fix - esc_url() applied to prevent potential XSS issues. * Fix - "Link all variations" button. = 2.2.10 - 2014-12-16 = * Fix - Stock status on quick and bulk edit. * Fix - Incorrect clearing of error messages. = 2.2.9 - 2014-12-15 = * Add - API - parent_id for products endpoint. * Fix - Processing and On-hold order links in WooCommerce Status dashboard widget. * Fix - Orders API when query orders with deleted products. * Fix - Check order exists in wc_clear_cart_after_payment(). * Fix - move $cart_updated inside $passed_validation to prevent unnessary updates. * Fix - MX states keys. * Fix - sanitize_user correctly during registration. * Fix - API - Variation handling for stock data. * Fix - When bulk editing variable products, set the stock status for non-stock managed variations. * Fix - Fix coupons by date queries to prevent inflated results. * Fix - During refunds, correctly set shipping tax totals. * Fix - Ensure floats are safely converted to strings. * Fix - remove_taxes needs to clear line_tax_data. * Fix - Correctly save custom address fields in admin. * Fix - API - Fixed a bug for save multiple images from the media library in products endpoint. * Fix - API - Delete products when happens some error. * Fix - API - `enable_free_shipping`, `product_category_ids`, `exclude_product_category_ids` and `customer_emails` coupons params. * Fix - API - Coupons `expiry_date` format. * Fix - Force HTTP option behavior on Customizer Preview screen. * Fix - Cart error messages when the session is expired. * Tweak - API - set_fee should support tax_data. * Tweak - Don't force tax_rate_id to an integer. Allow strings. * Tweak - Additional filters inside tax class to support extensions. * Tweak - Allow plugins to filter the taxable location. * Tweak - Added result and message keys to order_review AJAX call. * Tweak - Added get_cart_item to WC_Cart class. = 2.2.8 - 2014-10-29 = * Fix - Image crop option. * Fix - Display of order note date. * Fix - API POST/PUT products attributes values. * Fix - Added fallbacks to wp_get_referer(). * Fix - PayPal encoding for return urls. * Fix - Low stock report should hide no stock. * Fix - Fixed nonce check in form handler. * Fix - Notices in status report when checking if templates exist. * Fix - Allow to filter empty tax rate code. * Fix - Fixed the value format in stock field with wc_stock_amount(). * Fix - Remove strtolower for status names and capitalize statuses. * Tweak - Removed unused methods from PayPal gateway. * Tweak - Use current user ID for refunds. * Tweak - Allow API edit_product method to update post_name (slug). = 2.2.7 - 2014-10-22 = * Fix - Fix refund date. * Fix - Fixed various notices. * Fix - Make updater set parent backorder status. * Fix - In the US address format, use state code rather than the full state name. * Fix - Use mb_strtolower to prevent issues with unicode chars. * Fix - Introduced the wc_strtolower() function * Fix - Make cart total consider taxes when saving an order. * Fix - Fix /shop/ base URL Non Latin issue with url decode. * Fix - Correct report handling for full and partial refunds. * Fix - Update jquery payment to prevent autocomplete issues. * Fix - Coupon API: Don't return current timestamp when expiry_date is not set. * Fix - wc_update_product_stock should update stock regardless, if the meta data doesn't currently exist. * Fix - Added wp_kses_post to purchase note * Fix - Fixed edit account page fields #6577. * Fix - Fix stock report queries #6565. * Fix - Fix error message with maximum amount in coupon class. * Fix - Fix nonce usage during checkout/account pages. * Fix - Incorrect conversion of Unicode characters in order status names. * Fix - Edit Account fields order. * Fix - Shipping address values on checkout page. * Fix - Enforce slug format of translated edit-address-slugs. * Tweak - Allow for non-integer stock quantities. * Tweak - Update simplify commerce to use new $order->get_status(). * Tweak - Only show integrations subnav when there are multiple integrations. = 2.2.6 - 2014-10-08 = * Fix - Notices in the cache helper. * Fix - Prevent bulk edit from breaking sale price scheduled dates. * Fix - Prevent address fields being empty when editing an address within an order. * Fix - Removed save_post remove_action call which breaks 3rd party plugins. See ticket #6376 and #6485 for details. * Fix - Prevent warnings when set "Specific Countries" empty in shipping methods. * Tweak - Added woocommerce_product_subcategories_hide_empty filter. * Tweak - Added filter for shipping tax. * Tweak - Product attribute shortcode should return columns css class. = 2.2.5 - 2014-10-07 = * Fix - Filters in admin screen for coupons and orders. * Fix - When bulk editing, don't allow sale price to be negative. * Fix - When manually adding items to an order, show tax columns. * Fix - When manually adding items to an order, include variation data. * Fix - Prevent errors when constructing WC_Order without an ID. * Fix - Item_id notices in email templates. * Fix - Use variation get_stock_quantity() for variation max_qty. * Fix - Prevent bulk edit cancel from clearing options when bulk editing variations. * Fix - Use term_taxonomy_id for transient names - fixes counts in layered nav. * Fix - Use wc_get_order in simplify-commerce. * Fix - Use 'no' instead of boolean to disable PayPal gateway. * Fix - Do not escape redirect url in form handler - fixes malformed URLs. * Fix - Prevented non-existent pages from breaking cache helper. * Fix - Prevent sale prices showing errors in admin wrongly. * Fix - Prevent order statuses affecting other queries. * Fix - Removed deprecated get_page() functions. * Fix - Category archives. WP core still has issues dealing with pad_counts + parent when getting categories. Workaround by not hiding empty cats, then filtering the returned list using wp_list_filter. * Fix - When formatting meta data for display, suffix items to prevent issues when there are multiple values for the same meta key. * Fix - Unhook save_meta_boxes after first successful run to prevent race conditions. * Tweak - Added refunds to Sales by Date report. * Tweak - Tweak load_plugin_textdomain to be relative - this falls back to WP_LANG_DIR automatically. Can prevent "open_basedir restriction in effect". * Tweak - Added acceptance marks to PayPal Standard where applicable to replace generic PayPal icon. = 2.2.4 - 2014-09-18 = * Fix - Prevent errors when adding 'zero-rated' tax on checkout. * Fix - Fixed a varation product width inheritance bug. * Fix - Totals in taxes by date report. * Fix - Fix the 'only 1 visible product' redirect to not trigger when paging results. * Tweak - Improved headers sent notice to include file and line. * Tweak - When updating order status, ensure its a valid WC order status. * Tweak - Add notice when order is no longer editable. * Dev - Allow getting rating count for a specific rating value #6284. * Localisation - Nepal States. * Localisation - Mexico states. = 2.2.3 - 2014-09-16 = * Fix - Order status translation in admin and account page. * Fix - Ensure shipping address gets displayed - fixes needs_shipping_address() method. * Fix - Escaping of country names in tax settings. * Fix - Encoding of pagination link when using default permalinks. * Fix - NPR currency. * Fix - Fixing "Invalid key" error when clicking link in password reset email. * Fix - Mobile checkout via PayPal when using tax inclusive prices. * Fix - Thumbnails "hard crop" option. * Fix - Missing variables when add new product variation. * Fix - Fixed minor XSS issue on reports screens by escaping and sanitizing 'range' GET variable. * Fix - Number format when calculate the line items tax. * Fix - Language update/install in Multisites. * Fix - "Set product image" media gallery title in non-product post type. * Fix - Number of processing orders in WooCommerce > Orders menu. * Fix - Issue that preventing cookies being set on shutdown after wp_send_json. * Fix - Incorrect shipping calculation because of missing width in product variation. * Tweak - Display of locale information on system status page. * Tweak - Removed postcode for Bahamas. * Tweak - In system status, show path to template file override. * Tweak - Dynamically get the address fields in WC_Checkout::create_order() * Tweak - If a refund fails, delete refund post. * Tweak - Button for hide the language update message. * Tweak - Method for install the translations directly. * Tweak - Display of h4 in settings pages. * Dev - Added woocommerce_get_settings_ID filters. = 2.2.2 - 2014-09-11 = * Fix - Saving of variation stock when parent stock management is disabled. * Fix - "open_basedir restriction in effect" error caused on install when trying to create the WC logging directory. * Fix - For regular products, ensure stock level saves on product creation. = 2.2.1 - 2014-09-10 = * Fix - Small tweak to the installer to prevent errors caused by outdated plugins. * Fix - Mijireh Checkout update link. * Tweak - Small tweak to update notification to remind users to update old plugins prior to install. = 2.2.0 - 2014-09-10 = * Feature - Refunds system for orders. * Feature - New orders panel for managing line items + totals. * Feature - Language pack downloader. po and mo files removed from core (too heavy). * Feature - Added used payment gateway to view orders screens. * Feature - Allow backorders to be configured at variation level. * Feature - Protect admins from shop manager users. * Feature - Ability to add custom quantity using add_to_cart shortcode. * Feature - Ability to set a maximum spend for coupons. * Feature - Added Simplify Commerce payment gateway. * Fix - Allow endpoint use on the front page. * Fix - user_activation_key password reset code. * Tweak - Recalculate the cart totals, in the event a user registers during checkout and in doing so qualifies for any discounts. * Tweak - Use `woocommerce_valid_order_statuses_for_payment` in `pay_action` too. * Tweak - Added the possibility to translate the edit-address endpoint slug. * Tweak - Removed all the_content filter in favor to wpautop() and do_shortcode(). * Tweak - Send IPN email notifications to new order email. * Tweak - Clear and wipe session data on logout and end of checkout for guests. * Tweak - Load archive-product.php for other product taxonomies. * Tweak - Disable image size settings if filters are being used. * Tweak - Hide the shipping address when local pickup is used. * Tweak - Password protected posts are not hidden from catalog by default anymore, visibility can be set via the 'Catalog visibility' option. * Tweak - Removed the shortcode button in favor to [WooCommerce Shortcodes](https://wordpress.org/plugins/woocommerce-shortcodes/) * Dev - API Version 2 with push support. * Dev - API: Lookup customers by email endpoint. * Dev - API: Allow ordering on the resource level. * Dev - Customers API / Methods PUT/POST/DELETE. * Dev - Coupons API / Methods PUT/POST/DELETE. * Dev - Orders API / Methods PUT/POST/DELETE. * Dev - Products API / Methods PUT/POST/DELETE. * Dev - Added description parameter to the woocommerce_form_field function. * Dev - Introduce `woocommerce_valid_order_statuses_for_payment_complete` filter. * Dev - Introduce `woocommerce_thankyou_order_received_text` filter. * Dev - Introduce `woocommerce_product_backorders_allowed` filter. * Dev - get_user and get_user_id methods. * Dev - Add new 'wc_admin_reports_path' filter to reports. * Dev - Add user ID to shipping packages. * Dev - Added product id parameter to related posts filters. * Dev - WC_LOG_DIR constant for defining the log directory. * Dev - Moved default logging directory 1 level above WordPress, rather than in the plugin folder. * Dev - Added log viewer in System Status. * Dev - Made stateless classes static to allow unhooking of methods. * Dev - Introduces the wc_get_log_file_path() function. * Dev - Introduces the WC_Order::needs_shipping_address() method. * Dev - Gateways can set transaction ID for the order. * Dev - Gateways can do refunds via the Payment Gateway API. * Refactor - Changed the method in which order statuses are stored. Previously, order status was a taxonomy. This caused issues when unique term slugs differed from what we were expecting, and also added additional overhead to order queries in reports. https://github.com/woocommerce/woocommerce/issues/3064 Order status is now stored as post status - several new post statuses have been added. Order class variables are backwards compatible. The only thing to note (for devs) is that any query must use the order status instead of 'publish' when getting orders and querying by post_status. THe shop_order_status has also been removed. * Refactor - Update stock amounts with DB queries. * Refactor - Simplified attribute name sanitisation which maintains UTF8 char integrity. * Refactor - Country class return methods. * Notice - Deprecated Mijireh gateway in core. Plugin is available on .org. * Localisation - Egypptian currency. * Localisation - Address format of Taiwan. * Localisation - Removed language files from core to made the package lighter (see language pack downloader feature). = 2.1.12 - 2014-07-01 = * Fix - Total tax should be +, not -. * Fix - Address format in plain text emails to use line breaks, not commas. * Fix - order item count fix and tr class filters. * Fix - Missing translations during checkout. * Fix - Correctly clear transients, including sale transient. * Tweak - woocommerce_get_order_item_totals_excl_free_fees hook. = 2.1.11 - 2014-06-09 = * Fix - Plain text email display of customer address. * Fix - Saving tax rates threw notices (missing git cherry pick). = 2.1.10 - 2014-06-03 = * Fix - Removed unnecessary localization from edit account. * Fix - Admin welcome screen css. * Fix - Fixed my account setting values to wrong user submitted strings. * Fix - Menu order terms were coming back empty. * Fix - Fix notice that occurs from external function call. * Fix - Addons page, reference new json API endpoint. * Fix - Notices when rendering WooCommerce Shop as Front Page. * Fix - Prevent undefined notice for Layered Nav title. * Fix - state_province is not required for mijireh any longer. * Fix - Fix coupon limit checks and enhance to check ID by provided email (if logged out). * Fix - Danish krone symbol. * Fix - check for the existence of the cart during the is_available(). * Fix - Fixes performance degradation on large wp_options tables. * Fix - improved the shortcodes button for support WordPress 3.9. * Tweak - Stronger session ID generation. * Dev - Add action hooks when saving tax rates. = 2.1.9 - 2014-05-14 = * Fix - fix case-insensitive matching for coupon posts with uppercase chars. * Fix - Make the welcome page RTL compatible. * Fix - Sanitize, but decode, flat rate shipping method ids. UTF-8 Friendly. * Fix - Stop sending line items to Mijireh. Like PayPal, Mijireh struggles with out prices including tax due to rounding errors. Since the validation cannot be disabled, its better to just send the order as 1 item. This will prevent rounding errors and payment failures. Prices excluding tax are unaffected. * Fix - Fix fee/coupon lines typo in REST API order response. * Fix - Fixes a fatal error when WC()->payment_gateways()->get_available_payment_gateways() is called in the admin. * Fix - is_available check in shipping for excluding countries was backwards. * Fix - Encoding of @ in download links. * Fix - Revise how variation attributes are deleted/updated. Prevents issues with WPE caching when you delete and then update right after. * Fix - Trim commas and empty lines off address formats. * Fix - defined a min value to cart quantity input. * Fix - Fix qty input styling in Firefox 29. * Fix - Use WP SEO class method rather than deprecated fn. * Fix - Cleaned up logic in email_instructions. * Fix - Prevent empty session data being stored until a cookie or session exists to retrieve it. * Fix - fixed WC_Product_Variable::set_stock() compatibility with WC_Product::set_stock(). * Fix - Fix notice when not scanning any files in system status. * Fix - Made wc_get_product_terms support custom menu_order by using get_terms and an include. * Fix - Correct character 3 vaildation for UK postcodes. * Tweak - Add a tip for default selections, and use opt groups for the long bulk edit list. * Tweak - Option to toggle enable_for_virtual for COD, rather than just doing it. * Dev - Introduce `woocommerce_coupon_data_panels` action. * Dev - Add $package to is_available shipping method hooks. * Dev - Add tool for disabling shipping rate cache for debug. = 2.1.8 - 2014-04-30 = * Fix - Prevent saving duplicate skus in quick edit. * Fix - Sorting of downloads on my account page. * Fix - Clear cached API reports when deleting other order transients. * Fix - Shipping calculator cart messages. * Fix - Display of UTF8 attributes on view order page. * Fix - Changed the way the order review html is appended to the checkout page via JS to reduce likelihood of errors. * Fix - Allow removing downloads from product by removing all rows. * Fix - Ignore variation stock if disabled globally. * Fix - Prevent duplicate admin menu items when using menu editor plugins. * Fix - Remove title from product not purchasable message to prevent possible data leak. Thanks Julio Potier. * Tweak - Updated REST API docs link. * Tweak - Updated prettyphoto dependencies. * Tweak - Customer search performance improvements. * Tweak - Made default shipping label clearer. * Tweak - Default order email to user email. * Tweak - Only show downloadable item related text when product has downloads. * Tweak - Improved Abstract product constructor. * Tweak - Add COD instructions to emails. = 2.1.7 - 2014-04-10 = * Fix - Allow WC API to generate API keys for different user than the one that is making request. * Fix - Fix the SKU search logic so it works with other filters. * Fix - Correctly round shipping + shipping tax together when passes the tax inclusive total to paypal. * Fix - orderby - skip adding hidden input of submit on a GET so JS can submit properly. * Fix - Check wc_checkout_params.is_checkout against string '1' instead of int 1. * Fix - Check order exists when resuming on checkout. * Fix - When removing base taxes, round to precision. * Fix - Ensure _order_currency is set. * Fix - Use `$wpdb->db_version()` instead of `mysql_get_server_info()` deprecated in PHP 5.5. * Fix - myaccount registration added check for auto generate password option. * Fix - API: normalize both key and value before calculating OAuth signature. * Fix - API: double-encode percent symbols when normalizing parameters. * Fix - API: Remove post_parent so grouped simple products are also returned. * Fix - Clear featured transients when needed. * Fix - Stay on checkout when removing coupon. * Fix - Prevent totals refreshing on every keydown event on the checkout. * Fix - When hierarchy is off, only show children in the cat widget. * Fix - Delete term count transients after stock status change and trashed post. * Fix - During save_meta_boxes, only save for the "main" post being saved, not nested or subsequent save_post events. * Fix - Stop _wc_session_expires autoloading. * Fix - Remove nonce from comment form to prevent issues with caching. * Fix - reset grouped products correctly to work with short codes. * Fix - In admin, work out cart discount without tax amounts. * Tweak - Apply filters to $product_type and we can set a default product type to new products. * Tweak - wp_kses_post for meta display in admin. * Tweak - woocommerce_order_cancelled_notice hook. * Tweak - Use is_ssl() for get_woocommerce_api_url(). * Tweak - Changes to filters to see if shipping is needed or not in the cart class. * Tweak - Chunk option names in cleanup_sessions() to reduce load. * Tweak - Change \WC_Order::add_order_note cap to edit_shop_order instead of manage_woocommerce. * Tweak - Allow filtering order statuses in dashboard reports widget. * Tweak - Added is_paying_customer() to easily check if a user is a WC customer. * Tweak - Allow query string fallback for REST API SSL auth. * Tweak - woocommerce_coupon_get_discount_amount filter in coupon class. * Tweak - More friendly/less blunt "no shipping" messages. * Tweak - use network_site_url instead of network_admin_url for multisite. * Tweak - Updater - Only show upgrade notices, and use transient cache. * Tweak - get_image_id method for use in email template. Shows correct variation images. * Tweak - added validation when save the frontend colors. = 2.1.6 - 2014-03-25 = * Fix - Fixed a bug where cron events are scheduled using a function name rather than a hook name. * Fix - Given transients not required on all pages expiration times to prevent autoloading. * Fix - Don't trailingslash Order Cancel URLs with a Query String. * Fix - Switch to jquery trim to allow checkout in older IE. * Fix - Variation bulk sale price edit over reaching causing errors on save. * Fix - Only append generator tag on HTML pages. * Fix - AED currency symbol. * Fix - Move loop_end hooks as it is generic and used in all WP loops. Prevents some theme conflicts. * Fix - Lingering tooltip after gallery image delete. * Fix - Move plugin headers to main WC POT file. * Fix - Correct discount calculation in admin when fees are involved. * Fix - Fix sale flash for out of stock sale items. * Fix - Use protocol relative URLs in the cart widget because it gets cached and can display on https or http pages. * Fix - Fix term recount during WP callbacks. * Fix - Convert states to strings for PayPal (non-US). * Fix - Hide empty at walker level to fix category widget display. * Fix - form-login form values were not persistent after failed submission. * Fix - URL decode not needed for custom text attribute names. * Fix - Fix bulk editing variation sale price. * Fix - Remove comment exclusion in order notes meta box. * Fix - Sync min and max prices for regular and sale prices so prices are displayed correctly when sale price is lower than a regular price of another variation. * Fix - Expanding line item_meta causes conflicts if attributes are named with things like 'name', 'type' or 'qty'. Added blocklist to exclude unsafe values. * Fix - Added support for clearing report transients when using object caching. * Fix - encoding issues with attribute values. * Fix - Escape the contents of the changelog when displayed. * Fix - Edge case where tax was still displayed for shipping when exempt. * Tweak - Allow city field to use another input method. * Tweak - Several new filters. * Tweak - PayPal, modify currency error message to include both sent and returned currencies for comparison. * Tweak - enable keyboard shortcuts in prettyPhoto. * Tweak - Add classes to item meta. * Tweak - Use is_purchasable to determine if a variation cart button is needed, and potentially show empty_price_html. * Tweak - new woocommerce_cart_taxes_total filter. * Tweak - new wc_cart_totals_taxes_total_html() function. * Tweak - Use API request URL for mijireh and PayPal callbacks. * Tweak - move variation data to tooltip in order items meta box. * Tweak - Store variation data for order items added through the admin. * Tweak - Billing Address > Billing Details text. We take more than address in this section. * Tweak - Delete terms transient during recount. * Refactor - jshint javascript files. * Localisation - add Bangladeshi currency and symbol. * Localisation - Bangladeshi states (districts). * Localisation - Croatian currency symbol. = 2.1.5 - 2014-03-06 = * Fix - Prevent notices on new plain text email parameter for BACS and Cheque gateways * Fix - Fixed issue where variation prices were hidden when variation stock management wasn't set * Fix - Discounts fixed_product are now properly multiplied by quantity * Fix - Fixed bulk edit % increase and decrease * Fix - Extra check for access_expires when getting downloadable files * Fix - get_related method fixed tags OR query not excluding product ID * Tweak - Fallback for when add ons page is not loading * Tweak - Hide price suffix in admin panel lists = 2.1.4 - 2014-03-05 = * Fix - Prevent duplicate loading of functions files * Fix - Fixed breaking timeline for reports * Fix - Category widget ordering * Fix - BACS and Cheque gateway emails now have a plain text flag * Fix - wc_get_product_ids_on_sale will never return 0 * Fix - Prevent errors upon comments when order is in trash * Fix - Reviews widget now links to proper review anchor * Fix - Added support for permalinks containing a query string in wc_get_endpoint_url * Fix - Variable product add file button works after adding a new variation * Fix - Resolved issue where styles didn't get compiled properly * Fix - Changed the save order so email data is correct for manual orders * Fix - Later hooking in for template redirect * Fix - Reverted load order change for language files and provided proper context * Fix - Made woocommerce_update_cart_action_cart_updated a filter which can return true or false to recalc totals * Fix - Updated sync logic to exclude hidden and out of stock variations from the price display * Fix - Changed set_stock to only make a variable product out of stock if all variations are stock managed to resync prices after stock changes * Fix - Use woocommerce_notify_no_stock_amount not 0 in variable class sync method * Fix - Suppress errors in download handler by silencing ob_flush and flush calls * Fix - load_textdomain first from WP_LANG_DIR before load_plugin_textdomain * Tweak - get_states method now returning false instead of array for countries without states * Tweak - Improved shipping language strings * Tweak - Remove admin check around global po translation file loading * Tweak - Improved styles for tab views * Refactor - Hardened code base and fixed strict standards notices = 2.1.3 - 2014-02-27 = * Fix - Use correct thresholds to calculate out of stock number in dashboard widget * Fix - Admin screen strings sanitised to work with Chinese characters * Fix - REST API OAuth signature fixed when using filter params * Fix - Ensure shipping address data for customers is updated if only shipping to billing address * Fix - Fixed sprintf missing parameter in customer-new-account.php template * Fix - Ampersand character properly outputted in plain text emails * Fix - Stack the password reset fields on smaller screens * Fix - Bulk edit options now reflect on all variations * Fix - Prevent notices when country has states but no states are specified in cart * Fix - Make my-account/view-order use the correct template file * Fix - Prevent session warnings when WordPress logs out * Fix - Prevent spaces in file names from breaking product thumbnails * Fix - Resolved issue where download permissions where not granted in some cases upon order complete * Fix - Prevent IE cursor from being stuck in loading animation * Fix - Ensure wc_get_product_ids_on_sale returns array of ints, not strings * Fix - Prevent rating stars from wrapping in IE * Fix - Rating stars properly aligned in small screens * Fix - Handle get_rate_code when no matching rate is found * Fix - Cleaned noticed that might show when tax rates left empty * Fix - Prevented warning when you have hide shipping methods until address entered selected in CoD * Fix - Better URL detection for subdirectory installs in get_woocommerce_api_url * Fix - Transient names are now md5 hashed so they don't exceed max length * Fix - Fixed searching for orders and speed improvements there * Fix - "Show children of current category only" option working again in Product Category widget * Fix - Order search by SKU can now return multiple results again * Fix - Fixed alignment of radio button in settings API * Fix - Layered nav widget now shows terms again when using list OR * Fix - Prevent multiple attempts at cancelling actions on orders * Fix - Fixes in reporting for variations * Fix - My Accounts downloads section now shows files names * Fix - Improved code to log in via email address * Fix - When guest checkout is enabled, manual made admin orders can be paid without logging in * Fix - Fix product counts when subcategories are displayed * Fix - Fixed Relevanssi conflicts * Fix - Fixed issue with Mijireh incorrectly rounding shipping totals * Fix - Shipping class selection will be hidden for virtual variations * Fix - Prevent product percentage based coupons to stack discounts * Tweak - Added United Arab Emirates Dirham currency * Tweak - Enforce a static base for product permalink structures to prevent 404 issues * Tweak - Introducing woocommerce_get_username_from_email filter in login processing method * Tweak - Trash pages swapped for endpoints instead of force delete * Tweak - Flip default status of price_trim_zeros (defaults to true now) * Tweak - Performance improvements for My Account view with a lot of available downloads * Tweak - Introduces woocommerce_return_to_shop_redirect filter * Tweak - Improved tax rounding, to calculate an accurate tax total * Tweak - Introduced failsafes to prevent actions trying to take place on removed products * Tweak - Permalinks enabled data in REST API * Tweak - Filters to restrict granting/revoking access to files * Tweak - Added Canadian address format * Refactor - Multiple docblock updates * Refactor - Multiple code standards improvements * Refactor - Changed all text strings without explicit domain, to use the 'woocommerce' text domain * Refactor - Speed improvements in various places = 2.1.2 - 2014-02-13 = * Fix - Removed nl2br function from plain text email-order-items email template * Fix - Made static string translatable in email-order-items email template * Fix - Added missing third parameter to _doing_it_wrong call * Fix - Sidebar in reports screen does now fit big numbers (long strings) * Fix - Report stock icon properly set up * Fix - Removed manual checks for AJAX requests, relying on DOING_AJAX constant now * Fix - Checkout get_value now returns null if no value is set, default can be used as fallback * Fix - Variation download url now cleaned via wc_clean instead of esc_url_raw * Fix - Wrap billing and shipping fields with a div/class to prevent field order issues * Fix - Fix line total display for order fees in admin panel order view page * Fix - Restored multiple image selection for product gallery * Fix - Update schemas before DBDELTA to fix mysql errors on update * Fix - Italian address formatting fix * Fix - Set countries as an array by default in the shipping abstract * Fix - Fixed term counts when terms span taxonomies * Fix - Fixed saving of fee tax total * Fix - Fixed "Shipping via" label in PayPal * Tweak - Tweak the order of checks in bulk_and_quick_edit_save_post to make it more efficient on autosave * Tweak - Always set order billing email address when user is logged in, if no email is provided * Refactor - Removed obsolete view order shortcode class * Localization - Multiple localization updates = 2.1.1 - 2014-02-12 = * Feature - Show notice if template files are out of date for themes including WooCommerce template files * Feature - Introducing supporting is_wc_endpoint_url function * Fix - During install, register all post types and endpoints so that the rewrite rules are correctly generated. * Fix - Allow line breaks in customer addresses on order details page * Fix - Fixed all language country codes to reflect WordPress standards * Fix - Payment gateway section links work in lower and upper caps texts * Fix - Prevents nonce notice when removing item from cart * Fix - Hide empty categories in product_categories shortcode * Fix - Fixed Twenty Thirteen single product page layout * Fix - Fix saving of checkboxes (off state) in widgets API * Fix - Proper password validation in user register on the My Account page * Fix - When add_to_cart is called, ensure the correct product_id is set for variations * Fix - Restored Italian translation files * Fix - Ensure stock status is updated. Prevents new products being hidden when the option to hide out of stock products is enabled * Fix - Fix manual order calculation when using non-standard decimal points * Tweak - Added Croatian Kuna currency * Tweak - Throw a non-fatal notice when file trying to be included as template doesn't exist * Tweak - Add versions to all scripts + styles to ensure browser cache is cleared * Tweak - Added tinymce buttons relevant to the short description * Refactor - Removed unused change password template and shortcode class * Refactor - Several function dockblocks improved * Refactor - Stripped out some unused variables = 2.1.0 - 2014-02-10 = * Feature - New REST API * Feature - Define whether prices should be shown incl. or excl. of tax, and add an optional suffix. * Feature - Show grouped or itemized taxes during checkout. * Feature - Split frontend styles into separate appearance/layout stylesheets and removed the enable/disable option. * Feature - Added woocommerce-smallscreen.css to optimise default layout on handheld devices. * Feature - Bulk edit increase / decrease variation prices by fixed or percentage values * Feature - Admin action to link past orders of the same email address to a new user. * Feature - Account edit page for editing profile data such as email. * Feature - Customer list reports. * Feature - Reports - New design, export csvs, more data. * Feature - Ability to link past orders to a customer (before they registered). * Feature - Authorize option for PayPal Standard. * Feature - Separate options for countries you can ship to and sell to. * Feature - BACS supports multiple account details. * Feature - PayPal PDT support (as alternative to IPN). * Feature - Handling for password protected products. * Feature - Schema markup selector for downloadables. * Feature - woocommerce_get_featured_product_ids function. * Feature - WC_DELIMITER to customise the pipes for attributes * Feature - Standardized, default credit card form for gateways to use if they support 'default_credit_card_form'. * Feature - Coupon usage limits per user (using email + ID). * Feature - Option to limit reviews to purchasers. * Feature - Option to install missing WooCommerce pages from tools page. * Feature - New notices API for adding errors/notices * Feature - Compatible with WordPress 3.8 default theme 'TwentyFourteen'. * Feature - Added is_store_notice_showing conditional. * Feature - Allow gateways to change the checkout place order button text on selection. * Tweak - Added pagination to tax rate screens. * Tweak - Added filter to check the 'Create account' checkbox on checkout by default. * Tweak - Update CPT parameters for 'product_variation' and 'shop_coupon' to be no longer public. * Tweak - COD processing instead of on-hold. * Tweak - Added filter to explicitly hide terms agreement checkbox. * Tweak - New System Status report layout, now plugin list is better visually and very better to read. * Tweak - content-widget-product.php template for product lists inside core widgets. * Tweak - Shipping is now renamed to Shipping and Handling on checkout. * Tweak - Select all/none for countries in admin. * Tweak - Handling for multiselect fields on checkout, and a filter for third party handling. * Tweak - Made scripts/styles use protocol-relative URLs. * Tweak - Revised shiptobilling functionality on the checkout. "ship to different address" option used instead. * Tweak - Filterable page installer. * Tweak - Order details optimised for small screens. * Tweak - Streamlined account process - username and passwords are optional and can be automatically generated. * Tweak - Updated/new dummy data (including .csv files to be used with [Product CSV Import Suite](https://woocommerce.com/products/product-csv-import-suite/)). * Tweak - Product shortcodes columns parameter now affects layout correctly. * Tweak - Disabled button styles. * Tweak - Hooks for overriding default email inline styles. * Tweak - Flat rate shipping support for percentage factor of additional costs. * Tweak - local delivery _ pattern matching for postcodes. e.g. NG1___ would match NG1 1AA but not NG10 1AA. * Tweak - Improved layered nav OR count logic * Tweak - Make shipping methods check if taxable, so when customer is VAT excempt taxes are not included in price. * Tweak - Coupon in admin bar new menu #3974 * Tweak - Shortcode tag filters + updated menu names to make white labelling easier. * Tweak - Removed placeholder polyfill. Use this plugin to replace functionality if required: https://wordpress.org/plugins/html5-placeholder-polyfill/ * Tweak - Replaced all instances of → and ← in frontent using wc icon font plus .wc-forward and .wc-backward utility classes. * Tweak - Add review form no longer opens in lightbox. * Tweak - Move average rating outside of hidden tab for google #3867. * Tweak - Add formatted_woocommerce_price filter. * Fix - Changed MyException to Exception in Checkout class as MyException class does not exist in WooCommerce * Fix - Default cart widget styling on non-wc pages. * Fix - Rounding for mijireh tax ex. price. * Fix - Updated blockui to prevent errors in WP 3.6. * Fix - Tweaked popularity sorting to work better when no sales are present. * Fix - Quote encoding in email subjects. * Fix - Added $wp_error parameter during checkout process to ensure WP_Error object is returned on error and checkout process is properly stopped. * Refactor - Taken out Piwik integration, use https://wordpress.org/plugins/woocommerce-piwik-integration/ from now on. * Refactor - Taken out ShareYourCart integration, use https://wordpress.org/plugins/shareyourcart/ from now on. * Refactor - Moved woocommerce_get_formatted_product_name function into WC_Product class. * Refactor - Improved parameter handling in woocommerce_related_products() function. * Refactor - Widget classes (added abstract and combined similar widgets). * Refactor - Removed pay and thanks pages. Endpoints are used instead. * Refactor - Removed certain my-account pages. Endpoints are used instead. * Localization - Portuguese locale by jpBenfica. * Localization - Swedish translation by Björn Sennbrink. * Localization - Japanese translation by Shohei Tanaka. * Localization - Danish translation by Mikael Lyngvig. * Localization - Spanish translation by Luis Giménez. * Localization - French, Spanish, Romanian, Danish, Korean, Czech, Arabic, Hungarian updates. = 2.0.20 - 2013-11-21 = * Tweaked paypal request * Check for WP Error when getting terms in breadcrumb file * Sanitize when searching in admin * Fix yard to cm conversion = 2.0.19 - 2013-11-04 = * Fix - get_item_subtotal() logic * Fix - Pass number of products variable to get_related for more then 5 related products * Fix - Email fatal error for orders with missing products * Fix - Local pickup base tax option on first calculation * Tweak - For paying customer column, use a dash #3971 * Tweak - Added wordwrap to order notes * Localisation - Updated Portuguese, Slovak, French, Lithuanian, Finnish = 2.0.18 - 2013-10-21 = * Fix - Escaped the "hide-wc-extensions-message" link in admin. * Fix - CSS -mox- prefix. #3953 * Fix - Remove sorting args after main query #3969 * Tweak - Pass index to woocommerce_save_product_variation. #3962 * Tweak - woocommerce_variable_product_sync hooks * Tweak - CH postcode validation * Tweak - Show layered nav widgets on any product taxonomy page * Localisation - Various corrections = 2.0.17 - 2013-10-17 = * Fix - Add missing doctype for email header #3921 * Fix - 2 notices on the cart/checkout related to tax #3922 * Fix - Allowed more tags to be saved in sharethis code * Fix - If no products on sale, don't show results in sale shortcode * Fix - During remove_product_query, remove ordering filters to prevent affecting other queries * Tweak - Min amount check takes taxes in consideration #3924 * Tweak - Added validate_ID_field method check to settings API for special validation rules * Tweak - Added needs_payment() method. Checks if an order needs payment, based on status and order total. * Tweak - Key value pairs for order_meta (woocommerce_email_order_meta_keys) * Tweak - Added wc_variation_form trigger to variations javascript for 3rd party plugins = 2.0.16 - 2013-10-14 = * Fix - woocommerce_change_term_counts needs to always return terms. Fixes category display. * Fix - Attribute label display. * Fix - add_to_cart shortcode correct use of setup_product_data = 2.0.15 - 2013-10-14 = * Fix - Added missing line break in plain text email. * Fix - Strict standards warnings in category walkers * Fix - Remember which attributes get registered to minimize conflicts * Fix - Allow quotes in store name for display in emails * Fix - Regression bug throwing warning in ShareThis integration * Fix - Correct state code for Canadian state Newfoundland * Fix - Tweaked popularity sorting to work better when no sales are present. * Fix - Removed action from single add to cart templates to resolve issues with other plugins. * Fix - Unsetting active classes #3896 * Fix - update_status checks if the order id exists #3904 * Fix - the first matching variation should be used (replaced pop() with shift()) @eef86ab * Fix - get_children should get published products only for grouped products #3880 * Fix - Clean the SKU, prevents variations breaking when " was saved @dc6574b * Fix - Correctly check attribute label and name upon creation @31c34f6 * Fix - Fixed Multiple Sets of Tabs on One Page @e584ea8 * Fix - Add tax_rate_id to objects returned from cart->tax_totals @40c85ec * Fix - find_product_in_cart check if cart is array #3863 * Fix - bump_request_timeout strict standards @4798cb8 * Fix - Fix upload dir #3812 * Fix - Remove accents from taxonomy names + run through filters #3832 * Tweak - Always show returning customer login box. = 2.0.14 - 2013-09-05 = * Tweak - Update cart performance improvements * Fix - Google Analytics no longer identifies users using custom vars * Fix - Send tax inclusive, rounded item price to Google Analytics * Fix - Use version_compare to check for required jQuery * Fix - Made gateway abstract compatible with implementations to prevent strict notices * Fix - Update order's GMT date ('post_date_gmt') when changing the order date via the "Edit Order" screen * Fix - Hardened the checkout payment URL method * Fix - Regression bug fixed, allowing 0 value attributes again * Fix - API url function work when permalinks are not pretty * Fix - Chosen select boxes now support RTL languages * Fix - Refresh when creating an account to prevent nonce issues * Other minor fixes = 2.0.13 - 2013-07-19 = * Tweak - Allow users with edit rights to add draft products to cart (and nobody else) * Tweak - Handle pending status for paypal * Tweak - Only refresh fragment when cart cookie > 0 * Tweak - Updated/new dummy data (including .csv files to be used with [Product CSV Import Suite](https://woocommerce.com/products/product-csv-import-suite/)). * Fix - Extra escaping on layered nav variables to prevent injection * Fix - Improved sanitization of option fields * Fix - Add fee total to cart total * Fix - Flush rewrite rules after adding or editing attributes * Fix - Set session after removing item from cart to prevent issues after removing last item * Fix - Sale expiration now works for variations as well * Fix - httpversion 1.1 for paypal upcoming changes * Fix - Price filter widget: preserve orderby * Fix - Fix paypal phone mask (whitespace) * Fix - Correct sanitization of option fields * Fix - Sanitized shipping calc form to fix persistent XSS issue. * Localisation - ES States = 2.0.12 - 2013-06-17 = * Tweak - Add actions for attribute create/update/delete * Fix - Fixed bug in cross sells loading in product data write panel * Fix - Fixed posting shipping method when only one is available * Fix - Fixed query breaking when using some product widgets = 2.0.11 - 2013-06-13 = * Tweak - Handling for multiselect fields on checkout, and a filter for third party handling * Fix - Duplicate param keys for sale_product shortcodes * Fix - Google Analytics tracking use get_order_number() method instead of id * Fix - Replaced jQuery placeholder plugin to provide support in older browsers * Fix - Rounding for mijireh tax ex. price * Fix - Fixed is_on_sale function for products without prices * Fix - Updated blockui to prevent errors in WP 3.6 * Fix - Extra data sanitization in some places * Fix - Offer tax class option per variation to use same tax class as parent = 2.0.10 - 2013-05-15 = * Tweak - Searching for SKU in admin panel can also be done via lowercase 'sku:' instead of just 'SKU:' * Fix - Cast term_id as int in product data write panel that will resolve issues with numerical attributes * Fix - Correct label for RUB symbol - added a dot after it * Fix - Javascript escapes to stop breaking scripts when used with translations * Fix - PayPal button should use classes 'button' and 'alt', not 'button-alt' * Fix - Have the remove_taxes() method set subtotal to subtotal_ex_tax * Fix - Allow layered nav to work with non pa_ prepended taxonomies * Fix - Better backwards compatibility with _woocommerce_exclude_image * Fix - is_on_sale() method now returns true for products with a sale product of 0 * Fix - For when get_the_terms() returns false inside woocommerce_get_product_terms() * Fix - PayPal has a 9 item limit * Fix - Replace deprecated wp_convert_bytes_to_hr() with size_format() = 2.0.9 - 2013-05-02 = * Feature - Added is_product_taxonomy() conditional. * Tweak - Notices during checkout for admin users if the checkout is mis-configured. * Tweak - Named charts on report page to make modifications easier. * Tweak - woocommerce_before_delete_order_item hook. * Fix - Disable autocomplete for checkout fields which refresh totals - no events get fired on autocomplete. * Fix - Clear rating transients when editing comments. * Fix - Screen ids when plugin name localised. * Fix - Brazilian state code BH -> BA. Data update required to update old values in orders. * Fix - Fix incorrect CSS class being output in product image gallery. * Fix - Mijireh page slurp. * Fix - woocommerce_downloadable_product_name filter fixes. * Fix - Pass order number to google analytics, not id * Fix - check_jquery in WP 3.6 beta * Fix - GA click tracking moved code to footer. * Localization - Netherlands, Hungarian, Taiwan, Italian, CZ, Spanish, Catalan updates. * Localization - Slovak translation by Dusan Belescak. * Localization - Added RUB currency. * Other minor fixes and localisation updates. = 2.0.8 - 2013-04-17 = * Feature - Related products shortcode. * Tweak - Order item meta - skip serialized fields. * Tweak - Support for the city field in shipping calc (filterable). * Tweak - use base_country for tax calculations in manually created orders. * Tweak - Download permissions meta box show cleaner filenames. * Fix - Updated shareyourcart SDK. * Fix - moved woocommerce_get_filename_from_url to core-functions as it is required in admin too. * Fix - checkmark after adding to cart multiple times. * Fix - Saving text attributes. Posted 'text' terms are not slugs. Only striptags/slashes - don't change to slugs. * Fix - Insert URL button when working with multiple variations. * Fix - Undefined found_shipping_classes in flat rate shipping. * Fix - Fix saving options for attribute taxonomies containing special chars. * Fix - Prevent empty meta queries. * Localization - Norwegian updates by Tore Hjartland * Localization - Spanish updates by Laguna Sanchez * Localization - Romanian updates by Aurel Roman * Localization - Finnish updates by arhipaiva = 2.0.7 - 2013-04-12 = * Feature - Option for GA _setDomainName. * Tweak - Removed rounding when option to round at subtotal is set. * Fix - Allow extra flat rate options even if main rate is 0. * Fix - Fix email subject lines if options not set. * Fix - Prevent over-sanitization of attribute terms when editing products. * Fix - Sanitize terms when linking all variations. * Fix - Sanitize coupon code names before checking/applying. = 2.0.6 - 2013-04-10 = * Tweak/Fix - Merge taxes by CODE so totals are displayed clearer. Also added additional function for getting merged tax totals, and to keep compatibility with themes. * Tweak/Fix - Recent reviews show actual review stars, and allowed get_rating_html() to be passed a rating. Also removed unused $location var. * Fix - Saving of meta values from paypal after payment. * Fix - woocommerce_nav_menu_items - only hide pages, not other objects. * Fix - woocommerce_add_tinymce_lang array key. * Fix - Find_rates now works with both postcode and city together. * Fix - PrettyPhoto content clearfixed. * Fix - Fix the download method when force SSL is on. * Fix - Put back sandbox pending fix. Apparently still needed for some accounts. * Fix - Do not sanitize old attribute name to not mess up comparing * Fix - Settings API empty value only used if set. In turn fixes blank values in flat rate shipping. * Fix - Ensure API Request URL scheme is not relative to the current page. * Fix - Fix saving of download permissions in order admin. * Fix - Action woocommerce_product_bulk_edit_end is now properly executed instead of outputted as HTML. * Fix - Fix IE Download via SSL bug and fix http file over SSL. * Fix - Show non-existing product line items. * Fix - Conflicts with W3 Total Cache DB Cache * Fix - piwik tracking. * Tweak - Added a check to parent theme for comments_template before loading plugin template. * Tweak - Remove hard coded max from random products widget. * Tweak - Add filter hook to the place order button for easy 3rd party manipulation. * Tweak - UX - Placeholder fades out on focus * Tweak - UX - Only display validation result on required fields * Tweak - Product column widths in admin * Tweak - .shipping_address clears to avoid flash of ugliness in some themes when revealing shipping address * Tweak - created an icon font for the star ratings to improve consistency * Tweak - woocommerce_show_page_title filter * Tweak - wrapper / css tweaks for TwentyThirteen compatibility * Tweak - Added filters for controlling cross-sell display * Tweak - Made hierarchy code in breadcrumbs more reliable. * Localisation - NZ States * Other minor fixes and localisation updates. = 2.0.5 - 2013-03-26 = * Tweak - Made no shipping available messages filterable via woocommerce_cart_no_shipping_available_html and woocommerce_no_shipping_available_html. * Tweak - disabled keyboard shortcuts in prettyPhoto. * Tweak - woocommerce_date_format() function. * Tweak - After adding to cart, add 'added_to_cart' to querystring - lets messages show with cache enabled. * Tweak - Similar to above, on failure don't redirect. The POST should exclude from cache. * Tweak - Version data on system status page. * Fix - Fix orderby title - separated from menu_order. * Fix - WC_Product::set_stock_status() to correctly set status. * Fix - last_modified_date updated on status change for orders. * Fix - Sanitize id in woocommerce_get_product_to_duplicate function * Fix - Cancel order function now looks at post_modified instead of post_date. * Other minor fixes and localisation updates. = 2.0.4 - 2013-03-18 = * Tweak - Like my account, added order_count attribute to view order shortcode. * Tweak - Moved WC_Order_Item_Meta into own file. * Tweak - PayPal Standard gateway - no longer needs sandbox fix, and notify-validate should be first in the requests. * Tweak - Flat rate interface tidy up. * Tweak - Add order_id to woocommerce_download_product hook * Tweak - Disabled prettyPhoto deeplinking * Tweak - Applied a width to the product name column (edit products) to fix layout small screens * Tweak - Filters for attribute default values. * Tweak - Added filter to control order stock reduction when payment is complete. * Tweak - Increase priority of woocommerce_checkout_action and woocommerce_pay_action so things can be hooked-in prior. * Tweak - Tweaked default locale to include all fields so that checkout fields can fallback if specific properties are not set e.g. required. * Tweak - Removed Base Page Title option - rename the page instead. * Fix - WC_Order_Item_Meta support for keys with multiple values. * Fix - Codestyling bug with meta.php * Fix - Icon replacement in .woocommerce-info for Gecko * Fix - prettyPhoto next/prev links and thumbnail navigation no longer appear when there's only one attachment * Fix - Attribute base * Fix - Fixed adjust_price method in product class, allowing negative adjustments * Fix - Ratings and rating count transient syncing. * Fix - Tax label vs name in order emails. * Fix - Sendfile when FORCE_SSL_ADMIN is enabled. * Fix - "for" attribute within product_length option. * Fix - Encode the URLs generated by layered nav widget. * Fix - Order Again for variations. * Fix - Preserve arrays in query strings when using orderby dropdown. * Fix - Move track pageview back to template_redirect to prevent headers_redirect, but give a later priority than canonical. * Fix - Product tabs when a product type doesn't exist yet. * Fix - Saving of variation download paths with special chars. * Fix - Unset parent of children when deleting a grouped product. * Fix - Removed Sidebar Login Widget. Use https://wordpress.org/extend/plugins/sidebar-login/ instead. A potential security issue was found regarding logging of passwords (since GET was used instead of POST). Sidebar Login 2.5 resolves this and the widget has been removed from WC to prevent needing to maintain two (virtually identical) codebases. * Localization - Added indian rupees * Localization - Updated French translation by absoluteweb * Localization - Updated Brazilian translation by Claudio Sanches * Localization - Updated Hungarian translation by béla. = 2.0.3 - 2013-03-11 = * Feature - Added products by attribute shortcode, e.g. [product_attribute attribute="color" filter="blue"] * Tweak - Made coupon label more clear. * Tweak - woocommerce_cart_redirect_after_error hook. * Tweak - woocommerce_cancel_unpaid_order hook to control if an order should be cancelled (if unpaid) * Tweak - woocommerce_valid_order_statuses_for_payment and woocommerce_valid_order_statuses_for_cancel hooks for pay pages/my account. * Tweak - WC_START in checkout json requests to prevent notices breaking checkout. * Tweak - Add filters to product images and thumbnails. * Tweak - IPN email mismatch puts order on-hold. * Tweak - Option to set main paypal receiver email. * Tweak - Download file links show filename as part of link. * Fix - Samoa -> Western Samoa * Fix - Re-applied image setting tooltips * Fix - Post code ranges (taxes) on insert. * Fix - Moved init checkout to a later hook to prevent canonical template redirects kicking in. * Fix - Made custom attributes more robust by using sanitized values for variations. * Fix - woocommerce_cancel_unpaid_orders respects the manage stock setting. * Fix - Mijireh Page Slurp. * Fix - Removed unused 'woocommerce_prepend_shop_page_to_urls' setting from breadcrumbs. * Fix - hide_cart_widget_if_empty option. * Fix - Added legacy paypal IPN handling. * Localization - Finnish translation by Arhi Paivarinta. = 2.0.2 - 2013-03-06 = * Fix - Frontpage shop when 'orderby' is set. * Fix - Fix add-to-cart for grouped products which are sold individually. * Fix - Payment method animation on the checkout. * Fix - Updated chosen library. * Fix - Saving of attributes/variations with custom product-level attributes. * Fix - Include once to prevent class exist errors with widgets. * Fix - Fixed welcome screen bug shown in updater frame * Fix - Upgrade if DB version is lower than current. * Fix - FROM prices now ignore blank strings for variations. * Fix - Ensure order contents are saved before mailing via admin interface. = 2.0.1 - 2013-03-04 = * Fix - Added an extra permalink flush after upgrade to save needing to do it manually. = 2.0.0 - 2013-03-04 = * Feature - Sucuri audited and secured. * Feature - Added sales by category report. * Feature - Added sales by coupon report (kudos Max Rice). * Feature - Multiple downloadable files per product/variation (kudos Justin Stern). * Feature - Download expiry for variations (kudos niravmehta). * Feature - Added wildcard support to local delivery postcodes. * Feature - Option to enable Cash on Delivery for select shipping methods only. * Feature - Stopped using PHP sessions for cart data - using cookies and transients instead to allow WC to function better with static caching. Also to reduce support regarding hosts and session configurations. * Feature - Export and Import Tax Rates from a CSV file. * Feature - Option to control whether tax is calculated based on customer shipping or billing address. * Feature - New options for individual transaction emails with template editor. * Feature - Added "On Sale" shortcode (thanks daltonrooney). * Feature - Added "Best Selling" shortcode. * Feature - Added "Top Rated" shortcode. * Feature - Local pickup has the option to apply base tax rates instead of customer address rates. * Feature - New product images panel to make working with featured images + galleries easier. * Feature - Schedule sales for variations. * Feature - Expanded bulk edit for prices. Change to, increase by, decrease by. * Feature - Set attribute order (globally, per attribute). * Feature - Allow setting the product post type slug to a static (non-translatable) text, mainly to be used for translating and WPML setups. * Feature - Added lost password shortcode / email notification (thanks Max Rice). * Feature - Simplified permalink/base settings now found in Settings > Permalinks. * Feature - Support more permalink structures (from https://wordpress.org/support/article/using-permalinks/) * Feature - Added option to resend order emails, checkboxes select which one. * Feature - New layered nav current filters widget. This lists active filters from all layered nav for de-selection. * Feature - Added the option to sell products individually (only allow 1 in the cart). * Feature - New shop page/category archive display settings, and the ability to change display per-category. * Feature - Allow shipping tax classes to be defined independent of items. https://github.com/woocommerce/woocommerce/issues/1625 * Feature - Redone order item storage making them easier (and faster) to access for reporting, and querying purchases. Huge performance gains for reports. Order items are no longer serialised - they are stored in their own table with meta. Existing data can be be updated on upgrade. * Feature - Update weights/dimensions for variations if they differ. * Feature - is_order_received_page() courtesy of Lee Willis. * Feature - Inline saving of attributes to make creating variable products easier. * Feature - Zip code restriction for local pickup. * Feature - New free shipping logic - coupon, min-amount, Both or Either. * Feature - Taxes can be based on shipping, billing, or shop base. * Feature - Filter coupons in admin by type. * Feature - Append view cart link on ajax buttons. * Feature - Revised the way coupons are stored per order and added new coupon reports on usage. * Feature - Updated/new dummy data (including .csv files to be used with [Product CSV Import Suite](https://woocommerce.com/products/product-csv-import-suite/)). * Feature - Option to hold stock for unpaid orders (defaults to 60mins). When this time limit is reached, and the order is not paid for, stock is released and the order is cancelled. * Feature - Added set_stock() method to product class. * Feature - Linking to mydomain.com/product#review_form will now open the review form on load (if WooCommerce lightbox is turned on) * Feature - Customers can sort by popularity + rating. * Feature - Option to exclude coupons from sale items (thanks aj-adl) * Feature - Logout "page" which can be added to menus. * Templating - Revised pagination, sorting areas (sorting is now above products, numbered pagination below) and added a result count. * Templating - email-order-items.php change get_downloadable_file_url() to get_downloadable_file_urls() to support multiple files. * Templating - loop-end and start for product loops, allow changing the UL's used by default to something else. * Templating - woocommerce_page_title function for archive titles. * Templating - CSS namespacing changes (courtesy of Brian Feister). * Templating - My account page broken up into template files (by Brian Richards) * Templating - CSS classes standardised. Instances of '.woocommerce_' & '.wc-' replaced with '.woocommerce-' * Templating - Ratings added to loop. Remove with [this snippet](https://gist.github.com/4518617). * Templating - Replaced Fancybox with prettyPhoto * Templating - loop-shop which was deprecated is now gone for good. * Templating - Renamed empty.php to cart-empty.php to make clearer. * Templating - Renamed sorting.php to orderby.php to better reflect contained hooks and code. * Templating - Product tabs rewritten - new filter to define tab titles, priorities, and display callbacks. * Templating - loop/no-products-found.php template added. * Tweak - Sorting uses GET to make it cache friendly * Tweak - Optimised class loading (autoload). Reduced memory consumption. * Tweak - Moved shortcodes and widgets to classes. * Tweak - Tweaks to gateways API. Must use WC-WPI for IPN requests (classes will only be init when needed). * Tweak - Save hooks for gateways have changed to match shipping methods. Plugins must be updated with the new hook to save options. * Tweak - Cron jobs for scheduled sales. * Tweak - Improved product data panels. * Tweak - Improved installation + upgrade process upon activation. * Tweak - Protect logs and uploads with a blank index.html * Tweak - Append unique hash to log file names * Tweak - get_order_number support for PayPal (thanks Justin) * Tweak - Taxes - removed woocommerce_display_cart_taxes option in favour of never showing tax until we know where the user is (for tax exclusive prices). Tax inclusive continues to use base so prices remain correct. * Tweak - Taxes - tweaked display of tax when using inclusive pricing to avoid confusion. * Tweak - Taxes - improved admin interface and simplified options. * Tweak - More granular capabilities for admin/shop manager covering products, orders and coupons. * Tweak - Added some calculations to the order page when manually entering rows. Also added accounting.js for more accurate rounding of floats. * Tweak - Order page can now calculate tax rows for you. * Tweak - Display tax/discount total for reference on orders * Tweak - Humanised order email subjects/headings * Tweak - Cleaned up the tax settings. * Tweak - If a PayPal prefix is changed, IPN requests break for all existing orders - fixed. new wc_get_order_id_by_order_key() function added. Thanks Brent. * Tweak - On add to cart success, redirect back. * Tweak - Prefix jquery plugins JS. * Tweak - Made paypal use wc-api for IPN. * Tweak - Due to new session handling, removed session section from the status page. * Tweak - Removed upsell limit - show whats defined. * Tweak - Args for upsells to control per-page and cols. * Tweak - Recoded add_to_cart_action for better handling of variations and groups. * Tweak - Admin sales stats show totals. * Tweak - product_variations_{id} changed to product_variations array * Tweak - Coupon description field. * Tweak - Exclude up-sells from related products. * Tweak - Allowed sku search to return > 1 result. * Tweak - If only one country is enabled, don't show country dropdown on checkout. * Tweak - Case insensitive coupons. * Tweak - Made armed forces 'states' under the US rather than in their own 'country'. * Tweak - Extended woocommerce_update_options for flexibility. * Tweak - Added disabled to settings API. * Tweak - Flat rate shipping - if no rules match, and no default is set, don't return a rate. * Tweak - custom_attributes option added to woocommerce_form_field args. Pass name/value pairs. * Tweak - Added html5 type inputs to admin with inline validation. * Tweak - Use WP Core jquery-ui-slider * Tweak - Further optimisation of icons in admin for HiDPI devices * Tweak - On product search include post_excerpt, by krbvroc1 * Tweak - Attribute page restricts reserved terms by GeertDD * Tweak - Arguments for taxonomies are now filterable * Fix - Added more error messages for coupons. * Fix - Variation sku updating after selection. * Fix - Active plugins display on status page. * Localization - Makepot added by Geert De Deckere for generating POT files. * Localization - Admin/Frontend POT files to reduce memory consumption on the frontend. * Localization - French update by Arnaud Cheminand and absoluteweb. * Localization - Romanian update by silviu-bucsa and a1ur3l. * Localization - Dutch updates by Ramoonus. * Localization - Swedish updates by Mikael Jorhult. * Localization - Localized shortcode button. * Localization - Norwegian translation by frilyd. * Localization - Italian update by Giuseppe-Mazzapica. * Localization - Korean translate by Woo Jin Koh. * Localization - Bulgarian update by Hristo Pandjarov. * Localization - Spanish update by bolorino. * Localization - Finnish translation by Arhi Paivarinta. * Localization - Chinese (Taiwan) translation by Fliper. * Localization - Brazilian update by Fernando Daciuk. * Localization - Hungarian translation by béla. * Localization - Indonesian translation by Stanley Caramoy.