Edit File: class-wpwbot-cache.php
<?php if ( ! defined( 'ABSPATH' ) ) { exit; } if ( ! class_exists( 'wpwBot_Cache' ) ) : /** * Class for plugin search */ class wpwBot_Cache { /** * @var AWS_Cache Cache table name */ private $cache_table_name; /** * Return a singleton instance of the current class * * @return object */ public static function factory() { static $instance = false; if ( ! $instance ) { $instance = new self(); $instance->setup(); } return $instance; } /** * Constructor */ public function __construct() {} /** * Setup actions and filters for all things settings */ public function setup() { global $wpdb; $this->cache_table_name = $wpdb->prefix . QCLD_wpCHATBOT_CACHE_TABLE; add_action( 'aws_cache_clear', array( $this, 'clear_cache' ) ); add_action( 'wp_ajax_aws-clear-cache', array( $this, 'clear_cache' ) ); } /** * Get caching option name */ public function get_cache_name( $s ) { $cache_option_name = 'aws_search_term_' . $s; if ( has_filter('wpml_current_language') ) { $current_lang = apply_filters('wpml_current_language', NULL); if ( $current_lang ) { $cache_option_name = $cache_option_name . '_' . $current_lang; } } return $cache_option_name; } /* * Check if cache table exist */ private function is_cache_table_not_exist() { global $wpdb; return ( $wpdb->get_var( "SHOW TABLES LIKE '{$this->cache_table_name}'" ) != $this->cache_table_name ); } /* * Create cache table */ private function create_cache_table() { global $wpdb; $charset_collate = $wpdb->get_charset_collate(); $sql = "CREATE TABLE {$this->cache_table_name} ( name VARCHAR(50) NOT NULL, value LONGTEXT NOT NULL ) $charset_collate;"; require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); dbDelta( $sql ); } /* * Insert data into cache table */ public function insert_into_cache_table( $cache_option_name, $result_array ) { global $wpdb; $values = $wpdb->prepare( "(%s, %s)", $cache_option_name, json_encode( $result_array ) ); $query = "INSERT IGNORE INTO {$this->cache_table_name} (`name`, `value`) VALUES $values "; $wpdb->query( $query ); if ( $wpdb->last_error ) { if ( $this->is_cache_table_not_exist() ) { $this->create_cache_table(); } } } /* * Get data from cache table */ public function get_from_cache_table( $cache_option_name ) { global $wpdb; $result = ''; $where = $wpdb->prepare( " name LIKE %s", $cache_option_name ); $sql = "SELECT * FROM {$this->cache_table_name} WHERE {$where} "; $cache_content = $wpdb->get_results( $sql, ARRAY_A ); if ( ! $wpdb->last_error ) { if (!empty($cache_content) && !is_wp_error($cache_content) && is_array($cache_content)) { $result = $cache_content[0]['value']; } } else { if ( $this->is_cache_table_not_exist() ) { $this->create_cache_table(); } } return $result; } /* * Clear cached terms */ public function clear_cache() { global $wpdb; if ( ! $this->is_cache_table_not_exist() ) { $terms = "aws_search_term_%"; $where = $wpdb->prepare( " name LIKE %s", $terms ); $sql = "DELETE FROM {$this->cache_table_name} WHERE {$where} "; $wpdb->query( $sql ); } } } endif; wpwBot_Cache::factory();
Back