Forum Replies Created

Viewing 14 replies - 1 through 14 (of 14 total)
  • Plugin Author MaxtDesign

    (@slaacr)

    Hey, thanks so much for taking the time to dig into this and write it up. Updates like 1.7.6 are way more fun to ship when someone actually reads the changelog and comes back with sharp follow-ups, so genuinely, this made my day.

    Let me answer these in order.

    Re-prompting… You’re onto something here. Right now, closing the popup sets a short “already shown” cookie so we don’t nag, but you’re right that a dismissal isn’t really a choice. There’s a nice legal angle too. Under GDPR, closing without selecting is neither consent nor a refusal, so re-asking on a later visit is actually more defensible than re-prompting after someone explicitly declined. I’d want to ship this as an optional setting rather than default behavior (some site owners specifically don’t want any re-prompting), but it’s a good idea and it’s going on the list for a future release.

    Inlining vs enqueuing… This one I want to explain properly, because it’s a deliberate design choice tied to how the plugin is built. The whole plugin runs on a “zero-footprint, performance-first” philosophy. No extra frontend HTTP requests, nothing render-blocking, nothing loaded that doesn’t need to be. A consent banner has to be on screen at first paint, so an extra network round-trip to fetch a small script is exactly the kind of thing we’re trying to avoid. Inlining means zero additional requests and the banner is ready the moment the page is.

    On caching specifically. The popup only loads while it actually needs to show. The second a visitor makes a choice, the plugin stops emitting the popup CSS and JS entirely on every page after that. So an externally cached file wouldn’t really get re-served, because by the time caching would pay off, there’s nothing left to serve. The script is “show once, then disappear” by design.

    On optimization plugins? it can go both ways. External files are the ones that tend to get combined, deferred, or caught by “delay JavaScript” features in the big optimization plugins, and that would break a consent gate that has to run before anything else. An inline block with its own config is usually the more predictable option for something this render-critical.

    That said, you caught a good one! The inlined JavaScript currently ships with its full comments. The CSS is already minified, and there’s no reason the inline JS shouldn’t be too. I’ll get that added.

    A filter for should_show_popup(). Yes, absolutely. Just the kind of clean, native escape hatch I’m happy to add, and it costs nothing on the footprint side. You’ll be able to do precisely what you described:

    add_filter('mdcc_should_show_popup', function($show) {    return is_page('contact') ? false : $show;});

    I’ll add that into both the render and enqueue paths so returning false cleanly skips everything.

    Thanks again for the thoughtful feedback. The filter and the inline-JS minify are both easy wins I can fold into the next release, and the dismiss re-prompt goes on the roadmap. Really appreciate you taking the plugin seriously enough to push on it.

    • This reply was modified 15 minutes ago by MaxtDesign.
    Plugin Author MaxtDesign

    (@slaacr)

    Version 1.7.6 is up – release will roll out over the next 24 hours. (the actual fix landed in 1.7.5, and 1.7.6 is a small follow-up on top of it). When you get a chance, please update and let me know it’s sorted on your end. Thanks again for letting me know.

    Plugin Author MaxtDesign

    (@slaacr)

    No Problem!

    Thanks so much for taking the time to point this out and the added supporting details, this was exactly the kind of writeup that makes a bug easy to track down. You were right about the cause: the popup wasn’t checking your stored consent before showing, so it kept reappearing even after you’d made a choice.

    I’m just finishing up testing now and plan to push an update later this afternoon. I’ll follow up here once it’s live so you can update and confirm it’s sorted on your end. Really appreciate your help.

    • This reply was modified 22 hours, 31 minutes ago by MaxtDesign.
    Plugin Author MaxtDesign

    (@slaacr)

    Thank you for the headsup. I’ll look into it right away.

    Plugin Author MaxtDesign

    (@slaacr)

    Sorry for the long delay.

    You can now update to 1.7.3 then use Loco Translate plugin.

    Plugin Author MaxtDesign

    (@slaacr)

    I appreciate your efforts on this Christer. All update have been posted.

    Plugin Author MaxtDesign

    (@slaacr)

    I appreciate your efforts on this Christer. All update have been posted.

    Plugin Author MaxtDesign

    (@slaacr)

    Thanks for reporting this

    It looks like the JavaScript that controls the popup was trying to initialize before the popup HTML had finished rendering on the page. Chrome’s faster JavaScript engine made this more noticeable there, but it could happen on any browser depending on load speed.

    I’ve changed how the popup initializes – now it waits for the full page load instead of just the DOM ready event. This ensures the popup HTML is definitely there before the JavaScript tries to interact with it.

    This fix is going live in version 1.7.2, which is currently being tested.

    Really appreciate you taking the time to report this with such detail – made tracking down the issue much faster.

    Plugin Author MaxtDesign

    (@slaacr)

    Hey there,

    Thank you so much for reaching out and for the detailed explanation of what you’re experiencing. Your feedback has highlighted an important feature gap in our plugin.

    What’s Happening Now:

    You’re absolutely right that ‘Decline All’ isn’t preventing tracking. This is because our plugin was originally designed with an ‘opt-out’ model in mind – meaning tracking is allowed by default until a visitor explicitly declines.

    What We’re Adding:

    However, your report has made it clear that many sites (especially those with EU visitors or GDPR requirements) need an ‘opt-in’ model where first-time visitors are not tracked until consent is given

    We’re currently developing this opt-in functionality and will be adding it as a configurable option in the plugin settings. This will let site owners choose which consent model fits their legal requirements and user base. I’m releasing version 1.7.1 in the next day or two that adds the missing first step. It’ll inject a small script into your site’s <head> section that sets everything to “denied” by default, so GTM knows not to track until the user actually gives permission.

    In the Meantime:

    If you need this working right away (totally understand if you do), you can manually add this snippet to your theme’s header.php file, right BEFORE your GTM code:

    html

    <script>
    window.dataLayer = window.dataLayer || [];
    function gtag(){dataLayer.push(arguments);}
    gtag('consent', 'default', {
        'analytics_storage': 'denied',
        'ad_storage': 'denied',
        'ad_user_data': 'denied',
        'ad_personalization': 'denied'
    });
    </script>

    That’ll hold you over until the update drops. Just remember to remove it after you update to 1.7.1 (the plugin will handle it automatically at that point).

    Thread Starter MaxtDesign

    (@slaacr)

    So not exactly, I have to go in a “regenerate css” all the time. Still rarely has any effects on the outcomes. What does happen, and is very suggestive of caching issues, is sometimes it will work on a fresh reload of the caches, CSS, browsers, etc. But as soon as I refresh or click off page and come back, it quits working. I have left everything installed as it is for now. I am going to move to a different server setup and see if there is something wrong with Apache settings. Maybe try Laragon. It doesn’t make sense to me that it’s not working, I’m just eager to solve this 🙂

    Thread Starter MaxtDesign

    (@slaacr)

    Nested Container Setup
    https://snipboard.io/k5FczG.jpg

    Settings for Container 1
    https://snipboard.io/voKFAN.jpg

    Settings for Container 2
    https://snipboard.io/hfsXzD.jpg

    Thread Starter MaxtDesign

    (@slaacr)

    I’m now of the mind that we cannot have multiple restrictions on the same page. Container 1 restricts logged out users or certain subscription plans. Container 2 is for logged in users with allowed subscriptions. I believe the multiple restrictions are having conflicts. The reason I think this is last set of settings on the page works after caching issues are resolved. I can swap the containers places and make test user changes (or log out) and it works instead.

    I’ve gone ahead and abandoned the use of this feature for now. I am going to go ahead and use elementors display conditions instead. Keep in mind, I would like to help fix this if you are interested.

    Thread Starter MaxtDesign

    (@slaacr)

    Ok, I do appear to have the issue pinned down. It concerns me greatly since new “subscribers” of any plan are likely to see all the buttons until.

    1. Logout
    2. Regenerate Elementor Cache & CSS
    3. Log back in ( if buttons still exist, refresh page ) and everything works for that user.

    If I upgrade that users plan, as long as I repeat those steps it works. Harsh for testing.. Even worse if I can’t figure out how to fix caching. I wonder if other caching plugins are going to do the same?

    • This reply was modified 1 year, 7 months ago by MaxtDesign.
    Thread Starter MaxtDesign

    (@slaacr)

    Thanks for getting back

    “testing this you should not test with an Administrator account or a user account that has Admin privileges”

    I had read your comment about that in another thread, this is why I created a test user. The user by default was a WordPress subscriber. I manually gave this user a subscription plan. Incognito didn’t change anything in way of blocking the content.

    After some contemplation last night, I had a hunch that I tested this morning. The initial solution is you cannot put the restricted content too deep in nested containers. I moved the buttons all the way out to the container that splits the body content (2nd level essentially). not ideal for this layout but I would have make made it work. Just to be thorough the 3rd level container that housed the buttons was supposed to be restricted, for efficiency, not every button individually. It did not matter whatsoever what settings you put on that container or buttons, everything showed on 3rd level container. Somehow changing the page in a significant way temporarily fixed it.

    With the test user on the basic plan the right buttons showed and the higher plan button went away. Hurray! Now, If you change the subscription plan on the test user to a higher plan ALL buttons show again. Regardless of settings. I am not using a cache plugin and dumping the browser cache and incognito once again still does not fix it. I switched the test user back to the lowest plan and all buttons show.

    Thanks

    • This reply was modified 1 year, 7 months ago by MaxtDesign.
Viewing 14 replies - 1 through 14 (of 14 total)