diff --git a/data/const.default.ini b/data/const.default.ini index ddc1317ab..124fdfb12 100644 --- a/data/const.default.ini +++ b/data/const.default.ini @@ -190,6 +190,7 @@ purge-upgrade = true ; O_PURGE_STALE purge-stale = false +purge-skip_guest_pages = false purge-post_all = false purge-post_f = true purge-post_h = true diff --git a/src/base.cls.php b/src/base.cls.php index 870f9f960..ac69f5b42 100644 --- a/src/base.cls.php +++ b/src/base.cls.php @@ -71,6 +71,7 @@ class Base extends Root ## -------------- Purge ----------------- ## ## -------------------------------------------------- ## const O_PURGE_ON_UPGRADE = 'purge-upgrade'; + const O_PURGE_SKIP_GUEST_PAGES = 'purge-skip_guest_pages'; const O_PURGE_STALE = 'purge-stale'; const O_PURGE_POST_ALL = 'purge-post_all'; const O_PURGE_POST_FRONTPAGE = 'purge-post_f'; @@ -373,6 +374,7 @@ class Base extends Root // Purge self::O_PURGE_ON_UPGRADE => false, + self::O_PURGE_SKIP_GUEST_PAGES => false, self::O_PURGE_STALE => false, self::O_PURGE_POST_ALL => false, self::O_PURGE_POST_FRONTPAGE => false, diff --git a/src/lang.cls.php b/src/lang.cls.php index b2d2dce46..a6d18649f 100644 --- a/src/lang.cls.php +++ b/src/lang.cls.php @@ -130,6 +130,7 @@ public static function title($id) self::O_OBJECT_TRANSIENTS => __('Store Transients', 'litespeed-cache'), self::O_PURGE_ON_UPGRADE => __('Purge All On Upgrade', 'litespeed-cache'), + self::O_PURGE_SKIP_GUEST_PAGES => __('Skip Guest Mode Pages on Purge All', 'litespeed-cache'), self::O_PURGE_STALE => __('Serve Stale', 'litespeed-cache'), self::O_PURGE_TIMED_URLS => __('Scheduled Purge URLs', 'litespeed-cache'), self::O_PURGE_TIMED_URLS_TIME => __('Scheduled Purge Time', 'litespeed-cache'), diff --git a/src/purge.cls.php b/src/purge.cls.php index 32574e4ab..b69ebe865 100644 --- a/src/purge.cls.php +++ b/src/purge.cls.php @@ -228,7 +228,13 @@ private function _purge_all($reason = false) */ private function _purge_all_lscache($silence = false) { - $this->_add('*'); + $tags = ['*']; + $skip_purge_guest = $this->conf(BASE::O_PURGE_SKIP_GUEST_PAGES); + if ($skip_purge_guest) { + $tags = ['non-guest']; + } + + $this->_add($tags, false); if (!$silence) { $msg = __('Notified LiteSpeed Web Server to purge all LSCache entries.', 'litespeed-cache'); diff --git a/src/tag.cls.php b/src/tag.cls.php index 324a073c0..4582f5e52 100644 --- a/src/tag.cls.php +++ b/src/tag.cls.php @@ -312,6 +312,10 @@ private static function _build_type_tags() return $tags; } + private static function _is_visitor_guest(){ + return !is_user_logged_in(); + } + /** * Generate all cache tags before output * @@ -328,9 +332,13 @@ private static function _finalize() self::$_tags = array_merge(self::$_tags, $type_tags); } - if (defined('LITESPEED_GUEST') && LITESPEED_GUEST) { + if((defined('LITESPEED_GUEST') && LITESPEED_GUEST) || (self::cls()->conf(BASE::O_GUEST) && self::_is_visitor_guest())){ self::$_tags[] = 'guest'; } + + if((defined('LITESPEED_GUEST') && !LITESPEED_GUEST) || !self::_is_visitor_guest()){ + self::$_tags[] = 'non-guest'; + } // append blog main tag self::$_tags[] = ''; diff --git a/tpl/cache/settings-purge.tpl.php b/tpl/cache/settings-purge.tpl.php index f5e837ddc..7f403e2ae 100644 --- a/tpl/cache/settings-purge.tpl.php +++ b/tpl/cache/settings-purge.tpl.php @@ -43,6 +43,16 @@ + + + + title($id); ?> + + + build_switch($id); ?> + + +