Code

Discussion on Progressify (Instantify) - Progressive Web App (PWA) for WordPress

Discussion on Progressify (Instantify) - Progressive Web App (PWA) for WordPress

Cart 3,549 sales
Recently Updated

DaftPlug does not currently provide support for this item.

2539 comments found.

Hi, it’s been a week and I haven’t received any news on my Android app update ticket, with PayPal payment email posta.pieromeloni@gmail.com Let me know thanks

Hi, I don’t understand this silence. Is the plugin still supported? Because it’s happened in the past with a previous developer. I don’t want to argue, but is it possible to at least get a response? Thanks

Hello Progressify Team,

Bug Report: Navigation Tab Bar Not Working with W3 Total Cache (Page Cache)

Summary The Navigation Tab Bar component (<pwa-navigation-tab-bar>) disappears when using page cache plugins (W3 Total Cache, WP Rocket, etc.) because the element is inserted dynamically via JavaScript after page load, which gets excluded from the cached HTML.

Environment

Plugin: Progressify (Daftplug) WordPress Version: [Latest] Cache Plugin: W3 Total Cache (Page Cache enabled) Browser: Chrome/Safari/Firefox Device: Desktop, Mobile, Tablet

Steps to Reproduce

Install and activate Progressify Enable Navigation Tab Bar in Progressify settings Set Supported Devices to “Smartphone” (or any device) Install W3 Total Cache and enable Page Cache Visit website homepage → Navigation bar appears Refresh page 2-3 times (cache builds) Result: Navigation bar disappears

Expected Behavior Navigation Tab Bar should appear consistently on all page loads, regardless of page cache status.

Actual Behavior

First load (no cache): Navigation bar appears ✓ Cached pages: Navigation bar disappears ✗

Console inspection shows: javascript// Cached page: document.querySelector(‘pwa-navigation-tab-bar’) // Element exists but empty customElements.get(‘pwa-navigation-tab-bar’) // undefined (not registered!)

Root Cause Analysis Issue #1: Dynamic JavaScript Insertion The <pwa-navigation-tab-bar> element is inserted into the DOM after page load via JavaScript (frontend.min.js). Page cache plugins capture HTML before JavaScript executes, resulting in cached pages without the navigation element. Issue #2: Missing Desktop Device Check in Code In frontend.min.js at position ~278037, the initialization code for navigationTabBar only checks for smartphone and tablet: javascript// Current code (BROKEN): supportedDevices.some(supported => { return supported === “smartphone” && userData?.device?.isSmartphone || supported === “tablet” && userData?.device?.isTablet // ❌ NO CHECK FOR DESKTOP! }) However, other modules (idleDetection, screenWakeLock) correctly include all three device checks: javascript// Other modules (WORKING): supportedDevices.some(supported => { return supported === “smartphone” && userData?.device?.isSmartphone || supported === “tablet” && userData?.device?.isTablet || supported === “desktop” && userData?.device?.isDesktop // ✓ PRESENT }) This inconsistency prevents the navigation bar from initializing on desktop devices even when “desktop” is added to supportedDevices array.

Temporary Workaround Users must manually add the navigation element server-side and override device detection: 1. Add to theme’s footer.php (before ): php<pwa-navigation-tab-bar></pwa-navigation-tab-bar> 2. Add filter to functions.php: phpadd_filter(‘daftplug_progressify_frontend_js_vars’, function($vars) { // Force smartphone emulation to bypass device check if (isset($vars‘userData’)) { $vars‘userData’[‘isSmartphone’] = true; $vars‘userData’[‘isDesktop’] = false; $vars‘userData’[‘isTablet’] = false; } return $vars; }, 10, 1); This workaround is not ideal as it requires theme modification and device emulation.

Proposed Solutions Solution 1: Server-Side Rendering (Recommended) Add a filter/action hook that outputs <pwa-navigation-tab-bar> in the HTML on the server side, so it’s included in cached pages. JavaScript should only initialize the existing element. php// Progressify should provide: do_action(‘progressify_render_navigation_element’); Solution 2: Fix Device Check in frontend.min.js Update the navigationTabBar initialization code to include desktop check: javascriptsupportedDevices.some(supported => { return supported === “smartphone” && userData?.device?.isSmartphone || supported === “tablet” && userData?.device?.isTablet || supported === “desktop” && userData?.device?.isDesktop // ADD THIS }) Solution 3: Add Cache Compatibility Setting Add a setting in Progressify admin:

“Enable cache compatibility mode” When enabled: render <pwa-navigation-tab-bar> in wp_footer hook server-side

Solution 4: Documentation Add clear documentation about page cache incompatibility and recommended configuration for popular cache plugins (W3 Total Cache, WP Rocket, LiteSpeed Cache, etc.).

Impact

Severity: High Affected Users: Anyone using page cache plugins (very common in WordPress) User Experience: Navigation disappears after initial visit, breaking core PWA functionality

Additional Notes This issue affects all page cache plugins, not just W3 Total Cache:

WP Rocket LiteSpeed Cache WP Super Cache Redis Object Cache Any server-level caching (nginx, Varnish)

Request Please prioritize fixing this critical compatibility issue, as page caching is essential for WordPress performance and widely used. The inconsistency in device checks between navigationTabBar and other modules suggests this may be an oversight during compilation. Thank you for your attention to this matter.

The browser console shows an error: https://imgur.com/Via8NeK A screenshot of the relevant code snippet from the serviceworker.webworker file is shown below. https://imgur.com/BmceWR7

Please unregister for tomlandon.net and REGISTER with my new domain expertom.pro. URGANT. Thank you very much! Truly … Tom.

Your feedback would be HIGHLY APPRECIATED. PLEASE give me an anser. Thank you very much indeed.

Hi, I have a couple of questions: 1. is there a way to exclude some pages for the Installation Prompts overlay? I don’t want them to show up everywhere on my website but on some pages related to the content of the app.

2. I have updated the app icon but it doesn’t updated it on overlays (neither in the QR code), could you help with that?

3. In Web App Manifest > Display Settings > Start Page Path : are we suppose to add a slash before the path we are adding here? From the visual it looks like yes, but when I did, and installed the app in a non-chrome browser, it gave me the start page with a double dash. So removed it and the url was correct (it would be good to add a slash / after the greyed path imo)

Thanks in advance for your answers!

I would like to know if it is possible to implement a feature that allows the store manager to receive notifications and have access to the same modification options granted to an administrator.

Hi,

Accessing plugin admin area is possible if user has manage_options capability, so if you give your shop manager that capability, then it will be possible. As for the notifications, not sure what notification exactly do you mean?

In the Push Notification area under Automation, there are options such as “Sends notification to admins when a new order is placed.” It would make a lot of sense for these notifications to also be sent to the manager and ideally, for the entire Push Notification section to be accessible to them as well.

Hi, I purchased an Android APP license with this email posta.pieromeloni@gmail via paypal, I’m waiting for the application file, thanks

Perfect, thanks. I replied with the attachments. Thank you very much.

Hi, check your email. I sent you the request to update the Android app version. Thanks.

Hi, it’s been a week and I haven’t heard anything about my ticket. Let me know, thanks.

hi web to apk and ios is that paid even after purchase plugin

Hello, I’m still having the same issue even after updating to version 1.4. The plugin’s control panel gets stuck on the loading screen. I tried completely removing the plugin and reinstalling it, but the problem is still there.

https://files.fm/u/nybsq2y87v

I used the Progressify / Instantify (PWA) plugin on my WordPress site and enabled “block screenshots” and “disable zoom on mobile”. I then deactivated the plugin, deleted it completely, and cleared all caches.

Problem: even after uninstalling, the site still behaves like the plugin is active:

Mobile pinch-to-zoom is still disabled Screenshot blocking is still active

That’s the cache issue. It will be auto-refreshed

I’m also having issues with the non PWA environment, that is, when browsing the page with normal browser, because it’s displaying the navigation tab bar, for example, like if it was in the PWA.

I was using previously the Instantify plugin and it was using a cookie (or a query param in the URL) to allow server to serve the right content (and avoid issues with page cache like on nginx). But with this new plugin it seems that there is no cookie or query param so it leads into some issues with cache in my site.

¿Can the isPwa cookie be restored into this plugin in future updates?

Thank a lot in advance,

Hi,

Thank you for contacting us. We will need your purchase code first to verify your purchase to answer your question.

Thank you

We need more selectors for used colors. Right now you can only select two colors into the plugin settings page, but we need to change the color over the top bar (the zone where the time, battery, network icons, etc.) different from the others. Also it could be useful to allow color selection for the logo icon background color and other items like the navigation tab bar and push notifications button, etc.

So only two colors like it is right now is not enough for many things and site particularities.

Hi,

Thank you for contacting us. We will need your purchase code first to verify your purchase to answer your question.

Thank you

grpetz

grpetz Purchased

hello. is there any integration with SureCart? if not, is it a planned feature to be added? thank you!

Hi,

SureCart is natively supported. While there isn’t a specific integration yet for features like push notifications, we plan to include that in our development roadmap.

Thank you

grpetz

grpetz Purchased

Thank you. I responded to your email for activation of our license and I have a problem with SEO and Best Practices on google page speed. both have a ’!’ showing, normally it is 100% before you plugin, after activating your plugin it shows the ’!’, so somewhere it is interfering with Yoast SEO or something like that? Thank you for looking into it.

Hi,

If you have background sync enabled, disable that and it should fix the issue. There is a bug that this happens sometimes that we are fixing now and will include that in the next version of the plugin.

Hello,

I have a pre-purchase question regarding the Progressify plugin. My project includes a main website and several subdomains, each with a separate WordPress installation:

website.com, sub1.website.com, sub2.website.com, sub3.website.com

Could you please clarify whether I can use the activation key on the main website only, or if I need to use (or activate) the same key on all subdomains as well?

Thank you in advance for your clarification.

Hi,

You will be able to use one license on all of your websites as long as they are under same domain.

Thank you

Hello, I bought progressify yesterday 10/16/25 for my website, after making all the configurations and testing on the website, my website became heavier, it takes a long time to open, even in the wordpress panel it gets stuck, it takes a long time to open, can you help before I discard this plugin

Hi,

Sure we can look into that. Could you please send us your website URL with temporary WP admin credentials and we will check that.

Thank you

Hello Progressify Team, I’ve encountered a critical issue with the Background Sync feature that causes browser console errors and performance problems. I’m providing a detailed report and a working solution. Problem Description When Background Sync is enabled, the Service Worker attempts to queue all failed POST requests, including Content Security Policy (CSP) reporting requests to csp.withgoogle.com. These CSP requests:

Fail due to CORS restrictions (redirect mode conflict) Get added to the Background Sync queue Continuously retry in an infinite loop Generate thousands of console errors Cannot be successfully sent, creating permanent queue pollution

Error Messages Background sync failed: queue-replay-failed Fetch API cannot load https://csp.withgoogle.com/csp/frame-ancestors/... Request mode is “no-cors” but the redirect mode is not “follow” Root Cause In includes/appcapabilities.php, the addBackgroundSyncToServiceWorker() method uses a RegExp that matches nearly all URLs: phpnew RegExp(‘^(?!.wp-admin).$’) This catches CSP reporting endpoints, which should never be queued for retry. Proposed Solution File: includes/appcapabilities.php Method: addBackgroundSyncToServiceWorker() Replace the current implementation with: phppublic function addBackgroundSyncToServiceWorker($serviceWorker) { if (Plugin::getSetting(‘appCapabilitiesadvancedWebCapabilities‘) !== ‘on’ || Plugin::getSetting(‘appCapabilitiesadvancedWebCapabilities‘) !== ‘on’) { return $serviceWorker; } } Why This Fix Works

$serviceWorker .= " 
// Prevent CSP reporting and other non-cacheable requests from entering Background Sync
self.addEventListener('fetch', (event) => {
  const url = event.request.url;
});
// Handle CSP reporting requests directly, bypassing Workbox
if (url.includes('csp.withgoogle.com') || 
    url.includes('csp.google.com') ||
    url.includes('/csp/')) {
  event.respondWith(fetch(event.request.clone()));
  return;
}
workbox.loadModule('workbox-background-sync');
workbox.routing.registerRoute(
  ({request}) => {
    const url = request.url;
);";
// Exclude CSP reporting, wp-admin, and wp-json
  if (url.includes('csp.withgoogle.com') || 
      url.includes('csp.google.com') ||
      url.includes('wp-admin') ||
      url.includes('wp-json')) {
    return false;
  }
},
new workbox.strategies.NetworkOnly({
  plugins: [
    new workbox.backgroundSync.BackgroundSyncPlugin('backgroundSyncQueue', {
      maxRetentionTime: 24 * 60,
      onSync: async ({queue}) => {
        try {
          await queue.replayRequests();
          console.log('Background sync completed');
        } catch (error) {
          console.error('Background sync failed:', error);
        }
      }
    })
  ]
})
// Only handle POST requests
return request.method === 'POST';
return $serviceWorker;

Early interception: CSP requests are handled in a dedicated fetch listener before Workbox routing Explicit exclusion: Function-based routing provides clear URL filtering No queue pollution: CSP requests never enter the Background Sync queue Maintains functionality: Background Sync still works for legitimate POST requests

Testing Steps

Enable Background Sync in plugin settings Visit a site with Google Tag Manager or reCAPTCHA (common CSP generators) Open DevTools Console Verify no “queue-replay-failed” errors appear Confirm POST requests to your own endpoints still queue properly

Impact This issue affects any site using:

Google Tag Manager Google reCAPTCHA Google Analytics with CSP headers Any service generating CSP violation reports

I hope this helps improve the plugin. Thank you for your great work on Progressify! Best regards

Hi

Thank you for this report. We have already fixed it and included this in new update

Subject: Urgent: Plugin Activation Issue – siya@grabbing.agency

I’m writing to follow up on my email from last week regarding an activation issue with your plugin. I’m unable to activate it on my client’s live site due to an “activation limit exceeded” error, even after removing all related transient data from the database. This is blocking the completion of an overdue project, and your prompt assistance would be greatly appreciated.

Hi,

Please note that you will be able to activate plugin on only one domain at a time. Please give us your purchase code at support@daftplug.com and we will reset it for you.

Hi!

I haven’t benefited from the plugin yet, even though I purchased it four years ago.

I recently contacted you to resolve my issue, and you told me that work is underway and that we will contact you. This was over a month ago, and there has been no response or resolution to the issue.

My last message regarding the issue (over a month ago): I’m waiting for that solution. About “conflicts with the PHP 8.1 version on my site” Because I haven’t benefited from the plugin yet since purchasing it.

Your last response: Sorry, we are working on this version and will update you soon about it.

Msam85

Msam85 Purchased

Hi, I have bought a license but I needed to change the domain (it was in the staging dev site). I’ve sent you an email to support @ daftplug.com about 2 weeks ago to kindly asking you for disabling the key to activate it in another domain but I haven’t received no response so far.

Can you please disable my key to be able to use it on the final domain?

Thank you

We have reset it

Msam85

Msam85 Purchased

Thanks!. One question: the bottom menu bar is totally at the bottom of the screen so in iPhone the navigation menu is overlapping the iOS home indicator area (the bar used to swipe between apps).

So I tried to add some padding using the “Custom PWA CSS” field

nav.navigation-tab-bar { padding-bottom: 40px; }

but it has no effect.

Also I would like to hide the menu labels to show only the icon, again, tried with CSS but no effect.

Can you please help me?

Thanks

For applying custom CSS to Progressify’s components, you will need JS, something like this:

const interval = setInterval(() => { const el = document.querySelector(‘pwa-navigation-tab-bar’); if (el?.shadowRoot) { const style = document.createElement(‘style’); style.textContent = ` .navigation-tab-bar { padding-bottom: 25px !important; } `; el.shadowRoot.appendChild(style); clearInterval(interval); } }, 500);

As for showing only icons without labels, in the next version you will be able to leave labels empty, they won’t be required anymore.

Thank you

I have a few questions and suggestions:

1.Push Notifications – Automation: Regarding the “WooCommerce Order Status Update,” will it be sent to all subscribers instead of just the customer who placed the order? Based on my tests, it seems that users who didn’t place the order are also receiving the notification. Price Drop, Sale Price, and Back In Stock notifications should also be sent to all subscribers, right?

2.I want to add a JavaScript snippet that only runs within the PWA app. Is checking for the .isPwa class the correct way to do this?

3.Do you have any plans to add a feature for customizing the display time for both the “Installation Prompts” and the “Push Notifications – Prompt”?

4.I’ve noticed in previous support threads that several users have mentioned that if the root font size is not set to 100%, the plugin’s styling appears broken, requiring a JavaScript fix to adjust the values. I’m facing the same issue as my root font size is set to 62.5%. Would it be possible to add a custom setting in the plugin to define a font size that applies only to your plugin?

Thanks for your detailed reply.

Regarding the first one, the WooCommerce Order Status Update: I tested it again (on Android and iOS, I place the order on desktop), and it seems that all users receive the notification whenever an order is placed or the order status is updated, not just the customer who placed the order.

Hi again,

We checked and there is certain scenario when it might be sent to everyone. We have already fixed that and will include that in the next version.

Thank you.

Fatal Errors: 2025-10-11T16:56:29+00:00 Critical Uncaught TypeError: DeviceDetector\DeviceDetector::__construct(): Argument #1 ($userAgent) must be of type string, null given, called in /home/1059008.cloudwaysapps.com/autpuhggwr/public_html/wp-content/plugins/daftplug-progressify/includes/plugin.php on line 563 and defined in /home/1059008.cloudwaysapps.com/autpuhggwr/public_html/wp-content/plugins/daftplug-progressify/vendor/matomo/device-detector/DeviceDetector.php:188 Additional context { “error”: { “type”: 1, “file”: ”/home/1059008.cloudwaysapps.com/autpuhggwr/public_html/wp-content/plugins/daftplug-progressify/vendor/matomo/device-detector/DeviceDetector.php”, “line”: 188 }, “remote-logging”: true, “backtrace”: [ ””, ”#0 /home/1059008.cloudwaysapps.com/autpuhggwr/public_html/wp-content/plugins/daftplug-progressify/includes/plugin.php(563): DeviceDetector\DeviceDetector->__construct()”, ”#1 /home/1059008.cloudwaysapps.com/autpuhggwr/public_html/wp-content/plugins/daftplug-progressify/frontend/frontend.php(76): DaftPlug\Progressify\Plugin::isPlatform()”, ”#2 /home/1059008.cloudwaysapps.com/autpuhggwr/public_html/wp-includes/class-wp-hook.php(324): DaftPlug\Progressify\Frontend->loadAssets()”, ”#3 /home/1059008.cloudwaysapps.com/autpuhggwr/public_html/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters()”, ”#4 /home/1059008.cloudwaysapps.com/autpuhggwr/public_html/wp-includes/plugin.php(517): WP_Hook->do_action()”, ”#5 /home/1059008.cloudwaysapps.com/autpuhggwr/public_html/wp-includes/script-loader.php(2263): do_action()”, ”#6 /home/1059008.cloudwaysapps.com/autpuhggwr/public_html/wp-includes/class-wp-hook.php(324): wp_enqueue_scripts()”, ”#7 /home/1059008.cloudwaysapps.com/autpuhggwr/public_html/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters()”, ”#8 /home/1059008.cloudwaysapps.com/autpuhggwr/public_html/wp-includes/plugin.php(517): WP_Hook->do_action()”, ”#9 /home/1059008.cloudwaysapps.com/autpuhggwr/public_html/wp-includes/general-template.php(3065): do_action()”, ”#10 /home/1059008.cloudwaysapps.com/autpuhggwr/public_html/wp-content/themes/bricks/header.php(7): wp_head()”, ”#11 /home/1059008.cloudwaysapps.com/autpuhggwr/public_html/wp-includes/template.php(810): require_once(’...’)”, ”#12 /home/1059008.cloudwaysapps.com/autpuhggwr/public_html/wp-includes/template.php(745): load_template()”, ”#13 /home/1059008.cloudwaysapps.com/autpuhggwr/public_html/wp-includes/general-template.php(48): locate_template()”, ”#14 /home/1059008.cloudwaysapps.com/autpuhggwr/public_html/wp-content/themes/bricks/page.php(2): get_header()”, ”#15 /home/1059008.cloudwaysapps.com/autpuhggwr/public_html/wp-includes/template-loader.php(106): include(’...’)”, ”#16 /home/1059008.cloudwaysapps.com/autpuhggwr/public_html/wp-blog-header.php(19): require_once(’...’)”, ”#17 /home/1059008.cloudwaysapps.com/autpuhggwr/public_html/index.php(17): require(’...’)”, ”#18 {main}”, “thrown” ] }

Could you please provide us with your website, and temporary credentials on support@daftplug.com and we will check it.

Sent.

by
by
by
by
by
by

Tell us what you think!

We'd like to ask you a few questions to help improve CodeCanyon.

Sure, take me to the survey