Commit d31253581a0 for woocommerce
commit d31253581a0cd3d2eb0623b204f83fd2988d8632
Author: Albert Juhé Lluveras <contact@albertjuhe.com>
Date: Thu Apr 16 15:23:52 2026 +0200
Remove unnecessary block template files (#62018)
* Remove unnecessary block template files
* Add changelog file
* Remove hardcoded paths to deleted block templates
* Update docs
* Markdown fixes
* Update tests
* Remove duplicate util
* Use theme slug when possible
diff --git a/plugins/woocommerce/changelog/fix-remove-no-longer-used-templates b/plugins/woocommerce/changelog/fix-remove-no-longer-used-templates
new file mode 100644
index 00000000000..10896f8f07e
--- /dev/null
+++ b/plugins/woocommerce/changelog/fix-remove-no-longer-used-templates
@@ -0,0 +1,5 @@
+Significance: patch
+Type: fix
+Comment: Remove unnecessary block template files
+
+
diff --git a/plugins/woocommerce/client/blocks/docs/internal-developers/templates/README.md b/plugins/woocommerce/client/blocks/docs/internal-developers/templates/README.md
index 35b34517d62..5f63dabc4df 100644
--- a/plugins/woocommerce/client/blocks/docs/internal-developers/templates/README.md
+++ b/plugins/woocommerce/client/blocks/docs/internal-developers/templates/README.md
@@ -16,7 +16,7 @@ This page includes documentation related to WooCommerce Block Templates.
WooCommerce Block Templates are a collection of WooCommerce Core templates for the WordPress Full Site Editing experience introduced in WordPress 5.9. You can customize these templates in the Site Editor.
-You can read more about the Full Site Editing (FSE) experience [here](https://developer.wordpress.org/block-editor/getting-started/full-site-editing/).
+You can read more about the [Full Site Editing (FSE) experience](https://developer.wordpress.org/block-editor/getting-started/full-site-editing/) in the docs.
### Requirements
@@ -41,17 +41,17 @@ The BlockTemplateController.php is primarily responsible for hooking into both W
### Some things to be aware of
- For each template, we have a version represented by a placeholder block and a blockified one, which uses more granular blocks. That was done to keep backwards compatibility for extensions in existing stores.
-- At the beginning of the project, we unintentionally used the incorrect WooCommerce plugin slug. This has resulted in us maintaining both the incorrect and correct slugs. We reference these via `BlockTemplateUtils::DEPRECATED_PLUGIN_SLUG` and `BlockTemplateUtils::PLUGIN_SLUG`. More information on that [here](https://github.com/woocommerce/woocommerce-gutenberg-products-block/issues/5423).
-- If a theme has a `archive-product.html` template file, but does not have any taxonomy related files. The `archive-product.html` template will be applied to all product taxonomy archives. Themes can override product taxonomy archive templates with `taxonomy-product_cat.html` and `taxonomy-product_tag.html` templates.
+- At the beginning of the project, we unintentionally [used the incorrect WooCommerce plugin slug](https://github.com/woocommerce/woocommerce-gutenberg-products-block/issues/5423). This has resulted in us maintaining both the incorrect and correct slugs. We reference these via `BlockTemplateUtils::DEPRECATED_PLUGIN_SLUG` and `BlockTemplateUtils::PLUGIN_SLUG`.
+- If a theme has a `archive-product.html` template file, but does not have any taxonomy related files. The `archive-product.html` template will be applied to all product taxonomy archives. Themes can override product taxonomy archive templates with `taxonomy-product_cat.html`, `taxonomy-product_tag.html` and `taxonomy-product_brand.html` templates.
## Related files
-| File | Description | Source | Docs |
-|-----------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------|
-| templates/templates/\* | Location in the filesystem where WooCommerce block template HTML files are stored. | [Source files](https://github.com/woocommerce/woocommerce/tree/trunk/plugins/woocommerce/templates/templates) | |
-| classic-template/\* | The JavaScript block rendered in the Site Editor. This is a server-side rendered component which is handled by ClassicTemplate.php | [Source file](../../../../blocks/assets/js/blocks/classic-template) | [README](../../../assets/js/blocks/classic-template/README.md) |
-| ClassicTemplate.php | Class used to setup the block on the server-side and render the correct template | [Source file](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/src/Blocks/BlockTypes/ClassicTemplate.php) | [README](../../../assets/js/blocks/classic-template/README.md) |
-| BlockTemplateController.php | Class which contains all the business logic which loads the templates into the Site Editor or on the front-end through various hooks available in WordPress & WooCommerce core. | [Source file](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/src/Blocks/BlockTemplatesController.php) | [README](./block-template-controller.md) |
-| BlockTemplateUtils.php | Class containing a collection of useful utility methods. | [Source file](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/src/Blocks/Utils/BlockTemplateUtils.php) | |
-| BlockTemplatesRegistry.php | Class used as a registry of WooCommerce templates. | [Source file](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/src/Blocks/BlockTemplatesRegistry.php) | |
-| Individual template classes | Individual classes for each WooCommerce template. | [Source files](https://github.com/woocommerce/woocommerce/tree/trunk/plugins/woocommerce/src/Blocks/Templates) | [README](./individual-template-classes.md) |
+| File | Description | Source | Docs |
+|-----------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------|
+| templates/templates/\* | Location in the filesystem where WooCommerce block template HTML files are stored. | [Source files](https://github.com/woocommerce/woocommerce/tree/trunk/plugins/woocommerce/templates/templates) | |
+| classic-template/\* | The JavaScript block rendered in the Site Editor. This is a server-side rendered component which is handled by ClassicTemplate.php | [Source file](../../../../blocks/assets/js/blocks/classic-template) | [README](../../../assets/js/blocks/classic-template/README.md) |
+| ClassicTemplate.php | Class used to setup the block on the server-side and render the correct template | [Source file](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/src/Blocks/BlockTypes/ClassicTemplate.php) | [README](../../../assets/js/blocks/classic-template/README.md) |
+| BlockTemplateController.php | Class which contains all the business logic which loads the templates into the Site Editor or on the front-end through various hooks available in WordPress & WooCommerce core. | [Source file](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/src/Blocks/BlockTemplatesController.php) | [README](./block-template-controller.md) |
+| BlockTemplateUtils.php | Class containing a collection of useful utility methods. | [Source file](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/src/Blocks/Utils/BlockTemplateUtils.php) | |
+| BlockTemplatesRegistry.php | Class used as a registry of WooCommerce templates. | [Source file](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/src/Blocks/BlockTemplatesRegistry.php) | |
+| Individual template classes | Individual classes for each WooCommerce template. | [Source files](https://github.com/woocommerce/woocommerce/tree/trunk/plugins/woocommerce/src/Blocks/Templates) | [README](./individual-template-classes.md) |
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/tests/templates/constants.ts b/plugins/woocommerce/client/blocks/tests/e2e/tests/templates/constants.ts
index 6fb17bbac4f..0605855161b 100644
--- a/plugins/woocommerce/client/blocks/tests/e2e/tests/templates/constants.ts
+++ b/plugins/woocommerce/client/blocks/tests/e2e/tests/templates/constants.ts
@@ -31,6 +31,7 @@ type TemplateCustomizationTest = {
templatePath: string;
};
canBeOverriddenByThemes: boolean;
+ isTaxonomyTemplate?: boolean;
};
export const CUSTOMIZABLE_WC_TEMPLATES: TemplateCustomizationTest[] = [
@@ -72,6 +73,7 @@ export const CUSTOMIZABLE_WC_TEMPLATES: TemplateCustomizationTest[] = [
templatePath: 'archive-product',
},
canBeOverriddenByThemes: true,
+ isTaxonomyTemplate: true,
},
{
visitPage: async ( { page } ) =>
@@ -84,6 +86,7 @@ export const CUSTOMIZABLE_WC_TEMPLATES: TemplateCustomizationTest[] = [
templatePath: 'archive-product',
},
canBeOverriddenByThemes: true,
+ isTaxonomyTemplate: true,
},
{
visitPage: async ( { page } ) => await page.goto( '/product/hoodie' ),
@@ -164,8 +167,8 @@ export const CUSTOMIZABLE_WC_TEMPLATES: TemplateCustomizationTest[] = [
canBeOverriddenByThemes: false,
},
{
- visitPage: async ( { frontendUtils, page } ) => {
- const checkoutPage = new CheckoutPage( { page } );
+ visitPage: async ( { frontendUtils, page, requestUtils } ) => {
+ const checkoutPage = new CheckoutPage( { page, requestUtils } );
await frontendUtils.goToShop();
await frontendUtils.addToCart( SIMPLE_VIRTUAL_PRODUCT_NAME );
await frontendUtils.goToCheckout();
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/tests/templates/template-customization.block_theme.spec.ts b/plugins/woocommerce/client/blocks/tests/e2e/tests/templates/template-customization.block_theme.spec.ts
index fe72e22d540..24e1a414585 100644
--- a/plugins/woocommerce/client/blocks/tests/e2e/tests/templates/template-customization.block_theme.spec.ts
+++ b/plugins/woocommerce/client/blocks/tests/e2e/tests/templates/template-customization.block_theme.spec.ts
@@ -4,6 +4,7 @@
import {
test,
expect,
+ BLOCK_THEME_SLUG,
BLOCK_THEME_WITH_TEMPLATES_SLUG,
} from '@woocommerce/e2e-utils';
@@ -28,11 +29,28 @@ test.describe( 'Template customization', () => {
page,
requestUtils,
} ) => {
- await admin.visitSiteEditor( {
- postId: `woocommerce/woocommerce//${ testData.templatePath }`,
- postType: testData.templateType,
- canvas: 'edit',
- } );
+ if (
+ 'isTaxonomyTemplate' in testData &&
+ testData.isTaxonomyTemplate
+ ) {
+ await admin.visitSiteEditor( {
+ postType: 'wp_template',
+ } );
+
+ await editor.createTemplate( {
+ templateName: testData.templateName,
+ } );
+ } else {
+ const templateSlug =
+ testData.templateType === 'wp_template'
+ ? BLOCK_THEME_SLUG
+ : 'woocommerce/woocommerce';
+ await admin.visitSiteEditor( {
+ postId: `${ templateSlug }//${ testData.templatePath }`,
+ postType: testData.templateType,
+ canvas: 'edit',
+ } );
+ }
await editor.canvas.locator( 'body' ).waitFor( { timeout: 20000 } );
@@ -86,9 +104,13 @@ test.describe( 'Template customization', () => {
editor,
page,
} ) => {
+ const templateSlug =
+ testData.templateType === 'wp_template'
+ ? BLOCK_THEME_SLUG
+ : 'woocommerce/woocommerce';
// Edit fallback template and verify changes are visible.
await admin.visitSiteEditor( {
- postId: `woocommerce/woocommerce//${ testData.fallbackTemplate?.templatePath }`,
+ postId: `${ templateSlug }//${ testData.fallbackTemplate?.templatePath }`,
postType: testData.templateType,
canvas: 'edit',
} );
@@ -140,8 +162,11 @@ test.describe( 'Template customization', () => {
}
} );
+ // Note: `wp_template` hierarchy is tested in `template-priority.block_theme.spec.ts`.
const testToRun = CUSTOMIZABLE_WC_TEMPLATES.filter(
- ( data ) => data.canBeOverriddenByThemes
+ ( data ) =>
+ data.templateType === 'wp_template_part' &&
+ data.canBeOverriddenByThemes
);
for ( const testData of testToRun ) {
@@ -155,7 +180,6 @@ test.describe( 'Template customization', () => {
requestUtils,
frontendUtils,
} ) => {
- // Edit the WooCommerce default template
await admin.visitSiteEditor( {
postId: `woocommerce/woocommerce//${ testData.templatePath }`,
postType: testData.templateType,
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/tests/templates/template-priority.block_theme.spec.ts b/plugins/woocommerce/client/blocks/tests/e2e/tests/templates/template-priority.block_theme.spec.ts
index 5aafebe0f6f..3ae9b9ad342 100644
--- a/plugins/woocommerce/client/blocks/tests/e2e/tests/templates/template-priority.block_theme.spec.ts
+++ b/plugins/woocommerce/client/blocks/tests/e2e/tests/templates/template-priority.block_theme.spec.ts
@@ -49,6 +49,7 @@ test.describe( 'Template priority', () => {
templateName: 'Product Catalog',
templatePath: 'archive-product',
},
+ isTaxonomyTemplate: true,
identifiableText: 'Showing all 9 results',
},
];
@@ -132,33 +133,54 @@ test.describe( 'Template priority', () => {
} );
}
- await test.step( 'custom template with WooCommerce slug', async () => {
- await pageObject.addParagraphToTemplate(
- `woocommerce/woocommerce//${ testData.templatePath }`,
- 'Custom template with WooCommerce slug'
- );
-
- await page.goto( testData.path );
+ // Note: we skip taxonomy templates because since
+ // https://github.com/woocommerce/woocommerce/pull/62018
+ // it's no longer possible to create those templates using the
+ // WooCommerce slug.
+ // Since https://github.com/woocommerce/woocommerce/pull/60191, the
+ // only way to achieve that was hardcoding `woocommerce/woocommerce//`
+ // to the URL. So we are only testing for backwards-compatibility.
+ if (
+ ! ( 'isTaxonomyTemplate' in testData ) ||
+ ! testData.isTaxonomyTemplate
+ ) {
+ await test.step( 'custom template with WooCommerce slug', async () => {
+ await pageObject.addParagraphToTemplate(
+ `woocommerce/woocommerce//${ testData.templatePath }`,
+ 'Custom template with WooCommerce slug'
+ );
- await expect(
- page.getByText( testData.identifiableText )
- ).toBeVisible();
- await expect(
- page.getByText( 'Custom fallback template with theme slug' )
- ).toBeHidden();
- await expect(
- page.getByText( 'Custom template with WooCommerce slug' )
- ).toBeVisible();
- } );
+ await page.goto( testData.path );
- await test.step( 'custom template with theme slug', async () => {
- await admin.visitSiteEditor( {
- postType: 'wp_template',
+ await expect(
+ page.getByText( testData.identifiableText )
+ ).toBeVisible();
+ await expect(
+ page.getByText(
+ 'Custom fallback template with theme slug'
+ )
+ ).toBeHidden();
+ await expect(
+ page.getByText(
+ 'Custom template with WooCommerce slug'
+ )
+ ).toBeVisible();
} );
+ }
+
+ await admin.visitSiteEditor( {
+ postType: 'wp_template',
+ } );
+ if (
+ ! ( 'isTaxonomyTemplate' in testData ) ||
+ ! testData.isTaxonomyTemplate
+ ) {
await editor.revertTemplate( {
templateName: testData.templateName,
} );
+ }
+ await test.step( 'custom template with theme slug', async () => {
if ( testData.fallbackTemplate ) {
await editor.createTemplate( {
templateName: testData.templateName,
diff --git a/plugins/woocommerce/src/Blocks/Utils/BlockTemplateUtils.php b/plugins/woocommerce/src/Blocks/Utils/BlockTemplateUtils.php
index 0b2a3d7f8c9..d920c95ef23 100644
--- a/plugins/woocommerce/src/Blocks/Utils/BlockTemplateUtils.php
+++ b/plugins/woocommerce/src/Blocks/Utils/BlockTemplateUtils.php
@@ -308,9 +308,6 @@ class BlockTemplateUtils {
'product-search-results.html',
'single-product.html',
'taxonomy-product_attribute.html',
- 'taxonomy-product_brand.html',
- 'taxonomy-product_cat.html',
- 'taxonomy-product_tag.html',
);
if ( Features::is_enabled( 'launch-your-store' ) ) {
diff --git a/plugins/woocommerce/templates/templates/blockified/taxonomy-product_brand.html b/plugins/woocommerce/templates/templates/blockified/taxonomy-product_brand.html
deleted file mode 100644
index 1d55f72f9ac..00000000000
--- a/plugins/woocommerce/templates/templates/blockified/taxonomy-product_brand.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<!-- wp:template-part {"slug":"header"} /-->
-
-<!-- wp:group {"layout":{"inherit":true,"type":"constrained"}} -->
-<div class="wp-block-group">
- <!-- wp:woocommerce/breadcrumbs /-->
-
- <!-- wp:query-title {"type":"archive","showPrefix":false,"align":"wide"} /-->
-
- <!-- wp:term-description {"align":"wide"} /-->
-
- <!-- wp:woocommerce/store-notices /-->
-
- <!-- wp:group {"layout":{"type":"flex","flexWrap":"nowrap","justifyContent":"space-between"}} -->
- <div class="wp-block-group alignwide">
- <!-- wp:woocommerce/product-results-count /-->
- <!-- wp:woocommerce/catalog-sorting /-->
- </div>
- <!-- /wp:group -->
- <!-- wp:query {"query":{"perPage":9,"pages":0,"offset":0,"postType":"product","order":"asc","orderBy":"title","author":"","search":"","exclude":[],"sticky":"","inherit":true,"__woocommerceAttributes":[],"__woocommerceStockStatus":["instock","outofstock","onbackorder"]},"displayLayout":{"type":"flex","columns":3},"namespace":"woocommerce/product-query","align":"wide"} -->
- <div class="wp-block-query alignwide">
- <!-- wp:post-template {"className":"products-block-post-template","__woocommerceNamespace":"woocommerce/product-query/product-template"} -->
- <!-- wp:woocommerce/product-image {"isDescendentOfQueryLoop":true} /-->
- <!-- wp:post-title {"textAlign":"center","level":2,"fontSize":"medium","isLink":true,"__woocommerceNamespace":"woocommerce/product-query/product-title","style":{"typography":{"lineHeight":"1.4"}}} /-->
- <!-- wp:woocommerce/product-price {"isDescendentOfQueryLoop":true,"textAlign":"center","fontSize":"small","style":{"spacing":{"margin":{"bottom":"1rem"}}}} /-->
- <!-- wp:woocommerce/product-button {"isDescendentOfQueryLoop":true,"textAlign":"center","fontSize":"small","style":{"spacing":{"margin":{"bottom":"1rem"}}}} /-->
- <!-- /wp:post-template -->
-
- <!-- wp:query-pagination {"layout":{"type":"flex","justifyContent":"center"}} -->
- <!-- wp:query-pagination-previous /-->
- <!-- wp:query-pagination-numbers /-->
- <!-- wp:query-pagination-next /-->
- <!-- /wp:query-pagination -->
-
- <!-- wp:query-no-results -->
- <!-- wp:pattern {"slug":"woocommerce/no-products-found"} /-->
- <!-- /wp:query-no-results -->
- </div>
- <!-- /wp:query -->
-</div>
-<!-- /wp:group -->
-
-<!-- wp:template-part {"slug":"footer"} /-->
diff --git a/plugins/woocommerce/templates/templates/blockified/taxonomy-product_cat.html b/plugins/woocommerce/templates/templates/blockified/taxonomy-product_cat.html
deleted file mode 100644
index d51ecbe08a4..00000000000
--- a/plugins/woocommerce/templates/templates/blockified/taxonomy-product_cat.html
+++ /dev/null
@@ -1,50 +0,0 @@
-<!-- wp:template-part {"slug":"header"} /-->
-
-<!-- wp:group {"tagName":"main","layout":{"inherit":true,"type":"constrained"}} -->
-<main class="wp-block-group">
- <!-- wp:woocommerce/breadcrumbs /-->
-
- <!-- wp:query-title {"type":"archive","showPrefix":false,"align":"wide"} /-->
-
- <!-- wp:term-description {"align":"wide"} /-->
-
- <!-- wp:woocommerce/store-notices /-->
-
- <!-- wp:group {"align":"wide","layout":{"type":"flex","flexWrap":"nowrap","justifyContent":"space-between"}} -->
- <div class="wp-block-group alignwide">
- <!-- wp:woocommerce/product-results-count /-->
-
- <!-- wp:woocommerce/catalog-sorting /-->
- </div>
- <!-- /wp:group -->
-
- <!-- wp:woocommerce/product-collection {"queryId":0,"query":{"woocommerceAttributes":[],"woocommerceStockStatus":["instock","outofstock","onbackorder"],"taxQuery":{},"isProductCollectionBlock":true,"perPage":10,"pages":0,"offset":0,"postType":"product","order":"asc","orderBy":"title","author":"","search":"","exclude":[],"sticky":"","inherit":true},"tagName":"div","dimensions":{"widthType":"fill","fixedWidth":""},"displayLayout":{"type":"flex","columns":3,"shrinkColumns":true},"convertedFromProducts":false,"queryContextIncludes":["collection"],"align":"wide"} -->
- <div class="wp-block-woocommerce-product-collection alignwide">
- <!-- wp:woocommerce/product-template -->
- <!-- wp:woocommerce/product-image {"showSaleBadge":false,"imageSizing":"thumbnail","isDescendentOfQueryLoop":true} -->
- <!-- wp:woocommerce/product-sale-badge {"isDescendentOfQueryLoop":true,"align":"right"} /-->
- <!-- /wp:woocommerce/product-image -->
- <!-- wp:post-title {"textAlign":"center","level":2,"isLink":true,"fontSize":"medium","__woocommerceNamespace":"woocommerce/product-collection/product-title","style":{"typography":{"lineHeight":"1.4"}}} /-->
- <!-- wp:woocommerce/product-price {"textAlign":"center","isDescendentOfQueryLoop":true,"fontSize":"small","style":{"spacing":{"margin":{"bottom":"1rem"}}}} /-->
- <!-- wp:woocommerce/product-button {"textAlign":"center","isDescendentOfQueryLoop":true,"fontSize":"small","style":{"spacing":{"margin":{"bottom":"1rem"}}}} /-->
- <!-- /wp:woocommerce/product-template -->
-
- <!-- wp:query-pagination {"layout":{"type":"flex","justifyContent":"center"}} -->
- <!-- wp:query-pagination-previous /-->
- <!-- wp:query-pagination-numbers /-->
- <!-- wp:query-pagination-next /-->
- <!-- /wp:query-pagination -->
-
- <!-- wp:woocommerce/product-collection-no-results -->
- <!-- wp:group {"layout":{"type":"flex","orientation":"vertical","justifyContent":"center","flexWrap":"wrap"}} -->
- <div class="wp-block-group">
- <!-- wp:pattern {"slug":"woocommerce/no-products-found-clear-filters"} /-->
- </div>
- <!-- /wp:group -->
- <!-- /wp:woocommerce/product-collection-no-results -->
- </div>
- <!-- /wp:woocommerce/product-collection -->
-</main>
-<!-- /wp:group -->
-
-<!-- wp:template-part {"slug":"footer"} /-->
diff --git a/plugins/woocommerce/templates/templates/blockified/taxonomy-product_tag.html b/plugins/woocommerce/templates/templates/blockified/taxonomy-product_tag.html
deleted file mode 100644
index 2bbf3e97493..00000000000
--- a/plugins/woocommerce/templates/templates/blockified/taxonomy-product_tag.html
+++ /dev/null
@@ -1,49 +0,0 @@
-<!-- wp:template-part {"slug":"header"} /-->
-
-<!-- wp:group {"tagName":"main","layout":{"inherit":true,"type":"constrained"}} -->
-<main class="wp-block-group">
- <!-- wp:woocommerce/breadcrumbs /-->
-
- <!-- wp:query-title {"type":"archive","showPrefix":false,"align":"wide"} /-->
-
- <!-- wp:term-description {"align":"wide"} /-->
-
- <!-- wp:woocommerce/store-notices /-->
-
- <!-- wp:group {"align":"wide","layout":{"type":"flex","flexWrap":"nowrap","justifyContent":"space-between"}} -->
- <div class="wp-block-group alignwide">
- <!-- wp:woocommerce/product-results-count /-->
-
- <!-- wp:woocommerce/catalog-sorting /-->
- </div>
- <!-- /wp:group -->
-
- <!-- wp:woocommerce/product-collection {"queryId":0,"query":{"woocommerceAttributes":[],"woocommerceStockStatus":["instock","outofstock","onbackorder"],"taxQuery":{},"isProductCollectionBlock":true,"perPage":10,"pages":0,"offset":0,"postType":"product","order":"asc","orderBy":"title","author":"","search":"","exclude":[],"sticky":"","inherit":true},"tagName":"div","dimensions":{"widthType":"fill","fixedWidth":""},"displayLayout":{"type":"flex","columns":3,"shrinkColumns":true},"convertedFromProducts":false,"queryContextIncludes":["collection"],"align":"wide"} -->
- <div class="wp-block-woocommerce-product-collection alignwide">
- <!-- wp:woocommerce/product-template -->
- <!-- wp:woocommerce/product-image {"showSaleBadge":false,"imageSizing":"thumbnail","isDescendentOfQueryLoop":true} -->
- <!-- wp:woocommerce/product-sale-badge {"isDescendentOfQueryLoop":true,"align":"right"} /-->
- <!-- /wp:woocommerce/product-image -->
- <!-- wp:post-title {"textAlign":"center","level":2,"isLink":true,"fontSize":"medium","__woocommerceNamespace":"woocommerce/product-collection/product-title","style":{"typography":{"lineHeight":"1.4"}}} /-->
- <!-- wp:woocommerce/product-price {"textAlign":"center","isDescendentOfQueryLoop":true,"fontSize":"small","style":{"spacing":{"margin":{"bottom":"1rem"}}}} /-->
- <!-- wp:woocommerce/product-button {"textAlign":"center","isDescendentOfQueryLoop":true,"fontSize":"small","style":{"spacing":{"margin":{"bottom":"1rem"}}}} /-->
- <!-- /wp:woocommerce/product-template -->
-
- <!-- wp:query-pagination {"layout":{"type":"flex","justifyContent":"center"}} -->
- <!-- wp:query-pagination-previous /-->
- <!-- wp:query-pagination-numbers /-->
- <!-- wp:query-pagination-next /-->
- <!-- /wp:query-pagination -->
-
- <!-- wp:woocommerce/product-collection-no-results -->
- <!-- wp:group {"layout":{"type":"flex","orientation":"vertical","justifyContent":"center","flexWrap":"wrap"}} -->
- <div class="wp-block-group">
- <!-- wp:pattern {"slug":"woocommerce/no-products-found-clear-filters"} /-->
- </div>
- <!-- /wp:group -->
- <!-- /wp:woocommerce/product-collection-no-results -->
- </div>
- <!-- /wp:woocommerce/product-collection -->
-</main>
-
-<!-- wp:template-part {"slug":"footer"} /-->
diff --git a/plugins/woocommerce/templates/templates/taxonomy-product_brand.html b/plugins/woocommerce/templates/templates/taxonomy-product_brand.html
deleted file mode 100644
index 4cf01077d40..00000000000
--- a/plugins/woocommerce/templates/templates/taxonomy-product_brand.html
+++ /dev/null
@@ -1,5 +0,0 @@
-<!-- wp:template-part {"slug":"header"} /-->
-<!-- wp:group {"layout":{"inherit":true}} -->
-<div class="wp-block-group"><!-- wp:woocommerce/legacy-template {"template":"archive-product"} /--></div>
-<!-- /wp:group -->
-<!-- wp:template-part {"slug":"footer"} /-->
diff --git a/plugins/woocommerce/templates/templates/taxonomy-product_cat.html b/plugins/woocommerce/templates/templates/taxonomy-product_cat.html
deleted file mode 100644
index 1773a59def4..00000000000
--- a/plugins/woocommerce/templates/templates/taxonomy-product_cat.html
+++ /dev/null
@@ -1,5 +0,0 @@
-<!-- wp:template-part {"slug":"header","tagName":"header"} /-->
-<!-- wp:group {"tagName":"main","layout":{"inherit":true}} -->
-<main class="wp-block-group"><!-- wp:woocommerce/legacy-template {"template":"taxonomy-product_cat"} /--></main>
-<!-- /wp:group -->
-<!-- wp:template-part {"slug":"footer","tagName":"footer"} /-->
diff --git a/plugins/woocommerce/templates/templates/taxonomy-product_tag.html b/plugins/woocommerce/templates/templates/taxonomy-product_tag.html
deleted file mode 100644
index f3c5c3de3aa..00000000000
--- a/plugins/woocommerce/templates/templates/taxonomy-product_tag.html
+++ /dev/null
@@ -1,5 +0,0 @@
-<!-- wp:template-part {"slug":"header","tagName":"header"} /-->
-<!-- wp:group {"tagName":"main","layout":{"inherit":true}} -->
-<main class="wp-block-group"><!-- wp:woocommerce/legacy-template {"template":"taxonomy-product_tag"} /--></main>
-<!-- /wp:group -->
-<!-- wp:template-part {"slug":"footer","tagName":"footer"} /-->