The json_encode function encodes multibyte characters literally by
default, which makes them unreadable in the log files. This change
ensures those characters remain intact, rather than encoded. It also
adds better handling for characters that get escaped with slashes.
Fixes#44743
* Fix flaky assembler homepage test
* Add changelog
* Increase waiting time for the assembler loading
* Remove beforeEach and add function to all tests
* Hide Products (Beta) from inserter
* Add changelog
* Update E2E test replacing Products with Product Collection block
* Add step to choose collection in E2E test
* Change fill PW method to pressSequentially so the inserter shows blocks
* Update changelog entry
* Replace Products (Beta) with Product Collection block in blockified template
* Add necessary attributes that influences the look of blocks
* Replace Products (Beta) with Product Collection block in product search results
* Replace Products (Beta) with Product Collection block in products by attribute
* Replace Products (Beta) with Product Collection block in products by category
* Replace Products (Beta) with Product Collection block in products by tag
* Replace Products (Beta) with Product Collection when transforming from classic product archive
* Change the no results content in blockified search results template
* Replace Products (Beta) with Product Collection block in product search results
* Add product search in no results content of blockified product search result
* Add ts-ignore before createBlocksFromInnerBlocksTemplate imports
* Add changelog
* Remove step of replacing Products (Beta) with Product Collection in compatibility layer tests
* Remove step of replacing Products (Beta) with Product Collection in Product Collection tests
* Fix lint
* Update E2E tests of Product Collection
* Adjust Products (Beta) E2E tests
* Add Product Collection focus step in E2E tests
* Improve the way PC block is focused
* Further tests adjustments and new tests comparing classic template with Product Collection
* Bring back the click on body
* Include tips from reviewer
* Enter edit mode, step that I accidentally removde
* Bring the E2E test flow with updating product catalog
* Change the way of removing focus from PC block in tests
* Fix lint
* Improve the layout of search in No Results
* Use previous patterns in Product Search No Results to preserve translations
* Add Search button label in product search form pattern
* Fix lint
* Improve comment explanation
* Extract No Results content to separate pattern in order to make the content translatable
* Lint fix
* Add missing footer to the blockified Products by Tag template
* Exclude woocommerce/patterns from phpcs rules that dont apply there
* Make PC block responsive by default in product archive templates
* Fix typo
* Fix typo
---------
Co-authored-by: Manish Menaria <the.manish.menaria@gmail.com>
* Small refactoring
* Override the CTA text and behaviour in gateway settings for the WooPayments plugin
* Address lint issues
* Add changelog
* Fix bug introduced during refactoring
* Fix lint error
---------
Co-authored-by: oaratovskyi <oleksandr.aratovskyi@automattic.com>
* CYS: fix css header
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* CYS: hide popover when the mouse pointer leaves the site preview and then back
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Jon Lane <jon.lane@automattic.com>
Co-authored-by: Bart Kalisz <bartlomiej.kalisz@gmail.com>
Co-authored-by: Adrian Moldovan <3854374+adimoldovan@users.noreply.github.com>
Coupon metadata keys `product_ids` and `excluded_product_ids` are stored by WooCommerce as a comma-saparated list of values, but apparently some plugins mistakenly re-store these as serialized arrays. This pull request changes the database metadata read code so that it supports both comma-separated lists and serialized arrays.
Fixes#40569
Log messages can be modified via the `woocommerce_logger_log_message`
filter hook on a per-handler basis, but if the message is modified for
the first handler, the subsequent handlers were receiving the modified
message instead of the original. This simply ensures each handler
receives the original message instead.
Fixes#47126
* Use DOM API to create Order Attribution inputs
* Add changelog entry
* Delete unnecessary changelog
---------
Co-authored-by: Tomek Wytrębowicz <tomalecpub@gmail.com>
* Update useLaunchYourStore hook to accept enabled parameter and only enable it in homescreen
* Add changelog
* Fix type
* Change isHomescreen function to variable
* Add the ProductAttributesLookup\CLIRunner class
* Fix the restoring of the lookup table usage option
* Improve the progress bar of the regeneration command
* Add changelog file
* Fix existing unit tests
* Add linter exception for TODO comment
* Fix example in CLI runner
* Fix: get_lookup_table_info was returning data as strings.
* Show count of lookup table rows after the "regenerate" command finishes.
* Improve error message
* Fix the report name sent to woocommerce-test-reports workflow
* Add test type
* Test change
* Remove test type
* Merge artifacts to keep allure-results
* Overwrite artifacts if one already exists with the same name
* Test changes to trigger tests
* Fix allure-results and .state paths
* Filter tests for faster feedback
* Debug artifacts content
* Use name instead of pattern
* Use name instead of pattern
* Don't use an intermediate path
* Use artifact name and path instead of only pattern
* Use artifact name and path instead of only pattern
* Use artifact name and path instead of only pattern
* Remove testMatch filter to run all tests
* Revert test change
* Add changelog
* Add template ID for variations
* Add changefile(s) from automation for the following project(s): woocommerce
* Update 48325-fix-prepare-variation-boejct
* Add changefile(s) from automation for the following project(s): woocommerce
* Update 48325-fix-prepare-variation-boejct
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add tests for ProductPage
* Add tests for ProductVariationPage
* Add test for product_tab_click event
* Add test for product_editor_feedback_bar_turnoff_editor_click event
* Add test for product_dropdown_option_click event
* Add test for product_add_view track
* Changelogs
* Changelog
* Lint
* Add product_edit_view test and falsey test
* Fix test name
* Ensure onsubmit event that triggers ajax save on tax table is bind to the correct button
Unblock the button busy state after saving
* Add changefile(s) from automation for the following project(s): woocommerce
* Update changelog
* Update changelog entry
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: André Kallehauge <3846700+kallehauge@users.noreply.github.com>
* Add (Experimental) suffix to experimental blocks
* Add comments reminding to update feature flags doc
* Update feature flag doc
* Add changelog
* Provide links to all feature flags
* Add JS flag for Product Filter: Rating (Experimental)
* Bring back linting in PHP file
* Update block references
* Update variation names
* Update tests
* Update test
* Add notification that block is not available in inserter to block references doc
* Add missing feature flag
* Remove information about block not being exposed in inserter from block references
* Update block references
* Add a step to install patterns when during the CYS flow
* Add changefile(s) from automation for the following project(s): woocommerce
* Add feature flag to the install patterns function
* Fix changelog
---------
Co-authored-by: github-actions <github-actions@github.com>
* Select the next block after deleting one
* Add changefile(s) from automation for the following project(s): woocommerce
* Fix lint error
* Check if next block client is defined
---------
Co-authored-by: github-actions <github-actions@github.com>
* Remove template matching from front-end
* Create 'woocommerce_rest_get_product' filter to allow extensions to change the product when it's fetched through the REST API
* Stop defaulting to 'standard-product-template' product template and handle defaults only in getLayoutTemplateId function
* Use created hook to determine and persist the product template ID when it's not defined.
Also introduce 'match_fn' in ProductTemplate to allow extensions to provide robust ways of matching the template
* Add changelog
* Fix tests
* Remove outdated tests
* Fix issue in filter because $product can be false and move API change to v3
* Add comments to continue statements
* Small refactor
* Only send layout template id to useLayoutTemplate after product is loaded
* Revert front-end changes
* Remove match_fn and create filter to allow extensions to determine the product template id
* Avoid loading layout template before product is loaded
* Create woocommerce_product_editor_determine_product_template filter and use it
* Update changelogs and remove unused code
* Remove _product_template_id for products that were created with the new product editor.
* Use only id to find productTemplate
* Turn hook into experimental
* Remove deprecated tests
* Rename filter
* Add more typings to useEntityRecord
* Use hasResolved boolean to check whether product has been resolved
* Add changelog
* Add 'variation' to ProductType
* Don't default to the standard-product-template for variations
* Update changelog
* Accept null in getLayoutTemplateId
* Fix edit variable product test
* Rename hook
* Revert changed logic to avoid regressions
* Increment useProductTemplate logic
* Default to standard-product-template instead of undefined when no matches
* Re-import Features class
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
* Ensure attribute slugs are properly sanitized when setting
* Update approach to avoid breaking functionality in WP Admin UI
* Add changelog file
* Add unit test
* Prevent ProductGallery block from being registered on the post or page editor
* Add product gallery to widget blacklist
* Add changefile(s) from automation for the following project(s): woocommerce
* Update changelog
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* introduce super super base product form template
* introduce ProductFormsController controller
* initialize PFT (product form template)
* changelog
* do not use clas prop to store controller
* show temporarely the Product Form CPT in the UI
* migrate also when plugin is installed
* eslinting
* minor code refactoring
* check $hook_extra param is defined
* introduce $product_form_templates private prop
* eslinting
* bump simple template version
* rename class method
* pick the action when plugin action
* CYS Patters: exclude testimonial patterns using jetpack
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix crash when currentTemplate is null
* Redirect to the proper section after installing fonts or patterns
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Simplify the list of blocks to test and order them alphabetically
* Add missing blocks in test checking if they can be inserted
* Remove Coming Soon that's not available yet
* Add changelog
* Improve specificity of the Reviews by Product test
* Get better selector for Reviews by Product placeholder
* Exclude Product Gallery (Beta) - not intended to be used in post
* Fix alphabetical order
* Add error class to checkout endpoint response
* Check if previous exist before using it
* Remove assigned empty array to the additional data
* Create initial additional data state
* Fix exception not escaped linting error
* Get Exception class when WP_DEBUG is defined and true
* Add hook docblock comment
* Add phpcs disable missing since comment
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add unit test for pageview on non-embedded layout component
* Add tracks test for payments welcome page
* Add test for task completion track
* Update completion track to use get_json instead for more accurate coverage
* Changelog
* Lint
* Add test for tasklist item click
* Change test name
* Revert "Disable Launch Your Store feature flag in 9.0 (#48231)"
This reverts commit 76d2b205e5.
* Re-add the previous changelog
* Update version number in db update
* Add changelog
* Hide rating stars and counter from the inserter
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix minicart icon cursor on hover in site navbar
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* CYS: Fix Loading Screen E2E flaky test
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* CYS: Fix crash homepage
* Add changefile(s) from automation for the following project(s): woocommerce
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* CYS: Show popover when the user clicks on the pattern
* Add changefile(s) from automation for the following project(s): woocommerce
* fix errors
* add documentation
* fix calculation
* improve performance
* remove not necessary else branch
* restore pnpm-lock
* improve function naming
* fix label
* improve logic
* remove dispatch
* remove console.log
* fix setLogoBlockIds
* CYS - BlockToolbar: Add Delete button
* fix import
* no show toolbar
* fix build
* not allow click on no blocks placeholder
* Add changefile(s) from automation for the following project(s): woocommerce
* remove not necessary comment
---------
Co-authored-by: github-actions <github-actions@github.com>
* Accept return_url only when do_update_woocommerce exist
* Add changefile(s) from automation for the following project(s): woocommerce
* Update 48163-fix-db-update-redirect-issue
* Add changefile(s) from automation for the following project(s): woocommerce
* Update plugins/woocommerce/changelog/48163-fix-db-update-redirect-issue
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* fetch notice from woocom for connected store
* show payment mehtod notice on setting page
* Combine missing payment method and expiring notice
* Shorter TTL for notices transient
---------
Co-authored-by: Akeda Bagus <akeda.bagus@automattic.com>
* Deprecate pr-smoke-test.yml
* Add configs for each environment
* Add scripts
* Add arguments to playwright command
* Update pnpm scripts and existing e2e projects
* Fix shellcheck warning
* Update test env start for Gutenberg stable run
* Add changelog
* Remove unused var
* Set the USE_WP_ENV var
* Configure daily e2e jobs
* Rename some steps
* Add release checks jobs and deprecate smoke-test-release.yml
* Deprecate smoke-test-release.yml
* Add tests-release-checks.yml to trigger ci.yml on push to tags
* Add the pull_request trigger to test the workflow
* Remove the pull_request trigger to test the workflow
* Add the pull_request trigger to test the workflow
* Add the tag input in ci.yml
* Remove import and use core reference
* Only build if build-plugin is true
* Use release-artifact instead
* Split setup-monorepo step
* Use tag: 'nightly' to test
* Use inputs.tag directly in the wp-env setup step
* Add script to override the wp-env config
* Run the env config script in ci
* Set the artifact name
* Fix workflow syntax
* Add changelog
* Validate RELEASE_TAG and ARTIFACT_NAME
* Use real ref type and name
* Use real ref type and name
* Use real ref type and name
* Use github context instead
* Test with 9.0.0-beta.2
* Add push to tags trigger directly in ci.yml
* Configure one job to run with nightly-checks
* Remove empty lines
* Format events array one element per line
* Format events array one element per line
* Change the modal condition to check if the theme is a block theme
* Only switch to TT4 if the theme is not a block theme
* Remove unnecessary code
* Add new Intro cards when the theme is customized
* Redirect to the customizer if the active theme is a classic one
* Update the "Start designing" link depending on the type of theme
* Fix lint errors
* Fix more lint errors
* Fix tests
* Remove only
* Add tests for the customize button
* Update copy
* Fix lint errors
* Try to fix tests
* Fix tests
* Add changefile(s) from automation for the following project(s): woocommerce
* Remove commented out css code
* Fix tests
* Remove unused
* Add margin to the cards
* Change active theme has mods by customize task completed
* Add events to the new intro page
* Fix color palette tests
* Remove unused 'fetchActiveThemeHasMods' function
This fixes the "select( 'core' ).getCurrentThemeGlobalStylesRevisions() is deprecated since version 6.5.0" warning
* Revert allowing any block theme in the assembler
* Prevent other block themes to go to the assembler
* Fix linting errors, restore test
* Remove only from test
Co-authored-by: Luigi Teschio <gigitux@gmail.com>
* Fix lint error
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Luigi Teschio <gigitux@gmail.com>
* Add flaky test reporting and issue creation for Blocks
This commit introduces the functionality for identifying and reporting flaky tests within our CI workflow.
- The reporter captures flaky test results and saves them to `flaky-tests` directory.
- If a test fails initially but passes upon retries, it is marked as flaky and a corresponding report is generated.
- The workflow creates GitHub issues for flaky tests, aiding in better visibility and tracking of these intermittent issues.
1. **Workflow Changes**:
- **Archive flaky test reports**: Adds a step to archive flaky test reports generated during the test runs.
- **Merge flaky test reports**: Introduces a new step to merge all flaky test reports from different shards.
- **Create GitHub issues for flaky tests**: Implements a job that uses the `@wordpress/report-flaky-tests` package to create GitHub issues for detected flaky tests when a PR is not in draft state and flaky test reports are present.
2. **New Flaky Test Reporter**:
- Adds `flaky-tests-reporter.ts` that defines a custom Playwright reporter for identifying and recording flaky tests.
3. **Playwright Configuration**:
- Updates `playwright.config.ts` to include the new flaky tests reporter in the list of reporters when running in CI.
4. **Demo Tests**:
- Adds `demo.spec.ts` containing sample tests to validate the flaky test reporting functionality.
Implementing this feature will help us track and address flaky tests more efficiently, ensuring more stable and reliable test suites.
* Remove draft condition for testing
* 'Merge failures artifacts' job shouldn't touch flaky test artifacts
* Try fixing if condition
* Add required permissions
* Let's try providing all the permissions
* Let's try providing all the permissions
* Create flaky tests issues when PR is merged with trunk
* Update if condition
* Run action for specific paths only
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Remove Demo file
* Remove Demo file
* Use commit hash to use exact version of the script
* Replace label with team: Kirigami & Origami
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add the `Want more patterns` opt in message when tracking is not allowed
* Add notice for offline user
* Add new internal endpoint to fetch patterns
* Introduce a new step in the state machine to synchronously fetch patterns in the flow
* Remove unnecessary initialization
* Add new endpoint to check the patterns PTK availability
* Add `isPTKPatternsAPIAvailable` to context
* Add patterns opt in tracking message to homepage section
* Add tests
* Fix linting errors
* Add changefile(s) from automation for the following project(s): woocommerce
* Fix typo
---------
Co-authored-by: github-actions <github-actions@github.com>
* Check watchedEvent is part of the allowed eventTypes
* Add changefile(s) from automation for the following project(s): woocommerce
* Trigger custom event
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add 'template_name' labels to Product post type and Product Category and Product Tag taxonomies
* Add changelog file
* Remove Single Product template name
* CYS: Ensure that toolbar appears only when the homepage sidebar is open
* Add changefile(s) from automation for the following project(s): woocommerce
* CYS: Ensure that toolbar appears only when the homepage sidebar is open
* use usequery hook instead of navigation API
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix WCPay incentive allowed promo notes logic
The WCPay promo notes need to be added to the allowed
list regardless if WCPay is installed and active.
We will respect marketplace suggestions and promo
dismissal settings.
* Added changelog entry
* Deprecate pr-smoke-test.yml
* Add configs for each environment
* Add scripts
* Add arguments to playwright command
* Update pnpm scripts and existing e2e projects
* Fix shellcheck warning
* Update test env start for Gutenberg stable run
* Add changelog
* Remove unused var
* Set the USE_WP_ENV var
* Configure daily e2e jobs
* Rename some steps
* Hide individual filter blocks from the inserter
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Adjust E2E tests to check for hidden filters
* Fix file conflict
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: roykho <roykho77@gmail.com>
Previously, we registered block categories on the client-side, leading to them not
being available until client initialization. This meant, for example, that hooking
external blocks to our categories would result in a warning.
With this change, we register the categories server-side, and only update them
on the client-side to attach the SVG icon. This is the recommended approach
in the Gutenberg docs, to make sure we use the SVG primitive, which affords some
accessibility features.
* Add a higher priority z-index to coming soon banner
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Adjust border and box-shadow color for textual inputs
* WIP: Style checkboxes
* Vertically center checkmark
* Adjust focus outline width
* Adjust selected checkbox background in light mode
* Adjust background color of selected radio button
* Add chevron icon to dropdown fields
* Add changelog
* Fix CSS lint issues
* Adjust outline width
* Revert checkbox styles
* Adjust input field height and label size
* Revert box-shadow styles
* Add spacing between coupon title and coupon code
* Simplify onFocus and onBlur
* Fix outline width when focusing combobox
* Ensure chevron points down after selecting value
* Adjust outline color of focused delivery option
* POC: Use currentColor for focus states
* Revert "Add phone number to my account shipping address. (#47062)"
This reverts commit 4840af874a.
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Use correct AND expression
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add To Cart Form: Improve the default style and add the Stepper style
* fix height button when no variation is selected
* not allow the user to set 0 as value of the input
* format css
* fix padding
* format css
* fix CSS
* unset margin to align with the button
* Fix coming soon footer banner doesn't display properly on tablet and mobile
* Add changelog
* Fix test
* Revert button text change
* Revert test change
* Increase the length of Product Summary block (core/post-excerpt variation)
* Add changelog
* Bring back the Product Summary variation to original length
* Increase the Product Summary length to max 100 words in Single Product template and block
* Increase the Product Summary length to max 100 words in Single Product block
* Update tests
* Change the attribute type froms tring to niumber as expected
* Replace classnames with clsx within woocommerce-blocks.
* Undo unnecessary change to getClassnames const.
* Replace classnames with clsx within woocommerce-admin.
* Add changelog.
* Update the pnpm lock file
* Address lint.
* Address lint errors for the block-library.
* show notice on WC core about subs expired
* add notice in wc core my subscription page
* dismiss subscription notice
* add rest api for dismiss subscription notioce
* dismiss notice permanently
* code refactor
* fix issue in expired subs
* not showing expiring subs notice if expired sub notice render
not showing expiring subs notice if expired sub notice render
* fix lint
* added changelog
* update comment
* fix js lint
* update response
* added new endpoint for notice
* update the endpoint URL
* update the endpoint URL
* show notice after one month
* add css class for refactor
* fix lint
* Add missing callback after the merge
* check plugin is installed on current site
* add comments, and fix missing price
* fix lint
* remove unnecessary duplicate asset load
* fix notice so that it only trigger dismiss API on notices close
* localize the renew product price
* track events in the wc settings page
* Use the correct field product_regular_price instead of product_price
* Add missing period in the notice message
* add nonce to the dismiss notice API
* extract dismiss notice API call to different code
* extract expired and expiring component to 1 component
* add track events for tsx components
* fix nonce checking
* fix lint
* fix lint
* enrich the button and hyperlink url to contains the product_id of expiring / expired subscription
* fix lint
* fix lint
---------
Co-authored-by: Akeda Bagus <akeda.bagus@automattic.com>
Co-authored-by: prahesa.setia <prahesa.kusuma.setia@automattic.com>
* Add woopayments/test-orders-count endpoint
* Load test order count
* Call deleteTestOrders
* Remove test code
* Use wc_get_orders to retrive test orders
* Add changefile(s) from automation for the following project(s): woocommerce
* typecast deleteTestOrders
* Type removeTestOrders input
* Remove woopayment activation check -- do not need as we are using wc_get_orders
* Add tests for test order count and delete endpoints
* Delete test class
* Add tests for test order count and delete endpoints
* Lint fixes
* Lint fixes
* Lint fixes
* Remove unused import
* Fix timing issue with counting test orders
* Add hasWooPayments guard
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: rjchow <me@rjchow.com>
* Fix the issue
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Add E2E test to cover this regression
* Fix: On sale collection should be visible after refresh in Post
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add zoom functionatility to Single Product gallery images when main Product Image is missing
* Alternative approach
* Add changelog file
* Still add placeholder class for extra backwards compatibility
* Bump template version
* Remove unnecessary class name change
* Fix wrong type
* Fix PluginInstaller::install_plugin_core so it works on Windows
* Wrap the autoinstall of the Legacy REST API plugin in try-catch block
and log any exception thrown
* Make sure that the wc_installing transient is deleted even if install fails
* Temp commit
* Clean up unused codes and streamline logic
* More cleanups and add comment
* Better naming and fix logic
* Rename and comment
* Changelog
* Changelog
* Lint
* Moved leap year utils to date package, added tests
* Moved functions to utils, add tests
* Add more test
* Fix changelog
* Clean up the cache when a coupon is updated
When the coupon’s status transitions from publish to future, the ‘coupon_id_from_code’ cache entry needs to be deleted otherwise the coupon will remain available for use.
* Remove coupon cache entries when not published
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: Toby Herbert <tobyherbert@nialtoservices.co.uk>
Co-authored-by: github-actions <github-actions@github.com>
* Add status-completed endpoint
* Use new status-completed endpoint
* Add changefile(s) from automation for the following project(s): woocommerce
* Revert back unwanted changes
* Cache /wc-admin/launch-your-store/survey-completed call
---------
Co-authored-by: github-actions <github-actions@github.com>
* Only init WC Site Tracking if in admin or a rest request
* Add changelog
* Refactor tracks logic
* Create helper function store store api requests and make use of this
* Move conditionals back to woocommerce class
* Remove use of is_rest_api_request within is_store_api_request
* Fix lint errors
* Add check to see if WC_Tracks exist
* Also include tracking in CLI
* Make use of wc_admin_record_tracks_event instead of WC_Tracks directly
* Add `woocommerce_order_note_deleted` hook for a successful order note delete
* Update plugins/woocommerce/includes/wc-order-functions.php
Co-authored-by: Jorge A. Torres <jorge@0xbad.com>
* Include `order_id` in order note object
* Introduce `woocommerce_order_note_deleted` hook
* Appease linter
* Adjust unit test
* Add changelog
---------
Co-authored-by: EVOKE <evoke.lektrique@gmail.com>
* Fix issue where Product Collection wasn't showing anything
- Moved queryId logic to a new `useQueryId` custom hook to encapsulate the logic.
- Simplified attribute setting in `useEffect` by using a default attributes value.
- Utilized `fastDeepEqual` to check for attribute equality
These changes fix the issue where the Product Collection block did not display properly in the template editor, ensuring consistent rendering of products.
* Add comment
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Remove leftover comment
* Add e2e tests for Product Collection block visibility after refresh
Added end-to-end tests to verify the visibility of the Product Collection block after page refresh in both Product Archive and Post contexts.
- Added tests to ensure the Product Collection block remains visible after refreshing the template or post editor.
- Updated existing tests to use `BLOCK_LABELS` for better readability and maintainability.
* Improve E2E tests
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add PatternsToolkit class to fetch patterns from PTK
* Pass the new PatternsToolkit class to the BlockPatterns constructor
* Extract the pattern registration code to the 'register_block_pattern' function
* Extract the file patterns registration to `register_block_patterns_from_files`
* Registers patterns from ptk
* Add ids of excluded patterns (because they have jetpack deps)
* Add PTK client tests
* Filter out patterns with post_type diff than "wp_block"
* Add missing excluded pattern
* Add error log and improve error messages from the PTK client
* Extract function to register patterns to PatternRegistry class
* Extract function to register patterns from PTK
* Rename PatternsToolkitClient to PTKClient
* Extract AI related code to the AIPatterns class
* Rename test to match class name
* Add missing package dep in BlockPatterns
* Cache and register PTK patterns
* Add feature flag
* Fix linting errors
* Add tests for the PatternRegistry
* Add tests for the PTKPatternsStore
* Add changefile(s) from automation for the following project(s): woocommerce
* Check pattern ID exists to filter
* Check title is set when registering the pattern
* Remove unnecessary code from test
* Add more patterns to the excluded list
* Add actions to reset the patterns transient on plugin deactivation and tracking option updates
* Schedule fetching pattern async when updating or activating the plugin and on allowing tracking
* Fetch patterns always async
* Add changefile(s) from automation for the following project(s): woocommerce
* Only schedule the fetch_patterns actions if it's not pending
* Add changefile(s) from automation for the following project(s): woocommerce
* Remove unnecessary import
* Fix tests
* Return empty array instead of error
* Fix imports and comments
* Remove unused function
* Fix lint errors
* Fix log
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add changelog
* Only include default 'additional content' in e-mails when it hasn't been configured
* Remove (now) unnecessary code from new order e-mail
* Simplify logic in `get_additional_content()`
This changes the item schemas for Orders and Order Refunds API
endpoints to correctly specify that the rate_id property in a tax_line
object is an integer, not a string.
Fixes#32037
* Focus tab shows focus style
* Tabbing when inside the tabs takes you to the first focusable element inside the current tab's tab panel
* Users can press the left and right arrow keys to move between tabs
* When a tab is focused and the Home key is pressed the first tab in the list should be focused. When the End key is pressed the last tab should be focused
* Add changelog file
* Fix e2e tests
* Add changelog file
* Get last tab by index
* Fix linter errors
* Add PatternsToolkit class to fetch patterns from PTK
* Pass the new PatternsToolkit class to the BlockPatterns constructor
* Extract the pattern registration code to the 'register_block_pattern' function
* Extract the file patterns registration to `register_block_patterns_from_files`
* Registers patterns from ptk
* Add ids of excluded patterns (because they have jetpack deps)
* Add PTK client tests
* Filter out patterns with post_type diff than "wp_block"
* Add missing excluded pattern
* Add error log and improve error messages from the PTK client
* Extract function to register patterns to PatternRegistry class
* Extract function to register patterns from PTK
* Rename PatternsToolkitClient to PTKClient
* Extract AI related code to the AIPatterns class
* Rename test to match class name
* Add missing package dep in BlockPatterns
* Cache and register PTK patterns
* Add feature flag
* Fix linting errors
* Add tests for the PatternRegistry
* Add tests for the PTKPatternsStore
* Add changefile(s) from automation for the following project(s): woocommerce
* Check pattern ID exists to filter
* Check title is set when registering the pattern
* Remove unnecessary code from test
* Add more patterns to the excluded list
* Add actions to reset the patterns transient on plugin deactivation and tracking option updates
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Partially revert #45767
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Add test for description on checkout order summary block
* Add another test back in for order summary description
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Alex Florisca <alex.florisca@automattic.com>
* CYS: allow to the user to move the pattern
* add feature flag
* Add changefile(s) from automation for the following project(s): woocommerce
* CYS: Add shuffle button
* CYS - add shuffle feature
* Add changefile(s) from automation for the following project(s): woocommerce
* use WooCommerce feature flag approach
* fix lint error
* Highlight the pattern when the user hovers it
* Add changefile(s) from automation for the following project(s): woocommerce
* CYS - Assembler: improve feature flag check
* Add changefile(s) from automation for the following project(s): woocommerce
* improve logic
---------
Co-authored-by: github-actions <github-actions@github.com>
* CYS: allow to the user to move the pattern
* add feature flag
* Add changefile(s) from automation for the following project(s): woocommerce
* CYS: Add shuffle button
* CYS - add shuffle feature
* Add changefile(s) from automation for the following project(s): woocommerce
* use WooCommerce feature flag approach
* fix lint error
* Highlight the pattern when the user hovers it
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* CYS: allow to the user to move the pattern
* add feature flag
* Add changefile(s) from automation for the following project(s): woocommerce
* CYS: Add shuffle button
* CYS - add shuffle feature
* Add changefile(s) from automation for the following project(s): woocommerce
* use WooCommerce feature flag approach
* fix lint error
---------
Co-authored-by: github-actions <github-actions@github.com>
* CYS: allow to the user to move the pattern
* add feature flag
* Add changefile(s) from automation for the following project(s): woocommerce
* use WooCommerce feature flag approach
* hide scrollbar on the body
---------
Co-authored-by: github-actions <github-actions@github.com>
* Remove checkstyle.xml file
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix an issue that caused two products to be added to cart when Geolocate (with page caching support) was enabled and AJAX add to cart buttons disabled
* Add e2e test
* Add changelog file
* Move test to its own file
* Fix wrong default value in test reset
* Extend product elements sharedConfig ancestor with Product Collection and Products (Beta)
* Utilise sharedConfig ancestor in Image block
* Utilise sharedConfig ancestor in Price block
* Utilise sharedConfig ancestor in Rating block
* Utilise sharedConfig ancestor in Sale Badge block
* Utilise sharedConfig ancestor in SKU block
* Utilise sharedConfig ancestor in Stock Indicator block
* Add changelog
* Bring back original ancestors for Summary and Title blocks
* Remove Product Price from a test as it's no longer available in global context
* Lazy load the PluginArea and the ModalEditor
* Remove repeated product request when editing a specific product
* Fix linter errors
* Add changelog files
* Fix linter errors
* Refactor the block editor to remove some extra rerenders
* Defer the publish button processing
* Defer the tab content render 500ms to reduce the total blocking time
* Fix linter errors
* Fix unit test and tabs unexpected rerender
* Fix linter errors
* Reduce the defered time to 300ms
* Fix get product url when the product has been duplicated since the new copy does not have permalink
* Fix the invalid unregistration of wc-admin-more-menu in the product page
* Fix compilation errors
* Fixed shipping flat price change to free shipping when shipping cost represented using decimal separators and thousands separators
* added the changelog file
---------
Co-authored-by: Saiful Islam <anandacsebd@gmail.com>
* Deprecated WC_Cart->is_coupon_emails_allowed in favour of WC_Discounts->is_coupon_emails_allowed
* Add changefile(s) from automation for the following project(s): woocommerce
* Created new DiscountsUtil class and moved is_coupon_emails_allowed()
* Refactored tests.
* Updated internal WC_Cart::is_coupon_emails_allowed calls and added a doing it wrong warning for 3rd party tracking.
* Linting.
* Refactored and added new asserts to DiscountsUtilTest.
* Linting.
* Linting and updated test.
* Added translation to wc_doing_it_wrong() as sugested.
Co-authored-by: Barry Hughes <3594411+barryhughes@users.noreply.github.com>
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Barry Hughes <3594411+barryhughes@users.noreply.github.com>
* Fix the issue that the React-powered admin routing page added after initialization could not be displayed.
* Delay showing admin `NoMatch` to reduce the chance of flashing error message when route page is added after initialization.
* Add JS tests for the `NoMatch` page in the admin.
* Add changelog
* Fix activation limit for single license subscriptions on woocommerce.com
* Add changefile(s) from automation for the following project(s): woocommerce
* Update plugins/woocommerce/includes/admin/helper/class-wc-helper.php
Add some defensive coding.
Co-authored-by: Barry Hughes <3594411+barryhughes@users.noreply.github.com>
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Barry Hughes <3594411+barryhughes@users.noreply.github.com>
* Update coming soon banner text to use translation function
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Detect template ID from URL
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Add E2E test to check if block is displayed after revisiting Single Product template
* Fix E2E tests
* Fix E2E tests
* Fix lint error
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add condition on github.event_name for lint jobs
* Update a file to trigger a lint job
* Update condition to run only on pull_request
* Revert test change
* Always run the Slack notification step
* Add pull_request test trigger
* Update report step
* Remove branch filter
* Try with push event and branch filter
* Pass secrets to ci.yml
* Update testIgnore pattern for Gutenberg project
* Add changelog
* Remove the test push trigger
* One more test run
* Removed push test trigger
* Amend Query Pagination parent OR ancestor array and include product collection
* Rename the function and amend comment
* Add changelog
* Remove some leftovers
* Tets if it's possible to insert multiple Pagination blocks in Product Collection
* Add awaits to expects
* Update plugins/woocommerce-blocks/assets/js/blocks/product-collection/utils.tsx
Co-authored-by: Manish Menaria <the.manish.menaria@gmail.com>
* Add comment explaining the condition
---------
Co-authored-by: Manish Menaria <the.manish.menaria@gmail.com>
* only sticky summary when it's not longer than view
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* fix tests
* correctly check for height
* switch how to get top
* remove from editor
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add redirect to LYS on homescreen when lysTaskOpen is present
* Typos
* Fix lint issues
* Fix lint issues
* Add changelog
* Fix lint issues
* Fix lint issues
* Use isDashboardShown in effect
This required adding a check to ensure query is not an empty object
* Imporve the jankiness by moving catch-all logic to layout
* use an effect to set the session value to no
* lint
* lint
* Fix tests
* Try preventing redirects from WP menu click
* Revert "Try preventing redirects from WP menu click"
This reverts commit 8ef6dcf4dd.
* normalize IDs for form fields and fix types
* update docs as well
* update rest of docs
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* fix linting for document
* also align classnames
* revert to correct classname
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add workflow_call event
* Add tests-daily-run.yml
* Remove workflow version
* Update input value
* Remove secrets from caller workflow
* Rename job
* Check context
* Check context
* Check workflow_call inputs
* Override github.event_name with inputs.trigger
* Fix input name
* Add config for daily e2e tests with Gutenberg
* Update env commands for Gutenberg run
* Add disableHpos env variable in ci-utils
* Revert the trigger to push
* Revert the env variable setting in ci-jobs
* Revert the env variable setting in ci-jobs
* Rebuild utils
* Update test env start command
* Define the Gutenberg Playwright project
* Use path relative to workspace root
* Update events for test projects
* Update events for test projects
* Add changelogs
* Remove the e2e tests with Gutenberg tests from daily runs
* Set the schedule and workflow_dispatch triggers
* Add --project default flag to only run the default tests in CI
* Renamed snapshots to match the new Playwright project name
* allow focusedOnMount element to be reset
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix live branch menu not show up
* Add changefile(s) from automation for the following project(s): woocommerce-beta-tester
---------
Co-authored-by: github-actions <github-actions@github.com>
* Rename blocks to to distinguish them from new blocks
* Add changelog
* Change the naming convention to XYZ (Classic)
* Update classic templates descriptions
* Fix package.json lint error
* Add Skip button to Design With AI steps.
* Add changefile(s) from automation for the following project(s): woocommerce
* Use window.location.href to redirect instead.
* fix css linter errors
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Luigi Teschio <gigitux@gmail.com>
* Add disableHpos test env variable
* Update events for HPOS disabled tests
* Add pull_request event to test the env
* Remove the pull_request event
* Add changelog
* Make the disableHpos var a boolean
* Also set the env in ci.yml
* Remove console log statement
* Print woocommerce_custom_orders_table_enabled
* Run test setup script again to check output
* Capture env setup output and print it
* Get woocommerce_custom_orders_table_enabled value in test env script
* Get more details on HPOS setting
* Remove the DISABLE_HPOS logic from test env setup script
* Use DISABLE_HPOS instead of ENABLE_HPOS everywhere
* Turn off no-console and jest/no-standalone-expect eslint rules for api core tests
* Test API tests with HPOS disabled
* Fix eslint error
* Clean up debug statements
* Remove pull_request test trigger
* Run wc_update_900_add_launch_your_store_tour_option on WC 9.0 update
* Add changefile(s) from automation for the following project(s): woocommerce
* Use add_option
* Lint fixes
---------
Co-authored-by: github-actions <github-actions@github.com>
* Simplify final step in CYS when entering from Entrepreneur Signup.
* Add changelog.
* Update plugins/woocommerce-admin/client/customize-store/transitional/index.tsx
Co-authored-by: Ivan Ottinger <ivan.ottinger@automattic.com>
* Show My Home button as primary button only on Entrepreneur flow.
* Use 'customize_your_store_entrepreneur_home_click' tracks event instead.
---------
Co-authored-by: Ivan Ottinger <ivan.ottinger@automattic.com>
* Use the term attribute sort order for the "Filter by attribute" block
* Allow `id` and `name_num` orderby values
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Properly format order counts
* Remove superfluous tooltip
* Add "is-error" class for admin settings
* Remove unused option in DataSynchronizer
* Use non-persistent group "counts" for caching count of orders pending sync
* Drop redundant method from COT controller
* Standardize usage of <strong> in COT settings
* Drop unused import
* Allow manual sync to be stopped
* Reword messages in HPOS screen
* Make PHPCS happy
* Add changelog
* Fix unit test
* Fully deprecated DataSynchronier::get_sync_status()
* Extract translatable string to prevent duplication
* Replace the Legacy REST API with a stub that always returns an error.
If the Legacy REST API plugin is installed, it will "take over"
the stub and the API will be available again without noticeable
changes in behavior.
* Move the get_endpoint_data method to WooCommerce core
This method was part of the legacy REST API package but is actually
being used to query endpoints of the new REST API, so it actually
belongs to WooCommerce core.
It has been placed in a new src/Utilities/RestApiUtil class.
The existing src/Internal/RestApiUtil class has been renamed
ro RestApiParameterUtil to avoid confussion.
* Move the register_wp_admin_settings to WooCommerce core.
This method was part of the legacy REST API package but it's needed
for certain endpoints of the current REST API, for example
settings/general/woocommerce_specific_allowed_countries
* Adjust unit tests for the removal of the legacy REST API.
Basically, some tests no longer make sense so they are removed.
* Adjust webhooks for the removal of the legacy REST API.
If a webhook is configured to compose its payload using the
legacy REST API format, and the separate legacy REST API plugin
is not installed, an exception will be thrown. This will cause
the scheduled action that does the webhook delivery to fail.
* Add warning in the webhooks settings page.
The warning will show if the legacy REST API is not available
and there's at least one plugin that is configured to be delivered
using legacy payloads. Each hook will have an exclamation symbol
next to its name in the table.
Additionally, inside the webhook edition page the legacy payload
option will display "NOT AVAILABLE" instead of "deprecated"
when the legacy REST API is not available.
* Add support for queries containing the "wc-api" variable.
These queries will return a 400 error by default, but
"woocommerce_api_request" and "woocommerce_api_(query)" actions
are available for custom processing.
* Enable the woocommerce_api_enabled option if the Legacy API plugin
is installed and the option is disabled.
Co-authored-by: Corey McKrill <916023+coreymckrill@users.noreply.github.com>
* Mark get_woocommerce_api_url function as deprecated
* Mark $api property in WooCommerce class as deprecated
* Replace call to wc()->api->get_endpoint_data in Checkout class
Replace it with just wc()->cart, which is what the invoked
endpoint was doing in the end.
* Use get_endpoint_data to get the data from /wc/store/v1/cart
---------
Co-authored-by: Corey McKrill <916023+coreymckrill@users.noreply.github.com>
* Add type safety, update coming soon entire site changes for fonts
* Add conditional font to support TT24 and other themes
* Revert unnecessary change
* Changelog
* Lint
* Fix: Ensure Product Collection Block Respects "Hide Out of Stock Items" Setting
- Added logic to include the "Out of stock visibility" setting in the Product Collection block.
- Modified `ProductTemplateEdit` component to use the `getDefaultStockStatuses` function.
- Ensured that out-of-stock products are hidden in the Product Collection block when the "Hide out of stock items from the catalog" option is enabled.
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Remove check for logged in user on the order received page, enabling guest users with a valid link to visualize the order shipping/billing addresses.
* Add changefile(s) from automation for the following project(s): woocommerce
* Update comment
* Bumped template version
* fix linting
* ignore hook for the whole file
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Nadir Seghir <nadir.seghir@gmail.com>
* skip fields not present in schema
* remove from sanitize as well
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Make shipping total show FREE if price is 0
* Make free text uppercase in order summary
* Add test to check free/paid shipping displays as free or shows price
* Add changelog
* Update E2E test to make sure shipping is selected correctly
* Update shipping cost e2e tests
* Further fixes to e2e tests
* correctly build up the hash on windows
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>