• Hi Folks,
    I’m running a Woocommerce shop and changed from W3 Total Cache to Swift Performance light a few weeks ago. After configuring Swift with custom cache exceptions for some pages like cart and checkout (and some more) everything seemed to work fine. Even the action-based cache update for single products/posts/etc. is working fine.

    But there is one issue I can’t get fixed.
    If a customer wants to create an customer account the registration process thows following error:

    Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'Swift_Performance_Cache' does not have a method 'clear_cache_after_post' in /www/htdocs/xxxx/xxxx/wordpress/wp-includes/class-wp-hook.php on line 288
    
    Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/xxxx/xxxx/wordpress/wp-includes/class-wp-hook.php:288) in /www/htdocs/xxxx/xxxx/wordpress/wp-includes/pluggable.php on line 1251
    
    Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/xxxx/xxxx/wordpress/wp-includes/class-wp-hook.php:288) in /www/htdocs/xxxx/xxxx/wordpress/wp-includes/pluggable.php on line 1254

    The point where the error occours is the point where the customer should be redirected to the woocommerce /my-account page for checking if the account has been activated. In a properly working registration the URL should be /my-account/?account=activate
    It is necessary to use e-mail verification during the regisration process because of european laws.

    So I’m wondering what is Swift doing here. It should not interfere with dynamic requests. Also the option for dynamic caching is disabled.

    The complete /my-account area with all sub-pages is excluded from caching. Once by selecting the “My-Account” Page from the dropdown at the “Exclude Pages” Section. But this seems to affect only the parent page, not the sub pages like Orders or Adresses.
    Secondly by entering “/my-account” in a Field at “Exclude Content Parts”. This seems to affect the sub pages also. Since this is active all dynamic functions, like displaying new orders or notifications after account changes are working well again.

    Only the registration still doesn’t work…

    So could you please give me advice how to “teach” Swift not to interfere with dynamic stuff at all? Or how to exclude this specific call?

    Thanks in advice.

Viewing 6 replies - 1 through 6 (of 6 total)
  • Plugin Contributor Fred

    (@fredawd)

    Hi,
    Start with sharing your site URL and tell us if you use a custom plugin for email verifcation?

    Thread Starter rohe

    (@rohe)

    Hi Fred,
    thanks for the quick answer. This is pretty cool.

    the URL is https://hexerey.com/my-account/

    The e-mail verification is managed by “woocommerce germanized”, a plugin which adds some functions to woo and adjusts some other so that woo complies to german and european law.

    As far as I understand the mechanics of the registration process, it breaks at the point at which the user should be redirected back to the my-account mainpage. Also at this point there should be a cookie check if the confirmation is already done. Depending on the result of this check a dynamic driven message should either welcome the user or ask him to check his mails and confirm registration.
    But cookie check and triggering the message should be standard woocommerce features… afaik.

    Plugin Contributor Fred

    (@fredawd)

    Maybe wp-nonce is causing this issue. Please switch Cache Expiry Mode to Time Based Mode and set Cache Expiry Time at 10 hours.

    Thread Starter rohe

    (@rohe)

    Hi Fred,

    Nope, sorry. Doesn’t work.
    Changed settigs as you told, cleared cache, tried. Same result as always.

    • This reply was modified 5 years, 8 months ago by rohe.
    Thread Starter rohe

    (@rohe)

    Hi Fred,

    still not working. Neither in time based nor in action based mode.

    And after testing your advice and switching back to action based mode (the only change I made), Swift now got another issue:
    After clearing cache Swift should rebuild it automatically and it starts doing this. But after a few seconds it is starting from the beginning again and is caching the same 10-15 pages again and again and again…

    The Log shows neither errors nor warnings.

    Sorry, but I got the feeling Swift is not suitable as a caching-solution for big sites with daily updates like an onlineshop.
    I will wait about another day if you maybe have a solution, but I think it is better to switch back to W3 Total Cache. It is not as efficient as Swift, but it is working.

    Plugin Contributor Fred

    (@fredawd)

    Hi,

    Sorry to hear, but off course you are free to chosse another solution.
    FYI: In general, Swift plays well with the majority of sites. We have 1000s of sites that run on (large) Ecommerce sites without any issue.

    Anyway, good luck with your mission and thanks for letting us know.

Viewing 6 replies - 1 through 6 (of 6 total)
  • The topic ‘Woocommerce customer registration process not working’ is closed to new replies.