PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.3-a.7
Jetpack – WP Security, Backup, Speed, & Growth v16.3-a.7
16.3-a.5 16.3-a.7 16.3-a.3 16.3-a.1 16.2 16.2-beta 12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 All 506 releases
← All changes | modules/subscriptions/subscribe-modal/subscribe-modal.js +16 -1 13.7.2 → 16.3-a.7 View file →
@@ -2,8 +2,9 @@
2 2 const { domReady } = wp;
3 3 domReady( () => {
4 4 const modal = document.querySelector( '.jetpack-subscribe-modal' );
5 5 const modalDismissedCookie = 'jetpack_post_subscribe_modal_dismissed';
6 + const skipUrlParam = 'jetpack_skip_subscription_popup';
6 7
7 8 function hasEnoughTimePassed() {
8 9 const lastDismissed = localStorage.getItem( modalDismissedCookie );
9 10 return lastDismissed ? Date.now() - lastDismissed > Jetpack_Subscriptions.modalInterval : true;
@@ -8,9 +9,23 @@
8 9 const lastDismissed = localStorage.getItem( modalDismissedCookie );
9 10 return lastDismissed ? Date.now() - lastDismissed > Jetpack_Subscriptions.modalInterval : true;
10 11 }
11 12
12 - if ( ! modal || ! hasEnoughTimePassed() ) {
13 + // Subscriber ended up here e.g. from emails:
14 + // we won't show the modal to them in future since they most likely are already a subscriber.
15 + function skipModal() {
16 + const url = new URL( window.location.href );
17 + if ( url.searchParams.has( skipUrlParam ) ) {
18 + url.searchParams.delete( skipUrlParam );
19 + window.history.replaceState( {}, '', url );
20 + storeCloseTimestamp();
21 + return true;
22 + }
23 +
24 + return false;
25 + }
26 +
27 + if ( ! modal || ! hasEnoughTimePassed() || skipModal() ) {
13 28 return;
14 29 }
15 30
16 31 const modalLoadTimeout = setTimeout( openModal, Jetpack_Subscriptions.modalLoadTime );