-
Notifications
You must be signed in to change notification settings - Fork 219
Load Interactivity API in bootstrap.php
#10657
Conversation
The release ZIP for this PR is accessible via:
Script Dependencies ReportThere is no changed script dependency between this branch and trunk. This comment was automatically generated by the TypeScript Errors Report
🎉 🎉 This PR does not introduce new TS errors. |
Size Change: 0 B Total Size: 1.42 MB ℹ️ View Unchanged
|
04e953f
to
eff5e29
Compare
src/Domain/Bootstrap.php
Outdated
); | ||
|
||
if ( $is_enabled ) { | ||
require_once '../Interactivity/load.php'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was able to make it work after following change:
require_once '../Interactivity/load.php'; | |
require_once __DIR__ . '/../Interactivity/load.php'; |
src/Domain/Bootstrap.php
Outdated
$this->load_interactivity_api(); | ||
add_filter( | ||
'woocommerce_blocks_enable_interactivity_api', | ||
array( $this, 'has_wp_html_tag_processor' ), | ||
999 | ||
); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this filter should be added before $this->load_interactivity_api();
. What do you think?
$this->load_interactivity_api(); | |
add_filter( | |
'woocommerce_blocks_enable_interactivity_api', | |
array( $this, 'has_wp_html_tag_processor' ), | |
999 | |
); | |
add_filter( | |
'woocommerce_blocks_enable_interactivity_api', | |
array( $this, 'has_wp_html_tag_processor' ), | |
999 | |
); | |
$this->load_interactivity_api(); |
src/Domain/Bootstrap.php
Outdated
* Load and set up the Interactivity API if enabled. | ||
*/ | ||
protected function load_interactivity_api() { | ||
// phpcs:ignore WooCommerce.Commenting.CommentHooks.MissingHookComment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
// phpcs:ignore WooCommerce.Commenting.CommentHooks.MissingHookComment | |
// phpcs:ignore WooCommerce.Commenting.CommentHooks.MissingHookComment |
5a8cb99
to
c49dc27
Compare
bootstrap.php
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hello @gigitux,
I've thoroughly tested the modifications and confirmed that they address both of the issues. Thank you immensely for your efforts on this. 🚀 🙌🏻
src/Domain/Bootstrap.php
Outdated
*/ | ||
public function has_wp_html_tag_processor( $enabled ) { | ||
return $enabled && class_exists( 'WP_HTML_Tag_Processor' ); | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like we can remove this blank line.
Also, I believe it's important for us to carefully consider why we are loading the interactivity API conditionally. This is crucial because without the interactivity API, the user interface could potentially break. |
Great point! |
We decided to remove this logic given that WooCommerce Core has L1 support policy. |
* load Interactivity API in Bootstrap.php file * fix comment * update visibility function * remove blank line * remove comment * remove logic to not load Interactivity API
* Load Interactivity API in `bootstrap.php` (#10657) * load Interactivity API in Bootstrap.php file * fix comment * update visibility function * remove blank line * remove comment * remove logic to not load Interactivity API * Empty commit for release pull request * Add readme file * Update testing instructions * Change versions * Update zip * Update 1092.md * Update 1092.md * Make View Cart link displayed below the Add to Cart button (#10675) * Update testing instructions * Update testing notes * Fix: Made migration migrate block templates in the current theme (#10641) * Fix: Made migration migrate block templates in the current theme * Update src/BlockTemplatesController.php Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com> * Move migration and status codes to BlockTemplateMigrationUtils --------- Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com> * Fix: sync_endpoint_with_page should use a matching slug if it exists instead of creating a new page (#10640) * Fix/10530 Inconsistent new install behaviour for templates when using block themes (#10608) * Skipped requests regarding WP/WC setup, to avoid issues with the pages not existing yet when migrating page content to templates. * Skipped requests regarding WP-CLI to avoid issues with the pages not existing yet when migrating page content to templates. * Added check for woocommerce_db_version option * Add check for occurred migration to skip template injection * corrected if clause * Update src/BlockTemplatesController.php Co-authored-by: Mike Jolley <mike.jolley@me.com> * Added maintenance mode to migration exception. Added trace value to has_migrated options * Merge with new migration logic. * Set correct post terms for wp_template content * updated comment --------- Co-authored-by: Mike Jolley <mike.jolley@me.com> * Update ZIP file * Update testing notes * Update testing notes * Update testing notes * Update testing notes * Update woocommerce.zip file * Revert "Fix: sync_endpoint_with_page should use a matching slug if it exists instead of creating a new page (#10640)" This reverts commit c68583b. * Update testing notes * Update ZIP file * Update changelog --------- Co-authored-by: Luigi Teschio <gigitux@gmail.com> Co-authored-by: github-actions <github-actions@github.com> Co-authored-by: Manish Menaria <the.manish.menaria@gmail.com> Co-authored-by: Karol Manijak <20098064+kmanijak@users.noreply.github.com> Co-authored-by: Niels Lange <info@nielslange.de> Co-authored-by: Mike Jolley <mike.jolley@me.com> Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com>
* Empty commit for release pull request * Fix "On sale" badge class (#10634) * Fix "On sale" badge class for shop * Add class to sale badge * Remove client side navigation from Products beta block (#10636) * Remove client side navigation from Products beta block Changes: - Removed the `add_navigation_id_directive` method and its associated filter. This method previously added a `data-wc-navigation-id` attribute to the query block for client-side navigation, which is no longer required. - Removed the `add_navigation_link_directives` method and its associated filter. This method previously added interactive directives to pagination links inside the Query Pagination block. This specific functionality has been removed as it is no longer needed. - Introduced a new method `mark_block_as_interactive`, which is designed to mark the Product Query as an interactive region so that interactive elements can work inside it. This is achieved using the 'data-wc-interactive' attribute. * add data-wc-interactive to product button block * Remove unnecessary code As we have added `data-wc-interactive` on Product button therefore we don't need to add it in Product Query block. * Boolean attribute doesn't need explicit value equal to true * Skip failing i18n-related E2E tests * Skip failing i18n-related E2E test --------- Co-authored-by: Luigi <gigitux@gmail.com> Co-authored-by: Niels Lange <info@nielslange.de> * Update WooCommerce Blocks brand assets (#10622) * Update testing instructions * Update changelog * Fix version number of testing instructions * Update testing notes * Update testing ZIP file * Update version number * Empty commit for release pull request * Load Interactivity API in `bootstrap.php` (#10657) * load Interactivity API in Bootstrap.php file * fix comment * update visibility function * remove blank line * remove comment * remove logic to not load Interactivity API * Empty commit for release pull request * Add readme file * Update testing instructions * Change versions * Update zip * Update 1092.md * Update 1092.md * Make View Cart link displayed below the Add to Cart button (#10675) * Update testing instructions * Update testing notes * Fix: Made migration migrate block templates in the current theme (#10641) * Fix: Made migration migrate block templates in the current theme * Update src/BlockTemplatesController.php Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com> * Move migration and status codes to BlockTemplateMigrationUtils --------- Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com> * Fix: sync_endpoint_with_page should use a matching slug if it exists instead of creating a new page (#10640) * Fix/10530 Inconsistent new install behaviour for templates when using block themes (#10608) * Skipped requests regarding WP/WC setup, to avoid issues with the pages not existing yet when migrating page content to templates. * Skipped requests regarding WP-CLI to avoid issues with the pages not existing yet when migrating page content to templates. * Added check for woocommerce_db_version option * Add check for occurred migration to skip template injection * corrected if clause * Update src/BlockTemplatesController.php Co-authored-by: Mike Jolley <mike.jolley@me.com> * Added maintenance mode to migration exception. Added trace value to has_migrated options * Merge with new migration logic. * Set correct post terms for wp_template content * updated comment --------- Co-authored-by: Mike Jolley <mike.jolley@me.com> * Update ZIP file * Update testing notes * Update testing notes * Update testing notes * Update testing notes * Update woocommerce.zip file * Revert "Fix: sync_endpoint_with_page should use a matching slug if it exists instead of creating a new page (#10640)" This reverts commit c68583b. * Update testing notes * Update ZIP file * Update changelog * Empty commit for release pull request * Add changelog to readme.txt * Update plugin version in several files * Revert dequeue add-to-cart-variation script which is needed to properly handle variable products in single product page (#10723) * Add the testing notes for 10.9.3 * Update 1093.md * Fix md lint error --------- Co-authored-by: github-actions <github-actions@github.com> Co-authored-by: Alba Rincón <albarin@users.noreply.github.com> Co-authored-by: Manish Menaria <the.manish.menaria@gmail.com> Co-authored-by: Luigi <gigitux@gmail.com> Co-authored-by: Niels Lange <info@nielslange.de> Co-authored-by: Tom Cafferkey <tjcafferkey@gmail.com> Co-authored-by: Karol Manijak <20098064+kmanijak@users.noreply.github.com> Co-authored-by: Mike Jolley <mike.jolley@me.com> Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com> Co-authored-by: Alexandre Lara <allexandrelara@gmail.com>
What
Fixes #10661 #10662
Why
woocommerce-gutenberg-products-block.php
is loaded only when WooCommerce Blocks is loaded as feature plugin.This means when the WooCommerce Blocks is included into WooCommerce Core, the Interactivity API aren't loaded. This causes a runtime error:
.
This PR refactors how the Interactivity API are loaded.
Testing Instructions
Please consider any edge cases this change may have, and also other areas of the product this may impact.
/shop
page and ensure that the Product Button works as expected.Screenshots or screencast
WooCommerce Visibility
Required:
Checklist
Required:
[type]
label or a[skip-changelog]
label.Conditional:
[skip-changelog]
label is not present).Changelog