Commit Graph

22299 Commits

Author SHA1 Message Date
Gabriel Manussakis 88c2f97ba4
[Accessibility] Adjust color sales badge color contrast (#52080)
* Adjust color contrast of sales badge on TT1 theme

* Adjust color contrast of sales badge on TT4 theme

* Add changelog file
2024-10-22 15:09:31 +01:00
Luigi Teschio eea27c681d
Fix `Add To Cart form` layout in the post editor (#51662)
* fix Add To Cart form layout on post editor

* improve code

* fix conflict after merge

* Add changefile(s) from automation for the following project(s): woocommerce-blocks

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-10-22 15:23:49 +02:00
Maikel Perez 8e2e666c17
CYS: remove GO_BACK_TO_HOME state (#52042)
* CYS: Remove GO_BACK_TO_HOME state from the Transitional screen

* Add changelog file

* Fix unit tests

* Redirect to the admin home page instead of the site home page
2024-10-22 10:05:05 -03:00
Mike Jolley 44fe60214a
Store API: Fix case sensitive coupon email validation (#52187)
* Force billing email lowercase in store API validation routine

* Changelog

* Update plugins/woocommerce/changelog/fix-50329-store-api-email-restrictions-case

Co-authored-by: Alex Florisca <alex.florisca@automattic.com>

---------

Co-authored-by: Alex Florisca <alex.florisca@automattic.com>
2024-10-22 13:17:05 +01:00
Gabriel Manussakis bc446587aa
[Accessibility] Associate the shipping calculator button to its form in Cart page (#52126)
* Associate shipping calculator button to its form in classic Cart

* Associate shipping calculator button to its form in block Cart

* Add changelog file

* Bump shipping-calculator template version
2024-10-22 13:03:47 +01:00
Manish Menaria e28b0aa9ea
Product Collection: Support registering product collection that isn't displayed in Collection Chooser (#52057)
* Filter product collection variations by 'block' scope

This commit updates the product collection feature to only show variations
with the 'block' scope in the collection chooser. To achieve this:

1. Added 'block' to the scope array for various product collection variations
   (best-sellers, featured, hand-picked, new arrivals, on-sale, related,
   top-rated, and upsells).
2. Modified the collection chooser logic to filter variations based on the
   'block' scope.

* Product Collection: Hide collection chooser toolbar for non-block scoped collections

This commit modifies the ToolbarControls component in the Product Collection block to conditionally render the CollectionChooserToolbar. The toolbar is now only displayed for collections with a scope that includes 'block'.

* Add scope property to product collections in E2E tests

This commit adds the 'scope' property to all registered product collections
in the E2E test plugin. The 'scope' is set to ['block'] for each collection.

* Add changefile(s) from automation for the following project(s): woocommerce-blocks

* Rename isShowCollectionChooserToolbar to showCollectionChooserToolbar
for better readability.

* Add documentation and refactor for product collection scope

This commit introduces the following changes:

1. Update documentation to explain the `scope` argument for product collections
2. Refactor Collection Chooser and toolbar controls to handle default scope
3. Remove explicit `scope` from test collections to align with default behavior

* Add E2E tests for Product Collection scope argument

This commit adds E2E tests to verify the behavior of Product Collections
registered with different scopes. It includes:
- Tests for collections with 'inserter' and 'block' scopes
- Verification of visibility in Collection Chooser
- Checks for 'Choose collection' button visibility

* Generate manifest file

* Generate manifest file

* docs: Remove unsupported emojis from product collection documentation

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-10-22 14:02:32 +05:30
Ames Plant c5faf64bfa
[Accessibility] Add screen reader text to the gallery trigger link and update it to a… (#50493)
* Add screen reader text to the gallery trigger link and update it to a button

* Fix linting error for line too long

* Fix linting double arrow alignment

* Update version

* Linting spacing fix

* Add a mixin for the product gallery trigger

* Move product gallery trigger to mixin and add a cursor state

* Remove unnecessary mixin import

* Add focus style to gallery trigger on TT1 theme

* Update gallery trigger mixin

* Update product gallery trigger markup

* Update changelog text

---------

Co-authored-by: Gabriel Manussakis <gabrielmanussakis@gmail.com>
Co-authored-by: Gabriel Manussakis <9420947+Manussakis@users.noreply.github.com>
2024-10-22 10:17:04 +02:00
Manish Menaria 0d9d06cd46
Fix: Upsells collection not showing correct products on frontend (#51730)
* Fix: Upsells collection not showing correct products on frontend

This commit addresses an issue where the Upsells collection wasn't displaying the correct products on the frontend. The problem was caused by a variable name mismatch in the condition checking for empty product references.

* Add changefile(s) from automation for the following project(s): woocommerce

* Rename product_references variable for consistency

* Update variable name

---------

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Karol Manijak <20098064+kmanijak@users.noreply.github.com>
2024-10-22 12:56:06 +05:30
Manish Menaria e6d0a906fb
Product Collection: Hide preview label when specific product is selected (#52150)
* Hide preview label when a specific product is selected

This commit modifies the Product Collection block to hide the preview
label when a specific product is selected by the user. It addresses the
issue where the preview label was still showing even when a product
reference was available.

* Add changefile(s) from automation for the following project(s): woocommerce-blocks

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-10-22 12:54:16 +05:30
Alba Rincón 25cc4630be
Adapt receipt to take into account order status (#51853)
This PR adds a new Payment status field to the order receipts.

* Adapt receipt to take into account failed orders

* Add missing param

* Add changefile(s) from automation for the following project(s): woocommerce

* Add a new section to show the order status

* Remove unused css

* Replace order status by payment status, possible values are only failed or success

* Change logic to use order failed instead of order paid
2024-10-21 15:38:16 -07:00
louwie17 cd3d957bec
Update/storybook commands to use wireit (#51701)
* Integrated wireit to storybook

* Attempt at integrating wireit

* Update wireit dependencies for storybook package

* Add changelog

* Remove unneeded --if-present and regex in pnpm command

* Remove unneeded dependency for storybook build command

* Add missing dependency in blocks storybook build script
2024-10-21 20:14:55 +00:00
Barry Hughes 92063b0817
Revert #51598 (#52166)
* Revert changes made to (HPOS) order editor meta box hooks (original change: PR#51598).

* Restore method param (was inadvertently stripped).

* Provide further explanation re types supplied via `add_meta_boxes`.

* Changelog.
2024-10-21 10:17:05 -07:00
Francesco aeade9d9ac
fix: dark theme support for "change address" cart button (#51878)
* fix: dark theme support for "change address" cart button

* Add changefile(s) from automation for the following project(s): woocommerce-blocks

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-10-21 16:06:17 +01:00
Fernando Marichal 2a89e91b58
Product Collection: Add Cross-Sells collection (#52068)
* Add cross-sells

* Fix block title

* Rename product_reference

* Add unit tests

* Add changelog

* Fix lint
2024-10-21 11:25:27 -03:00
Maikel Perez 3c2180f296
[CYS - Core] Unit Test: Add test for the util function to install fonts on the JS side (#52172)
* Remove duplicated fonts.ts file

* Add unit tests to check the getFontFamiliesAndFontFaceToInstall function

* Add changelog file
2024-10-21 09:47:45 -03:00
Francesco 1686b2c14b
fix: ValidatedTextInput attribute (#51971)
* fix: ValidatedTextInput  attribute

* lint in muh belly

* TDD

* Add changefile(s) from automation for the following project(s): woocommerce-blocks

* undo props change

* custom error message prop

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-10-21 11:00:11 +01:00
Mike Jolley a882acc7e3
Fix notices caused by legacy fee dynamic properties (#52063)
* Define legacy fee dynamic properties

* changelog
2024-10-21 09:20:05 +01:00
Herman 5b3289264f
Do not show product card footer for Business Services products (#52118)
* Do not show product card footer for Business Services products

* Add changefile(s) from automation for the following project(s): woocommerce, woocommerce/client/admin

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-10-21 08:48:35 +02:00
Jason Kytros 782a3c7508
Run `wc_update_950_add_brands_enabled_option` on WC 9.5 update (#52051)
* Run `wc_update_950_add_brands_enabled_option` on WC 9.5 update

* Add changefile(s) from automation for the following project(s): woocommerce

* Update wc-update-functions.php

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-10-21 09:15:31 +03:00
Chi-Hsuan Huang 9c5e7beb71
Remove options to re-enable setup task list after completion (#52146)
* Remove re-eanble setup tasklist option

* Add changelog

* Remove re-eanble setup tasklist option from settings when setup task has previously completed

* Use is_complete check instead
2024-10-21 12:05:18 +08:00
Chi-Hsuan Huang ebc486103c
Prepare 2.5.0 Beta Tester Release (#52181)
* Update changelog.txt

* Bump version

* Update composer.lock
2024-10-21 11:47:18 +08:00
Chi-Hsuan Huang 04ce5182a0
Fix ExtendStore Task Not Marked as Completed Upon Navigating Back to Home (#52127)
* Invalidate the task list completion when a task is clicked

* Add changelog

* Fix test
2024-10-20 23:41:30 +00:00
Chi-Hsuan Huang b5501426b4
Add tool to reset "Launch your store" and coming soon mode changes (#52149)
* Add tool to reset "Launch your store" and coming soon mode changes

* Update docs

* Update docs

* Address PR feedback
2024-10-21 07:22:16 +08:00
Gabriel Manussakis 3c076b5187
[Accessibility] Improve checkout error messages (#49094)
* Improve required info for screen readers on checkout fields

* Add style to inline error message on checkout fields

* Add id attribute to terms error

* Improve accessibility of checkout errors messages

* Prevent screen readers from reading the asterisk on checkout fields

* Revert spacing change

* Revert spacing change

* Add changelog file

* Decrease line length

* Lowercase the required term

* Fix query methods in checkout tests

* Add space before required text for screen readers

* Fix query of shipping fields on legacy checkout tests

* Remove asterisk from field name on legacy checkout test

* Remove invalid character in Phone and Email fields on legacy checkout test

* Add asterisk to get phone and email by label on legacy checkout test

* Fix field labels for legacy checkout tests

* Fix php lint errors

* Add required tem to the Government ID input on tests

* Revert changes on required fields label

* Create checkout-inline-error-message mixin

* Replace SCSS variable with a CSS one

* Add checkout inline error message to T17

* Add checkout inline error message to T19

* Add checkout inline error message to TT

* Add checkout inline error message to TT1

* Add checkout inline error message to TT2

* Add checkout inline error message to TT3

* Include notice banner block in the notice selectors

* Add inline documentation to role attribute removal

---------

Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
2024-10-18 18:00:46 +02:00
Joshua T Flowers 67fb81095f
Cache block asset resource hints (#51874)
* Cache block asset resource hints

* Combine resource hints under single cache transient

* Add AssetController tests

* Add changelog entry

* Skip cache use in development mode

* Fix up lint errors

* Revert init method back to protected and ignore linting

Co-authored-by: Mike Jolley <mike.jolley@me.com>

---------

Co-authored-by: Mike Jolley <mike.jolley@me.com>
2024-10-18 07:37:08 -04:00
Albert Juhé Lluveras 7125986053
Add sizes attribute to Product gallery thumbnail images to better load the appropriate resolution (#52073)
* Add sizes attribute to Product gallery thumbnail images to better load the appropriate resolution

* Add changelog file
2024-10-18 10:56:46 +02:00
Manish Menaria b4605c75e5
Fix: Multiple issues related to MySQL having ANSI_QUOTES enabled in Product Filters (#51316)
* Fix: Use prepared statements for stock status filtering

This commit addresses an issue where the "Filter by stock" block fails when used with MySQL that has ANSI_QUOTES enabled. The problem was caused
by the use of double quotes in the SQL query.

Key changes:
1. Replace direct string concatenation with wpdb->prepare()
2. Use placeholders for stock status values in the IN clause
3. Validate stock statuses against known options before querying

This fix ensures compatibility with different MySQL configurations and improves
the overall security of the query by preventing SQL injection vulnerabilities.

* Add changefile(s) from automation for the following project(s): woocommerce

* Fix lint errors

* Fix lint issue

* Fix: Use single quotes for attribute taxonomy names in SQL query

- Addresses issue with Filter by Attribute block failing with ANSI_QUOTES enabled
- Prevents "Unknown column" errors for attribute names in SQL queries

* Fix: Use single quotes for SQL IN clauses

This commit addresses an issue where the Filter by Stock block fails when
the database has ANSI_QUOTES enabled. The problem was caused by the use of
double quotes in SQL IN clauses, which are treated as identifiers when
ANSI_QUOTES is enabled.

The fix involves replacing double quotes with single quotes in the following files:
1. plugins/woocommerce/src/Blocks/QueryFilters.php
2. plugins/woocommerce/src/StoreApi/Utilities/ProductQuery.php

This change ensures compatibility with databases that have ANSI_QUOTES
enabled, while maintaining the existing functionality for other configurations.

* Add changefile(s) from automation for the following project(s): woocommerce

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-10-18 09:46:32 +05:30
Chi-Hsuan Huang 8ad73e6b11
Remove "banner" layout option from inbox note (#52088)
* Remove deprecated "banner" layout option

* Add changelog

* Remove banner layout from test and beta tester

* Add changelog

* Add changelog
2024-10-18 03:24:34 +00:00
Alba Rincón 9937242035
Add new email for notifying customers when an order fails (#51778)
* Add new email for notifying customers when an order fails

* Remove references to the order completed template and bump versions

* Add changefile(s) from automation for the following project(s): woocommerce

* Fix lint

* Improve default subject and heading

* Remove the additional content message

* Update copy for both emails
2024-10-17 17:11:45 -07:00
Chi-Hsuan Huang c9ab2d67af
Update core profiler redirect to jetpack screen logic (#52095)
* Update core profiler redirect to jetpack screen logic

* Add changelog

* Only redirect when jetpack is selected
2024-10-18 05:34:12 +08:00
Chi-Hsuan Huang 9e83d0cd6a
Hide platform selector text cursor (#52093)
* Hide text cursor for platform selector

* Add changelog
2024-10-18 05:34:00 +08:00
github-actions[bot] 2f97ab7338
Delete changelog files based on PR 51735 (#52122)
Delete changelog files for 51735

Co-authored-by: WooCommerce Bot <no-reply@woocommerce.com>
2024-10-17 09:33:41 -07:00
Veljko V. 6eb01a2e35
Update editor util method to make it compatible with Gutenberg new labeling Block Inserter (#52107)
* Update string for Block Inserter

* Add changelog

* Update util method and add comment
2024-10-17 17:10:59 +01:00
Mike Jolley 3c830d6f3f
Add/cart link in checkout header 44837 (#51948)
* Cart Link Block WIP

* Add pattern for header

* changelog

* We added a header so update test

* Add wc-blocks-header-pattern class

* render_woocommerce_template_part was missing wrappers

* Add missing class

* Update plugins/woocommerce/src/Blocks/BlockTypes/CartLink.php

Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com>

* Update plugins/woocommerce/src/Blocks/BlockTypes/CartLink.php

Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com>

* Update plugins/woocommerce/src/Blocks/BlockTypes/CartLink.php

Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com>

* Further SVG compression

* Remove unnecessary area handling

* Shared icon with mini cart

* Global style support

---------

Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com>
2024-10-17 16:50:12 +01:00
Albert Juhé Lluveras 9f26128dc2
Fix fatal when OrdersTableMetaQuery::generate_where_for_clause_value() didn't return a string (#52065) 2024-10-17 08:54:46 +02:00
Chi-Hsuan Huang 47db965730
Update makepot-audit include path: Replace 'client' with 'assets (#52096)
* Update composer.json to include 'assets' folder and exclude client in makepot-audit command

* Add changefile(s) from automation for the following project(s): woocommerce

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-10-17 14:03:37 +08:00
Pascal Birchler 9689a80fa4
Prevent early translation loading (#52055) 2024-10-17 11:04:36 +07:00
Roy Ho bd838d824a
[Experimental] Product filters/remove template parts (#52041)
* Remove product filters template part

* Remove product filters overlay template part

* Update e2e tests

* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce

* Fix linting

* Remove unused template part class and remove overlay navigation

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-10-16 14:02:25 -07:00
RJ 660eeec5cd
fix: i18n shipping region settings placeholder text (#52016) 2024-10-16 20:53:19 +08:00
Chi-Hsuan Huang 0eb9f36746
Update the `.distignore` file to exclude the ./client/admin folder from zip (#52052)
* Update .distignore file to exclude ./client/admin folder from zip

* Add changefile(s) from automation for the following project(s): woocommerce

* Update .distignore

* Exclude /client/admin/ folder from zip in .distignore

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-10-16 20:46:35 +08:00
Joshua T Flowers cdfcd94358
Limit loading product block editor to admin pages and rest requests (#51954)
* Limit loading product block editor to admin pages and rest requests

* Add changelog entry
2024-10-16 06:57:06 -04:00
Karol Manijak 40a9656f7b
Product Collection: Fix JS error when client-side nav is disabled (#52039)
* Prevent accessing unexisting context in Product Collection

* Add changelog

* Remove unnecessary OR

* Change the approach to cleaner one

* Improve the condition
2024-10-16 12:03:29 +02:00
Vladimir Reznichenko e148229edb
[dev] Monorepo: consolidate syncpack config, regroup react and testing deps around react version (#52022) 2024-10-16 09:55:36 +02:00
Ilyas Foo 3237def0ef
Fix products base incorrectly matching pages with the same prefix (#52028)
* Fix product base incorrectly flagging as store pages on pages with same prefix

* Changelog

* Remove unused code

* Lint

* Lint

* Slightly moved some codes, improved comments, added extensive examples
2024-10-16 12:30:54 +08:00
Ilyas Foo e49009b9a9
Fix core profiler extensions page from selecting activated plugins (#52029)
* Add check to disallow selecting activated plugins

* Changelog
2024-10-16 11:00:36 +08:00
Maikel Perez 63fdf72645
New Product Editor: For Grouped Products, the pricing fields are displaying even though they shouldn't (#51987)
* Disable pricing fields when the product type is grouped

* Add changelog file

* Fix php linter error
2024-10-15 09:42:04 -03:00
nigeljamesstevenson 68819839d2
Delete plugins/woocommerce/changelog/51912-fix-rest-api-fatal 2024-10-15 13:19:28 +01:00
Mayisha c5ada6a753
Create HPOS tables if they do not exist when enabling compatibility mode (#51973)
* create HPOS tables if do not exist when enabling compat mode

* Add changefile(s) from automation for the following project(s): woocommerce

* remove undefined variable from log

* add newline

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-10-15 10:18:19 +02:00
Brian bca41d4c18
Check for empty value in get_order_id_by_order_key() (#40254)
* check for empty order key

* reverse flow

* Update class-wc-order-data-store-cpt.php

* tabs to spaces

* Add changefile(s) from automation for the following project(s): woocommerce

* spaces to tabs

* fix lint issue - 477 | ERROR | Whitespace found at end of line

* Add changefile(s) from automation for the following project(s): woocommerce

---------

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Vedanshu Jain <vedanshu.jain.2012@gmail.com>
2024-10-15 06:32:53 +00:00
Vladimir Reznichenko ebeefdd315
[dev] Monorepo: relax webpack TypeScript errors (turn into warnings) (#51993)
In this PR, we introduce and integrate a new webpack plugin, which hooks into `fork-ts-checker-webpack-plugin` and turns the specified TypeScript error codes into warnings to enable React 18 migration.
2024-10-15 08:21:56 +02:00
Sam Seay be85cd3dcb
Improve Twenty Twenty-Five theme compatibility for cart and checkout (#51725) 2024-10-15 16:47:20 +13:00
Luigi Teschio 0951f5fe1b
Fix `Error: Failed opening required '.../wp-content/plugins/woocommerce/src/StoreApi/Schemas/V1/AI/ProductsSchema.php` fatal error (#51912)
* Revert "CYS - Move the `private/patterns` endpoint to woocommerce admin API (#50400)"

This reverts commit 091141218e.

* Revert "CYS - Move the `ai/products` endpoint to woocommerce admin API (#50396)"

This reverts commit ae6f7837b2.

* fix endpoint

* Add changefile(s) from automation for the following project(s): woocommerce

* fix e2e test

* add declare strict type declaration

* Add strict_types to Products route class file

* Remove old TODO comment

---------

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
2024-10-14 11:07:38 +02:00
Ames Plant 65efc7398f
[Accessibility] Announce to screen readers when the variations have been cleared (#50183)
Co-authored-by: amesplant <95257231+amesplant-dmv@users.noreply.github.com>
Co-authored-by: Darin Kotter <darin.kotter@gmail.com>
Co-authored-by: Gabriel Manussakis <gabrielmanussakis@gmail.com>
Co-authored-by: Sam Seay <samueljseay@gmail.com>
Co-authored-by: Gabriel Manussakis <9420947+Manussakis@users.noreply.github.com>
2024-10-14 14:58:14 +13:00
Sam Seay 12d9486d31
Checkout: validate empty cart state before placing an order. (#51810) 2024-10-14 14:05:35 +13:00
Tomek Wytrębowicz e0e68866a4
Fix Analytics Dashboard rendering for malformed preferences (#51947) 2024-10-11 19:08:09 +02:00
Ron Rennick a16f11ad6e
Merge React Admin (#49647)
* moved files

* changed paths

* changelogs

* added eslintignore for admin subfolder as it has its own eslint command

---------

Co-authored-by: rjchow <me@rjchow.com>
2024-10-11 11:31:11 +08:00
Daniel Mallory 6f73f67630
Update broken docs links (#51967)
* Update broken docs links.

* Add changelog
2024-10-10 17:37:27 +01:00
Ricardo Metring 0107d1edad
Add to Cart with Options: Add Stepper option (#48876)
* Add To Cart Form: Improve the default style and add the Stepper style

* fix height button when no variation is selected

* not allow the user to set 0 as value of the input

* format css

* fix padding

* format css

* fix CSS

* unset margin to align with the button

* Fix quantity stepper layout

* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce

* improve layout editor side

* remove not necessary changelog

* improve escaping

* fix webpack configuration

* add E2E tests

---------

Co-authored-by: Luigi Teschio <gigitux@gmail.com>
Co-authored-by: github-actions <github-actions@github.com>
2024-10-10 16:36:49 +02:00
And Finally 485f00f97b
Fix media queries for iOS Simulator in in-app marketplace (#51979)
* Replace `@media (width <= $breakpoint-medium)` queries with `@media screen and (max-width: $breakpoint-medium)`. iOS Simulator doesn't seem to support the previous query syntax.

* Add changefile(s) from automation for the following project(s): woocommerce

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-10-10 09:37:47 +01:00
Alfredo Sumaran 6a5a4f14d1
Improve HPOS checkbox description for better understanding (#51962)
* Improve HPOS checkbox description for better understanding

* Update description

* Add changelog entry
2024-10-09 10:08:05 -05:00
Vlad Olaru 1aeb7486d5
Update WooPayments Payments task install and/or activate behavior (#51956)
* Ignore payment gateway suggestion ID variation part

When searching for the current gateway ID we will ignore the
part after :.

* Use a connect link when no WCPay account connected

This allows us more control over where to direct the user.

* Use the individual payment gateway enablement flow for WCPay

* Add changelog

* Add changelog

* Fix lint errors

* Prevent recalling installAndActivate when autoinstalling

If we have installAndActivate as a dependency, when isRequesting becomes false
it will cause a second, needless installAndActivate call and we end up with two
snackbar notices about plugins being installed and/or activated.

* Replace deprecated Button props

* Make the plugins installed&activated notice message more informative

* Fix object check

* Add changelog

* Remove WooPayments task item fill and use standard task item

* refact: Separate get suggestion

* Provide WCPay task action from PHP

* Don't point directly to WCPay pages, use connect links instead

* Remove WCPay action URL logic from the main Payments task

If WooPayments is supported, the dedicated task will superseed
the default payments task. There is no need to have special action
URLs.

* Lint fixes

* Use a WCPay connect link to defer to the client logic

* Fix WCPay task link when incentive is available

* Lint fixes
2024-10-09 17:09:46 +03:00
Jonathan Lane 5110f71382
Update block checkout tests and product creation tests for WP 6.7 compatibility (#51965)
Co-authored-by: Jon Lane <jon.lane@automattic.com>
2024-10-09 07:17:47 +03:00
Adrian Moldovan cb77b90622
[e2e tests] Fix broken gloabal-teardown with WP 6.7-beta1 (#51958) 2024-10-08 19:21:26 +03:00
Joshua T Flowers ee9074c8a9
Cache block pattern data (#51802)
* Cache block pattern data to optimize pattern registration

* Add tests around block pattern registration

* Test cached block pattern registration

* Add tests around invalid cached data

* Remove unused mock package

* Add changelog entry

* Fix up linting issues

* Bump transient time up to one month
2024-10-07 22:33:57 -04:00
Naman Malhotra 9d2ab83b8a
New CFE flow (#51182)
* Create changelog during build step

* removed changelog generation during code freeze step

* lint fixes

* modified monorepo messaging

* Added changelog

* added workflow dispatch

* version override

* renamed file

* New CFE workflow (#51207)

* New CFE workflow

* added slack notifications

* lint fixes

* continue workflow only if the label is present

* Bump to github scripts v7

* Moved notification to core releases daily channel

* New CFE workflow notifications (#51466)

* New CFE workflow notifications

* added notification for woo release slack channel

* add woo core daily slack channel

* remove github debug

* change notification channel to Woo core releases

* New CFE workflow GitHub template (#51468)

* New CFE github template

* review changes

* review changes
2024-10-08 03:41:03 +07:00
Jonathan Lane 33f494673a
Implement WC reset during e2e setup on external environments (#51720)
* Re-implement changes from branch

* Add changelog

---------

Co-authored-by: Jon Lane <jon.lane@automattic.com>
2024-10-07 22:18:52 +03:00
Jonathan Lane 82620000d4
Update locators for QIT compatibility (#51945) 2024-10-07 14:14:09 -05:00
Mike Jolley 6604e6bad2
Delayed Account Creation Test Coverage (#51852)
* Sample test

* Jest tests

* Fix spinner

* Add e2e test to check registration works

* Classes were renamed

* wc-block-order-confirmation--create-account-button remove double hyphen

* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce

* woocommerce-blocks-test-enable-experimental-features

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-10-07 11:12:37 +01:00
Roy Ho 701d9341dd
Skip flaky tests for now (#51889)
* Skip flaky tests for now

* Add changefile(s) from automation for the following project(s): woocommerce-blocks

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-10-06 11:56:23 -05:00
Roy Ho 7542487156
Product Collection: Remove best selling filter option (#51865)
* Remove best selling filter option

* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce

* Add tiebreak fallback in case total_sales is 0 which prevents random order

* Remove test_merging_order_by_popularity_queries as it is not needed

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-10-06 11:53:27 -05:00
Michal Iwanow 72ab844855
Fix clearing search input in In-App Marketplace (#51916)
* Fix clearing search input in In-App Marketplace

* Add changefile(s) from automation for the following project(s): woocommerce

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-10-06 10:13:56 -05:00
Narendra Sishodiya 37903778fb
Replace Congratulations view Buttons with Links (#51654)
* ../woocommerce-admin/client/customize-store/transitional/index.tsx

* Delete plugins/woocommerce/bin/composer/phpcs/composer.lock

* Add changefile(s) from automation for the following project(s): woocommerce

* Delete plugins/woocommerce/bin/composer/phpunit/composer.lock

* Delete plugins/woocommerce/composer.lock

* Reverted the changes

* Reverted the changes

* Reverted the changes

* Reverted the changes

* Reverted the changes

* Reverted the changes

* Reverted the changes

* Implemented Suggested Changes

* Implemented Suggested Changes

* IMplemented the Suggestions

* Removed navigateOrParent as it is not needed.

* Updated test case in  index.test.tsx

* Revert the change

* Implemented suggestions

* Update transitional.spec.js

* Update transitional.spec.js

---------

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Karol Manijak <20098064+kmanijak@users.noreply.github.com>
Co-authored-by: root <root@LAPTOP-I3Q9TGEL>
2024-10-04 17:10:24 +02:00
Néstor Soriano cbf98a0912
Add the Cost of Goods Sold related code and REST APIs for the product class (#51675)
* Fix a bug in FeaturesController.

The UI for a non-legacy feature was showing up greyed out
("UI disabled") when the setting that controls the feature
was off ("feature disabled").

* Add the CostOfGoodsSoldController class.

* Add COGS related properties/methods to the product and variation classes.
Also update the data stores appropriately.

COGS values will be stored in a "_cogs_total_value" product meta key,
but only when the value is not zero.

For variations, a flag indicating if the COGS value overrides
the parent value will be stored in a "_cogs_value_overrides_parent"
product meta key, but only when the value is true (stored as "yes").

* Add filters to customize the COGS related data as it gets loaded or saved.

* Add COGS related functionality to the REST API
(get/create/modify products and variations endpoints).
2024-10-04 11:57:52 +02:00
Néstor Soriano ddfa425062
Modify product import file check to use the WP filesystem API (#51540)
* Modify product import file check to use the WP filesystem API.

Otherwise it doesn't work on environments that don't have
a direct filesystem like e.g. WordPress VIP.

* Add the FilesystemUtil::get_wp_filesystem_method_or_direct method
2024-10-04 08:50:54 +02:00
Roy Ho 7c48112d4a
Fix product collection flaky sales filter option (#51897)
* Fix product collection flaky sales filter option

* Add changefile(s) from automation for the following project(s): woocommerce

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-10-03 17:10:45 -07:00
Amin Abdolrezapoor ee4f1aad3d
Fix wrong type passed to `add_meta_boxes` action (#51598)
* Fix wrong type passed to `add_meta_boxes` action

* revert changed parameter of `do_meta_boxes` to `WP_Post` object

* Add `woocommerce_order_editor_add_meta_boxes` in order editor

* Move changelog entry to correct directory
2024-10-03 09:53:46 -07:00
Boro Sitnikovski d3765b43c0
Add BFCM promo (#51739)
* Populate `window.wcMarketplace` for Marketing > Coupons

* TEST CODE: Add promotions dummy data to the endpoint for now

See [this comment](https://github.com/Automattic/woocommerce.com/issues/21783#issuecomment-2376471712) as to how we plan to manage this through WCCOM

* Initial implementation of the `<PromoCard>` component

This commit does the following:

- Implement the `PromoCard` component
- Refactor the existing `Promotions` component
    - Extract types
    - Add support for conditional rendering based on `pathname`
    - Accept optional parameter `promoCardOnly`
- Renders `PromoCard` wherever needed, as requested in the project thread.

Some remaining TODOs:

1. Dismiss functionality
2. Tracking
3. Figma design adjustments
    - CSS styling (Flexbox in Marketplace, etc.)
    - Percent image, wherever needed
    - Background image
4. BWC testing (e.g. ensuring that "Get more for your money" banner still works)

* Make sure that WCCOM also returns path so that earlier versions of in-app marketplace don't break (path undefined error)

* Update T&C link

After https://github.com/Automattic/woocommerce.com/issues/21840

* Implement promo banner dismissal logic and tracks

* Styling the WooCommerce > Extensions version of the promo component.

- Tweaked data on `class-wc-admin-assets.php` to pass `style` and `icon` attributes for that promo.
- Moved promo on this page from the marketplace `Header` component to the `Content`, above the Sales Banner notices.
- Deleted `percent.svg` and moved its content into a React component.
- CSS tweaks for this style of promo.
- Changes to elements of `PromoCard` component to allow the layout for this style.

* Fixed some TypeScript issues.

- Added guard condition in case `promotion.id` is undefined.
- Returning null if it isn't - but below `useState` hook, so we conform to rules of hooks.
- Setting default value for `promotion.cta_label` to satisfy TypeScript, which expects a node.

Style tweaks to `.promo-cta`. Vertical centering of text, hover colour, margins.

* Remove unnecessary unique identifier for each promo, and use a smarter way (URIs) to gather the visibility data

* Lint

* Revert test code

* Changelog

* Better code comments

* Changed `promoCardOnly` attribute of `Promotions` to `format`, to allow for more types in future.

* Update plugins/woocommerce-admin/client/marketplace/components/promotions/promotions.tsx

Co-authored-by: Boro Sitnikovski <buritomath@gmail.com>

* Styling promo cards at different breakpoints.
Moved homescreen promo to after store management links.

* Added condition to merge array of promos with the main `$promotions` array.

* Added `useEffect` so we only record Track event for view of promotion once.
Changed Tracks prefix to the shorter `marketplace_promo_`.

* Added Tracks events for both formats of promotions, `promo-card`, and the original `notice`.

* Merging two style blocks.

* Passing `format` to `recordEvent` instead of hard-coding it.

* Addressing linter errors.

* Moved operation merging promos into the main array into a separate method for greater clarity.

* Moved Promotions component on WooCommerce > Home to below task list.

* Styling tweaks.
Increased schedule of `woocommerce_marketplace_cron_fetch_promotions` cron job to twice daily.
Added guard conditions in `Promotions` in case `window.wcMarketplace.promotions` isn't defined or isn't an array.

* Reduced SVG size to 72px.

* Fixing linter error.

* Style tweaks. Using WP components colour vars for CTA and dismiss links.

* Fixing linter error.

* Reverting change to `schedule_cron_event`, as this method will not be present if only this branch is cherry-picked.

---------

Co-authored-by: And Finally <andfinally@users.noreply.github.com>
2024-10-03 15:36:06 +01:00
Adrian Moldovan 2276fded32
[ci-jobs] Add support for beta and RC WordPress versions (#51814) 2024-10-03 11:28:47 +03:00
Karol Manijak 7d9dc8b08d
Remove Product Collection wrapping div (#51733)
* Remove Product Collection wrpping div

* Add changelog

---------

Co-authored-by: Christopher Allford <6451942+ObliviousHarmony@users.noreply.github.com>
2024-10-03 08:05:04 +02:00
Ivan Stojadinov 24a2e43bd4
[e2e] External - Consolidate `playwright.config.js` for WPCOM (#51857)
* Merge all listed /merchant files

* Add changefile(s) from automation for the following project(s): woocommerce

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-10-02 23:15:28 +02:00
Alba Rincón 5c57da5e82
Add a retry mechanism to obtain the lock for inserting products through the API (#51735)
* Add a retry mechanism to the query to obtain the lock for inserting products in the API

* Add changefile(s) from automation for the following project(s): woocommerce

* Log errors after failed attempts and delay 10ms for each attempt

* Fix lint

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-10-02 09:06:40 -07:00
Albert Juhé Lluveras ecfafb50b6
Add Products by Brand template label (#51846)
* Add Products by Brand user-friendly title to the New template popup

* Add changelog file

* Update WC_Brands class version
2024-10-02 16:24:45 +02:00
Maikel Perez 4d7d049477
CYS: Investigate multiple requests being made to the patterns endpoint (#51819)
* Notify wc/admin/options store changes after the data is saved in the server and not before

* Add changelog file

* Remove the subscription to the OPTIONS_STORE_NAME since its trigered many times, using useSelect instead

* Add changelog file
2024-10-02 11:08:49 -03:00
github-actions[bot] 9be9fd9707
Delete changelog files based on PR 51664 (#51850)
Delete changelog files for 51664

Co-authored-by: WooCommerce Bot <no-reply@woocommerce.com>
2024-10-02 06:44:59 -07:00
Roy Ho 31c675f93d
Add order by sales filter option to product collection (#51790)
* Add order by sales filter option to product collection

* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-10-02 06:16:16 -07:00
Nathan Silveira 682f3fbe76
Add Notice generic block for the new product editor (#51740)
* Add Notice generic block for the new product editor

* Create reusable block for Notices

* Add changelog

* Fix wrong generic type
2024-10-02 10:10:57 -03:00
Tung Du f50620039e
Fix: React error in filter blocks due to duplicated renders (#51840) 2024-10-02 19:20:10 +07:00
Roy Ho 64df8a22c5
Replace __experimentalGetGlobalBlocksByName with stable getBlocksByName (#51773)
* Replace __experimentalGetGlobalBlocksByName with stable getBlocksByName

* Add changefile(s) from automation for the following project(s): woocommerce-blocks

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-10-02 05:19:42 -07:00
Ivan Stojadinov 9c514b3949
[e2e] External - Expand WPCOM suite, part 4 (#51424)
* Skip `can remove a coupon` - error 500

* Make elements more specific

* Skip two tests from order-emails.spec.js

* Skip `WooCommerce Page Load`

* Expand WPCOM suite

* Change hardcoded email address

* Unskip tests in order-emails.spec.js

* Add changefile(s) from automation for the following project(s): woocommerce

* ESLint updates

* Check different locator for Marketing channels

* Skip "can receive completed email" for now

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-10-02 11:23:07 +02:00
Adrian Moldovan a7e6011816
[blocks e2e tests] Increase the shards number to 10 (#51842) 2024-10-02 08:42:53 +00:00
Arthur Normand 73e7d571ed
Fix: show correct attribute and price filter data on the category/tag template (#50341) 2024-10-02 08:16:50 +00:00
Tung Du 7bef8af7f2
[Experimental] Reliability fixes for new filter blocks (#51642) 2024-10-02 14:56:50 +07:00
Tung Du 5b0d44b906
Product Collection: fix price range posts clauses (#51676) 2024-10-02 05:30:26 +00:00
Christopher Allford b0e0a733d6
WooCommerce Asset Build Aliases (#43433) 2024-10-01 10:32:24 -07:00
Roy Ho 516b55b734
Ensure Product Collection filter names are consistently capitalized (#51779)
* Ensure Product Collection filter names are consistently capitalized

* Add changefile(s) from automation for the following project(s): woocommerce-blocks

* Update e2e tests

* Add additional types and return empty string

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-10-01 06:56:59 -07:00
Adrian Duffell 53a56cca77
Add core feature for site visibility badge (#51664)
* Add site_visibility_badge feature

* Update feature check on badge

Previously the WooCommerce Admin LYS feature flag was used, however this is slated to be removed in an upcoming release. This is updated to use the core level feature flag for the badge.

* Add changelog

* Fix lint issues

* Revert "Fix lint issues"

This reverts commit cf05d2b74f.

* Lint fixes

* lint
2024-10-01 15:40:43 +08:00
Vladimir Reznichenko ce5f7cb471
[dev] CI: drop baseline caching in perfromance metrics job (#51804) 2024-10-01 09:05:53 +02:00
Alexandre Lara e48b0352fe
Blocks: Add missing `wp-block-woocommerce-{name}` to Add to Cart with Options, Product Image, Product Rating, Product Rating Stars, Product Rating Counter and Product Image (#51558)
* Add missing classnames for WP blocks

* Add changefile(s) from automation for the following project(s): woocommerce

* Fix unwanted extra whitespace within class property

* Remove unnecessary whitespace in class attribute for the Product Image block

* Remove unnecessary whitespace in class attribute for the Product Rating block

* Remove unnecessary whitespace in class attribute for the Product Rating blocks

* Fix php lint errors

---------

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Sam Seay <samueljseay@gmail.com>
2024-09-30 12:41:20 -03:00
github-actions[bot] 632b4e98f4
Delete changelog files based on PR 51577 (#51777)
Delete changelog files for 51577

Co-authored-by: WooCommerce Bot <no-reply@woocommerce.com>
2024-09-30 15:50:59 +01:00
And Finally a64e227fdc
Fetch promotions in a WP Cron job (#51650)
* Getting promotions in a WP Cron job to make them async. We don't want this request to affect the performance of wp-admin. See https://github.com/woocommerce/woocommerce/pull/47262#pullrequestreview-2241835763.

* Changelog.

* Made callback method `update_promotions` public.

* Linter errors. Whitespace.
2024-09-30 15:49:58 +01:00
Vladimir Reznichenko d3b0f153ad
[dev] CI: feedback on updated perfromance metrics job (#51772) 2024-09-30 16:39:16 +02:00
github-actions[bot] 93b2ceb044
Delete changelog files based on PR 51734 (#51775)
Delete changelog files for 51734

Co-authored-by: WooCommerce Bot <no-reply@woocommerce.com>
2024-09-30 14:55:18 +01:00
Boro Sitnikovski fae492632a
Fix subscription status and action items for free (lifetime) subs (#51628)
* Fix subscription status and action items for free (lifetime) subs

* Changelog

* Lint
2024-09-30 15:14:39 +02:00
Bart Kalisz 52d0b8c17d
Blocks E2E: Make test plugin namespace consistent (#51771) 2024-09-30 15:04:08 +02:00
louwie17 3826b8b2c3
Fix product form metabox issue on Safari 18.0 (#51734)
* Fix for styling issue in Safari 18

* Add changelog
2024-09-30 11:48:14 +00:00
github-actions[bot] 5907114d6e
Delete changelog files based on PR 51728 (#51770)
Delete changelog files for 51728

Co-authored-by: WooCommerce Bot <no-reply@woocommerce.com>
2024-09-30 12:07:27 +01:00
Mike Jolley b852aff696
Remove alert role from informational notices (#51651)
* Remove alert role from informational notices

* changelog

* Status role
2024-09-30 11:54:34 +01:00
Jason Kytros 08b8dd99cc
Revert packages initialization timeline change (#51728)
* Revert packages initialization timeline change

* Add changefile(s) from automation for the following project(s): woocommerce

* Fix lint errors

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-30 11:17:17 +01:00
Ivan Stojadinov 9b3073999b
[e2e] External - Expand WPCOM suite, part 5 (#51745)
* Handle notice if displayed

* Make `Reply to comment` more unique, and wait for comment area to disappear

* Skip on WPCOM - error 404

* Fix copy/paste error

* Make area more unique

* Add changefile(s) from automation for the following project(s): woocommerce

* Expand WPCOM suite

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-30 11:17:07 +02:00
Weston Ruter 38a2b5b3d8
Coming Soon: Return empty string from template_include filter instead of null to avoid PHP fatal error with conflicting plugins using strict types (#51751)
* Return empty string from template_include filter instead of null

* Update phpdoc return tag

* Add changefile(s) from automation for the following project(s): woocommerce

---------

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Alba Rincón <albarin@users.noreply.github.com>
2024-09-30 10:53:57 +02:00
Vladimir Reznichenko bc8067a1ce
[dev] CI: new version of perfromance metrics job (take 2) (#51710)
In this PR, we are re-iterating the job speedup and leveraging single wp-instance, incremental builds, and baseline reports caching. The original benchmarking tool is still available but bypassed as we evaluate results for this iteration approach.
2024-09-30 09:57:52 +02:00
Bart Kalisz bdaebbb69a
Blocks E2E: Fix db connection issues (#51658) 2024-09-30 09:54:46 +02:00
Sam Seay 19438505cf
#50557 - Order summary Shipping updates (#51608) 2024-09-30 17:53:01 +13:00
Maikel Perez 2e9ec00dd2
CYS: color swatches are not accessible (#51715)
* Add a11y to the color swatches

* Add changelog file
2024-09-28 13:25:55 -03:00
Alejandro Iglesias de13a47a2a
Pass extra CSS classes to the block (#50662)
* Pass extra CSS classes to the block

* get className using wrapper method

* amends from CR

* remove not needed class

* Merge remote-tracking branch 'upstream/trunk' into fix/add-extra-css-classes-to-product-image

* add missing variables

* fix lint error

* add changelog

* remove not necessary code

* add extra_classses parameter

---------

Co-authored-by: Luigi Teschio <gigitux@gmail.com>
2024-09-28 08:43:02 +02:00
Paul Sealock c8a8ede22c
[Navigation] Remove feature (#51559) 2024-09-28 13:15:27 +12:00
Veljko V. ac7321e5b7
E2E Fix shopper mini-cart test (#51741) 2024-09-27 22:16:21 +02:00
Mike Jolley c0c162ee61
Delayed account creation: Use Block Hooks to inject block into the Order Confirmation template (#51582)
* Force block to be inserted after account summary

* Clean up block hooks

* Changelog

* Escape strings in default content

* Init $notice to prevent PHP notice
2024-09-27 15:13:26 +01:00
Mike Jolley 63637c0235
Fix postcode validation within the legacy cart show_shipping method (#51623)
* Postcode should be compared to empty string to prevent `0` passing.

* Changelog
2024-09-27 11:45:33 +01:00
louwie17 536bb4627e
Remove unnecessary line product button (#51729)
* Remove copy/paste line

* Add changelog
2024-09-27 10:06:21 +00:00
Tung Du 870111d8af
Product Collection: add price sorting options (#51670)
Co-authored-by: Manish Menaria <the.manish.menaria@gmail.com>
2024-09-27 05:22:37 +00:00
Fernando Marichal 98053269ac
Add Dimensions controls to Product Collection block (#51420)
* Add dimensions to product collection

* Refactor width-options-control

* Add product-template changes

* Fix dimensions

* Add changelog

* Remove minHeight

* Remove className addition

* Small refactor in ProductTemplate

* Remove variable

* Fix lint

* undo product-template changes

* Add ProductCollection fixed width

* Fix set_fixed_width_style param comment

* Deconstruct WidthOptionsControl props

* Add line deleted by mistake

* Fix editor alignment

* Fix styles

* Add dimensions to templates and patterns

* Make styles setting more defensive

* Update plugins/woocommerce-blocks/assets/js/blocks/product-collection/edit/inspector-controls/width-options-control.tsx

Co-authored-by: Karol Manijak <20098064+kmanijak@users.noreply.github.com>

---------

Co-authored-by: Karol Manijak <20098064+kmanijak@users.noreply.github.com>
2024-09-27 05:04:16 +02:00
Ames Plant 6f1ac95c8d
[Accessibility] Add aria-label for page numbers within pagination (#50447)
* Add aria-label for page numbers within pagination

* Add changelog

* Fix innerText to camel case format

* Update plugins/woocommerce/src/Blocks/BlockTypes/ProductCollection.php

Co-authored-by: Darin Kotter <darin.kotter@gmail.com>

* Add screen reader text to the page numbers in the pagination partial

* Fix linting spacing errors

* Fix linting space remaining

* Bump template on pagination template

* Update plugins/woocommerce/templates/loop/pagination.php

Co-authored-by: Karol Manijak <20098064+kmanijak@users.noreply.github.com>

* Add aria-label to pagination numbers

* Improve logic to get current page number

* Rename $r parameter to $html

* Fix post-increment php lint error

* Account for two dots elements to add aria-label to page link

---------

Co-authored-by: amesplant <95257231+amesplant-dmv@users.noreply.github.com>
Co-authored-by: Darin Kotter <darin.kotter@gmail.com>
Co-authored-by: Karol Manijak <20098064+kmanijak@users.noreply.github.com>
Co-authored-by: Gabriel Manussakis <9420947+Manussakis@users.noreply.github.com>
Co-authored-by: Gabriel Manussakis <gabrielmanussakis@gmail.com>
2024-09-27 02:42:58 +02:00
Alexandre Lara 4e0ebd83f4
WooCommerce > Block themes: Remove underline from sale prices (#51462)
* Remove underline from sale prices in WooCommerce block themes

* Add changefile(s) from automation for the following project(s): woocommerce

* Improve css properties

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-26 15:26:57 -03:00
Jorge M 6ecf57df5a
Include global_unique_id in product export columns (#51703)
* Add global_unique_id to Exporter

* Add changefile(s) from automation for the following project(s): woocommerce

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-26 18:03:14 +02:00
louwie17 4601416da2
Fix/51435 product collection flaky e2e test (#51663)
* Add a couple checks so the test doesn't move ahead to quickly

* Add changelog

* Remove visible condition
2024-09-26 12:03:06 -03:00
And Finally 729ad1780a
Change aspect ratio of images in theme cards in in-app marketplace (#51705)
* We are now using 16:9 images for themes in the in-app marketplace, so we need to change the image ratio.

* Add changefile(s) from automation for the following project(s): woocommerce

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-26 14:55:09 +01:00
Adrian Moldovan 645832da4b
[e2e tests] Remove basic-setup.spec.js (#51707)
Co-authored-by: Ivan Stojadinov <ivan.stojadinov@automattic.com>
2024-09-26 12:23:49 +00:00
Veljko V. 9b91256654
[e2e] External - Unskip analytics-data test on external sites (#51681)
Unskip analytics data test on external sites
2024-09-26 14:09:46 +02:00
Adrian Moldovan 294255b274
[e2e tests] Tag e2e tests that need to be reviewed (#51287) 2024-09-26 13:57:22 +02:00
Adrian Moldovan d9c42fbd27
[e2e tests] Remove test: can make sure WooCommerce is activated (#51706) 2024-09-26 14:57:07 +03:00
Albert Juhé Lluveras 97a0fc02ec
Add theme type to System Status Report (#51682)
* Add theme type to System Status Report

* Add changelog file

* Update tests

* Linting
2024-09-26 08:55:08 -03:00
Cem Ünalan 58434b8769
Marketplace: hide subscriptions with maxed connections and fix "not connected" badge (#51610)
* In-App Marketplace: hide subscriptions for maxed out connections

If we don't add this check, subscriptions with no connection allowances,
still show up in the "Available to Use" table. This can be misleading.

* In-App Marketplace: Fix My Subscriptions table row statuses

When there are multiple subscriptions for a product, we can't manage the
state between "installed" and "available to use". This commit separates
some of the functionality between the tables in the My Subscriptions
page.

1) Don't show "not connected" badge on the "available to use" table
2) Don't show the "update" button on the "available to use" table

We can't test the number two, because I noticed we no longer send the
verison number in the WCCOM endpoint

* Add changefile(s) from automation for the following project(s): woocommerce

* Marketplace: remove unused useEffect

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-26 11:37:44 +00:00
Veljko V. 15f29b2ace
[e2e] External - Make themes util compatible with external envs and unskip relevant tests (#51509)
* Make themes util compatible with ext env and unskip relevant tests

* Add theme activation in test helper apis and update util

* Fix whitespace lint issue

* Make the util compatible with local and external envs

* Rename to activate theme

* Add theme name empty check

* Simplify theme util and update relevant tests

* Remove only from the test

* Add missing brackets to the shopper test

* Include error handling to see failure on  CI

* Include themes installation in the test setup

* Revert and refact util helper
2024-09-26 10:00:31 +02:00
louwie17 97620e2743
Add WooCommerce blocks to live storybook (#51679)
* Fix WooCommerce Blocks storybook

* Add blocks storybook to main storybook

* Add post build for iframe.html

* Only add WooCommerce Blocks when building storybook

* Use manager file again and add blocks build for storybook build

* Add changelog
2024-09-26 04:10:37 -03:00
louwie17 64c583fd73
Add missing wp block woocommerce classname (#51617)
* Update CatalogSorting classname to include wp-block class

* Add wp-block class name to the product button block

* Add wp-block classname to the product average rating block

* Add changelog

* Update changelog

* Fix lint issues
2024-09-26 04:00:11 -03:00
Gabriel Manussakis b017579815
[Accessibility] Fix typos in woocommerce-blocks e2e tests (#50738)
Co-authored-by: Tung Du <dinhtungdu@gmail.com>
2024-09-26 06:39:49 +00:00
Karol Manijak c687cdfbb6
Stop using unknown option for rsync during build process (#51696)
* Stop using unknown option for rsync during build process
* Add changelog
2024-09-26 07:07:19 +02:00
Barry Hughes 336e4f2d8a
Fix reference to `WC_Site_Tracking` (#51525)
Fix reference to `WC_Site_Tracking`.
2024-09-25 19:55:30 -07:00
Sam Seay 663a32f57a
50555 - Update button copy and change to outline button (#51609) 2024-09-26 13:17:38 +12:00
Sam Seay 018b73cd58
Add an option to mini cart block to navigate directly to checkout. (#51283) 2024-09-26 13:16:21 +12:00
Barry Hughes 37bb36994b
Update stable tag to 9.3.3 (#51692)
woorelease: Update stable tag to 9.3.3
2024-09-25 10:34:52 -07:00
Seghir Nadir 2f2d98ed45
Preserve dash in Mongolia postcodes (#51674)
* Preserve dash in Mongolia postcodes

* Add changefile(s) from automation for the following project(s): woocommerce

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-25 17:24:52 +02:00
David Garcia Watkins bc56050569
[wcml-4848] Fixes for incorrect blocks in WC's refunds policy page (#51620)
* [wcml-4848] Fixes for incorrect blocks in WC's refunds policy page

Closes #51618

* Add changefile(s) from automation for the following project(s): woocommerce

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-25 15:42:17 +02:00
Vladimir Reznichenko 3f4873bf3f
[dev] Monorepo: core build steps tweaks (copying assets) (#51612)
In this PR we aim to reduce filesystem modification when copying assets into the core by splitting copy tasks in three (one per source package) and using rsync over remove/copy combo.
2024-09-25 15:13:14 +02:00
Albert Juhé Lluveras 49fa0a7b1a
Allow setting the Shop page as the homepage in block themes (#51626)
* Allow settings the Shop page as the homepage in block themes

* Linting

* Add changelog file

* Fix SingleProductTemplateTests docblock

* Add unit tests

* Fix missing Shop page id

* Fix missing Shop page id (II)

* Fix missing Shop page id (III)

* Cleanup
2024-09-25 10:06:31 +02:00
Corey McKrill c4e758bab6
Redirect to canonical product permalink (#51637)
* Redirect to canonical product permalink

This ensures that if product permalinks are set to include the
%product_cat% replacement token, arbitrary values for that part of the
URL will redirect to the canonical product category value, rather than
successfully loading the single product page.

Fixes #24244

* phpcs exception

* Update plugins/woocommerce/changelog/fix-24244-custom-permalink

Co-authored-by: Barry Hughes <3594411+barryhughes@users.noreply.github.com>
2024-09-24 14:07:08 -07:00
Jonathan Lane 30ffbce09a
WC Cleanup plugin (#51593)
* WC cleanup plugin

* Fix linter errors

* More linter fixes

* Clean up spacing

* File doc comment

* Remaining linter problems

* Linter warnings too.  Sigh.

* Media cleanup, DB table cleanup, tax rate cleanup

* Exclude media files used in tests from cleanup

* Exclude media files regardless of extension

---------

Co-authored-by: Jon Lane <jon.lane@automattic.com>
2024-09-24 13:31:47 -07:00
Moon 12c2843458
Coming soon: Do not render header and footer if the theme does not support FSE (#51633)
* Render coming-soon template content without header and footer if the current theme is not a fse

* Check for store pages only

* Add changefile(s) from automation for the following project(s): woocommerce

* Make sure get_the_block_template_html exist

* Lint fixes

* Lint fixes

* Lint fixes

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-24 19:53:31 +00:00
louwie17 a979d95130
Replace setTimeout with callback function for more reliable E2E tests (#51653)
* Replace setTimeout with callback function for more reliable E2E tests

* Add changelog

* Remove removePreview logic from product collection page
2024-09-24 12:24:43 -03:00
github-actions[bot] 9f5bc4bc4e
Delete changelog files based on PR 51630 (#51656)
Delete changelog files for 51630

Co-authored-by: WooCommerce Bot <no-reply@woocommerce.com>
2024-09-24 19:40:52 +07:00
Thomas Roberts 94460bb394
Check if the order needs shipping before validating shipping address (#51630) 2024-09-24 12:53:24 +01:00
Chi-Hsuan Huang 442cb4e81b
[Beta tester] Add tool for changing woocommerce.com base URL (#51537)
* Refactor WooCommerce Helper class

This commit refactors the WooCommerce Helper class in the `class-wc-helper.php` file. The changes include:
- Updating the comparison operator from `==` to `===` in the `activate_plugin` condition.
- Renaming the `get_install_base_url` method to `get_woocommerce_com_base_url`.
- Adding a new `get_install_base_url` method that returns the base URL for the plugin auto installer.

These changes improve the readability and maintainability of the code.

* Refactor data source poller classes for marketing recommendations, payment gateway suggestions, shipping partner suggestions, inbox notifications, remote free extensions, and WooPayments promotion

- Refactor the data source poller classes for marketing recommendations, payment gateway suggestions, shipping partner suggestions, inbox notifications, remote free extensions, and WooPayments promotion to use a dynamic base URL for the data sources.
- Update the deprecated DATA_SOURCES constant to an empty array in each class.
- Add a new method get_data_sources() in each class to return the updated data sources with the dynamic base URL.
- Modify the constructor of each class to use the get_data_sources() method instead of the deprecated DATA_SOURCES constant.

* Add changelog

* Add set-woocom-base-url tool

* Add changelog

* Rename woo_com and woocom -> wccom

* Change to falsy check !url

* Change woocom/WOOCOM to wccom/WCCOM

* Change default value to https://woocommerce.com/

---------

Co-authored-by: Ilyas Foo <foo.ilyas@gmail.com>
2024-09-24 19:37:57 +08:00
Jason Kytros 85a048f1fd
Resolved fatal error when applying Brands-restricted coupon (#51577)
* Resolved fatal error when applying Brands-restricted coupon

* Add changefile(s) from automation for the following project(s): woocommerce

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-24 14:16:03 +03:00
github-actions[bot] 4858ae62aa
Delete changelog files based on PR 51631 (#51646)
Delete changelog files for 51631

Co-authored-by: WooCommerce Bot <no-reply@woocommerce.com>
2024-09-24 18:01:46 +07:00
github-actions[bot] ccbd29054a
Release: Remove 9.4 change files (#51530)
Delete changelog files from 9.4 release

Co-authored-by: WooCommerce Bot <no-reply@woocommerce.com>
2024-09-24 18:00:08 +07:00
github-actions[bot] 045d174fc0
Prep trunk for 9.5 cycle (#51529)
Prep trunk for 9.5 cycle with version bump to 9.5.0-dev

Co-authored-by: WooCommerce Bot <no-reply@woocommerce.com>
2024-09-24 17:59:48 +07:00
Manish Menaria a55812eba2
Product Collection: Update heading for Hand-Picked collection (#51643)
* Update heading for Hand-Picked collection

- Added 'recommend' to the keywords array.
- Changed heading content from 'Hand-Picked' to 'Recommended products'.

* Add changefile(s) from automation for the following project(s): woocommerce-blocks

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-24 16:14:07 +05:30
Vladimir Reznichenko bca89cb14f
[dev] pnpm install: speedup postinstall hooks a bit (#51538)
In this PR, we aim to improve the speed of ppm installs by making changes in ppm configuration and post-install hooks. The main principle behind the changes is to leverage the identified parallelization potential.
2024-09-24 08:34:46 +02:00
RJ 59aa209761
enhance/create wrapper for all external func using proxy (#51432)
* Create a wrapper function for all external dependency function calls for safety

* Add changelog

* Improve remote logger

* Update RemoteLogger.php

* Add changelog

* enhanced it to use proxy instead of individual wrappers

* lint

* lint 8

* Revert blocking=true change

* pr feedback

* fixed

---------

Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
2024-09-24 10:49:47 +08:00
Barry Hughes 2a0ad34d99
Product CSV Importer > Restore expected default number of lines-to-import per batch (#51631)
Restore expected default number of lines-to-import per batch (product CSV import).
2024-09-23 14:46:01 -07:00
Tomek Wytrębowicz bef65063eb
Unhardcode menu titles for in page header (#51606) 2024-09-23 21:27:27 +02:00
Tomek Wytrębowicz 537818de6f
Ignore Analytics in the legacy `woocommerce_admin_reports` (#51592) 2024-09-23 21:11:56 +02:00
Mike Jolley 2c816457a9
Fix: get_checkout_fields() should return empty array if requested fieldset is not defined (#51508)
* If there is no fieldset, return an empty array instead of throwing notice

* changelog
2024-09-23 18:02:21 +02:00
Narendra Sishodiya 3ac409e03f
Fixed Fatal error call to a member function `is_empty() in mini-cart.php` (#51285)
* Fixed Fatal error call to a member function is_empty() in mini-cart.php:24

* Updated Template Version

* Add changefile(s) from automation for the following project(s): woocommerce

---------

Co-authored-by: Néstor Soriano <konamiman@konamiman.com>
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
2024-09-23 17:59:47 +02:00
Joshua T Flowers 10b85cefb8
Only register block assets on the frontend during block render (#51517)
* Only register block assets on the frontend during block render

* Add changelog entry

* Add wc-blocks-registry as a dependency to product collection tester script

* Update docs manifest
2024-09-23 11:39:33 -04:00
github-actions[bot] 9647db4bb6
Delete changelog files based on PR 51541 (#51616)
Delete changelog files for 51541

Co-authored-by: WooCommerce Bot <no-reply@woocommerce.com>
2024-09-23 22:02:50 +07:00
Seghir Nadir 07a0b8477b
Fix visual inconsisties in Cart/Checkout between elements and between Light/Dark modes (#51585)
* darker outline and double outline on focus

* flip outlines for shipping selector

* fix select outline in dark mode

* Fix input labels being cut off due to line height

* adjust outline colors

* fix rest of problems in dark mode

* fix express payment on checkout

* Fix broken styles for shipping cart in medium

* Always center input label

* Fix order note background in dark mode

* remove empty space in payment methods when there's no content inside

* Add changefile(s) from automation for the following project(s): woocommerce-blocks

* fix linter issues

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-23 14:11:43 +02:00
louwie17 217f01c991
Add product dataviews without new nav (#51581)
* Add styling for dataviews with old nav

* Add toggle to toggle between new and old navigation

* Update dataviews dependency

* Fix width for list view

* Remove unused type

* Add changelogs
2024-09-23 08:51:55 -03:00
Manish Menaria fc6c932b1c
Fix: Prevent "is-descendent-of-single-product-block" from being added to external product URLs. (#51369)
* Fix: Prevent adding hidden input to external product forms with URLs

This commit addresses an issue where a hidden input field was being added
unnecessarily to external product forms that already have a URL. The changes
include:

1. Adding a check to determine if the product is an external product with a URL.
2. Only adding the hidden input field for products that are not external
   products with URLs.

This fix ensures that external product forms with URLs maintain their intended
functionality without the addition of unnecessary form elements.

* Add changefile(s) from automation for the following project(s): woocommerce

* Fix lint issue

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-23 16:17:21 +05:30
Eason f9cf25e8d7
Legacy reports: Decouple the dependency between the legacy reports and the WooCommerce Status widget on the dashboard page (#51566)
* Reverse the dependency on drawing sparklines in the legacy reports from the WooCommerce Status widget on the dashboard page.

* Add a new class to simulate the loading plugin for the legacy reports.

* Decouple the dependency between the legacy reports and the WooCommerce Status widget on the dashboard page.

* Break down the method of forming HTML for the sparkline in Dashboard widget to avoid directly outputting HTML via a filtered callback.

* Update PHP unit tests for WC_Tests_Admin_Dashboard.

* Add changelog.

* Ensure the backward compatibility for the `woocommerce_after_dashboard_status_widget ` action.

Address: https://github.com/woocommerce/woocommerce/pull/51566#discussion_r1768751063

* Fix the incorrect indentation of a modified line of codes in the `WC_Admin_Dashboard` class.

Address: https://github.com/woocommerce/woocommerce/pull/51566#discussion_r1768690182

* Fix a PHP 8 deprecation message due to a required parameter after an optional parameter in the `WC_Admin_Dashboard` class.

Address: https://github.com/woocommerce/woocommerce/pull/51566#discussion_r1768776896

* Tweak the inaccurate PHPDoc for the `get_sales_sparkline ` method in the `WC_Admin_Report` class.

Address: https://github.com/woocommerce/woocommerce/pull/51566#discussion_r1768804777
2024-09-23 17:08:47 +08:00
Chi-Hsuan Huang 31d847bd6f
Allow change remote spec data source base URL via filter (#51532)
* Refactor WooCommerce Helper class

This commit refactors the WooCommerce Helper class in the `class-wc-helper.php` file. The changes include:
- Updating the comparison operator from `==` to `===` in the `activate_plugin` condition.
- Renaming the `get_install_base_url` method to `get_woocommerce_com_base_url`.
- Adding a new `get_install_base_url` method that returns the base URL for the plugin auto installer.

These changes improve the readability and maintainability of the code.

* Refactor data source poller classes for marketing recommendations, payment gateway suggestions, shipping partner suggestions, inbox notifications, remote free extensions, and WooPayments promotion

- Refactor the data source poller classes for marketing recommendations, payment gateway suggestions, shipping partner suggestions, inbox notifications, remote free extensions, and WooPayments promotion to use a dynamic base URL for the data sources.
- Update the deprecated DATA_SOURCES constant to an empty array in each class.
- Add a new method get_data_sources() in each class to return the updated data sources with the dynamic base URL.
- Modify the constructor of each class to use the get_data_sources() method instead of the deprecated DATA_SOURCES constant.

* Add changelog
2024-09-23 15:10:40 +08:00
Tomek Wytrębowicz e4d0123a36
Fix taxes totals mismatch at reports table (#51218) 2024-09-22 22:04:52 +02:00
Tomek Wytrębowicz 15bcbbdcfd
Fix Tax Analytics total results & export (#51270) 2024-09-22 21:05:23 +02:00
Karol Manijak 03749a0a40
Product Collection: Add option for current product as a reference (#51359)
* Introduce RadioControl

* Provide better copy and improve styling of radio button

* Implement the logic of choosing current product as a reference

* Add placeholder state in product chooser

* Add placeholder image to product chooser

* Add changelog

* Refactor file

* Improve the condition choosing the default radio value

* Update E2E tests

* Format SVG icon and optimize it

* Increase a gap in radio control

* Make the labels less spcific to related products

* Rename some variables to more meaningful names

* Show placeholder img if product doesnt have one

* Fix type

---------

Co-authored-by: Manish Menaria <the.manish.menaria@gmail.com>
2024-09-22 15:30:29 +05:30
Bart Kalisz 35ba49a1f2
Product Collection: Implement the Hand-Picked collection (#51141)
* Fixed PHP 7.4 Compatibility

The splat operator does not support associative arrays until PHP 8.1.

* Added Related Products Collection Boilerplate

* Added `woocommerceRelatedTo` Collection Parameter

This parameter allows the block to query for products that are related
to the given product IDs.

* Added Collection Related Product Filter

Using `woocommerceRelatedTo`, queries may restrict the products returned
to those that are related to the given product ID(s).

* Removed Unnecessary Tracking

* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce

* Removing Misunderstood Option

* Linting Fix

* Fixed Test

* Initialize the Hand-Picked collection

* Removed Unnecessary Keyword

* Render the collection-specific control

* try removing for fixing gh syntax hl

* add back

* tweak icon render

* combine conditions for early return

* Remove timeFrame from the query

* Set control label per context

* Use primitives for the icon

* Hide 'order by' control for the Hand-Picked collection

* Support Unlimited `wc_get_related_products()`

This changes related product fetching so that `-1` will return all
related products. I also removed a second +10 offset that seems
to have been accidentally added eight years ago.

* Revert "Set control label per context"

This reverts commit cd537befbe.

* Update titles and description

* Enable sorting by entered order

* Removed `woocommerceRelatedTo` Param

Since we're going to use the collection name, we don't need
this functionality any longer.

* Simplified `post__in` Filtering

Since `merge_queries` was already using an intersection merge for
`post__in`, this second function is unnecessary. I've removed it
as well as refactored the merging logic.

* Pass Collection Name To Final Query

* Improve the query merging logic

* Added Custom Collection Handlers

Developers can register collections along with handlers that implement
the custom behavior.

* Removed Second Test Query Construction

As it was, `build_query_vars_from_query_block()` was triggering the
ProductCollection instance hooked into WordPress. After that, we
called `build_frontend_query()` on our test instance. This caused some
weird behavior in tests. As a result, however, the tax_query merge
test couldn't rely on the tax_query transformation done by WordPress.

* Added Related Product Collection Handlers

* Revert "Support Unlimited `wc_get_related_products()`"

This reverts commit 41c837202e.

* Fixed Preview Mode Query

It looks like we were checking the wrong place for the preview
state.

* Improve the query merging logic

* Fixed Test

* Updated Collection Heading

* Handle collection context / no results state

* Small cleanup

* Better Collection Test Teardown

Passing a callable back means that we can use variables in the
setUp and then the tearDown without any confusion.

* Removed Unnecessary Test Provider

* Fixed `$post__in` Merging

When the intersection is empty it was returning all products. This
makes it so that it returns nothing when there's no results.

* Set perPage to 0 and add Pagination block for better discoverability

* Improve empty state in Editor by providing meaningful instruction

* Make code more defensive

* Hide more filters in scope of handpicked through hideFilters API

* Fixed PHPDoc

Co-authored-by: Manish Menaria <the.manish.menaria@gmail.com>

* Hide Empty Related Product Collections

* Removed Duplicate Query Function

* Added Hand-Picked Collection Handler

* Revert changes to pnpm

* Improve comment for empty Hand-Picked collection

* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce

* Fix: Pagination not working on Frontend

Remove perPage and pages attributes from hand-picked collection

* Remove unused code

* Revert "Improve empty state in Editor by providing meaningful instruction"

This reverts commit 9ac5c20d5e.

* Do not apply layout styles for empty results

* Improve the wording on the empty results message

---------

Co-authored-by: Christopher Allford <6451942+ObliviousHarmony@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Manish Menaria <the.manish.menaria@gmail.com>
Co-authored-by: Karol Manijak <20098064+kmanijak@users.noreply.github.com>
2024-09-21 20:10:10 +05:30
Karol Manijak 6222124793
Add Upsells collection (#51374)
* Fixed PHP 7.4 Compatibility

The splat operator does not support associative arrays until PHP 8.1.

* Added Related Products Collection Boilerplate

* Added `woocommerceRelatedTo` Collection Parameter

This parameter allows the block to query for products that are related
to the given product IDs.

* Added Collection Related Product Filter

Using `woocommerceRelatedTo`, queries may restrict the products returned
to those that are related to the given product ID(s).

* Removed Unnecessary Tracking

* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce

* Removing Misunderstood Option

* Linting Fix

* Fixed Test

* Removed Unnecessary Keyword

* Support Unlimited `wc_get_related_products()`

This changes related product fetching so that `-1` will return all
related products. I also removed a second +10 offset that seems
to have been accidentally added eight years ago.

* Removed `woocommerceRelatedTo` Param

Since we're going to use the collection name, we don't need
this functionality any longer.

* Simplified `post__in` Filtering

Since `merge_queries` was already using an intersection merge for
`post__in`, this second function is unnecessary. I've removed it
as well as refactored the merging logic.

* Pass Collection Name To Final Query

* Added Custom Collection Handlers

Developers can register collections along with handlers that implement
the custom behavior.

* Removed Second Test Query Construction

As it was, `build_query_vars_from_query_block()` was triggering the
ProductCollection instance hooked into WordPress. After that, we
called `build_frontend_query()` on our test instance. This caused some
weird behavior in tests. As a result, however, the tax_query merge
test couldn't rely on the tax_query transformation done by WordPress.

* Added Related Product Collection Handlers

* Revert "Support Unlimited `wc_get_related_products()`"

This reverts commit 41c837202e.

* Fixed Preview Mode Query

It looks like we were checking the wrong place for the preview
state.

* Fixed Test

* Updated Collection Heading

* Add Upsells collection definition

* Register Upsells

* Add collection handlers for Upsells

* Add changelog

* Remove on sale query param

* Better Collection Test Teardown

Passing a callable back means that we can use variables in the
setUp and then the tearDown without any confusion.

* Removed Unnecessary Test Provider

* Added Upsell Collection Unit Test

* Product ID Confidence Check

* Added Collection Product Reference

* Don't display Upsells collection if there's no upsells

* Change the Upsells collection heading

* Add Upsells supporting cart context

* Consume the cart productIds and display Upsells in there

* Fixed `$post__in` Merging

When the intersection is empty it was returning all products. This
makes it so that it returns nothing when there's no results.

* Fix lint

* Extract the variable

* Fix lint

---------

Co-authored-by: Christopher Allford <6451942+ObliviousHarmony@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Manish Menaria <the.manish.menaria@gmail.com>
2024-09-21 19:28:47 +05:30
Christopher Allford 7a7b94025a
Product Collection: Introduce "Related Products" Collection (#51076)
* Fixed PHP 7.4 Compatibility

The splat operator does not support associative arrays until PHP 8.1.

* Added Related Products Collection Boilerplate

* Added `woocommerceRelatedTo` Collection Parameter

This parameter allows the block to query for products that are related
to the given product IDs.

* Added Collection Related Product Filter

Using `woocommerceRelatedTo`, queries may restrict the products returned
to those that are related to the given product ID(s).

* Removed Unnecessary Tracking

* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce

* Removing Misunderstood Option

* Linting Fix

* Fixed Test

* Removed Unnecessary Keyword

* Support Unlimited `wc_get_related_products()`

This changes related product fetching so that `-1` will return all
related products. I also removed a second +10 offset that seems
to have been accidentally added eight years ago.

* Removed `woocommerceRelatedTo` Param

Since we're going to use the collection name, we don't need
this functionality any longer.

* Simplified `post__in` Filtering

Since `merge_queries` was already using an intersection merge for
`post__in`, this second function is unnecessary. I've removed it
as well as refactored the merging logic.

* Pass Collection Name To Final Query

* Added Custom Collection Handlers

Developers can register collections along with handlers that implement
the custom behavior.

* Removed Second Test Query Construction

As it was, `build_query_vars_from_query_block()` was triggering the
ProductCollection instance hooked into WordPress. After that, we
called `build_frontend_query()` on our test instance. This caused some
weird behavior in tests. As a result, however, the tax_query merge
test couldn't rely on the tax_query transformation done by WordPress.

* Added Related Product Collection Handlers

* Revert "Support Unlimited `wc_get_related_products()`"

This reverts commit 41c837202e.

* Fixed Preview Mode Query

It looks like we were checking the wrong place for the preview
state.

* Fixed Test

* Updated Collection Heading

* Better Collection Test Teardown

Passing a callable back means that we can use variables in the
setUp and then the tearDown without any confusion.

* Removed Unnecessary Test Provider

* Fixed `$post__in` Merging

When the intersection is empty it was returning all products. This
makes it so that it returns nothing when there's no results.

* Fixed PHPDoc

Co-authored-by: Manish Menaria <the.manish.menaria@gmail.com>

* Hide Empty Related Product Collections

* Fix lint issue

---------

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Manish Menaria <the.manish.menaria@gmail.com>
2024-09-21 16:12:58 +05:30
Herman 62a2968afd
Add screen reader text for ratings data on product cards (#51571)
* Add screen reader text for ratings data on product cards

* Add changefile(s) from automation for the following project(s): woocommerce

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-20 16:57:45 +00:00
Thomas Roberts fa977c2da1
Replace flaky Local Pickup e2e test with PHP and JS unit test (#51554) 2024-09-20 17:25:19 +01:00
Raja sekar 017d649ae7
Show correct decimals on product price and show the sale price of products (#51499)
* add regular price and sale price flag to product apis and types

* add sale price and screen reader text for prices on product cards

* fix typo on sale flag

* add regular price and sale price flag to product apis and types

* add sale price and screen reader text for prices on product cards

* fix typo on sale flag

* Changelog.

* address feedback on sale price VO text

---------

Co-authored-by: Herman <KokkieH@users.noreply.github.com>
Co-authored-by: And Finally <andfinally@users.noreply.github.com>
2024-09-20 21:13:01 +05:30
Mike Jolley aacae66eb0
Delayed account creation: Admin settings (#51236)
* Settings first pass

* New Settings UI

* Respect woocommerce_enable_delayed_account_creation at block level

* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce

* Check input exists

* Add new setting to tests

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-20 16:20:09 +01:00
Vlad Olaru 1ff28fd174
Update Payments menu item display and linking behavior (#51541)
* Minor cleanup

* refact: Rename must_be_visible to is_incentive_visible for clarity

* refact: Rename register_payments_welcome_page to register_menu_and_page for clarity

* Don't show the incentive page if the user can't manage WC

* Introduce menu item when no incentive

* Don't recommend additional gateways when WCPay is present

* Render gateway suggestions on the WCPay task page, also

* Add changelog entry

* Remove short array syntax

* Lint fixes

* Simplify Payments task view logic

* Simplify WooPayments task view logic

* Improve WooPayments task complete logic

* WooPayments can't be connected or onboarded if it is not active

* refact: Rename private static method

* Improve logic to determine the Payments task slug by factoring in the extended task list also

* docs: Add details about our use of the Payments task logic

* Add type hint

* Do not recommend offline methods when WooPayments is supported

* On suggestion enablement redirect to the same task page

* Lint fixes

* test: Fix unit tests

* Maintain deprecated navigation logic
2024-09-20 15:53:10 +03:00
David Allsop ad2d18200f
Add additional body class for the account dashboard (#30050) (#51147)
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Nestor Soriano <konamiman@konamiman.com>
2024-09-20 11:21:33 +02:00
Mike Jolley 9c58f198cf
Ensure `QuantityLimits::limit_to_multiple` receives correct values to prevent fatal errors (#51451)
* Ensure values passed to limit_to_multiple are integers

* changelog

* Type and value enforcing for filters

* fix max value
2024-09-19 16:24:13 +01:00
Mike Jolley d567c6c698
Delayed Account Creation: Support option to send password setup link to customer via email (#51227)
* Update form handling to work with automatically generated passwords

* Keep user logged in after password reset.

* Ignore comments for hooks in changed method

* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce

* Checkmark list style

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-19 15:03:27 +01:00
Mike Jolley c5ed90535f
Fix script tag handling for inner blocks in the cart (#51498)
* Avoid parsing scripts when dealing with inner blocks—return as-is

* changelog
2024-09-19 14:51:09 +01:00
Mike Jolley bf549e6d8f
Defend against missing session in cart functions to prevent fatals (#51442)
* Ensure session is callable in cart functions

* Changelog
2024-09-19 13:36:54 +01:00
Cem Ünalan 8ca18f06ad
Marketplace: hide the scrollbar from the category selector (#51527)
* Marketplace: hide the scrollbar from the category selector

Also fixed some button gradient issues

* Marketplace: change scroll helper button cursor

* Add changefile(s) from automation for the following project(s): woocommerce

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-19 12:26:06 +00:00
Veljko V. ec9cdbdbf7
Fix and improve k6 perf test My Account Open Order (#51334)
* Add customer id to orders and update test to look for proper title

* Add changelog

* Update my account open orders test and assign customer ID

* Fix linting issues

* Add final fix to the my account open order test

* Add customer order to test

* Add comment on the top of the file

* Add two more comments to the top of the file to avoid linting failure

* Revert changes made to response in test and orders

* Rename response to r in orders

* Remove unnecessary code from orders

* Move order creation to setup and update tests

* Include check for the order ID validation

* Relogic add customer order

* Rename test comment

* Update setup to create customer and config, readme, relevant tests

* Remove console log from the test
2024-09-19 11:14:20 +02:00
louwie17 11b1e31ac3
Update the dataviews package dependency (#51511)
* Initial update

* Revert dependency output change

* Add changelogs
2024-09-19 10:43:05 +02:00
Vladimir Reznichenko b0799716aa
[dev] Monorepo: bypass git clone for WordPress core when spinning off wp-env (#51457) 2024-09-19 10:33:57 +02:00
Jonathan Lane 2e69e94028
Exclude skipped e2e tests from auto-closure (#51528)
Co-authored-by: Jon Lane <jon.lane@automattic.com>
2024-09-19 09:02:04 +02:00
Chi-Hsuan Huang dfd7d52d6b
[beta tester] Simulate core error early in the request lifecycle before WP fully loaded. (#51330)
* Improve remote logging tool to simulate core error early in the request lifecycle before wp fully loaded

* Disable wp error handler when simulate_woocommerce_error
2024-09-19 12:22:53 +08:00
DAnn2012 2fc6528c61
Fix typo (task-list-completed.tsx) (#51484)
* Update task-list-completed.tsx

* Add changefile(s) from automation for the following project(s): woocommerce

---------

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
2024-09-19 03:14:36 +00:00
Barry Hughes 34aa4f07f1
Update stable tag to 9.3.2 (#51522)
Update stable tag to 9.3.2
2024-09-18 14:06:54 -07:00
Alex Florisca 9b8256cc3e
[Feature] Express Checkout Improvements (#50791)
* Add new buttonAttributes API to style express checkout buttons coherently (#47899)

* Expose buttonAttributes to the express payment methods

* Add size and label attributes to the express checkout area

* Remove defaultHeight

* default button Label

* Remove the button label attribute

* Remove px from height

* Change large button height to 55px

* Load express checkout block with attributes

* Add toggle and borderRadius controls and remove getting border radius from the theme

* Remove extra border radius text

* Only pass buttonAttributes if toggled on

* Move express payment block attribute logic into a Provider

* Tidy up editor grid and parse attributes into context on frontend

* Add px to border-radius input

* Express payment methods not selectable

* Add a test

* lint fixes

* default button height is 48 not 4

* Add changefile(s) from automation for the following project(s): woocommerce-blocks

* Update docs

* Add tests for express payment methods

* Center images within the express payment area in the editor

* Apply the buttonAttributes to the li container in the editor regardless of showButtonStyles

* Fix style issue

* fix linting

* fix lint again

* Update manifest

* Update docs manifest

* Resize images in editor

* lint fix

---------

Co-authored-by: github-actions <github-actions@github.com>

* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce

* Synchronise the express payment settings between the Cart & Checkout blocks (#50688)

* Add express payment methods to sidebar

* Only add extra props for express payment methods

* Update docs

* Make title, description and gatewayId types optional

* Update docs

* Fix types again and editor side

* Add changefile(s) from automation for the following project(s): woocommerce-blocks

* handle situation when no methods are active

* Update manifest

* Add express payment methods to inspector controls for express checkout block (#50983)

* Remove forced styles on the editor

* Remove the darkMode setting from the buttonAttributes API (#51109)

* Remove darkMode from the buttonAttributes API

* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce

---------

Co-authored-by: github-actions <github-actions@github.com>

* Accept supports declarations for express payment style controls + merchant ux improvements in the editor (#51296)

* Fix images in editor displaying weird

* Fix long express payment names breaking layout

* Default to uniform styles off

* Use heightControl for border radius and fix height for cart buttons

* Move formatting title and description to the config validation

* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce

* Fix linting

* Fix failing test

* Add back the 48px height for images in editor

* Fix linting again

* Update docs

* Update docs manifest

* Update docs to fix linting

* Add comment to test to better explain why we are expecting a console warning

* make strings translatable

* Sync cart & checkout directly without option

* Remove current styles

* Change the beta label

* Replace < and > with symbol references in docs

* Update docs manifest

* Increase padding of beta label

* fix linter issues

* change to using looger helper

* fix CSS

---------

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Nadir Seghir <nadir.seghir@gmail.com>
2024-09-18 19:49:27 +00:00
Nathan Silveira 96719139be
Add global_unique_id parameter to products REST API (#51264)
* Add global_unique_id parameter to products REST API

* Remove unnecessary if statement related to commas and trim request content
2024-09-18 15:26:40 -03:00
Jonathan Lane 9d135ee2f5
Skip top flaky tests (#51510)
* Skip top flaky tests

* Add changefile(s) from automation for the following project(s): woocommerce-blocks

---------

Co-authored-by: Jon Lane <jon.lane@automattic.com>
Co-authored-by: github-actions <github-actions@github.com>
2024-09-18 18:43:12 +02:00
github-actions[bot] df37ccf8c5
Delete changelog files based on PR 51449 (#51477)
Delete changelog files for 51449

Co-authored-by: WooCommerce Bot <no-reply@woocommerce.com>
2024-09-18 19:34:07 +07:00
github-actions[bot] 13f5eee40b
Delete changelog files based on PR 51441 (#51497)
Delete changelog files for 51441

Co-authored-by: WooCommerce Bot <no-reply@woocommerce.com>
2024-09-18 19:33:24 +07:00
github-actions[bot] 8042fcdae3
Delete changelog files based on PR 51456 (#51496)
Delete changelog files for 51456

Co-authored-by: WooCommerce Bot <no-reply@woocommerce.com>
2024-09-18 19:32:28 +07:00
Boro Sitnikovski ce66b55bc5
In app search improvements feature branch (#51413)
* Add search results count to the in-app marketplace (#51266)

* Add searchResults to context

* Use setSearchResults in Content

* Add ribbons to the tabs

* Changelog

* Use setState as the function name

* Only show ribbon counts when there's an active search

* Refactor how 'setSearchResultsCount' is used (h/t @mcliwanow)

* Don't populate initial search results

* Unify css styling

* Marketplace: bring back the loading state (#51342)

* Marketplace: bring back the loading state

* Add changefile(s) from automation for the following project(s): woocommerce

---------

Co-authored-by: github-actions <github-actions@github.com>

* Remove in-app marketplace Search results tab and unify results into existing tabs (#51297)

* Remove search results component and any references to it

* Persist current tab for searching, or default to extensions if tab is not set

* Persist term when switching across tabs

* Lint

* When a search is initiated, fetch all categories to keep the tab counts up to date.

The necessary filtering to display data to the current screen will be performed on the frontend.

* Apply correct colors to the tabs, as per design

* Beyond query.term, also rely on isLoading so that search result counts don't jump

* Address an issue when the user searches for something that returns no results in the business services tab

* Changelog

* Addressed :)

* Change key to category

* Fix category filter being broken

Whenever a category is requested, we need to do an additional request with the category param being the current category (overriding extensions/theme/business services).

Ideally the backend API would make a distinction between type (theme/extension/business service) and category, but this hack should do for now.

* Lint

* Remove unused variables h/t @KokkieH

* Lint

* Revert "Lint"

This reverts commit 0b2d2dca6d.

* Actually fix lint without introducing infinite loop

Reproducible at http://localhost:8080/wp-admin/admin.php?page=wc-admin&term=payments&tab=extensions&path=%2Fextensions&category=customer-service

* Show category selector even if there are no results displayed

* Update comment to be less misleading

* Query isn't used here

* Update Marketplace search component (#51313)

* Update Search placeholder text

* Replace search component with one from @wordpress/components

* Make mobile search field font consistent with desktop

* Add changefile(s) from automation for the following project(s): woocommerce

* Handle import errors for SearchControl component

---------

Co-authored-by: github-actions <github-actions@github.com>

* Marketplace: update category selector (#51309)

* Marketplace: update category selector

Remove the dropdown on the desktop view and show all items, even if
overflowing. Added helper buttons to scroll to the right to show more.

* Add changefile(s) from automation for the following project(s): woocommerce

* Marketplace: remove category sroll helpers from tabindex

GitHub:
https://github.com/woocommerce/woocommerce/pull/51309/files#r1758448638

* Marketplace: Remove selectedTab reference from product.tsx

This is probably included due to the merge conflict

* Marketplace: tweak category scroll button narrower

---------

Co-authored-by: github-actions <github-actions@github.com>

* Lint

* Fix 2 lint errors

* Fix another lint error (useMemo) h/t @KokkieH

* Add load more button in-app (#51434)

* Add additional fields returned by search API to marketplace types

Ensure components have access to additional fields

* Add LoadMoreButton component

* Only render Load More button if there are additional pages of results

* Fetch and display next page of results in Load More button is clicked

* Simplify renderContent function to have less repetition

- Hide load more button while fetching results

* Improve loading of new products

- Ensure keyboard focus goes to first new product after Load More is clicked

* Add changefile(s) from automation for the following project(s): woocommerce

* Add blank line to separate sections

* Set category param based on current tab when loading more products

* Improve busy-state screen reader text

Co-authored-by: Boro Sitnikovski <buritomath@gmail.com>

* Add missing dependency

* Move getProductType() function to functions.tsx

- Do not show load more button if isLoading state is true

---------

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Boro Sitnikovski <buritomath@gmail.com>

* Rework the values used with `setSearchResultsCount`

After https://github.com/Automattic/woocommerce.com/pull/21678/files we
get a `totalProducts` so we can re-use that.

Also remove setting the counts when paginating since we set them to the
total.

* Add search complete announcement h/t @KokkieH

* Show update count only if greater than 0 h/t @andfinally

* Switch to Extensions tab if on My subscriptions when searching

* yoda

---------

Co-authored-by: Cem Ünalan <raicem@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Herman <KokkieH@users.noreply.github.com>
2024-09-18 14:14:30 +02:00
Ivan Stojadinov 4bc4649008
[e2e] External - Expand WPCOM suite, part 3 (#51422)
* Skip "Restricted coupon management" - error 500

* Make `wooPatterns` element more specific

* Skip "Merchant can view a list of all customers" - more customers due to using existing website

* No LYS on WPCOM

* Dismiss notice if shown

* Expand WPCOM suite

* Click on `Canada`

* Click on `Canada`

* Be more specific about `Delete` button

* Add changefile(s) from automation for the following project(s): woocommerce

* Skip two more tests - WC patterns and block

* Remove usage of `networkidle`

* Handle notice if present with `addLocatorHandler`

* Fix ESLint issue

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-18 13:24:38 +02:00
Néstor Soriano 16e072879b
Fix: "Import file path is invalid" in Windows (#51456)
* Fix WC_Product_CSV_Importer_Controller::check_file_path failing on Windows
2024-09-18 13:15:15 +02:00
Naman Malhotra 3df48f2bd7
Revert low stock notification changes (#51441)
* Revert - Change when stock notif emails are triggered

* added changelog

* restored comment

* restored more comment

* lint fixes

* Add docblock.

---------

Co-authored-by: Vedanshu Jain <vedanshu.jain.2012@gmail.com>
2024-09-18 18:12:23 +07:00
Ilyas Foo 6a83e8d301
Fix deprecation notice in coming soon and store-only mode (#51474)
* Wrap parse_str under a check

* Changelog
2024-09-18 18:06:38 +08:00
Maikel Perez f529d927a2
CYS: Fix Looker dashboard data (Track & display average loading times) (#51461)
* Track customize_your_store_assembler_hub_editor_loaded event to measure CYS loading time

* Add changelog file
2024-09-18 09:59:14 +02:00
Vedanshu Jain 3cdf45f69c
Modify API response tests to assert that expected key values are present (#51465)
Modify API response tests to assert that expected key values are present.

This differs from earlier assertion which checks for exact equality. However the earlier assertion was brittle and would fail when a new property is added, for example in https://core.trac.wordpress.org/ticket/61739.

With this change, any addition to schema will not breaking existing API tests.
2024-09-18 12:58:38 +05:30
Tung Du 1b58098848
[Experimental] Product Filters Chips style and new interactivity API implementation (#51393) 2024-09-18 13:16:07 +07:00
RJ ec29880e3e
fix: added pre-API call permissions check on APIs being called on non-admin accessible screens (#51406)
fix: no permissions api errors
2024-09-18 12:53:52 +08:00
Sam Seay 2e3013555e
Check if button element exists when triggering added_to_cart (#51449) 2024-09-18 14:13:47 +12:00
Chi-Hsuan Huang cf7fd8303c
Improve remote logging structure and content (#51360)
* Refactor RemoteLogger to format error file paths and remove absolute paths

* Add changelog

* Change "**" -> "./"
2024-09-18 08:58:10 +08:00
Chi-Hsuan Huang cfca07eca8
Reducing Noise in Remote Logging (#51357)
* Refactor remote logging in WooCommerce

This commit refactors the remote logging functionality in WooCommerce to improve its efficiency and flexibility.

- In the `class-woocommerce.php` file, the `context` array now includes a new key `remote-logging` to indicate whether the error should be logged remotely if remote logging is enabled.

- In the `RemoteLogger.php` file, the `file` key in the `context['error']` array is now assigned to the `$log_data` array, and then unset from the `context['error']` array.

- The `should_handle` method in the `RemoteLogger` class now checks for the presence of the `remote-logging` key in the `context` array. If it is not set or set to `false`, the log is ignored.

- The `RemoteLoggerTest.php` file includes new test cases to ensure that the `should_handle` method returns `false` when the `remote-logging` key is not present in the `context` array.

These changes improve the remote logging functionality in WooCommerce and make it more robust and efficient.

* Revert log format change

* Set remote-logging context to true in log remote event method

* Add changelog

* revert change

* revert change
2024-09-18 08:57:32 +08:00
Narendra Sishodiya c2fa5eeff5
Updated Product attributes placeholder to e.g. length or weight (#51379)
* Updated Product attributes placeholder to e.g. length or weight

* Added Changelog

* Add changefile(s) from automation for the following project(s): woocommerce

* Delete changelog/51134-product-attribute-placeholder-update

* Add changefile(s) from automation for the following project(s): woocommerce

* Revise changelog.

* Add changefile(s) from automation for the following project(s): woocommerce

* Satisfy linter.

* Increase exactitude to reduce ambiguity levels.

---------

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Barry Hughes <3594411+barryhughes@users.noreply.github.com>
2024-09-17 15:59:22 -07:00
Moon 5fe53a2e3f
Add locale param to jetpack redirect url (#51392)
* Add locale from php

* Add changefile(s) from automation for the following project(s): woocommerce

* Return a full locale with language and region code

* Fix style

* Fix error

* Lint fixes

* Lint fixes

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-17 13:46:26 -07:00
Narendra Sishodiya e03c51c5ed
Fixed call to member function is_visible Fatal Error (#51286)
* Fixed call to member function is_visible Fatal Error

* Implemented the suggestions

* Add changefile(s) from automation for the following project(s): woocommerce

* Updated the @version tag

* Promote 'comment' to actual changelog entry.

* Add changefile(s) from automation for the following project(s): woocommerce

---------

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Barry Hughes <3594411+barryhughes@users.noreply.github.com>
2024-09-17 11:30:47 -07:00
Jason Kytros ea6e7295ec
Merge WooCommerce Brands into core (#50165)
* Move WooCommerce Brands into core

* Fix linting errors in brand-thumbnails.php

* More lint fixes for brand-thumbnails.php

* Fix lint issues in brand-description.php

* Fix lint errors for brand-thumbnails-description

* Lint errors: Fix taxonomy-product_brand

* Lint errors: fix taxonomy-product_brand

* Linting: Try adding a space between ignore command and docblock

* Another try to remove the lowercase file name error

* Another try removing lint error for lowercase files

* Lint errors: Fix brands-a-z.php

* More lint fixes for brands-a-z.php

* More lint fixes for brands-a-z.php

* Lint fixes: brand-description.php

* Another try fixing lint errors for brand-description.php

* Another try fixing lint errors for brand-description.php

* More fixes for brand-description.php

* Fix lint errors for Packages.php

* More fixes for Packages.php

* Linting fixes for Brands.php

* Added docblocks for WC_Widget_Brand_Thumbnails variables

* Add script to fix coding standards for files changed in branch

* Run autofix script for linting

* Lint fixes for class-wc-widget-brand-thumbnails.php

* More lint fixes for: class-wc-widget-brand-thumbnails.php

* More lint fixes for class-wc-widget-brand-thumbnails.php

* Lint fixes for class-wc-widget-brand-nav.php

* lint fixes: ignore docblocks

* Another try to fix missing docblocks

* Another try to fix missing docblocks

* Another try fixing missing docblocks

* Better messages for fix-branch.sh

* Fix lint errors in class-wc-widget-brand-description.php

* Fix linting errors in REST API and functions classes

* Fix linting issues in class-wc-brands.php

* More lint fixes for wc-brands.php

* More lint fixes for wc-brands.php

* Fix lint errors for wc-brands-coupons.php

* Fix lint errors for class-wc-brands-block-templates.php

* Fix linting errors for class-wc-brands-block-template-utils-duplicated.php

* Fix lint errors in class-wc-admin-brands.php

* More fixes in class-wc-admin-brands.php

* More class-wc-admin-brands.php

* More lint fixes for: class-wc-admin-brands.php

* More lint fixes for class-wc-admin-brands.php

* Transfer unit test

* Transfer e2e test

* Added specific versions to templates

* Added changelog

* Another try for HTML templates version

* Fix lint errors in test files

* More lint fixes

* Fix lint warnings

* Added brands to list of expected REST API fields

* More lint warning fixes

* More lint warning fixes

* Updated unit tests to include brands

* Remove whitespace

* Added declare( strict_types = 1); to all PHP files

* Added declare( strict_types = 1) to test file as well

* Fix: There must be exactly one blank line after the file comment

* Temporarily remove Brands e2e tests

* Move Brands blockified templates

* Remove script to fix lint errors in current branch

* Try removing pull-package-deps

* Bring back deps

* Commit pnpm-lock.yaml

* Add debug statements

* More debug statements

* Make regular expression more specific

* Make matches more specific

* Search only for PHP templates

* Bring back whitespace

* Remove unnecessary change

* Update pnpm-lock.yaml

* Change the way Brands files are included

* Include all files

* Prevent Brands assets from being double-enqueued

* Move Brands scripts handling into core

* Revert changes in the template-changes.ts script

* Use strict in_array

* Add scaffolding for Brands test

* Add more scaffolding for Brands tests

* Enhance e2e test by adding steps for creating a Brand

* Move Brands test to Playwright folder

* Added manifest

* Fix lint errors in tests

* Move Brands coupons test into core's coupons tests

* Fix linting error in tests

* Move all Brands initialization within the /Internal/Brands class

* Rename `$merged_packages` to `$merged_plugins`

* Add force disable method back

* Move Brands logic outside core files

* Rename admin styles

* Remove brands logic from core's admin class

* Roll back all changes in admin assets class

* Fix linting errors

* Move REST API logic to Brands main class

* Introduce an option to control whether the Brands package is enabled.
Prevent autoloader from loading classes already loaded by individual Packages.
Fix an issue with Brands admin styles.

* Bring back pnpm-lock

* Add comment

* Split long line into two

* Review default values for remote variant assignment

* Rename global functions and add polyfills for deprecated functions

* Bump versions

* Fix some lint errors

* More lint fixes

* Set woocommerce_remote_variant_assignment for Brands to be enabled for unit tests

* Replace reserved word class with class_name

* Another try to include Brands files in tests

* Remove Brands from REST API tests

* Skip Brands tests while Brands is behind a feature flag

* Lint fixes

* Remove empty line

* Added feature flag.

* Fix widgets form

* Fix lint errors for brand description widget

* Fix lint errors for brand description widget

* Fix lint errors

* Bump version

* Updated tooltips for Brands coupon restrictions to match core's

* Fix lint errors

* More lint fixes

* Add REST API v3 for Brands

---------

Co-authored-by: Walther Lalk <83255+dakota@users.noreply.github.com>
2024-09-17 18:13:46 +03:00
Albert Juhé Lluveras 514b39eea0
Fix a type mismatch in UpdateProducts.php (#51408)
* Fix a type mismatch in UpdateProducts.php

* Add changelog file

* Fix a type mismatch in UpdateProducts.php (II)
2024-09-17 16:56:55 +02:00
Chi-Hsuan Huang 6bc2244ec9
Reduce dependency of remote logging on WC_Tracks (#51365)
* Simplify WC_Tracks::get_blog_details() to reduce its dependencies

* Add changelog

* Remove store_id field

* Improve the check
2024-09-17 22:31:55 +08:00
Chi-Hsuan Huang dee8c619f0
Refine PHP Fatal Error Counting (#51363)
* Refine PHP Fatal Error Counting in MC Stat

* Add changelog

* Fix import
2024-09-17 22:31:44 +08:00
Mike Jolley 554434ea3d
Cart Shortcode: `wc_get_cart_url` should only return current URL if on the cart page (#51384)
* Narrow logic further by only checking if the current page is the cart, not WOOCOMMERCE_CART

* changelog
2024-09-17 13:56:01 +01:00
Mike Jolley be17f843b6
Add missing `wp-block-` classnames to order confirmation blocks, Store Notices, and Breadcrumbs (#51380)
* Add missing wp-block-x classname to order confirmation blocks

* Use get_block_wrapper_attributes for store notices block

* Breadcrumbs and notices

* Changelog
2024-09-17 13:30:22 +02:00
Seghir Nadir 66523872f3
Support controlling address card state from data store in Checkout block (#51386)
* fix line height

* Support controlling address card from data store

* expand billing address on unsync

* Add changefile(s) from automation for the following project(s): woocommerce-blocks

* disable linter rule

* remove empty section

* remove used vars

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-17 10:56:15 +00:00
Karol Manijak e354295387
Update Markdown lint allowing the same headings if they're not siblings (#51438)
* Set markdown rule about Multiple headings to check siblings only

* Change the doc to have same headings but not siblings as example

* Add changelog

* Update docs manifest
2024-09-17 12:44:15 +02:00
Ivan Stojadinov acc313a9b2
[e2e] External - Expand WPCOM suite, part 2 (#51414)
* Add /merchant tests to the WPCOM suite

* Skip "can manually add a variation" on WPCOM

* Skip "Coupon management" - API returns 500 on delete

* Resolve `wp-block-woocommerce-checkout-order-summary-block` on the first element

* Add changefile(s) from automation for the following project(s): woocommerce

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-17 10:43:43 +02:00
Manish Menaria 861bc091d4
Product Collection - Add Editor UI for missing product reference (#51114)
* Initial implementation of the missing product state

- Changed `getProductCollectionUIStateInEditor` to a hook `useProductCollectionUIState`.
	- As we added logic to check if selected product reference is deleted which require making an API call. Therefore, I decided to use a hook.
- While making an API call to check if product reference is deleted, I decided to show spinner in the block.
- Introduced new UI state `DELETED_PRODUCT_REFERENCE` to handle the missing product state.
- Updated existing `ProductPicker` component to handle the new UI state.
	- It's better to use existing component for the missing product state, as it already has all the required UI.

* Add changefile(s) from automation for the following project(s): woocommerce-blocks

* Use getEntityRecord to check if product exists and other improvements

* Remove console log

* Add E2E tests for deleted product reference in Product Collection block

This commit introduces new E2E tests to verify the behavior of the Product
Collection block when dealing with deleted product references. The changes
include:

1. New test suite in register-product-collection-tester.block_theme.spec.ts
2. Modification to product-collection.page.ts to support custom product selection
3. Minor update to utils.tsx to handle trashed products

These tests ensure that the Product Collection block correctly handles
scenarios where referenced products are deleted, trashed, or restored,
improving the overall reliability of the feature.

* Simplify product creation in Product Collection block test

* Refactor E2E test for delete product reference picker

1. Removing the unnecessary `test.describe` block for "Deleted product reference"
2. Eliminating the `beforeEach` hook that was creating a test product
3. Integrating the test product creation directly into the main test

This change simplifies the test structure and improves readability while
maintaining the same test coverage for the Product Collection block's
behavior when dealing with deleted or unavailable products.

* Simplify logic for product collection UI state

This commit simplifies the handling of the `usesReference` prop in the
Product Collection block:

1. In `edit/index.tsx`, directly pass `usesReference` to
   `useProductCollectionUIState` hook without conditional spreading.

2. In `utils.tsx`, update the type definition of `usesReference` in the
   `useProductCollectionUIState` hook to explicitly include `undefined`.

* Refactor Product Collection block to improve prop passing

- Introduce ProductCollectionContentProps type for better prop management
- Refactor Edit component to use a renderComponent function
- Update component prop types to use more specific props
- Remove unnecessary props from ProductCollectionEditComponentProps
- Simplify component rendering logic in Edit component
- Adjust ProductPicker to receive only required props
- Update imports and prop types in various files to use new types

This refactoring improves code organization and reduces prop drilling by
only passing necessary props to each component. It enhances maintainability
and readability of the Product Collection block and related components.

* Refactor Product Collection block editor UI state handling

This commit simplifies the rendering logic in the Product Collection block's
Edit component. It removes a redundant case for the VALID state, as both
VALID and VALID_WITH_PREVIEW states now render the same ProductCollectionContent
component. This change improves code maintainability and reduces duplication.

* Fix: isDeletedProductReference is not set correctly

* Use "page.reload" instead of "admin.page.reload"

* Separate PRODUCT_REFERENCE_PICKER and DELETED_PRODUCT_REFERENCE cases

This improves readability and maintainability of the switch statement.

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-17 14:08:24 +05:30
Albert Juhé Lluveras 4ee2689f4f
Fix fatal when adding the Product Gallery (Beta) block into a pattern (#51189)
* Fix fatal when adding the Product Gallery (Beta) block into a pattern

* Add changelog file

* Linting
2024-09-17 09:49:53 +02:00
Moon 160b3e3ca7
Add use-wp-horizon feature flag (#51421)
* Add use-wp-horizon feature flag

* Add changefile(s) from automation for the following project(s): woocommerce

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-16 21:02:21 -07:00
RJ 0036b4d293
add: tax task completion filter (#51362)
* add: tax task completion filter

* fix: add phpcs ignore for missing hook comment

* lint
2024-09-17 09:33:41 +08:00
Miguel Pérez Pellicer e4d995938f
Set customer email in reports data if available (#51367)
* Set customer email in reports data if available.

* Add changelog

* Lint
2024-09-16 22:45:47 +04:00
Boro Sitnikovski bf0646c307
Add error handling when the call to 'install-url' endpoint fails (#51298)
* Add error handling when the call to 'install-url' endpoint fails

* Changelog

* Ignore any explicitly

* Move the function below to address lint

* Change 'Try again' to a href, suggesting to download and install manually

* Lint
2024-09-16 16:57:05 +02:00
Tomek Wytrębowicz 450a299bae
Fix tax_code in the report export for removed rates (#51395) 2024-09-16 15:59:18 +02:00
Seghir Nadir 1ef1aaa1f0
Hadren styles for interactive elements in Checkout block (#51375)
* reset styles for panel button

* reset styles for address card edit and address line 2

* Update shipping selector buttons

* fix line height

* Add changefile(s) from automation for the following project(s): woocommerce-blocks

* remove extra styles no longer needed

* update styles to balance chevron and change to span

---------

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Alex Florisca <alex.florisca@automattic.com>
2024-09-16 13:03:20 +00:00
Ivan Stojadinov cebdcc61d0
[e2e] External - Expand WPCOM suite, part 1 (#51303)
* Expand WPCOM suite

* Skip core-profiler.spec.js on WPCOM - no "Coming soon"

* Skip `Analytics-related tests` on WPCOM - different sums

* Skip `Marketing Overview page have relevant content` - no content on WPCOM

* Payment setup task - make Save button more unique

* Include more tests in playwright.config.js

* Skip `Store owner can skip the core profiler`

* Add changefile(s) from automation for the following project(s): woocommerce

* Make "Get paid" more unique

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-16 13:56:44 +02:00
Seghir Nadir 77a17e48b7
update Mongolia postcode to be 5 digits instead of 6 in Checkout block (#50279)
* update Mongolia postcode to be 5 digits instead of 6

* Add changefile(s) from automation for the following project(s): woocommerce-blocks

* update validation package and expand mongolia checks

* Add changefile(s) from automation for the following project(s): woocommerce-blocks

* update lock

* fix lock again

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-16 11:22:38 +02:00
Narendra Sishodiya 63d93d7355
Implemented PHPCS Fixes in OrdersTableQuery.php and ProductQuery.php (#51281)
* Implemented PHPCS Fixes in OrdersTableQuery.php and ProductQuery.php

* Reverted gmdate() to date()

* Add changelog

* Fixed linting issue in Update OrdersTableQuery.php

---------

Co-authored-by: Alex Florisca <alex.florisca@automattic.com>
2024-09-15 16:21:55 +01:00
Fernando Marichal ae20724210
Add inspector controls to Product Search block (#51247)
* Add inspector controls to product search

* Add changelog

* Move inspector panel to Styles

* Remove not used Fragment

* improve code

* Rename enum

* Rename type ProductSearchBlockProps

* Use PositionOptions constant

* Change hook namespace
2024-09-13 18:52:12 -03:00
Barry Hughes 9b41815229
Produce CSV Import enhancements (cherry-pick PR#51344) (#51348)
* Move AJAX callback to produt importer controller

* Add better validation for file paths in CSV product import

* Add utility function to create a no-index directory

* Add CSV upload helper

* Simplify product CSV import logic using helper

* Update tests

* Add changelog

* Changelog.

* Remove changelog file; entry added directly to root changelog.txt.

---------

Co-authored-by: Jorge Torres <jorge.torres@automattic.com>
2024-09-13 11:39:37 -07:00
Tung Du 93053f39ed
[Experimental] Product Filters: New and improved blocks structure (#51096) 2024-09-14 00:04:06 +07:00
Cem Ünalan 3854f710df
In-App: make in-app header sticky (#51187)
* In-App: make in-app header sticky

z-index: 1 is required to make sure the header appears above product
cards.

Also had to remove a parent `overflow: hidden` property. Apparently,
it's there to remove a second scrollbar. Upon removal, I didn't see
any double scrollbars, although it can be platform differences. Will
check it out in the PR review.

* Add changefile(s) from automation for the following project(s): woocommerce

* Update Change Your Store width for Marketplace search listing

Setting it 450px hardcoded causes overflows and breaks the layout.

See:
https://github.com/woocommerce/woocommerce/pull/51187#issuecomment-2344003169

* Move CYS tweak to the component

It was placed in the marketplace SCSS code previously. GitHub:
https://github.com/woocommerce/woocommerce/pull/51187#discussion_r1758381473

* Remove marketplace-specific styles from customize store banner

---------

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Herman <KokkieH@users.noreply.github.com>
2024-09-13 15:55:47 +00:00
Miguel Pérez Pellicer 737afc62e1
Validate and prepare GTIN in structured data (#50926)
* Validate and prepare GTIN in structured data

* Add changelog

* PHPCS

* PHPCS

* Verify gtin is string in prepare gtin

* Tweak tests

* PHPCS

* Tweak is_valid_gtin

* LINT

* Update plugins/woocommerce/includes/class-wc-structured-data.php

Co-authored-by: Mik <mikkamp@users.noreply.github.com>

* Update plugins/woocommerce/includes/class-wc-structured-data.php

Co-authored-by: Mik <mikkamp@users.noreply.github.com>

* Update plugins/woocommerce/includes/class-wc-structured-data.php

Co-authored-by: Mik <mikkamp@users.noreply.github.com>

---------

Co-authored-by: Mik <mikkamp@users.noreply.github.com>
2024-09-13 19:11:11 +04:00
Fernando Marichal ce618d6250
[Enhancement] Abstract rating block (#50810)
* Create rating component

* Refactor rating block

* Fix ProductRating component

* Refactor rating blocks

* Add changelog

* Review count maybe visible for rating stars

* Rename props

* Remove 0 after No reviews message

* Remove review count from rating-stars
2024-09-13 09:35:56 -03:00
Seghir Nadir 348455fb02
Add focus styles for select in Checkout block (#51332)
* Add focus styles for select

* Add changefile(s) from automation for the following project(s): woocommerce-blocks

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-13 11:13:40 +01:00
Seghir Nadir 1b28b0f1ca
Use site language when making Store API requests in Cart/Checkout (#51244)
* Use correct langauge by reseting the locale param

* use typescript
2024-09-13 11:42:21 +02:00
Karol Manijak 29ed02836a
Disable client-side nav in PC block when filters are inside (#51358)
* Disable client-side nav in PC block when filters are inside

* Add changelog

* Fix lint
2024-09-13 09:58:17 +02:00
Corey McKrill 9d76114472
Update Action Scheduler to 3.8.2 (#51353)
Co-authored-by: Néstor Soriano <konamiman@konamiman.com>
2024-09-13 09:37:13 +02:00
Basti 4dad4a9265
Fix: Version in mini-cart.php (#51020)
Co-authored-by: Néstor Soriano <konamiman@konamiman.com>
Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
2024-09-13 08:51:31 +02:00
Vishnu Gopal 411d9ae78c
Add subscribe notices for products without subscription (#51060)
- Add a new notice to the plugins list for products used without subscriptions reminding them to purchase.
- Remove notices for expired and expiring subscriptions from WooCommerce settings screens.
- Change link for subscribe and renew to add the product directly to cart.

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-13 10:33:54 +05:30
RJ d7ccebc004
fix: add check for wp_get_current_user() before calling it (#51302)
* fix: add check for wp_get_current_user() before calling it

* changelog

* changed try catch to catch throwable
2024-09-13 12:44:28 +08:00