Commit f2f1c6a8bc9 for woocommerce
commit f2f1c6a8bc982ddcbdc8d1694872781f695b5a71
Author: Benito Alba Molina <albamolina.benito@gmail.com>
Date: Fri Oct 16 07:47:16 2026 +0200
Restore mobile zoom in the Core Profiler (#68171)
* Restore mobile zoom in the Core Profiler
* Add changelog entry for Core Profiler mobile zoom fix
* Cover both mobile onboarding paths and use WordPress font sizing
diff --git a/plugins/woocommerce/changelog/fix-67834-core-profiler-mobile-zoom b/plugins/woocommerce/changelog/fix-67834-core-profiler-mobile-zoom
new file mode 100644
index 00000000000..09cf97da506
--- /dev/null
+++ b/plugins/woocommerce/changelog/fix-67834-core-profiler-mobile-zoom
@@ -0,0 +1,4 @@
+Significance: patch
+Type: fix
+
+Allow mobile zoom in the Core Profiler without triggering automatic input zoom.
diff --git a/plugins/woocommerce/client/admin/client/core-profiler/style.scss b/plugins/woocommerce/client/admin/client/core-profiler/style.scss
index c84c966cebe..b274bf26603 100644
--- a/plugins/woocommerce/client/admin/client/core-profiler/style.scss
+++ b/plugins/woocommerce/client/admin/client/core-profiler/style.scss
@@ -751,3 +751,20 @@
padding-top: 32px !important;
}
}
+
+@include breakpoint("<782px") {
+ .woocommerce-profile-wizard__body #woocommerce-layout__primary {
+ input:not([type]),
+ input[type="email"],
+ input[type="number"],
+ input[type="password"],
+ input[type="search"],
+ input[type="tel"],
+ input[type="text"],
+ input[type="url"],
+ select,
+ textarea {
+ font-size: $mobile-text-min-font-size;
+ }
+ }
+}
diff --git a/plugins/woocommerce/src/Internal/Admin/Onboarding/OnboardingSetupWizard.php b/plugins/woocommerce/src/Internal/Admin/Onboarding/OnboardingSetupWizard.php
index 50dcdda4ba3..d94e4484ef9 100644
--- a/plugins/woocommerce/src/Internal/Admin/Onboarding/OnboardingSetupWizard.php
+++ b/plugins/woocommerce/src/Internal/Admin/Onboarding/OnboardingSetupWizard.php
@@ -397,7 +397,7 @@ class OnboardingSetupWizard {
return $viewport_meta;
}
- return 'width=device-width, initial-scale=1.0, maximum-scale=1.0';
+ return 'width=device-width, initial-scale=1.0';
}
/**
diff --git a/plugins/woocommerce/tests/e2e/tests/onboarding/onboarding-wizard.spec.ts b/plugins/woocommerce/tests/e2e/tests/onboarding/onboarding-wizard.spec.ts
index 0a260d347b3..a2d3a7fedbc 100644
--- a/plugins/woocommerce/tests/e2e/tests/onboarding/onboarding-wizard.spec.ts
+++ b/plugins/woocommerce/tests/e2e/tests/onboarding/onboarding-wizard.spec.ts
@@ -18,6 +18,46 @@ const getPluginLocator = ( page: Page, slug: string ) => {
);
};
+const selectMobileBusinessProfile = async (
+ page: Page,
+ businessChoice: string
+) => {
+ await page
+ .getByRole( 'radio' )
+ .filter( { hasText: businessChoice } )
+ .click();
+
+ if ( businessChoice === 'already selling' ) {
+ await page
+ .locator(
+ '.woocommerce-profiler-select-control__selling-online-question input'
+ )
+ .press( 'ArrowDown' );
+ await page
+ .getByRole( 'option', { name: 'Yes, I’m selling online' } )
+ .click();
+ const selectedPlatforms = page
+ .locator( '.woocommerce-profiler-platform-selector' )
+ .getByRole( 'button', { name: /^Remove / } );
+ while ( await selectedPlatforms.count() ) {
+ await selectedPlatforms.first().click();
+ }
+ const platformsInput = page.locator(
+ '.woocommerce-profiler-platform-selector .woocommerce-experimental-select-control__input'
+ );
+ await expect( platformsInput ).toHaveCSS( 'font-size', '16px' );
+ await platformsInput.click();
+ await page
+ .getByRole( 'option', { name: 'Shopify', exact: true } )
+ .click();
+ await page
+ .getByRole( 'heading', {
+ name: 'Which one of these best describes you?',
+ } )
+ .click();
+ }
+};
+
test.use( { storageState: ADMIN_STATE_PATH } );
test.afterAll( async ( { baseURL } ) => {
@@ -41,6 +81,58 @@ test.describe(
}
} );
+ for ( const businessChoice of [
+ 'just starting my business',
+ 'already selling',
+ ] ) {
+ test( `Allows mobile zoom without automatic input focus zoom (${ businessChoice })`, async ( {
+ page,
+ } ) => {
+ test.skip(
+ !! process.env.IS_MULTISITE,
+ 'Test not working on a multisite setup, see https://github.com/woocommerce/woocommerce/issues/55066'
+ );
+ await page.setViewportSize( { width: 390, height: 844 } );
+ await page.goto(
+ 'wp-admin/admin.php?page=wc-admin&path=%2Fsetup-wizard'
+ );
+
+ await expect(
+ page.locator( 'meta[name="viewport"]' )
+ ).toHaveAttribute(
+ 'content',
+ 'width=device-width, initial-scale=1.0'
+ );
+ await page
+ .getByRole( 'button', { name: 'Set up my store' } )
+ .click();
+ await selectMobileBusinessProfile( page, businessChoice );
+ await page.getByRole( 'button', { name: 'Continue' } ).click();
+
+ await expect(
+ page.getByRole( 'heading', {
+ name: 'Tell us a bit about your store',
+ } )
+ ).toBeVisible();
+ await expect(
+ page.getByPlaceholder( 'Ex. My awesome store' )
+ ).toHaveCSS( 'font-size', '16px' );
+ await expect(
+ page.getByPlaceholder( 'wordpress@example.com' )
+ ).toHaveCSS( 'font-size', '16px' );
+ await expect(
+ page.locator(
+ '.woocommerce-profiler-select-control__industry .woocommerce-select-control__control-input'
+ )
+ ).toHaveCSS( 'font-size', '16px' );
+ await expect(
+ page.locator(
+ '.woocommerce-profiler-select-control__country .woocommerce-select-control__control-input'
+ )
+ ).toHaveCSS( 'font-size', '16px' );
+ } );
+ }
+
test( 'Can complete the core profiler skipping extension install', async ( {
page,
} ) => {