* REST API Reports Cache.
* Handles report data object caching.
namespace Automattic\WooCommerce\Admin\API\Reports;
defined( 'ABSPATH' ) || exit;
* REST API Reports Cache class.
* Cache version. Used to invalidate all cached values.
const VERSION_OPTION = 'woocommerce_reports';
public static function invalidate() {
\WC_Cache_Helper::get_transient_version( self::VERSION_OPTION, true );
* Get cache version number.
public static function get_version() {
$version = \WC_Cache_Helper::get_transient_version( self::VERSION_OPTION );
* @param string $key Cache key.
public static function get( $key ) {
$transient_version = self::get_version();
$transient_value = get_transient( $key );
isset( $transient_value['value'], $transient_value['version'] ) &&
$transient_value['version'] === $transient_version
return $transient_value['value'];
* @param string $key Cache key.
* @param mixed $value New value.
public static function set( $key, $value ) {
$transient_version = self::get_version();
$transient_value = array(
'version' => $transient_version,
$result = set_transient( $key, $transient_value, WEEK_IN_SECONDS );