Commit bcf8ea98557 for woocommerce
commit bcf8ea985576c5ff3fe11d69d3ed5d1c05909d6e
Author: Chris Lilitsas <1105590+xristos3490@users.noreply.github.com>
Date: Thu Oct 15 12:06:49 2026 +0300
Render the back-in-stock sign-up prompt as a paragraph instead of a heading (#69503)
* fix: render back-in-stock form prompt as a paragraph, not an h3
* test: find BIS signup form by accessible name in e2e spec
* test: use string locator for fixed BIS prompt text
* test: assert the BIS prompt is not rendered as a heading
* test: assert the BIS prompt renders as a paragraph
diff --git a/plugins/woocommerce/changelog/fix-wooplug-7918-bis-form-prompt-paragraph b/plugins/woocommerce/changelog/fix-wooplug-7918-bis-form-prompt-paragraph
new file mode 100644
index 00000000000..5b2c7783cff
--- /dev/null
+++ b/plugins/woocommerce/changelog/fix-wooplug-7918-bis-form-prompt-paragraph
@@ -0,0 +1,4 @@
+Significance: patch
+Type: fix
+
+Show the back-in-stock sign-up prompt as a paragraph instead of a large heading on the product page.
diff --git a/plugins/woocommerce/templates/single-product/back-in-stock-form.php b/plugins/woocommerce/templates/single-product/back-in-stock-form.php
index 9b9e15fbc62..0537fbd36ac 100644
--- a/plugins/woocommerce/templates/single-product/back-in-stock-form.php
+++ b/plugins/woocommerce/templates/single-product/back-in-stock-form.php
@@ -14,7 +14,7 @@
*
* @see https://woocommerce.com/document/template-structure/
* @package WooCommerce\Templates
- * @version 11.2.0
+ * @version 11.3.0
*/
// Exit if accessed directly.
@@ -25,9 +25,9 @@ if ( ! defined( 'ABSPATH' ) ) {
?>
<div class="wc_bis_form" data-bis-product-id="<?php echo absint( $product_id ); ?>" <?php echo $is_visible ? '' : 'hidden'; ?>>
- <h3 id="wc_bis_form_heading_<?php echo absint( $product_id ); ?>">
+ <p id="wc_bis_form_heading_<?php echo absint( $product_id ); ?>" class="wc_bis_form__title">
<?php echo wp_kses_post( __( 'Want to be notified when this product is back in stock?', 'woocommerce' ) ); ?>
- </h3>
+ </p>
<form method="post" novalidate aria-labelledby="wc_bis_form_heading_<?php echo absint( $product_id ); ?>">
<div class="wc_bis_form__form-row">
diff --git a/plugins/woocommerce/tests/e2e/tests/back-in-stock-notifications/signing-up.spec.ts b/plugins/woocommerce/tests/e2e/tests/back-in-stock-notifications/signing-up.spec.ts
index 5173a190c7f..feb5dadf41a 100644
--- a/plugins/woocommerce/tests/e2e/tests/back-in-stock-notifications/signing-up.spec.ts
+++ b/plugins/woocommerce/tests/e2e/tests/back-in-stock-notifications/signing-up.spec.ts
@@ -76,9 +76,9 @@ test.describe(
await page.goto( product.permalink );
await expect( bisFormLocator( page ) ).toHaveCount( 0 );
await expect(
- page.getByRole( 'heading', {
- name: /Want to be notified when this product is back in stock\?/i,
- } )
+ page.getByText(
+ 'Want to be notified when this product is back in stock?'
+ )
).toHaveCount( 0 );
} );
} );
@@ -101,11 +101,20 @@ test.describe(
await page.goto( product.permalink );
await expect(
- page.getByRole( 'heading', {
+ page.getByRole( 'form', {
name: /Want to be notified when this product is back in stock\?/i,
} )
).toBeVisible();
+ // The prompt is a paragraph, not a heading, so it stays out of
+ // the document outline.
+ await expect(
+ page.getByRole( 'paragraph' ).filter( {
+ hasText:
+ 'Want to be notified when this product is back in stock?',
+ } )
+ ).toBeVisible();
+
// A logged-in customer does not see the email field — email is derived server-side.
await expect(
page.getByRole( 'textbox', {