* feat: Add related by setting to related products collection
This commit adds a new setting to the related products collection that allows
users to control how products are related. Users can choose to relate products
by categories, tags, or attributes.
* Remove attributes from related by control
This commit removes the attributes option from the related by control in the
Product Collection block. This option was not being used in the backend and
was potentially misleading to users.
Changes made:
- Removed attributes checkbox from RelatedByControl component
- Removed attributes from RelatedBy type definition
- Cleaned up PHP code by using PHP_INT_MAX instead of magic number
* feat: Set default values for related by setting
This commit sets the default values for the relatedBy setting in the Product
Collection block. By default, products will be related by both categories and
tags.
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Add tracking for related-by filter
* Add e2e test for "Related by" setting in Related Products collection
* Remove unused import for VStack
* Add optional chaining operator for query.relatedBy
Since relatedBy is an optional prop, add the optional chaining operator to
safely access it and prevent potential undefined property access errors.
* Add tracking for related by changes in Product Collection block
This commit adds tracking for when users change the "Related by" settings in
the Product Collection block inspector controls. It records whether categories
and tags are enabled or disabled.
* Update panel title from "Relate by" to "Related by"
* Remove `blocks_product_collection_inspector_control_related_by_changed` track event
---------
Co-authored-by: github-actions <github-actions@github.com>
* Use product name as fallback alt text in product gallery
* Add changelog file
* Add docblock comment to woocommerce_single_product_image_thumbnail_html filter
* Bump product-thumbnail template version
* Fix PHP lint errors
* Remove unnecessary white space
* Escape alt attribute
* update lock
---------
Co-authored-by: Nadir Seghir <nadir.seghir@gmail.com>
The code for the old underlying container (ExtendedContainer) is still in the codebase,
it will be used (instead of the new one) if any of these snippets is present:
define('WOOCOMMERCE_USE_OLD_DI_CONTAINER', true);
add_filter('woocommerce_use_old_di_container', '__return_true');
* gridify input + button add to cart
* changelog
* css hacl to ensure full witdh when no children
* increse the CSS selectors to apply the grid
* avoid apply styles for steppers
* apply styles only to input in block editor context
* hack to align input + button at left
* fit content only for grouped products
* apply high span to align input + button elems
* ensure to define pseudo element
* fix eslint issues
* fix linting issues
* use a var to define whole width in grid
* Define custom aria-labels for order actions.
* Use aria label if defined, otherwise generate from actio name.
* Add changefile(s) from automation for the following project(s): woocommerce
* Update order action assertion to account for new aria-label property.
* CS: Fix whitespace issue.
* Bump template version number.
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
* Do not repeat rendering the shipping calculator button on the cart page.
* Lint fix: remove unused import
* Revert "Ensure local state is not overwritten by server when using `extensionCartUpdate` (#49311)"
This reverts commit 4861ec250e.
* Revert changes that didn't render shipping calc and instead check hasrates before rendering ShippingVia, ShippingAddress
* Revert "Revert "Ensure local state is not overwritten by server when using `extensionCartUpdate` (#49311)""
This reverts commit feec5709c5.
* Remove redunant change in import ordering
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
In this PR we introduce dev-only SPR-4 autoloader, so newly introduced PHP classes are available without dumping autoload (specific the core autoloader).
* Add order attribution install banner in core analytics overview (#51672)
* Implement order attribution install banner in analytics overview page
* Add a hook for setting banner dismissed option
* Use the hook the decide whether to show banner and call dismiss funtion
when clicking dismiss CTA
* Do not show banner when the plugin is already installed
* Add event tracking for banner viewed and clicked
* UI adjustments based on PR reviews
* Move client/order-attribution to client/order-attribution-install-banner
* Prevent the banner viewed event from being sent again wehn rerendering
* Add a comment to the hook useOrderAttributionInstallBanner
* Remove the prop of eventContext since it uses the default value
* Rename the css class name to make it more general
* Add order attribution install banner in analytics overview's header (#51908)
* Export useOrderAttributionInstallBanner from the first level of the folder
* Add OA install banner in analytics overview page header
* Refactor to use the same component for main and header banners
* Add order attribution install banner in order editor's order attribution metabox (#52282)
* Move OA install banner folder in favour of #49647
* Use slotfill to render OA install banner in order editor's OA metabox
* Don't show badge and image for the banner under OA metabox
* Pass title and description as props
* Pass dismissable as props to decide whether to show the Dismiss button
* Adjust the banner style to make it more customisable
* Show the banner even if the analytics overview banner was dismissed
* Adjust header banner spacing to match the items in the activity panel
* Refactor based on review suggestions
* Add JSDoc and comments and add target=_blank for header banner
* Add changefile(s) from automation for the following project(s): woocommerce, woocommerce/client/admin
* Add mechanism to promote OA install banner to a percentage of merchants (#52532)
* Add promoting to % of merchants based on WC version
* Add a marketing API to get the misc recommendation from woocommerce.com
* Update the transient expiry to 1 day
The default is 7 days.
* Add actions, reducers, resolvers, selectors for misc recommendations API
* Update logic to decide showing OA banner
* Fix linting and unit tests error
* Update code based on review suggestions
* Fix linting error
* Bump version for order attribution details template
---------
Co-authored-by: github-actions <github-actions@github.com>
* Remove experimental flags
* changelog
* Check theme is block theme
* adjust test since this setting is only visible with block themes
* Hide dark mode option if password input is disabled
* Normalize cart on load in Store API
* Remove change notices; this cannot happen with normalised API endpoints
* Add test to verify normalization works
* changelog
* Remove test for removed notices
* Fix test linting
* Check $cart_item['data'] is a product
* Migrate setup script into monorepo
* Need to include zip files of the plugins that we can install from
* Update install paths to the monorepo
* Remove zip files of plugins
* Add missing cache flush plugin
* Change setup script to download, zip and install plugins
* Fix linting error
* Resolve new linting errors
* Added a line to solve linting crimes against humanity
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
* Pass cart item data to the deprecated filter to support validation better.
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Remove shipping modal fonts
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Update ExtensionCartUpdateArgs to allow overwriting dirty data
* Set isCustomerDataDirty when updating billing/shipping addresses
* Update docs
* Add e2e test to ensure overwriting dirty state isn't possible
* Organise tests better and add check pushed data isn't overwritten
* Check if data is changing when updating shipping/billing addresses
* Check input values in test
* Add test to ensure data can still be overwritten by extensions
* Add changelog
* Fix lint errors
* Remove rogue console log
* Remove unused import
* Update plugins/woocommerce-blocks/assets/js/data/cart/reducers.ts
* Fix lint error
* Remove unneeded mdlint ignore
* Update test to select a value instead of fill
* Add methods to get/set dirty customer data in local storage
* Push all customer data, not just dirty fields
* Update e2e test
* Update push changes unit test
* Update keys in mock expected arg
* Align localstorage key name with Gutenberg uppercase style
* Fix lost code after merge conflict
* Remove unnecessary metadata set in reducer
* Reimplement TS changes
* Debounce writing to localStorage
* Only update localStorage if billing/shipping changed
* Remove localStorage key when checkout is complete
* Remove unused import
* Remove clear button when setting is disabled
* Add clear button when setting is enabled
* Move logic to a React hook
* Fix error preventing clear button from being inserted after full page reload
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Add e2e test
* Fix ancestor
* Fix clear button settings for the Status filter
* Move hook to the root Product Filters folder
* refactor: divide the logic into multiple functions
* refactor: move util functions to their own files
* feat: add clear button hook to all individual filters
* test: add e2e test to the Product Filter Price block
* fix: block being created with the wrong default attributes
* fix: eslint errors
---------
Co-authored-by: github-actions <github-actions@github.com>
* Introducing order status constants
* Replacing static calls
* Additional comment blocks
* Updating PHP docs
* Updating PHP docs
* Add changefile(s) from automation for the following project(s): woocommerce
* Fix lint issues
* Fix lint issues
* Fix lint issues
* Removing unnecessary order statuses group constants + more documentation
* Including the 'new' status (legacy)
* Merge branch 'dev/introducing-order-status-constants' of https://github.com/woocommerce/woocommerce into dev/introducing-order-status-constants
* Moving statuses to a new enum class
* Fix CS issues
* Fix lint issues
* Minor doc improvement
* Changing namespace to make it less granular
* Adding missing documentation for existing filters
* Update plugins/woocommerce/src/Enums/OrderStatus.php
Co-authored-by: Barry Hughes <3594411+barryhughes@users.noreply.github.com>
* Update plugins/woocommerce/includes/class-wc-order.php
Co-authored-by: Barry Hughes <3594411+barryhughes@users.noreply.github.com>
* Update plugins/woocommerce/src/Enums/OrderStatus.php
Co-authored-by: Barry Hughes <3594411+barryhughes@users.noreply.github.com>
* Making the order status class final
* Adding missing filter comments
* Moving conditional filter back to if statement
* Merge branch 'dev/introducing-order-status-constants' of https://github.com/woocommerce/woocommerce into dev/introducing-order-status-constants
* Adding 'since' annotation to fix lint errors
* Adding 'since' annotation to fix lint errors
* Introducing order legacy status constants
* Removing unnecessary status
* Add changefile(s) from automation for the following project(s): woocommerce
* Renaming legacy status class to internal status
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Barry Hughes <3594411+barryhughes@users.noreply.github.com>
Co-authored-by: Vladimir Reznichenko <kalessil@gmail.com>
* Add To Cart With Options - Stepper layout: implement feature under feature flag
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce, woocommerce/client/admin
* fix E2E tests
* fix E2E test
* fix E2E test
* use setFeatureFlag across e2e test suite
* use the right feature flag
---------
Co-authored-by: github-actions <github-actions@github.com>