Edit File by line
/home/zeestwma/ajeebong.../wp-conte.../plugins/revslide.../includes
File: cache.class.php
<?php
[0] Fix | Delete
/**
[1] Fix | Delete
* @author ThemePunch <info@themepunch.com>
[2] Fix | Delete
* @link https://www.themepunch.com/
[3] Fix | Delete
* @copyright 2024 ThemePunch
[4] Fix | Delete
*/
[5] Fix | Delete
[6] Fix | Delete
if(!defined('ABSPATH')) exit();
[7] Fix | Delete
[8] Fix | Delete
class RevSliderCache extends RevSliderFunctions {
[9] Fix | Delete
[10] Fix | Delete
public $cache_enabled = false;
[11] Fix | Delete
[12] Fix | Delete
/**
[13] Fix | Delete
* holds transient additions that the slider is using
[14] Fix | Delete
**/
[15] Fix | Delete
private $cache_additions = array('action' => array(), 'filter' => array(), 'html' => array(), 'special' => array());
[16] Fix | Delete
private $output_html = array();
[17] Fix | Delete
[18] Fix | Delete
public function __construct(){
[19] Fix | Delete
$globals = $this->get_global_settings();
[20] Fix | Delete
$this->cache_enabled = ($this->_truefalse($this->get_val($globals, 'internalcaching')) === true) ? true : false;
[21] Fix | Delete
}
[22] Fix | Delete
[23] Fix | Delete
[24] Fix | Delete
public function is_enabled(){
[25] Fix | Delete
return $this->cache_enabled;
[26] Fix | Delete
}
[27] Fix | Delete
[28] Fix | Delete
[29] Fix | Delete
/**
[30] Fix | Delete
* define which slider types are supported
[31] Fix | Delete
* no social streams are supported
[32] Fix | Delete
**/
[33] Fix | Delete
public function is_supported_type($type){
[34] Fix | Delete
return (in_array($type, array('post', 'posts', 'specific_posts', 'specific_post', 'current_post', 'woocommerce', 'woo', 'gallery'), true)) ? true : false;
[35] Fix | Delete
}
[36] Fix | Delete
[37] Fix | Delete
public function clear_all_transients(){
[38] Fix | Delete
global $wpdb;
[39] Fix | Delete
[40] Fix | Delete
$return = $wpdb->query("DELETE FROM ". $wpdb->prefix . 'options' ." WHERE `option_name` LIKE '_transient_revslider_slider_%'");
[41] Fix | Delete
$wpdb->query("DELETE FROM ". $wpdb->prefix . 'options' ." WHERE `option_name` LIKE '_transient_timeout_revslider_slider_%'");
[42] Fix | Delete
return $return;
[43] Fix | Delete
}
[44] Fix | Delete
[45] Fix | Delete
[46] Fix | Delete
/**
[47] Fix | Delete
* clears all transients that are from a certain slider
[48] Fix | Delete
* @since: 6.4.7
[49] Fix | Delete
**/
[50] Fix | Delete
public function clear_transients_by_slider($sid){
[51] Fix | Delete
global $wpdb;
[52] Fix | Delete
[53] Fix | Delete
$return = false;
[54] Fix | Delete
[55] Fix | Delete
$sid = intval($sid);
[56] Fix | Delete
if($sid > 0){
[57] Fix | Delete
$return = $wpdb->query($wpdb->prepare("DELETE FROM ". $wpdb->prefix . 'options' ." WHERE `option_name` LIKE '_transient_revslider_slider_%d%%'", $sid));
[58] Fix | Delete
$wpdb->query($wpdb->prepare("DELETE FROM ". $wpdb->prefix . 'options' ." WHERE `option_name` LIKE '_transient_timeout_revslider_slider_%d%%'", $sid));
[59] Fix | Delete
}
[60] Fix | Delete
[61] Fix | Delete
return $return;
[62] Fix | Delete
}
[63] Fix | Delete
[64] Fix | Delete
[65] Fix | Delete
public function get_additions(){
[66] Fix | Delete
return $this->cache_additions;
[67] Fix | Delete
}
[68] Fix | Delete
[69] Fix | Delete
[70] Fix | Delete
public function add_addition($type, $name = false, $output = '', $priority = 10){
[71] Fix | Delete
if($output === '') return;
[72] Fix | Delete
[73] Fix | Delete
if(!isset($this->cache_additions[$type])) $this->cache_additions[$type] = array();
[74] Fix | Delete
[75] Fix | Delete
if($name === false){
[76] Fix | Delete
$this->cache_additions[$type][] = $output;
[77] Fix | Delete
}else{
[78] Fix | Delete
if(!isset($this->cache_additions[$type][$name])) $this->cache_additions[$type][$name] = array();
[79] Fix | Delete
[80] Fix | Delete
if($type === 'special'){
[81] Fix | Delete
$this->cache_additions[$type][$name][] = $output;
[82] Fix | Delete
}else{
[83] Fix | Delete
$this->cache_additions[$type][$name][] = array(
[84] Fix | Delete
'html' => $output,
[85] Fix | Delete
'priority' => $priority
[86] Fix | Delete
);
[87] Fix | Delete
}
[88] Fix | Delete
}
[89] Fix | Delete
}
[90] Fix | Delete
[91] Fix | Delete
/**
[92] Fix | Delete
* replace HTML placeholders with their corresponding value
[93] Fix | Delete
**/
[94] Fix | Delete
public function do_html_changes($html){
[95] Fix | Delete
//$html = str_replace('##NONCE##', wp_create_nonce('RevSlider_Front'), $html);
[96] Fix | Delete
[97] Fix | Delete
return $html;
[98] Fix | Delete
}
[99] Fix | Delete
[100] Fix | Delete
/**
[101] Fix | Delete
* this will push all the additions to the output that can not be cached
[102] Fix | Delete
* @since: 6.4.7
[103] Fix | Delete
**/
[104] Fix | Delete
public function do_additions($additions, $output){
[105] Fix | Delete
$t_actions = $this->get_val($additions, 'action', array());
[106] Fix | Delete
if(!empty($t_actions)){
[107] Fix | Delete
foreach($t_actions as $_action => $t_a){
[108] Fix | Delete
if(!empty($t_a)){
[109] Fix | Delete
[110] Fix | Delete
foreach($t_a as $t_sa){
[111] Fix | Delete
if(!isset($this->output_html[$_action])) $this->output_html[$_action] = array();
[112] Fix | Delete
$this->output_html[$_action][] = $t_sa;
[113] Fix | Delete
add_action($_action, array($this, 'print_addition'));
[114] Fix | Delete
}
[115] Fix | Delete
}
[116] Fix | Delete
}
[117] Fix | Delete
}
[118] Fix | Delete
[119] Fix | Delete
$t_filters = $this->get_val($additions, 'filter', array());
[120] Fix | Delete
if(!empty($t_filters)){
[121] Fix | Delete
foreach($t_filters as $_filter => $t_a){
[122] Fix | Delete
if(!empty($t_a)){
[123] Fix | Delete
foreach($t_a as $t_sa){
[124] Fix | Delete
if(!isset($this->output_html[$_filter])) $this->output_html[$_filter] = array();
[125] Fix | Delete
$this->output_html[$_filter][] = $t_sa;
[126] Fix | Delete
add_filter($_filter, array($this, 'print_addition'));
[127] Fix | Delete
}
[128] Fix | Delete
}
[129] Fix | Delete
}
[130] Fix | Delete
}
[131] Fix | Delete
[132] Fix | Delete
$t_special = $this->get_val($additions, 'special', array());
[133] Fix | Delete
if(!empty($t_special)){
[134] Fix | Delete
$_rs_css_collection = $this->get_val($t_special, 'rs_css_collection', array());
[135] Fix | Delete
if(!empty($_rs_css_collection)){
[136] Fix | Delete
global $SR_GLOBALS;
[137] Fix | Delete
$SR_GLOBALS['collections']['css'] = $_rs_css_collection;
[138] Fix | Delete
}
[139] Fix | Delete
$_font_var = $this->get_val($t_special, 'font_var', array());
[140] Fix | Delete
if(!empty($_font_var)){
[141] Fix | Delete
global $SR_GLOBALS;
[142] Fix | Delete
foreach($_font_var as $fw){
[143] Fix | Delete
if(!isset($SR_GLOBALS['icon_sets'][$fw])) $SR_GLOBALS['icon_sets'][$fw] = array('css' => false, 'parsed' => false);
[144] Fix | Delete
$SR_GLOBALS['icon_sets'][$fw]['css'] = true;
[145] Fix | Delete
}
[146] Fix | Delete
}
[147] Fix | Delete
}
[148] Fix | Delete
[149] Fix | Delete
do_action('revslider_do_cache_additions', $additions, $output);
[150] Fix | Delete
}
[151] Fix | Delete
[152] Fix | Delete
[153] Fix | Delete
public function set_full_transient($transient, $sid, $content){
[154] Fix | Delete
$add = array(
[155] Fix | Delete
'html' => $content,
[156] Fix | Delete
'addition' => $this->get_additions()
[157] Fix | Delete
);
[158] Fix | Delete
[159] Fix | Delete
$add = json_encode($add);
[160] Fix | Delete
set_transient($transient, $add, 60*60*24*7);
[161] Fix | Delete
[162] Fix | Delete
$this->cache_additions = array();
[163] Fix | Delete
}
[164] Fix | Delete
[165] Fix | Delete
/**
[166] Fix | Delete
* prints the additions html when the filter/action is called
[167] Fix | Delete
* @since: 6.4.7
[168] Fix | Delete
**/
[169] Fix | Delete
public function print_addition(){
[170] Fix | Delete
$html = $this->get_val($this->output_html, current_filter());
[171] Fix | Delete
if(is_array($html)){
[172] Fix | Delete
if(!empty($html)){
[173] Fix | Delete
usort($html, array($this, 'sort_by_priority'));
[174] Fix | Delete
echo (current_filter() === 'wp_print_footer_scripts') ? '<script>'."\n" : '';
[175] Fix | Delete
foreach($html as $echo){
[176] Fix | Delete
echo $this->get_val($echo, 'html');
[177] Fix | Delete
}
[178] Fix | Delete
echo (current_filter() === 'wp_print_footer_scripts') ? RS_T.'</script>'."\n" : '';
[179] Fix | Delete
}
[180] Fix | Delete
}else{
[181] Fix | Delete
echo $html;
[182] Fix | Delete
}
[183] Fix | Delete
}
[184] Fix | Delete
[185] Fix | Delete
/**
[186] Fix | Delete
* check delete post based caches only!
[187] Fix | Delete
**/
[188] Fix | Delete
public function check_for_post_transient_deletion(){
[189] Fix | Delete
$post_types = array('post', 'posts', 'specific_posts', 'specific_post', 'current_post', 'woocommerce', 'woo');
[190] Fix | Delete
foreach($post_types as $k => $pt){
[191] Fix | Delete
$post_types[$k] = '"sourcetype":"'.$pt.'"';
[192] Fix | Delete
}
[193] Fix | Delete
$_slider = RevSliderGlobals::instance()->get('RevSliderSlider');
[194] Fix | Delete
[195] Fix | Delete
$slider = $_slider->get_slider_by_param_string($post_types, true);
[196] Fix | Delete
[197] Fix | Delete
//clear cache for all of these sliders
[198] Fix | Delete
if(!empty($slider) && is_array($slider)){
[199] Fix | Delete
foreach($slider as $s){
[200] Fix | Delete
$this->clear_transients_by_slider($this->get_val($s, 'id'));
[201] Fix | Delete
}
[202] Fix | Delete
}
[203] Fix | Delete
}
[204] Fix | Delete
[205] Fix | Delete
[206] Fix | Delete
public function sort_by_priority($a, $b) {
[207] Fix | Delete
return $a['priority'] - $b['priority'];
[208] Fix | Delete
}
[209] Fix | Delete
}
[210] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function