Automattic\WooCommerce\Internal\Admin
SiteHealth::should_suggest_persistent_object_cache()
Counts specific types of WooCommerce entities to determine if a persistent object cache would be beneficial.
Note that if all measured WooCommerce entities are below their thresholds, this will return null so that the other normal WordPress checks will still be run.
Method of the class: SiteHealth{}
No Hooks.
Return
true|null
. True if the store would benefit from a persistent object cache. Otherwise null.
Usage
$SiteHealth = new SiteHealth(); $SiteHealth->should_suggest_persistent_object_cache( $check );
- $check(true|null) (required)
- A non-null value will short-circuit WP's normal tests for this.
SiteHealth::should_suggest_persistent_object_cache() SiteHealth::should suggest persistent object cache code WC 9.3.3
public function should_suggest_persistent_object_cache( $check ) { // Skip this if some other filter has already determined yes. if ( true === $check ) { return $check; } $thresholds = array( 'orders' => 100, 'products' => 100, ); foreach ( $thresholds as $key => $threshold ) { try { switch ( $key ) { case 'orders': $orders_query = new \WC_Order_Query( array( 'status' => 'any', 'limit' => 1, 'paginate' => true, 'return' => 'ids', ) ); $orders_results = $orders_query->get_orders(); if ( $orders_results->total >= $threshold ) { $check = true; } break; case 'products': $products_query = new \WC_Product_Query( array( 'status' => 'any', 'limit' => 1, 'paginate' => true, 'return' => 'ids', ) ); $products_results = $products_query->get_products(); if ( $products_results->total >= $threshold ) { $check = true; } break; } } catch ( \Exception $exception ) { break; } if ( ! is_null( $check ) ) { break; } } return $check; }