Commit Graph

21749 Commits

Author SHA1 Message Date
paul sealock 480771e5ca make sure all scripts present 2024-08-29 12:59:51 +12:00
paul sealock 3a541ffd37 handle all scripts 2024-08-29 12:11:42 +12:00
paul sealock 9db7e547f1 remove jquery-in-react 2024-08-29 11:54:30 +12:00
paul sealock 60f0d04e1c remove jquery-in-react 2024-08-29 11:54:13 +12:00
paul sealock 89aed882af check param isset first 2024-08-27 14:04:04 +12:00
paul sealock e2ec1c46f8 fix conflict resolution 2024-08-27 13:22:24 +12:00
paul sealock 5ed03a729f Merge branch 'trunk' into try/add-settings-refresh-next 2024-08-27 13:11:04 +12:00
Naman Malhotra 4142afbc05
Update stable tag to 9.2.3 (#50965)
woorelease: Update stable tag to 9.2.3
2024-08-27 01:36:29 +07:00
Corey McKrill 70faf5bba2
Checkout: prevent error from get_value method when WC has not been properly initialized (#50692)
* Ensure WC's customer and cart props are initialized

If the customer or cart property of the main WooCommerce class is
accessed before the `woocommerce_init` action has fired, those
properties will be `null` instead of containing their respective
classes, which can cause a fatal error if you then try to access a
method on one of the classes. This makes sure the props will always
return a class.

Fixes #50245

* Revert "Ensure WC's customer and cart props are initialized"

This approach unexpectedly breaks a lot of things...

This reverts commit 310fd2c118.

* Alternate solution

The attempt to fix the problem wholistically ended up causing a lot of
things to break, so this is the band-aid approach instead.

* Add changelog file

* Remove unnecessary assignment to global POST var

This was polluting the results of the new test, causing it to fail.
2024-08-26 08:17:36 -07:00
Chi-Hsuan Huang 30ae60b273
Fix flaky remote logging PHP unit test (#50950)
* Fix flaky remote logging test_remote_logging_allowed() test

* Fix Undefined variable $enabled

* Add changelog
2024-08-26 20:57:03 +08:00
Ilyas Foo 99c1980b94
Show payments recommendation on settings payment main page (#50947)
* Show payments recommendation when main settings element is found

* Changelog

* Revert to old logic instead
2024-08-26 20:18:48 +08:00
Albert Juhé Lluveras 08f724b8d8
Improve the tabs focus style in the Product Details block with Minimal style variation (#50880)
* Improve the tabs focus style in the Product Details block with Minimal style variation

* Add changelog file

* Remove direct child selector
2024-08-26 13:18:28 +02:00
Ilyas Foo b4322595c5
Hide payments recommendation when no extensions are available (#50949)
* Hide payment recommendations when no extensions are available

* Changelog
2024-08-26 16:53:05 +08:00
Alba Rincón 9e40710482
CYS - Remove usage of `prepare_item_for_response` function in `Images` endpoint (#50923)
* Remove usage of `prepare_item_for_response` function

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

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-08-26 09:58:54 +02:00
Albert Juhé Lluveras e6b1cac49c
Update compatibility layer logic so it detects blocks inside patterns (#50595)
* Detect Legacy Template block when it's inside a pattern

* Detect Single Product blocks when they are inside a pattern

* Typo

* Remove empty error messages

* Fix wrong variable passed to parse_blocks()

* Remove unnecessary parameters

* Add tests to check if the Single Product template contents are updated when the Legacy Template is in the content

* Add changelog file

* Linting

* Typo

* Make sure the correct template is used when deciding whether to disable the compatibility layer or not

* Simplify code

* Remove duplicate content in tests

* Simplify single product slug logic

* Add an extra test to make sure Single Product template logic doesn't leak into other templates

* Linting

---------

Co-authored-by: Sam Seay <samueljseay@gmail.com>
2024-08-26 09:46:32 +02:00
Tomek Wytrębowicz 53be5776f4
Remove the usage of `<ReportSummary isRequesting>` as it has no effect (#50751)
The support for such property was removed in woocommerce/woocommerce-admin#4858 ~4 years ago.

Co-authored-by: github-actions <github-actions@github.com>
2024-08-25 19:56:59 +02:00
Gabriel Manussakis 50e7a85821
[Accessibility] Remove title attribute from images in product gallery (#50886)
* Remove title attribute from images in product gallery

* Remove wp-post-image class from image selector

* Scope the image locator to the link

* Add changelog file

* Move image params filter out of wp_get_attachment_image call

* Add docblock to the woocommerce_gallery_image_html_attachment_image_params filter

* Remove unnecessary empty space
2024-08-23 12:37:45 -07:00
Mike Jolley 6c4a26770d
Order confirmation: Update mobile order summary styling so items appear side by side (#50722)
* Update order confirmation wording

* Style order details inline

* Changelog

* Update test due to change of text
2024-08-23 19:22:59 +01:00
Gabriel Manussakis d773bb483a
[Accessibility] Focus coupon input if it has an error (#48738)
* Focus cupon input if it has errors

* Add changelog file

* Add styles to coupon field with error on cart page

* Make coupon errors accessible on the cart page

* Add styles to coupon field with error on checkout page

* Rename coupon variables on cart

* Focus coupon field with error before updating live region on cart page

* Focus coupon field with error before updating live region on checkout page

* Remove incorrect early return

* Update coupon error notice test

* Improve coupon error message semantics

* Fix coupon errors for block based themes

* Update tests to not look for coupon errors on the notice block

* Rename coupon-error-message to coupon-error-notice

* Fix notice if coupon doesn't exist on tests

* FIx invalid coupon notice on classic theme test

* Update test for coupon inline notice

* Fix code formatting

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

* Fix code formatting

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

* Fix code formatting

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

* Fix code formatting

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

* Don't clear coupon input if code doesn't exist

* Create coupon error notice mixin

* Update coupon error notice styles

* Coupon error notice T19 compatibility

* Coupon error notice T17 compatibility

* Coupon error notice TT1 compatibility

* Coupon error notice TT compatibility

* Coupon error notice TT2 compatibility

* Coupon error notice TT3 compatibility

* Add spaces around paramenters

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

* Add spaces around paramenters

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

* Replace $red SCSS variable with a CSS one

* Keep input with the invalid coupon code after notice appears

* Fix typo in comment

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

* Fix typo in comment

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

* Break notice message into two lines

* Break if statement into two lines

---------

Co-authored-by: Darin Kotter <darin.kotter@gmail.com>
Co-authored-by: Mike Jolley <mike.jolley@me.com>
2024-08-23 19:22:28 +01:00
Caleb Mazalevskis b4fd419f74
Fix typos. (#50047) 2024-08-23 18:26:09 +01:00
Seghir Nadir e66ccf698c
Run Checkout block coupon filter on empty array (#50876)
* Run Checkout block coupon filter on empty array

* fix conditional

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

* remove useless eslint skip

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-08-23 15:34:57 +00:00
github-actions[bot] db8890bbb0
Delete changelog files based on PR 50892 (#50912)
Delete changelog files for 50892

Co-authored-by: WooCommerce Bot <no-reply@woocommerce.com>
Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
2024-08-23 10:57:26 -03:00
Maikel Perez c09e45a391
Blocks E2E: Move collections e2e tests from product collection file to its own file (#50853)
* Move collections e2e tests from product collection file to its own file

* Add changelog file
2024-08-23 09:26:38 -04:00
Karol Manijak 2f68f9265b
Fix most of lint warnings (#50869)
* Fix number of lint warnings

* Add changelog

* Improve mocking value

* Fix exports

* Fix mock

* Bring back the empty array hook dependency
2024-08-23 14:30:14 +02:00
Alba Rincón 257762b564
Fix restoring product prices on bulk edit (#50836)
* Set the regular price when the `Change to:` price is left empty

* Avoid fatal error when price is empty

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

* Add e2e test

* Fix lint errors

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-08-23 13:28:11 +02:00
Alba Rincón 091141218e
CYS - Move the `private/patterns` endpoint to woocommerce admin API (#50400)
* CYS - Move the ai/store-title endpoint to woocommerce admin api

* Add middleware and callback

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

* Fix lint error

* CYS - Move the ai/business-description endpoint to woocommerce admin API

* CYS - Move the ai/store-info endpoint to woocommerce admin API

* Update endpoint

* CYS - Move the ai/images endpoint to woocommerce admin API

* CYS - Move the `ai/patterns` endpoint to woocommerce admin API

* CYS - Move the `ai/product` endpoint to woocommerce admin API

* CYS - Move the `ai/products` endpoint to woocommerce admin API

* CYS - Move the `private/patterns` endpoint to woocommerce admin API

* Remove unnecessary variable

* Replace endpoint

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

* Fix lint errors

* Fix some feedback

* Refactor route to return an error not an exception and add tests

* Fix lint errors

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-08-23 13:27:57 +02:00
Seghir Nadir eef4749d97
Ensure translation is loaded for new shared file in Checkout Block (#50892)
* Ensure translation is loaded for new shared file

* add other files

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

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-08-23 12:37:33 +02:00
Mike Jolley 42cdc0e978
Block Checkout: Respect default saved payment method when using tokens (#50481)
* activeSavedToken state is unused

* Select is_default saved token by default

* changelog

* Unused objectHasProp
2024-08-23 12:03:11 +02:00
Jorge A. Torres ae6c278e53
Cherry-pick PR#50881 into trunk (#50897)
* Revert "PluginUtil: Add method to get active valid plugins (#48709)"

This reverts commit 4d68cd486e.

* Reintroduce get_all_active_valid_plugins public function after revert (#50885)

Retroduce get_all_active_valid_plugins public function after revert

---------

Co-authored-by: Naman Malhotra <naman03malhotra@gmail.com>
2024-08-22 20:06:49 -03:00
Jorge A. Torres 06f441fde6
Cherry-pick PR#50854 into trunk (#50896)
* Revert "Drop Select2 in Backwards compatable manner (#48731)"

This reverts commit 8f98a2a057.

* Fix linting issue

---------

Co-authored-by: Naman Malhotra <naman03malhotra@gmail.com>
2024-08-22 20:05:55 -03:00
Jorge A. Torres ff0a2c7ced
Bump stable tag after 9.2.2 (#50895)
Update stable tag
2024-08-22 18:52:16 -03:00
Maikel Perez a779788a93
Blocks E2E: Move the inspector controls e2e tests from product collection file to its own file (#50849)
* Move the inspector controls e2e tests from product collection file to its own file

* Add changelog file
2024-08-22 10:55:20 -04:00
Roy Ho 320c165cb8
Add additional size units to product image element (#50770)
* Add additional size units to product image element

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

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-08-22 06:32:03 -07:00
github-actions[bot] 7ba0fb4fde
Prep trunk for 9.4 cycle (#50859)
Prep trunk for 9.4 cycle with version bump to 9.4.0-dev

Co-authored-by: WooCommerce Bot <no-reply@woocommerce.com>
2024-08-22 09:47:25 -03:00
piinthecloud 1bf6b6e44a
fix lint rule (#50843)
* fix lint rule

* add manifest

* add changelog
2024-08-22 14:25:57 +02:00
Albert Juhé Lluveras 2c0d9e0622
Store API: Add test coverage for Product Reviews endpoint (#50639)
* Store API: Add test coverage for Product Reviews endpoint

* Add changelog file

* Use assertSame() instead of assertEquals()

* Linting

* Fix category_id param test
2024-08-22 13:47:41 +02:00
Praveen 2853488410
Conditionally set new order email sent meta field (#50858)
* Add conditional logic to set email sent metafield

* Add changelog file for fix being submitted
2024-08-22 13:29:34 +05:30
Alba Rincón ae6f7837b2
CYS - Move the `ai/products` endpoint to woocommerce admin API (#50396)
* CYS - Move the ai/store-title endpoint to woocommerce admin api

* Add middleware and callback

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

* Fix lint error

* CYS - Move the ai/business-description endpoint to woocommerce admin API

* CYS - Move the ai/store-info endpoint to woocommerce admin API

* Update endpoint

* CYS - Move the ai/images endpoint to woocommerce admin API

* CYS - Move the `ai/patterns` endpoint to woocommerce admin API

* CYS - Move the `ai/product` endpoint to woocommerce admin API

* CYS - Move the `ai/products` endpoint to woocommerce admin API

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

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

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

* Fix merge issues

* Add strict types

* Start extending from AIEndpoint

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-08-22 09:47:03 +02:00
Chi-Hsuan Huang 0a60c3c5ec
Add e2e tests to confirm that the store is in coming soon mode after completing the core profiler (#50784)
* Update core profiler setup e2e to handle coming soon mode

This adds a new test to confirm that the store is in coming soon mode after completing the core profiler. Additionally, it adds a new test to confirm that the store is in coming soon mode after skipping the core profiler.

These changes are necessary to ensure that the core profiler setup works correctly when the store is in coming soon mode.

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

* Include coming soon test case in core profiler steps

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-08-22 11:34:23 +08:00
Chi-Hsuan Huang b04f535a54
[Beta tester] Add fake WooPayments completion tool (#50699)
* Add woocommerce beta tester fake wcpay tool

* Add changelog
2024-08-22 10:27:35 +08:00
Ilyas Foo 8b62cf87e1
Improve reset password check using or locator (#50823)
* Update to use or locator

* Changelog
2024-08-22 08:57:46 +08:00
Sam Seay 35cdc6dc20
Use syncpack to lock pnpm version till we can fix issues (#50828) 2024-08-22 12:34:42 +12:00
Lucas fa6ea00b3c
Use stricter text selector on test (#50848)
* Use stricter text selector

Removes text ambiguity to avoid errors like "Strict mode violation resolved to 2 elements". For instance, it might search for "Settings", and there might be a menu "Foo Settings" which would resolve to 2 elements. This changes the behavior to match the exact test, instead of a substring.

* Update page-loads.spec.js

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

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-08-21 13:25:27 -07:00
Tomek Wytrębowicz 63f96eb5a8
Mark props with defaults as not required (#50816) 2024-08-21 21:59:42 +02:00
Adrian Moldovan e1e628ccf0
[e2e tests] Fix flaky navigation to editor (#50841) 2024-08-21 22:18:20 +03:00
Tomek Wytrębowicz d31aae633a
Move `ReportError` to `@woocommerce/components` as `AnalyticsError` (#50108)
Co-authored-by: Eason <eason.su.tw@gmail.com>
2024-08-21 20:12:13 +02:00
Tomek Wytrębowicz 536807ca43
Fix optional param in PHPdoc for WC_Admin_Marketplace_Promotions (#50732)
Co-authored-by: github-actions <github-actions@github.com>
2024-08-21 20:11:16 +02:00
Jorge A. Torres b798b261b3
Update stable tag to 9.2.1 (#50850)
woorelease: Update stable tag to 9.2.1
2024-08-21 15:10:28 -03:00
Corey McKrill b430971093
Avoid fatal in `wc_get_chosen_shipping_method_ids` (#50774)
This ensures the WC() session object is initialized before attempting to
get chosen shipping methods. If it's not initialized,
`wc_get_chosen_shipping_method_ids` will return an empty array.

Fixes #50283
2024-08-21 10:28:54 -07:00
Tomek Wytrębowicz 0322426dce
Reduce duplicated code in Analytics classes (#49425)
- Add code docs to the Analytics classes and make get_order_statuses non-internal.
   Document analytics classes and some methods. Add simple examples of how to use it. Give a brief "why?" and "when?" answers. Add links between related classes.
- Replace `Automattic\WooCommerce\Admin\API\Reports\*\Query` classes with a single `GenericQuery` class.
- Reduce the amount of duplicated code in Analytics `DataStore`s.
- Reduce duplicated code in Analytics controllers
- Add `FilteredGetDataTrait`, `OrderAwareControllerTrait`, and `StatsDataStoreTrait` for extension developers to reuse while creating custom Analytics
- Add a `GenericQuery` to reduce duplicated code in Query classes.
   Also, to expose it to community extensions for reuse.
- Use `GenericQuery` instead of duplicated `Query` classes
- Move caching code to shared `DataStore::get_data`
- Move intervals specific `initialize_queries` to shared Trait
- Move intervals checking logic to shared `StatsDataStoreTrait`
- Reuse `GenericController::prepare_item_for_response` for `Reports\Controller` subclasses
- Reuse `GenericController::get_collection_params` for `Reports\Controller` subclasses.
- Move `get_items` code to shared `GenericStatsController`
- Move shared paginable controllers `get_items` code to the generic class
- Move fields param to `GenericStatsController`
- Separate `OrderAwareControllerTrait` from `ReportController`
   to allow specific Analytics Controllers to extend the `Generic(Stats)Controller` directly, without extending the `ReportController`, which is used to list reports.


It's meant not to change any behavior. However, due to unification, it did tweak a few things mostly from the developer perspective:
- Previously, only some controllers threw an error from `get_items` when the data was missing; some did not. Now controllers the following Controllers changed behavior to also for such an error:
	- Coupons
	- Customers
	- Downloads
	- Orders
	- Products
	- Taxes
- the error has one error code from all controllers:`woocommerce_rest_reports_invalid_response` (previously there were report-specific)
   - `woocommerce_rest_reports_categories_invalid_response` -> `woocommerce_rest_reports_invalid_response`
- In Orders Controller, the `$orders_data['order_number'], $orders_data['total_formatted']` are set in the `prepare_item_for_response` method, not in the `get_items`So `prepare_item_for_response` function is expected to be called with bare data from Query
- In Products Controller extended-info is now sanitized in the `prepare_item_for_response` method, not in the `get_items`
- ⚠️ (breaking) Previosly some Controlers' `prepare_item_for_response` function was getting and expecting first argument to be casted to `object`, while the rest of controllers used data as returned from the Store. This PR unifies this behavior  for
   -  `Coupons\Stats\Controller`
   -  `Taxes\Controller`
   -  `Taxes\Stats\Controller`
   So, if you extend those classes and override `prepare_item_for_response` in a way that expects `object`, you will get an error. (I have not found such cases in the `all-plugins` repo.)
   All `woocommerce_rest_prepare_report_*` filters remain intact and inconsistent for backward compatibility.

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Mik <mikkamp@users.noreply.github.com>
2024-08-21 19:23:51 +02:00