Commit Graph

63535 Commits

Author SHA1 Message Date
Moon 5352c705b5
Fix Shipping Task input visual issue on Firefox (#45778)
* Fix layout issue -- add align-items for flex items

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

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-03-22 10:52:47 -07:00
Leif Singer a45e5eda4f
Add a test for the `woocommerce_specific_allowed_countries` option (#45810)
* add a test for the `woocommerce_specific_allowed_countries` option

* add changelog file
2024-03-22 10:47:25 -07:00
Nathan Silveira ff79576cd3
Fix word break inside columns in product editor (#45687) 2024-03-22 14:42:15 -03:00
Maikel Perez 54476cb7f3
After Variations are created, disable the fields that don’t do anything (#45838)
* Disable woocommerce/product-regular-price-field when product type is variable

* Disable woocommerce/product-sale-price-field when product type is variable

* Disable woocommerce/product-sku-field when product type is variable

* Disable Track stock quantity toggle when product type is variable

* Disable woocommerce/product-radio-field when product type is variable

* Disable woocommerce/product-shipping-class-field when product type is variable

* Disable woocommerce/product-shipping-dimensions-fields when product type is variable

* Add changelog files

* Fix php linter
2024-03-22 13:52:42 -03:00
Damián Suárez 27124828e9
[Product Block Editor]: register `metadata` attribute for all blocks (#45657)
* register the `metadata` attribute for all blocks

* bind value attribute with the nane product entity

* changelog

* add a ToDo note

* rename edit component fn to NameBlockEdit

* changelog

* restore @ts-export line

* fix eslint issue

* fix eslint issue
2024-03-22 12:23:38 -04:00
Adrian Moldovan e9777de4aa
Update concurrency group for pr label workflow (#45793) 2024-03-22 12:51:28 -03:00
Veljko V 1ba4bcef58
Update existing test to include scenarios for adjusting shipping and payment options (#45755)
* Add test for shipping methods but as commented

* Update comment with issue number
2024-03-22 12:44:14 -03:00
Fernando Marichal 3842611975
Update copy of inventory management fields (#45801)
* Update copy of inventory management fields

* Add changelog

* Add changelog
2024-03-22 11:49:54 -03:00
Fernando Marichal 4a0d7f5822
Enable 'Publish' button when product status is draft (#45812)
* Enable publish button when draft

* Add changelog
2024-03-22 11:49:22 -03:00
Fernando Marichal dd550ddca4
Add an image to multiple variations using Quick updates (#45774)
* Add component

* Add utils

* Add styles

* Use utils in images block

* Add changelog

* Add tracks event

* Add mode upload by default

* Fix js tests

* Fix variation-actions-menus tests
2024-03-22 11:49:11 -03:00
Seghir Nadir 401737994f
Use state name in Checkout block address card (#45799)
* Use state name in address card

* fix linting issue

* remove extra check for checkout endpoint

* address review feedback
2024-03-22 15:14:14 +01:00
Adrian Moldovan 88834ff469
[e2e tests] Disable focused test (#45825) 2024-03-22 12:45:04 +00:00
Seghir Nadir 7d944cd259
Add Shipping phone number to the order preview panel (#45788)
* Add Shipping phone number to the order preview panel

* Update plugins/woocommerce/src/Internal/Admin/Orders/ListTable.php

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

* Update plugins/woocommerce/src/Internal/Admin/Orders/ListTable.php

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

* Update plugins/woocommerce/src/Internal/Admin/Orders/ListTable.php

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

* Update plugins/woocommerce/src/Internal/Admin/Orders/ListTable.php

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

---------

Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com>
2024-03-22 13:08:53 +01:00
Jonathan Lane 4c4a581b71
[E2E] Initiate a woo.com connection (#45813)
Co-authored-by: Jon Lane <jon.lane@automattic.com>
2024-03-22 11:53:47 +02:00
Manish Menaria ca7aed0a95
Product Collection: Don't show publicly non-queryable taxonomies (#45781)
* Don't show publicly non-queryable taxonomies

The main enhancement involves adding a visibility filter to the taxonomies query. Now, the query considers the `publicly_queryable` property of each taxonomy. Only taxonomies marked as publicly queryable are included in the final list returned by the `useTaxonomies` hook. This change ensures that the Product Collection block's taxonomy controls only display taxonomies relevant and accessible to the public, enhancing both the usability for content creators and the relevance of taxonomy selections for site visitors.

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

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-03-22 15:01:58 +05:30
Luigi Teschio c2a3abae51
[CYS - E2E tests] Add E2E tests for the loading screen (#45804)
* CYS: initial E2E tests loading page

* add more cases

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

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-03-22 10:07:33 +01:00
Christopher Allford b8bd480faf
Ensure Product Collection Block's `queryId` Uniqueness (#44522)
Since we don't need it to be _perfectly_ stable,
we can just set the `queryId` to the instance ID
on every component mounting. This is fine and
won't mark the attribute as dirty unless a
collection block is added, deleted, or moved
in just the right way. The exception to this
is collection blocks in sync patterns.
In this case the ID cannot change
because it can cause update loops in some
cases that freeze the browser.
2024-03-22 01:40:15 -07:00
Christopher Allford 5002b62d00
Reset Product Collection Pagination When Filtering (#45693)
Since we can't be sure that a page exists once the filters have been
changed we should reset the page when they do.
2024-03-21 14:03:13 -07:00
Maikel Perez a5943ab0ef
Advanced settings > Features: remove Navigation setting when store isn't using it (#45800)
* Remove Navigation setting when store isn't using it

* Add changelog file

* Fix api core test
2024-03-21 16:09:30 -03:00
Patricia Hillebrandt b790f155d0
[CYS on Core] Update the copy for the fonts opt-in modal (#45805)
* Update the copy for the fonts opt-in modal

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

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-03-21 19:49:37 +01:00
Jorge A. Torres db34a15116
Handle posts > HPOS redirect more gracefully when backup post is missing (#45605)
* Attempt to determine order type from HPOS side too in `PostsRedirectionController`

* Add changelog

* Simplify redirect logic

* Linter hates short ternaries
2024-03-21 18:33:59 +00:00
Alba Rincón 4eb9063a06
[CYS] Update the `Share feedback` survey design (#45802)
* Update the CYS feedback survey design

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

* Fix typo

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-03-21 18:30:40 +01:00
Adrian Moldovan de90c5f46e
[e2e tests workflows] Run non HPOS e2e tests on push instead of PR (#45746)
* Run non HPOS e2e tests on push instead of PR

* Removed evaluate job and renamed workflow
2024-03-21 10:21:37 -07:00
Adrian Moldovan d8453be3df
[e2e tests] Disable the task list reminder bar in products list (#45772)
Disable the task list reminder bar, it can interfere with the quick actions
2024-03-21 10:20:32 -07:00
Adrian Moldovan 1e0be60e7e
[e2e tests] Add tests for users management (#45673)
* Add skeleton spec

* Add missing await

* Update customer role in test env setup

* Split specs

* Add tests for user creation

* Added tests for users deletion

* Fix API tests after env setup customer role change

* Fix API tests after env setup customer role change

* Add update customer steps

* Update user edit tests

* Updated comment
2024-03-21 10:18:23 -07:00
Corey McKrill b2d70262b7
Products: Avoid fatal during variation search (#45776)
* Products: Avoid fatal during variation search

Most product types' data objects store `WC_Product_Attribute` objects in
their attributes property, whereas Product variation data objects store
an associative array of key/value pairs in their attributes property.
This is problematic because it means a fatal error can be thrown when
code assumes that a product's attributes are objects with methods rather
than simply strings. Ideally, attributes would work the same everywhere,
but it would be challenging to fix that in the codebase without breaking
backcompat. So instead, in this PR, we are simply adding some logic in
the `find_matching_product_variation` method to ensure that we're not
trying to retrieve a variation of a product object that is already a
variation.

* Fix linting issue
2024-03-21 18:07:09 +01:00
Patricia Hillebrandt 5ee4a4c1b1
[CYS] Ensure the CYS task is marked as complete only if the user customized their theme in the editor (#45792)
* Make sure the woocommerce_admin_customize_store_completed is marked as complete whenever global styles are updated by the user.

* Check for the WP_Post object before attempting to access the content property

* Mark the cys task as completed when modifying a template or template_part

* Unify the mark as complete methods and update the hooks.

* update docblock

* remove unnecessary ()

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

* Ensure the woocommerce_admin_customize_store_completed option is marked as complete whenever the user updates their styles in the editor

* Fix lint errors

---------

Co-authored-by: Alba Rincón <alba.rincon@automattic.com>
Co-authored-by: github-actions <github-actions@github.com>
2024-03-21 17:36:41 +01:00
Damián Suárez 72d2a39de2
[Product Block Editor]: document woocommerce/product-text-area-field field block (#45513)
* [Product Block Editor]: document `woocommerce/product-text-area-field` block

* changelog
2024-03-21 10:49:04 -04:00
Roy Ho 5aac82b0fe
Consolidate and move password protected product test (#45752)
* Consolidate and move password protected product test

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

* Move test to non side effect and remove remaining empty test file

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-03-21 07:44:30 -07:00
And Finally 40b14aea16
Don't return from `WC_Admin_Marketplace_Promotions::fetch_marketplace_promotions` if we get an empty or bad response (#45786)
* Removed return statements from conditions in `WC_Admin_Marketplace_Promotions::fetch_marketplace_promotions`. With these, if the marketplace gets a good response from the API and then later a bad or empty response, it fails to update the promotions transient, meaning that notices and menu bubbles may persist in stores after we've removed them from the API. We check the dates of promotions, so they should disappear when they expire, but it's a good idea to clear this data if the API returns an empty response or if there's an error fetching it.

* Changelog.

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

* Removed duplicate changelog file.

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

* Removed duplicate changelog file.

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-03-21 14:42:25 +00:00
Damián Suárez b357bdc593
[Product Block Editor]: introduce `woocommerce/entity-product` source handler (#45616)
* introduce woocommerce/entity-product source handler

* add test for product entity source handler

* add useSource value test

* changelog

* clean unused helper

* minor TS changes

* rename TS type
2024-03-21 09:00:23 -04:00
Tom Cafferkey f2d828f49a
Block Hooks API: Add the block hooks algorithm to Woo templates (#45737)
Co-authored-by: github-actions <github-actions@github.com>
2024-03-21 08:50:40 +00:00
Tom Cafferkey e4017f0800
Block Hooks: Run block hooks on all block themes (#45581)
Co-authored-by: github-actions <github-actions@github.com>
2024-03-21 08:25:27 +00:00
Vedanshu Jain 265f3403e2
New filter to set a custom precision value for the WC calculations (#45743)
* New filter to set a custom precision value for the WC calculations

* Add changelog and docblock.

* Add since tag.

* Add since tag.

* Add prefix + correct version.

* Better filter name

---------

Co-authored-by: Yordan Soares <contacto@yordansoar.es>
2024-03-21 07:53:40 +00:00
Vedanshu Jain 622c178f28
[Tweak] Fix comment in order-received.php template (#45742)
* [Docs] Correct filename

* PHPCS fixes.

* Fix version number.

---------

Co-authored-by: konradpomocny <36989635+konradpomocny@users.noreply.github.com>
2024-03-21 07:48:02 +00:00
Luigi Teschio 7f45f13c7d
CYS - Core: fix: not mark Customize your store step as completed when the user switches theme (#45762)
* CYS - Core: fix: not mark   step as completed when the user switches theme

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

* trigger CI

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-03-20 22:47:05 +00:00
Roy Ho 5acef655b8
Add gap between quantity field and add to cart button when stacked (#45758)
* Add gap between quantity field and add to cart button when stacked

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

* Add specificity to quantity

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-03-20 15:41:10 -07:00
Michael Pretty bef14c0320
Add index to zone_id column for woocommerce_shipping_zone_locations (#45598)
Add an index to the zone_id column of woocommerce_shipping_zone_locations.
Remove the separate index on location_id. Shipping zone locations are read by zone_id when a ShippingZone is read from the database. The zone_id is also used in join statements with the shipping zones table. So an index would improve performance there. The separate KEY for the location_id column is not needed as the primary key for the table already creates an index automatically.
2024-03-20 15:14:23 -07:00
Fernando Marichal d5651111fa
Update product editor experiment name and enable pre-publish panel by default (#45745)
* Enable prepublish panel by default

* Rename experiment

* Add changelog

* Fix e2e tests

* Fix disable-block-editor
2024-03-20 17:14:54 -03:00
Adrian Moldovan 207cccdc33
[e2e tests] Improve test stability by using a stricter locator when checking product variation (#45710)
Use a stricter locator when asserting the size variation
2024-03-20 16:21:43 -03:00
Alba Rincón 90f322a7f2
Improve hero product chessboard pattern spacing (#45756)
* Improve hero product chessboard pattern spacing

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

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-03-20 18:56:54 +00:00
Fernando Marichal 50bec2d1b0
Change hidden tag behavior (#45766)
* Modify header hidden tag

* Modify visibility section hidden tag

* Add changelog
2024-03-20 15:34:33 -03:00
Matt Sherman 4272a782a6
Product Editor: Fix crash when uploading files from variations list Quick Update menu (#45748)
* Handle when downloads menu is passed an empty selection

* Changelog
2024-03-20 14:24:15 -04:00
Alba Rincón 87bfa48638
[CYS] Fix the border of the toggle control in the assembler (#45744)
* Fix the color of the toggle control in the assembler

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

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-03-20 19:03:31 +01:00
Niels Lange be63107c92
Improve local pickup flow (#45614)
* Update shipping calculation copy

* Update shipping calculation copy

* Update shipping calculation copy

* Update legacy local pickup copy

* Remove ‘target="_blank"’ and ‘rel="noopener noreferrer"’

* WIP: Conditional message and display of legacy local pickup option

* Make util function static

* Make texts translatable

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

* Fix PHPCS errors

* Fix PHPCS errors

* Update plugins/woocommerce/includes/class-wc-shipping.php

Co-authored-by: Gerhard Potgieter <potgieterg@gmail.com>

* Remove duplicate helper method

* Improve helper method

* Replace “esc_html__” with “wp_kses” to keep URL clickable

* Optimise is_legacy_local_pickup_active() method

* Adjust CSS definitions

* Refactor is_cart_block_default() and is_checkout_block_default()

* Ensure that Rest of the World shipping methods are available

* Remove obsolete space

* Adjust text spacing

---------

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Gerhard Potgieter <potgieterg@gmail.com>
2024-03-20 14:54:12 +00:00
Paulo Arromba f1dd1e02a6
Docs: migrate Template structure & Overriding templates via a theme (#43571)
* Removed wrong blockquote

* Lint exception

* Added changelog

* Update docs-manifest.json
2024-03-20 14:49:20 +00:00
Thilina Pituwala d065b786f5
Remove the ability to update Woo.com extensions not available in WP.org plugin directory (#44279)
* Remove the hook for updating update_plugins transient with data fetched from Woo.com

This prevents the WP core from updating Woo.com plugins.

* Remove the hook for updating update_themes transient with data fetched from Woo.com

This prevents the WP core from updating Woo.com themes.

* Remove the class hand hooks used for updating the API response of WP.org with update URI's from Woo.com.

* Add change log file.

* Add update_plugins and themes transient update hooks back while removing the package from Woo.com extensions.

When a Woo hosted plugin has an update, this will allow showing the update message but block the ability to update.

* Adding a hook to modify the plugin update notification on plugins.php.

When a Woo.com hosted plugin has an update available it will show a message to install Woo Marketplace plugin, if it's not installed.

* Utility class for Woo Marketplace plugin.

* Check wether the Woo marketplace plugin is already installed before modifying update notice.

* Update docblocks.

* Add status end point for wccom-site API.

* Check the existence of marketplace plugin only after the plugins are loaded.

* Add WP.org plugin api response updater back to core.

* Function to identify if the market-place plugin is installed.

* Update status API response with installation status.

* Update the status variable push to store admin frontend with information about market-place plugin.

* Styles for woo-connect-plugin component.

* Component for displaying the message to install Woo Connect plugin based on the installation status.

* Add Woo Connect plugin notice to my-subscriptions page.

* Add Woo connect plugin message to discover page.

* Add Woo Connect install/download urls to constants file.

* Add a modal for asking the user to install Woo Connect plugin.

* Update strings with constants.

* Show the Woo Connect modal when user updating plugins without Woo Connect installed.

* Show Woo Connect install notifications only when the site is connected.

* Update plugin management page messaging.

* Update notification on connect screen.

* Update notifications on plugin management page.

* Remove additional spacing in Plugin Install Notice and spacing in the discover page results and the notice.

* Use notice component instead of Card.

* Minor improvements to readability.

* Add translation support for messages displayed on plugins.php.

* Update woo connect plugin installation URL (#45127)

* Ad functions for generating WooConnect plugin install URLs.

* Make WooConnect install url to available to marketplace components.

* Make WooConnect install url to available to marketplace components.

* Link install buttons to install URL with access_token and secret.

* Update Woo Update Manager download url.

* Show admin notice to install Woo Update Manager on plugins.php.

* Adding the view for admin notice for installing woo_update_manager.

* Show woo update manager installation notice on WC admin pages and make the notice dissmisable.

* Update the install url for Woo Update Manager by adding the product ID and introduce a filter to override the product ID.

* Change the plugin name to Woo Update Manager.

* Change the download url for woo update manager

* Fix the margin below the Woo Update plugin install notice.

* Rename Woo Connect to Woo Update Manager.

* Rename wccom-site status endpoint response variables based on plugin name changes.

* Update the plugin main file name for Woo Update Manager.

* Updating the download URL.

* Updating css class names and file names from `woo-connect-plugin` to `woo-update-manager`.

* Change wooConnect variables to wooUpdateManager.

* Rename WC_Helper_Plugin to WC_Woo_Update_Manager_Plugin and remove references to market place plugin.

* Extract and reuse the logic for creating the signature.

* Use WC built-in method to check if the current page is a WC page.

* Add source parameter for installer.

* Update text copies based on flows for in-app Woo Update Manager install message.

* Update admin notice based on the flows.

* Update connect store message.

* Update the text based on the latest flow and show a different message when WUM is installed but not activated.

* Use html text for install notice message.

* Implement the bubble showing number of updates available on WooCommerce -> Extensions menu. Add one to available Woo.com updates if WUM is not installed or activated.

* Update install url to new structure.

* Update download url for WUM.

* Add a method to get the id of the WUM.

* Remove WUM from available to install list of extensions on my-subscriptions tab.

* Remove the hard coded ID of the Woo Update Manager and use the slug to get the ID of the plugin based on update-check response.

* Fixing the notice generated due to empty body.

* Update CTA and image for the not connected screen.

* Increasing the left margin of the install notice to match admin notices.

* Add close button to modal with message to activate WUM.

* Add install/activate notice to Browse and Themes tabs.

* Add the view for showing admin notice for activating the plugin.

* Update plugin name on install admin notice.

* Show install or activate admin notice based on the context.

* Update comment

* Make the linked text shorter in plugin update message.

* Generate a signed auto-install URL for woo hosted plugins without helper API (#45313)

* Generate a signed auto-install URL for woo hosted plugins without helper API

* Use product slug in auto-install URL instead of product id.

* Update activate Woo Update Manager modal buttons.

* Change install url from Woo Update Manager ID to slug.

* Allow defining the menu title and page title separately for when adding menus and sub menus in WooCommerce Admin.

* Set the page title separately for WooCommerce Extensions menu.

* Fix the update count issue.

* Update the download URL for Woo Update Manager.

* Update the download link for WUM in admin notices.

* Show WUM admin notices on WC Admin pages only when the site is connected.

* Remove additional slash in plugin admin url.

* Add wum-installed parameter to the connect URL (#45702)

* Add wum-installed parameter to the connect URL

* Send status of Woo Update Manager installation on connection init.

* Revert "Add wum-installed parameter to the connect URL"

This reverts commit 4c55038b03.

---------

Co-authored-by: Denis Dvali <denis.dvali@automattic.com>

* Fix lint errors.

* Fix lint error.

* Fix lint errors.

* Fix js lint issues.

* Update Woo Update manager admin notice.

---------

Co-authored-by: Muhammad Anas <anastts.pk@gmail.com>
Co-authored-by: Denis Dvali <denis.dvali@automattic.com>
2024-03-20 15:02:23 +01:00
Adrian Moldovan a7fb611665
[e2e tests] Fix create a simple product test flakiness (#45700) 2024-03-20 11:01:12 -03:00
Remi Corson 7c7ed0d7c4
Use WC built-in Action Scheduler to fetch in-app promotions (#45628)
* Use WC built-in ActionScheduler

* Calling `WC_Admin_Marketplace_Promotions::init` immediately from `WC_Admin` constructor. `WC_Admin` is only instantiated in an admin request. If we init marketplace promotions from `woocommerce_init`, we'll be too late to add the callback for the scheduled action that fetches promotion data.

* Changed transient life to 12 hours to match frequency of ActionScheduler action.

* Changelog.

* Updated `fetch_marketplace_promotions` to replace the transient every time it runs. This allows more frequent changes.

* Added filter to allow promotions to be suppressed.

* Fix indentation

* More indentation fix

* Clearing scheduled action if `woocommerce_marketplace_suppress_promotions` filter returns "true".

* Running `clear_scheduled_event` on `init`.

* WP_CLI check

* We were including and instantiating `WC_Admin_Marketplace_Promotions` from the `WC_Admin` constructor. But `WC_Admin` is only instantiated during `is_admin` requests. We also need to respond to cron requests. So we're now including the class from `class-woocommerce.php` if the context is admin or cron, and instantiating it on `init`. This fixes the error in Scheduled Action `action failed via WP Cron: Scheduled action for woocommerce_marketplace_fetch_promotions will not be executed as no callbacks are registered.`

* Linter errors.

* Enhance append_bubble() method

* introduce SCHEDULED_ACTION_INTERVAL

* Make linter happier

* Linter errors.

---------

Co-authored-by: Remi Corson <1649788+corsonr@users.noreply.github.com>
Co-authored-by: And Finally <andfinally@users.noreply.github.com>
2024-03-20 15:00:41 +01:00
Adrian Moldovan 13ac9141a1
[e2e tests] Stabilize product quick delete test (#45636) 2024-03-20 10:59:48 -03:00