* Added new detection of unnecessary GROUP BY when LIMIT 0,1 is being used
- this seems to happen in imports and causes a table scan of wp_posts, so this should result in a good boost for imports on large sites
* Added further improvement for 'defer term counting'
- when a new item is published, that post types cache is wiped
- this leads to slower imports since an entire recount can happen after every import
- The change has modified this query to fetch data from our own cache table which stores the counts for 24 hours if you enable the defer term counting option
* Added Optimize Product Attributes Lookup functionality to the Imports tab
- WooCommerce maintains the product attributes table EVEN IF you deselect to use it
- One outstanding issue here on larger sites is the SQL where they check WHERE product_id = 984353 OR product_or_parent_id = 984353;
- only the product_or_parent_id needs to be checked in this case and then an index gets used
- This functionality alters this SQL query if you enable the option on the Imports tab
Fixed bug in new update system where license key was not being passed properly to secure download link
* Hotfix for new updates system - if your server was configured to disable remote URL requests, a critical error was happening upon upgrade. This has been fixed with a warning message that you cannot check for updates.
Upgraded updates sytem so it uses JSON and gets zip file from license-key-checked URL
- Fixed bug in reducing storage of action scheduler items
- Added new Beta SPRO_CACHE_PMXE_META_KEYS option
- to enable, add define(SPRO_CACHE_PMXE_META_KEYS, true); to your wp-config.php
- when exports start with WP All Export, it counts the unique meta keys in your table
- on large sites, this can be a pain
* Improved speed of 'Remove check for private items' option - moved it from the 'query' filter to the pre_get_posts filter - this reduces CPU usage on sites with high query counts
* Fixed 'Remove Sort Order' and 'Remove SQL CALC ROWS' options so that they operate on taxonomy langing pages as well as filtered archives
* Added new Ajax search capability for when editing a products attributes - helps if you have a lot of terms
- We had a client with 100,000+ terms in an attribute (artists of a song)
- WooCommerce loads all 100,000+ of these artists into the HTML select box on the Edit Product page
- this makes the initial page load very slow AND it makes the page react really slowly because there is so much HTML for the browser to process
- the new option here transforms that dropdown into a box which shows the first 10 then you can search to find others
* Added fix for WooCommerce onboarding - this speeds up wp-admin on our foundthru site from 10s to 1s in most cases, and from 70s to 1s in some cases!
- Woo Onboarding uses the has_products function which for some stupid reason performs a table scan
- this check IS cached, but if you edit any products and/or are performing imports then this cache would be wiped and you'd be immediately back to slow performance
- we have added a separate 24 hour cache so that even if you are running imports this simple check for has_products() will be intercepted and return true
* Added new Import Tab option to reduce the number of image sizes generated
- by default, WordPress creates images in all registered sizes
- this could mean you have 20+ images being generated in different sizes on your server when you upload a single image - this uses excessive disk space and CPU
- this new option adjusts WordPress so only the images you choose get created
* Added new index for use by Rankmath on wp_rank_math_analytics_objects table on object_id - speeds up rankmath analytics
* Added new index on posts on post_modified_gmt
* Fixed JS bug affecting the new 'Ajaxify term search' option. The search was working, but the wp-admin JS was replacing the option list with the original list. Now searching for terms in huge term lists is very fast.
* Fixed bug with defer term counting which was preventing new menu items being added to brand new menus
* Added option to track creation of wp_scalability_pro_cache table rather than checking information_schema.tables every page load