Home / Forums / WoodMart support forum / Critical Performance Issue: Auto-Loaded Review Transients Causing Database Overh
Home › Forums › WoodMart support forum › Critical Performance Issue: Auto-Loaded Review Transients Causing Database Overh
Critical Performance Issue: Auto-Loaded Review Transients Causing Database Overh
- This topic has 3 replies, 2 voices, and was last updated 3 weeks, 2 days ago by
Serg Sokhatskyi.
-
AuthorPosts
-
August 3, 2026 at 2:12 pm #724916
it-1760ParticipantHi WoodMart Support,
We are contacting you regarding a critical performance issue in the WoodMart theme that affects all installations running review aggregation features.
Issue:
The theme generates transients via set_transient( ‘wd_reviews_by_criteria_’ . $product_id . ‘_’ … ) with auto-load enabled. On sites with substantial product catalogues (like textbookcentre.com), this accumulates tens of thousands of transients that are auto-loaded on every page request, creating unnecessary database overhead and degrading performance.Our client environment:
– 80,000+ accumulated transients of this pattern
– Measurable performance impact on page load times and server resources
– The problem scales with store size, affecting all WoodMart installationsSolution:
Disable auto-load for the wd_reviews_by_criteria transient pattern. Change the set_transient() call to:set_transient( ‘wd_reviews_by_criteria_’ . $product_id . ‘_’ . $criteria, $data, EXPIRATION, false );
Setting the fourth parameter to false prevents WordPress from auto-loading these transients, while preserving the review caching functionality.
Action required:
1. Update the WoodMart theme code to set auto-load=false for this transient pattern
2. Release an updated version that includes this fix
3. Advise existing users how to deploy itThis change will improve theme performance across all WoodMart installations and is a best practice for transients of this scale.
Please confirm receipt and your timeline for releasing this fix.
August 3, 2026 at 2:20 pm #724919Hi there,
Thanks for the detailed report. We can confirm that this can be an issue on some installations with large catalogs.
However, the fix you propose won’t work. The WordPress
set_transientfunction doesn’t have a fourth parameter for autoload, so transients are autoloaded by design. Adding false as a fourth argument won’t change this behavior.We will add an expiration for these
wd_reviews_by_criteriatransients so they are stored only for a limited time rather than indefinitely, which will reduce database load and improve performance.Kind regards,
XTemos StudioAugust 3, 2026 at 2:27 pm #724921
it-1760ParticipantHi Serg Sokhatskyi,
Thanks for the update.
When is the transient set? Is it refreshed every day, or is it updated only when a specific activity or data change occurs on the website?
Thanks,
RaviAugust 3, 2026 at 5:56 pm #725007Hi there,
Thanks for following up.It isn’t refreshed on a schedule. The wd_reviews_by_criteria cache is only reset when there is actual review activity for that product. Specifically, we clear the transient on:
– comment_post (when a new review is submitted, inside save_comment_summary_criteria)
– trash_comment and delete_comment (when a review is trashed or deleted)
– wp_ajax_delete_comment (AJAX review deletion)After it’s cleared by one of the above events, it’s rebuilt when that product’s reviews are requested again.
Kind regards,
XTemos Studio -
AuthorPosts
- You must be logged in to create new topics. Login / Register