• Resolved mh4press

    (@mh4press)


    Hi there! I’m just researching what can be done to utilize WCFM’s Subscription system for vendors to block hide a few WP pages that are for venfors only. Apparently they don’t offer any kind of WP_User_Class adjustment options, even though they have a great API for modifying Vendor’s products/inventory etc. But WooCommerce Subscription is $200/year, and WCFM is cheaper / life.

    If I can’t adjust the code on the WCFM side to modify WP user roles, do You think I can modify code on Your side in order to possibly check WCFM user data, with a place for custom code that won’t update/dissappear?

Viewing 5 replies - 1 through 5 (of 5 total)
  • Plugin Support Kim L

    (@kimmyx)

    Hi @mh4press,

    Is “vendor” a user role added by WCFM? As long as the role exists in your list of user roles in Content Control, it can be utilized to restrict pages.

    Feel free to install our plugin and explore how it works. ??

    You can also find our documentation here: Content Control Plugin Docs

    Hope that helps. Let us know if you need anything else.

    @mh4press I’m using specifically this plugin with WCFM to make some articles “vendors only”. So yes you can and without coding. It’s a bit tricky to understand how it works at first as it is very complete (and therefore a bit complex), but it does the job well. However it is to be noted that in my case, Content Control causes around 10% performance hit on the website’s loading time (around +150ms of total 1500ms). I might create an issue about that if I find enough time.

    Plugin Author Daniel Iser

    (@danieliser)

    @robin-labadie – How many restrictions do you have set up? What kinds of rules are on each?

    The only performance penalties should be from comparison of conditions against content. These checks are cached for each peice of content, but can add up.

    That said there are several places that could happen, each with varying number of tries.

    • Main query, tries once against the global page.
    • Post query, checks every post in a loop to make sure they should be there.
    • Tax query, checks each tax against rules.
    • Rest API queries, checks the global query and items within.

    I’ll be honest and say we have attempted to cache much of this on a per page load basis. But If you have object caching, we can look at saving rule processing for each user/content in that cache for a day or 2, saving even more performance.

    I’d really need to know more about your situation, and how your discerning the performance implications.

    For the most part though, 95% of our checks require no extra loading of data, and test data that’s already there, so it must either be tons of checks on different content on each page, no caching support, or using the 5% of rules that might be getting extra data

    Definitely start a new thread, or better yet, email our support.

    Robin Labadie

    (@robin-labadie)

    Hey, thanks for the follow up @danieliser. I will probably open a topic specifically for that as this is a very different topic.

    I’ve detailed the only filter rule that i have on my other topic: https://www.ads-software.com/support/topic/critical-bug-memory_limit-reached-with-2-2-1/

    I have no cache for now on this site, since it’s a new website released recently and quite complex (Booking marketplace with WooCommerce and WCFM), I don’t want to introduce room for errors related to caching for now.

    But yeah, enabling your plugin adds 150ms loading time on home page (measured with plugin Query Monitor). When tested, the home page displayed two query loops, one with 1 test product and a second one for blog posts, showing 3 posts. Seems like a lot of resource/time for a small amount of things to filter. That’s on a server with an AMD Ryzen 9 3900 12-Core Processor, 128GB RAM, full SSD NVMe and 1Gbit/s net, and PHP 8.3 dedicated FPM, with low load on the machine. So on smaller configurations I can’t imagine how slow this could be in the same context.

    You may want to measure loading times using Query Monitor or Curl or GTMetrix or whatever, with and without the plugin and at least one filter, to see what kind of load time differences you get. Maybe WooCommerce that is already slow, combined with your plugin is the culprit. In any case it would be nice to have some performance optimization if possible.

    Plugin Author Daniel Iser

    (@danieliser)

    @mh4press – Haven’t heard back from you in some time. We are gonna close this ticket. There are options to create custom rules with code, but @robin-labadie pointed out it should just work already.

    @robin-labadie – Would love you to test that performance penalty against v2.4.0. Should see a 60-90% reduction in that penalty.

    Further you can check out Content Control Pro, we are adding this week a new feature for object caching on the heavy processing of restriction calculations that should work with Redis or others. With that enabled we have seen the render times in Query Monitor drop to +/- 1% of when Content Control is not even enabled.

    We can see some future optimizations of pre-calculating all of the restrictions into caches where possible, both for content matches and user permission checks. We need to work out how to let some rules bypass cache first though. Don’t want to cache things like WooCommerce Item In Cart etc.

Viewing 5 replies - 1 through 5 (of 5 total)
  • You must be logged in to reply to this topic.