* Make shipping total show FREE if price is 0
* Make free text uppercase in order summary
* Add test to check free/paid shipping displays as free or shows price
* Add changelog
* Update E2E test to make sure shipping is selected correctly
* Update shipping cost e2e tests
* Further fixes to e2e tests
* correctly build up the hash on windows
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Show WordPress logo when entering Design With AI from Enterpreneur signup flow.
* Update logo on Assembler Hub.
* Really need to force it.
* Add changelog.
* Newline.
* Newline.
* Fix rebase error.
* Fix double import.
* Remove !important.
* If the Legacy REST API plugin is auto-installed once, do not auto-install a second time.
* Remove unused private constant (PluginInstaller records the info we need in a sitewide option).
* Introduce the woocommerce_history_of_autoinstalled_plugins option
This option holds the same data as woocommerce_autoinstalled_plugins,
the difference is that the data in this new option is never deleted.
It's also never updated, it just holds the information of the
first autoinstall for each plugin.
* Add a migration to create woocommerce_history_of_autoinstalled_plugins
* More robust check of previous autoinstall of the plugin
* Change migration to run in 8.9.1 instead of 9.0.0
---------
Co-authored-by: Nestor Soriano <konamiman@konamiman.com>
* Add validation for array_sum in Orders v1 controller
* Add an array_sum method to NumberUtil
* Update orders controller to use NumberUtil's array_sum
* Add NumberUtil array_sum to order item classes
* add subscription expiry message on plugin list
* Update changelog
* fix lint
* refactor code
* update product price meta
* add tracks event for enable autorenew and renew subscription notices in plugin lists
* fix lint error
* check product price is set or not
* check product price is set or not
* added translator comment
* fix typo
---------
Co-authored-by: prahesa.setia <prahesa.kusuma.setia@automattic.com>
* Remove the view file rendering old market-place page.
* Remove the function for rendering old market-place pages and introduce redirects to new in-app market-place.
* Remove unused code related to legacy market-place.
* Add exit after redirect.
* Add changefile(s) from automation for the following project(s): woocommerce
* Redirect to search result page when a search term exists.
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add 'shared with you' badge
* Improve spacing where multiple badges span multiple lines
* Decrease font size of badges per new designs
* Include 'Manage on Woo.com' only for non-shared subscriptions
* Made TypeScript happier
* Add 'shared with you' badge
* Improve spacing where multiple badges span multiple lines
* Decrease font size of badges per new designs
* Include 'Manage on Woo.com' only for non-shared subscriptions
* Made TypeScript happier
* Add changefile(s) from automation for the following project(s): woocommerce
* Addressing linter errors.
* Allow unusually-long email addresses of sharers to wrap
* Switch wordWrap for overflowWrap
Modern browesers interpret the former as an alias of the latter, including allowing the use of 'anywhere'. But the current version of https://www.npmjs.com/package/csstype only recognises 'anywhere' as valid for overflowWrap. Switching it prevents compilation errors, still exhibits the correct behavior.
* Prettier linting
* Update plugins/woocommerce/changelog/46229-add-wccom19063-in-app-shared-by-badge
Co-authored-by: And Finally <andfinally@users.noreply.github.com>
* Add changefile(s) from automation for the following project(s): woocommerce
* Use pointer as cursor for status popovers
* Don't focus-within the status badge popover on load (prevents ugly link focus issue)
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: And Finally <andfinally@users.noreply.github.com>
* Make sidebar sticky on desktop
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* limit sidebar sticky to cart only
* add useless new line
---------
Co-authored-by: github-actions <github-actions@github.com>
* Prevent collection different than Produyct Catalog from being filtered
* Adjust Product Filters tests
* Split taxonomies filter into seperate filter per taxonomy
* Add changelog
* Improve onDeselect function
* Update Product Filter test handlebars so they all use Product Collection that inherits query from template
* Set Product Collection to inherit query from template in PHP unit tests
* Remove unnecessary empty space
* Add changelog
* Update tests
* Fix lint
* Update Product Collection attributes in filter E2E handlebars
* Update the Product Filters testing pages title
* Satisfy TS by returning single React element rather than array of elements
* Revert some incorrect changes
* Cleanup after accidental incorrect merge
* Add template utils to dynamic contents util
* Fix Attribute Filter tests
* Cleanup Attribute tests, refactor and fix types
* Add product filter on top of attirbute filter in handlebars
* Fix lint
* Update Rating filter tests to use Product Archive template instead of post
* Update Rating Filter handlebars
* Update Stock filter tests to use Product Archive template instead of post
* Update Stock Filter handlebars
* Add more granular util to update Produyct Catalog based on handlebar template
* Use Product Catalog util and simplify test scenarios
* Unify handlebar templates
* Fix Product Collection attributes in Product Filter handlebar templates
* Revert temporary timeouts increase
* Remove unused types
* Cleanup types
* Cleanup types
* Lint fix
* Rename updateTemplatesContent to updateTemplateContents to better depict its purpose
* Fix types
* Rename updateProductCatalogContent to updateProductCatalogTemplate to better depict its purpose
* Allow for beforeAll and afterAll in PW tests
* Use beforeAll and afterAll instead of using fixture in active filters test
* Use beforeAll and afterAll instead of using fixture in attribute filters test
* Use beforeAll and afterAll instead of using fixture in price filters test
* Use beforeAll and afterAll instead of using fixture in rating filters test
* Use beforeAll and afterAll instead of using fixture in stock status filters test
* Get rid of updateProductCatalogTemplate util as it's too specific
* Extract some constants
* Remove unused file probably added here by accident
* Adjust Attribute Filter block tests to the new logic
* Merge fix
* Bring back necessary handlebars file
* Merge fix
* Merge fix
* Update beforeAll
* Avoid relying on product collection page object in before all
* Bring back the original order of tests
* Switch Filter by Attribute tests to handlebars
* Fix typo
* Update test to new circumstances
* Fix hooks usage
We no longer use hooks other than `beforeEach` since we're resetting the DB for each test (#46125). Using other hooks was not caught by the linter (on this PR) because I accidentally removed the no-hooks rule in #47228 and restored it just now in #47500. 😅
* Fix the test
* Fix Price filter test
* Update attribute filter tests
* Share the handlebars between tests
* Update price filter tests
* Update rating filter tests
* Update stock filter tests
* Remove unnecessary product collection page object from filter tests
* Fix typo
* Fix Filter by Stock test
* Simplify Attribute filter test by remoiving one filter from page
* Try to wait for element to be visible
* Fix handlebars syntax for filters so it doesnt throw validation errors and warnings
* Wait for filters to be visible for sure before performing further part of test
* Wait for Site Editor canvas loader
* Fix linter error
---------
Co-authored-by: Bart Kalisz <bartlomiej.kalisz@gmail.com>
* Replace the default image of the Testimonial single pattern
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix: Deleting a shop coupon via the API returns a 500 error
* Add unit test for coupon delete.
* Add changelog.
* PHPCS fix.
---------
Co-authored-by: 79mplus Admin <36501099+79mplus-admin@users.noreply.github.com>
* Fix lint errors
* Add changefile(s) from automation for the following project(s): woocommerce-beta-tester
---------
Co-authored-by: github-actions <github-actions@github.com>
* return focus on drawer
* adjust notice button color
* adjust cart/checkout input label color
* return focus for shipping form button
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* remove the generic incompatible notice
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Turn Change address link to button
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* fix lint
---------
Co-authored-by: github-actions <github-actions@github.com>
* skip data serialization for customer meta
* keep casting as is
* skip old comment
* Add changefile(s) from automation for the following project(s): woocommerce
* actually leave the comment, it still make sense
* reduce code needed
---------
Co-authored-by: github-actions <github-actions@github.com>
* Marketplace promotions - ensure action is always there
We started getting errors 'Scheduled action for woocommerce_marketplace_fetch_promotions will not be executed as no callbacks are registered.' on some environments.
In this commit we ensure that WC_Admin_Marketplace_Promotions::fetch_marketplace_promotions() is always added as a calback to our action hook.
* Marketplace promotions - switch from Action Scheduler to transients
We're switching fetching marketplace promotions from using Action Scheduler
every 12 hours, to a 1 day transient. This makes it easier to ensure that
the requests are triggered only for admins, and that they don't impact frontend
users of the stores.
* Changelog
* Clear action from Action Scheduler
Action woocommerce_marketplace_fetch_promotions is no longer used, so we're clearing it when it's triggered.
Since we cannot self-clear the action, we're triggering a new single action when woocommerce_marketplace_fetch_promotions is run.
This new action's sole responsibility is to clear the original action.
* Fix input clearing issue in PriceTextField with improved currency parsing
This commit addresses a usability issue in the PriceTextField component, highlighted by @dinhtungdu, where the input field would clear itself if users omitted a space between the numeric value and the currency symbol when the currency is configured to appear on the right with a space (e.g., "20$" instead of "20 $"). The problem was rooted in the strict parsing logic that did not account for variations in user input related to currency formatting.
The fix involves an enhancement to the numeric parsing function, which now effectively handles various user inputs regardless of space or placement of the currency symbol. The revised parsing logic uses a regular expression to strip out any characters that are not numeric or the designated decimal separator, and then replaces the locale-specific decimal separator with a period for standard numeric conversion. This approach not only fixes the specific issue but also improves the robustness of the component against similar input variations.
* Refactor currency parsing and improve handling in PriceTextField
1. Renaming `formatValueAsCurrency` to `formatNumberAsCurrency` to better
reflect its functionality.
2. Moving the `convertCurrencyStringToNumber` function outside of the
PriceTextField component, enhancing readability and reusability.
3. Changing the internal state handling from `newValue` to `inputValue`,
directly managing the string input and parsing it as needed for further
processing. This will force input field to re-render.
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Fix: Handle empty string in price conversion to prevent 0 value
This commit fixes an issue where an empty string in the price conversion function resulted in a value of 0. Now, empty strings are properly handled and do not convert to a numerical value.
---------
Co-authored-by: github-actions <github-actions@github.com>
* fix: handle undefined templateSlug in Product Collection tracking utils
The modification introduces a check for templateSlug before attempting to access its properties or use it in further logic. This change addresses a bug that manifested when users tried to edit a synchronized Product Collection block, resulting in a JavaScript error because templateSlug could be undefined.
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Update types to better reflect reality
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Karol Manijak <20098064+kmanijak@users.noreply.github.com>
* Update styles for WooCommerce coming soon page
- Add min-width to container for better responsiveness
- Adjust padding for smaller screens
- Update font size and text wrapping for banner
* Add changelog
* Improve readability
* Bump version to 2.3.1 and add changelog
* Add changefile(s) from automation for the following project(s): woocommerce-beta-tester
* Update readme.txt and clean up old changelog files
---------
Co-authored-by: github-actions <github-actions@github.com>
* Blocks: Fix JS unit tests
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* trigger CI
---------
Co-authored-by: github-actions <github-actions@github.com>
* Support for Business Services in in-app marketplace ()
Contains the changes from:
#46530#46725#47048#47135#47183#47227#47352#47452
* Update plugins/woocommerce-admin/client/marketplace/README.md
Fix documentation punctuation
---------
Co-authored-by: Raja Sekar Manimaran <raja.sekar.manimaran@automattic.com>
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Michal Iwanow <4765119+mcliwanow@users.noreply.github.com>
Co-authored-by: Dan Q <dan@danq.me>
* try db reset in page teardown
* move reset to setup step
* Use wp db cli
* Fix global setup
That part is overriding the logged in user state and wipes out the nonce and rootUrl fields.
* Try importing instead from a generated dump
* Revert "Try importing instead from a generated dump"
This reverts commit 987dc471c9.
* Revert "Revert "Try importing instead from a generated dump""
This reverts commit c8d008cb20.
* Don't bypass visitSiteEditor so that the Welcome Guide is closed
* use createNewPost
* Revert "Revert "Revert "Try importing instead from a generated dump"""
This reverts commit 2684273582.
* [Blocks]: Fix E2E tests (#46344)
* Load local pickup enabled setting as bool not string
* Add changelog
* Remove unused import
* Update plugins/woocommerce-blocks/assets/js/extensions/shipping-methods/pickup-location/utils.ts
Co-authored-by: Niels Lange <info@nielslange.de>
* Use strict equality test
* try now
* try now
* add a new sql file
* remove default.sql
* fix welcome guide tour
* fix E2E tests
* Fix the template revert tests
...where the template is unreachable due to pagination.
* Add changelog entry
* improve logic to closeWelcomeGuideModal
* fix cart checkout tests
* improve flakiness
* improve flakiness
* fix flaky test
* fix company field
* fix E2E test
* fix E2E tests
---------
Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
Co-authored-by: Niels Lange <info@nielslange.de>
Co-authored-by: Bart Kalisz <bartlomiej.kalisz@gmail.com>
* Replace beforeAll w/ beforeEach + remove all after* hooks
* Fix broken hooks
* Activate plugins via requestUtils API
* [Blocks - E2E]: Add `playwright/no-hooks` ESlint rule (#46432)
add ESLint configuration
* Clean up console logs
* Remove obsolete language setup steps
* Remove more unnecessary setup steps
* Remove even more obsolete setup steps
* tmp: add the LYS fix
* Try stabilizing the company field test
* Use canvas param instead of manually entering edit mode
* Remove double site editor redirect
* Revert "Use canvas param instead of manually entering edit mode"
This reverts commit 5e6cc17154.
* Revert "Remove double site editor redirect"
This reverts commit 69a57a82a8.
* Fix flaky products sorting test
* Blocks: Fix ESLint errors (#46595)
fix eslint error
* Fix ESLint errors (#46626)
* Fix ESLint errors
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Blocks: Migrate multiple tests to Playwright
* fix path
* migrate other tests
* add product best sellers E2E tests
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* migrate jest-puppetter E2E tests to Playwright
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Blocks: Delete Jest-Puppeteer infrastructure
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Remove obsolete waitForLoadState call
* improve E2E tests
* fix E2E tests
* improve E2E tests
* remove old test
* remove not necessary test
* fix number product
* fix E2E test
* fix number of products
* fix product count
* refactor store notice E2E tests
* update string
* fix E2E test
---------
Co-authored-by: Bart Kalisz <bartlomiej.kalisz@gmail.com>
Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
Co-authored-by: Niels Lange <info@nielslange.de>
Co-authored-by: github-actions <github-actions@github.com>
* POC: Preview Mode using HOC
* Add explanation as comments
POC: Implement preview mode for Product Collection block in editor
- Added extensive commentary to clarify the mechanism and usage of the `handlePreviewState` function
- Implemented an internal state within `ProductCollectionContent` to manage preview status and messages, serving as a foundational example of how preview mode can enrich block functionality.
- Showcased the application of `handlePreviewState` by incorporating it as a prop in `BlockEdit`, illustrating the potential for extending the block's capabilities for dynamic and interactive previews.
This POC demonstrates a flexible approach to managing preview states within the editor, paving the way for further development and integration based on feedback and use-case analysis.
* Refactor preview state handling and collection registration
This commit introduces a centralized approach for registering product collection variations and managing their preview states. It abstracts the registration logic into a dedicated function and enhances the flexibility of preview state handling across different collection types.
* Rename file
* Minor improvements
* Don't pass previewState to handlePreviewState
I don't see any good use of it in handlePreviewState. Also, We will be going to call handlePreviewState only once
therefore, it will always have the same value as the initial value of the previewState. If in future, we decide to run it
multiple times then we can pass the previewState as an argument to handlePreviewState.
* Add comment
* Use JS closure to inject handlePreviewState
This commit introduces a refined approach for injecting the `handlePreviewState` function into product collection blocks, utilizing JavaScript closures to streamline the process. This method replaces the previous global registry mechanism, offering a more direct and efficient way to manage preview states.
Advantages of This Approach:
- Utilizing JavaScript closures for injecting `handlePreviewState` simplifies the overall architecture by directly modifying block edit components without relying on an external registry. This method enhances code clarity and reduces the cognitive load for developers.
- The conditional application of `withHandlePreviewState` ensures that the preview state handling logic is only added to blocks that require it, optimizing performance and maintainability.
* Refactor preview state management into custom hook
This commit enhances the organization and readability of the product collection content component by abstracting the preview state management into a custom hook named `usePreviewState`. This change streamlines the component's structure and aligns with React best practices for managing state and side effects.
Key Changes:
- Introduced `usePreviewState`, a custom hook responsible for initializing and managing the preview state (`isPreview` and `previewMessage`) of the product collection block. This hook encapsulates the state logic and its side effects, including the conditional invocation of `handlePreviewState`.
- Modified `ProductCollectionContent` to utilize `usePreviewState` for handling its preview state. This adjustment makes the component cleaner and focuses it more on presentation and behavior rather than state management details.
* Replace useEffect with useLayoutEffect
* Add cleanup function in handlePreviewState function
Based on [this discussion](https://github.com/woocommerce/woocommerce/pull/45703#discussion_r1535323883), I added a cleanup function support for handlePreviewState. `handlePreviewState` can return a function which will be called on cleanup in `useLayoutEffect` hook.
* Fetching random products in Preview mode
* Allow collection to set initial preview state
* Pass location & all attributes to handlePreviewState function
* Handling collection specific query for preview mode
- Consolidated `handlePreviewState` and `initialPreviewState` into a single `preview` prop in `register-product-collection.tsx` and `product-collection-content.tsx` to streamline prop passing and improve the component interface.
- Updated the `queryContextIncludes` in `constants.ts` to include 'previewState'
- Enhanced the `ProductCollection` PHP class to handle preview-specific queries more effectively, introducing a new method `get_preview_query_args` that adjusts query parameters based on the collection being previewed, thereby improving the relevance and accuracy of products displayed in preview mode.
* Always set initialPreviewState on load
* Refine preview state handling
- Renamed `HandlePreviewStateArgs` to `SetPreviewStateArgs` in `featured.tsx` to better reflect its purpose, which is now more focused on setting rather than handling states. The implementation details within `featured.tsx` have also been refined to include async operations and cleanup functions, demonstrating a more sophisticated approach to managing state.
Overall, these updates make the preview state logic more understandable and maintainable.
* Rename "initialState" to "initialPreviewState"
* Fix: Correct merging of newPreviewState into previewState attribute
This commit addresses an issue in the product-collection-content.tsx where the newPreviewState was not properly merged into the existing previewState attribute. Previously, the spread operator was incorrectly applied, leading to potential loss of existing state attributes. By changing the order of operations and correctly spreading the existing attributes before merging the newPreviewState, we ensure that all state attributes are preserved and updated correctly.
* Initial refactor POC code to productionize it
* Move `useSetPreviewState` to Utils
* Implement preview mode for Generic archive templates
Implemented a new useLayoutEffect in `utils.tsx` to dynamically set a preview message in the editor for product collection blocks located in generic archive templates (like Products by Category, Products by Tag, or Products by Attribute).
* Remove preview mode from Featured and On sale collection
* Remove preview query modfication for On Sale collection
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Fix: hide/show preview label based on value of "inherit"
If user change the toggle "Sync with current query", then it should reflect for the preview label as well.
- If the toggle is on, then the preview label should be shown.
- If the toggle is off, then the preview label should be hidden.
* Minor improvements
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Refactor: Simplify SetPreviewState type definition in types.ts
This commit refines the SetPreviewState type definition by eliminating the previously used intermediate interface, SetPreviewStateArgs. The change streamlines the type definition directly within the SetPreviewState type, enhancing readability and reducing redundancy.
* Update import syntax for ElementType in register-product-collection.tsx
This commit updates the import statement for `ElementType` from `@wordpress/element` to use the more modern and concise `import type` syntax. This change does not affect functionality but aligns with TypeScript best practices for importing types, ensuring that type imports are distinguished from regular imports. This helps in clarity and in optimizing the build process by explicitly indicating that `ElementType` is used solely for type checking and not included in the JavaScript runtime.
* Refactor: Update TypeScript usage in Product Collection
This commit introduces several TypeScript refinements across product-collection components:
1. **DEFAULT_ATTRIBUTES** in `constants.ts` now uses `Pick` to explicitly define its shape, ensuring only relevant attributes are included and typed accurately.
2. **ProductCollectionAdvancedInspectorControls** and **ToolbarControls** in the `edit` subdirectory now use `Omit` to exclude the 'preview' property from props, clarifying the intended prop usage and improving type safety.
These changes collectively tighten the type definitions and improve the codebase's adherence to best practices in TypeScript.
* Refactor: Update dependencies of useSetPreviewState hook in utils.tsx
This change enhances the stability and predictability of the hook's behavior, ensuring it updates its internal state accurately when its dependencies change, thus aligning with best practices in React development.
* Refactor preview button CSS and conditional rendering
1. **CSS Refactoring:** Moved the positioning styles of the `.wc-block-product-collection__preview-button` from inline styles in the JSX to the `editor.scss` file. This separation of concerns improves maintainability and readability, aligning the styling responsibilities solely within the CSS file.
2. **Conditional Rendering Logic:** Updated the rendering condition for the preview button. Now, it not only checks if `isPreview` is true but also if the block is currently selected (`props.isSelected`). This prevents the preview button from appearing when the block is not actively selected, reducing visual clutter and enhancing the user experience in the editor.
* Enhance: Update preview button visibility logic in ProductCollectionContent
This commit enhances the visibility logic of the preview button in the `ProductCollectionContent` component:
1. **Added `isSelectedOrInnerBlockSelected`:** Introduced a new `useSelect` hook to determine if the current block or any of its inner blocks are selected. This ensures that the preview button is visible when either the product collection block or any of its inner blocks are selected.
2. **Updated Conditional Rendering:** Adjusted the conditional rendering of the preview button to use the new `isSelectedOrInnerBlockSelected` value, providing a more intuitive user experience by ensuring the preview button remains visible when any relevant block is selected.
* use __private prefix with attribute name
* Add E2E tests for Preview Mode
1. **Template-Specific Tests:** Each template (tag, category, attribute) undergoes a test to ensure the preview button behaves as expected when replacing products with product collections in these contexts.
2. **Visibility Checks:** The tests verify that the preview button is visible when the block or its inner blocks are selected and hidden when the block is not selected. This helps confirm the correct implementation of the preview button visibility logic across different use cases.
3. **Interaction with Inner Blocks:** Additional checks are included to ensure the preview button's visibility toggles appropriately when interacting with inner blocks, reinforcing the dynamic nature of block selection and its effect on UI elements within the editor.
* Add setPreviewState to dependencies
* Add data-test-id to Preview button and update e2e locator
Modifications:
- Added `data-test-id="product-collection-preview-button"` to the Preview button in `product-collection-content.tsx`.
- Updated the corresponding e2e test locator in `product-collection.block_theme.side_effects.spec.ts` to use the new `data-test-id` instead of the class name.
By using `data-test-id`, we ensure that the e2e tests are not affected by changes in the styling or restructuring of the DOM that might alter CSS classes but do not affect functionality.
* Enhance: Localize preview message in useSetPreviewState hook
* Don't show shadow & outline on focus
* Make preview button font same as Admin
* Fix SCSS lint errors
* Add missing await keyword
---------
Co-authored-by: github-actions <github-actions@github.com>
* Do not display smart app banner on the core profiler pages
* Add changefile(s) from automation for the following project(s): woocommerce
* Ignore hook doc errors -- need to re-visit this later
* Document filters with basic info -- using 6.5.0 for since tag. That is the first release after WC Admin was merged to the core
* Update plugins/woocommerce/src/Internal/Admin/Loader.php
Co-authored-by: Ilyas Foo <foo.ilyas@gmail.com>
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Ilyas Foo <foo.ilyas@gmail.com>
* Update XPF currency symbol to XPF
* Change XPF default locale formatting
* Change decimal separator of countries that use XPF to dot
* Add changelog entry
* Update changelog entry
* Fix XPF test data
* Fix some JS linting issues
* Revert "Fix some JS linting issues"
This reverts commit 51abcf4117.
* Fix some JS linting issues
* mutate the original instance of the block array
* Add changefile(s) from automation for the following project(s): woocommerce
* trigger CI
---------
Co-authored-by: github-actions <github-actions@github.com>
* Create trackInteraction function and pass it to query Insprector Controls
* Add tracking to Attribute filter
* Add tracking to Created filter
* Add tracking to Featured filter
* Add tracking to Handpicked Products filter
* Add tracking to Inherit Query filter
* Add tracking to Keyqord filter
* Add tracking to On Sale filter
* Add tracking to Order By option
* Add tracking to Stock Statusoption
* Add tracking to Price Range filter
* Add tracking to Taxonomies filter
* Fix lint errors
* Add changelog
* Rearrange the logic of recognising the tracks location so it's more reliable
* LYS spec
* get homescreen check working
* move over to shopper
* basic test
* get first test working
* Store only coming soon mode - logged out
* add logged in ttests
* linter
* Add changefile(s) from automation for the following project(s): woocommerce
* Remove skip from tests
---------
Co-authored-by: github-actions <github-actions@github.com>
In the interest of avoiding pagination this refactor swaps the current term loading with one that doesn't require a cache of all terms. We've removed the need for the cache by storing the ID and term name together in the token/suggestion list and using a display transformation to hide any unnecessary information.
* Product Filters: add individual clear button
* Remove unused style.scss
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Simplify searching for the tag
* Convert to use button instead of anchor
* Try using iAPI to show/hide clear button
* Use local context instead of global state
* Fix linting error
* Remove unneeded context
* Update clear button block description
* Fix frontend PHP error
* Add e2e tests for attributes filter clear button
* Add e2e tests for price filter clear button
* Add e2e tests for rating filter clear button
* Add e2e tests for stock status filter clear button
* Address feedback and use built in locators
* Address feedback and replace the use of timeouts
---------
Co-authored-by: github-actions <github-actions@github.com>
* select a shipping rate if there are no shipping rates on mount
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* move code and explain it
---------
Co-authored-by: github-actions <github-actions@github.com>
* Make german state field visible but not required
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Disable the save changes button until changes are made
* Add changefile(s) from automation for the following project(s): woocommerce
* Fix broken test
* Test
* Remove test code
* Tmp fix - fix broken test
* Fix incorrect comparison
* Remove test code
* minor refactor -- re-use setting
* Remove use of loadash isequal
---------
Co-authored-by: github-actions <github-actions@github.com>
* reset state if it's not valid for the current country
* reset postcode as well
* Add changefile(s) from automation for the following project(s): woocommerce
* update logic so its in Checkout block instead of store api
* fix linting
---------
Co-authored-by: github-actions <github-actions@github.com>
* Adds filter `woocommerce_order_received_verify_known_shoppers` to allow known shoppers to access the order received page without being logged in in Order Confirmation template
* Added changelog
* Added filter docblock
* Refactored to apply the filter correctly for non-guests only.
* Restored comment.
* Added test
* Added test
* lint
* Change plugin package name
* Update plugin name (apparently slugs are formed from that)
* Added right prefix
* JS linting
* Refactored testing into a test.step()
* typo
* Fixed tests.
* Reverted change done by mistake.
* remove getByRole specificity
* Increase selector specificity specificity
* Change test prefix
* reduce test flakyness
* reduce test flakyness
* reduce test flakyness
* Move country to top of form for all countries
* adjust styling
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Update to pnpm 9.1 and fix a mini css bug
* Add changefile(s) from automation for the following project(s): @woocommerce/tracks, @woocommerce/product-editor, @woocommerce/onboarding, @woocommerce/number, @woocommerce/notices, @woocommerce/navigation, @woocommerce/internal-js-tests, @woocommerce/extend-cart-checkout-block, @woocommerce/expression-evaluation, @woocommerce/explat, @woocommerce/experimental, @woocommerce/eslint-plugin, @woocommerce/dependency-extraction-webpack-plugin, @woocommerce/date, @woocommerce/data, @woocommerce/customer-effort-score, @woocommerce/currency, @woocommerce/csv-export, @woocommerce/create-woo-extension, @woocommerce/create-product-editor-block, @woocommerce/components, @woocommerce/api, @woocommerce/ai, @woocommerce/admin-e2e-tests, woocommerce-blocks, woocommerce-beta-tester, woocommerce, woo-ai
* temporarily disable swallowing build output to diagnose issue with perf workflow
* Ignore some type issues that commonly resurface when deps slightly change
* Fix persistent type issues that have recurred many times
* Add more ignores
* Fix lint issue
* Revert change to swallow build error
* Improve access of the config that needs updated build dir.
---------
Co-authored-by: github-actions <github-actions@github.com>
* Respect locale setting to format order counts in admin orders list page
Fixes#47372
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Added phone number support to Shipping Address and refactor the code.
* Refactored to avoid evaluating extra if on !== billing address form
* Add changefile(s) from automation for the following project(s): woocommerce
* Fixed tests.
* Mock phone number consistency
* Add a feature flag for full composability and the Pattern Toolkit projects.
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Make method to getAttributionData externally accessible
* Include checks for sjbs availability
* Failsafe for the custom html element if sbjs isn't available
* Changelog
* Fix inverted logif for readable file check in FileExporter::emit_file
* Fix: instance of WP_Error being passed to PageController::handle_list_table_bulk_actions
* Fix basic usage code snippet example in extend-rest-api-add-data.md
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Use flow layout
* Tmp fix - fix broken test
* Add changefile(s) from automation for the following project(s): woocommerce
* Use flex layout
---------
Co-authored-by: github-actions <github-actions@github.com>
* Freemium: update marketplace product card label
* Add changefile(s) from automation for the following project(s): woocommerce
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Change default PP Standard should_load logic to be more strict when setting to true
* Remove filter allowing stores to enable PayPal Standard programmatically
* Adds new function to check if the store has any PayPal Standard orders
* Upgrade script that disables PayPal Standard on stores that aren't using it.
* Add changelog entries
* Fix extra comma
* PayPal email is defaulted to the admin email which means checking needs_setup() isn't reliable
* Load PayPal standard in unit tests
* Before installing WC, set the Paypal Standard should load to true
* Remove unnecessary ternary when setting default should_load
* On upgrading WC, only check for PayPal Standard live keys to determine if it's setup
* Remove admin notice if PayPal Standard is disabled on ugprade
* Display an admin notice if the store is using the deprecated filter to load PayPal Standard.
* Add docblock comment above the apply filters
* Added checks around the filter and give pref to enabled.
git add .
* Remove the should load filter notice.
* Add comment noting that init class shouldnt be removed.
* Use proper casting for this->enabled before usage.
---------
Co-authored-by: Vedanshu Jain <vedanshu.jain.2012@gmail.com>
* Adding padding to the copy link
* Add changefile(s) from automation for the following project(s): woocommerce
* Tmp fix - fix broken test
* Fix lint errors
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix permission check in RestApiControllerBase
Extra arguments were being passed incorrectly to current_user_can,
causing wrong authentication failures in some cases (e.g.
when hitting the endpoints in a wp.com site via Jetpack tunneling).
* Fix get_order_data in ReceiptRenderingEngine
A fatal error was being thrown when one of the products referenced
in the order did no longer exist.
* Update toolbar store link
"Preview store" when coming soon mode is enabled
"View store" when the site is set to live
* Add changefile(s) from automation for the following project(s): woocommerce
* Fix broken test
---------
Co-authored-by: github-actions <github-actions@github.com>
* Remove hover background
* Add changefile(s) from automation for the following project(s): woocommerce
* Tmp fix - fix broken test
---------
Co-authored-by: github-actions <github-actions@github.com>
* CYS: not run font picker tests on WordPress 6.4
* improve how the test is skipped
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix RIN Display Logic for Banner Alert Notifications
* Add tests
* Add changelog
* Update test
* Add test
* chore: fix unactioned note status check in EvaluateAndGetStatus.php
* Replace Options.php usage with LaunchYourStore controller
* Add changefile(s) from automation for the following project(s): woocommerce
* Catch error, but ignore it
* Tmp fix - fix broken test
* Lint fixes
---------
Co-authored-by: github-actions <github-actions@github.com>
* Use wp_plugin_dependencies_slug
* Fix incorrect function name
* Remove unnessary content-type header
* Add doc block for wp_plugin_dependencies_slug filter
* Add changefile(s) from automation for the following project(s): woocommerce-beta-tester, woocommerce
* Tmp fix - fix broken test
---------
Co-authored-by: github-actions <github-actions@github.com>
* REST API: Add missing line item schemas to refunds endpoint
In #28241, `fee_lines`, `shipping_lines`, and `tax_lines` properties
were all added to the refund data object sent by v2 and v3 of the
REST API. However, the schema was never updated, so the characteristics
of those properties have not been very discoverable. This simply
copies the relevant schema data from the orders endpoint over to the
refunds endpoint.
Towards #43444
* phpcs cleanup
* Change “Pickup options” to “Pickup locations”
* Always show pickup location and truncate pickup details
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Adjust spacing between pickup details and more link
* Hide pickup details of unselected pickup location
* Adjust line height of truncated text
* Show “Read more/less” instead of “more/less”
* Ensure both lines are equally filled with text
---------
Co-authored-by: github-actions <github-actions@github.com>
* WIP: Display price in place order button
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Fix JS lint error
* Update e2e tests
* Display default place order button including placeholder in page editor
* Update plugins/woocommerce-blocks/assets/js/blocks/checkout/inner-blocks/checkout-actions-block/constants.tsx
Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
* Optimise i18n using sprintf
* Wrap cart totals in “useSelect”
* Temporary skip failing e2e test
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
* Fix event when starting the no AI flow
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix broken checkout address forms layout
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
This addresses coupon usage limits for failed & trashed orders by ensuring that coupon usage is decremented when a transaction fails or an order is trashed.
Fixes#31245
* Added tests to check coupon usage count on failed & trashed orders
Signed-off-by: Scott Fleming <scott@noblwheels.com>
* Add filter woocommerce_update_coupon_usage_invalid_statuses, wc_update_coupon_usage_counts actions -> failed/trashed
Signed-off-by: Scott Fleming <scott@noblwheels.com>
* document woocommerce_update_coupon_usage_invalid_statuses filter
Signed-off-by: Scott Fleming <scott@noblwheels.com>
* formatting
Signed-off-by: Scott Fleming <scott@noblwheels.com>
* Add changelog file
Signed-off-by: Scott Fleming <scott@noblwheels.com>
* Update plugins/woocommerce/includes/wc-order-functions.php
Appease the code style linter
* Update plugins/woocommerce/tests/php/includes/wc-order-functions-test.php
Appease the code style linter
---------
Signed-off-by: Scott Fleming <scott@noblwheels.com>
Co-authored-by: Corey McKrill <916023+coreymckrill@users.noreply.github.com>
* Inject the fields (only once) on a large set of checkout form actions
* Changelog
* Better doc format
* Add _once to the new method to clarify functionality
* Filter to modify the default list of actions
* Check WP version before adding Customer Account hooked block due to usage of hooked_block_{} filter
* Changelog
* Replace global with get_bloginfo('version') for getting WP version
* Create a hook to filter the woocommerce blocks that can be registered.
This will decrease the server execution time, the amount of css and javascript downloaded.
In the case of the product editor the woocommerce blocks are non needed or required, so it's not necesary to register them all.
* Add changelog file
* Fix php linter errors
* Get the tax_rate from the woocommerce_order_itemmeta table and country, state and priority from woocommerce_order_items
* Add changelog file
* Fix the resulting items when searching by specific tax rates
* Add some comments to clarify the fix
* Fix php linter errors
* Show modified tax rates and tax names as well as the deleted ones to better show the total calculations
* Fix php tests
* fix Lint issue
* update tests
* Fix some tests
* Add teardown
* Remove tests that were not relevant anymore
* Update teardown function
* Fix linter errors
* Update comment typos
Co-authored-by: Matt Sherman <matt.sherman@automattic.com>
---------
Co-authored-by: Damián Suárez <rdsuarez@gmail.com>
Co-authored-by: Lourens Schep <lourensschep@gmail.com>
Co-authored-by: Matt Sherman <matt.sherman@automattic.com>
* Product Reviews: not use useBlockProps twice
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>