# chatbot/3.4.2/includes/class-wpwbot-cache.php

WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services, version 3.4.2. 1 lines.

- Page: https://pluginprobe.com/plugins/chatbot/3.4.2/code/includes/class-wpwbot-cache.php
- Raw: https://pluginprobe.com/plugins/chatbot/3.4.2/raw/includes/class-wpwbot-cache.php
- Modified: 2020-07-02T13:34:38+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/chatbot/3.4.2/code/includes/class-wpwbot-cache.php#L10-L20`.

```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();
```
