oont-contents/plugins/webappick-product-feed-for-woocommerce/V5/Utility/Cache.php
2025-03-31 21:42:48 +02:00

63 lines
1.6 KiB
PHP

<?php
namespace CTXFeed\V5\Utility;
class Cache {
/**
* Get Cached Data
*
* @param string $key Cache Name
*
* @return mixed|false false if cache not found.
* @since 3.3.10
*/
public static function get( $key, $prefix = '__woo_feed_cache_' ) {
if ( empty( $key ) ) {
return false;
}
return get_transient( $prefix . $key );
}
/**
* Set Cached Data
*
* @param string $key Cache name. Expected to not be SQL-escaped. Must be
* 172 characters or fewer.
* @param mixed $data Data to cache. Must be serializable if non-scalar.
* Expected to not be SQL-escaped.
* @param int|bool $expiration Optional. Time until expiration in seconds. Default 0 (no expiration).
*
* @return bool
*/
public static function set( $key, $data, $expiration = false, $prefix = '__woo_feed_cache_' ) {
if ( empty( $key ) ) {
return false;
}
if ( false === $expiration ) {
$expiration = get_option( 'woo_feed_settings', array( 'cache_ttl' => 6 * HOUR_IN_SECONDS ) );
$expiration = (int) $expiration['cache_ttl'];
}
return set_transient( $prefix . $key, $data, $expiration );
}
public static function delete( $key, $prefix = '__woo_feed_cache_' ) {
if ( empty( $key ) ) {
return false;
}
return delete_transient( $prefix . $key );
}
/**
* Delete All Cached Data
*
* @return bool
*/
public static function flush() {
global $wpdb;
return $wpdb->query( "DELETE FROM $wpdb->options WHERE ({$wpdb->options}.option_name LIKE '_transient_timeout___woo_feed_cache_%') OR ({$wpdb->options}.option_name LIKE '_transient___woo_feed_cache_%')" ); // phpcs:ignore
}
}