WooCommerce 8.9 Has been released on May 14, 2024. This post highlights what’s new in this version of WooCommerce
See our update guide.
Download directly from WordPress.org.
Other important information:
- π This release includes database updates.
- See more
Latest Release:
π WooCommerce 8.9
About:
- β Backwards compatible
- Commits: 407
- Contributors: 83
Final Release β May 14, 2024
Whats new in WooCommerce 8.9
- Introducing Custom Fields in the New Product Editor
- Cart and Checkout Blocks get leaner, and a little something extra
- Order Attribution column now part of Order Analytics
- Compliant with native display of co-branded credit cards
- API Changes
- Other important information
- Changelog
- Get WooCommerce 8.9
- Contributors
Introducing Custom Fields in the New Product Editor
![](https://developer.woocommerce.com/wp-content/uploads/sites/2/2024/05/Custom-Fields-UI.webp)
You can now add Custom Product Fields to products via the New Product Editor. This feature allows you to manage custom fields via a new section located at the bottom of the Organization tab.
Hereβs how it works:
- Enable the Show custom fields toggle to view an empty state or a table listing existing fields.
- Use the Add new button to create new custom fields. You can add one or multiple fields at once.
- Edit a field by clicking the Edit button on the table row.
- Remove a specific field by clicking the X button on the right of the table row.
- Remember to save the product to persist all these fields.
Please note that this feature is still a work in progress. Currently, itβs not possible to see or select a custom field name created for a different product from the Add custom fields or Edit modal forms.
Cart and Checkout Blocks get leaner, and a little something extra
Add vendor bundling of blocks frontend bundle to improve cart/checkout performance #45859
We found some opportunities to improve how we bundle and build JavaScript for the Cart and Checkout blocks. This allows for significantly smaller payloads on those blocks. The cart block sees an 11% saving in payload size and the checkout a 17.9% saving!
In addition to a leaner, we have also marked the the Additional Checkout Fields feature as stable in this release. This feature was previously released on 8.7 as experimental.
Order Attribution column now part of Order Analytics
Display “Origin” column in Orders table in Orders Analytics #46424
Change “Origin” column name to “Attribution” in Orders Analytics #46760
![](https://developer.woocommerce.com/wp-content/uploads/sites/2/2024/05/WooCommerce-8.9-Product-Editor.webp)
The order attribution tracking feature is now part of Order Analytics under the βAttributionβ column, allowing store owners and managers to better understand the origin of each of their orders.
Navigate to WooCommerce Analytics > Orders
page to see the new βAttributionβ column in the table. Additionally, the exported data in the CSV file via the “Download” button will also have the new βAttributionβ column.
Compliant with native display of co-branded credit cards
Add – Adding support for co-branded credit cards #45903
![](https://developer.woocommerce.com/wp-content/uploads/sites/2/2024/05/WooCommerce-8.9-Product-Editor-1.webp)
![](https://developer.woocommerce.com/wp-content/uploads/sites/2/2024/05/WooCommerce-8.9-Product-Editor-2.webp)
We added support for natively displaying co-branded credit cards, and allowing customers to choose between them, in compliance with Regulation (EU) 2015/751.
When displaying a co-branded credit card, we will now show all the available networks (brands) and the preferred ones. When paying, we will use the preferred brand instead of the default (this will be handled on the Stripe plugin’s side).
API Changes
- Add: Adds an endpoint to the API Rest that allows duplicating a product and saving it as a draft. It’s also possible to update the product when extra parameters are sent. #46141
- Fix: Updates the REST API v3 reports/orders/totals endpoint to be compatible with HPOS #46715
- Fix: Fixes an error related to the duplicate product REST API endpoint #46551
- Fix: Ensure that required missing fields will get validated in Store API #45840
Other important information
Database updates
π Update when PayPal Standard is loaded to further reduce new store using this legacy payment method #47205
This change disables the legacy PayPal Standard gateway for stores that aren’t using it. This reduces the number of stores connecting to PayPal Standard (which was deprecated in WC 5.5) and encourage stores to use the latest PayPal Payments extension.
Due to this change, the following filter will no longer work as of WooCommerce 8.9:add_filter( 'woocommerce_should_load_paypal_standard', '__return_true' );
π Fix Woo.com reference in the Inbox during onboarding #46600
This change fixes a Woo.com reference in the Inbox during onboarding so that the domain name is changed to the updated WooCommerce.com.
Changelog
See all bug fixes and improvements
- Fix – Fix fatal error when trying to download log files #47398
- Fix – Donβt automatically insert hooked customer account block into header for sites running less than WP 6.5 #47171
- Fix – Fix HPOS order searches involving terms with characters resembling URL-encoded characters. #46972
- Fix – Add a bailout to prevent JavaScript errors if Sourcebuster isnβt loaded #46723
- Fix – Add a safety check for the numbers with the same value for the separators #46241
- Fix – Addresses a fatal error that can occur when applying a coupon within the order editor (where one of the products has been deleted). #46251
- Fix – Add safety check to prevent rare occurences of a fatal in WooSubscriptionsNotes #46472
- Fix – Allow enbling HPOS when the only incompatible plugin is the Legacy REST API one #46634
- Fix – Always validate missing additional fields #45840
- Fix – Be less aggressive when checking for selected shipping rates in Store API. Reminder that shipping rate id should be on the shape of
method_id:instance_id
. #46719 - Fix – can only be inserted once excludes the mini-cart template button #46478
- Fix – Changed LYS task list task id from underscore to hyphens for consistency with the other tasks #46055
- Fix – Ensure local pickup settings are reflected in Checkout block #46334
- Fix – Ensure queryId and id uniqueness when duplicating the Product Collection block. #44522
- Fix – Ensure the wc/v3/reports/orders/totals endpoint is compatible with HPOS. #46715
- Fix – Fix βAdd a filterβ UI issue in Analytics. #46750
- Fix – Fix: Hand-picked control only allow selection from first 100 products #45931
- Fix – Fix a bug that prevented placing an order when shipping is disabled, but Local Pickup is still enabled. #45828
- Fix – Fix a bug where Site Visibility setting tab appears without launch-your-store feature flag turned on. #46622
- Fix – Fix admin header page title #46450
- Fix – Fix a few broken links. #46381
- Fix – Fix back from CYS via LYS goes to Home, not LYS #46665
- Fix – Fix bug parsing memory_limit in product importer #46051
- Fix – Fix code typo in Orders Analytics. #46487
- Fix – Fix coming soon page fatal error with non-FSE theme #46570
- Fix – Fix crashes in the mini-cart when combined with product and filter blocks. Closes #46542. #46814
- Fix – Fix deprecated error message with strlen usage in PHP 8.1 #46661
- Fix – Fix duplicate product endpoint args for item schema #46551 #46551
- Fix – Fixed the path for the LYS private link woo-share cookie entry #46571
- Fix – Fixes for some flaky e2e #46845
- Fix – Fixes order counts in the status widget for persistent caches. #46860
- Fix – Fix Home screen grey background #45895 #45895
- Fix – Fix input layout issue with shipping task in Firefox. #45778
- Fix – Fix issue preventing some blocks from being direct children of the Single Product block. #45530
- Fix – Fix K6 test with coming soon feature flag enabled #46539
- Fix – Fix Launch Your Store task item should not be clickable once completed #46361
- Fix – Fix linked product e2e tests #46286 #46286
- Fix – Fix LYS success page shown but Task not crossed off #46663
- Fix – Fix sanitization of special letters in Additional fields API #46762
- Fix – Fix some e2e tests for linked product #46506 #46506
- Fix – Fix the broken contract in the StoreAPI and the bug in the price clauses causing the incorrect filter counts. #45247
- Fix – Fix the link in the custom field helper test #46640
- Fix – Fix the LYS Hub tasklist so that it only shows incomplete tasks and tasks that were recently actioned #46190
- Fix – Fix the overlay color of the βFeatured Category Tripleβ pattern. #46170
- Fix – Fix undefined error with current_screen in lys class. #46093
- Fix – Fix Woo.com reference in the inbox during onboarding. #46600
- Fix – Highlighting text in the productβs description of the new product editor is not visible inside editor #46728
- Fix – Move the feature flag check to add_lys_default_values method #46154
- Fix – Only query order meta for orders that were successfully retrieved from the DB #45544
- Fix – Prevent fatal error on the Status page when the log directory contains an unreadable directory #46709
- Fix – Prevent PHP warning if local pickup has not been set up in your store #46182
- Fix – Prevent reading items with zero order ID to avoid mixups. #46161
- Fix – Product Collection: Donβt show publicly non-queryable taxonomies #45781
- Fix – Product Collection: Fix the βReset Allβ funtionality in Editor filters #46226
- Fix – Product Editor: Fixes a mis-alignment of the form when certain extensions are installed. #45963
- Fix – Removed explat test that calls live explat server #46818
- Fix – Remove pointer cursor and underline on hover for the product collection product title in the editor #45998
- Fix – Skip mini cart e2e tests, flaky test fixes #46199
- Fix – Update background color and padding in WooCommerce LYS status popover #46322
- Fix – Update
WC_Order_Factory::get_order()
to return false when failing to load cached order. #46393 - Fix – [CYS] – Fix color inconsistencies in the color palette buttons. #46216
- Fix – [CYS] Fix logo position styles while saving. #46833
- Fix – [CYS] Fix the AI-generated site title comparison. #46819
See all features and additions
- Add – Send tracks event for woocommerce.com connect notices #47003
- Add – Add a connect to woocommerce.com notices for unconnected stores in the wc settings and wc marketplace page. #45536
- Add – Add a new task (connect to WooCommerce.com) in WC onboarding tasklist #46259
- Add – Add a tour for the homescreen site status badge. #46203
- Add – Add coming soon exclusion for users with a private link. #46465
- Add – Add coming soon mode routing. #46223
- Add – Add coming soon page and its page selector #45773
- Add – Add coming soon page editor links #46100
- Add – Add E2E tests for grouped products #45964 #45964
- Add – Add e2e tests for linked products #46024 #46024
- Add – Add E2E tests for product variation notices #45853
- Add – Add e2e tests for virtual orders #45824
- Add – Added lys hub sidebar #46056
- Add – Added the action to set the appropriate options when launch store button is clicked in LYS #46235
- Add – Added tracks events for LYS hub #46462
- Add – Added URL handling for LYS XState pages #45803
- Add – Add isSelectableByUser attribute to product templates #46394
- Add – Add Launch Your Store success screen #46103
- Add – Add LYS hub site preview #45976
- Add – Add meta_data parameter in generate variations endpoint #45953
- Add – Add origin column in Orders Analytics report. #46424
- Add – Adds a prefetch for the LYS congrats data #46406
- Add – Add shipping phone number in the order preview panel. #45788
- Add – Adds support for sanitizing styled chunks of HTML (a slight expansion of normal
wp_kses_post
rules). #45407 - Add – Add support for hooking into reading and saving additional fields. #46870
- Add – Add the Customer Account block to the header automatically on approved themes (including TT4). #43267
- Add – Add wc_rest_is_from_product_editor() function to check if REST request was made by product editor. #46741
- Add – Coming soon mode and the Launch Your Store task. #46510
- Add – Disable the fields that are not required in variable products because they are set in each variation #45838
- Add – Move LYS coming soon initialization to core profiler flow #46708
- Add – Sync local pickup title between Checkout page and shipping settings UI #45720
- Add – Use a public helper API endpoint update-check-public to check latest versions of WooCommerce extensions and show a plugin update message in the plugin table list to connect to woocommerce.com. #46082
- Add – Use state names in Checkout Block address cards. #45799
- Add – [Product Block Editor]: register
metadata
attribute for all blocks #45657
See all updates and tweaks
- Update – Remove wc_update_890_add_launch_your_store_tour_option function. #47005
- Update – Add coming soon banner on the frontend when coming soon mode is enabled. #46096
- Update – Add feature flag check for patterns and wrap coming soon template and patterns under feature flag #46856
- Update – Additional Checkout Fields has been graduated to stable. #46805
- Update – Add more robust method of filesystem initialization #45914
- Update – Add order search by transaction_id #46129
- Update – Add private link with copy link functionality #45915
- Update – Adds cog and edit icons to homescreen LYS status pill #46098
- Update – Add tracks for site visibility settings #46078
- Update – Add warnings about the incompatibility of the legacy REST API and HPOS #46841
- Update – Apply styles to Coming soon entire store regardless of theme #46619
- Update – Bump node version. #45148
- Update – Change styling for shipping, payment, and local pickup radio buttons in the Checkout block #46150
- Update – Copy change for the coming soon label in advanced setting. #46204
- Update – Copy text update for LYS homescreen badge. #46097
- Update – CYS – E2E tests: Add footer section E2E tests #45984
- Update – CYS – E2E tests: Add header section E2E tests #46011
- Update – Deprecate CLI tools under βcotβ namespace and add aliases in βhposβ namespace. #46766
- Update – Ensure consistent styling for single shipping methods in the Checkout block #46284
- Update – Group subtotals in the Order Summary of the Cart & Checkout blocks #46386
- Update – Hide coming soon banner from LYS preview frame #46321
- Update – Implement dismiss button for the coming soon banner and restrict the banner on the store pages only when βRestrict to store pages onlyβ option is selected. #46149
- Update – Increase the spacing between the title and the rest of the pattern for: βProduct Galleryβ, βProduct Collection: Featured Products 5 Columnsβ and βTestimonials 3 Columnsβ. #45830
- Update – Make LYS preview frame resizable #46327
- Update – Move site visibility settings to a new tab #46140
- Update – Product Collection: recognise if block is inside Cart or Checkout block #46059
- Update – Product Collection: Rename βotherβ location from
generic
tosite
#46228 - Update – Product Collection: split Taxonomies filter into separate filter per taxonomy for better readibility #46160
- Update – Product Collection: track collection being chosen in Product Collection #45827
- Update – Product Elements: unify the Product Elements inserter category #46064
- Update – Redirect to the CYS intro screen when accessing the transitional page without going through the customizing process. #45933
- Update – Remove BNPL (Klarna) additional payment method from WooPayments welcome page, update payment method icons #46523
- Update – Remove the red badge shown on extensions menu item when the site is not connected to WooCommerce.com #46807
- Update – Remove ToS acceptance where unnecessary #46003
- Update – Sync LYS task completion with woocommerce_coming_soon optionSync LYS task completion with woocommerce_coming_soon option #46358
- Update – Toggle LYS feature flag off for 8.9 #46852
- Update – Update @woo.com email addresses to @woocommerce.com. #46387
- Update – Update coming soon page link to template editor #46566
- Update – Update HPOS tracker and status entries. #46239
- Update – Update Launch Your Store task action URL #45932
- Update – Update LYS site visibility settings copies. #46095
- Update – Update lys status badge padding and only show it on WooCommerce homeβ #46359
- Update – Update the shipping selector to show FREE instead of a zero amount #46345
- Update – Update to use template_include instead, handle 404 for restrict store pages only #46667
- Update – Update WC Admin Homescreen header icons #46353
- Update – Update Woo.com references to WooCommerce.com. #46259
- Update – Use individual meta keys for Additional checkout fields. #46091
- Update – Use the address formats from WC_Countries in the checkout block address card #45852
- Update – [CYS – E2E tests] Add E2E tests for the intro screen. #45356
- Update – [CYS – E2E tests] Add E2E tests for the transitional screen. #45894
- Update – [CYS] Remove the βSaveβ button from inside the different sections. #46526
- Tweak – Adjusts the way refunds are displayed (including in emails), to make it clearer that the line item is indeed a refund. #45455
- Tweak – Change private methods to protected in ProductVariationTemplate #46395
- Tweak – CYS – AI flow: keep persisted query param when redirecting. #46820
- Tweak – Fix breadcrumb back icon color to follow the admin theme color. #40106
- Tweak – Fix the hover color in the reports page and star rating color in the dashboard widget. #40243
- Tweak – refactor:
woocommerce_rest_checkout_process_payment_error
returns a400
response code, instead of402
. #45979 - Tweak – Removed unused local variable βdiscount_amount_htmlβ to improve code clarity and efficiency. #46437
- Tweak – Removes unnecessary margin from Customer Account block label. #45934
- Tweak – Remove unneeded empty βUnknownβ code handling in Order Attribution. #46654
- Tweak – Remove unused βNo order source data available.β message in Order Attribution feature. #46648
- Tweak – Rename βOriginβ column to βAttributionβ in Orders Analytics. #46760
- Tweak – Tewak Launch Your Store sidebar UI #46449
- Tweak – Tweaks Site visibility settings pageβ #46365
- Tweak – Updates Launch Your Store and Coming Soon Mode copy #46668
- Tweak – Use βYouβreβ in task list progress title #45978
- Tweak – WC_Discount: Add a filter for the items to apply coupons array. #45791
See all developer updates
- Dev – Deprecate the woocommerce_should_load_paypal_standard filter used to bypass loading PayPal Standard. Only load the PayPal Standard payment method on stores that have connected their account or have existing PayPal orders. #47205
- Dev – Add an e2e test to ensure that each <CheckboxControl> component has a unique ID. #45655
- Dev – Add API Rest endpoint to duplicate product #46141 #46141
- Dev – Add a stalebot workflow for the flaky e2e test reporter #46585
- Dev – Add a test for the
woocommerce_specific_allowed_countries
option. #45810 - Dev – Add changes to tests projects #46016
- Dev – Add E2E test for Analytics products segmentation filter. #46164
- Dev – Add E2E tests for the Product Filter: Price block #45855
- Dev – Add E2E tests to cover Publish dropdown options #46658 #46658
- Dev – Added xstate v5 inspector functionality #45879
- Dev – Add k6 perf test assertions to check for the correct page title and presence of footer. #46485
- Dev – Adds an e2e test to initiate a woo.com connection #45813
- Dev – Adds JS linting scripts for woocommerce plugin #46214
- Dev – Adds some end to end tests to verify page titles of key WC pages #46448
- Dev – Adds tests for merchant shipping methods #45966
- Dev – add the expected template version to template bump warning #46021
- Dev – Add WordPress.WP.Capabilities config to phpcs.xml #45927
- Dev – Blocks – E2E: Fix visibility store #46521
- Dev – Blocks: Isolate performance tests from E2E tests #46773
- Dev – Blocks E2E: Ensure legacy template names are supported #46269
- Dev – Blocks E2E: Fix basic role-based functionality tests #46684
- Dev – Blocks E2E: Fix translation test where βVerzendmethodenβ label is not visible #46756
- Dev – Bump data-loader from 2.1.0 to 2.2.2 #45906
- Dev – Bump eslint-import-resolver-typescript from 3.2.4 to 3.6.1 #45910
- Dev – Change the support request GH workflow to label issues as not planned when closing them #46202
- Dev – CI: adds e2e tests into ci-jobs and ci.yml #45190
- Dev – Classic Templates: enable Products by Tag E2E test #46428
- Dev – cleanup in blocks package.json #45230
- Dev – Convert the downloable checkbox into a toggle #46693 #46693
- Dev – E2E tests: add merchant e2e tests to cover inserting WooCoommerce patterns #46066
- Dev – E2E tests: add remaining tests to cover merchant checkout block flow / milestone #45755
- Dev – E2E tests: add test for merchant insert all woo blocks to page #45896
- Dev – E2E tests: fix command palette tests failing with Gutenberg installed #46407
- Dev – E2E tests: fixed flaky product creation test #45884
- Dev – E2E tests: fix locator in create order tests #45983
- Dev – E2E tests: fix tests that are failing with Gutenberg active #46842
- Dev – E2E tests: make payment page tests more resilient to theme changes #45888
- Dev – E2E tests: stabilize more tests #45923
- Dev – E2E tests: update the default theme to use twentytwentythree #45937
- Dev – Enable βCustom Fieldsβ feature flag for by default #46832 #46832
- Dev – Enhance merchant new order test #45965
- Dev – Enhances the e2e tests for the marketing overview page #45814
- Dev – Enhance the merchant create order e2e tests #45816
- Dev – Fix a few flaky e2e tests #46494
- Dev – Fix daily e2e tests run setup #46511
- Dev – Fixes a bug introduced previously where enabling localStorage.xstateV5_inspect would cause the page to crash because itβs not supposed to be used in prod builds. #46109
- Dev – Fix some flaky e2e tests #45856
- Dev – Fix template revert tests where the template is unreachable due to pagination. #46373
- Dev – Fix tests that were failing against HPOS environment setup. #46242
- Dev – Implement Lazy Loading inside ProductPage component #46399 #46601
- Dev – Include list of failed tests in Slack notifications #46360
- Dev – In k6 perf tests, add checks for the Shop page title and presence of product headers. #46469
- Dev – Move metrics job into ci.yml #46471
- Dev – Perf tests: fix environment setup issue #46787
- Dev – Remove a few unnecessary test annotations. #45596
- Dev – Remove periods at the end of section descriptions #46346 #46346
- Dev – Skip CYS header test. #46217
- Dev – Update @wordpress-env package to version 9.0.7 #46177
- Dev – Update copy of inventory management fields #45801 #45801
- Dev – Update core critical flows documentation #46400
- Dev – Update deprecated node 16 action to the latest in ci.yml #46673
- Dev – update makepot command to use include vs exclude #46287
- Dev – [CYS] Update footer and header test to not use snapshots. #46221
See all enhancements
- Performance – Apply upstream performance improvement to _get_templates_paths #45619
- Performance – Avoid unnecessary query when HPOS compatibility mode is disabled. #46616
- Performance – Donβt load REST API when generating possible routes. #45134
- Performance – Introduce vendor bundling to the blocks cart and checkout pages to improve performance. #45859
- Performance – [Performance] Donβt load REST API when hydrating blocks requests. #45134
- Enhancement – Add filters to support adding custom search methods in HPOS admin and remember the last used search option #45954
- Enhancement – Add more translator context to ambiguous words #46382
- Enhancement – Adds support for co-branded credit cards #45903
- Enhancement – Donβt show a product in the featured products block if the status is other than published and the user doesnβt have read capability for that product. #45763
- Enhancement – Improve formatting for SE, LV, CZ, SK postcodes #45478
- Enhancement – Regenerate share key on the fly #46662
- Enhancement – Various UX improvements in HPOS CLI cleanup tool. #45322
View the full changelog.
Get WooCommerce 8.9
π To upgrade: See our update guide or download the latest release from WordPress.org.
π Found a Bug? Please submit a report it on GitHub.
Leave a Reply