| Server IP : 121.121.20.254 / Your IP : 216.73.216.202 Web Server : Microsoft-IIS/10.0 System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64 User : IUSR ( 0) PHP Version : 8.3.28 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/inetpub/wwwroot/AIWEBSTATION/wp-content/plugins/wpbot-pro/includes/ |
Upload File : |
<?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
*
* @return void
*/
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
*
* @param [type] $s
* @return void
*/
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
*
* @return boolean
*/
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
*
* @return void
*/
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
*
* @param [type] $cache_option_name
* @param [type] $result_array
* @return void
*/
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
*
* @param [type] $cache_option_name
* @return void
*/
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'];
}
} elseif ( $this->is_cache_table_not_exist() ) {
$this->create_cache_table();
}
return $result;
}
/**
* Clear cached terms
*
* @return void
*/
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();