You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit fe6a82b
Browse filesBrowse the repository at this point in the historyBrowse files
Protect dashboard: Show what Scan adds on the free Scan and Firewall cards (#53896)
* Protect dashboard: Show what Scan adds on the free Scan and Firewall cards
* Protect dashboard: Share upsell tracking and identify the user once per page
* Protect dashboard: Put the upsell button below the features on mobile and always label it Upgrade
* Protect dashboard: Send upsell Tracks events on every free-plan site
Load the Tracks script on the dashboard itself, since the admin-ui upgrade
menu only loads it for sites with no products at all. Identify the user
before the first event rather than in a parent mount effect, which runs
after the cards record their views. Track the "rules stopped updating"
row with the Firewall upsell events and `state: 'stopped'`, and check
that paid and errored sites show no Upgrade link.
* Protect dashboard: Tag upsell events with the blog ID and test the tracking
Add the site's WordPress.com blog ID to every upsell event, since the
analytics client only reads it from jpTracksContext, which this page
doesn't set. Rotate the copy when the stored start time is in the
future instead of keeping it until the clock catches up.
Cover the Tracks script's consent gate, the identity fallback, the
start variant and filter, identifying the user before the first event,
and the Firewall rows' event properties.
* Protect dashboard: Load a fresh tracks module with import() in its test
CI's type check has no Node types, so require() fails there.
---------
Co-authored-by: Brandon Kraft <public@brandonkraft.com>
@@ -364,6 +367,28 @@ export default function FirewallOverviewCard( { state, settings, openTab }: Fire
364
367
/>
365
368
</CardRow>
366
369
)}
370
+
{!firewall.hasScan&&rulesUpdatedAt===null&&(
371
+
<FirewallUpsellurl={firewall.upgradeUrl}/>
372
+
)}
373
+
{!firewall.hasScan&&rulesUpdatedAt!==null&&(
374
+
<UpgradeGap
375
+
title={__(
376
+
'Your automatic firewall rules have stopped updating',
377
+
'jetpack-protect-pkg'
378
+
)}
379
+
description={sprintf(
380
+
/* translators: %s is a date, such as "Mar 14, 2026". */
381
+
__(
382
+
'Your rules were last updated on %s. Attacks on WordPress plugins discovered since then can get through. Upgrade to get a new rule as soon as an attack is found.',
0 commit comments