* Add Include downloads to show/hide the Downloads section
* Fix margin top for none first child nested sections
* Add changelog files
* Fix php linter errors
* Redirect to intro screen if theme is not modified
* Add changefile(s) from automation for the following project(s): woocommerce
* Add and fix test for the redirection
* Redirect with the proper url 'intro'
* Remove only
* Avoid completing the cys task when switching themes
* Revert prev commit and reset `woocommerce_admin_customize_store_completed` before each test
* Set the `woocommerce_admin_customize_store_completed` to `no` before each test
---------
Co-authored-by: github-actions <github-actions@github.com>
* PHP 8 Updates for src/Internal
* Add changelog entry
* Fix PHP lint issues
* Add unit test for not in queries.
---------
Co-authored-by: Vedanshu Jain <vedanshu.jain.2012@gmail.com>
* Rename order attribution template file
* Update OA field name to `source_type` to keep up with https://github.com/woocommerce/woocommerce/pull/41690
* Discard conditional UTM labels altogether
---------
Co-authored-by: Tomek Wytrębowicz <tomalecpub@gmail.com>
* init approach of related products endpoint
* register related prodducts endpoint
* rename response prop with ids
* filter categoris from endpoint params
* filter categories when pulling related products
* changelog
* extend from WC_REST_CRUD_Controller class
* iterate over defininf endpoint params
* doc
* merge product terms with params
* introduce `combine` param
* return products collection instead of plain array
* fixinf eslint issues
* pass proper fn args to bound fns
* do not call parent register method
* post type is defined by parent controller class
* remove related products controller
* extend products controller with `related-products`endpoint
* filter post__in param
* when no related products found return empty array
* change and register endpoint params
* remove commented line
* add a custom method to extend the params
* update
* fix typo
* ensure to respect the products limit
* fix eslint issue
* remove unrequired endpoint id param
* Fix session notices in Cart and Checkout block pages
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Update plugins/woocommerce-blocks/assets/js/base/components/notice-banner/style.scss
Co-authored-by: Niels Lange <info@nielslange.de>
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Niels Lange <info@nielslange.de>
* Get default attributes on front end
* Remove console log
* Show notice about 0 registered fields in editor
* Do not show block in editor if no fields are registered
* Wrapper block
* Update webpack config
* Wrapper block type definition
* Separate fields from the hook block
* Hide when no custom fields exist
* Address and contact fields
* Shared form fields in settings
* Revert render_content to original
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Get default attributes on front end
* Add initial sections to email templates
* Revert "Get default attributes on front end"
This reverts commit f76c21617a2c5ad832d4579ba2c4c8e98afd440d.
* Also render contact fields
* Handle plain text
* Add changefile(s) from automation for the following project(s): woocommerce
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Unwanted changes from rebase
* Use get_order_additional_fields_with_values
* Remove sample fields
* Version bump for styles
* Update plugins/woocommerce/includes/class-wc-emails.php
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Update plugins/woocommerce/includes/class-wc-emails.php
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Apply view context
* Handle null
* Context
---------
Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Add e2e tests to verify specific theme templates have priority over user-modified Product Catalog template
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Fix handling the error from the `product_image_upload` function
* Add changefile(s) from automation for the following project(s): woocommerce
* Fix linting errors
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add changelog and update var naming in block tests
* Format code in two tests
* Add missing payment method set to the test
* Refactor tests and merge cart checkout coupons
* Clear cookies before every test
* Get default attributes on front end
* Remove console log
* Show notice about 0 registered fields in editor
* Do not show block in editor if no fields are registered
* Wrapper block
* Update webpack config
* Wrapper block type definition
* Separate fields from the hook block
* Hide when no custom fields exist
* Address and contact fields
* Shared form fields in settings
* Revert render_content to original
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Show address placeholders
* View fields in admin
* Pass order object and context to field hooks in WP admin
* CheckoutFieldsAdmin class
* Move logic to CheckoutFieldsAdmin
* Implement context
* Style checkboxes correctly in meta box
* Update handling
* Undo change to changelog
* Correct docblock comment for woocommerce_admin_shipping_fields
* Document context
* No need to init fields
* Fix checkbox handling for bw compat reasons
* Add changefile(s) from automation for the following project(s): woocommerce
* Force CI
* Add changefile(s) from automation for the following project(s): woocommerce
* Fix CSS rule
---------
Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
Co-authored-by: github-actions <github-actions@github.com>
* Changelog
* Tests for restricted coupons
* Update to test checkout not cart… which is what I should have been using
* Removal -- from PR feedback
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
* Fix activity panel showing incorrect currency
* Add changefile(s) from automation for the following project(s): woocommerce
* Use store currency setting when order currency is different from the store currency
---------
Co-authored-by: github-actions <github-actions@github.com>
* Vanilla .animate() instead of jQuery .fadeIn()
* Slider .animate() keyframes are now a list with 2 objects
[{ marginLeft: old }, { marginLeft: new }] keyframe syntax instead of
{ marginLeft: [old, new] } keyframe syntax for consistency
* Changelog
* Tweak changelog.
---------
Co-authored-by: Barry Hughes <3594411+barryhughes@users.noreply.github.com>
* Add sales property to MarketingCampaign class.
* Return campaign sales data in API.
* Display Sales in Campaigns card.
* Fix test for useCampaigns.
* Display a "-" when there are no cost or sales value in Campaigns card.
* Add changelog.
* Fix test for useCampaigns hook.
* Fix PHP lint issue.
* Add e2e test to hover Mini Cart totals
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Optimise hover test
---------
Co-authored-by: github-actions <github-actions@github.com>
* Convert block templates tests to parametized tests
* Use frontendUtils.addToCart() when possible
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Update commands to run e2e tests
* Capitalize Product Catalog template name
* Create tests with block theme with templates
* Create Block Theme with Templates test environment
* Update classic theme commands
* Code cleanup
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Code cleanup (II)
* Add config to blocks-playwright.yml and remove unnecesssary .github/workflows/playwright.yml file
* Remove unnecessary imports from product-catalog-template.block_theme_with_templates.spec.ts
* Update blocks e2e commands to pnpm
* Replace hardcoded strings with a variable
* Unify all 'block theme with templates' tests in a parameterized test
* Create a testData object for the Mini-Cart template part test
* Fix some code styling issues
* Create a testData object for the Mini-Cart template part test (II)
* Remove duplicate userText variable
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add unique ID attribute to Product Collection block
In this update, we introduced a unique identifier for each instance of the Product Collection block. This change involves several key modifications:
1. **Block JSON Update**: Added a new `id` attribute in `block.json` to store the unique identifier for each block instance.
2. **Product Collection Content Update**: In `product-collection-content.tsx`, we utilized the `uuid` library to generate a unique ID. This is done in a `useEffect` hook, ensuring that each block instance receives a distinct ID upon initialization.
3. **Type Definitions**: The `ProductCollectionAttributes` interface in `types.ts` was updated to include the new `id` attribute, aligning with our enhanced data structure.
4. **Package Dependencies**: To support this feature, `@types/uuid` and `uuid` were added to `package.json`, ensuring we have the necessary tools for ID generation.
This enhancement is pivotal for uniquely identifying each Product Collection block, paving the way for more robust and individualized block handling in the future.
* Rename uniqueId to id
* Add lock file
* Add 'id' context to product collection and template
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Merge trunk with 42861-introduce-a-unique-identifier-for-each-product-collection-block
* Regenerate the lockfile
* Remove autogenerated change in plugins/woocommerce/package.json
* Regenerate lock file
* Rerun CI actions
* Delete pnpm-lock.yaml file & regenerate it using pnpm install command
---------
Co-authored-by: github-actions <github-actions@github.com>
* CYS - Core: add unit test
* Add changefile(s) from automation for the following project(s): woocommerce
* fix description
* Enable TT4 when the customize your store process starts
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add refund order to unit test.
* Remove buggy defensive check since existance of order is already verified.
* Changelog.
* PHPCS fixes.
* Added more assertions after cleanup to verify cleanup worked.
* Remove the experimental flag from the Product Gallery block
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add test to Product Collection - featured products filters
* Open Featured option before trying to set it up
* Add test for Created filter
* Add missing awaits
* Add tests for a price range filter
* Add explanation to test step
* Update the conditions for created filter
* Add changelog
* Change leftover values
* Empty commit - trigger CI
* Add the UX element dropdown for search box.
* Add unit test for search_filter param.
* Add support for search filter in search query for better performance.
* Link search_filter dropdown with query param.
* Fix conflicts.
* Reformat to allow adding more filters in future.
* Fixing margin in the search filter box.
* Fix merge conflict.
* Apply linting.
* Add changelog.
* Apply PR suggestions.
* Grammer fixes.
* Get default attributes on front end
* Remove console log
* Show notice about 0 registered fields in editor
* Do not show block in editor if no fields are registered
* Wrapper block
* Styling/spacing
* Update webpack config
* Register heading pattern
* Wrapper block type definition
* get_fields_for_location return fields in array format
* Use wrapper in default content
* Separate fields from the hook block
* Hide when no custom fields exist
* Address and contact fields
* Shared form fields in settings
* remove info block from wrapper
* Revert render_content to original
* rename block
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Update styling
* Create shared get_order_additional_fields_with_values to format values
* Update block names and descriptions
* Show address placeholders
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Unused import
---------
Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
Co-authored-by: github-actions <github-actions@github.com>
* CYS - Core: add unit test
* Add changefile(s) from automation for the following project(s): woocommerce
* fix description
---------
Co-authored-by: github-actions <github-actions@github.com>
* Update copy for CYS intro screen sidebar
* Add changefile(s) from automation for the following project(s): woocommerce
* Avoid using variables in __()
* Add missing period
Co-authored-by: Patricia Hillebrandt <patriciahillebrandt@gmail.com>
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Patricia Hillebrandt <patriciahillebrandt@gmail.com>
* Migrate mini cart tests
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Adjust broken e2e test
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add new spec for checking comments on a post
* Add changelog
* Update locators to use geBy methods
* Update locators to use geBy methods
* Fixed strict mode violation
* Change HPOS and non HPOS e2e tests to use 5 shards each
* Add changelog
* Update numbering
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
This bumps the version to 0.14.3 so that we can take advantage of some
upstream improvements. It also makes some changes to the way our
builds and watches work to minimize the number of unnecessary
Node processes involved in the execution.
* Product Gallery: Update div elements to ul and li for better accessibility
* Product Gallery: Add changelog files
---------
Co-authored-by: roykho <roykho77@gmail.com>
Unfortunately, it looks like we need to build in order
to be able to lint. This makes sense since some
projects will lint imports from others that haven't
been built yet.
* Add "No AI" banner image and center banner content
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add test to check Product Collection filtering by tags
* Set single product out of stock and unskip the test for stock status
* Add changelog
* Use more specific selector
* Update variables holding products in products.sh to keep the same convention
* clarify comment in maybe_sync_order
* Add changefile(s) from automation for the following project(s): woocommerce
* appease the linter
---------
Co-authored-by: github-actions <github-actions@github.com>
This adds support for using the `pnpm utils ci-jobs` command in our `ci.yml` file. One of the bigger benefits to this change too is that we're now distributing a bundled version of the utils tool. This lets us run it without actually having to install the repo and will let us speed up any workflows that currently do.
* Remove variable-product-template from the product template list
* Add changelog files
* Redirect the variable product to the new experience now that is does not have a product template anymore
* Fix php linter error
* Prevent body from scrolling when pop-up is open
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Add namespace to the modal-open css class
* Fix class name for the Product Gallery block
---------
Co-authored-by: github-actions <github-actions@github.com>
* Do not sanitize WooCommerce Subscriptiion column HTML in Settings > Payments methods table
* Add features supports entry to pseudo-gateway WCPay Promotion
* Add changelog
* Add changelog entry for woocommerce-admin
* Lint fixes
* Move ProductTemplate type
* useProductTemplate
* Use useProductTemplate
* Use useLayoutTemplate
* Handle if window.productBlockEditorSettings doesn't exist
* Unit tests for useProductTemplate
* Fix fallback in useProductTemplate
* Remove layoutTemplates from ProductEditorSettings on client
* Fallback to simple-product layout template
* Unit test to verify the standard product template is used if product type is variable
* Use standard product template if product type is variable
* Unit test to verify product type is used to match if product template id matches a template with a different product type
* Make sure product type matches on product template, unless variable, in which case we match simple
* Remove layoutTemplates and layoutTemplateEvents from global
* Changelog
* Changelog
* Import types only
* Call the `/wc/private/ai/patterns` to remove the `patterns_ai_data` post from the db
* Add changefile(s) from automation for the following project(s): woocommerce-beta-tester
---------
Co-authored-by: github-actions <github-actions@github.com>
* CYS: fix php warning raise by the Product Collection block
* fix typo
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix Mini-Cart price disappearing on hover
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix notice template overwrites
* Add changefile(s) from automation for the following project(s): woocommerce
* Bump template versions
* Changing template version numbers to 8.5.0 as they haven’t been touched
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add `wp wc hpos status` command
* Add helper method to build order from different datastores
* Add helper method `get_diff_for_order()` to compare orders between datastores
* Add CLI tool `wp wc hpos diff` to compare an order between datastores
* Add changelog
* PHPCS fixes
* Better format for dates
* Add test for scheduled date start
* Add more test around product sales.
* Simplify sales check + also check product sale price is changed.
* Apply conding standards.
* Add changelog.
* Revert changes added in 39948 with explanation.
* Revert changes added in 39948 with explanation.
* CYS - Core: Setup the site with a default homepage when the assembler is loaded
* CYS - Core: Implement route guards
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Playwright migrated test file bootstrap and first test for local pickup
* Added page reload to force a new render
* Updated test description
* WIP: figuring out the fake input checkbox
* WIP: figuring out flaky state of local pickup enabled
* Fix flakey enable/disable local pickup
* Migrated remaining local pickup tests to Playwright
* Removed deprecated E2E
* Added changelog
* Corrected linting errors
* Fixed playwright/no-element-handle lint error
* Replace CSS IDs and classes with recommended built in locators
* Remove obsolete function calls
---------
Co-authored-by: Niels Lange <info@nielslange.de>
* Add e2e tests to verify Products by Category/Tag/Attribute templates default to Product Catalog template
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add few E2E tests to cover half of the milestone
* Improve welcome modal closing
* Add new test scenarios
* Add more tests to cover creating account and shipping
* Update shipping zone labels to fulfil latest design changes
* Add tests for checkout block coupons and cart block coupons
* Remove only flag leftover
* Add checkout block tax tests and merge with cart test
* Update selectors to match checkout page
* Update checkout block test and comment scenario until issue resolved
* Remove only leftover
* Update checkout block test
* Improve filling shipping and billing checkout
* Create order via API with coupon
* Include checkout filling util helper
* Update test to use get by role for alerts
* Remove only leftover
* Adjust scenario for placing an order as a customer
* Improve existing customer placing order scenario
* Add util helper for adding products to cart
* Remove leftover from testing
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
* Try sharding e2e tests
* Update reporter for merge
* Add changelog
* Change to trigger CI
* Update job name to match existing run
* Install with dependencies
* Set working directory
* Only run 2 workers at a time on CI
* Try single run, but 6 shards
* Simplify welcome modal closing util helper
* Switch to more simpler way of closing welcome modal
* Fix flakiness in create shipping zone test
* Try 10 shards
* Drop CI retries to 2 from 4
* Update path to reports
* Fix syntax error in GH file
* Remove working directory
* Update directories
* Path again
* Use Allure dir
* Fix merge step
* Install dependencies
* Setup repo in report merge
* Commands to merge reports
* Set working directory
* Update actions
* Name upload artifacts
* Just numbers for shards
* Update matrix
* Need to redeclare env variables
* Update file paths for merge step
* Remove working directory for merge step
* Try absolute paths
* Missed a path
* Put all artifacts in single download folder
* Tweak download action
* Might not have to merge reports
* Fix typo
* Update path for summary report
* Update results paths
* Tweak condition
* Add step to check success of matrix run
* Remove ternary per feedback
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
Co-authored-by: Veljko <veljano@yahoo.com>
* Add e2e tests for user customization of block templates
* Update instructions to run Playwright e2e tests
* Code cleanup
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Create revertTemplateCustomizations util
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix PHP warning related to logging default severity threshold
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Force marketing menu items order.
* Add changelog.
* Make sure that Overwiev is present.
* Coupons should be always second.
* Update plugins/woocommerce/src/Internal/Admin/Marketing.php
Co-authored-by: Gan Eng Chin <ecgan@users.noreply.github.com>
* Update plugins/woocommerce/src/Internal/Admin/Marketing.php
Co-authored-by: Gan Eng Chin <ecgan@users.noreply.github.com>
* Use fallback for different languages.
* Use location as a fallback for names.
* Fix linting.
* Refactor.
* Remove unneded new line.
* Remove duplicated code.
---------
Co-authored-by: Gan Eng Chin <ecgan@users.noreply.github.com>
* Add MarketingRecommendations feature.
The code here is based on other feature with default fallbacks and with data source poller, e.g. see payment gateway suggestions.
* Use MarketingRecommendations feature in API.
* Add spec_key for MarketingRecommendationsDataSourcePoller.
If we don't specify it, the default is `id`, which is not used in our recommendation data, and this will cause things not to work as expected.
* Recursively convert object to array.
This is because all the subsequent functions work with arrays, not objects.
* Make recommended marketing tools and coupons use MarketingRecommendationsInit.
This is so that recommended channels, tools, and coupons make use of the same transient data with data source poller.
* Add changelog.
* Fix PHP lint issues.
* Add doc comment to fix lint error.
* Fix tests in MarketingRecommendationsTest.
* Replace recommendations.json file with generated data in DefaultMarketingRecommendations.
This is to have i18n support.
* Add icons for fallback marketing recommendations.
* Fix PHP linting issue.
* Fix linting issue.
* Fix failing tests with PHP 8.0.
* Remove unused replaced code in MarketingSpecs.
* Delete old marketing recommendations transient upon update to WC 8.6.0.
* Add changelog.
* Introduce the minimal block style for productDetails block
* Change the default style in the template
* Change the default template when using the transform-to-blocks button
* Cleanup
* Organize CSS selectors
* Add opacity on hover
* Fix specificity and add explanation
* Cleanup
* Changelog
* Add MarketingRecommendations feature.
The code here is based on other feature with default fallbacks and with data source poller, e.g. see payment gateway suggestions.
* Use MarketingRecommendations feature in API.
* Add spec_key for MarketingRecommendationsDataSourcePoller.
If we don't specify it, the default is `id`, which is not used in our recommendation data, and this will cause things not to work as expected.
* Recursively convert object to array.
This is because all the subsequent functions work with arrays, not objects.
* Make recommended marketing tools and coupons use MarketingRecommendationsInit.
This is so that recommended channels, tools, and coupons make use of the same transient data with data source poller.
* Add changelog.
* Fix PHP lint issues.
* Add doc comment to fix lint error.
* Fix tests in MarketingRecommendationsTest.
* Replace recommendations.json file with generated data in DefaultMarketingRecommendations.
This is to have i18n support.
* Add icons for fallback marketing recommendations.
* Fix PHP linting issue.
* Fix linting issue.
* Fix failing tests with PHP 8.0.
* Remove unused replaced code in MarketingSpecs.
* Remove unneeded false check.
This is because `is_array` would return `false` when `false` is being passed as the argument.
Co-authored-by: Bartosz Budzanowski <bartosz.budzanowski@automattic.com>
---------
Co-authored-by: Bartosz Budzanowski <bartosz.budzanowski@automattic.com>
* Do not access change_feature_enable() statically. Closes#43175. Copy of @helgatheviking's cd71d08577.
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Centralize log level labels
* Fire an action specific to loading the Logs tab
* Functional settings screen (no way to navigate to it yet)
* Deprecate wc_register_default_log_handler
* Hook up the settings
* Add section nav
* Add an action hook to the settings form
* Rename render_page method to render_form
* Scaffold the unit tests
* Remove logging enabled check from WC_Logger construct
Caching the enabled setting value turns out to not be a great idea,
it breaks some tests, and could cause issues if the setting value
changes, and then a logging event happens later in the same request.
WP has its own caching layer for options anyway, but one that will
update if the value of the option changes. So this just makes the
enabled check directly from the should_handle method.
* Add most unit tests. Still needs a couple more
* Add remaining unit tests
* Update since values on new hooks to 8.6.0
* phpcs cleanup
* Change deprecated tag from 8.5.0 to 8.6.0
* Add missing return types to unit tests
* Add changelog file
* Add missing clear method to new log file handler
* Change level_threshold default value to 'none'
* Ensure logger has a valid level threshold set, regardless of level given
* Update legacy unit test
* Ensure settings only saved on settings view
* Add settings sections for filesystem and database
Also add a filesystem setting for collapsing log entry lines.
* Add public LoggingUtil class for external usage, and use in WC_Logger
* Remove unused import
* Deprecate wc_get_log_file_path and wc_get_log_file_name
* Preserve white space in log file lines
It turns out that several extensions add log entries that are just
a print_r of an array. Preserving the white space is important for
making this data legible (ideally they'd switch to adding this data
within the context parameter)
* More legacy unit test fixes
* Remove entry collapse option and functionality
It's unclear right now that entry collapsing provides much real
benefit, while it clearly does have some potential drawbacks if
extensions are in use that add print_r output to the log files.
* phpcs cleanup
* Yet more unit test tweaks
* Remove unused code
* Don't wrap extra handler options in <code>, it gets excaped
* Attempt fix for WC_Tests_Logger::test_clear
This is only failing on GH CI, not when running locally. Maybe
ensuring all the created log files are deleted will help.
* Improve logging of fatal errors
This improves the formatting of error messages caught and logged
during shutdown to be more legible and to take advantage of the
logging method's context parameter. With this change, the log entry
will be a simple message on one line, and any stack trace will be
available but hidden in an "Additional context" details element.
* Tweaks to some settings' wording
* Update webooks link to logs, undeprecate
* Remove `realpath` usage since it deos not work if log directory does not already exists.
---------
Co-authored-by: Vedanshu Jain <vedanshu.jain.2012@gmail.com>
* Remove custom styles from button
* Avoid php warning about images and slug not defined
* Add changefile(s) from automation for the following project(s): woocommerce
* Add changefile(s) from automation for the following project(s): woocommerce
* Fix linting errors
---------
Co-authored-by: github-actions <github-actions@github.com>
* Redirect supported product types to the new experience based on the product template associated to it
* Add changelog file
* Fix linter error
* Redirect using the product type first and then the associated product template
* Set the product template id also for unsupported product templates
* Add changelog file
* Remove supported_product_types from the RedirectionController since the product_templates is used instead
* Fix php linter error
* Remove v1 of plugin installer.
* Rename WC_REST_WCCOM_Site_Installer_Controller_V2 into WC_REST_WCCOM_Site_Installer_Controller.
* - Create base controller for WCCOM Site requests, extended by Installer and SSR controllers.
- Switch get SSR endpoint to v2 namespace.
* Remove namespace property from Installer controller.
* Linting.
* Add changefile(s) from automation for the following project(s): woocommerce
* Switch request method of reset install endpoint to POST (#43150)
- Switch reset installation state request to POST.
- Change wccom-site API namespace to v3.
* Exclude deleted files from linter check (#43355)
Exclude deleted files from linter check.
---------
Co-authored-by: github-actions <github-actions@github.com>
* Rename media setting to "Open pop-up when clicked"
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix "rm: .git/hooks: No such file or directory" error in `pnpm install`.
* Add changelog.
* Use "rm -rf" instead of "test" command on .git/hooks directory.
We use the "-f" flag so that it does not throw error when the directory does not exist.
* Try reducing blocks build size
* Add changefile(s) from automation for the following project(s): woocommerce
* Only set NODE_ENV if its not already defined
---------
Co-authored-by: github-actions <github-actions@github.com>
- Use `referrer` & `source_type` field names consistently
Remove the need to translate it back and forth.
- Make fields actually extendable using `wc_order_attribution_tracking_fields`.
Propagate the field configuration to the client side as well.
Disambiguate fields in variables and functions.
Co-authored-by: Justin Palmer <228780+layoutd@users.noreply.github.com>
* Add product search field to the linked product list block
* Add empty state to the linked product list block
* Fix AdviceCard styles
* Create skeleton for the linked product list block
* Fix linter errors
* Move the product list skeleton to the product list component folder
* Revert AdviceCard changes
* Remove upsells and cross-sells block to use linked-product-list block instead
* Add changelog files
* Hide sale badge if product image is disabled
* Fix css target to cover all product grid
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Hide on sale badge via PHP side
* Remove css changes
---------
Co-authored-by: github-actions <github-actions@github.com>
* Return the correct empty images response
* Use the correct structure in the images endpoint response
* Add changefile(s) from automation for the following project(s): woocommerce
* Throw error when no images and the store is already ai generated
---------
Co-authored-by: github-actions <github-actions@github.com>
* fix - Product Button: don't trigger old add to cart function when the button is clicked on classic themes
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* improve E2E tests
* update changelog
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* update changelog
* use beforeEach
---------
Co-authored-by: github-actions <github-actions@github.com>
* Product Gallery: Use @container rule to adjust overlay link count font size
* Add changelogs
* Remove em from line height
* Make view all link smaller
* Delete woocommerce-gutenberg-products-block.php file
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix commands with tags breaking the command palette
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Move the switch to classic shortcode block button to separate component
- Move modal component file from incompatible-extension-notice component folder to switch-to-classic-shortcode-button folder.
- Rename modal component file to model-content component file.
- Move the switch to classic shortcode block button to separate component folder
* Update generic incompatibility notice
- Update the notice description.
- Add switch to classic shortcode block button to the notice.
* Fix margin in editor.scss
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Update class names in switch-to-classic-shortcode-button component
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Update plugins/woocommerce-blocks/assets/js/editor-components/switch-to-classic-shortcode-button/editor.scss
Co-authored-by: Niels Lange <info@nielslange.de>
* Refactor SwitchToClassicShortcodeButton component
* Fix css lint erros
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Add type property to notice events
* Refactor switch to classic shortcode button logic
* Use isCart for switchButtonLabel and snackbarLabel
* Remove empty div in sidebar compatibility notice component
* Refactor switch to classic shortcode button event handling
* Adjust wording
* Adjust marging and readability
* Introduce union for SwitchToClassicShortcodeButtonProps type prop
* Simplify logic
* Use proposed text
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Niels Lange <info@nielslange.de>
Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com>
* Corrections to HTML markup of settings controls
* Remove deprecated `valign` attributes from table row elements
* Remove orphaned quotation marks from the end of table row elements
Co-authored-by: Sagehen Studio <2924107+sagehenstudio@users.noreply.github.com>
* Enable title prop for `info` setting type
This gives the `<th>` for the info setting type a closing tag
since its not self-closing. It also allows for adding a `title` prop
to the info setting type, to match all the other setting types.
* Add changelog file
* phpcs cleanup
---------
Co-authored-by: Sagehen Studio <2924107+sagehenstudio@users.noreply.github.com>
* introduce packages/js/data/src/user/types.ts pref
* be able to dismiss the Upsells advice
* rename user pref key
* typify product_advice_card_dismissed prop
* store is dismissed state in the user pref
* delegate the dismiss state to the component
* changelog
* remove console.log :'(
* fix TS issue
* fix TS issue
* changelog
* Create and register product-linked-list-field block
* Add upsells and cross-sells blocks to the simple product template
* Create formatted price component
* Add linked product table to the linked product list block
* Add remove product button to each product row
* Add see product page button
* Add link to the product name so it can be edited in a new tab
* Fix some styles
* Add product search field to the linked product list block
* Fix styles
* Add changelog files
* Fix linter error
* Fix rebase conflicts
* Use useProductEntityProp instead of useEntityProp within product-linked-list-field block
* Move the product list to its own component
* Move the product select to its own component
* Move the product image to its own component
* Fix linter error
* Remove old noticed on classic checkout when applying coupon code
* Remove old noticed on classic checkout when applying coupon code
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Show default patterns and products if the images request fails
* Add changefile(s) from automation for the following project(s): woocommerce
* Remove space
* Simplify condition
* Removed unused call
---------
Co-authored-by: github-actions <github-actions@github.com>
* Remove the double quotes from the AI generated content before saving it
This will avoid having two consecutive double quotes and breaking the JSON.
* Add changefile(s) from automation for the following project(s): woocommerce
* Fix lint error
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add rating and change product card layout
* Fix some minor CSS bugs in existing code
* Implement skeleton loader
* Update theme card styling to match design
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix namespace
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Endpoint shell
* Single layout template route
* Add area query arg
* Fix BlockTemplateRegistry::get_registered() return type
* Check if templates are registered before registering
* Use json format for layout templates response
* Remove unused use
* Use json format for layout templates response for get_items
* Consolidate processing for get_items and get_item
* LayoutTemplateRegistry
* Fix matching by id
* Get templates from LayoutTemplateRegistry
* Remove unused method
* Fix typo in code doc
* Move template instantiation to registry
* Return template instance, not json when instantiating
* Use LayoutTemplateRegistry instead of BlockTemplateRegistry
* Add code docs for rest controller
* Fix code doc in BlockTemplateRegistry
* Code docs for LayoutTemplateRegistry
* Changelog
* Add code doc for LayoutTemplatesServiceProvider
* Unit test for registering a layout template
* Unit tests for invalid params when registering layout template
* Unit test for layout template instantiation
* Unit test for instantiating layout templates with query params
* Unit test for layout template instance caching
* Cache layout template instances
* Refactor layout template info querying
* Add unit test for layout template instantiation actions
* Add before and after layout template instantiation actions
* Use layout template ID for array key
* REST API unit test to get all items
* Unit test for unregister_all
* Method to unregister all layout templates
* REST API unit test to get all items for a specific area
* Fix to_json() in TestLayoutTemplate
* REST API unit test to get single item
* Fix get_item
* REST API unit test for single item with invalid id
* REST API unit test for get all items for invalid area
* Fix test_cached_instances - array access
* Test that old register hook is called
* Call old register hook
* Remove before hook (will put in separate PR)
* Fix occurrences where Installer_Error exception is returned instead of being thrown.
* Add changefile(s) from automation for the following project(s): woocommerce
* Add @throws tag in function comment.
- Stop tracking order attribution when the consent is revoked on the same page.
Switch `wp_consent_type_defined` to VanillaJS event, as this is what the latest Complianz dispatches.
Remove jQuery dependency.
5427807509
- Update checkout block data when consent is given/revoked on the same page
263d0b8a14
- Register WPConsentAPI integration for OrderAttribution
cde9f642a1
- Don't store empty meta values for order attribution
If no values at all are sent, don't create meta records
00b83eed00
- Don't translate or add parenthesis to unknown placeholder
bbc4b1f699
- Un-hardcode marketing category in wp-consent-api-integration.js
45014a715a
Co-authored-by: Justin Palmer <228780+layoutd@users.noreply.github.com>
* introduce UserPreference panel
* render user preference panel
* expose UserPreferences type
* introduce force mode to update user pref
* rename global object with `__wcbt`
* changelog
* changelog
* Fix typo
* Fix `acceleratedReleaseDate` output
* Comment unnecessary steps, jobs
* Do only a dry-run
* Revert "Do only a dry-run"
This reverts commit a41ea99401.
* Revert "Comment unnecessary steps, jobs"
This reverts commit 97985a0ad0.
* Add changelog
* Prevent Command Palette scripts to enqueue unnecessary scripts in the editor
* Add changefile(s) from automation for the following project(s): woocommerce
* Properly set script asset dependencies
* Create util function to simplify the code
* Fix JS warning when registering WooCommerce Commands
---------
Co-authored-by: github-actions <github-actions@github.com>
* add: multiple select support to attribute dropdown
* fix: remove active filter from dropdown
* chore: remove unused extractBuiltinColor
---------
Co-authored-by: Tung Du <dinhtungdu@gmail.com>
* Add e2e tests for image transition in Product Gallery block
* Create e2e tests for the Product Gallery block when it is inside the pop-up
* Add changelog
* Remove unnecessary lodash dependency import
* Increase product images width to 400 to have a better resolution
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* add: query filters count class
* chore: method comments
* refactor: rename class to QueryFilters
* fix: price filter count
* fix: price filter url
* chore: remove unnecessary transformation
* chore: remove unused meta query filter
* chore: put public methods on the top of the class
* fix: passing $wp_query
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* fix: stock query clause
* fix: handle and query type for attribute filter
* fix: ensure passing non null value to floor/ceil
* [Experimental] Collection Filter blocks: ensure the namespace is always rendered (#43112)
* fix: ensure the namespace is always rendered
* fix: target only wc queries
* fix: properly reset part of query to make new filter blocks work with Product Collection block
* Revert "Trigger event `experimental__woocommerce_blocks-cart-add-item` in the SSR Product Button vis Interactivity API (#42946)"
This reverts commit 4fec136da1.
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Update woocommerce.com URLs in documentation and code files
* Add changelog
* Fix github repository link in extend-rest-api-add-custom-fields.md
Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
* Add github reporter (#42974)
* Add github reporter
* Add changelog
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
* Fix product task redirect to support grouped and external products (#43051)
* Rearrange product redirection logic to better accept grouped and external produc types
* Add changelog
* Modify feedback modal actions (#43005)
* Adapt feedback modal actions
* Add changelogs
* Modify comments
* Fix tests
* Fix test
* Update class-wc-gateway-bacs.php (#43054)
* Update class-wc-gateway-bacs.php
Fix typo in textdomain
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* [Product Block Editor]: Add `Linked product` tab (#43009)
* add linked-products to group IDs
* add Linked Products tab
* tweak hideConditions condition
* changelog
* fix typo in doc comment
* Introduce a product type selection within the new experience (#41823)
* Create a relation between the product type and the product block template
* Add 'patterns' to name the kind of products that can be created for a specific template
* Resolve template using its id as a template query param
* Rename ProductEditPattern to ProductTemplate
* Rename get_patterns hook to woocommerce_product_editor_get_product_templates
* Return the list of templates to the client
* Set layout template events as array
* Register the layout template based on the product template or the post type in case of product variations
* Registering non supported product types
* Create and register the woocommerce/product-details-section-description block
* Add the product type to the section description
* Create product type selector
* Fix menu item style
* Highlight selected menu item
* Set the selected product template
* Set product template title to lowercase in the content description
* Rename blocks by blockTemplates under the AbstractBlockTemplate class
* Rename to woocommerce_product_editor_product_templates filter
* Remove product_template_ prefix from the supported_product_types map
* Rename get_formatted to to_JSON and convert the props to client side like
* Refactor get_product_templates
* Fix icon resolution
* Add a confirmation modal for unsupported product templates
* Add changelog files
* Remove product types using for testing
* Fix redirection when changing to a non supported product template
* Set the change button state to busy when it is saving the product
* Fix php linter errors
* Fix rebase conflict
* Move ProductTemplate to Automattic\WooCommerce\Admin\Features\ProductBlockEditor namespace
* Add the to_json definition to the BlockTemplateInterface
* Create default product template by custom product type if it does not have a template associated yet
* Fix some comments and product template creation validation
* Add support to load the product template icon from an external resource
* Fix php linter
* Fix the changelog description
* [Experimental] Interactivity Dropdown multi-select mode, ratings filter and introduce each directive (#42981)
---------
Co-authored-by: David Arenas <david.arenas@automattic.com>
* Introduce the transient files engine (#42877)
Co-authored-by: Corey McKrill <916023+coreymckrill@users.noreply.github.com>
* Change marketplace install API request to POST instead of GET (#43033)
* Change marketplace install API to using POST instead of GET
* Fix linting error
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Prep trunk for 8.6 cycle (#43021)
Prep trunk for 8.6 cycle with version bump to 8.6.0-dev
Co-authored-by: WooCommerce Bot <no-reply@woo.com>
* Add Playwright tests for All Reviews, Reviews by Product and Reviews by Category blocks (#42903)
* Remove Reviews blocks Puppeteer tests
* Minor code cleanup
* Typos
* Create publishAndVisitPost() editor util
* Fix subcategories when importing products in Playwright and add reviews
* Add Reviews blocks tests in Playwright
* More typos
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Create a 'reviews' object in data.ts so we can store reviews data in one single place
* Update test so instead of creating a new post in each test, we go to the already-created post
* Add source comments to reviews data to match it with the script
---------
Co-authored-by: github-actions <github-actions@github.com>
* Release: Remove 8.5 change files (#43022)
Delete changelog files from 8.5 release
Co-authored-by: WooCommerce Bot <no-reply@woo.com>
Co-authored-by: Alex López <alex.lopez@automattic.com>
* Delete changelog files based on PR 43033 (#43079)
Delete changelog files for 43033
Co-authored-by: WooCommerce Bot <no-reply@woo.com>
* Delete changelog files based on PR 43051 (#43081)
Delete changelog files for 43051
Co-authored-by: WooCommerce Bot <no-reply@woo.com>
* Interactive Price Filter: use `context` instead of `state` (#42980)
* feat: use context instead of state
* fix: temporary move the context to inner element for diffing to work
* fix: update context before navigation for optimistic UI
* Load google analytics gtag script asynchronously in WooCommerce Blocks (#43040)
Co-authored-by: github-actions <github-actions@github.com>
* set WOOCOMMERCE_BLOCKS_PHASE to 1 for the production build (#43074)
* set WOOCOMMERCE_BLOCKS_PHASE to 1 for the production build
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Revert "Fix schedule sales error" (#43094)
Revert "Fix schedule sales error (#42700)"
This reverts commit 9b800aa179.
* [Product Block Editor]: add Linked product sections. First approach. (#43013)
* add Linked products, Upsell section
* changelog
* add Cross-lens section
* add links to the Upsell sections
* changelog
* fix lint issues
* fix lint issus
* fix linting issue :-|
* check whether the linked product group is defined
* [Product Block Editor]: introduce ShoppingBags component (#43042)
* add ShoppingBags component
* Add ShoppingBag story
* changelog
* Fix: Collection data being leaked between Collection Filters blocks (#43044)
* fix: CYS - change heading color (#43076)
* fix: CYS - change heading color
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Patricia Hillebrandt <patriciahillebrandt@gmail.com>
* Delete changelog files based on PR 43074 (#43118)
Delete changelog files for 43074
Co-authored-by: WooCommerce Bot <no-reply@woo.com>
* [Product Block Editor]: fix feature flag to hide the Linked products (#43119)
* fix flag to hide/show product editor
* changelog
* Add changelog
---------
Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
Co-authored-by: Jonathan Lane <lanej0@users.noreply.github.com>
Co-authored-by: Jon Lane <jon.lane@automattic.com>
Co-authored-by: louwie17 <lourensschep@gmail.com>
Co-authored-by: Fernando Marichal <fernando.marichal@automattic.com>
Co-authored-by: Marc Guay <marc.guay@gmail.com>
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Damián Suárez <rdsuarez@gmail.com>
Co-authored-by: Maikel David Pérez Gómez <maikel.perez@automattic.com>
Co-authored-by: Sam Seay <samueljseay@gmail.com>
Co-authored-by: Néstor Soriano <konamiman@konamiman.com>
Co-authored-by: Corey McKrill <916023+coreymckrill@users.noreply.github.com>
Co-authored-by: Kyle Nel <22053773+kdevnel@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: WooCommerce Bot <no-reply@woo.com>
Co-authored-by: Alex López <alex.lopez@automattic.com>
Co-authored-by: Tung Du <dinhtungdu@gmail.com>
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
Co-authored-by: Luigi Teschio <gigitux@gmail.com>
Co-authored-by: Patricia Hillebrandt <patriciahillebrandt@gmail.com>
* Fix: Enable Pagination Block Visibility in Product Collection Block
This commit resolves an issue where the Pagination block was not visible in the block insertor within the Product Collection block.
- The core query pagination block name, initially hardcoded, is now declared as a constant `coreQueryPaginationBlockName` in `constants.ts`. This change not only improves code readability but also ensures consistency in using the block name across different files.
- In `index.tsx`, the `addProductCollectionBlockToParentOfPaginationBlock` utility function from `utils.tsx` is imported and executed. This function plays a crucial role in the fix. It dynamically adds the Product Collection block to the parent array of the Core Pagination block, ensuring the latter's visibility in the insertor when editing the Product Collection block.
- The utility function employs WordPress hooks and version checks to gracefully handle different WordPress environments. This careful approach maintains backward compatibility while addressing the current issue.
With these changes, merchants can now easily add a Pagination block from the insertor while working on the Product Collection block, enhancing the user experience and functionality.
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Update product query block templates with WooCommerce namespace
It modifies the `<wp:post-template>` block in multiple files to include a new attribute: `{"__woocommerceNamespace":"woocommerce/product-query/product-template"}`.
The inclusion of the `__woocommerceNamespace` attribute is a strategic enhancement, ensuring that these block templates are explicitly recognized as part of the WooCommerce namespace.
This fix the issue where migration from Products beta block to Product Collection block doesn't work properly.
* Fix linting error
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
Certain order properties (or metadata) are not relevant for HPOS verification. For example, `_edit_lock` which is an ephemeral key. So far we've been hardcoding these keys in various places. This provides a new API to access these keys. It also introduces hook `woocommerce_hpos_sync_ignored_order_props` which allows 3rd party code to add new keys to be ignored by sync/verification code.
Fixes#41907
* Migrate Backend mini-cart tests to Playwright
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com>
* Show rating stars for the cross-sells products
* Fix typo introduced in #43116 (#43148)
* Fix typo introduced in #43116
* Add changefile(s) from automation for the following project(s): @woocommerce/product-editor
---------
Co-authored-by: github-actions <github-actions@github.com>
---------
Co-authored-by: github-actions <github-actions@github.com>
* Update the neutral color palette to black and white.
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Remove the last business description check to allow repetition.
* Create the new AIContent directory and update the structure and name of the classes.
* Ensure the store title is updated with new AI-generated content if the previous title was also AI-generated.
* Return if the images result in error.
* Update the name of the option for fetching the AI generated site title.
* Introduce the new adjust_image_size method for shared usage between products and patterns.
* Increase the quality of images used in patterns
* Introduce the ContentImageProcessor class.
* Undo PatternsHelper rename
* Add changefile(s) from automation for the following project(s): woocommerce
* Address lint errors
* Ask AI to summarize the business description if the number of characters provided by the user is bigger than 150 characters.
* Rename the ContentImageProcessor class to ContentProcessor and introduce the new summarize_business_description method.
---------
Co-authored-by: github-actions <github-actions@github.com>
* Migrate PR to Core
* Migrate test changes
* Add Custom Collection with inherit query attribute disabled
* Update copy of Product Catalog collection
* Don't choose default active collection in polaceholder and remove highlight
* Remove inherit query option from inspector controls
* Add collection names to Product Catalog and Custom one
* Unify Collection Chooser between Modal and Placeholder
* Bring back util removed by accident
* Replace the translations domain with woocommerce
* Remove leftovers after merge
* Add pagination and no results to Product Catalog and Custom collections
* Revert textdomain change
* Fix lint error
* Add changelog entry
* Change collection label
* Bring back Inherit query from template
* Remove Custom collection and bring back single Product Collection
* Simplify applying collection
* Make sure Inherit query from template is enabled in archive templates by default and disbaled in posts/pages
* Change incorrect Playwright locator
* Add test for Product Catalog inheriting the query in product archive
* Add tests for recommendation collection hiding the predefined filters
* Add reviews to multiple products
* Update expected products in Top Rated
* Remove rating creation in test env and skip undeterministic tests
* Add skip to Best Sellers test
* Update README.md
* Add more keywords to collections, like 'product collection' to recommendation collections
* Rephrase the README note about Collections registration
* Simplify types
* Rename unchangeableFilters to hideControls
* Fix typo in file name
* Remove 'pattern' references from toolbar files
* Replace hardcoded SCSS color with wc variable
* Remove changelog file from different PR
* Move hideControls to Product Collection ayttributes
* Improve responsiveness of columns in Product Collection Placeholder
* Use admin color pallette in Product Collection Placeholder
* Move Inherit query from template to the top of Inspector Controls
* Change the Collection prefix to woocommerce rather than woocommerce-blocks
* Simplify Placeholder and Modal styles
* fix: CYS - change heading color
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Patricia Hillebrandt <patriciahillebrandt@gmail.com>
* set WOOCOMMERCE_BLOCKS_PHASE to 1 for the production build
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* feat: use context instead of state
* fix: temporary move the context to inner element for diffing to work
* fix: update context before navigation for optimistic UI
* Remove Reviews blocks Puppeteer tests
* Minor code cleanup
* Typos
* Create publishAndVisitPost() editor util
* Fix subcategories when importing products in Playwright and add reviews
* Add Reviews blocks tests in Playwright
* More typos
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Create a 'reviews' object in data.ts so we can store reviews data in one single place
* Update test so instead of creating a new post in each test, we go to the already-created post
* Add source comments to reviews data to match it with the script
---------
Co-authored-by: github-actions <github-actions@github.com>
* Change marketplace install API to using POST instead of GET
* Fix linting error
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Create a relation between the product type and the product block template
* Add 'patterns' to name the kind of products that can be created for a specific template
* Resolve template using its id as a template query param
* Rename ProductEditPattern to ProductTemplate
* Rename get_patterns hook to woocommerce_product_editor_get_product_templates
* Return the list of templates to the client
* Set layout template events as array
* Register the layout template based on the product template or the post type in case of product variations
* Registering non supported product types
* Create and register the woocommerce/product-details-section-description block
* Add the product type to the section description
* Create product type selector
* Fix menu item style
* Highlight selected menu item
* Set the selected product template
* Set product template title to lowercase in the content description
* Rename blocks by blockTemplates under the AbstractBlockTemplate class
* Rename to woocommerce_product_editor_product_templates filter
* Remove product_template_ prefix from the supported_product_types map
* Rename get_formatted to to_JSON and convert the props to client side like
* Refactor get_product_templates
* Fix icon resolution
* Add a confirmation modal for unsupported product templates
* Add changelog files
* Remove product types using for testing
* Fix redirection when changing to a non supported product template
* Set the change button state to busy when it is saving the product
* Fix php linter errors
* Fix rebase conflict
* Move ProductTemplate to Automattic\WooCommerce\Admin\Features\ProductBlockEditor namespace
* Add the to_json definition to the BlockTemplateInterface
* Create default product template by custom product type if it does not have a template associated yet
* Fix some comments and product template creation validation
* Add support to load the product template icon from an external resource
* Fix php linter
* Fix the changelog description
* Update class-wc-gateway-bacs.php
Fix typo in textdomain
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Use clientHeight to set the correct marginTop -- height is not a valid property
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Show the ai offline modal independently from the onboarding tour
* Add changefile(s) from automation for the following project(s): woocommerce
* Remove log
* Fix tests
* Add customizing parameter to avoid showing the aioffline modal when customizing
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add `date_type` parameter to revenue stats API for overriding the date type column.
* Update coding styles.
* Add changelog.
* Validate `date_type` value with strict matching.
* Add test cases for passing a valid/invalid `date_type` parameter.
* Remove extra validation on `date_type` value as it's already validated at the API level.
* Check for each allowed value of `date_type` in the test case.
* Fixed count() warning on invalid data supplied by the filter.
* Add changefile(s) from automation for the following project(s): woocommerce
* Removed unnecessary if
* Ordered comment to match if-clause
* Clean up old notice styles
* Adjust vertical marging for error list items on TT theme
* Add changefile(s) from automation for the following project(s): woocommerce
* Delete obsolete CSS file
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add price range filter to Product Collection block
This update introduces a price range filter feature to Product Collection. Changes include:
1. Constants Update:
- Added `priceRange` as undefined in `DEFAULT_QUERY` and `DEFAULT_FILTERS` in `constants.ts`.
2. Style Adjustments:
- Added CSS for `.wc-block-product-price-range-control` in `editor.scss` to align the input text to the end.
3. Component Integration:
- In `inspector-controls/index.tsx`, the `PriceRangeControl` component is now imported and integrated.
4. New Components:
- `PriceTextField.tsx` and `PriceRangeControl/index.tsx` have been created to handle price range inputs in the Product Collection block.
5. Backend Integration:
- `PriceRange` interface added in `types.ts` for type support.
- In `ProductCollection.php`, a filter (`add_price_range_filter`) is added to modify the main query based on the price range, including adjustments for tax considerations.
Overall, this enhancement allows users to filter products within a specific price range. The backend adjustments ensure that the filtering respects tax settings and displays accurate prices.
* Fix formatting
* Fix: Price range filter not working on Editor
* Improve: Share logic between Frontend & Editor
* Add changelog
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Remove duplicate changelog file
* Enhanced Input Control for Price Fields
Key changes include:
1. **Switch to Input Control**: Replaced the NumberControl component with the more versatile InputControl. This offers better handling of currency formatting and user input.
2. **Currency Formatting Logic**: Added robust logic for formatting numbers according to the currency settings. This includes handling thousand separators, decimal places, and currency symbols.
3. **String-to-Number Conversion**: Implemented a function to convert user-entered strings back to numbers, accounting for currency symbols and separators. This ensures accurate parsing of user input for processing.
4. **Input Handling Improvements**: Modified the onChange handlers for minimum and maximum price inputs. Now, they correctly handle edge cases like undefined or zero values, maintaining consistency in the user interface and data processing.
* Refactor price range query handling
1. Introduction of a new method `get_price_range_query_args()` to encapsulate the logic for handling price range queries, especially for the two edge cases:
- Prices excluding tax displayed including tax.
- Prices including tax displayed excluding tax.
2. Removal of direct conditionals in the `get_query_results()` method, replacing them with a call to the new `get_price_range_query_args()` method. This makes the code more modular and easier to understand.
This refactor enhances readability and maintainability of the code, ensuring that special cases in price range filtering are handled more effectively.
* Remove unnecessary suffix prop
* Refactor PriceTextField formatting logic for currency
1. Conditional application of thousand separators: The code now checks for the existence of `currency.thousandSeparator` before applying it. This prevents potential errors when the separator is undefined.
2. Simplified decimal separator handling: Introduced a fallback for the decimal separator, defaulting to a period ('.') if not specified by the currency settings.
3. Enhanced readability and documentation: Added comments to clarify the purpose of code blocks, especially where currency symbols are added or removed, and where value normalization occurs.
4. Function renaming for clarity: Renamed `formatValueWithCurrencySymbol` to `formatCurrency`, which better reflects its purpose.
* Fix onBlur issue with PriceTextField component
Refactored the PriceTextField component to utilize useState for better state management. This change introduces a local state variable, 'newValue', to store the current value. The state updates occur in the handleOnChange function, ensuring that the component's state is managed efficiently. Additionally, a new function, handleOnBlur, is implemented to handle the onBlur event, updating the component's state when focus is lost. The handleEnterKeyPress function captures the 'Enter' key press, providing a more user-friendly experience by allowing users to confirm their input with the Enter key.
* Fix linting error
---------
Co-authored-by: github-actions <github-actions@github.com>
* Better align excluded order statuses with WC Reports
* Update Tracks data to match updated customer order history count
* Add changelog
* Clarify code comment
* Exclude `checkout-draft` for block checkout/API orders.
* Remove unecessary array_map
Co-authored-by: Bartosz Budzanowski <bartosz.budzanowski@automattic.com>
* Use existing method to get un-prefixed order statuses
---------
Co-authored-by: Bartosz Budzanowski <bartosz.budzanowski@automattic.com>
* Add utm_category to discover page
* Fix product category URL params
* Add changefile(s) from automation for the following project(s): woocommerce
* Update productCategory to productGroup in Discover and NoResults components
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: Simran <simran.kaur@automattic.com>
Co-authored-by: github-actions <github-actions@github.com>
* use `method_title` for the email to the admin as that is better suited for an admin context
* do not require the title to be set in the updated option
* add the changelog file
* adjust the test, too
* appease the linter
* CYS - select the right font with AI offline
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* CYS - reset products and pattern when the site doesn't have AI generated content
* Add changefile(s) from automation for the following project(s): woocommerce
* fix lint
---------
Co-authored-by: github-actions <github-actions@github.com>
* Trigger event experimental__woocommerce_blocks-cart-add-item in the SSR Product Button vis Interactivity API
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Update code comment and add reference to the followup issue
---------
Co-authored-by: github-actions <github-actions@github.com>
* Installer url API
* Redirect if installer not available
* Remove paid product autoinstall support
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add logging and admin noticing for rest api usages
Two new settings are added (UI in the Legacy API settings page):
- woocommerce_legacy_api_log_enabled
- woocommerce_legacy_api_usage_notice_enabled
When any of the two are enabled, legacy API usages are stored
in two options, 'wc_legacy_rest_usages' and 'wc_legacy_rest_last_usage'.
'wc_legacy_rest_usages' is a dictionary keyed by user agent,
each entry is in turn a dictionary keyed by request route,
items are arrays containing first and last usage dates as well
as total usages count (API version is logged too but for simplicity
it's not used to key the data).
'wc_legacy_rest_last_usage' contains the entry for the last usage,
regardless of user agent and route. It's used to display the notice.
When 'woocommerce_legacy_api_usage_notice_enabled' is enabled,
and the 'wc_legacy_rest_last_usage' option exists, an admin notice
displaying its contents is shown.
* Add changelog file
* Linting fixes
* Fix unit test
* Simplify the approach to logging/noticing:
- Remove settings
- Use a transient instead of an option for temporary data
- Store temporary data by user agent but not by route
- Make the admin notice dismissable
- Don't log now show the notice if the legacy REST API extension
is installed and active
- Add a filter to explicitly disable the logging
* Small fixes, including a missing "exit" after request processing
* Apply suggestions from code review
Co-authored-by: Jorge A. Torres <jorge.torres@automattic.com>
* Fix linting issues
* Update the warning text under the "Enable legacy REST API" setting
* Change the rules to display the notice.
Now it won't appear if the transient isn't available
or if the Legacy REST API is disabled (or if the Legacy REST API
extension is active, as before); but if the user hasn't
explicitly dismissed the notice it will appear again if the transient
is recreated or the Legacy REST API is enabled again.
---------
Co-authored-by: Jorge A. Torres <jorge.torres@automattic.com>
* Add the source type / origin of "Web admin" for orders created in admin
* Include "Web admin" in values for Order information metabox
* Include "Web admin" value for the Order information metabox
* Use the Order Origin meta value in the Origin column of the Orders table
* Add web admin and direct as origin values, and a flag for un/translated
* Use the untranslated origin_label value in Tracks
* Don't store the origin label in the database to allow better l10n
* Lowercase origin label in Tracks
* Empty label and Direct or Web admin as source for orders table column
* Better Tracks customer order count and include customer status
* Add changelog
* Update test to expect Unknown
* Remove short ternary
* Change OA meta box title to Order Attribution
* Use native order method `get_total_refunded`
* Simplify origin labels - use the same value for Orders Edit and table
* Correct imprecise doc comment.
* Improve customer order count and total spend calculation
* Make default label "Unknown" (for pre-OA orders, for example)
* Update tests to match new labels
* Hide Marketplace feature toggle UI
* Ensure marketplace feature is active in DB on all sites
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Remove duplicated text
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Don't access the keys of what is now just an array
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Adds missing aria-label and tabindex HTML attributes to the Help tip element for "Product data" on "Add new product" page.
* Escape HTML tags
* Added changelog
* Update comment
* Amend method for selecting "New attribute" placeholder.
* Restore use of `getByRole()` and select first instance (two are being matched, in some cases).
* Use last match (in some test runs, `getByRole()` is unexpectedly matching more than 1 heading.
---------
Co-authored-by: Sagar Tamang <mi5t4n@gmail.com>
* docs: Compatibility Layer - update documentation about woocommerce_single_product_summary
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Reviews by Product block: fix encoded in input aria-label
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Make extended fields optional in Store API
* add tests
* add changelog
* update logic in validate function
---------
Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com>
* add: active filters block
* update text domain
* chore: linting
* use template string instead of concat
* add experimental flag to register block type calls
* chore: update comments
* feat: register active rating filter data
* fix: unique navigation id when collection filters are added outside product collection
* fix: active filter rating id
* fix: return the href
* chore: phpcs
* Introduce `LegacyDataHandler` for handling legacy orders in the HPOS datastore
* Add methods to count and obtain orders subject to cleanup
* First pass at metadata cleanup for orders
* Add unit tests
* Implement `wc hpos cleanup` CLI tool
* Make PHPCS happy
* Add changelog
* Change error to warning
* Improve tests
* Fix unit tests
* Allow cleaning up of placeholders with meta
* Add support for `--force` flag
* Update plugins/woocommerce/changelog/enhancement-41914
Co-authored-by: Barry Hughes <3594411+barryhughes@users.noreply.github.com>
* Update plugins/woocommerce/src/Database/Migrations/CustomOrderTable/CLIRunner.php
Co-authored-by: Barry Hughes <3594411+barryhughes@users.noreply.github.com>
* Update plugins/woocommerce/src/Database/Migrations/CustomOrderTable/CLIRunner.php
Co-authored-by: Barry Hughes <3594411+barryhughes@users.noreply.github.com>
* Exclude auto-draft
---------
Co-authored-by: Barry Hughes <3594411+barryhughes@users.noreply.github.com>
* Move the switch to classic shortcode block button to separate component
- Move modal component file from incompatible-extension-notice component folder to switch-to-classic-shortcode-button folder.
- Rename modal component file to model-content component file.
- Move the switch to classic shortcode block button to separate component folder
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Update class names in switch-to-classic-shortcode-button component
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Update plugins/woocommerce-blocks/assets/js/editor-components/switch-to-classic-shortcode-button/editor.scss
Co-authored-by: Niels Lange <info@nielslange.de>
* Refactor SwitchToClassicShortcodeButton component
* Fix css lint erros
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Niels Lange <info@nielslange.de>
* add mask-image
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
Allow for line breaks within log messages so they can be easier to read when they contain a lot of content.
Based on a suggestion in #27758
Co-authored-by: Moritz Meißelbach <4208996+Biont@users.noreply.github.com>
This fleshes out the LogHandlerFileV2 class that was introduced back in #40662. It no longer extends the original file log handler, but works as a standalone. To realize the improvements in the handler class, lots of improvements are also made to the File and FileController classes.
Notable enhancements in this handler class vs the original one:
* Better algorithm for determining the "source" of a log entry when none is provided.
* Normalizes the source property of a log entry so that variations in capitalization will still result in the same value.
* Improves file rotation behavior so that it will consistently increment each rotation up by one.
* Formats log messages to remove line breaks, so that each line of a log file is an entire entry.
* To complement this, data from the $context parameter is added to the log entries, and displayed in the log file viewer as prettified JSON, hidden behind a `<details>` element. Thus, each log entry can be expanded to show the context data, but it won't dominate the screen in the log viewer by default.
Fixes#41561
* Extract 'downloadable product' class and include it for API endpoint calls as well
* Re-add mediauploader component
* Restore UploadFilesMenuItem
* Provide additionalData type
* Restore MediaUploader component
* Lint PHP
* Add changelogs
* Update pnpm-lock
* Revert "Update pnpm-lock"
This reverts commit b61ee5813aa0b7b8b1ea8e71423bedbb6f876139.
* Revert pnpm-lock.yaml
* Fix unit tests
* Use WC_ABSPATH
* Revert "k6 perf tests: Fix parsing of COT/HPOS environment variable (#40930)"
This reverts commit 50c56d8427, reversing
changes made to cbc3bac88c.
* Address potential rXSS vulnerability in the product-reviews-have-moved notice.
* Changelog.
* Restore button-based approach for notice dismissal.
In the context of this edit comments screen, it looks better as a button (than as a link, which would require extra CSS to support).
* Tidy.
* Update tests: reviews-have-moved notice HTML has been updated.
* Modify form-based approach following code-review feedback.
---------
Co-authored-by: barryhughes <3594411+barryhughes@users.noreply.github.com>
* add matching image by sku exp feature
* attach featured image in rest api
* add CSV import support
* include changelog
* update from feedback- move to products advanced settings
* address phpcs
* bump @since to 8.5.0
---------
Co-authored-by: Ron Rennick <ronald.rennick@automattic.com>
* Add tracking when opening or searching in the Command Palette
* Add changefile(s) from automation for the following project(s): woocommerce
* Add 'origin' property to all Command Palette events
---------
Co-authored-by: github-actions <github-actions@github.com>
* Marketplace: refresh subscriptions in if "install" parameter exists
* Marketplace: handle loadSubscriptions or refreshSubscriptions failing
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Introduce Additional Fields API for Checkout Block https://github.com/woocommerce/woocommerce-blocks/pull/12073
* revert test to what it was
* Default to text, if the type supplied is not supported throw an error
* Add type for options
* Return null if somehow the select made it through without options
* Make select fields type enum and add options to schema
* Lint fixes
* Update plugins/woocommerce-blocks/assets/js/base/components/cart-checkout/address-form/address-form.tsx
Co-authored-by: Niels Lange <info@nielslange.de>
* Update plugins/woocommerce/src/Blocks/Domain/Services/CheckoutFields.php
Co-authored-by: Niels Lange <info@nielslange.de>
* Update checks to log errors and fail gracefully
* Add field id to class names
* Fix lint error
* Fix short array use
* Introduce Additional Fields API for Checkout Block https://github.com/woocommerce/woocommerce-blocks/pull/12073
* Default to text, if the type supplied is not supported throw an error
* Lint fixes
* Introduce Additional Fields API for Checkout Block https://github.com/woocommerce/woocommerce-blocks/pull/12073
* add support for registering checkboxes
* remove extra error log
* add styling
* fix rebase conflit
* fix rebase conflit 2
* fix linter errors
* address review comments
* add warning for checkbox
* fix changes
---------
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>
* Remove padding for the products query with background
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Karol Manijak <20098064+kmanijak@users.noreply.github.com>
* First pass at Playwright test migration
* Set working directory
* Remove exec
* Configure the environment before testing
* Remove filter
* Update paths for tests
* Try explicitly stating working-directory
* Change tests directory
* Try running all tests
* Uncommented project
* Update commands to run tests
* Comment out env config
* Uncomment
* Changelog
* Set up multiple test configurations
* Update failing test
* Update paths for artifacts
* Update path to artifacts
* Path to results
* remove unnecessary file
* Skip translation E2E tests
Skipping translation tests until we fix the missing translations issues after we changed the domain to "woocommerce"
* Update the artifacts path
* Fix lint errors
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
Co-authored-by: Luigi Teschio <gigitux@gmail.com>
Co-authored-by: Saad Tarhi <saad.trh@gmail.com>
* Add the response_format to the params for requests to AI to ensure it will return the responses in JSON format.
* Update the prompt to define the search term for images from Pexels.
* Streamline product content update and the product image uploads within the ProductUpdater class.
* IMprove prompts for images and product content generation.
* Update the prompt for defining the search term on Pexels and drop double quotes from the response.
* Update the prompts and the position for the titles on content generation for the woocommerce-blocks/testimonials-3-columns pattern.
* Set the 'woocommerce_ai_managed_images' transient for the products endpoint callback in case execution is interrupted so images don't have to be fetched from Pexels again.
* Update the prompt for defining the search term for images.
* Remove unused methods from the PatternsHelper class.
* Update the prompt for AI content generation in patterns.
* Update the prompts for the testimonials and the Hero Product 3 Split patterns.
* Update the position for the main title in the Hero Product 3 Split pattern.
* Reduce the size of the images uploaded to the media library for products.
* Add docblock and update prompts.
* Update the default size of the images received from Pexels to be downloaded and uploaded to the media library.
* Update prompts for the Hero Product 3 Split pattern.
* Add changefile(s) from automation for the following project(s): woocommerce
* Address lint errors.
* Update array formatting
---------
Co-authored-by: github-actions <github-actions@github.com>
* Remove use of deprecated conditional block
* Remove use of deprecated context usage
* Remove use of deprecated positoin on Dropdown in favour of popoverProps
* Add changelogs
* Remove unused import
* Fix lint errors
* Remove popoverProps.position with popoverProps.placement
* Update missed items replacing position to placement
* Fix lint error
* Fix placement position
* Update changelogs
* Introduce Additional Fields API for Checkout Block https://github.com/woocommerce/woocommerce-blocks/pull/12073
* add changelog
* Auto load the Blocks/Domain/Services/functions.php file
* add changelog
* revert test to what it was
* Update text domain for translations
* Ensure address data is added on the cart block too
* fix lint problem
---------
Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
* Add a test that fails if trashed orders are never deleted under HPOS
* Delete trashed orders after `EMPTY_TRASH_DAYS` as defined by WordPress
* add the changelog file
* appease the linter
* return early if HPOS is not authorative
* attempt to precede WordPress itself (which uses priority 10) to increase the probability of orders and their posts being handled solely by us
* appease the linter
* Product Image Gallery: Add transform to Product Gallery block
* Single Product Template: Transform to blocks with new Product Gallery block
* Ensure we first check for block existance
* Add changelog
* Add/delete changelog file
* fix: CYS - update copy
* not format style file
* Add changefile(s) from automation for the following project(s): woocommerce
* add changelog
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Change the imageSizing to single
Images need a higher resolution in patterns used for the CYS project in the assembler
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Migrate Puppeteer test action from Blocks repo
* Update file path
* Use pnpm
* Use npm
* Updates based on feedback
* Comment out paths for testing
* Fix paths with working directory
* Use pnpm
* Fix missing pnpms
* npm instead
* Do use pnpm
* Update command
* Blocks wp-env config
* Update paths, config files
* Run test commands from blocks
* Config update
* Uncomment paths so that e2e checks only run on Blocks
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
* Fixed Blocks' `wp-env` Configuration
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Update action for API tests
* Changelog
* Update e2e tests
* Rename WooCommerce Payments to WooPayments
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
Similarly to `build:project`, a new `watch:build:project`
script will watch individual projects for changes. The
`watch:build` script has been updated so that it does
a deep watch in the same vein as `build`. We have also
hooked up tool-level watching for faster performance.
When using a preset we need to keep in mind that the transformation
paths are relative to the preset, not the consuming package. We get
around this by using `<rootDir>` in the transform paths. However,
doing this means fixing the root directory for all of the jest tests.
This keeps the tests working in the same way but lets us fix the
preset too.
* Clean up created pages and posts
* Move tax tests so that they run last
* Improve locators
* Changelog
* Improve locators
* Improve locator on heading
* Change assertions to look for alert text
* Change assertion to look for text
* Update locators
* Update locator
* Update alternate elements
* Specify first order amount
* Update locator
* Changelog
* Increase reliability of checkout test
* Update a few locators
* Remove .slice()
* Add some console output to checkout test
* Make command palette tests Mac-compatible
* Added update for why download test flaky
* Improvements to checkout tax tests
* Add changelog
* Assert on range of prices
* Improve the regex for matching the price
* Changelog
* Clean up locator
* Unskip analytics tests
* Remove logging statements
* Update variations selector
* Remove comment
* Fix disable block tests
* Remove skipped legacy coupon page test
* Account for multiple products in test
* Cleaned up some console.logs
* Added specificity to locator
* Better price parsing
* Fix cart block shipping test
* Fix syntax error
* Update Playwright, fix logic error
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
Having an explicit `"files"` definition will allow us to fingerprint
dependencies in `wireit` more granularly. This avoids problems
that can be caused by different source files and directories that
trigger a rebuild in a dependee before a dependent finishes.
Fixes some issues where pagination and filters were not persisting in the DB log list table view after running a bulk action. Also adds a way to customize the number of log entries shown per page.
Fixes#39359
Wireit doesn't allow us to have build outputs in a directory outside
of the package. We can get around this by having a build step in
WooCommerce that copies the files from the output directories.
We're adding this to _every_ package since they have their own
configuration and scripts to run. This also keeps them
isolated so that they can operate independently.
NPM requires names to be single-word or have a scope. The
current name is not valid. The package has been renamed
`@woocommerce/shortcode-assets` to better match its purpose.
NPM package names _must_ either be single-word or have
a scope. The current structure is unsupported and has been
changed. The new package name is `@woocommerce/admin-library`.
* convert first local pickup test
* Convert the second local pickup test
This test detected a bug. We will skip it for now and create a ticket to fix it!
* Remove old local pickup E2E tests
* Convert Payment Methods E2E tests
* Remove old payment methods tests
* Convert shipping/billing E2E tests
* Remove old shipping/billing E2E tests
* Add some line breaks for a better readability
* Update tests/e2e/tests/checkout/checkout-block.shopper.block_theme.side_effects.spec.ts
Co-authored-by: Niels Lange <info@nielslange.de>
* Fix ESLint errors
* Move E2E tests to the Checkout shopper file
* Fix ESLint error
* Convert Checkout Error Forms E2E tests
* Use guest user instead of logged in customer for Checkout Errors E2E tests
---------
Co-authored-by: Niels Lange <info@nielslange.de>
Once a feature plugin has been merged it is no longer necessary for it
to be activated. In some cases, having it activated can actually
lead to problems. This will automatically disable any packages
that we have marked as "merged".
* Convert checkout place order E2E tests to Playwright
* Add "gotoMyAccount" method
* Create login/logout utility functions
* Use the existing "customer" test data
* Complete the place order test cases
* Fix "My Account" page title
* Fix rebase
* Reset My account page title
* Check for heading instead of the page title
* Check for heading in login/logout functions
* Fix all failing tests
* Add guest/customer/admin roles
* Update the auth setup
* Register the auth setup within Playwright
* Update testing cases
* Add generated auth files to .gitignore
* Tidy up comments
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Remove unnecessary comment
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Update comments
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Remove unnecessary comment
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Update comment for Guest case
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Remove confusing comment
* Remove another unnecessary comment
* Remove unnecessary Playwright project dependency
* Tidy up the file structure and constants
* Fix mixed up test descriptions
* Remove commented code
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Remove unnecessary function from frontend-utils
* Refactor testing cases
* Rename testing file
* Delete unused testing file
* Ensure we're logged out before trying to log in as a user
* Log out before each authentication setup step
* Ensure tests requiring admin are logged in
* Log in as admin during block theme setup
* Fix Playwright strict mode violation
* Run Multiple sign-in roles to the global-setup phase
In this step of the Playwright's setup, we can add the multiple sign-in
roles and keeping the admin logged by default.
This fixes the issue of failing tests `logged out` error.
* Remove unnecessary login as admin
* Remove "auth.setup" dependency since the logic lives in the global setup instead
* Remove unnecessary login as admin from test files
The admin profile is set by default
---------
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
* Add missing selectors to docs
- Add missing selectors for the following:
- data-store/checkout
- data-store/collections
- data-store/payment
- data-store/schema
* Fix markdown
* Fix getIncompatiblePaymentMethods selector description.
* Fix schema selectors information
* Fix additional spacing
* Add more information about the objects.
* Update checkout.md to use more descriptive
variable name for prefersCollection
* Products in this group field should not be visible in any other product types, only visible in the grouped product type.
* Stock status under Inventory tab should not be visible when editing/creating a grouped product.
* Variations tab is not visible when editing/creating a grouped product.
* Add changelog file
* Fix php linter
* Update Features Flags and Experimental Interfaces doc with Collection Filters and its inner blocks
* Replace feature flag references with links to specific commit, not trunk
* Create section description block
* Add changelog files
* Change section description block to receive its content from the attributes instead of innerBlocks
* Change border color to Gutenberg 100 for Cart and Checkout blocks
* Change form input color to Gutenberg 900 for Cart and Checkout blocks
* Fix additional border colors of Checkout block
* Update borders and form field colors in Cart Block
* Change border color to $universal-border-light
* Change border color for cart line items to $universal-border-light
* Change form input fields border color to $universal-border-dark
- Add $universal-border-dark color variable for woocommerce/woocommerce-blocks#1e1e1e on white.
* Fix colors of text area border and form steps
* Change form input fields border color to $universal-border-dark
- Add $universal-border-dark color variable for woocommerce/woocommerce-blocks#1e1e1e on white.
* Fix form steps
* Update universal dark border rgba value
- Update universal dark border rgba value from rgba(0, 0, 0, 0.882) to rgba(17, 17, 17, .80) to keep it consistent with universal-border colors
* Update $universal-border-light color
* Update the opacity of the borders
* Update the border color to rgba (17, 17, 17, 0.12)
* Roll back $universal-border-light value to the original value: 0.115
* Remove Opacity and pass it as argument in with-translucent-border
- We have with-translucent-border option that accepts border and opacity for pseudo elements.
* Remove additional spaces
* Replace with-translucent-border with normal border
- Since we're are not mixing the opacity to the border color so we don't need to use mixin with-translucent-border.
* Fix applied css and add low contrast Color usage details
- Fix minor CSS as per the standards.
- Add comments for universal border colors that they're low contrast colors and should be used for decorative elements only
* Fix border gap and double border for multiple shipping packages
* Fix payment method borders and Cart line items borders
- Change border bottom to border-top for cart line items.
- Fix payment method radio control borders.
* Fix local pickup border
- Local pickup was using with-translucent-borders so it has some opacity, changed it to border-bottom.
* Add border-bottom to cart items
* Remove additional border from Cart items
* Fix radio and checkbox borders as per the design
* Fix shipping method borders and background color as per the design.
* Force align left on the description for the local pickup options.
* Update border color in quantity selector component
* Fix Shipping options radio selection alignment
- Add left padding to wc-block-components-shipping-rates-control__package element.
* Update colors and variables
* Change checkbox and radio button colors
- Change checkbox and radio button colors from rgba(25, 23, 17, 0.3) to rgba(25, 23, 17, 0.48).
* Remove bottom property from express payment style
* Fix casting on Utils::wp_version_compare
* Fix linting issue
* Apply version number fix on current wp version
* Fix linter errors
* Fix linter errors
* fix: useEditorBlocks hook always returns an array
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* CYS: Reset products when the AI is offline
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* CYS: Add DELETE private/ai/products endpoint
* Ensure the hash for the product is also updated on content reset.
---------
Co-authored-by: Patricia Hillebrandt <patriciahillebrandt@gmail.com>
* fix: CSY - update font copy when ai is offline
* Add changefile(s) from automation for the following project(s): woocommerce
* update font
---------
Co-authored-by: github-actions <github-actions@github.com>
* Remove ADD_LABEL step for 'status: ready to merge'
This updates the workflow to remove the step for adding the 'status: ready to
merge' label.
Additionally, this adjusts the naming within the job to reflect the
change to the workflow.
* Remove entire workflow for Approved Pull Requests
Once Woo Blocks is merged into the monorepo, this workflow will no
longer be needed / relevant at all.
* CSS3 transitions for all fade animations
* Changelog
* Whitespace
* Formatting
* Lambda function
* Comment
* Clean up transitionEnd event listeners if (!touch)
* Update this.offsetWidth comment
* Use jQuery methods in order to greatly reduce diff
* Add missing class
* Add changefile(s) from automation for the following project(s): woocommerce
* Template bump
* Bump version
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add missing actions to the documentation
- Add the missing actions to the following:
- data-store/cart
- data-store/checkout
- data-store/collections
- data-store/validation
* Move actions above selectors in Cart doc
* Add more info to cart actions
* Fix syntax of Cart actions examples
* Fix syntax and examples
- Use store name constant instead of strings
- Fix description and examples of collections document
* Add more info about the keys of objects and arrays
* Update billing address info in cart data
* Update parameter names and descriptions in
checkout.md and collections.md
* Update docs/third-party-developers/extensibility/data-store/checkout.md
Co-authored-by: Niels Lange <info@nielslange.de>
---------
Co-authored-by: Niels Lange <info@nielslange.de>
* Center align view all link
* Add thumbnail count specific styling
* Product Gallery Thumbnails: Improve the responsiveness of the View All overlay text
---------
Co-authored-by: Daniel Dudzic <daniel.dudzic@automattic.com>
* Add tests for the `useCampaigns` hook in the woocommerce-admin marketing.
* Add `channels` to the deps of `useSelect` in the `useCampaigns` hook to avoid outdated hook states.
* Make the `useCampaigns` hook support being used with multiple instances.
- Include the `perPage` in the page key of campaigns in the multichannel's data store.
- Move the processing of querying the campaigns paging to the selector of the multichannel's data store.
- Move `total` in each campaign's paging of the multichannel's data store.
- Remove unused properties and their types: `state.campaigns.perPage` and `state.campaigns.total`
* Add changelog
* Multichannel data store - Move the `total` from `campaigns.pages[*]` to `campaigns.meta` to have only one total value.
Related to:
- https://github.com/woocommerce/woocommerce/pull/41211#discussion_r1409634640
- https://github.com/woocommerce/woocommerce/pull/41211#discussion_r1409590559
* Multichannel data store - Return the pagination meta of campaigns along with the `getCampaigns` selector.
Address: https://github.com/woocommerce/woocommerce/pull/41211#discussion_r1412266127
Improves the doc block of `wc_get_logger()` to reflect that the return
value will be a class that implements `WC_Logger_Interface`, but may
not actually be an instance of `WC_Logger`.
Fixes#41256
* Change the default for Mini Cart block
The Block Hooks API currently doesn’t allow for setting the default state of the block injected into content so this ensures the mini-cart block has a better default state for injection. The current default (displaying total value in cart) takes up more width increasing the risk of poor layout.
* Utilize Block Hooks to automatically inject mini-cart block.
* include experimental prefix on filters
* Fix filter name.
* remove experimental prefix.
On thinking about this, I don’t think these need to be experimental. They are intentionally provided as escape hatches for hosts/themes that want to opt-in/out so we’ll have to support them when this is shipped (at least until its no longer needed!)
* fix variable name!
* fix unit tests because of new default
* remove another incorrect text expectation
Defaults for the block affect this expectation.
* fix E2E tests
* Mini Cart Block: improve E2E test
* fix: improve check for the Product Collection block
---------
Co-authored-by: Luigi Teschio <gigitux@gmail.com>
* Switch assemble theme to TT4
* Add changefile(s) from automation for the following project(s): woocommerce
* Rename changelog file
* Add changefile(s) from automation for the following project(s): woocommerce
* Remove duplicated changelog
* Add changefile(s) from automation for the following project(s): woocommerce
* Remove duplicated changelog
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix restriction preventing the update of products with AI-generated content after the 3rd attempt.
* use set_slug rather than wp_update_post for updating the product permalink.
---------
Co-authored-by: Alba Rincón <alba.rincon@automattic.com>
Ensures that if the "Search within these files" form is submitted with
an empty input, it does not trigger a fatal error due to the search
method returning an empty array at a time when it should be returning
the integer `0`.
This PR removes a line-height rule causing vertical alignment issues in the variations selector and introduces a bottom margin on the single variation container.
Closes#41367
* Show variations in upsells when parent is not published
I was struggling to get the upsell section to show for our eCommerce site. After some digging I found that line 1525 stopped variations from showing in the upsell section if the parent product was set to privately published. This makes testing products and upsells hard, and it's inconsistent behaviour when simple products that are privately published do show up. The proposed change will make variations show up as long as the current user can edit the parent product. This is consistent with the behaviour for simple products.
* Add changelog
---------
Co-authored-by: Jorge Torres <jorge.torres@automattic.com>
* Flush after updating all products, not after updating each of the products
Flushing is an expensive operation so we should run it carefully
* Remove the index param and add the last_product param to the Product endpoint.
---------
Co-authored-by: Patricia Hillebrandt <patriciahillebrandt@gmail.com>
* Create closeWelcomeModal, goToPageEditor and goToPostEditor utils in PlayWright e2e tests
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Create add to custom fields documentation
* Update the checkout custom field docs
* Add back end steps and examples
* Make it clear that we are building a field block
* Update docs/third-party-developers/extensibility/rest-api/extend-rest-api-add-custom-fields.md
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Update docs/third-party-developers/extensibility/rest-api/extend-rest-api-add-custom-fields.md
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Update docs/third-party-developers/extensibility/rest-api/extend-rest-api-add-custom-fields.md
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Update docs/third-party-developers/extensibility/rest-api/extend-rest-api-add-custom-fields.md
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Mention that the block will not render if parent isn't required
* Add more details about `seExtensionData`
* Add additional code examples for the backend
* Avoid extending store API inside an IntegrationInterface
* Add code example that invokes the extend store endpoint class
---------
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Avoid running a second query to account for incorrect totals if pagination is set too high if pagination isn't used.
Fixes#40075
* Adding changelog entry
* Add extra protections against wrong filter values in the Command Palette logic
* Add changefile(s) from automation for the following project(s): woocommerce
* Add protection to make sure is an array
---------
Co-authored-by: github-actions <github-actions@github.com>
* Show warning modal when user tries to leave the assember hub
* Remove pushState and popstate changes from the iframe
* Listen to popstate and render a warning modal when the user tries to leave the page
* Add changefile(s) from automation for the following project(s): woocommerce
* Update GoBackWarningModal to accept a callback for reusability
* Reuse GoBackWarningModal
---------
Co-authored-by: github-actions <github-actions@github.com>
* sets sale price to 23:59:59 when sale schedule variation bulk action runs
* made the date being sent in the CRUD object coherent with the rest of the wc codebase. added changelog file
* fix issue raised by linter
* Limit number of visible incompatible extensions in sidebar notice
* Adjust link text
* Ensure text-decoration works in Safari
* Minor CSS tweaks
* Refactor constant names
* Adjust chevron position for opened state
* Revert "Adjust chevron position for opened state"
This reverts commit ff5142427738626837be887dd8d7e5d94c2432d4.
* Normalize render method names
* Refactor get_query_params to allow key filtering
* Scaffold the search results view
* Add missing unslash
* First pass at functional search
* Fix memory leak and recursive highlighting
* Fix various search string edge cases
* Move match highlighting to format_match method
* Tweak match line formatting
* Rename ListTable to FileListTable
* Switch search results view to a list table
* Add notice about max files for search
* Remove unused function
* Only use monospace font on the matched line part of search results
* Add notice about search result limit
* Fix font in table header
* phpcs cleanup
* Remove unnecessary search form action
* Add caching to search results
* Add unit test for search method
* Caching improvements
* phpcs cleanup
* Add unit test for close_stream
* Remove unneeded linting exception
* Add changelog file
* Remove unnecessary usage of get_class()
* Make sure file stream gets closed when we break the loop early
* Make the returned results an even 200 when hitting the limit
* When the user selects a grouped product type, we show an additional Products in this group section in the General tab.
* When the user selects a grouped product type, we hide the Pricing and Shipping tabs.
* When empty, the grouped products card has an empty state with an illustration
* When the user clicks Add products, we show a modal
* When the user clicks the search field, we immediately display the list of all existing products. It is sorted alphabetically. Clicking an item closes the search and adds the product to the list.
* Add remove button to the product list
* When the user clicks Add, we close the modal and display the list of added products in the product form
* Clicking the product name will open it in the editing view in a new tab
* Clicking the arrow button will open the product's page in a new tab
* Prevent adding already added products
* If the name or SKU extends beyond this width, we truncate the text
* Add changelog files
* Fix linter errors
* add simple initial integration with Command Palette
* Add WooCommerce commands
* Add e2e tests
* Fixes
* Add changefile(s) from automation for the following project(s): woocommerce
* Avoid using page.waitForLoadState() in Command Palette tests
* Make Settings and Analytics commands dynamic
* Decode entities to make sure characters are displayed correctly in the command palette
* Move decodeEntities() into registerCommandWithTracking()
---------
Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
Co-authored-by: github-actions <github-actions@github.com>
* Tweak the product prompt
To avoid creating products that are things that cannot be sold in stores (forests, people, etc.)
* Return error when images are not provided
* Check permalink and flush cache if not found
* Update the product slug with the new title
* Use wp_update_post to update the product
* Remove unused method
* Reorganise Columns controls and fix undefined problem in Product Collection settings
* Remove type condition in hasValue of Columns control
* Adjust the E2E tests locator to new changes
* Try env:restart instead of env:start
* Change env:restart to env:start again
* Try env:restart instead of env:start
* Change env:restart to env:start again
* Adjust heading level of cart and checkout template
* Replace button selector with label selector
* Try env:restart instead of env:start
* Change env:restart to env:start again
* Ensure to close welcome guide modal
* Adjust heading level of default template content
* Try env:restart instead of env:start
* Change env:restart to env:start again
* Try env:restart instead of env:start
* Change env:restart to env:start again
* Address existing TS issues
* View template in edit mode
* Keep certain tests skipped
* Fix broken tests after addressing TS issues
* Update extensibility doc
This PR adds a missing link to the Extensibility page for a new doc that was added about the migrated hood.
* Update docs/third-party-developers/extensibility/README.md
Co-authored-by: Tarun Vijwani <tarun.vijwani@automattic.com>
---------
Co-authored-by: Tarun Vijwani <tarun.vijwani@automattic.com>
* Convert to tsx and replace proptypes by ts definitions
* Fix imports
* Fix noReviewsPlaceholder type
* Fix ts errors
* Use createHigherOrderComponent in withReviews
* Revert hoc change
---------
Co-authored-by: Niels Lange <info@nielslange.de>
* Fix link to e2e tests documentation from WooCommerce Admin directory
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add HTML entity decoding for product names in Hand-Picked Products control
In the Hand-Picked Products control within the product-collection inspector controls, a function for decoding HTML entities in product names has been added.
- A new utility function `decodeHTMLEntities` has been implemented. This function decodes HTML entities in a string, ensuring that special characters are correctly displayed in their human-readable form.
- The `transformTokenIntoProductName` function has been updated to utilize `decodeHTMLEntities`. Now, when a product name is fetched (either directly as a token or via a product ID), the HTML entities within the name are decoded.
- This enhancement ensures that product names containing characters like ampersands or other HTML entities are accurately displayed in the UI.
This change improves the readability and accuracy of product names within the Hand-Picked Products control, enhancing the user experience for store managers using WooCommerce Blocks.
* Update label and hide description
This commit updates the `HandPickedProductsControl` component. Specifically, the user-facing label for product selection has been changed from 'Pick some products' to 'Hand-picked Products'. Additionally, the `__experimentalShowHowTo` property has been added with a `false` value, to hide description. Corresponding changes have been made in the E2E test file `product-collection.block_theme.spec.ts`, where the filter name is updated to match the new label.
* Refactor: Replace custom HTML entity decoder with `@wordpress/html-entities`
Rationale:
- The shift to `@wordpress/html-entities` aligns with standard WordPress practices, ensuring consistency across the platform.
- Enhances maintainability by relying on a well-supported library rather than custom code.
- Simplifies the codebase by removing a redundant utility function.
This change enhances the robustness of our code and aligns with best practices in WordPress development.
* Product Gallery Thumbnails: Refactor sizing in the editor and the front end
* Product Gallery Thumbnails: Change default vertical alignment to top and better control the width of the thumbnails
* Product Gallery Thumbnails: Fix thumbnails cropping based on the 'Crop images to fit' setting
* Product Gallery Thumbnails: Revert thumbnails styling from woocommerce/woocommerce-blocks#11665
* Product Gallery Thumbnails: Update the default value of the cropImages setting to false
* Product Gallery Thumbnails: Refactor sizing in the editor and the front end
* Product Gallery Thumbnails: Change default vertical alignment to top and better control the width of the thumbnails
* Product Gallery Thumbnails: Restrict the bottom position thumbnails width based on the total number of thumbnails set
* Product Gallery: Remove hardcoded width for Thumbnails and the Large Image and update the width inside of the Dialog
* Product Gallery Thumbnails: Introduce thumbnails scaling based on the number of thumbnails
* Product Gallery Thumbnails: Fix editor thumbnails scaling
* Product Gallery Thumbnails: Remove unused column gap variable
* Product Gallery Thumbnails: Fix styling for vertical images
* Product Gallery: Remove the unused editor.scss file
* Product Gallery: Fix the placement of the Thumbnails block in the block template
* Product Gallery Dialog: Reset changes to the dialog
* update @wordpress/e2e-test-utils-playwright package
* don't update node version
* remove waitForSiteEditorFinishLoading function
* use visitSiteEditor util
* Product Gallery Thumbnails: Add code comments
* Product Gallery Thumbnails E2E: Fix the test checking the default position of the thumbnails
* Product Gallery E2E: Fix the test checking if the cropping setting works correctly
* Product Gallery Thumbnails: Hide the Thumbnails block if there aren't at least 2 thumbnails to display
---------
Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com>
Co-authored-by: Luigi Teschio <gigitux@gmail.com>
* Add new ai/store-title endpoint to update the store title with an AI generated one
* Add StoreTitle schema
* Fix error to response param
* Fix var name and tweak prompt
* Update comment
* Replace it by Ai generated if it's the default title
* Return error if AI failed
* Return false if the title is not updated with an AI one
* update readme.txt for Woo Copy update on WP.org product page
* Transform to sub-header texts
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: nigeljamesstevenson <nigeljamesstevenson@gmail.com>
Co-authored-by: github-actions <github-actions@github.com>
* Enable shrink columns option in Product Collection by default
* Improve tests about responsiveness
* Make regex allowing for floating pixels
* Related products should not use sticky and author attribute or have hardcoded queryId
* Bring back properties for Related Products as it's based on Propducts block, not Product Collection
* Enable shrink columns to fit by default in patterns
* Run daily smoke tests on wp-env
* Add changelog
* Add step to install playwright to e2e tests
* Run k6 containers as e2e
* Get build first for k6
* Tweak for API report
* Change k6 tests back to non-local
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
* Remove "Checkout is not available whilst your cart is empty." notice
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Discounts are not in the format `array( 'string' => 'string' )`, they are in the format `array( 'string' => array( int, int ) );`.
* Remove `ArrayUtil` because `ensure_key_is_array` creates the array and returns `true`.
* Add Changelog manually
* Fix changelog placement.
---------
Co-authored-by: John Rom <john@nimblelight.com>
* Add tests for analytics (orders)
* Fix for download test
* E2E action scheduler runner (#40687)
* Add utility to trigger processing of pending scheduled actions (E2E).
* Update analytics test to use E2E scheduled action helper.
* Expand notes.
* No changelog needed.
* Further test setup work needed for Process Waiting Actions utility.
* Update download test
* Fix for FTUX tour, locator matching
* Update selectors
* Address review feedback
* Add comment to explain helper plugin
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
Co-authored-by: Barry Hughes <3594411+barryhughes@users.noreply.github.com>
* Marketplace: add Tracks events for the subscription page
Added events for:
- marketplace_product_installed
- marketplace_product_install_failed
- marketplace_renew_button_clicked
- marketplace_subscribe_button_clicked
- marketplace_product_updated
- marketplace_product_update_failed
* Marketplace: update Tracks properties
We used to reference product slug only. But may change and if the store
is rate limited, that information is missing. This commit switches
using "product_zip_slug" and "product_id".
* Marketplace: add product version info to update and install Tracks events
* Marketplace readme
* Add structure and development
* Linter fix
* linter
* Tweaks to the In-App Marketplace README.
---------
Co-authored-by: And Finally <andfinally@users.noreply.github.com>
* Clean up created pages and posts
* Move tax tests so that they run last
* Improve locators
* Changelog
* Improve locators
* Improve locator on heading
* Change assertions to look for alert text
* Change assertion to look for text
* Update locators
* Update locator
* Update alternate elements
* Specify first order amount
* Update locator
* Changelog
* Increase reliability of checkout test
* Update a few locators
* Remove .slice()
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
* validate coupon usage against user and email
* add checks for logged out user
* change to direct array call
* fix the query
* fix the query
* fix arrays
* fixe how id is fetched
* Make function private
* use implode instead of join
* coupon shouldnt be a pointer
* move ignore statement
* add comment about tentative usage
* Update src/StoreApi/Utilities/OrderController.php
Co-authored-by: Mike Jolley <mike.jolley@me.com>
* better validation for user data
* remove unused variable
* bail early if we dont have limits
* add empty line after function
---------
Co-authored-by: Mike Jolley <mike.jolley@me.com>
* Sync Interactivity API code with Gutenberg
* New store() API
* Store raw actions
* Update wc-interactivity-store implementation
* Replace `wc_store` with `wc_initial_state`
* Parse and populate initial state
* Allow store parts in `store()`
* Accept namespaces in directive paths
* Add $$namespace to directives' object values
* Make namespace parsing more robust
* Use DeepPartial type for store parts
* Do not pass `rawStore` to `afterLoad` callbacks
* Simplify `store()` a bit
* Implement `privateStore()`
* Sync context directive with Gutenberg
* Refactor scope and extract getters per scope
* Add namespace to getters and actions
* Remove current privateStore implementation
* Remove `afterLoad` option from `store`
* Use same proxy handlers for ns, getters and actions
* Set scope inside `evaluate`
* Refactor proxy handlers
* Improve types a bit
* Catch errors in async actions
* Implement stacks for scopes and namespaces
* Implement `getElement`
* Change directives object structure
* Remove unnecessary import
* Implement private stores
* Return value from sync actions
* Minor optimizations and improved comments
* Don't use async inside `data-wp-watch`
* Use a single Provider in context directive
* Remove DeepPartial type
* Do not check if element exists
* Add the `current` prop of state inside the scope
* Move getters outside scope
* Fix wc-key assignment
* Fix missing `navigate` in directives
* Fix namespace not being picked in the same element
* Deep merge raw stores instead of proxied ones
* Fix namespace assignment
* Allow forward slashes in namespaces
* Migration of Product Collection and Product Button blocks to the new `store()` API (https://github.com/woocommerce/woocommerce-blocks/pull/11558)
* Refactor Product Button with new store() API
* Use `wc_initial_state` in Product Button
* Fix namespace
* Remove unnecessary state
* Test namespaces in directive paths
* Add test context with namespace
* Simplify woo-test context
* Move addToCart and animations to a file
* Do not pass `rawStore` to `afterLoad` callbacks
* Move callbacks and actions back to the main file
Because the animation was broken.
* Remove selectors in favor of state
* Use default ns in `getContext` for state and actions
* Remove `afterLoad` callback
* Remove unnecessary ns
* Fix getContext in add-to-cart
* Replace namespace and delete unnecessary store
* Pass context types only once
* Use an alternative for requestIdleCallback
* Add previous react code for notices
* Add namespace to Product Collection block
* Replace getTextButton with getButtonText
* Add block name to the ProductCollection namespace
* fix style HTML code
* Remove circular deps error on the Interactivity API
* Product Gallery block: Migrate to new Interactivity API store (https://github.com/woocommerce/woocommerce-blocks/pull/11721)
* Migrate Product Gallery block to new Interactivity API store
* Fix some references
* Add missing data-wc-interactive
* Fix an additional namespace
* Remove unnecessary click handler
* Dialog working
* Refactor action names
* Reindex PHP array
There was some missing indexes, which turned the array into an object in JS.
* Remove unused event handlers
* Move next/previous logic to external function
* Move StorePart util to the types folder
* Rename namespace to `woocommerce/product-gallery`
* Undo product collection namespace renaming
* Remove unnecessary namespace
* Don't hide the large image on page load
* Minor refactorings
* Fix eslint error
* Fix php cs errors with spacing and double arrows alignment
* Disable no-use-before-define rule for eslint
* Disable @typescript-eslint/ban-types rule for eslint
* Fix parsed context error in e2e tests
* Fix context parser for Thumbnail image
* Move store to the top of the frontend file
* Add interactivity api utils to the @woocommerce/utils alias
* Replace deprecated event attribute
---------
Co-authored-by: Luis Herranz <luisherranz@gmail.com>
Co-authored-by: David Arenas <david.arenas@automattic.com>
Co-authored-by: roykho <roykho77@gmail.com>
---------
Co-authored-by: David Arenas <david.arenas@automattic.com>
Co-authored-by: Luigi Teschio <gigitux@gmail.com>
Co-authored-by: Alexandre Lara <allexandrelara@gmail.com>
Co-authored-by: roykho <roykho77@gmail.com>
* Fix error when closing product gallery dialog with keyboard escape key
* use wc_initial_state instead of wc_store
---------
Co-authored-by: Luis Herranz <luisherranz@gmail.com>
Co-authored-by: Luigi Teschio <gigitux@gmail.com>
Co-authored-by: Alexandre Lara <allexandrelara@gmail.com>
Co-authored-by: roykho <roykho77@gmail.com>
* Run E2E test suite on Twenty Twenty-Four
* Update TT4 download URL to the stable one
---------
Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
* Don't show a My Subscriptions group if it's empty
* Hide expiry if installed but has no subscription
* Show subscription status labels in a column
* Add changefile(s) from automation for the following project(s): woocommerce
* Show only one badge
* Show installed header if no installed items
* Remove test code
* Show entire installed section
---------
Co-authored-by: github-actions <github-actions@github.com>
This commit introduces the `get_block_type_style` method in the `ProductCollectionNoResults` class. This new method is designed to manage frontend style handling specifically for this block type. Currently, it returns null, indicating no specific styles are assigned at this stage.
* Update Interactivity API JS files
* Disable TS checks in the Interactivity API for now
* Add new SSR files
* Replace wp_ prefixes with wc_ ones
* Replace wp- prefix with wc-
* Replace guternberg_ prefix with woocommerce_
* Remove file comments from Gutenberg
* Rename files with `wp` prefix
* Fix code to load Interactivity API php files
* Remove TODO comments
* Replace @wordpress with @woocommerce
* Update Webpack configuration
* Fix directive prefix
* Remove interactivity folder from tsconfig exclude
* Add client-side navigation meta tag code
* Remove unneeded blocks.php file
* Fix store tag id
* Register Interactivity API runtime script
* Fix Interactivity API runtime registering
* Add Simple Price Filter block
* Remove all files related to directive processing in PHP
* Use values directly for SimplePriceFilter SSR
* Reset pages to 0 when changing filter
Note: we also need to do this with `/page/x`
* wip
* phpcs
* register price filter as inner block
* try: render block using save
* add types
* use min range var instead of 0
* inject dynamic data
* query price data in editor
* better injecting interactivity data
* remove rounding
* Product Collection Data endpoint doesn't care about current query so we remove the context for now
* extract data injecting as a method, possbily a trait in the future
* add sidebar setting
* duplicating the markup in php render callback for safety
* remove directive from edit component
* show prices without decimal
* use final class
* use sample collection data response
* prepare for multiple styles support
* use collection data from context
* cleanup props and props passing
* pass only necessary states
* retire heredoc in favor of late escaping
* reorganize style
* inherit style from current price filter react component, pre extract the component for multiple display style support
* keep minPrice smaller than max
* remove unnecessary active handler logic
* update folder structure
* avoid whitespace change
* clean up
* title
* move inspector to component folder, ready to be extracted to inner block
* block icon
* block name
* name
* use inner block for view
* inner block view switcher
* try: process data in Collection Filtes block only
* wip: query collection data from collection filters block only
* provide all context from collection filters block
* simplify context passing
* feat: use default attribute to define filter type of view block
* rename
* remove price block
* rename price slider to price, default price filter should be a slider
* type cleanup
* fix ancestor block name
* only passing the collection data down
* wip
* recusive
* editor preview
* refactor: data fetching, context passing, and code organization
* initial attribute filter block
* feat: attribute selector
* inspector control
* wip
* break the edit into smaller components
* wip: editor component
* extract checkbox list
* wip editor preview
* show count checkbox list
* fix param aggregation for attribute filter blocks
* post merge fix
* fix param aggregation for attribute filters
* fix: set correct selected attribute
* WIP checkbox list
* WIP checkbox list
* avoid action name conflicts
* Checkbox list front end
* phpcs
* update context on input, navigate on change
* fix: attribute selection
* dropdown
* remove isDeepEqual
* add: warning when attribute has no products or no attribute is selected
* update type
* update type
---------
Co-authored-by: David Arenas <david.arenas@automattic.com>
Co-authored-by: Luis Herranz <luisherranz@gmail.com>
* Merge changelogs into one
* Update plugins/woocommerce/changelog/feature-marketplace-subscriptions
Co-authored-by: And Finally <andfinally@users.noreply.github.com>
* Not connected screen fixes
* Table improvements
* Success notice icon
* Use the same layout of columns for both tables
* Popover
* Add changefile(s) from automation for the following project(s): woocommerce
* CSS lint fixes
* Styling tweaks. Changed font-weight of `.woocommerce-marketplace__product-list-title` to 400, to correspond with the correct weight of the titles like "Installed on this store" in the My Subscriptions section.
* Undo refresh move
* Fix subgrid max widths
* Fic status height
* Update collaborate link
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: And Finally <andfinally@users.noreply.github.com>
* Add discover products to page view event
* Initial implementation of beacon REST API (WIP)
* Discover page - products viewed
* Product card clicked event (WIP)
This takes data from various sources and sends it based on the different places that product cards could appear.
Data included:
- position
- vendor
- product type
- label - indicates if "promoted" if applicable
- group - the discover page group if applicable
- search_term - the search term if applicable
- category - the product category clicked from
The data is essentially complete. The beacon API needs finalising still though. Also, the vendor name click event will need to be updated with the same data.
* See more button & Category dropdown "more" events
* Marketplace: remove custom Beacon and use "queueRecordEvent"
* Marketplace: reenable product card links
This was disabled temporarily while we tested tracks on click
* Marketplace: Add position to tracks event
Co-authored-by: Kyle Nel <22053773+kdevnel@users.noreply.github.com>
* Marketplace: move Tracks data to a different prop and type
* Marketplace: refactor Tracks calls in product card
---------
Co-authored-by: raicem <unalancem@gmail.com>
Co-authored-by: Cem Ünalan <raicem@users.noreply.github.com>
* Update copy
* Remove uppercase from labels
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* give settings proper names
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix primary btns colors
* go back to var(--wp-admin-theme-color)
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Tweak Post code UI styles
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Components: TreeSelectControl - Make sure individuallySelectParent value is preserved (#40301)
* make sure individually selected parent value is preserved
* Add changefile(s) from automation for the following project(s): @woocommerce/components
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add changefile(s) from automation for the following project(s): woocommerce
* fix rebase error
* appease linter
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fine-tune the prompts for generating product titles.
* Update the prompt for images.
* Update the prompts for generating content for patterns.
* Break down the pattern content generation into individual methods.
* Add character limit to prompts.
* Add character limit for a handful of titles.
* Add character limit to the title of the product-collection-4-columns pattern.
* Update the prompt to not add abbreviations
* Introduce the refine_returned_images_results method for AI to filter the images returned by Pexels
* Implement retry if the number of images returned by Pexels API is smaller than the number of images required by products and patterns.
* Update the prompt for the images search term.
* Fix AI image assignment for newly created products and improve performance.
* Ensure no additional dummy products are created or updated in simultaneous requests.
* Fix error on generating content for patterns for the first time and saving it to the post.
* Return error if the connection with AI failed.
* Update the prompt character limit for the Featured Category Triple pattern.
* Implement retry if the API connection with AI fails. Update the prompt to remove the length instruction. Add the last_business_description check to prevent duplicated API calls. Set a transient for images in case the request fails.
* Add retry for returning the refined search results. Update the prompt for defining the search term. Update error validation.
* Update the structure for fetching patterns content and reduce the number of requests.
* Break down the pattern ai content generation and assignment into multiple methods and introduce retry in case of failure.
* Update the structure for applying the AI generated content to patterns. Update the fetch and validation of ai responses and update the prompt to ensure longer texts are returned.
* Update the validation of the content returned by AI by verifying the array keys and ensuring the values are not empty. Additionally, the completion should be set.
* If for some reason AI didn't return the complete list of expected generated content, use the same the previous text from the same pattern as a replacement and avoid making an extra request to fetch just fetch a possible missing result.
* Update prompts for patterns.
* Make a single request to fetch all products data, implement retry for products and validation for the response returned by AI.
* Update the retries variable first within the patterns loop.
* Narrow down the AI content generation to only patterns that are part of the Assembler.
* Update the size of images and the prompt for AI generated content assigned to products.
* Don't make request to AI if the user provided a single word for their business description.
* Update the image assignment to products and remove the unused update_dummy_products method.
* Update the prompt for generating content for patterns.
* Update the prompt for products content generation and ensure that an error is returned if all requests fail.
* Update the prompt for patterns.
* Update the prompt for images.
* Update the prompt for images.
* Update prompt for button text.
* Don't schedule action for updating patterns content if the business description wasn't updated.
* add associative option when the local json is parsed
* Ensure the expected list of results matches the number or products to be updated.
* fix lint error
* Address CR.
---------
Co-authored-by: Luigi Teschio <gigitux@gmail.com>
* Add custom 'No Results' block for Product Collection
This commit introduces a new 'No Results' block, replacing the default core 'query-no-results' block within product collection block. The 'No Results' block provides a tailored experience for WooCommerce stores, displaying a custom message when no products are found in a query.
Key changes include:
- A new block type 'woocommerce/no-results' is registered with a complete configuration and content structure.
- Edit and save functions are implemented for the block, allowing for custom content and styles within the block editor and on the front end.
- Webpack entries are updated to include the new block in the build process.
- A PHP class NoResults is added for server-side rendering, which only displays the block when the product query returns no results, enhancing performance.
- The ProductCollectionUtils utility class is extended to support the new block's query needs.
The new block enriches the user experience by providing clearer communication when no products match the collection criteria and allows store owners to customize the message and presentation.
* Update description
* Rename 'no-results' block to 'product-collection-no-results'
Changes include:
- Updating the block name in `edit.tsx` within the `product-collection` directory.
- Modifying the block.json file in the `no-results` inner block to reflect the new name.
- Adjusting the className in `edit.tsx` for the `no-results` inner block.
- Altering the webpack entries in `webpack-entries.js` to recognize the new block name.
- Renaming the block in `NoResults.php` to align with this update.
This renaming aims to make the block's purpose more clear and to maintain a consistent naming scheme within our product collection blocks.
* Rename NoResults to ProductCollectionNoResults for clarity
This commit renames the `NoResults` class to `ProductCollectionNoResults`. The change aims to enhance clarity and specificity about the class's purpose, indicating that it specifically handles no-result scenarios within product collections.
Changes made:
- Renamed `NoResults.php` to `ProductCollectionNoResults.php`.
- Updated the class name from `NoResults` to `ProductCollectionNoResults` in the file.
- Modified the reference in `BlockTypesController.php` to use the new class name.
This renaming ensures better readability and understanding of the class's role in the context of product collections. The primary change is the renaming, with no significant alterations in the class functionality.
* Update No-Results Message Formatting in Product Collection Block
This commit simplifies the layout and message content for the 'No results found' message in the product collection block's no-results edit component. The changes include:
1. Removal of the full stop in the 'No results found' string for consistency.
2. Replacing the 'core/group' block with a 'core/paragraph' block.
3. Streamlining the message content to be more concise and integrated into fewer text blocks.
4. Direct links for 'clearing any filters' and navigating to the 'store's home' are now included in the same paragraph.
---------
Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com>
* Fix strings in modal window
* Update assets/js/editor-components/incompatible-extension-notice/modal.tsx
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
---------
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Add payment-gateway-suggestions cache test
* Add changefile(s) from automation for the following project(s): woocommerce
* Fix broeken test
* Fix broeken test
* Fix broeken test
* Lint fix
* Refactor test
* Lint fix
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add digital product task selection to the A/B test for WC 8.4.
* Add changelog
* Enable the product-virtual-downloadable feature.
* Fix linting error
---------
Co-authored-by: Lourens Schep <lourensschep@gmail.com>
* Add nonce check during process_bulk_action
The webhooks screen already has a nonce field available, so all that's needed here is to verify the nonce when processing a delete action.
Fixes#284
* Add e2e regression test
* Check admin referer on all present/future actions, not just delete
* Add cleanup after e2e test
* Updates to e2e test
* Use better locators (user facing)
* Simplify some assertions
* Better usage of networkidle
* Remove empty catch clauses
* Add changelog
---------
Co-authored-by: Corey McKrill <916023+coreymckrill@users.noreply.github.com>
* Add buy button section
* Enable external product support into the product block editor
* Hide buy button section when product type is not external
* Remove BaseControl from TextControl since it's not required anymore, InputControl takes care of that now
* Add type and suffix support to the product-text-field block
* Add the placeholder to the external url input and remove required constraint to the buy button text
* Set the url icon link type to external
* Fix input border to be red when invalida now that base control is not present twice
* Set the min height to 36px to match others non InputControls components height
* Extends required constrain to also support a custom error message
* Extends the product-text-field validation system
* Add product-text-field documentation
* Add changelog files
* Fix php linter error
* Fix compilation error
* Fix linter errors
* Update smoke testing docs to mention the Product Collection block instead of the Products block
* Mention that Cart and Checkout blocks need to be added to the template instead of the pages
* Update docs/internal-developers/testing/smoke-testing.md
Co-authored-by: Karol Manijak <20098064+kmanijak@users.noreply.github.com>
---------
Co-authored-by: Karol Manijak <20098064+kmanijak@users.noreply.github.com>
* use latest commit of stalebot action, tweak configuration accordingly
* remove stalebot.js
* use default operations per run
---------
Co-authored-by: Ron Rennick <ronald.rennick@automattic.com>
* WIP: experimenting with strategy pattern for block registration
* Add TemplateChangeDetector to BlocksRegistrationManager
* Handle blocks registration
* Fix issue causing blocks to be registered multiple times
* Allow register/unregister blocks when on pages or posts
* Add BlockRegistrationStrategy logic
* Fix import error
* Add doc comments for BlockRegistrationManager class
* Add doc comments to TemplateChangeDetector class
* Fix eslint errors
* Import domReady from @wordpress/dom-ready
* Prevent error when using blockName for registerBlockType function
* Add e2e tests to check for block availability in different contexts
* Add e2e tests to cover block availability on different contexts
* fix: fixed all instances of translator lint rule violations
* Add changefile(s) from automation for the following project(s): @woocommerce/eslint-plugin, @woocommerce/components, woocommerce
* fix i18n lint violations in @woo/components
* fix all i18n lint rule violations in @woo/product-editor
* Add changefile(s) from automation for the following project(s): @woocommerce/product-editor, @woocommerce/eslint-plugin, @woocommerce/components, woocommerce
* empty commit to trigger CI
---------
Co-authored-by: github-actions <github-actions@github.com>
* Hide pager in dialog
* Product Gallery: reset main image when dialog closes
* Product Gallery block: Add product title to dialog
* Align double arrow
* Use H2 to be more semantic
* Use product title block in template part
* Default pager to off
* Remove pager only in dialog
* Remove unused param
* Default pager to off instead of removing
* Adds a state example for the payment data store
* Update docs/third-party-developers/extensibility/data-store/payment.md
Co-authored-by: Niels Lange <info@nielslange.de>
* Update docs/third-party-developers/extensibility/data-store/payment.md
Co-authored-by: Niels Lange <info@nielslange.de>
* Update docs/third-party-developers/extensibility/data-store/payment.md
Co-authored-by: Niels Lange <info@nielslange.de>
* Full stop
---------
Co-authored-by: Niels Lange <info@nielslange.de>
* Check if wc_admin_register_page exists before using it
* Add changefile(s) from automation for the following project(s): woocommerce
* Trigger Build
---------
Co-authored-by: github-actions <github-actions@github.com>
* Redirect connect deny to correct subscriptions page
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix snackbar icon position
* Add changefile(s) from automation for the following project(s): woocommerce
* Remove absolute positioning
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add AI disclaimer
* Add changefile(s) from automation for the following project(s): woocommerce
* Move .ai-disclaime to inside the .woocommerce-customize-store-banner-content p rule
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* Check if $data['billing_email'] is set
Checks if $data['billing_email'] is set in the create_order function. Fixes#41097
* Add changelog entry
Adds the changelog entry for #41097
* Move Button, StoreNotice and StoreNoticesContainer components into the components package
* Delete the button folder and leave alias in index.ts
* Update references from @woocommerce/blocks-checkout to @woocommerce/blocks-components
* Add disable conditions functionality to back-end
* Evaluate _templateBlockDisableConditions in registerWooBlockType
* Add 'disabled' support for number, pricing, and text
* Add disabled support for checkbox
* Add disabled for taxonomy block
* Add changelogs
* Update documentation
* Add unit tests
* Augment attribute with disabled in back-end
* Fix disabled styling
* Remove disabled from toggle since it's being added for all blocks
* Improve CSS for disabled fields
* Only add disabled attribute when it's not added on the block json and refactor
* Allow adding disable conditions in the constructor
* Fix lint issue
* Fix test
* Add disableConditions to dependencies
* Added a new parameter $status_transition to the woocommerce_order_status_$status_transition["to"] hook.
* Added changelog
* fix - phpcs errors
* Added version to the hook
* Update woocommerce.php required WP version for 6.4 release
* Update readme.txt for WP 6.4 release
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Load content and images on registration if the patterns is in the dictionary
* Stop getting the content from each pattern
* Add comment with explanation about the change
* Add new e2e tests to cover shopper cart block first part
* Add changelog
* Add more tests to cover coupons
* Update coupon tests to include discounts
* Split cart block tests and update tests
* Add E2E tests for cart block shipping
* Add tests for shopper cart block calculating tax
* Remove test.skip
* Add a workaround for filling shipping due to issue found
* Improve welcome modal closure
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
* Update mini-cart test to include tax scenario
* Include changelog file
* Move changelog file to the right place
* Update taxing options
* Update calculation for tax price
* Remove only parameter
* Improve closing welcome popup if prompted
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
* Hide install if not installable
* Refactor local data generation
* Add subscription installed flag
* Add connect support to not in use items
* Remove debug code
* Add changefile(s) from automation for the following project(s): woocommerce
* Linter fixes
* Add changefile(s) from automation for the following project(s): woocommerce
* Update plugins/woocommerce/includes/admin/helper/class-wc-helper.php
Co-authored-by: And Finally <andfinally@users.noreply.github.com>
* Update plugins/woocommerce/includes/admin/helper/class-wc-helper.php
Co-authored-by: And Finally <andfinally@users.noreply.github.com>
* Update plugins/woocommerce/includes/admin/helper/class-wc-helper.php
Co-authored-by: And Finally <andfinally@users.noreply.github.com>
* Update plugins/woocommerce/includes/admin/helper/class-wc-helper.php
Co-authored-by: And Finally <andfinally@users.noreply.github.com>
* Remove duplicate changelog
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: And Finally <andfinally@users.noreply.github.com>
* Clear payment suggestion cache when base country gets updated
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Compare a serialised version of the meta value when trying to find existing matching meta
* Add changefile(s) from automation for the following project(s): woocommerce
* Add unit test
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Jorge Torres <jorge.torres@automattic.com>
* Move Template implementation classes to internal namespace
* Fix namespaces that were changed by mistake
* Add missing imports to files since they were moved to another namespace
* Adapt to new lint rules
In order to do this, but still have differentiated bright colors,
this changes it from a background color to a border color. Also tweaks
the border styles to make it look like a label icon.
* Add checks to see if getCartData finished before rendering address
* Prevent block error due to excessive updates of customValidation
* Do not condense address in admin and handle phone field
* Add missing showPhoneField for billing
---------
Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
* We display the number of selected items, e.g., '5 selected'
* We display a number of all existing items next to the button, e.g., "Select all (25)".
* When only some items are selected on the page, we show an additional button that says "Select page (X)" where X stands for the number of rows on the page. Clicking it selects all rows on the page.
* Clicking "Select all" selects all existing items
* Add changelog file
* Add tracking events
* Saving progress on variations table
* Manage tracking events and error handling
* Hide edition features when at least one variation is selected
* Fix linter errors
* Resolve rebase conflicts
* Remove use selection hook since is not needed anymore
* Fix filter items vertical alignment
* Add changelog files
* Fix inconsistent loading and variations state
* Do not show EmptyTableState when the product has variations but the filter get empty list
* Invalidate cache state before generating variations
* Fix select all after filtering variations
* Remove delete variations from the selection list
* Retreive the product after generating variations
* Fix linter
* Invalidate variations cache after generating variations
* Create Related Products pattern reused in the Single Product template
That's needed in order to make the Related Products string translatable
* Add margin to Related Products heading
* Add margin to Related Products transformed from classic template
* Simplify the translation
* Change string capitalization so it's the same as the other one and can be transklated
* Separate count query
* Fix total_results var
* Add count-low-in-stock endpoint
* Use new count-low-in-stock endpoint
* Fix inconsistent in function names
* Type cast to int
* Add changefile(s) from automation for the following project(s): woocommerce
* Fix spelling
* Separate count query function
* Add changefile(s) from automation for the following project(s): woocommerce
* Use get_count_query
* Use count-low-in-stock endpoint
* Remove condition where it only updates product count when there is less than 2 items -- no longer needed as we are using a new endpoint to count the products
* Fix spelling
* Add changefile(s) from automation for the following project(s): woocommerce
* Lint fixes
---------
Co-authored-by: github-actions <github-actions@github.com>
* Bump version in composer.json
* Update lock files
* changelog
* ensure the properties exist before accessing them
* add changelog file
* skip a test that is waiting for a fix from WooCommerce Blocks
* appease the linter
* remove commented out code
* use `empty` instead of `property_exists`
Co-authored-by: Barry Hughes <3594411+barryhughes@users.noreply.github.com>
* Update WooCommerce Blocks package to 11.5.1
* Update WooCommerce Blocks package to 11.5.2
* Undo test removal
* bump to woocommerce blocks 11.5.3
---------
Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com>
Co-authored-by: Leif Singer <git@singer.sh>
Co-authored-by: Leif Singer <leif@automattic.com>
Co-authored-by: Barry Hughes <3594411+barryhughes@users.noreply.github.com>
Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
Co-authored-by: Luigi <gigitux@gmail.com>
* Clean up created pages and posts
* Move tax tests so that they run last
* Improve locators
* Changelog
* Improve locators
* Improve locator on heading
* Change assertions to look for alert text
* Change assertion to look for text
* Update locators
* Update locator
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
* Fix attempts to count possible non-countable variables or usage of undefined variables
This fixes a few miscellaneous small problems where a possibly undefined variable was attempted to be accessed or a variable that wasn't necessarily countable was passed to `count()`
These were found by running Rector with rules specific to finding issues with php8.
* Fixing lint spacing issue
* Use wp_post table instead wp_option to store patterns data generated by AI
* avoid crash when there isn't any patterns_ai_data post type
* restore check
* remove unnecessary constant
* catch error
* pass boolean to return WP_Error
* Marketplace: table design updates
* Marketplace: address PR feedback
- Added enum for status levels
- Fixed color for the table rows
- Used ADMIN_URL for referencing plugins page
-
* Marketplace: Update WooCommerce.com references to Woo.com
Co-authored-by: And Finally <andfinally@users.noreply.github.com>
* Marketplace: fix how status badges look on narrower screens
---------
Co-authored-by: And Finally <andfinally@users.noreply.github.com>
* Add support for filtering products by featured status
- Added `featured` attribute to `ProductCollectionQuery` type to enable filtering by featured status.
- Implemented `FeaturedProductsControl` to provide a toggle option in the inspector controls.
- Integrated `FeaturedProductsControl` into `ProductCollectionInspectorControls`.
- Added `get_featured_query` function in `ProductCollection` class to generate query for fetching featured products.
- Updated existing functions and queries in `ProductCollection` class to support featured products filtering.
* Revert changes to composer.lock
* Refactor handling of 'featured' parameter
This commit makes the handling of the 'featured' parameter consistent in the ProductCollection class. Previously, the 'featured' parameter was being type-casted to boolean, which was not necessary and could lead to incorrect results. Now, the 'featured' parameter is used directly without type-casting, and the check for 'featured' products in the get_featured_query method has been updated accordingly. This ensures that the 'featured' parameter is handled consistently and correctly throughout the class.
* Handle undefined 'featured' index
This commit adds null coalescing operator to handle the case when 'featured' index is not set in the $query array. This prevents potential PHP notices or errors that may arise when trying to access an undefined index.
* Add time frame filter to Product Collection block
This commit introduces the ability to filter products within the Product Collection block by a specified time frame. The changes include:
- A new 'timeFrame' property added to the DEFAULT_QUERY constant in constants.ts, initialized as null, allowing for the storage of time frame data.
- Creation of a new component `CreatedControl` in created-control.tsx that provides UI elements for selecting a time frame filter.
- Inclusion of `CreatedControl` in the Product Collection Inspector Controls.
- Expansion of the ProductCollectionQuery interface in types.ts to include a 'timeFrame' attribute.
- Addition of the 'timeFrame' parameter handling within the ProductCollection PHP class to construct and execute the date query based on the provided time frame.
The addition of the time frame filter offers enhanced flexibility in presenting products and allows users to dynamically segment their product lists based on product creation dates.
* Refactor: Standardize 'timeFrame' to be 'undefined' instead of 'null'
This commit includes a refactoring that changes the initialization and reset values for the `timeFrame` property from `null` to `undefined`. This standardization affects the constants, type definitions, and the handling of the `timeFrame` property in both the inspector controls and the PHP backend.
* Switch date query to use post_date_gmt for DST consistency
This commit changes the column reference in the date query from 'post_date' to 'post_date_gmt'. This update ensures that the product collection filtering is based on Coordinated Universal Time (UTC) rather than local time, which can be affected by Daylight Saving Time (DST) shifts. The modification will lead to more consistent and reliable behavior across different time zones and during DST changes.
* Capitalize toggle group labels
The following adjustments have been made:
- Introduced a constant `uppercaseStyle` to store the `{ textTransform: 'uppercase' }` style.
- Applied `uppercaseStyle` to both the 'IN' and 'NOT IN' toggle options to ensure label text is consistently uppercase.
- Updated the 'Not in' label text to uppercase ('NOT IN') to match the newly applied style.
These changes ensure that the toggle labels align with the design guidelines that call for uppercase styling in control elements.
* Make first letter of first work capital
* Rename to Within & Before
* Update i18n for Product Collection query operators
This commit updates the internationalization (i18n) for the Product Collection query operators in the 'Created' control component of the WooCommerce Blocks plugin. It replaces the '__' function with '_x' for translation and provides context comments for better translation handling. This improvement enhances the localization of the query operators for better multilingual support.
* Add 2 additional steps between the loader steps
* Support onChange callback
* Add loader progress transition
* Add smooth transition story
* Set the initial percentage to 5 to make the transition smoother
* Add changefile(s) from automation for the following project(s): @woocommerce/onboarding, woocommerce
* Add smooth-transition class to the progressbar
* Fix lint
* Update AssembleHubLoader
* Fix e2e
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
In WordPress 6.4, it appears that the global `have_posts` is `false` in
the context of the full site editing single product template. This
breaks the Classic Template block.
In this commit, we are creating a custom query using the available id
instead of relying on the global query.
This might be a temporary workaround as we are waiting to see
if that's an issue that core is willing to fix, as it might affect
backwards-compatibility for other vendors.
* Rename Centered Header Menu with Search pattern
Since the search bar has been removed from this pattern, this PR renames
the pattern title and slug to reflect that change.
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Rename Centered Header Menu with Search pattern
Since the search bar has been removed from this pattern, this PR renames
the pattern title and slug to reflect that change.
* Rename file to reflect search removal.
Remove `search` from the filename, as this no longer reflects the
pattern.
* Avoid a type error when performing an `array_sum()` under PHP 8.3.
* avoid short array syntax (linter)
---------
Co-authored-by: Leif Singer <git@singer.sh>
* fix pattern route performance
* update namespace
* improve middleware
* improve ProductSchema
* improve error handling
* update identifier
* fix middleware
* update description
* use schema to return the response
* Break down the generate_content method and create the new fetch_dummy_products_to_update method for handling the fetch of dummy products to be updated.
* Ensure the Product endpoint relies on the fetch_dummy_products_to_update method for fetching dummy products to avoid code repetition and add safety checks and handle errors in case certain properties are not available.
* Add error handling for the Products endpoint.
* Remove memory limit increase and update docblocks.
* re-add set_time_limit
---------
Co-authored-by: Patricia Hillebrandt <patriciahillebrandt@gmail.com>
* Copy WelcomeGuide from gutenberg
* Remove CSS copied from guide component since it's not influencing the product Welcome Guide and it's interfering with the block editor welcome guide
* Fix issue with box-sizing
* Fix lint issues
* Show guide only when modal is open
* Add changelog
* Remove template and fix issue with component not re-rendering
* Add comment
* Add additional changelog
* Rename component
* Add the wc_allow_changing_orders_storage_while_sync_is_pending filter
For HPOS the idea is to disallow changing the authoritative data
source for orders (new tables <--> posts table) while there are orders
pending synchronization, since this can lead to data loss. However,
while this was indeed disallowed in the features UI, it was still
possible to manually change the value of the corresponding option
(via "wp option" command); there was code in place to prevent this
(by throwing an exception) but it had been commented out to ease
testing during the development of the feature.
This commit restores that commented out code, so in principle,
trying to change value of the option while there are orders pending
synchronization will throw an exception. BUT a filter is introduced,
wc_allow_changing_orders_storage_while_sync_is_pending, to allow
bypassing this behavior: the filter returns "false" by default, but
if it returns "true", changing the option will never throw an
exception. This is needed for a few of the existing unit tests,
but otherwise it should never be done (and the filter is documented
as such).
Additionally, if the filter returns "true" it will be possible to
change the value of the option in the features UI; but a warning
message will be shown in red if there are orders pending sync.
* Add changefile(s) from automation for the following project(s): woocommerce
* Fix code inadvertently duplicated when merging from trunk.
* Add changefile(s) from automation for the following project(s): woocommerce
* Fixes after manually undoing merge conflicts
* Fix linting issue
* Fix unit tests
* Fixed a bug that allowed changing the authoritative table from wp cli
even with orders pending synchronization
* Add changefile(s) from automation for the following project(s): woocommerce
* Fix some more unit tests
* Delete duplicated changelog file
---------
Co-authored-by: github-actions <github-actions@github.com>
Allow removing postcode and state fields from the shipping calculator, if they're not needed for calculation, even if they're required at the checkout.
Fixes#28393
* Add tests for tax display for the shopper
* Add changelog
* Renamed .spec file
* Fixes for re-testability
* Fix a locator problem
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
In the AI prompt, there are spelling issues:
- `bellow` instead of `below`
- `json` instead of `JSON`
Unclear if this would impact responses but should be fixed regardless.
* Product Gallery Thumbnails: Add View All link to the last thumbnail (non-interactive)
* Product Gallery Thumbnails: Add interactivity to the View All overlay
* Product Gallery Thumbnails: Refactor View all html to make it more readable
* Product Gallery Thumbnails: Fixwoocommerce/woocommerce-blocks#11100 - Load all thumbnails and hide the View all overlay when in Dialog
* Product Gallery Thumbnails: Fixwoocommerce/woocommerce-blocks#11099 - Enable the dialog for the View all thumbnails overlay even when the 'Full-screen when clicked' setting is disabled
* Product Gallery Thumbnails: Remove unnecessary concatenation from the View all html
* Product Gallery Thumbnails: Abstract the View All conditions into separate functions for readability
* Product Gallery Thumbnails: Add escaping to the View all plain text string
* E2E: Fix the Sale Badge and Single Product Template tests by selecting the first Sale Badge
* Empty commit for release pull request
* Add changelog entries to readme.txt
* Update version numbers
* Add testing instructions
* Update the changelog with woocommerce/woocommerce-blocks#11421
* Always show the `Enable the shipping calculator on the cart page` option in WC Admin (https://github.com/woocommerce/woocommerce-blocks/pull/11421)
* Always show `Enable the shipping calculator ...`
Always show the `Enable the shipping calculator on the cart page` option
no matter of what is used for the cart page.
* Update remove_shipping_settings docblock to accurately describe its purpose.
---------
Co-authored-by: Mike Jolley <mike.jolley@me.com>
* Add a safe guard that the variable is set before accessing it (https://github.com/woocommerce/woocommerce-blocks/pull/11424)
* Update zip package link
* Modify the <main> HTML tag in the title to 'main' to ensure the title remains intact
* Revert "Use the <header> element for the checkout header (https://github.com/woocommerce/woocommerce-blocks/pull/11222)"
This reverts commit 9e9ebc5039.
* Remove woocommerce/woocommerce-blocks#11222 from the Changelog and the Testing Notes
* Remove woocommerce/woocommerce-blocks#11190 from the Changelog and Testing Notes as it was never merged
* Update .zip file with latest changes
* Release: 11.4.2 (https://github.com/woocommerce/woocommerce-blocks/pull/11452)
* Empty commit for release pull request
* Do a version bump to 11.4.1
* Add Instruction Notes and update the Changelog
* Update the testing instructions and the changelog and the .zip link
* Empty commit for release pull request
* Remove the fontSize for the button (https://github.com/woocommerce/woocommerce-blocks/pull/11433)
* [Store Customization MVP] Ensure the AI-generated content in patterns is updated on plugin update (https://github.com/woocommerce/woocommerce-blocks/pull/11210)
* Update the patterns content after updating the plugin
* Remove unused variable and use statement
* Schedule action for updating the patterns content on plugin update (for both WooCommerce and WooCommerce Blocks.)
* Update condition to remove the plugin folder name
* Remove the update function from bootstrap.php
* Remove unused use
* Fix the condition, since $options['plugin'] is an array
* Remove pattern file
This was left empty by mistake in a merge, we need to remove the file or we get an error
---------
Co-authored-by: Patricia Hillebrandt <patriciahillebrandt@gmail.com>
* Fix outer space and title (https://github.com/woocommerce/woocommerce-blocks/pull/11434)
* Store Customization > Update products with AI generated content (https://github.com/woocommerce/woocommerce-blocks/pull/11155)
* Introduce the ProductUpdater class.
* Update the image assignment for the default products content.
* Update the default products content.
* Introduce the generate_content and get_placeholder_products methods.
* Update the get_placeholder_products method and introduce the new create_new_product method.
* Verify the hash of the product content and compare it with the hash of the ai generated content to ensure we wont override products modified by the store owner.
* Add docblocks and update the structure for the ProductUpdater class.
* Pass the vertical images as a param for the PatternUpdater and the ProductUpdater.
* Update the provided variable to the PatternUpdater class.
* Update the ProductUpdater class to include the requirements for usage of the media_sideload_image method outside the wp-admin area (via API) and other adjustments to the products generation and hashes
* remove unnecessary calls to post/product images.
* Update the loop for generating products.
* Further adjustments to the Product Updater.
* Provide the business_description as a param for the generate_content ProductUpdates
* Update the default timeout for the AI connection; update the path to the default image. Add a limit of 6 when quering the total products created by the store owner.
* Add new neutral placeholder images for products and patterns.
* Update the prompt and the logic for the placeholder images.
* Remove placeholder images.
* Increase max execution time
* Update the products query.
* Move the media_sideload_image function dependencies to outside of the loop and add comment.
* Update text content.
* Address code review.
* bail early if no business description provided.
* Add an extra safety check in case of query errors.
* Address CR.
* Patterns > Upload optimized version of placeholder image (https://github.com/woocommerce/woocommerce-blocks/pull/11441)
* Improve vars name and remove duplicated user name (https://github.com/woocommerce/woocommerce-blocks/pull/11430)
* Add overlay with 30% opacity (https://github.com/woocommerce/woocommerce-blocks/pull/11428)
* [Store Customization] Update the "Footer with 3 Menus" (https://github.com/woocommerce/woocommerce-blocks/pull/11379)
* Fix search bar, spacing and show text in one line
* Set site log width
* Adjust margins and search bar
* Make the search bar fill space on mobile
* Update column sizes
* Remove width from site logo
* [CYS Woo Express] Update large footer (https://github.com/woocommerce/woocommerce-blocks/pull/11413)
* Update large footer
* Update space between icons
* Remove with from site logo
* update changelog and testing instructions
* bump to 11.4.2 version
* [CYS Woo Express] Fix essential header (https://github.com/woocommerce/woocommerce-blocks/pull/11449)
* Fix essential header
* Fix spacing
* update testing instructions
* Make groups to adapt better to mobile views (https://github.com/woocommerce/woocommerce-blocks/pull/11463)
* update testing instructions and changelog
* Unify the search bar layout across patterns (https://github.com/woocommerce/woocommerce-blocks/pull/11445)
* Unify the search bar layout across patterns
* restore changes
* [CYS Woo Express] Footer with simple menu and cart (https://github.com/woocommerce/woocommerce-blocks/pull/11409)
* Update footer simple menu cart
* Change structure to use rows not columns
* Make search fill space
* Fix spacing and switch mini-cart and menu
* Unify the search bar
* Remove mini cart
* update testing instructions and changelog
* Store Customization > Fetch product images from the Pexels API (https://github.com/woocommerce/woocommerce-blocks/pull/11280)
* Introduce the ProductUpdater class.
* Update the image assignment for the default products content.
* Update the default products content.
* Introduce the generate_content and get_placeholder_products methods.
* Update the get_placeholder_products method and introduce the new create_new_product method.
* Verify the hash of the product content and compare it with the hash of the ai generated content to ensure we wont override products modified by the store owner.
* Add docblocks and update the structure for the ProductUpdater class.
* Pass the vertical images as a param for the PatternUpdater and the ProductUpdater.
* Update the provided variable to the PatternUpdater class.
* Update the ProductUpdater class to include the requirements for usage of the media_sideload_image method outside the wp-admin area (via API) and other adjustments to the products generation and hashes
* remove unnecessary calls to post/product images.
* Update the loop for generating products.
* Further adjustments to the Product Updater.
* Provide the business_description as a param for the generate_content ProductUpdates
* Update the default timeout for the AI connection; update the path to the default image. Add a limit of 6 when quering the total products created by the store owner.
* Add new neutral placeholder images for products and patterns.
* Update the prompt and the logic for the placeholder images.
* Remove placeholder images.
* Pass the AI connection as a param and update the get_images_for_pattern method to rely on the results returned from the Pexels API.
* update the product updater class to rely on Pexels images and add the ai_connection as a param.
* Remove the unused get_random_images method.
* Update the patterns endpoint.
* Delete unused ChatGPTClient class.
* Introduce the new Pexels class.
* Remove the Verticals references.
* Update the reference for the alt description for images.
* Update the scheduled action to populate patterns and products.
* Remove unused Verticals classes.
* Ensure the Pexels class already returns the array with the expected format for assignment to Patterns and Products.
* Introduce the select_image_src_based_on_format method.
* Increase max execution time
* Increase max execution time
* Update the request to rely on the WP.com external-media endpoint instead.
* Improve performance for product content update.
* Improve quality of images used in products and update queries.
* Update the products query.
* Move the media_sideload_image function dependencies to outside of the loop and add comment.
* Update text content.
* Merge base branch
* Introduce the should_update_dummy_product method.
* Update the method to be triggered on scheduled action to return true.
* Change the image format for products to improve performance.
* Make portrait the default fallback image format.
* Address code review.
* bail early if no business description provided.
* Add an extra safety check in case of query errors.
* Address CR.
* Raise the default memory limit.
* Update the prompt for the search term for images.
* Make sure the 'woocommerce_blocks_allow_ai_connection' option is set to true if the site is connected to AI.
* Update the prompt for AI generated content in patterns and initialize the images and alts for the patterns.
* Update the prompt for products and introduce the update_dummy_products method.
* Update the default number of images returned by Pexels.
* Update the default fallback for the expected image format.
* Update the prompt for selecting the images.
* Add a character limit to the testimonials.
* Increase timeout to fetch products data
* Address code review.
* update changelog
* add zip link
* fix markdown
* remove duplicate testing instructions
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Daniel Dudzic <daniel.dudzic@automattic.com>
Co-authored-by: Alba Rincón <albarin@users.noreply.github.com>
Co-authored-by: Patricia Hillebrandt <patriciahillebrandt@gmail.com>
Co-authored-by: Tom Cafferkey <tjcafferkey@gmail.com>
Co-authored-by: Luigi <gigitux@gmail.com>
* Release: 11.4.3 (https://github.com/woocommerce/woocommerce-blocks/pull/11496)
* bump to 11.4.3
* Empty commit for release pull request
* Improve Hero Product Chessboard pattern (https://github.com/woocommerce/woocommerce-blocks/pull/11423)
* improve pattern
* remove hardcoded font-size
* address feedback
* update to h2
* Remove group and separator to get rid of the extra space (https://github.com/woocommerce/woocommerce-blocks/pull/11477)
* [Store Customization] Update the design for the Product Gallery pattern (https://github.com/woocommerce/woocommerce-blocks/pull/11464)
* Remove rating, show only title and price
* Improve title spacing and level
* Patterns with Search Bar: improve style (https://github.com/woocommerce/woocommerce-blocks/pull/11478)
* "Product Collection X Columns" patterns: align "no reviews" text with the star (https://github.com/woocommerce/woocommerce-blocks/pull/11468)
* improve line-height
* use variable
* add testing instructions
* Rename pattern (https://github.com/woocommerce/woocommerce-blocks/pull/11487)
* update readme
* Store Customization > Enhance the Hero Product Split pattern (https://github.com/woocommerce/woocommerce-blocks/pull/11505)
* Update the bottom margin for the Hero Product Split and the heading from h3 to h2.
* Update heading comment
* update testing instructions
* Simplify the `Hero Product 3 Split` pattern design (https://github.com/woocommerce/woocommerce-blocks/pull/11495)
* Simplify the pattern design
* Add char limits to the AI generated content
* Fix url
* update testing instructions
* Product Search Block: unify border-radius (https://github.com/woocommerce/woocommerce-blocks/pull/11515)
* add testing instructions
* [Store Customization] Update the Centered Header Menu with Search Pattern (https://github.com/woocommerce/woocommerce-blocks/pull/11304)
* Fix hidden elements on mobile and margins
* Increase navigation items spacing
* Add site logo width
* Improve search bar and title font weight
* Remove width from site logo
* Unify search bar
* Remove search, improve margins
* Use columns to improve the mobile view
* add testing instructions
* Large Header pattern: improve the layout on mobile view (https://github.com/woocommerce/woocommerce-blocks/pull/11490)
* Improve Large header
* improve large header
* use lens
* add padding
* add testing instructions
* Fix "Large footer" left spacing (https://github.com/woocommerce/woocommerce-blocks/pull/11520)
* Fix large footer left spacing
* Use esc_html_e
* add testing instructions
* add zip file
* improve testing instructions
* update testing instructions
* update testing instructions
---------
Co-authored-by: Luigi <gigitux@gmail.com>
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Alba Rincón <albarin@users.noreply.github.com>
Co-authored-by: Patricia Hillebrandt <patriciahillebrandt@gmail.com>
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Daniel Dudzic <daniel.dudzic@automattic.com>
Co-authored-by: Saad Tarhi <saad.trh@gmail.com>
Co-authored-by: Mike Jolley <mike.jolley@me.com>
Co-authored-by: Karol Manijak <20098064+kmanijak@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Alba Rincón <albarin@users.noreply.github.com>
Co-authored-by: Patricia Hillebrandt <patriciahillebrandt@gmail.com>
Co-authored-by: Tom Cafferkey <tjcafferkey@gmail.com>
Apparently Link with type wp-admin is the same as normal anchor link anyway, there is no special code handling for wp-admin. So we might as well just use the normal link, and remove the dependency on Link.
* Increase a couple of timeouts
* Remove duplicate update to nightly
* Add changelog
* Install Playwright
* Handle Playwright setup
* Add in build name
* Add in check in e2e tests for daily run
* Reverse check
* Rookie mistake
* Use ternary operator instead
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
* Preload Jetpack data even without Jetpack plugin installed
Now that the Jetpack Connection package is a dependency
of WooCommerce, preload Jetpack data even when the Jetpack
plugin is not present.
Fixes#41070
* Add changefile(s) from automation for the following project(s): woocommerce
* Fix lint issue
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Adrian Duffell <9312929+adrianduffell@users.noreply.github.com>
* Update readme.txt
Changed links from WooCommerce.com to Woo.com.
* Update reference to WooCommerce Marketplace.
* Swap `woocommerce.com` with `WooCommerce Marketplace`.
* Swap `WooCommerce.com`, replace with `Woo.com`.
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: Barry Hughes <3594411+barryhughes@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@github.com>
* add store_id to WC_Tracker and Tracks; add blog_id to WC_Tracker
* update wc-install-test; add wc-tracks-test
* improved blog_id accessor and more tests
* attempt to mock
* spacing
* revert jetpack options changes
* linting fixes
* linting fixes
* rm blog_id test
* remove blog_id tests
* Add changefile(s) from automation for the following project(s): woocommerce
* fixes after PR review
* Add changefile(s) from automation for the following project(s): woocommerce
* update version
* fix linting error
---------
Co-authored-by: github-actions <github-actions@github.com>
* Hide theme and default palette
* Add changefile(s) from automation for the following project(s): woocommerce
* Lint fix
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Adrian Duffell <9312929+adrianduffell@users.noreply.github.com>
* Reduce the logo preview to a maximum width of 60px
* Add changelog
* Set max height and width to 250px
60px was too small!
---------
Co-authored-by: Adrian Duffell <9312929+adrianduffell@users.noreply.github.com>
* Use the Hero Product Split pattern as the initial one for all templates.
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Adrian Duffell <9312929+adrianduffell@users.noreply.github.com>
* Product Gallery: Add cropped image support
* Product Gallery: Add cropped image support
* Clean up
* Create the crop dimensions based on smallest original image dimension
* Bail if image is not available
* Create product variations filter component
* Add slug to the product and variation attributes
This is needed to be able to filter variations by specific attribute slugs
* Add support to filter variations by many attribute options
* Integrate attribute options filter in variations table
* Fix rebase conflicts
* Set initial filter values
* Improve intial filter values and cache invalidation
* Add changelog files
* Fix linter errors
* Fix unit tests
* Change the min amount of options to show the search input
* Fix invalid cache key generation for the datastore
* Fix unit tests
* Fix linter errors
* Fix js tests
* Add terms pagination for varition filters
* Load terms on demand plus pagination
* Show selected option names as the dropdown button toggle text
* Fix invalida state when reset and on close the popover
* Revert adding selected options as part of the dropdown toggle text
---------
Co-authored-by: Fernando Marichal <ultimoround@gmail.com>
* Try getting a site preview in the banner working.
* Change to use iframe instead
* Changelog
* Fix lint issues
---------
Co-authored-by: Chris Runnells <chris.runnells@automattic.com>
Co-authored-by: Adrian Duffell <9312929+adrianduffell@users.noreply.github.com>
* Set default logo width when updating the template
* Set current logo width to the inserting patterns
* Add changelog
* Fix tests
* Apply logo width in use-patterns
* Fix hidden elements on mobile and margins
* Increase navigation items spacing
* Add site logo width
* Improve search bar and title font weight
* Remove width from site logo
* Unify search bar
* Remove search, improve margins
* Use columns to improve the mobile view
* Disable header and footer on cys pages
* Support showNotices and showStoreAlerts to control Notices and StoreAlerts from the layout
* Disable Notices and StoreAlerts from CYS
* Support showPluginArea -- setting this value to false disables plugins
* Disable plugin area in cys
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* add a failing test for setting shipping total to empty string (fails on PHP 8.x)
* make the WC_Tests_Order_Item_Product::test_get_item_shipping_total test pass
* add changelog file
* add some more explicit conversions to float where we add values and can't be sure it's not a string
* appease the linter
* set array_reduce's initial value to 0.0
* Fix: Remove incorrect discount label
We don't want to mark a product as having a discount when price includes
additional costs
* Add "goToCart" E2E helper function
* Add the CartPage class
* Add the Cart product price E2E tests
* Remove unnecessary comments
* Mark the Cart shopper E2E testing file as a having side effects
* Fix the "Strict mode violation" error
* Try another fix for the "Strict mode violation"
* Add `data-wc-init` directive to Interactivity API
* Add support for variation image updates on the Product Gallery block
* Watch correct form based on the product id
* Fix php cs error
* Fix php cs error
* Prevent adding wc-init to non-variable products
* Load standard includes and template functions in REST API and some admin contexts.
This is primarily needed to support the use of legacy shortcodes within the block editor, as pre-rendering means the shortcodes will be invoked (and therefore any frontend/template functions the shortcode handler might call need to be available).
* Check session is available before accessing its methods from within shortcodes.
* Changelog.
* Coding standards (no assignment inside a conditional).
* Whitespace.
* Support testing if the request is of type 'rest-api'.
This preserves the accuracy of the 'frontend' definition. Additionally, having tightened that up, we explicitly include REST API requests as a condition in which we should load frontend includes (needed, to support quirks in terms of how the block editor does things—such as creating FE previews of blocks).
* `rest-api` is not used, and this is a private method so it is essentially dead-code.
* Return type clean-up for `wc_print_notices()`.
* dequeue wpcom.editor on cys pages
* Add gutenberg_version to wcSettings.admin
* Use the new consent string for Gutenberg 16.9 and above
* Add changefile(s) from automation for the following project(s): woocommerce
* Revert "dequeue wpcom.editor on cys pages"
This reverts commit 85c039c7dc.
* Update changelog
* Add changefile(s) from automation for the following project(s): woocommerce
* Revert "Add changefile(s) from automation for the following project(s): woocommerce"
This reverts commit 4554626fde.
* Fix lint issues
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Adrian Duffell <9312929+adrianduffell@users.noreply.github.com>
* Marketplace: Populate the table rows with components
* Marketplace: add links to dropdown menu and fix fallback product icons
* Marketplace: fix popover width
* Add My subscriptions install (#40630)
* Marketplace: add plugin install from the subscriptions page
Co-authored-by: berislav grgičak <berislav.grgicak@gmail.com>
* Marketplace: Use the activation function to show install button
---------
Co-authored-by: raicem <unalancem@gmail.com>
* Add WP updates script to the extensions page
* Add update button
* Add update data to subscriptions
* Update plugins
* Prevent update if license unavailable
* Add changefile(s) from automation for the following project(s): woocommerce
* Remove all data from API
* Linter fixes
* Linter fixes
* Remove merge string
* Update link style
* Add comment for updates.js
* Prevent updates if required data is missing
* Return removed slug code
* My subscriptions action modals (#40934)
* Add renew modal
* Update install to run until new data loaded
* Add activate modal
* Add connect modal
* Add renew button
* Renewal button
* Rename activate to connect
* Add subscribe button
* Add action buttons
* Remove unused const
* Add changefile(s) from automation for the following project(s): woocommerce
* Update plugins/woocommerce-admin/client/marketplace/components/my-subscriptions/my-subscriptions.scss
Co-authored-by: And Finally <andfinally@users.noreply.github.com>
* Update import path
---------
Co-authored-by: And Finally <andfinally@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@github.com>
---------
Co-authored-by: raicem <unalancem@gmail.com>
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: And Finally <andfinally@users.noreply.github.com>
Adds a new file browsing view for Logs and sets the stage for other UI improvements described in #40644. In this view, the list of log files can be sorted by several different parameters and also filtered by the log's "source" (which is essentially the prefix on the log's filename). It has the standard list table feature of being able to select multiple rows at once and perform a bulk action. In this case, the only bulk action is currently to delete files. Clicking on one of the files brings you to the single file view, which at this point is just the old log file view.
Fixes#40915
* Introduce the ProductUpdater class.
* Update the image assignment for the default products content.
* Update the default products content.
* Introduce the generate_content and get_placeholder_products methods.
* Update the get_placeholder_products method and introduce the new create_new_product method.
* Verify the hash of the product content and compare it with the hash of the ai generated content to ensure we wont override products modified by the store owner.
* Add docblocks and update the structure for the ProductUpdater class.
* Pass the vertical images as a param for the PatternUpdater and the ProductUpdater.
* Update the provided variable to the PatternUpdater class.
* Update the ProductUpdater class to include the requirements for usage of the media_sideload_image method outside the wp-admin area (via API) and other adjustments to the products generation and hashes
* remove unnecessary calls to post/product images.
* Update the loop for generating products.
* Further adjustments to the Product Updater.
* Provide the business_description as a param for the generate_content ProductUpdates
* Update the default timeout for the AI connection; update the path to the default image. Add a limit of 6 when quering the total products created by the store owner.
* Add new neutral placeholder images for products and patterns.
* Update the prompt and the logic for the placeholder images.
* Remove placeholder images.
* Pass the AI connection as a param and update the get_images_for_pattern method to rely on the results returned from the Pexels API.
* update the product updater class to rely on Pexels images and add the ai_connection as a param.
* Remove the unused get_random_images method.
* Update the patterns endpoint.
* Delete unused ChatGPTClient class.
* Introduce the new Pexels class.
* Remove the Verticals references.
* Update the reference for the alt description for images.
* Update the scheduled action to populate patterns and products.
* Remove unused Verticals classes.
* Ensure the Pexels class already returns the array with the expected format for assignment to Patterns and Products.
* Introduce the select_image_src_based_on_format method.
* Increase max execution time
* Increase max execution time
* Update the request to rely on the WP.com external-media endpoint instead.
* Improve performance for product content update.
* Improve quality of images used in products and update queries.
* Update the products query.
* Move the media_sideload_image function dependencies to outside of the loop and add comment.
* Update text content.
* Merge base branch
* Introduce the should_update_dummy_product method.
* Update the method to be triggered on scheduled action to return true.
* Change the image format for products to improve performance.
* Make portrait the default fallback image format.
* Address code review.
* bail early if no business description provided.
* Add an extra safety check in case of query errors.
* Address CR.
* Raise the default memory limit.
* Update the prompt for the search term for images.
* Make sure the 'woocommerce_blocks_allow_ai_connection' option is set to true if the site is connected to AI.
* Update the prompt for AI generated content in patterns and initialize the images and alts for the patterns.
* Update the prompt for products and introduce the update_dummy_products method.
* Update the default number of images returned by Pexels.
* Update the default fallback for the expected image format.
* Update the prompt for selecting the images.
* Add a character limit to the testimonials.
* Increase timeout to fetch products data
* Address code review.
* Update footer simple menu cart
* Change structure to use rows not columns
* Make search fill space
* Fix spacing and switch mini-cart and menu
* Unify the search bar
* Remove mini cart
* Set default logo size to 60px and max to 200px
* Hide homepage template label
* Scroll to position when selecting a pattern
* Fix preview opacity issue
* Update sidebar scrollbar style
* Fix onboarding tour resize handle
* Add changelog
* Update data store docs
* Link related docs to /docs/third-party-developers/extensibility/data-store
* Improve data store overview
* Remove obsolete entry
* Update TOC of docs/third-party-developers/extensibility/data-store/store-notices.md
* Update TOCs
* Update link titles
* Replace primary key with import statement
* Optimise Validation Store description
* Keep store IDs in title
* Correct wrong key
* Optimise data store docs overview
* Explain the difference between cart and checkout store
* Add example to Validation Store
* Add example to Validation Store
* Add overview text to collections.md
* Add example to store-notices.md
* Update TOC of store-notices.md
* Update overview description of store-notices.md
* Add code snippets for displaying the validationError message
* Update data store docs
* Link related docs to /docs/third-party-developers/extensibility/data-store
* Improve data store overview
* Remove obsolete entry
* Update TOC of docs/third-party-developers/extensibility/data-store/store-notices.md
* Update TOCs
* Update link titles
* Replace primary key with import statement
* Optimise Validation Store description
* Keep store IDs in title
* Correct wrong key
* Optimise data store docs overview
* Explain the difference between cart and checkout store
* Add example to Validation Store
* Add example to Validation Store
* Add overview text to collections.md
* Add example to store-notices.md
* Update TOC of store-notices.md
* Update overview description of store-notices.md
* Add code snippets for displaying the validationError message
* Mention full link in assets/js/data/cart/README.md
* Changed Store-Notices to Store Notices
* Make Cart and Checkout Blocks the default experience on WooCommerce installation.
* Corrected text domain for translations
* Added changelog entry
* Add changefile(s) from automation for the following project(s): woocommerce
* Change significance to major on changelog
* Update tooltips for the Cart and Checkout pages
* Deprecated woocommerce_checkout_shortcode_tag and woocommerce_cart_shortcode_tag
* Convert Cart and Checkout pages to shortcodes during setup phase of E2E, API, and k6 perf tests. (#40960)
* Add utility function to set shortcode cart, checkout pages
* Stabilize login steps in global setup, teardown
* Add minor jsdoc
* Simplify function
* Remove unnecessary env var
* Stabilize 1 flaky test
* Add minor jsdoc
* Add util function to convert cart, checkout pages to shortcode in API tests
* Convert to cart, checkout shortcode in k6 perf tests
* Get auth state from PW config
* Rename function
* Separate setup function
* Revert create-simple-product e2e test file
* Add changefile(s) from automation for the following project(s): woocommerce
* Deleted duplicated changelog entry
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: rodelgc <rodel.calasagsag@automattic.com>
* Display shipping calculator when formatted address is present
- Earlier, shipping calculator was getting displayed based on the isAddressComplete value.
- For the scenarios where address was incomplete but formatted address was present shipping calculator was not getting displayed.
- This made shipping calculator not getting displayed for guest shoppers.
- With this, conditions are changed from isAddressComplete to formatShippingAddress to display shipping calculator if formatted address is present.
- Add unit test case for the condition for formatted address.
* Update comments to explain the condition to hide shipping calculator
- Update the comments to add the reason to hide shipping calculator.
- When there is no default customer location in the store and the customer has not entered their address, but there is a default shipping method available for all locations, then we will hide the shipping calculator.
* Remove authors filter from Product Collection block
* Remove author filed in query
* Add back the author query argument in the final query builder
---------
Co-authored-by: Manish Menaria <the.manish.menaria@gmail.com>
* Remove dependency on Jetpack from WCS&T's task list item
- Remove installing Jetpack-the-plugin from WooCommerce Shipping &
Tax WC Home task list and recommended extensions area.
- Update Jetpack auth link generation to use getJetpackAuthUrl().
- Remove references of Jetpack-the-plugin from WCS&T onboarding
as the extension will now use the Jetpack Connection package
for establishing a connection between WPCOM infrastructure
and a Woo site.
* Update WooCommerce Tax flow in WC Home task list
* Inline the agreementText variable
* Add missing pluginSlugs prop to <Plugins> instance for WC Tax
* Fix WC Tax extension name in API response
* Remove Jetpack from copy in Tax task header
* Fix MD034/no-bare-urls MD linting violation
* Fix experimental shipping recommendation tests
* Add changelogs requested by linter
* Add changefile(s) from automation for the following project(s): @woocommerce/components, woocommerce
* Remove mention of Jetpack from ExperimentalShippingRecommendation
* Fix text wrapping bug in WC Tax onboarding task
* Add changefile(s) from automation for the following project(s): @woocommerce/components, woocommerce
* Use isResolving() to detect pending auth URL fetch
* Replace unused hasErrors with ref to error
* Fix lint
* Jetpack auth URL prefetching
* Revert "Jetpack auth URL prefetching"
This reverts commit 2b79000e20.
* Add PrefetchJetpackAuthUrl component to remove Connect button load time
* Replace URL prefetching in component with useEffect
* Fix: Accept redirect URL as param instead of prop
* Fix lint
* Remove prefetching. Make Connect button always available
* Fix ExperimentalShippingRecommendation incompatibility with new Connect behavior
* Handle empty object errors in Connect
* Display TOS above WooCommerce Shipping & Tax installation buttons (#40863)
---------
Co-authored-by: github-actions <github-actions@github.com>
- Changed illustrations for extensions and themes no results.
- Added bottom border to theme images in product cards, as many themes have white backgrounds.
- Reduced font size and font weight of suggested products titles in no results.
* Invalidate variations upon generation and fix formatted name
* Add aditional invalidates to keep cache up to date
* Update formatted name to always return attribute term name list
Only setting default category `_all` for `search` view if `product_type` (i.e. `query.section`) is also set. The previous arrangement was setting the `_all` category on the initial search results, where category doesn't figure.
Removed `! props.view` from condition in `recordLegacyTabView`. It meant that the initial default marketplace view wasn't being recorded.
Solve issue with some default prop values
We were no longer sending through a property to determine the "view" or "section" (depending on which event version you're referring to) when loading the discover page.
This change ensures that there is always a fallback that resolves this.
Also fixed some linting issues and cleaned up redundant code.
Removed unused import.
Removed default values from `marketplaceViewProps` – we are now handling this in the tracking function.
Changed `selectedTab` dependency of `useEffect` hook in content.tsx to `query?.tab`. The `selectedTab` state was being reset after (or at least not at the same time as) the change of the tab param in the query string. For this reason, we were recording two page views when you changed from Extensions tab and Shipping category to Themes tab. This doesn't seem to break anything! We are still setting the `selectedTab` based on the query string in the `Tabs` component, so they should still be in sync.
Removed the condition skipping marketplace page view when there was no `prop.view`. This meant that when you switched to the Discovery tab from another tab, we weren't recording the page view.
Also setting default category prop `_all` when no category is specified on extensions, themes and search tabs. This allows us to bundle the default views of those tabs with the views got by clicking on the "All" category link.
Addressing linter errors.
* Update the patterns content after updating the plugin
* Remove unused variable and use statement
* Schedule action for updating the patterns content on plugin update (for both WooCommerce and WooCommerce Blocks.)
* Update condition to remove the plugin folder name
* Remove the update function from bootstrap.php
* Remove unused use
* Fix the condition, since $options['plugin'] is an array
* Remove pattern file
This was left empty by mistake in a merge, we need to remove the file or we get an error
---------
Co-authored-by: Patricia Hillebrandt <patriciahillebrandt@gmail.com>
- Earlier, shipping calculator was getting displayed based on the isAddressComplete value.
- For the scenarios where address was incomplete but formatted address was present shipping calculator was not getting displayed.
- This made shipping calculator not getting displayed for guest shoppers.
- With this, conditions are changed from isAddressComplete to formatShippingAddress to display shipping calculator if formatted address is present.
- Add unit test case for the condition for formatted address.
* Link site icon to Woo Home
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Remove green/yellow color palette from pattern assembler
* Remove Lemon Myrtle
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Save the session early before proceeding with order payment.
As part of the checkout process an order is created and the order id
is stored in a session variable right before requesting payment
processing to the appropriate payment gateway. Thus if the payment
fails and the user submits the order again, the order id will be
picked from the session so the existing order can be retrieved and
updated.
However if the payment process hangs (instead of returning an error)
and the request never finishes the session data will never actually
be sorted, and the next time the user submits the order a duplicate
of the first order will be created.
This commit simply does WC()->session->save_data() after the
WC()->session->set that stores the order id, so that the session is
effectively updated even if the request hangs.
* Add changelog file
* Introduce the ProductUpdater class.
* Update the image assignment for the default products content.
* Update the default products content.
* Introduce the generate_content and get_placeholder_products methods.
* Update the get_placeholder_products method and introduce the new create_new_product method.
* Verify the hash of the product content and compare it with the hash of the ai generated content to ensure we wont override products modified by the store owner.
* Add docblocks and update the structure for the ProductUpdater class.
* Pass the vertical images as a param for the PatternUpdater and the ProductUpdater.
* Update the provided variable to the PatternUpdater class.
* Update the ProductUpdater class to include the requirements for usage of the media_sideload_image method outside the wp-admin area (via API) and other adjustments to the products generation and hashes
* remove unnecessary calls to post/product images.
* Update the loop for generating products.
* Further adjustments to the Product Updater.
* Provide the business_description as a param for the generate_content ProductUpdates
* Update the default timeout for the AI connection; update the path to the default image. Add a limit of 6 when quering the total products created by the store owner.
* Add new neutral placeholder images for products and patterns.
* Update the prompt and the logic for the placeholder images.
* Remove placeholder images.
* Increase max execution time
* Update the products query.
* Move the media_sideload_image function dependencies to outside of the loop and add comment.
* Update text content.
* Address code review.
* bail early if no business description provided.
* Add an extra safety check in case of query errors.
* Address CR.
* Fix search bar, spacing and show text in one line
* Set site log width
* Adjust margins and search bar
* Make the search bar fill space on mobile
* Update column sizes
* Remove width from site logo
* Always show `Enable the shipping calculator ...`
Always show the `Enable the shipping calculator on the cart page` option
no matter of what is used for the cart page.
* Update remove_shipping_settings docblock to accurately describe its purpose.
---------
Co-authored-by: Mike Jolley <mike.jolley@me.com>
* Adds WooCommerce Endpoints documentation
* Removes images from `woocommerce.com` domain.
* Embed code directly into markdown instead of using gists.
* Adds images to the document.
* Adds changelog file
* Move the document to the right folder.
* Fixes markdown lint issues
* Create product page skeleton
* Load skeleton in product and variation pages
* Let each page to define own loading/skeleton when the router is resolving the page.
* Add changelog files
* Fix linter error
* Fix unit test
* Add Toggle to inspector controls allowing shrinking number of columns
* Add logic to allow columns to shrink in Product Collection
* Rename SCSS variable
* Make sure the value provided to component is a boolean
* Rename onChange callback name to better reflect its purpose
* Add disconnected state
* Add changefile(s) from automation for the following project(s): woocommerce
* Added top margin to `.woocommerce-store-alerts` to address https://github.com/Automattic/woocommerce.com/issues/18448.
* Rename description class
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: And Finally <andfinally@users.noreply.github.com>