Forum Replies Created

Viewing 15 replies - 1 through 15 (of 55 total)
  • Thread Starter Matthieu

    (@theschappy)

    Hi @symptote,

    I can confirm the updated version 4.0.1 works again like charm.

    Many thanks for the prompt help!

    Matthieu

    Matthieu

    (@theschappy)

    @shahzeenfarooq

    I was able to solve my issue as well. After I have also rolled back to 10.0.4 on my servers in the morning, I checked the latest plugin zip file to be complete now. I have issued the wp-cli plugin update command manually at 10.45am CET and the update to latest 10.1.0 version completed successfully.

    Many thanks!

    Matthieu

    (@theschappy)

    Same issue here. Build 10.1.0 is broken as it only contains the single php woocommerce.php, apparently something went wrong during bundling.

    [13-Aug-2025 07:30:53 UTC] PHP Warning: require(/var/lib/wordpress/wp-content/plugins/woocommerce/src/Autoloader.php): Failed to open stream: No such file or directory in /var/lib/wordpress/wp-content/plugins/woocommerce/woocommerce.php on line 24
    [13-Aug-2025 07:30:53 UTC] PHP Fatal error: Uncaught Error: Failed opening required '/var/lib/wordpress/wp-content/plugins/woocommerce/src/Autoloader.php' (include_path='.:/usr/share/php') in /var/lib/wordpress/wp-content/plugins/woocommerce/woocommerce.php:24
    Stack trace: 0 /usr/share/wordpress/wp-settings.php(545): include_once() 1 /usr/share/wordpress/wp-config.php(68): require_once('…') 2 /usr/share/wordpress/wp-load.php(50): require_once('…') 3 /usr/share/wordpress/wp-blog-header.php(13): require_once('…') 4 /usr/share/wordpress/index.php(17): require('…') 5 {main}

    thrown in /var/lib/wordpress/wp-content/plugins/woocommerce/woocommerce.php on line 24

    This is what I have seen today in on some of my servers after daily auto updating via wp-cli tonight. I believe the complete plugin zip will re-uploaded to the repo, soon.

    Thread Starter Matthieu

    (@theschappy)

    Hey @pputzer,

    The original problem is not addressed. For the time being, affected used should consider to configure the following work around:

    1. Disable store transients in database setting in W3TC.
    2. Configure the W3TC setting Purge via WP cron to cleanup outdated transients in a regular interval.

    I have closed this thread: many thanks for pointing me to the right direction!

    Thread Starter Matthieu

    (@theschappy)

    @micropat what a fast response, that’s amazing.

    I can confirm: https://www.addtoany.com/ext/updater/files_list/ contains correct file list for download. Everything works correctly after refreshing the local cache. Correct hash suffix was .gfvbdf8m; corresponding assets are now served. Closing the ticket. Appreciate your help!

    Thread Starter Matthieu

    (@theschappy)

    The author of the wp-typography plugin pointed out here that outdated transients are removed from the database by the plugin iff wp_using_ext_object_cache is false. I suspect that W3TC with configured object cache will alter this WP setting to true. As the plugin does not know how the specific object cache works, it cannot run removal operations. As a result, expired transients will be present in the object cache as well as in the database if the Store transients in database setting is enabled. Thus, disabling this options removes the redundant storage from database and reduces load on the database. Furthermore, I have now configured W3TC’s Purge via WP cron setting for the object cache to cleanup outdated transients from it as well; otherwise it might grow in a similar way like the database.

    Thread Starter Matthieu

    (@theschappy)

    Hi @pputzer ,

    thanks for pointing to the right location of the plugin’s caching code.

    In the particular setup, memcache is used by W3TC as object cache (and in addition transients of the object cache are stored redundantly in the database for whatever backup reasons). You perform a cleanup iff wp_using_ext_object_cache is not true. However, I suspect that W3TC will change it to true once an object cache is configured with it. I have disabled the option “Store transients in database”, which prevents outdated copies of the aforementioned transients to be mirrored to the database, i.e. php memory consumption and database load is back to normal.

    However, what about the outdated transients in the object cache? I suspect that it holds the same list of transients as mentioned above; how to remove expired copies off the object cache if there is no cleanup performed in case of wp_using_ext_object_cache is true? You leave this to W3TC to figure out how and when to remove them, right? W3TC offers an option for scheduling a cronjob to purge the object cache regularly (many options reaching from hourly to daily), which appears to be a kind of workaround instead of triggering timer-based removal per expire date for each and every transient.

    FYI: Here is the cross reference to my corresponding question in the W3TC plugin support forum.

    Thread Starter Matthieu

    (@theschappy)

    Thank @vmarko for the prompt reply. For the time being, I tested to disable the option “Store transients in database” to see if this is a work around. I expect to have no new transients added to the database now (I would consider this as the default option if not already, because I do not see any benefits from duplicating transients in memcache and the database at the same time).

    For further investigation, here are some further settings:

    • Default lifetime of cache objects: 180s
    • Garbage collection interval: 600s
    • Purge via WP Cron: off

    Is garbage collection also running for transients stored in the database or only on disk as noted in the explanation? If the “Purge via WP Cron” task is scheduled, would this purge also the transients copies stored in the database; i.e. a be kind of regular cleanup task?

    Hi @anvilhouse,

    The warning message refers to a problem with a directory. Typically this is connected to problem with access rights. Therefore, please check if the mentioned directory exists and if the directory (as well its parents) are executable by the web server user, e.g. www-data otherwise opendir does not work.

    Cheers!

    Thread Starter Matthieu

    (@theschappy)

    I would like additional important observations: Affected WordPress instances have the W3 Total Cache plugin enabled with memcache as object cache and the option “Store transients in database” enabled. The plugin states about this option “Store transients in database even when external cache is used, which allows transient values to survive object cache cleaning/expiration”. I suspect that maybe W3 Total Cache add the transients with the expiry timestamp to the database and is not cleaning up correctly. I will also add a corresponding topic there and reference here.

    List of recent transient options:

    _transient_typo_1740565127_php_hyphenator_cache +476 secs.
    _transient_typo_1740564651_php_hyphenator_cache +195 secs.
    _transient_typo_1740564456_php_hyphenator_cache +189 secs.
    _transient_typo_1740564267_php_hyphenator_cache +216 secs.
    _transient_typo_1740564051_php_hyphenator_cache +256 secs.
    _transient_typo_1740563795_php_hyphenator_cache

    Thread Starter Matthieu

    (@theschappy)

    This is what I got 9hrs after cleaning up all caches (expect one) from the database: 175 cache records consuming 61 MB of DB storage as well as php memory consumption for each site request as they are all autoloaded.

    SELECT COUNT(*) as "Cache Records", ROUND(SUM(LENGTH(option_value)/1024/1024)) AS "Size in MB" FROM wp_options WHERE option_name LIKE '%php_hyphenator_cache'

    I can confirm the problem running WordPress 6.7.2, WooCommerce 9.6.2, WooCommerce-Germanized 3.18.7 with the system wide locale de_DE_formal as well as the locale set for the current admin backend user. Before updating to WP 6.7.x everything worked fine here. I suspect it is connected to changes introduced to the WordPress core on how to handle translations as mentioned here:  https://make.ww.wp.xz.cn/core/2024/10/21/i18n-improvements-6-7/. I do not have any languages/woocommerce folder or left overs.

    For example, in the Woocommerce backend menu I see “Returns” while other items are correctly translated, e.g. “Bestellungen” (orders). When looking at woocommerce-de_DE_formal.po and woocommerce-de_DE_formal.l10n.php both contain proper entries for
    msgid "Returns"

    msgstr "Retouren".

    Resolved: I was able to drill it down to a theme issues, making use of load_textdomain breaking plugin translations partially.

    • This reply was modified 1 year, 3 months ago by Matthieu.
    Thread Starter Matthieu

    (@theschappy)

    @doublezed2: I have identified the GitHub issue mentioned above (#44009) as possible connected to my support question here. Therefore, I have added relevant information to the GitHub issue and requested reopening the issue from earlier this year. Unfortunately, I am not allowed to reopening the issue (missing access permission). Therefore, I would be very thankful if you could reopen linked GitHub issue. Many thanks!

    Thread Starter Matthieu

    (@theschappy)

    To summarize my observations up to now: WordPress admin users do not see any issues. Any non-admin users without the manage_options WordPress capability will receive a HTTP 403 for the jetpack REST API endpoint /wp-json/jetpack/v4/connection/data. Typically, you do not want to have non-admin users equipped with manage_options capability, because it basically allows to manage and change the majority of WordPress settings. This might be connected to the issue ticket from Jan 2024: https://github.com/woocommerce/woocommerce/issues/44009. I will link this thread there and request additional support.

    Thread Starter Matthieu

    (@theschappy)

    As current_user_can() is using map_meta_cap() to check for capabilities, you also require to enable the capability manage_options (meta capability) in addition to jetpack_connect_user capability for your user or user role to make it work.

Viewing 15 replies - 1 through 15 (of 55 total)