WordPress.org

Ready to get started?Download WordPress

Forums

WP eCommerce
[resolved] functions.php loading multiple times (11 posts)

  1. Vince
    Member
    Posted 5 months ago #

    Hi everyone,

    I wanted to see if anyone has run across the issue that I am having. With the plugin enabled, my functions.php (and others up the chain i'm sure) is being loaded multiple times per page request. This happens on any page as long as the plugin is enabled.

    I have tried disabling all plugins and checking one by one and it only happens when this plugin is enabled.

    Before I start on a long debug session, I wanted to see if anyone has run into this or if the developers of the plugin know. My site is not live and has been in development for a while. I'm at a point now where I need to solve this issue. I also tried other themes just for kicks and get the same results. BTW, I'm running version 3.8.13.3 (latest version) of the plugin WordPress 3.8.1.

    Thanks,

    Vince

    https://wordpress.org/plugins/wp-e-commerce/

  2. Jeff Pye Brook
    Member
    Posted 5 months ago #

    I haven't observed this. One thing to try would be to switch to the 2014 theme, disable plugins other than WPEC, and see if the 2014 functions.php is loaded multiple times.

    If it isn't the case re-enable your theme before turning other plugins on, does functions.php load multiple times?

    Start turning on the plugins and see if the behavior changes.

  3. Edward
    Member
    Plugin Author

    Posted 5 months ago #

    With a clean install using only the store plugin and default theme I am unable to produce this result. Please check by switching to a default wordpress theme such as 2010 and be sure to clear the store template cache on the presentation settings tab before testing.

  4. Vince
    Member
    Posted 5 months ago #

    Thanks, I will try clearing the cache and switching the theme to see what happens.

  5. Vince
    Member
    Posted 5 months ago #

    I still get the same results when using the twentyfourteen theme. I did find this call which is likely causing the the second init.

    http://mysite.com/index.php?wpsc_user_dynamic_js=true&ver=3.8.13.3.5ec5b4d

    Since that is loading the index.php page, the would cause wp to init again.

    Thanks

  6. Jeff Pye Brook
    Member
    Posted 5 months ago #

    Vince, The repeated requests to the server for the script will certainly consume resources, but not more than any other page request.

    In fact, it should consume less than any other page request because as soon as the init is completed the server process doing the work exits. (theme.functions.php line 59).

    With that being said there is probably a better way to serve this content.

    One possibility if you want to avoid a request for this file on every page view is enable your caching solution or CDN to cache this specific request even though it has URL arguments. The caching solutions I use ignore URLs with arguments by default to avoid serving stale data.

    I have added an issue to the database with the information from this thread. The issue is number 984 if you want to follow it through the system. I do recall there being at least one other issue related to this specific file, but I couldn't put my hands on it.

  7. Vince
    Member
    Posted 5 months ago #

    Thanks for the reply Pye. I'm looking to squeeze out as much performance out of the site as possible. I will employ caching, but I wanted to eliminate the second request. Yes it's no more than a regular page request, but I'm getting 2 loads per request if that makes sense.

    What I did for now is wp_deregister_script('wp-e-commerce-dynamic');

    My site is a bit unique in that I don't need a cart per se. I just need to go from the user making a selection directly to checkout so some of what that did I don't need.

    Thanks

  8. Jeff Pye Brook
    Member
    Posted 5 months ago #

    It will get fixed up. There aren't too many opportunities to reduce the resources used per page by almost a factor of two.

    As a temporary fix and since you appear to be code savvy, instead of just de-registering the script why don't you see if you can take the contents of the script, wrap it in appropriate tags, and add the content into the header.php for your theme. That should prevent any of the js dependant on the variables set in the dynamic script from having issues.

    - jeff

  9. Vince
    Member
    Posted 5 months ago #

    Thanks again Jeff. I did think of adding the output directly. As of right now I doesn't look like I need it, but if I run into any issues that is what I will do. I'm testing this evening so will post back with any updates. Thanks again for taking the time to reply.

  10. whitelamp
    Member
    Posted 4 months ago #

    What I've done a couple of times for clients with slow sites is create static versions of various bits of slow content and add the following (or similar) to .htaccess:

    RewriteCond %{QUERY_STRING} wpsc_user_dynamic_js=true
    RewriteCond %{QUERY_STRING} ver=3.8.11.1
    RewriteRule index.php static-wpsc_user_dynamic_js [L]

    Obviously if the version number changes you'll have to re-do it, but it won't break.

  11. Vince
    Member
    Posted 4 months ago #

    Thanks for that info. It's not that the site is slow, but as a developer I try to optimize and eliminate redundant calls and such. The issue is that I have some stuff happening in the functions file after an order is placed and noticed that it was being called multiple times. I can work around it, but as Jeff mentioned, that will be fixed up soon.

    Thanks

Reply

You must log in to post.

About this Plugin

About this Topic