From 7aabda47a18308be89c0a6501636bcdb3ccba31d Mon Sep 17 00:00:00 2001 From: Vedanshu Jain Date: Tue, 24 Jan 2023 14:47:05 +0530 Subject: [PATCH] Move the namespace algorithm functions to dedicated CacheNameSpaceTrait. We intend to use the same namespacing algorithm for HPOS orders cache like we have been using before for posts. Moving this structure to a common trait allow us to use the same logic for both posts and HPOS. --- .../includes/class-wc-cache-helper.php | 43 ++---------- .../includes/class-wc-order-factory.php | 2 - .../src/Caching/CacheNameSpaceTrait.php | 66 +++++++++++++++++++ .../{WpCacheEngine.php => WPCacheEngine.php} | 0 4 files changed, 70 insertions(+), 41 deletions(-) create mode 100644 plugins/woocommerce/src/Caching/CacheNameSpaceTrait.php rename plugins/woocommerce/src/Caching/{WpCacheEngine.php => WPCacheEngine.php} (100%) diff --git a/plugins/woocommerce/includes/class-wc-cache-helper.php b/plugins/woocommerce/includes/class-wc-cache-helper.php index e80611619ae..9c0296633e0 100644 --- a/plugins/woocommerce/includes/class-wc-cache-helper.php +++ b/plugins/woocommerce/includes/class-wc-cache-helper.php @@ -5,12 +5,15 @@ * @package WooCommerce\Classes */ +use Automattic\WooCommerce\Caching\CacheNameSpaceTrait; + defined( 'ABSPATH' ) || exit; /** * WC_Cache_Helper. */ class WC_Cache_Helper { + use CacheNameSpaceTrait; /** * Transients to delete on shutdown. @@ -42,7 +45,7 @@ class WC_Cache_Helper { */ public static function additional_nocache_headers( $headers ) { global $wp_query; - + $agent = isset( $_SERVER['HTTP_USER_AGENT'] ) ? wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) : ''; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized $set_cache = false; @@ -114,44 +117,6 @@ class WC_Cache_Helper { } } - /** - * Get prefix for use with wp_cache_set. Allows all cache in a group to be invalidated at once. - * - * @param string $group Group of cache to get. - * @return string - */ - public static function get_cache_prefix( $group ) { - // Get cache key - uses cache key wc_orders_cache_prefix to invalidate when needed. - $prefix = wp_cache_get( 'wc_' . $group . '_cache_prefix', $group ); - - if ( false === $prefix ) { - $prefix = microtime(); - wp_cache_set( 'wc_' . $group . '_cache_prefix', $prefix, $group ); - } - - return 'wc_cache_' . $prefix . '_'; - } - - /** - * Increment group cache prefix (invalidates cache). - * - * @param string $group Group of cache to clear. - */ - public static function incr_cache_prefix( $group ) { - wc_deprecated_function( 'WC_Cache_Helper::incr_cache_prefix', '3.9.0', 'WC_Cache_Helper::invalidate_cache_group' ); - self::invalidate_cache_group( $group ); - } - - /** - * Invalidate cache group. - * - * @param string $group Group of cache to clear. - * @since 3.9.0 - */ - public static function invalidate_cache_group( $group ) { - wp_cache_set( 'wc_' . $group . '_cache_prefix', microtime(), $group ); - } - /** * Get a hash of the customer location. * diff --git a/plugins/woocommerce/includes/class-wc-order-factory.php b/plugins/woocommerce/includes/class-wc-order-factory.php index 973f6e5ec18..3851a048f49 100644 --- a/plugins/woocommerce/includes/class-wc-order-factory.php +++ b/plugins/woocommerce/includes/class-wc-order-factory.php @@ -13,8 +13,6 @@ use Automattic\WooCommerce\Utilities\OrderUtil; defined( 'ABSPATH' ) || exit; -use Automattic\WooCommerce\Utilities\OrderUtil; - /** * Order factory class */ diff --git a/plugins/woocommerce/src/Caching/CacheNameSpaceTrait.php b/plugins/woocommerce/src/Caching/CacheNameSpaceTrait.php new file mode 100644 index 00000000000..bf61e19a129 --- /dev/null +++ b/plugins/woocommerce/src/Caching/CacheNameSpaceTrait.php @@ -0,0 +1,66 @@ +