Changeset 3309228
- Timestamp:
- 06/10/2025 01:27:35 PM (8 months ago)
- Location:
- the-cache-purger/trunk
- Files:
-
- 25 edited
-
languages/the-cache-purger.pot (modified) (2 diffs)
-
readme.txt (modified) (2 diffs)
-
the-cache-purger.php (modified) (1 diff)
-
uninstall.php (modified) (1 diff)
-
vendor/composer/autoload_classmap.php (modified) (1 diff)
-
vendor/composer/autoload_static.php (modified) (1 diff)
-
vendor/composer/installed.json (modified) (4 diffs)
-
vendor/composer/installed.php (modified) (3 diffs)
-
vendor/symfony/deprecation-contracts/composer.json (modified) (1 diff)
-
work/common.php (modified) (4 diffs)
-
work/doc.php (modified) (3 diffs)
-
work/inc/kp-cache-purge-admin.php (modified) (67 diffs)
-
work/inc/kp-cache-purge-common.php (modified) (15 diffs)
-
work/inc/kp-cache-purge-processor.php (modified) (6 diffs)
-
work/inc/kp-cache-purge.php (modified) (4 diffs)
-
work/inc/modules/api.php (modified) (6 diffs)
-
work/inc/modules/file.php (modified) (4 diffs)
-
work/inc/modules/hosting.php (modified) (11 diffs)
-
work/inc/modules/memory.php (modified) (9 diffs)
-
work/inc/modules/nginx.php (modified) (3 diffs)
-
work/inc/modules/pagespeed.php (modified) (3 diffs)
-
work/inc/modules/php.php (modified) (7 diffs)
-
work/inc/modules/plugin.php (modified) (28 diffs)
-
work/inc/modules/varnish.php (modified) (3 diffs)
-
work/inc/modules/wordpress.php (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
the-cache-purger/trunk/languages/the-cache-purger.pot
r3296444 r3309228 7 7 "Content-Type: text/plain; charset=UTF-8\n" 8 8 "Content-Transfer-Encoding: 8bit\n" 9 "POT-Creation-Date: 2025-0 5-19 12:12+0000\n"9 "POT-Creation-Date: 2025-06-10 13:21+0000\n" 10 10 "X-Poedit-Basepath: ..\n" 11 11 "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n" … … 15 15 "Plural-Forms: nplurals=2; plural=(n != 1);\n" 16 16 17 #: source/cli/kp-cache-purge-cli.php:4718 msgid "The Purge is Commencing!"19 msgstr ""20 21 #: source/cli/kp-cache-purge-cli.php:6222 msgid "The Purge has finished!"23 msgstr ""24 25 #: source/work/common.php:2626 msgid "<h1>PHP To Low</h1><p>Due to the nature of this plugin, it cannot be run on lower versions of PHP.</p><p>Please contact your hosting provider to upgrade your site to at least version 7.4.</p>"27 msgstr ""28 29 #: source/work/common.php:2730 msgid "Cannot Activate: PHP To Low"31 msgstr ""32 33 #: source/work/common.php:3934 msgid "<h1>Cannot Network Activate</h1><p>Due to the nature of this plugin, it cannot be network activated.</p><p>Please go back, and activate inside your subsites.</p>"35 msgstr ""36 37 #: source/work/common.php:4038 msgid "Cannot Network Activate"39 msgstr ""40 41 #: source/work/common.php:13842 msgid "<p>The cache purge has initialized.</p><p>The majority is run in the background, so please wait around 2 minutes for it to complete.</p>"43 msgstr ""44 45 #: source/work/common.php:26246 msgid "<h3>PHP Upgrade Notice</h3><p>To maintain optimal security standards, this will be the final version that supports PHP versions lower than 8.1. Your site must be upgraded in order to update the plugin to future versions.</p><p>Please see here for up to date PHP version information: <a href='https://www.php.net/supported-versions.php' target='_blank'>https://www.php.net/supported-versions.php</a></p>"47 msgstr ""48 49 #: source/work/doc.php:2050 msgid "The Cache Purger Documentation"51 msgstr ""52 53 #: source/work/doc.php:2354 msgid "Description"55 msgstr ""56 57 #: source/work/doc.php:24, source/work/doc.php:30, source/work/doc.php:57, source/work/doc.php:177, source/work/doc.php:278, source/work/doc.php:29658 msgid "TOP"59 msgstr ""60 61 #: source/work/doc.php:24, source/work/doc.php:30, source/work/doc.php:57, source/work/doc.php:177, source/work/doc.php:278, source/work/doc.php:29662 msgid "DESCRIPTION"63 msgstr ""64 65 #: source/work/doc.php:24, source/work/doc.php:30, source/work/doc.php:57, source/work/doc.php:177, source/work/doc.php:278, source/work/doc.php:29666 msgid "FEATURES"67 msgstr ""68 69 #: source/work/doc.php:24, source/work/doc.php:30, source/work/doc.php:57, source/work/doc.php:177, source/work/doc.php:278, source/work/doc.php:29670 msgid "SETTINGS"71 msgstr ""72 73 #: source/work/doc.php:24, source/work/doc.php:30, source/work/doc.php:57, source/work/doc.php:177, source/work/doc.php:278, source/work/doc.php:29674 msgid "API/SERVER SETTINGS"75 msgstr ""76 77 #: source/work/doc.php:24, source/work/doc.php:24, source/work/doc.php:30, source/work/doc.php:57, source/work/doc.php:177, source/work/doc.php:278, source/work/doc.php:29678 msgid "CRON Action SETTINGS"79 msgstr ""80 81 #: source/work/doc.php:24, source/work/doc.php:30, source/work/doc.php:57, source/work/doc.php:177, source/work/doc.php:278, source/work/doc.php:29682 msgid "IN THE WORKS"83 msgstr ""84 85 #: source/work/doc.php:2586 msgid "This plugin attempts to purge all server-side caching methods"87 msgstr ""88 89 #: source/work/doc.php:2690 msgid "This includes the most common caching plugins, some hosting based caches, most server based caches, built-in Wordpress object caches, and even simple file based caches"91 msgstr ""92 93 #: source/work/doc.php:2794 msgid "Just configure what you want to purge on, and the plugin will take care of the rest"95 msgstr ""96 97 #: source/work/doc.php:2898 msgid "We have also included a CLI cache purger. Shell into your install and run the following command:"99 msgstr ""100 101 #: source/work/doc.php:28102 msgid "The normal CLI flags apply, and if you are in a multisite, you must include the --url flag."103 msgstr ""104 105 #: source/work/doc.php:29106 msgid "Features"107 msgstr ""108 109 #: source/work/doc.php:31110 msgid "Built in automatic cache purging for the following caches"111 msgstr ""112 113 #: source/work/doc.php:33114 msgid "Plugins/Themes"115 msgstr ""116 117 #: source/work/doc.php:35118 msgid "Flying Press"119 msgstr ""120 121 #: source/work/doc.php:35122 msgid "SiteGround Optimizer"123 msgstr ""124 125 #: source/work/doc.php:35126 msgid "Nginx Helper"127 msgstr ""128 129 #: source/work/doc.php:35130 msgid "LiteSpeed Cache"131 msgstr ""132 133 #: source/work/doc.php:35134 msgid "Cachify"135 msgstr ""136 137 #: source/work/doc.php:35138 msgid "Autoptimize"139 msgstr ""140 141 #: source/work/doc.php:35142 msgid "Fast Velocity Minify"143 msgstr ""144 145 #: source/work/doc.php:35146 msgid "WP Rocket"147 msgstr ""148 149 #: source/work/doc.php:35150 msgid "Swift Performance"151 msgstr ""152 153 #: source/work/doc.php:35154 msgid "Comet Cache"155 msgstr ""156 157 #: source/work/doc.php:35158 msgid "Hummingbird"159 msgstr ""160 161 #: source/work/doc.php:35162 msgid "WP Fastest Cache"163 msgstr ""164 165 #: source/work/doc.php:35166 msgid "WP Super Cache"167 msgstr ""168 169 #: source/work/doc.php:35170 msgid "W3 Total Cache"171 msgstr ""172 173 #: source/work/doc.php:35174 msgid "Hyper Cache"175 msgstr ""176 177 #: source/work/doc.php:35178 msgid "WP Optimize"179 msgstr ""180 181 #: source/work/doc.php:35182 msgid "Cache Enabler"183 msgstr ""184 185 #: source/work/doc.php:35186 msgid "Divi"187 msgstr ""188 189 #: source/work/doc.php:35190 msgid "Elementor"191 msgstr ""192 193 #: source/work/doc.php:38194 msgid "Hosting / CDN"195 msgstr ""196 197 #: source/work/doc.php:40198 msgid "WPEngine"199 msgstr ""200 201 #: source/work/doc.php:40202 msgid "SpinupWP"203 msgstr ""204 205 #: source/work/doc.php:40206 msgid "Kinsta"207 msgstr ""208 209 #: source/work/doc.php:40210 msgid "GoDaddy"211 msgstr ""212 213 #: source/work/doc.php:40214 msgid "Pantheon"215 msgstr ""216 217 #: source/work/doc.php:40218 msgid "CloudFlare"219 msgstr ""220 221 #: source/work/doc.php:40222 msgid "Sucuri"223 msgstr ""224 225 #: source/work/doc.php:40226 msgid "RunCloud"227 msgstr ""228 229 #: source/work/doc.php:40230 msgid "Siteground"231 msgstr ""232 233 #: source/work/doc.php:40234 msgid "Bluehost"235 msgstr ""236 237 #: source/work/doc.php:40238 msgid "Breezeway"239 msgstr ""240 241 #: source/work/doc.php:41242 msgid "Some of these are dependant on separate plugins. Please see your provider if it is necessary, or already included"243 msgstr ""244 245 #: source/work/doc.php:44246 msgid "Server Based"247 msgstr ""248 249 #: source/work/doc.php:46250 msgid "Fastly CDN"251 msgstr ""252 253 #: source/work/doc.php:46254 msgid "PHP FPM"255 msgstr ""256 257 #: source/work/doc.php:46258 msgid "Zend Opcache"259 msgstr ""260 261 #: source/work/doc.php:46262 msgid "APC and APCU"263 msgstr ""264 265 #: source/work/doc.php:46266 msgid "WinCache"267 msgstr ""268 269 #: source/work/doc.php:46270 msgid "Pagespeed Module"271 msgstr ""272 273 #: source/work/doc.php:46274 msgid "Memcache"275 msgstr ""276 277 #: source/work/doc.php:46278 msgid "Memcached"279 msgstr ""280 281 #: source/work/doc.php:46282 msgid "Redis"283 msgstr ""284 285 #: source/work/doc.php:46286 msgid "nGinx"287 msgstr ""288 289 #: source/work/doc.php:46290 msgid "Static File Caches"291 msgstr ""292 293 #: source/work/doc.php:49294 msgid "Wordpress Built-In"295 msgstr ""296 297 #: source/work/doc.php:49298 msgid "object caching and persistent object caching"299 msgstr ""300 301 #: source/work/doc.php:52302 msgid "Purges are configurable in the settings, and include the following saves/updates/trashes:"303 msgstr ""304 305 #: source/work/doc.php:54306 msgid "Posts"307 msgstr ""308 309 #: source/work/doc.php:54310 msgid "Pages"311 msgstr ""312 313 #: source/work/doc.php:54314 msgid "Custom Post Types"315 msgstr ""316 317 #: source/work/doc.php:54318 msgid "Categories"319 msgstr ""320 321 #: source/work/doc.php:54322 msgid "Taxonomies"323 msgstr ""324 325 #: source/work/doc.php:54326 msgid "Widgets"327 msgstr ""328 329 #: source/work/doc.php:54330 msgid "Menus"331 msgstr ""332 333 #: source/work/doc.php:54334 msgid "Plugins"335 msgstr ""336 337 #: source/work/doc.php:54338 msgid "Updates"339 msgstr ""340 341 #: source/work/doc.php:54342 msgid "Settings & Options"343 msgstr ""344 345 #: source/work/doc.php:54346 msgid "GravityForms"347 msgstr ""348 349 #: source/work/doc.php:54, source/work/doc.php:54, source/work/doc.php:54350 msgid "if installed and activated"351 msgstr ""352 353 #: source/work/doc.php:54354 msgid "Advanced Custom Fields"355 msgstr ""356 357 #: source/work/doc.php:54358 msgid "WooCommerce Settings"359 msgstr ""360 361 #: source/work/doc.php:56, source/work/inc/kp-cache-purge-admin.php:75362 msgid "Settings"363 msgstr ""364 365 #: source/work/doc.php:60, source/work/inc/kp-cache-purge-admin.php:577366 msgid "Log Purge Actions?"367 msgstr ""368 369 #: source/work/doc.php:62, source/work/doc.php:69, source/work/doc.php:76, source/work/doc.php:83, source/work/doc.php:90, source/work/doc.php:97, source/work/doc.php:104, source/work/doc.php:111, source/work/doc.php:118, source/work/doc.php:125, source/work/doc.php:132, source/work/doc.php:139, source/work/doc.php:146, source/work/doc.php:154, source/work/doc.php:162, source/work/doc.php:170, source/work/doc.php:182, source/work/doc.php:189, source/work/doc.php:196, source/work/doc.php:203, source/work/doc.php:210, source/work/doc.php:217, source/work/doc.php:224, source/work/doc.php:231, source/work/doc.php:238, source/work/doc.php:248, source/work/doc.php:255, source/work/doc.php:262, source/work/doc.php:269, source/work/doc.php:283, source/work/doc.php:290370 msgid "Option(s) Name:"371 msgstr ""372 373 #: source/work/doc.php:63374 msgid "Do you want to log purge actions? The log file will be located here:"375 msgstr ""376 377 #: source/work/doc.php:67378 msgid "Purge on Menu?"379 msgstr ""380 381 #: source/work/doc.php:70382 msgid "This will attempt to purge all caches for every menu update, save, or delete."383 msgstr ""384 385 #: source/work/doc.php:74386 msgid "Purge on Post?"387 msgstr ""388 389 #: source/work/doc.php:77390 msgid "This will attempt to purge all caches for every post update, save, or delete."391 msgstr ""392 393 #: source/work/doc.php:81, source/work/inc/kp-cache-purge-admin.php:615394 msgid "Ignored Posts"395 msgstr ""396 397 #: source/work/doc.php:84398 msgid "Select the posts you wish to ignore from the cache purge actions."399 msgstr ""400 401 #: source/work/doc.php:88402 msgid "Purge on Page?"403 msgstr ""404 405 #: source/work/doc.php:91406 msgid "This will attempt to purge all caches for every page update, save, or delete."407 msgstr ""408 409 #: source/work/doc.php:95, source/work/inc/kp-cache-purge-admin.php:638410 msgid "Ignored Pages"411 msgstr ""412 413 #: source/work/doc.php:98414 msgid "Select the pages you wish to ignore from the cache purge actions."415 msgstr ""416 417 #: source/work/doc.php:102418 msgid "Purge on CPT?"419 msgstr ""420 421 #: source/work/doc.php:105422 msgid "This will attempt to purge all caches for every custom post type update, save, or delete."423 msgstr ""424 425 #: source/work/doc.php:109426 msgid "Ignore CPT"427 msgstr ""428 429 #: source/work/doc.php:112430 msgid "Select the custom post types you wish to ignore from the cache purge actions."431 msgstr ""432 433 #: source/work/doc.php:116434 msgid "Purge on Term/Taxonomy?"435 msgstr ""436 437 #: source/work/doc.php:119438 msgid "This will attempt to purge all caches for every taxonomy/term update, save, or delete."439 msgstr ""440 441 #: source/work/doc.php:123442 msgid "Purge on Category?"443 msgstr ""444 445 #: source/work/doc.php:126446 msgid "This will attempt to purge all caches for every category update, save, or delete."447 msgstr ""448 449 #: source/work/doc.php:130450 msgid "Purge on Widget?"451 msgstr ""452 453 #: source/work/doc.php:133454 msgid "This will attempt to purge all caches for every widget update, save, or removal."455 msgstr ""456 457 #: source/work/doc.php:137458 msgid "Purge on Customizer?"459 msgstr ""460 461 #: source/work/doc.php:140462 msgid "This will attempt to purge all caches for every customizer update or save."463 msgstr ""464 465 #: source/work/doc.php:144466 msgid "Purge on GravityForms?"467 msgstr ""468 469 #: source/work/doc.php:147470 msgid "This will attempt to purge all caches for every form update, save, or delete."471 msgstr ""472 473 #: source/work/doc.php:148, source/work/doc.php:156474 msgid "This option is only available if you have GravityForms installed and active on your site."475 msgstr ""476 477 #: source/work/doc.php:152478 msgid "Ignore Forms"479 msgstr ""480 481 #: source/work/doc.php:155482 msgid "Select the forms you wish to ignore from the cache purge actions."483 msgstr ""484 485 #: source/work/doc.php:160486 msgid "Purge on ACF?"487 msgstr ""488 489 #: source/work/doc.php:163490 msgid "This will attempt to purge all caches for every \"advanced custom field\" group update, save, or delete."491 msgstr ""492 493 #: source/work/doc.php:164, source/work/doc.php:172494 msgid "This option is only available if you have Advanced Custom Fields installed and active on your site."495 msgstr ""496 497 #: source/work/doc.php:168498 msgid "Ignore Field Group"499 msgstr ""500 501 #: source/work/doc.php:171502 msgid "Select the field groups you wish to ignore from the cache purge actions."503 msgstr ""504 505 #: source/work/doc.php:176506 msgid "API/SERVER Settings"507 msgstr ""508 509 #: source/work/doc.php:180510 msgid "Remote Redis Server"511 msgstr ""512 513 #: source/work/doc.php:183514 msgid "Do you want to configure Redis servers to be purged?"515 msgstr ""516 517 #: source/work/doc.php:187518 msgid "Redis Servers - Server"519 msgstr ""520 521 #: source/work/doc.php:190, source/work/doc.php:211, source/work/doc.php:232522 msgid "Insert the servers IP address."523 msgstr ""524 525 #: source/work/doc.php:194526 msgid "Redis Servers - Port"527 msgstr ""528 529 #: source/work/doc.php:197, source/work/doc.php:218, source/work/doc.php:239530 msgid "Insert the servers port."531 msgstr ""532 533 #: source/work/doc.php:201534 msgid "Remote Memcache Server"535 msgstr ""536 537 #: source/work/doc.php:204538 msgid "Do you want to configure Memcache servers to be purged?"539 msgstr ""540 541 #: source/work/doc.php:208542 msgid "Memcache Servers - Server"543 msgstr ""544 545 #: source/work/doc.php:215546 msgid "Memcache Servers - Port"547 msgstr ""548 549 #: source/work/doc.php:222550 msgid "Remote Memcached Server"551 msgstr ""552 553 #: source/work/doc.php:225554 msgid "Do you want to configure Memcached servers to be purged?"555 msgstr ""556 557 #: source/work/doc.php:229558 msgid "Memcached Servers - Server"559 msgstr ""560 561 #: source/work/doc.php:236562 msgid "Memcached Servers - Port"563 msgstr ""564 565 #: source/work/doc.php:243, source/work/inc/kp-cache-purge-admin.php:457566 msgid "Service API Keys"567 msgstr ""568 569 #: source/work/doc.php:246, source/work/inc/kp-cache-purge-admin.php:465570 msgid "Cloudflare Token"571 msgstr ""572 573 #: source/work/doc.php:249, source/work/inc/kp-cache-purge-admin.php:466574 msgid "Enter your Cloudflare API Token. If you do not have one, you can create one here: <a href=\"https://dash.cloudflare.com/profile/api-tokens\" target=\"_blank\">https://dash.cloudflare.com/profile/api-tokens</a><br /><strong>NOTE: </strong>This is stored in plain-text."575 msgstr ""576 577 #: source/work/doc.php:253, source/work/inc/kp-cache-purge-admin.php:475578 msgid "Cloudflare Zone"579 msgstr ""580 581 #: source/work/doc.php:256, source/work/inc/kp-cache-purge-admin.php:476582 msgid "Enter your Cloudflare Zone ID. You can find this by clicking into your websites overview in your account: <a href=\"https://dash.cloudflare.com/\" target=\"_blank\">https://dash.cloudflare.com/</a><br /><strong>NOTE: </strong>This is stored in plain-text."583 msgstr ""584 585 #: source/work/doc.php:260, source/work/inc/kp-cache-purge-admin.php:485586 msgid "Sucuri Key"587 msgstr ""588 589 #: source/work/doc.php:263, source/work/inc/kp-cache-purge-admin.php:486590 msgid "Enter your Sucuri API Key. If you do not have one, you can find it in your site's Firewall here: <a href=\"https://waf.sucuri.net/\" target=\"_blank\">https://waf.sucuri.net/</a>. Click into your site, then Settings, then API.<br /><strong>NOTE: </strong>This is stored in plain-text."591 msgstr ""592 593 #: source/work/doc.php:267, source/work/inc/kp-cache-purge-admin.php:495594 msgid "Sucuri Secret"595 msgstr ""596 597 #: source/work/doc.php:270, source/work/inc/kp-cache-purge-admin.php:496598 msgid "Enter your Sucuri API Secret. If you do not have one, you can find it in your site's Firewall here: <a href=\"https://waf.sucuri.net/\" target=\"_blank\">https://waf.sucuri.net/</a>. Click into your site, then Settings, then API.<br /><strong>NOTE: </strong>This is stored in plain-text."599 msgstr ""600 601 #: source/work/doc.php:277, source/work/inc/kp-cache-purge-admin.php:91602 msgid "CRON Action Settings"603 msgstr ""604 605 #: source/work/doc.php:281606 msgid "Allow Scheduled Purges?"607 msgstr ""608 609 #: source/work/doc.php:284610 msgid "Should the cached be purged based on a Wordpress Cron schedule?"611 msgstr ""612 613 #: source/work/doc.php:288614 msgid "Built-In Schedule"615 msgstr ""616 617 #: source/work/doc.php:291618 msgid "Select a built-in schedule to purge the caches on."619 msgstr ""620 621 #: source/work/doc.php:295622 msgid "In The Works"623 msgstr ""624 625 #: source/work/doc.php:298626 msgid "WooCommerce Product Updates (<em>and exclusions</em>)"627 msgstr ""628 629 #: source/work/doc.php:299630 msgid "WooCommerce Order Updates"631 msgstr ""632 633 #: source/work/doc.php:300634 msgid "More Plugin References"635 msgstr ""636 637 #: source/work/doc.php:301638 msgid "More Hosting References"639 msgstr ""640 641 #: source/work/inc/kp-cache-purge-admin.php:58642 msgid "The Cache Purge"643 msgstr ""644 645 #: source/work/inc/kp-cache-purge-admin.php:68646 msgid "The Cache Purger <small>by Kevin C. Pirnie</small>"647 msgstr ""648 649 #: source/work/inc/kp-cache-purge-admin.php:83650 msgid "API/Server Settings"651 msgstr ""652 653 #: source/work/inc/kp-cache-purge-admin.php:108654 msgid "The Purge Log"655 msgstr ""656 657 #: source/work/inc/kp-cache-purge-admin.php:123658 msgid "Documentation"659 msgstr ""660 661 #: source/work/inc/kp-cache-purge-admin.php:136662 msgid "Export/Import Settings"663 msgstr ""664 665 #: source/work/inc/kp-cache-purge-admin.php:194666 msgid "Master Cache Purge"667 msgstr ""668 669 #: source/work/inc/kp-cache-purge-admin.php:196670 msgid "Click here to purge all of your caches."671 msgstr ""672 673 #: source/work/inc/kp-cache-purge-admin.php:238674 msgid "Purge the log?"675 msgstr ""676 677 #: source/work/inc/kp-cache-purge-admin.php:239678 msgid "Do you want to allow scheduled log purges?"679 msgstr ""680 681 #: source/work/inc/kp-cache-purge-admin.php:247, source/work/inc/kp-cache-purge-admin.php:271682 msgid "Purge Schedule"683 msgstr ""684 685 #: source/work/inc/kp-cache-purge-admin.php:248, source/work/inc/kp-cache-purge-admin.php:272686 msgid "Select a purge schedule to use."687 msgstr ""688 689 #: source/work/inc/kp-cache-purge-admin.php:262690 msgid "Scheduled your Purges?"691 msgstr ""692 693 #: source/work/inc/kp-cache-purge-admin.php:263694 msgid "Do you want schedule cache purges?"695 msgstr ""696 697 #: source/work/inc/kp-cache-purge-admin.php:309698 msgid "Remote Redis server?"699 msgstr ""700 701 #: source/work/inc/kp-cache-purge-admin.php:310702 msgid "Please only switch this on if you utilize remote Redis Servers."703 msgstr ""704 705 #: source/work/inc/kp-cache-purge-admin.php:318706 msgid "Redis Servers"707 msgstr ""708 709 #: source/work/inc/kp-cache-purge-admin.php:321, source/work/inc/kp-cache-purge-admin.php:389, source/work/inc/kp-cache-purge-admin.php:429710 msgid "Add New Server"711 msgstr ""712 713 #: source/work/inc/kp-cache-purge-admin.php:328, source/work/inc/kp-cache-purge-admin.php:396, source/work/inc/kp-cache-purge-admin.php:436714 msgid "Server"715 msgstr ""716 717 #: source/work/inc/kp-cache-purge-admin.php:331, source/work/inc/kp-cache-purge-admin.php:399, source/work/inc/kp-cache-purge-admin.php:439718 msgid "Enter the IP address of the server."719 msgstr ""720 721 #: source/work/inc/kp-cache-purge-admin.php:337, source/work/inc/kp-cache-purge-admin.php:405, source/work/inc/kp-cache-purge-admin.php:445722 msgid "Port"723 msgstr ""724 725 #: source/work/inc/kp-cache-purge-admin.php:340, source/work/inc/kp-cache-purge-admin.php:408, source/work/inc/kp-cache-purge-admin.php:448726 msgid "Enter the Port number of the server."727 msgstr ""728 729 #: source/work/inc/kp-cache-purge-admin.php:346730 msgid "Username"731 msgstr ""732 733 #: source/work/inc/kp-cache-purge-admin.php:349734 msgid "Enter your redis username"735 msgstr ""736 737 #: source/work/inc/kp-cache-purge-admin.php:354738 msgid "Password"739 msgstr ""740 741 #: source/work/inc/kp-cache-purge-admin.php:358742 msgid "Enter your redis password"743 msgstr ""744 745 #: source/work/inc/kp-cache-purge-admin.php:364746 msgid "Database ID"747 msgstr ""748 749 #: source/work/inc/kp-cache-purge-admin.php:367750 msgid "Enter your database ID"751 msgstr ""752 753 #: source/work/inc/kp-cache-purge-admin.php:377754 msgid "Remote Memcache server?"755 msgstr ""756 757 #: source/work/inc/kp-cache-purge-admin.php:378758 msgid "Please only switch this on if you utilize remote Memcache Servers."759 msgstr ""760 761 #: source/work/inc/kp-cache-purge-admin.php:386762 msgid "Memcache Servers"763 msgstr ""764 765 #: source/work/inc/kp-cache-purge-admin.php:417766 msgid "Remote Memcached server?"767 msgstr ""768 769 #: source/work/inc/kp-cache-purge-admin.php:418770 msgid "Please only switch this on if you utilize remote Memcached Servers."771 msgstr ""772 773 #: source/work/inc/kp-cache-purge-admin.php:426774 msgid "Memcached Servers"775 msgstr ""776 777 #: source/work/inc/kp-cache-purge-admin.php:458778 msgid "These are all optional, and only necessary if you do not have the service's plugin installed on your site, but their caches are still used.<br /><br />Please consult with your hosting provider or IT Team if you do not know if they are in use."779 msgstr ""780 781 #: source/work/inc/kp-cache-purge-admin.php:505782 msgid "Fastly Token"783 msgstr ""784 785 #: source/work/inc/kp-cache-purge-admin.php:506786 msgid "Enter your Fastly CDN Token. If you do not have one, you can find it in your account here: <a href=\"https://manage.fastly.com/account/personal/tokens\" target=\"_blank\">https://manage.fastly.com/account/personal/tokens</a>. You will need to make sure to select a service when you create your token.<br /><strong>NOTE: </strong>This is stored in plain-text."787 msgstr ""788 789 #: source/work/inc/kp-cache-purge-admin.php:515790 msgid "Fastly Service ID"791 msgstr ""792 793 #: source/work/inc/kp-cache-purge-admin.php:516794 msgid "Enter your Fastly Service ID. If you do not have one, you can find it in your account here: <a href=\"https://manage.fastly.com/account/tokens\" target=\"_blank\">https://manage.fastly.com/account/tokens</a>. You will need to make sure to select a service when you create your token.<br /><strong>NOTE: </strong>This is stored in plain-text."795 msgstr ""796 797 #: source/work/inc/kp-cache-purge-admin.php:558798 msgid "Caches To Purge"799 msgstr ""800 801 #: source/work/inc/kp-cache-purge-admin.php:559802 msgid "Select which caches should be purged?"803 msgstr ""804 805 #: source/work/inc/kp-cache-purge-admin.php:562806 msgid "Plugin Caches"807 msgstr ""808 809 #: source/work/inc/kp-cache-purge-admin.php:563810 msgid "Wordpress Caches"811 msgstr ""812 813 #: source/work/inc/kp-cache-purge-admin.php:564814 msgid "Server Caches"815 msgstr ""816 817 #: source/work/inc/kp-cache-purge-admin.php:565818 msgid "Memory Caches"819 msgstr ""820 821 #: source/work/inc/kp-cache-purge-admin.php:566822 msgid "API Caches"823 msgstr ""824 825 #: source/work/inc/kp-cache-purge-admin.php:586826 msgid "Purge on settings save?"827 msgstr ""828 829 #: source/work/inc/kp-cache-purge-admin.php:587830 msgid "This will attempt to purge all configured caches for settings save actions.<br /><strong>NOTE:</strong>You need to hard refresh this page after saving this setting in order for this to take effect."831 msgstr ""832 833 #: source/work/inc/kp-cache-purge-admin.php:595834 msgid "Purge on Menu Save/Delete?"835 msgstr ""836 837 #: source/work/inc/kp-cache-purge-admin.php:596838 msgid "This will attempt to purge all configured caches for every menu update, save, or delete."839 msgstr ""840 841 #: source/work/inc/kp-cache-purge-admin.php:604842 msgid "Purge on Post Save/Delete?"843 msgstr ""844 845 #: source/work/inc/kp-cache-purge-admin.php:605846 msgid "This will attempt to purge all configured caches for every post update, save, or delete."847 msgstr ""848 849 #: source/work/inc/kp-cache-purge-admin.php:616850 msgid "Please select the posts to ignore..."851 msgstr ""852 853 #: source/work/inc/kp-cache-purge-admin.php:617854 msgid "Posts to ignore from the purger. This will simply ignore the purge action when the selected posts get updated."855 msgstr ""856 857 #: source/work/inc/kp-cache-purge-admin.php:627858 msgid "Purge on Page Save/Delete?"859 msgstr ""860 861 #: source/work/inc/kp-cache-purge-admin.php:628862 msgid "This will attempt to purge all configured caches for every page update, save, or delete."863 msgstr ""864 865 #: source/work/inc/kp-cache-purge-admin.php:639866 msgid "Please select the pages to ignore..."867 msgstr ""868 869 #: source/work/inc/kp-cache-purge-admin.php:640870 msgid "Pages to ignore from the purger. This will simply ignore the purge action when the selected pages get updated."871 msgstr ""872 873 #: source/work/inc/kp-cache-purge-admin.php:650874 msgid "Purge on Custom Post Type Save/Delete?"875 msgstr ""876 877 #: source/work/inc/kp-cache-purge-admin.php:651878 msgid "This will attempt to purge all configured caches for every custom post type update, save, or delete."879 msgstr ""880 881 #: source/work/inc/kp-cache-purge-admin.php:661882 msgid "Ignored CPTs"883 msgstr ""884 885 #: source/work/inc/kp-cache-purge-admin.php:662886 msgid "Please select the cpts to ignore..."887 msgstr ""888 889 #: source/work/inc/kp-cache-purge-admin.php:663890 msgid "CPTs to ignore from the purger. This will simply ignore the purge action when the selected CPT get updated."891 msgstr ""892 893 #: source/work/inc/kp-cache-purge-admin.php:673894 msgid "Purge on Taxonomy/Term Save/Delete?"895 msgstr ""896 897 #: source/work/inc/kp-cache-purge-admin.php:674898 msgid "This will attempt to purge all configured caches for every taxonomy/term update, save, or delete."899 msgstr ""900 901 #: source/work/inc/kp-cache-purge-admin.php:682902 msgid "Purge on Category Save/Delete?"903 msgstr ""904 905 #: source/work/inc/kp-cache-purge-admin.php:683906 msgid "This will attempt to purge all configured caches for every category update, save, or delete."907 msgstr ""908 909 #: source/work/inc/kp-cache-purge-admin.php:691910 msgid "Purge on Widget Save/Delete?"911 msgstr ""912 913 #: source/work/inc/kp-cache-purge-admin.php:692914 msgid "This will attempt to purge all configured caches for every widget update, save, or delete."915 msgstr ""916 917 #: source/work/inc/kp-cache-purge-admin.php:700918 msgid "Purge on Customizer Save?"919 msgstr ""920 921 #: source/work/inc/kp-cache-purge-admin.php:701922 msgid "This will attempt to purge all configured caches for every customizer update or save."923 msgstr ""924 925 #: source/work/inc/kp-cache-purge-admin.php:714926 msgid "Purge on Form Save/Delete?"927 msgstr ""928 929 #: source/work/inc/kp-cache-purge-admin.php:715930 msgid "This will attempt to purge all configured caches for every form update, save, or delete."931 msgstr ""932 933 #: source/work/inc/kp-cache-purge-admin.php:725934 msgid "Ignored Forms"935 msgstr ""936 937 #: source/work/inc/kp-cache-purge-admin.php:726938 msgid "Please select the forms to ignore..."939 msgstr ""940 941 #: source/work/inc/kp-cache-purge-admin.php:727942 msgid "Forms to ignore from the purger. This will simply ignore the purge action when the selected forms get updated."943 msgstr ""944 945 #: source/work/inc/kp-cache-purge-admin.php:742946 msgid "Purge on ACF Save/Delete?"947 msgstr ""948 949 #: source/work/inc/kp-cache-purge-admin.php:743950 msgid "This will attempt to purge all configured caches for every \"advanced custom field\" group update, save, or delete."951 msgstr ""952 953 #: source/work/inc/kp-cache-purge-admin.php:753954 msgid "Ignored Field Groups"955 msgstr ""956 957 #: source/work/inc/kp-cache-purge-admin.php:754958 msgid "Please select the field groupd to ignore..."959 msgstr ""960 961 #: source/work/inc/kp-cache-purge-admin.php:755962 msgid "Field Groups to ignore from the purger. This will simply ignore the purge action when the selected field groups get updated."963 msgstr ""964 965 #: source/work/inc/kp-cache-purge-admin.php:873, source/work/inc/kp-cache-purge-admin.php:918966 msgid " -- None -- "967 msgstr "" -
the-cache-purger/trunk/readme.txt
r3296444 r3309228 5 5 Requires at least: 5.6 6 6 Tested up to: 6.9 7 Requires PHP: 7.48 Stable tag: 2.1. 017 Requires PHP: 8.1 8 Stable tag: 2.1.36 9 9 License: GPLv3 10 10 License URI: https://www.gnu.org/licenses/gpl-3.0.html … … 68 68 69 69 == Changelog == 70 71 = 2.1.36 = 72 * Update: vendor libraries 73 * Update: PHP 8.1 requirement 74 * Remove: CLI clearing 75 * Restructure: Common functionality 76 * Better structured for me, slightly better purging performance 77 * Add: Redis prefix/key 78 * Fix: Redis Database flush 79 * Fix: load_textdomain notice 70 80 71 81 = 2.1.01 = -
the-cache-purger/trunk/the-cache-purger.php
r3296444 r3309228 8 8 Plugin URI: https://kevinpirnie.com 9 9 Description: Plugin attemps to clear all plugin based and server based caches. 10 Version: 2.1. 0111 Requires PHP: 7.410 Version: 2.1.36 11 Requires PHP: 8.1 12 12 Network: false 13 13 Author: Kevin C Pirnie -
the-cache-purger/trunk/uninstall.php
r3117223 r3309228 5 5 * Process the uninstalling of this plugin 6 6 * 7 * @since 7.47 * @since 8.1 8 8 * @author Kevin Pirnie <[email protected]> 9 9 * @package The Cache Purger -
the-cache-purger/trunk/vendor/composer/autoload_classmap.php
r3296444 r3309228 1029 1029 'KP_Cache_Purge' => $baseDir . '/work/inc/kp-cache-purge.php', 1030 1030 'KP_Cache_Purge_Admin' => $baseDir . '/work/inc/kp-cache-purge-admin.php', 1031 'KP_Cache_Purge_CLI' => $baseDir . '/cli/kp-cache-purge-cli.php',1032 1031 'KP_Cache_Purge_Common' => $baseDir . '/work/inc/kp-cache-purge-common.php', 1033 1032 'KP_Cache_Purge_Processor' => $baseDir . '/work/inc/kp-cache-purge-processor.php', -
the-cache-purger/trunk/vendor/composer/autoload_static.php
r3296444 r3309228 1082 1082 'KP_Cache_Purge' => __DIR__ . '/../..' . '/work/inc/kp-cache-purge.php', 1083 1083 'KP_Cache_Purge_Admin' => __DIR__ . '/../..' . '/work/inc/kp-cache-purge-admin.php', 1084 'KP_Cache_Purge_CLI' => __DIR__ . '/../..' . '/cli/kp-cache-purge-cli.php',1085 1084 'KP_Cache_Purge_Common' => __DIR__ . '/../..' . '/work/inc/kp-cache-purge-common.php', 1086 1085 'KP_Cache_Purge_Processor' => __DIR__ . '/../..' . '/work/inc/kp-cache-purge-processor.php', -
the-cache-purger/trunk/vendor/composer/installed.json
r3296444 r3309228 614 614 { 615 615 "name": "symfony/deprecation-contracts", 616 "version": "v3. 5.1",617 "version_normalized": "3. 5.1.0",616 "version": "v3.6.0", 617 "version_normalized": "3.6.0.0", 618 618 "source": { 619 619 "type": "git", 620 620 "url": "https://github.com/symfony/deprecation-contracts.git", 621 "reference": " 74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6"622 }, 623 "dist": { 624 "type": "zip", 625 "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/ 74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",626 "reference": " 74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",621 "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62" 622 }, 623 "dist": { 624 "type": "zip", 625 "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62", 626 "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62", 627 627 "shasum": "" 628 628 }, … … 630 630 "php": ">=8.1" 631 631 }, 632 "time": "2024-09-25T14:2 0:29+00:00",632 "time": "2024-09-25T14:21:43+00:00", 633 633 "type": "library", 634 634 "extra": { … … 638 638 }, 639 639 "branch-alias": { 640 "dev-main": "3. 5-dev"640 "dev-main": "3.6-dev" 641 641 } 642 642 }, … … 664 664 "homepage": "https://symfony.com", 665 665 "support": { 666 "source": "https://github.com/symfony/deprecation-contracts/tree/v3. 5.1"666 "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0" 667 667 }, 668 668 "funding": [ -
the-cache-purger/trunk/vendor/composer/installed.php
r3296444 r3309228 2 2 'root' => array( 3 3 'name' => 'kevinpirnie/the-cache-purger', 4 'pretty_version' => '1. 7.11',5 'version' => '1. 7.11.0',4 'pretty_version' => '1.0.0+no-version-set', 5 'version' => '1.0.0.0', 6 6 'reference' => null, 7 7 'type' => 'project', … … 48 48 ), 49 49 'kevinpirnie/the-cache-purger' => array( 50 'pretty_version' => '1. 7.11',51 'version' => '1. 7.11.0',50 'pretty_version' => '1.0.0+no-version-set', 51 'version' => '1.0.0.0', 52 52 'reference' => null, 53 53 'type' => 'project', … … 111 111 ), 112 112 'symfony/deprecation-contracts' => array( 113 'pretty_version' => 'v3. 5.1',114 'version' => '3. 5.1.0',115 'reference' => ' 74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6',113 'pretty_version' => 'v3.6.0', 114 'version' => '3.6.0.0', 115 'reference' => '63afe740e99a13ba87ec199bb07bbdee937a5b62', 116 116 'type' => 'library', 117 117 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', -
the-cache-purger/trunk/vendor/symfony/deprecation-contracts/composer.json
r3128169 r3309228 26 26 "extra": { 27 27 "branch-alias": { 28 "dev-main": "3. 5-dev"28 "dev-main": "3.6-dev" 29 29 }, 30 30 "thanks": { -
the-cache-purger/trunk/work/common.php
r3296444 r3309228 5 5 * Setup the common functionality for the plugin 6 6 * 7 * @since 7.47 * @since 8.1 8 8 * @author Kevin Pirnie <[email protected]> 9 9 * @package The Cache Purger … … 20 20 register_activation_hook( $_pi_path, function( $_network ) : void { 21 21 22 // check the PHP version, and deny if lower than 7.423 if ( version_compare( PHP_VERSION, ' 7.4', '<=' ) ) {22 // check the PHP version, and deny if lower than 8.1 23 if ( version_compare( PHP_VERSION, '8.1', '<=' ) ) { 24 24 25 25 // it is, so throw and error message and exit 26 wp_die( __( '<h1>PHP To Low</h1><p>Due to the nature of this plugin, it cannot be run on lower versions of PHP.</p><p>Please contact your hosting provider to upgrade your site to at least version 7.4.</p>', 'the-cache-purger' ),27 __( 'Cannot Activate: PHP To Low' , 'the-cache-purger'),26 wp_die( __( '<h1>PHP To Low</h1><p>Due to the nature of this plugin, it cannot be run on lower versions of PHP.</p><p>Please contact your hosting provider to upgrade your site to at least version 8.1.</p>' ), 27 __( 'Cannot Activate: PHP To Low' ), 28 28 array( 29 29 'back_link' => true, … … 37 37 // we did, so... throw an error message and exit 38 38 wp_die( 39 __( '<h1>Cannot Network Activate</h1><p>Due to the nature of this plugin, it cannot be network activated.</p><p>Please go back, and activate inside your subsites.</p>' , 'the-cache-purger'),40 __( 'Cannot Network Activate' , 'the-cache-purger'),39 __( '<h1>Cannot Network Activate</h1><p>Due to the nature of this plugin, it cannot be network activated.</p><p>Please go back, and activate inside your subsites.</p>' ), 40 __( 'Cannot Network Activate' ), 41 41 array( 42 42 'back_link' => true, … … 60 60 include TCP_PATH . '/vendor/autoload.php'; 61 61 62 // let's see if we're in CLI or not63 if ( ! defined( 'WP_CLI') ) {62 // action scheduler not loading workaround 63 if ( ! class_exists( 'ActionScheduler', false ) || ! ActionScheduler::is_initialized( ) ) { 64 64 65 // action scheduler not loading workaround66 if ( ! class_exists( 'ActionScheduler', false ) || ! ActionScheduler::is_initialized( ) ) {65 // require the class 66 require_once( TCP_PATH . '/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler.php' ); 67 67 68 // require the class 69 require_once( TCP_PATH . '/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler.php' ); 70 71 // no initialize the library 72 ActionScheduler::init( TCP_PATH . '/vendor/woocommerce/action-scheduler/action-scheduler.php' ); 73 74 } 75 76 // set us up a class alias for the common class 77 class_alias( 'KP_Cache_Purge_Common', 'KPCPC' ); 78 79 // hook into the plugins loaded action 80 add_action( 'plugins_loaded', function( ) : void { 81 82 // initialize the field framework 83 KPTCP::init( ); 84 85 }, PHP_INT_MAX ); 86 87 // hook into the custom fields loaded 88 add_action( 'kptcp_loaded', function( ) : void { 89 90 // fire up the admin class 91 $_cp_admin = new KP_Cache_Purge_Admin( ); 92 93 // do it! 94 $_cp_admin -> kpcp_admin( ); 95 96 // clean it up 97 unset( $_cp_admin ); 98 99 }, PHP_INT_MAX ); 100 101 // hack in some styling 102 add_action( 'admin_enqueue_scripts', function( ) : void { 103 104 // we are, so queue up our unminified assets 105 wp_register_style( 'kpcp_css', plugins_url( '/assets/css/style.css?_=' . time( ), TCP_PATH . '/' . TCP_FILENAME ), null, null ); 106 107 // enqueue it 108 wp_enqueue_style( 'kpcp_css' ); 109 110 }, PHP_INT_MAX ); 111 112 // hook into the admin_init 113 add_action( 'admin_init', function( ) : void { 114 115 // get the querystring for the purge 116 $_do_purge = filter_var( ( isset( $_GET['the_purge'] ) ) ? sanitize_text_field( $_GET['the_purge'] ) : false, FILTER_VALIDATE_BOOLEAN ); 117 118 // if it's true 119 if( $_do_purge ) { 120 121 // setup the cache purger 122 $_cp = new KP_Cache_Purge( ); 123 124 // purge 125 $_cp -> kp_do_purge( ); 126 127 // log the purge 128 KPCPC::write_log( "Manual Cache Cleared" ); 129 130 // clean it up 131 unset( $_cp ); 132 133 // show an admin message 134 add_action( 'admin_notices', function( ) :void { 135 136 ?> 137 <div class="notice notice-success is-dismissible"> 138 <p><?php _e( "<p>The cache purge has initialized.</p><p>The majority is run in the background, so please wait around 2 minutes for it to complete.</p>", 'the-cache-purger' ); ?></p> 139 </div> 140 <?php 141 142 }, PHP_INT_MAX ); 143 144 } 145 146 // get the querystring for purging the log 147 $_do_log_purge = filter_var( ( isset( $_GET['the_log_purge'] ) ) ? sanitize_text_field( $_GET['the_log_purge'] ) : false, FILTER_VALIDATE_BOOLEAN ); 148 149 /// make sure we are actually purging the log 150 if( $_do_log_purge ) { 151 152 // get the logs path 153 $_l_path = ABSPATH . 'wp-content/purge.log'; 154 155 // unfortunately we cannot utilize wordpress's built-in file methods, but let's clear the log 156 file_put_contents( $_l_path, '', LOCK_EX ); 157 158 } 159 160 }, PHP_INT_MAX ); 161 162 // hook into the wordpress initialization 163 add_action( 'init', function( ) : void { 164 165 // get our options 166 $_opts = KPCPC::get_options( ); 167 168 // get our wp cron info 169 $_cron_info = wp_get_schedules( ); 170 171 // set if it's allowed 172 $_allowed = filter_var( ( $_opts -> cron_schedule_allowed ) ?? false, FILTER_VALIDATE_BOOLEAN ); 173 $_l_allowed = filter_var( ( $_opts -> should_log ) ?? false, FILTER_VALIDATE_BOOLEAN ); 174 $_lp_allowed = filter_var( ( $_opts -> cron_log_purge_allowed ) ?? false, FILTER_VALIDATE_BOOLEAN ); 175 176 // if it is 177 if( $_allowed ) { 178 179 // setup our action and create the job for it 180 add_action( 'kpcpc_the_purge', 'do_the_actual_purge' ); 181 182 // make sure we're only scheduling this once 183 if( ! as_has_scheduled_action( 'kpcpc_the_purge' ) ) { 184 185 // throw a hook here 186 do_action( 'tcp_cron_cache_purge' ); 187 188 // get our schedule options 189 $_bi_schedule = ( $_opts -> cron_schedule_builtin ) ?? 'hourly'; 190 191 // schedule the event 192 as_schedule_recurring_action( time( ), $_cron_info[ $_bi_schedule ]['interval'], 'kpcpc_the_purge' ); 193 194 } 195 196 } 197 198 // if the log is enabled and if the log purging is allowed, and allowed to be on a schedule 199 if( $_l_allowed && $_lp_allowed ) { 200 201 // setup the action to be performed 202 add_action( 'kpcpc_the_log_purge', 'do_log_purge' ); 203 204 // make sure we're only scheduling this once 205 if( ! as_has_scheduled_action( 'kpcpc_the_log_purge' ) ) { 206 207 // throw a hook here 208 do_action( 'tcp_cron_log_purge' ); 209 210 // get our schedule options 211 $_bi_schedule = ( $_opts -> cron_log_purge_schedule ) ?? 'weekly'; 212 213 // schedule the event 214 as_schedule_recurring_action( time( ), $_cron_info[ $_bi_schedule ]['interval'], 'kpcpc_the_log_purge' ); 215 216 } 217 218 } 219 220 // see if we're purging 221 $_is_purging = filter_var( ( get_transient( 'is_doing_cache_purge' ) ) ?? false, FILTER_VALIDATE_BOOLEAN ); 222 223 // if we are purging 224 if( $_is_purging ) { 225 226 // create a hook for the clearing to occurr in 227 add_action( 'kptcp_long_purge', 'do_the_long_purge' ); 228 229 // check if the long purge task already exists 230 if( ! as_next_scheduled_action( 'kptcp_long_purge' ) ) { 231 232 // throw a hook here 233 do_action( 'tcp_long_cache_purge' ); 234 235 // schedule it to run once as soon as possible 236 as_schedule_single_action( time( ) + 5, 'kptcp_long_purge' ); 237 238 } 239 240 } 241 242 }, PHP_INT_MAX ); 243 244 // fire up the processor class here. Inside it are the proper hooks where the purging will take place 245 $_processor = new KP_Cache_Purge_Processor( ); 246 247 // run the processing 248 $_processor -> process( ); 249 250 // clean up 251 unset( $_processor ); 252 253 // we'll need a message in wp-admin for PHP 8 compatibility 254 add_action( 'admin_notices', function( ) : void { 255 256 // if the site is under PHP 8.1 257 if ( version_compare( PHP_VERSION, '8.1', '<=' ) ) { 258 259 // show this notice 260 ?> 261 <div class="notice notice-info is-dismissible"> 262 <p><?php _e( "<h3>PHP Upgrade Notice</h3><p>To maintain optimal security standards, this will be the final version that supports PHP versions lower than 8.1. Your site must be upgraded in order to update the plugin to future versions.</p><p>Please see here for up to date PHP version information: <a href='https://www.php.net/supported-versions.php' target='_blank'>https://www.php.net/supported-versions.php</a></p>", 'the-cache-purger' ); ?></p> 263 </div> 264 <?php 265 } 266 }, PHP_INT_MAX ); 267 268 // we've hit the CLI, let's make sure we're only processing based on that 269 } else { 270 271 // just fire up the main CLI class 272 new KP_Cache_Purge_CLI( ); 68 // no initialize the library 69 ActionScheduler::init( TCP_PATH . '/vendor/woocommerce/action-scheduler/action-scheduler.php' ); 273 70 274 71 } 275 72 276 function do_the_long_purge( ) : void { 73 // set us up a class alias for the common class 74 class_alias( 'KP_Cache_Purge_Common', 'KPCPC' ); 277 75 278 // fire up the cache purge 279 $_cp = new KP_Cache_Purge( ); 280 281 // run the long runner 282 $_cp -> kp_do_long_purge( ); 283 284 // clean up 285 unset( $_cp ); 286 287 } 288 289 290 function do_log_purge( ) : void { 291 292 // get the logs path 293 $_l_path = ABSPATH . 'wp-content/purge.log'; 294 295 // unfortunately we cannot utilize wordpress's built-in file methods, but let's clear the log 296 file_put_contents( $_l_path, '', LOCK_EX ); 297 298 } 299 300 301 function do_the_actual_purge( ) : void { 302 303 // run the purge! 304 $_cp = new KP_Cache_Purge( ); 305 306 // purge 307 $_cp -> kp_do_purge( ); 308 309 // log the purge 310 KPCPC::write_log( "CRONJOB Cache Cleared" ); 311 312 // clean it up 313 unset( $_cp ); 314 315 } 76 // initialize the plugin, controls all hooks necessary for both settings and cache clearing 77 KPCPC::initialize_plugin( ); 316 78 317 79 } -
the-cache-purger/trunk/work/doc.php
r3154520 r3309228 5 5 * The plugin documentation 6 6 * 7 * @since 7.47 * @since 8.1 8 8 * @author Kevin Pirnie <[email protected]> 9 9 * @package The Cache Purger … … 18 18 <article class="kptcp-doc-content" id="kpcp_top"> 19 19 <header> 20 <h1><?php _e( 'The Cache Purger Documentation' , 'the-cache-purger'); ?></h1>20 <h1><?php _e( 'The Cache Purger Documentation' ); ?></h1> 21 21 </header> 22 22 <main> 23 <h2 id="kpcp_desc"><?php _e( 'Description' , 'the-cache-purger'); ?></h2>24 <p class="kpcp_nav"><a href="#kpcp_top"><?php _e( 'TOP' , 'the-cache-purger' ); ?></a> | <a href="#kpcp_desc"><?php _e( 'DESCRIPTION', 'the-cache-purger' ); ?></a> | <a href="#kpcp_features"><?php _e( 'FEATURES', 'the-cache-purger' ); ?></a> | <a href="#kpcp_settings"><?php _e( 'SETTINGS', 'the-cache-purger' ); ?></a> | <a href="#kpcp_api_settings"><?php _e( 'API/SERVER SETTINGS', 'the-cache-purger' ); ?></a> | <a href="#kpcp_cron_settings"><?php _e( 'CRON Action SETTINGS', 'the-cache-purger' ); ?></a> | <a href="#kpcp_cron_settings"><?php _e( 'CRON Action SETTINGS', 'the-cache-purger' ); ?></a> | <a href="#kpcp_in_the_works"><?php _e( 'IN THE WORKS', 'the-cache-purger' ); ?></a></p>25 <p><?php _e( 'This plugin attempts to purge all server-side caching methods' , 'the-cache-purger'); ?>.</p>26 <p><?php _e( 'This includes the most common caching plugins, some hosting based caches, most server based caches, built-in Wordpress object caches, and even simple file based caches' , 'the-cache-purger'); ?></p>27 <p><?php _e( 'Just configure what you want to purge on, and the plugin will take care of the rest' , 'the-cache-purger'); ?>.</p>28 <p><?php _e( 'We have also included a CLI cache purger. Shell into your install and run the following command:' , 'the-cache-purger' ); ?> <code>wp the_cache purge</code>. <?php _e( 'The normal CLI flags apply, and if you are in a multisite, you must include the --url flag.', 'the-cache-purger' ); ?></p>29 <h2 id="kpcp_features"><?php _e( 'Features' , 'the-cache-purger'); ?></h2>30 <p class="kpcp_nav"><a href="#kpcp_top"><?php _e( 'TOP' , 'the-cache-purger' ); ?></a> | <a href="#kpcp_desc"><?php _e( 'DESCRIPTION', 'the-cache-purger' ); ?></a> | <a href="#kpcp_features"><?php _e( 'FEATURES', 'the-cache-purger' ); ?></a> | <a href="#kpcp_settings"><?php _e( 'SETTINGS', 'the-cache-purger' ); ?></a> | <a href="#kpcp_api_settings"><?php _e( 'API/SERVER SETTINGS', 'the-cache-purger' ); ?></a> | <a href="#kpcp_cron_settings"><?php _e( 'CRON Action SETTINGS', 'the-cache-purger' ); ?></a> | <a href="#kpcp_in_the_works"><?php _e( 'IN THE WORKS', 'the-cache-purger' ); ?></a></p>31 <h3><?php _e( 'Built in automatic cache purging for the following caches' , 'the-cache-purger'); ?></h3>32 <ul> 33 <li><strong><?php _e( 'Plugins/Themes' , 'the-cache-purger'); ?></strong>34 <ul> 35 <li><?php _e( 'Flying Press' , 'the-cache-purger' ); ?>, <?php _e( 'SiteGround Optimizer', 'the-cache-purger' ); ?>, <?php _e( 'Nginx Helper', 'the-cache-purger' ); ?>, <?php _e( 'LiteSpeed Cache', 'the-cache-purger' ); ?>, <?php _e( 'Cachify', 'the-cache-purger' ); ?>, <?php _e( 'Autoptimize', 'the-cache-purger' ); ?>, <?php _e( 'Fast Velocity Minify', 'the-cache-purger' ); ?>, <?php _e( 'WP Rocket', 'the-cache-purger' ); ?>, <?php _e( 'Swift Performance', 'the-cache-purger' ); ?>, <?php _e( 'Comet Cache', 'the-cache-purger' ); ?>, <?php _e( 'Hummingbird', 'the-cache-purger' ); ?>, <?php _e( 'WP Fastest Cache', 'the-cache-purger' ); ?>, <?php _e( 'WP Super Cache', 'the-cache-purger' ); ?>, <?php _e( 'W3 Total Cache', 'the-cache-purger' ); ?>, <?php _e( 'Hyper Cache', 'the-cache-purger' ); ?>, <?php _e( 'WP Optimize', 'the-cache-purger' ); ?>, <?php _e( 'Cache Enabler', 'the-cache-purger' ); ?>, <?php _e( 'Divi', 'the-cache-purger' ); ?>, <?php _e( 'Elementor', 'the-cache-purger' ); ?></li>36 </ul> 37 </li> 38 <li><strong><?php _e( 'Hosting / CDN' , 'the-cache-purger'); ?></strong>39 <ul> 40 <li><?php _e( 'WPEngine' , 'the-cache-purger' ); ?>, <?php _e( 'SpinupWP', 'the-cache-purger' ); ?>, <?php _e( 'Kinsta', 'the-cache-purger' ); ?>, <?php _e( 'GoDaddy', 'the-cache-purger' ); ?>, <?php _e( 'Pantheon', 'the-cache-purger' ); ?>, <?php _e( 'CloudFlare', 'the-cache-purger' ); ?>, <?php _e( 'Sucuri', 'the-cache-purger' ); ?>, <?php _e( 'RunCloud', 'the-cache-purger' ); ?>, <?php _e( 'Siteground', 'the-cache-purger' ); ?>, <?php _e( 'Bluehost', 'the-cache-purger' ); ?>, <?php _e( 'Breezeway', 'the-cache-purger' ); ?></li>41 <li><em><?php _e( 'Some of these are dependant on separate plugins. Please see your provider if it is necessary, or already included' , 'the-cache-purger'); ?></em></li>42 </ul> 43 </li> 44 <li><strong><?php _e( 'Server Based' , 'the-cache-purger'); ?></strong>45 <ul> 46 <li><?php _e( 'Fastly CDN' , 'the-cache-purger' ); ?>, <?php _e( 'PHP FPM', 'the-cache-purger' ); ?>, <?php _e( 'Zend Opcache', 'the-cache-purger' ); ?>, <?php _e( 'APC and APCU', 'the-cache-purger' ); ?>, <?php _e( 'WinCache', 'the-cache-purger' ); ?>, <?php _e( 'Pagespeed Module', 'the-cache-purger' ); ?>, <?php _e( 'Memcache', 'the-cache-purger' ); ?>, <?php _e( 'Memcached', 'the-cache-purger' ); ?>, <?php _e( 'Redis', 'the-cache-purger' ); ?>, <?php _e( 'nGinx', 'the-cache-purger' ); ?>, <?php _e( 'Static File Caches', 'the-cache-purger' ); ?></li>47 </ul> 48 </li> 49 <li><strong><?php _e( 'Wordpress Built-In' , 'the-cache-purger' ); ?></strong> <?php _e( 'object caching and persistent object caching', 'the-cache-purger' ); ?></li>23 <h2 id="kpcp_desc"><?php _e( 'Description' ); ?></h2> 24 <p class="kpcp_nav"><a href="#kpcp_top"><?php _e( 'TOP' ); ?></a> | <a href="#kpcp_desc"><?php _e( 'DESCRIPTION' ); ?></a> | <a href="#kpcp_features"><?php _e( 'FEATURES' ); ?></a> | <a href="#kpcp_settings"><?php _e( 'SETTINGS' ); ?></a> | <a href="#kpcp_api_settings"><?php _e( 'API/SERVER SETTINGS' ); ?></a> | <a href="#kpcp_cron_settings"><?php _e( 'CRON Action SETTINGS' ); ?></a> | <a href="#kpcp_cron_settings"><?php _e( 'CRON Action SETTINGS' ); ?></a> | <a href="#kpcp_in_the_works"><?php _e( 'IN THE WORKS' ); ?></a></p> 25 <p><?php _e( 'This plugin attempts to purge all server-side caching methods' ); ?>.</p> 26 <p><?php _e( 'This includes the most common caching plugins, some hosting based caches, most server based caches, built-in Wordpress object caches, and even simple file based caches' ); ?></p> 27 <p><?php _e( 'Just configure what you want to purge on, and the plugin will take care of the rest' ); ?>.</p> 28 <p><?php _e( 'We have also included a CLI cache purger. Shell into your install and run the following command:' ); ?> <code>wp the_cache purge</code>. <?php _e( 'The normal CLI flags apply, and if you are in a multisite, you must include the --url flag.' ); ?></p> 29 <h2 id="kpcp_features"><?php _e( 'Features' ); ?></h2> 30 <p class="kpcp_nav"><a href="#kpcp_top"><?php _e( 'TOP' ); ?></a> | <a href="#kpcp_desc"><?php _e( 'DESCRIPTION' ); ?></a> | <a href="#kpcp_features"><?php _e( 'FEATURES' ); ?></a> | <a href="#kpcp_settings"><?php _e( 'SETTINGS' ); ?></a> | <a href="#kpcp_api_settings"><?php _e( 'API/SERVER SETTINGS' ); ?></a> | <a href="#kpcp_cron_settings"><?php _e( 'CRON Action SETTINGS' ); ?></a> | <a href="#kpcp_in_the_works"><?php _e( 'IN THE WORKS' ); ?></a></p> 31 <h3><?php _e( 'Built in automatic cache purging for the following caches' ); ?></h3> 32 <ul> 33 <li><strong><?php _e( 'Plugins/Themes' ); ?></strong> 34 <ul> 35 <li><?php _e( 'Flying Press' ); ?>, <?php _e( 'SiteGround Optimizer' ); ?>, <?php _e( 'Nginx Helper' ); ?>, <?php _e( 'LiteSpeed Cache' ); ?>, <?php _e( 'Cachify' ); ?>, <?php _e( 'Autoptimize' ); ?>, <?php _e( 'Fast Velocity Minify' ); ?>, <?php _e( 'WP Rocket' ); ?>, <?php _e( 'Swift Performance' ); ?>, <?php _e( 'Comet Cache' ); ?>, <?php _e( 'Hummingbird' ); ?>, <?php _e( 'WP Fastest Cache' ); ?>, <?php _e( 'WP Super Cache' ); ?>, <?php _e( 'W3 Total Cache' ); ?>, <?php _e( 'Hyper Cache' ); ?>, <?php _e( 'WP Optimize' ); ?>, <?php _e( 'Cache Enabler' ); ?>, <?php _e( 'Divi' ); ?>, <?php _e( 'Elementor' ); ?></li> 36 </ul> 37 </li> 38 <li><strong><?php _e( 'Hosting / CDN' ); ?></strong> 39 <ul> 40 <li><?php _e( 'WPEngine' ); ?>, <?php _e( 'SpinupWP' ); ?>, <?php _e( 'Kinsta' ); ?>, <?php _e( 'GoDaddy' ); ?>, <?php _e( 'Pantheon' ); ?>, <?php _e( 'CloudFlare' ); ?>, <?php _e( 'Sucuri' ); ?>, <?php _e( 'RunCloud' ); ?>, <?php _e( 'Siteground' ); ?>, <?php _e( 'Bluehost' ); ?>, <?php _e( 'Breezeway' ); ?></li> 41 <li><em><?php _e( 'Some of these are dependant on separate plugins. Please see your provider if it is necessary, or already included' ); ?></em></li> 42 </ul> 43 </li> 44 <li><strong><?php _e( 'Server Based' ); ?></strong> 45 <ul> 46 <li><?php _e( 'Fastly CDN' ); ?>, <?php _e( 'PHP FPM' ); ?>, <?php _e( 'Zend Opcache' ); ?>, <?php _e( 'APC and APCU' ); ?>, <?php _e( 'WinCache' ); ?>, <?php _e( 'Pagespeed Module' ); ?>, <?php _e( 'Memcache' ); ?>, <?php _e( 'Memcached' ); ?>, <?php _e( 'Redis' ); ?>, <?php _e( 'nGinx' ); ?>, <?php _e( 'Static File Caches' ); ?></li> 47 </ul> 48 </li> 49 <li><strong><?php _e( 'Wordpress Built-In' ); ?></strong> <?php _e( 'object caching and persistent object caching' ); ?></li> 50 50 </ul> 51 51 52 <h3><?php _e( 'Purges are configurable in the settings, and include the following saves/updates/trashes:' , 'the-cache-purger'); ?></h3>53 <ul> 54 <li><?php _e( 'Posts' , 'the-cache-purger' ); ?>, <?php _e( 'Pages', 'the-cache-purger' ); ?>, <?php _e( 'Custom Post Types', 'the-cache-purger' ); ?>, <?php _e( 'Categories', 'the-cache-purger' ); ?>, <?php _e( 'Taxonomies', 'the-cache-purger' ); ?>, <?php _e( 'Widgets', 'the-cache-purger' ); ?>, <?php _e( 'Menus', 'the-cache-purger' ); ?>, <?php _e( 'Plugins', 'the-cache-purger' ); ?>, <?php _e( 'Updates', 'the-cache-purger' ); ?>, <?php _e( 'Settings & Options', 'the-cache-purger' ); ?>, <?php _e( 'GravityForms', 'the-cache-purger' ); ?> (<em><?php _e( 'if installed and activated', 'the-cache-purger' ); ?></em>), <?php _e( 'Advanced Custom Fields', 'the-cache-purger' ); ?> (<em><?php _e( 'if installed and activated', 'the-cache-purger' ); ?></em>), <?php _e( 'WooCommerce Settings', 'the-cache-purger' ); ?> (<em><?php _e( 'if installed and activated', 'the-cache-purger' ); ?></em>)</li>55 </ul> 56 <h2 id="kpcp_settings"><?php _e( 'Settings' , 'the-cache-purger'); ?></h2>57 <p class="kpcp_nav"><a href="#kpcp_top"><?php _e( 'TOP' , 'the-cache-purger' ); ?></a> | <a href="#kpcp_desc"><?php _e( 'DESCRIPTION', 'the-cache-purger' ); ?></a> | <a href="#kpcp_features"><?php _e( 'FEATURES', 'the-cache-purger' ); ?></a> | <a href="#kpcp_settings"><?php _e( 'SETTINGS', 'the-cache-purger' ); ?></a> | <a href="#kpcp_api_settings"><?php _e( 'API/SERVER SETTINGS', 'the-cache-purger' ); ?></a> | <a href="#kpcp_cron_settings"><?php _e( 'CRON Action SETTINGS', 'the-cache-purger' ); ?></a> | <a href="#kpcp_in_the_works"><?php _e( 'IN THE WORKS', 'the-cache-purger' ); ?></a></p>58 <ul> 59 <li> 60 <strong><?php _e( 'Log Purge Actions?' , 'the-cache-purger'); ?></strong>61 <ul> 62 <li><?php _e( 'Option(s) Name:' , 'the-cache-purger'); ?> <code>should_log</code></li>63 <li><?php _e( 'Do you want to log purge actions? The log file will be located here:' , 'the-cache-purger'); ?> <code><?php _e( ABSPATH . 'wp-content/purge.log' ); ?></code></li>64 </ul> 65 </li> 66 <li> 67 <strong><?php _e( 'Purge on Menu?' , 'the-cache-purger'); ?></strong>68 <ul> 69 <li><?php _e( 'Option(s) Name:' , 'the-cache-purger'); ?> <code>on_menu</code></li>70 <li><?php _e( 'This will attempt to purge all caches for every menu update, save, or delete.' , 'the-cache-purger'); ?></li>71 </ul> 72 </li> 73 <li> 74 <strong><?php _e( 'Purge on Post?' , 'the-cache-purger'); ?></strong>75 <ul> 76 <li><?php _e( 'Option(s) Name:' , 'the-cache-purger'); ?> <code>on_post</code></li>77 <li><?php _e( 'This will attempt to purge all caches for every post update, save, or delete.' , 'the-cache-purger'); ?></li>78 </ul> 79 </li> 80 <li> 81 <strong><?php _e( 'Ignored Posts' , 'the-cache-purger'); ?></strong>82 <ul> 83 <li><?php _e( 'Option(s) Name:' , 'the-cache-purger'); ?> <code>on_post_exclude</code></li>84 <li><?php _e( 'Select the posts you wish to ignore from the cache purge actions.' , 'the-cache-purger'); ?></li>85 </ul> 86 </li> 87 <li> 88 <strong><?php _e( 'Purge on Page?' , 'the-cache-purger'); ?></strong>89 <ul> 90 <li><?php _e( 'Option(s) Name:' , 'the-cache-purger'); ?> <code>on_page</code></li>91 <li><?php _e( 'This will attempt to purge all caches for every page update, save, or delete.' , 'the-cache-purger'); ?></li>92 </ul> 93 </li> 94 <li> 95 <strong><?php _e( 'Ignored Pages' , 'the-cache-purger'); ?></strong>96 <ul> 97 <li><?php _e( 'Option(s) Name:' , 'the-cache-purger'); ?> <code>on_page_exclude</code></li>98 <li><?php _e( 'Select the pages you wish to ignore from the cache purge actions.' , 'the-cache-purger'); ?></li>99 </ul> 100 </li> 101 <li> 102 <strong><?php _e( 'Purge on CPT?' , 'the-cache-purger'); ?></strong>103 <ul> 104 <li><?php _e( 'Option(s) Name:' , 'the-cache-purger'); ?> <code>on_cpt</code></li>105 <li><?php _e( 'This will attempt to purge all caches for every custom post type update, save, or delete.' , 'the-cache-purger'); ?></li>106 </ul> 107 </li> 108 <li> 109 <strong><?php _e( 'Ignore CPT' , 'the-cache-purger'); ?></strong>110 <ul> 111 <li><?php _e( 'Option(s) Name:' , 'the-cache-purger'); ?> <code>on_cpt_exclude</code></li>112 <li><?php _e( 'Select the custom post types you wish to ignore from the cache purge actions.' , 'the-cache-purger'); ?></li>113 </ul> 114 </li> 115 <li> 116 <strong><?php _e( 'Purge on Term/Taxonomy?' , 'the-cache-purger'); ?></strong>117 <ul> 118 <li><?php _e( 'Option(s) Name:' , 'the-cache-purger'); ?> <code>on_taxonomy</code></li>119 <li><?php _e( 'This will attempt to purge all caches for every taxonomy/term update, save, or delete.' , 'the-cache-purger'); ?></li>120 </ul> 121 </li> 122 <li> 123 <strong><?php _e( 'Purge on Category?' , 'the-cache-purger'); ?></strong>124 <ul> 125 <li><?php _e( 'Option(s) Name:' , 'the-cache-purger'); ?> <code>on_category</code></li>126 <li><?php _e( 'This will attempt to purge all caches for every category update, save, or delete.' , 'the-cache-purger'); ?></li>127 </ul> 128 </li> 129 <li> 130 <strong><?php _e( 'Purge on Widget?' , 'the-cache-purger'); ?></strong>131 <ul> 132 <li><?php _e( 'Option(s) Name:' , 'the-cache-purger'); ?> <code>on_widget</code></li>133 <li><?php _e( 'This will attempt to purge all caches for every widget update, save, or removal.' , 'the-cache-purger'); ?></li>134 </ul> 135 </li> 136 <li> 137 <strong><?php _e( 'Purge on Customizer?' , 'the-cache-purger'); ?></strong>138 <ul> 139 <li><?php _e( 'Option(s) Name:' , 'the-cache-purger'); ?> <code>on_customizer</code></li>140 <li><?php _e( 'This will attempt to purge all caches for every customizer update or save.' , 'the-cache-purger'); ?></li>141 </ul> 142 </li> 143 <li> 144 <strong><?php _e( 'Purge on GravityForms?' , 'the-cache-purger'); ?></strong>145 <ul> 146 <li><?php _e( 'Option(s) Name:' , 'the-cache-purger'); ?> <code>on_form</code></li>147 <li><?php _e( 'This will attempt to purge all caches for every form update, save, or delete.' , 'the-cache-purger'); ?></li>148 <li><em><?php _e( 'This option is only available if you have GravityForms installed and active on your site.' , 'the-cache-purger'); ?></em></li>149 </ul> 150 </li> 151 <li> 152 <strong><?php _e( 'Ignore Forms' , 'the-cache-purger'); ?></strong>153 <ul> 154 <li><?php _e( 'Option(s) Name:' , 'the-cache-purger'); ?> <code>on_form_exclude</code></li>155 <li><?php _e( 'Select the forms you wish to ignore from the cache purge actions.' , 'the-cache-purger'); ?></li>156 <li><em><?php _e( 'This option is only available if you have GravityForms installed and active on your site.' , 'the-cache-purger'); ?></em></li>157 </ul> 158 </li> 159 <li> 160 <strong><?php _e( 'Purge on ACF?' , 'the-cache-purger'); ?></strong>161 <ul> 162 <li><?php _e( 'Option(s) Name:' , 'the-cache-purger'); ?> <code>on_acf</code></li>163 <li><?php _e( 'This will attempt to purge all caches for every "advanced custom field" group update, save, or delete.' , 'the-cache-purger'); ?></li>164 <li><em><?php _e( 'This option is only available if you have Advanced Custom Fields installed and active on your site.' , 'the-cache-purger'); ?></em></li>165 </ul> 166 </li> 167 <li> 168 <strong><?php _e( 'Ignore Field Group' , 'the-cache-purger'); ?></strong>169 <ul> 170 <li><?php _e( 'Option(s) Name:' , 'the-cache-purger'); ?> <code>on_acf_exclude</code></li>171 <li><?php _e( 'Select the field groups you wish to ignore from the cache purge actions.' , 'the-cache-purger'); ?></li>172 <li><em><?php _e( 'This option is only available if you have Advanced Custom Fields installed and active on your site.' , 'the-cache-purger'); ?></em></li>173 </ul> 174 </li> 175 </ul> 176 <h2 id="kpcp_api_settings"><?php _e( 'API/SERVER Settings' , 'the-cache-purger'); ?></h2>177 <p class="kpcp_nav"><a href="#kpcp_top"><?php _e( 'TOP' , 'the-cache-purger' ); ?></a> | <a href="#kpcp_desc"><?php _e( 'DESCRIPTION', 'the-cache-purger' ); ?></a> | <a href="#kpcp_features"><?php _e( 'FEATURES', 'the-cache-purger' ); ?></a> | <a href="#kpcp_settings"><?php _e( 'SETTINGS', 'the-cache-purger' ); ?></a> | <a href="#kpcp_api_settings"><?php _e( 'API/SERVER SETTINGS', 'the-cache-purger' ); ?></a> | <a href="#kpcp_cron_settings"><?php _e( 'CRON Action SETTINGS', 'the-cache-purger' ); ?></a> | <a href="#kpcp_in_the_works"><?php _e( 'IN THE WORKS', 'the-cache-purger' ); ?></a></p>178 <ul> 179 <li> 180 <strong><?php _e( 'Remote Redis Server' , 'the-cache-purger'); ?></strong>181 <ul> 182 <li><?php _e( 'Option(s) Name:' , 'the-cache-purger'); ?> <code>remote_redis</code></li>183 <li><?php _e( 'Do you want to configure Redis servers to be purged?' , 'the-cache-purger'); ?></li>184 </ul> 185 </li> 186 <li> 187 <strong><?php _e( 'Redis Servers - Server' , 'the-cache-purger'); ?></strong>188 <ul> 189 <li><?php _e( 'Option(s) Name:' , 'the-cache-purger'); ?> <code>remote_redis_servers['remote_redis_server']</code></li>190 <li><?php _e( 'Insert the servers IP address.' , 'the-cache-purger'); ?></li>191 </ul> 192 </li> 193 <li> 194 <strong><?php _e( 'Redis Servers - Port' , 'the-cache-purger'); ?></strong>195 <ul> 196 <li><?php _e( 'Option(s) Name:' , 'the-cache-purger'); ?> <code>remote_redis_servers['remote_redis_port']</code></li>197 <li><?php _e( 'Insert the servers port.' , 'the-cache-purger'); ?></li>198 </ul> 199 </li> 200 <li> 201 <strong><?php _e( 'Remote Memcache Server' , 'the-cache-purger'); ?></strong>202 <ul> 203 <li><?php _e( 'Option(s) Name:' , 'the-cache-purger'); ?> <code>remote_memcache</code></li>204 <li><?php _e( 'Do you want to configure Memcache servers to be purged?' , 'the-cache-purger'); ?></li>205 </ul> 206 </li> 207 <li> 208 <strong><?php _e( 'Memcache Servers - Server' , 'the-cache-purger'); ?></strong>209 <ul> 210 <li><?php _e( 'Option(s) Name:' , 'the-cache-purger'); ?> <code>remote_memcache_servers['remote_memcache_server']</code></li>211 <li><?php _e( 'Insert the servers IP address.' , 'the-cache-purger'); ?></li>212 </ul> 213 </li> 214 <li> 215 <strong><?php _e( 'Memcache Servers - Port' , 'the-cache-purger'); ?></strong>216 <ul> 217 <li><?php _e( 'Option(s) Name:' , 'the-cache-purger'); ?> <code>remote_memcache_servers['remote_memcache_port']</code></li>218 <li><?php _e( 'Insert the servers port.' , 'the-cache-purger'); ?></li>219 </ul> 220 </li> 221 <li> 222 <strong><?php _e( 'Remote Memcached Server' , 'the-cache-purger'); ?></strong>223 <ul> 224 <li><?php _e( 'Option(s) Name:' , 'the-cache-purger'); ?> <code>remote_memcached</code></li>225 <li><?php _e( 'Do you want to configure Memcached servers to be purged?' , 'the-cache-purger'); ?></li>226 </ul> 227 </li> 228 <li> 229 <strong><?php _e( 'Memcached Servers - Server' , 'the-cache-purger'); ?></strong>230 <ul> 231 <li><?php _e( 'Option(s) Name:' , 'the-cache-purger'); ?> <code>remote_memcached_servers['remote_memcached_server']</code></li>232 <li><?php _e( 'Insert the servers IP address.' , 'the-cache-purger'); ?></li>233 </ul> 234 </li> 235 <li> 236 <strong><?php _e( 'Memcached Servers - Port' , 'the-cache-purger'); ?></strong>237 <ul> 238 <li><?php _e( 'Option(s) Name:' , 'the-cache-purger'); ?> <code>remote_memcached_servers['remote_memcached_port']</code></li>239 <li><?php _e( 'Insert the servers port.' , 'the-cache-purger'); ?></li>240 </ul> 241 </li> 242 <li> 243 <strong><?php _e( 'Service API Keys' , 'the-cache-purger'); ?></strong>52 <h3><?php _e( 'Purges are configurable in the settings, and include the following saves/updates/trashes:' ); ?></h3> 53 <ul> 54 <li><?php _e( 'Posts' ); ?>, <?php _e( 'Pages' ); ?>, <?php _e( 'Custom Post Types' ); ?>, <?php _e( 'Categories' ); ?>, <?php _e( 'Taxonomies' ); ?>, <?php _e( 'Widgets' ); ?>, <?php _e( 'Menus' ); ?>, <?php _e( 'Plugins' ); ?>, <?php _e( 'Updates' ); ?>, <?php _e( 'Settings & Options' ); ?>, <?php _e( 'GravityForms' ); ?> (<em><?php _e( 'if installed and activated' ); ?></em>), <?php _e( 'Advanced Custom Fields' ); ?> (<em><?php _e( 'if installed and activated' ); ?></em>), <?php _e( 'WooCommerce Settings' ); ?> (<em><?php _e( 'if installed and activated' ); ?></em>)</li> 55 </ul> 56 <h2 id="kpcp_settings"><?php _e( 'Settings' ); ?></h2> 57 <p class="kpcp_nav"><a href="#kpcp_top"><?php _e( 'TOP' ); ?></a> | <a href="#kpcp_desc"><?php _e( 'DESCRIPTION' ); ?></a> | <a href="#kpcp_features"><?php _e( 'FEATURES' ); ?></a> | <a href="#kpcp_settings"><?php _e( 'SETTINGS' ); ?></a> | <a href="#kpcp_api_settings"><?php _e( 'API/SERVER SETTINGS' ); ?></a> | <a href="#kpcp_cron_settings"><?php _e( 'CRON Action SETTINGS' ); ?></a> | <a href="#kpcp_in_the_works"><?php _e( 'IN THE WORKS' ); ?></a></p> 58 <ul> 59 <li> 60 <strong><?php _e( 'Log Purge Actions?' ); ?></strong> 61 <ul> 62 <li><?php _e( 'Option(s) Name:' ); ?> <code>should_log</code></li> 63 <li><?php _e( 'Do you want to log purge actions? The log file will be located here:' ); ?> <code><?php _e( ABSPATH . 'wp-content/purge.log' ); ?></code></li> 64 </ul> 65 </li> 66 <li> 67 <strong><?php _e( 'Purge on Menu?' ); ?></strong> 68 <ul> 69 <li><?php _e( 'Option(s) Name:' ); ?> <code>on_menu</code></li> 70 <li><?php _e( 'This will attempt to purge all caches for every menu update, save, or delete.' ); ?></li> 71 </ul> 72 </li> 73 <li> 74 <strong><?php _e( 'Purge on Post?' ); ?></strong> 75 <ul> 76 <li><?php _e( 'Option(s) Name:' ); ?> <code>on_post</code></li> 77 <li><?php _e( 'This will attempt to purge all caches for every post update, save, or delete.' ); ?></li> 78 </ul> 79 </li> 80 <li> 81 <strong><?php _e( 'Ignored Posts' ); ?></strong> 82 <ul> 83 <li><?php _e( 'Option(s) Name:' ); ?> <code>on_post_exclude</code></li> 84 <li><?php _e( 'Select the posts you wish to ignore from the cache purge actions.' ); ?></li> 85 </ul> 86 </li> 87 <li> 88 <strong><?php _e( 'Purge on Page?' ); ?></strong> 89 <ul> 90 <li><?php _e( 'Option(s) Name:' ); ?> <code>on_page</code></li> 91 <li><?php _e( 'This will attempt to purge all caches for every page update, save, or delete.' ); ?></li> 92 </ul> 93 </li> 94 <li> 95 <strong><?php _e( 'Ignored Pages' ); ?></strong> 96 <ul> 97 <li><?php _e( 'Option(s) Name:' ); ?> <code>on_page_exclude</code></li> 98 <li><?php _e( 'Select the pages you wish to ignore from the cache purge actions.' ); ?></li> 99 </ul> 100 </li> 101 <li> 102 <strong><?php _e( 'Purge on CPT?' ); ?></strong> 103 <ul> 104 <li><?php _e( 'Option(s) Name:' ); ?> <code>on_cpt</code></li> 105 <li><?php _e( 'This will attempt to purge all caches for every custom post type update, save, or delete.' ); ?></li> 106 </ul> 107 </li> 108 <li> 109 <strong><?php _e( 'Ignore CPT' ); ?></strong> 110 <ul> 111 <li><?php _e( 'Option(s) Name:' ); ?> <code>on_cpt_exclude</code></li> 112 <li><?php _e( 'Select the custom post types you wish to ignore from the cache purge actions.' ); ?></li> 113 </ul> 114 </li> 115 <li> 116 <strong><?php _e( 'Purge on Term/Taxonomy?' ); ?></strong> 117 <ul> 118 <li><?php _e( 'Option(s) Name:' ); ?> <code>on_taxonomy</code></li> 119 <li><?php _e( 'This will attempt to purge all caches for every taxonomy/term update, save, or delete.' ); ?></li> 120 </ul> 121 </li> 122 <li> 123 <strong><?php _e( 'Purge on Category?' ); ?></strong> 124 <ul> 125 <li><?php _e( 'Option(s) Name:' ); ?> <code>on_category</code></li> 126 <li><?php _e( 'This will attempt to purge all caches for every category update, save, or delete.' ); ?></li> 127 </ul> 128 </li> 129 <li> 130 <strong><?php _e( 'Purge on Widget?' ); ?></strong> 131 <ul> 132 <li><?php _e( 'Option(s) Name:' ); ?> <code>on_widget</code></li> 133 <li><?php _e( 'This will attempt to purge all caches for every widget update, save, or removal.' ); ?></li> 134 </ul> 135 </li> 136 <li> 137 <strong><?php _e( 'Purge on Customizer?' ); ?></strong> 138 <ul> 139 <li><?php _e( 'Option(s) Name:' ); ?> <code>on_customizer</code></li> 140 <li><?php _e( 'This will attempt to purge all caches for every customizer update or save.' ); ?></li> 141 </ul> 142 </li> 143 <li> 144 <strong><?php _e( 'Purge on GravityForms?' ); ?></strong> 145 <ul> 146 <li><?php _e( 'Option(s) Name:' ); ?> <code>on_form</code></li> 147 <li><?php _e( 'This will attempt to purge all caches for every form update, save, or delete.' ); ?></li> 148 <li><em><?php _e( 'This option is only available if you have GravityForms installed and active on your site.' ); ?></em></li> 149 </ul> 150 </li> 151 <li> 152 <strong><?php _e( 'Ignore Forms' ); ?></strong> 153 <ul> 154 <li><?php _e( 'Option(s) Name:' ); ?> <code>on_form_exclude</code></li> 155 <li><?php _e( 'Select the forms you wish to ignore from the cache purge actions.' ); ?></li> 156 <li><em><?php _e( 'This option is only available if you have GravityForms installed and active on your site.' ); ?></em></li> 157 </ul> 158 </li> 159 <li> 160 <strong><?php _e( 'Purge on ACF?' ); ?></strong> 161 <ul> 162 <li><?php _e( 'Option(s) Name:' ); ?> <code>on_acf</code></li> 163 <li><?php _e( 'This will attempt to purge all caches for every "advanced custom field" group update, save, or delete.' ); ?></li> 164 <li><em><?php _e( 'This option is only available if you have Advanced Custom Fields installed and active on your site.' ); ?></em></li> 165 </ul> 166 </li> 167 <li> 168 <strong><?php _e( 'Ignore Field Group' ); ?></strong> 169 <ul> 170 <li><?php _e( 'Option(s) Name:' ); ?> <code>on_acf_exclude</code></li> 171 <li><?php _e( 'Select the field groups you wish to ignore from the cache purge actions.' ); ?></li> 172 <li><em><?php _e( 'This option is only available if you have Advanced Custom Fields installed and active on your site.' ); ?></em></li> 173 </ul> 174 </li> 175 </ul> 176 <h2 id="kpcp_api_settings"><?php _e( 'API/SERVER Settings' ); ?></h2> 177 <p class="kpcp_nav"><a href="#kpcp_top"><?php _e( 'TOP' ); ?></a> | <a href="#kpcp_desc"><?php _e( 'DESCRIPTION' ); ?></a> | <a href="#kpcp_features"><?php _e( 'FEATURES' ); ?></a> | <a href="#kpcp_settings"><?php _e( 'SETTINGS' ); ?></a> | <a href="#kpcp_api_settings"><?php _e( 'API/SERVER SETTINGS' ); ?></a> | <a href="#kpcp_cron_settings"><?php _e( 'CRON Action SETTINGS' ); ?></a> | <a href="#kpcp_in_the_works"><?php _e( 'IN THE WORKS' ); ?></a></p> 178 <ul> 179 <li> 180 <strong><?php _e( 'Remote Redis Server' ); ?></strong> 181 <ul> 182 <li><?php _e( 'Option(s) Name:' ); ?> <code>remote_redis</code></li> 183 <li><?php _e( 'Do you want to configure Redis servers to be purged?' ); ?></li> 184 </ul> 185 </li> 186 <li> 187 <strong><?php _e( 'Redis Servers - Server' ); ?></strong> 188 <ul> 189 <li><?php _e( 'Option(s) Name:' ); ?> <code>remote_redis_servers['remote_redis_server']</code></li> 190 <li><?php _e( 'Insert the servers IP address.' ); ?></li> 191 </ul> 192 </li> 193 <li> 194 <strong><?php _e( 'Redis Servers - Port' ); ?></strong> 195 <ul> 196 <li><?php _e( 'Option(s) Name:' ); ?> <code>remote_redis_servers['remote_redis_port']</code></li> 197 <li><?php _e( 'Insert the servers port.' ); ?></li> 198 </ul> 199 </li> 200 <li> 201 <strong><?php _e( 'Remote Memcache Server' ); ?></strong> 202 <ul> 203 <li><?php _e( 'Option(s) Name:' ); ?> <code>remote_memcache</code></li> 204 <li><?php _e( 'Do you want to configure Memcache servers to be purged?' ); ?></li> 205 </ul> 206 </li> 207 <li> 208 <strong><?php _e( 'Memcache Servers - Server' ); ?></strong> 209 <ul> 210 <li><?php _e( 'Option(s) Name:' ); ?> <code>remote_memcache_servers['remote_memcache_server']</code></li> 211 <li><?php _e( 'Insert the servers IP address.' ); ?></li> 212 </ul> 213 </li> 214 <li> 215 <strong><?php _e( 'Memcache Servers - Port' ); ?></strong> 216 <ul> 217 <li><?php _e( 'Option(s) Name:' ); ?> <code>remote_memcache_servers['remote_memcache_port']</code></li> 218 <li><?php _e( 'Insert the servers port.' ); ?></li> 219 </ul> 220 </li> 221 <li> 222 <strong><?php _e( 'Remote Memcached Server' ); ?></strong> 223 <ul> 224 <li><?php _e( 'Option(s) Name:' ); ?> <code>remote_memcached</code></li> 225 <li><?php _e( 'Do you want to configure Memcached servers to be purged?' ); ?></li> 226 </ul> 227 </li> 228 <li> 229 <strong><?php _e( 'Memcached Servers - Server' ); ?></strong> 230 <ul> 231 <li><?php _e( 'Option(s) Name:' ); ?> <code>remote_memcached_servers['remote_memcached_server']</code></li> 232 <li><?php _e( 'Insert the servers IP address.' ); ?></li> 233 </ul> 234 </li> 235 <li> 236 <strong><?php _e( 'Memcached Servers - Port' ); ?></strong> 237 <ul> 238 <li><?php _e( 'Option(s) Name:' ); ?> <code>remote_memcached_servers['remote_memcached_port']</code></li> 239 <li><?php _e( 'Insert the servers port.' ); ?></li> 240 </ul> 241 </li> 242 <li> 243 <strong><?php _e( 'Service API Keys' ); ?></strong> 244 244 <ul> 245 245 <li> 246 <strong><?php _e( 'Cloudflare Token' , 'the-cache-purger'); ?></strong>246 <strong><?php _e( 'Cloudflare Token' ); ?></strong> 247 247 <ul> 248 <li><?php _e( 'Option(s) Name:' , 'the-cache-purger'); ?> <code>service_api_keys['cloudflare_token']</code></li>249 <li><?php _e( 'Enter your Cloudflare API Token. If you do not have one, you can create one here: <a href="https://dash.cloudflare.com/profile/api-tokens" target="_blank">https://dash.cloudflare.com/profile/api-tokens</a><br /><strong>NOTE: </strong>This is stored in plain-text.' , 'the-cache-purger'); ?></li>248 <li><?php _e( 'Option(s) Name:' ); ?> <code>service_api_keys['cloudflare_token']</code></li> 249 <li><?php _e( 'Enter your Cloudflare API Token. If you do not have one, you can create one here: <a href="https://dash.cloudflare.com/profile/api-tokens" target="_blank">https://dash.cloudflare.com/profile/api-tokens</a><br /><strong>NOTE: </strong>This is stored in plain-text.' ); ?></li> 250 250 </ul> 251 251 </li> 252 252 <li> 253 <strong><?php _e( 'Cloudflare Zone' , 'the-cache-purger'); ?></strong>253 <strong><?php _e( 'Cloudflare Zone' ); ?></strong> 254 254 <ul> 255 <li><?php _e( 'Option(s) Name:' , 'the-cache-purger'); ?> <code>service_api_keys['cloudflare_zone']</code></li>256 <li><?php _e( 'Enter your Cloudflare Zone ID. You can find this by clicking into your websites overview in your account: <a href="https://dash.cloudflare.com/" target="_blank">https://dash.cloudflare.com/</a><br /><strong>NOTE: </strong>This is stored in plain-text.' , 'the-cache-purger'); ?></li>255 <li><?php _e( 'Option(s) Name:' ); ?> <code>service_api_keys['cloudflare_zone']</code></li> 256 <li><?php _e( 'Enter your Cloudflare Zone ID. You can find this by clicking into your websites overview in your account: <a href="https://dash.cloudflare.com/" target="_blank">https://dash.cloudflare.com/</a><br /><strong>NOTE: </strong>This is stored in plain-text.' ); ?></li> 257 257 </ul> 258 258 </li> 259 259 <li> 260 <strong><?php _e( 'Sucuri Key' , 'the-cache-purger'); ?></strong>260 <strong><?php _e( 'Sucuri Key' ); ?></strong> 261 261 <ul> 262 <li><?php _e( 'Option(s) Name:' , 'the-cache-purger'); ?> <code>service_api_keys['sucuri_key']</code></li>263 <li><?php _e( 'Enter your Sucuri API Key. If you do not have one, you can find it in your site\'s Firewall here: <a href="https://waf.sucuri.net/" target="_blank">https://waf.sucuri.net/</a>. Click into your site, then Settings, then API.<br /><strong>NOTE: </strong>This is stored in plain-text.' , 'the-cache-purger'); ?></li>262 <li><?php _e( 'Option(s) Name:' ); ?> <code>service_api_keys['sucuri_key']</code></li> 263 <li><?php _e( 'Enter your Sucuri API Key. If you do not have one, you can find it in your site\'s Firewall here: <a href="https://waf.sucuri.net/" target="_blank">https://waf.sucuri.net/</a>. Click into your site, then Settings, then API.<br /><strong>NOTE: </strong>This is stored in plain-text.' ); ?></li> 264 264 </ul> 265 265 </li> 266 266 <li> 267 <strong><?php _e( 'Sucuri Secret' , 'the-cache-purger'); ?></strong>267 <strong><?php _e( 'Sucuri Secret' ); ?></strong> 268 268 <ul> 269 <li><?php _e( 'Option(s) Name:' , 'the-cache-purger'); ?> <code>service_api_keys['sucuri_secret']</code></li>270 <li><?php _e( 'Enter your Sucuri API Secret. If you do not have one, you can find it in your site\'s Firewall here: <a href="https://waf.sucuri.net/" target="_blank">https://waf.sucuri.net/</a>. Click into your site, then Settings, then API.<br /><strong>NOTE: </strong>This is stored in plain-text.' , 'the-cache-purger'); ?></li>269 <li><?php _e( 'Option(s) Name:' ); ?> <code>service_api_keys['sucuri_secret']</code></li> 270 <li><?php _e( 'Enter your Sucuri API Secret. If you do not have one, you can find it in your site\'s Firewall here: <a href="https://waf.sucuri.net/" target="_blank">https://waf.sucuri.net/</a>. Click into your site, then Settings, then API.<br /><strong>NOTE: </strong>This is stored in plain-text.' ); ?></li> 271 271 </ul> 272 272 </li> … … 275 275 276 276 </ul> 277 <h2 id="kpcp_cron_settings"><?php _e( 'CRON Action Settings' , 'the-cache-purger'); ?></h2>278 <p class="kpcp_nav"><a href="#kpcp_top"><?php _e( 'TOP' , 'the-cache-purger' ); ?></a> | <a href="#kpcp_desc"><?php _e( 'DESCRIPTION', 'the-cache-purger' ); ?></a> | <a href="#kpcp_features"><?php _e( 'FEATURES', 'the-cache-purger' ); ?></a> | <a href="#kpcp_settings"><?php _e( 'SETTINGS', 'the-cache-purger' ); ?></a> | <a href="#kpcp_api_settings"><?php _e( 'API/SERVER SETTINGS', 'the-cache-purger' ); ?></a> | <a href="#kpcp_cron_settings"><?php _e( 'CRON Action SETTINGS', 'the-cache-purger' ); ?></a> | <a href="#kpcp_in_the_works"><?php _e( 'IN THE WORKS', 'the-cache-purger' ); ?></a></p>279 <ul> 280 <li> 281 <strong><?php _e( 'Allow Scheduled Purges?' , 'the-cache-purger'); ?></strong>282 <ul> 283 <li><?php _e( 'Option(s) Name:' , 'the-cache-purger'); ?> <code>cron_schedule_allowed</code></li>284 <li><?php _e( 'Should the cached be purged based on a Wordpress Cron schedule?' , 'the-cache-purger'); ?></li>285 </ul> 286 </li> 287 <li> 288 <strong><?php _e( 'Built-In Schedule' , 'the-cache-purger'); ?></strong>289 <ul> 290 <li><?php _e( 'Option(s) Name:' , 'the-cache-purger'); ?> <code>cron_schedule_builtin</code></li>291 <li><?php _e( 'Select a built-in schedule to purge the caches on.' , 'the-cache-purger'); ?></li>292 </ul> 293 </li> 294 </ul> 295 <h2 id="kpcp_in_the_works"><?php _e( 'In The Works' , 'the-cache-purger'); ?></h2>296 <p class="kpcp_nav"><a href="#kpcp_top"><?php _e( 'TOP' , 'the-cache-purger' ); ?></a> | <a href="#kpcp_desc"><?php _e( 'DESCRIPTION', 'the-cache-purger' ); ?></a> | <a href="#kpcp_features"><?php _e( 'FEATURES', 'the-cache-purger' ); ?></a> | <a href="#kpcp_settings"><?php _e( 'SETTINGS', 'the-cache-purger' ); ?></a> | <a href="#kpcp_api_settings"><?php _e( 'API/SERVER SETTINGS', 'the-cache-purger' ); ?></a> | <a href="#kpcp_cron_settings"><?php _e( 'CRON Action SETTINGS', 'the-cache-purger' ); ?></a> | <a href="#kpcp_in_the_works"><?php _e( 'IN THE WORKS', 'the-cache-purger' ); ?></a></p>297 <ul> 298 <li><?php _e( 'WooCommerce Product Updates (<em>and exclusions</em>)' , 'the-cache-purger'); ?></li>299 <li><?php _e( 'WooCommerce Order Updates' , 'the-cache-purger'); ?></li>300 <li><?php _e( 'More Plugin References' , 'the-cache-purger'); ?></li>301 <li><?php _e( 'More Hosting References' , 'the-cache-purger'); ?></li>277 <h2 id="kpcp_cron_settings"><?php _e( 'CRON Action Settings' ); ?></h2> 278 <p class="kpcp_nav"><a href="#kpcp_top"><?php _e( 'TOP' ); ?></a> | <a href="#kpcp_desc"><?php _e( 'DESCRIPTION' ); ?></a> | <a href="#kpcp_features"><?php _e( 'FEATURES' ); ?></a> | <a href="#kpcp_settings"><?php _e( 'SETTINGS' ); ?></a> | <a href="#kpcp_api_settings"><?php _e( 'API/SERVER SETTINGS' ); ?></a> | <a href="#kpcp_cron_settings"><?php _e( 'CRON Action SETTINGS' ); ?></a> | <a href="#kpcp_in_the_works"><?php _e( 'IN THE WORKS' ); ?></a></p> 279 <ul> 280 <li> 281 <strong><?php _e( 'Allow Scheduled Purges?' ); ?></strong> 282 <ul> 283 <li><?php _e( 'Option(s) Name:' ); ?> <code>cron_schedule_allowed</code></li> 284 <li><?php _e( 'Should the cached be purged based on a Wordpress Cron schedule?' ); ?></li> 285 </ul> 286 </li> 287 <li> 288 <strong><?php _e( 'Built-In Schedule' ); ?></strong> 289 <ul> 290 <li><?php _e( 'Option(s) Name:' ); ?> <code>cron_schedule_builtin</code></li> 291 <li><?php _e( 'Select a built-in schedule to purge the caches on.' ); ?></li> 292 </ul> 293 </li> 294 </ul> 295 <h2 id="kpcp_in_the_works"><?php _e( 'In The Works' ); ?></h2> 296 <p class="kpcp_nav"><a href="#kpcp_top"><?php _e( 'TOP' ); ?></a> | <a href="#kpcp_desc"><?php _e( 'DESCRIPTION' ); ?></a> | <a href="#kpcp_features"><?php _e( 'FEATURES' ); ?></a> | <a href="#kpcp_settings"><?php _e( 'SETTINGS' ); ?></a> | <a href="#kpcp_api_settings"><?php _e( 'API/SERVER SETTINGS' ); ?></a> | <a href="#kpcp_cron_settings"><?php _e( 'CRON Action SETTINGS' ); ?></a> | <a href="#kpcp_in_the_works"><?php _e( 'IN THE WORKS' ); ?></a></p> 297 <ul> 298 <li><?php _e( 'WooCommerce Product Updates (<em>and exclusions</em>)' ); ?></li> 299 <li><?php _e( 'WooCommerce Order Updates' ); ?></li> 300 <li><?php _e( 'More Plugin References' ); ?></li> 301 <li><?php _e( 'More Hosting References' ); ?></li> 302 302 </ul> 303 303 </main> -
the-cache-purger/trunk/work/inc/kp-cache-purge-admin.php
r3296444 r3309228 5 5 * This file contains cache purging settings and admin pages 6 6 * 7 * @since 7.47 * @since 8.1 8 8 * @author Kevin Pirnie <[email protected]> 9 9 * @package The Cache Purger … … 22 22 * Class for building out our settings and admin pages 23 23 * 24 * @since 7.424 * @since 8.1 25 25 * @access public 26 26 * @author Kevin Pirnie <[email protected]> … … 35 35 * Public method pull together the settings and admin pages 36 36 * 37 * @since 7.437 * @since 8.1 38 38 * @access public 39 39 * @author Kevin Pirnie <[email protected]> … … 56 56 // create the main options page 57 57 KPTCP::createOptions( $_cp_settings_id, array( 58 'menu_title' => __( 'The Cache Purge' , 'the-cache-purger'),58 'menu_title' => __( 'The Cache Purge' ), 59 59 'menu_slug' => 'kpcp_settings', 60 60 'menu_capability' => 'list_users', … … 66 66 'sticky_header' => false, 67 67 'ajax_save' => false, 68 'framework_title' => __( 'The Cache Purger <small>by Kevin C. Pirnie</small>' , 'the-cache-purger'),69 'footer_text' => '<a href="https://kevinpirnie.com" target="_blank"><img src="https://cdn.kevp. cc/kp/kevinpirnie-logo-color.svg" alt="Kevin Pirnie: https://kevinpirnie.com" style="width:250px !important;" /></a>',70 ) );68 'framework_title' => __( 'The Cache Purger <small>by Kevin C. Pirnie</small>' ), 69 'footer_text' => '<a href="https://kevinpirnie.com" target="_blank"><img src="https://cdn.kevp.us/kp/kevinpirnie-logo-color.svg" alt="Kevin Pirnie: https://kevinpirnie.com" style="width:250px !important;" /></a>', 70 ) ); 71 71 72 72 // Settings 73 73 KPTCP::createSection( $_cp_settings_id, 74 74 array( 75 'title' => __( 'Settings' , 'the-cache-purger'),75 'title' => __( 'Settings' ), 76 76 'fields' => $this -> kpcp_settings( ), 77 77 ) … … 81 81 KPTCP::createSection( $_cp_settings_id, 82 82 array( 83 'title' => __( 'API/Server Settings' , 'the-cache-purger'),83 'title' => __( 'API/Server Settings' ), 84 84 'fields' => $this -> kpcp_apiserver_settings( ), 85 85 ) … … 89 89 KPTCP::createSection( $_cp_settings_id, 90 90 array( 91 'title' => __( 'CRON Action Settings' , 'the-cache-purger'),91 'title' => __( 'CRON Action Settings' ), 92 92 'fields' => $this -> kpcp_cron_settings( ), 93 93 ) … … 106 106 KPTCP::createSection( $_cp_settings_id, 107 107 array( 108 'title' => __( 'The Purge Log' , 'the-cache-purger'),108 'title' => __( 'The Purge Log' ), 109 109 'fields' => array( 110 110 array( … … 121 121 KPTCP::createSection( $_cp_settings_id, 122 122 array( 123 'title' => __( 'Documentation' , 'the-cache-purger'),123 'title' => __( 'Documentation' ), 124 124 'fields' => array( 125 125 array( … … 134 134 KPTCP::createSection( $_cp_settings_id, 135 135 array( 136 'title' => __( 'Export/Import Settings' , 'the-cache-purger'),136 'title' => __( 'Export/Import Settings' ), 137 137 'fields' => array( 138 138 array( … … 192 192 $_args = array ( 193 193 'id' => 'tcpmp', 194 'title' => '<span class="ab-icon dashicons-layout"></span> ' . __( 'Master Cache Purge' , 'the-cache-purger'),194 'title' => '<span class="ab-icon dashicons-layout"></span> ' . __( 'Master Cache Purge' ), 195 195 'href' => $_uri, 196 'meta' => array( 'title' => __( 'Click here to purge all of your caches.' , 'the-cache-purger') ),196 'meta' => array( 'title' => __( 'Click here to purge all of your caches.' ) ), 197 197 ); 198 198 … … 213 213 * Private method pull together the cronex settings fields 214 214 * 215 * @since 7.4215 * @since 8.1 216 216 * @access private 217 217 * @author Kevin Pirnie <[email protected]> … … 236 236 'id' => 'cron_log_purge_allowed', 237 237 'type' => 'switcher', 238 'title' => __( 'Purge the log?' , 'the-cache-purger'),239 'desc' => __( 'Do you want to allow scheduled log purges?' , 'the-cache-purger'),238 'title' => __( 'Purge the log?' ), 239 'desc' => __( 'Do you want to allow scheduled log purges?' ), 240 240 'default' => false, 241 241 ); … … 245 245 'id' => 'cron_log_purge_schedule', 246 246 'type' => 'select', 247 'title' => __( 'Purge Schedule' , 'the-cache-purger'),248 'desc' => __( 'Select a purge schedule to use.' , 'the-cache-purger'),247 'title' => __( 'Purge Schedule' ), 248 'desc' => __( 'Select a purge schedule to use.' ), 249 249 'options' => $this -> get_current_schedules( ), 250 250 'dependency' => array( 'cron_log_purge_allowed', '==', 'true' ), … … 260 260 'id' => 'cron_schedule_allowed', 261 261 'type' => 'switcher', 262 'title' => __( 'Scheduled your Purges?' , 'the-cache-purger'),263 'desc' => __( 'Do you want schedule cache purges?' , 'the-cache-purger'),262 'title' => __( 'Scheduled your Purges?' ), 263 'desc' => __( 'Do you want schedule cache purges?' ), 264 264 'default' => false, 265 265 ), … … 269 269 'id' => 'cron_schedule_builtin', 270 270 'type' => 'select', 271 'title' => __( 'Purge Schedule' , 'the-cache-purger'),272 'desc' => __( 'Select a purge schedule to use.' , 'the-cache-purger'),271 'title' => __( 'Purge Schedule' ), 272 'desc' => __( 'Select a purge schedule to use.' ), 273 273 'options' => $this -> get_current_schedules( ), 274 274 'dependency' => array( 'cron_schedule_allowed', '==', 'true' ), … … 290 290 * Private method pull together the api/server settings fields 291 291 * 292 * @since 7.4292 * @since 8.1 293 293 * @access private 294 294 * @author Kevin Pirnie <[email protected]> … … 307 307 'id' => 'remote_redis', 308 308 'type' => 'switcher', 309 'title' => __( 'Remote Redis server?' , 'the-cache-purger'),310 'desc' => __( 'Please only switch this on if you utilize remote Redis Servers.' , 'the-cache-purger'),309 'title' => __( 'Remote Redis server?' ), 310 'desc' => __( 'Please only switch this on if you utilize remote Redis Servers.' ), 311 311 'default' => false, 312 312 ), … … 316 316 'id' => 'remote_redis_servers', 317 317 'type' => 'repeater', 318 'title' => __( 'Redis Servers' , 'the-cache-purger'),318 'title' => __( 'Redis Servers' ), 319 319 'max' => 10, 320 320 #'class' => 'inlinable-container', 321 'button_title' => __( 'Add New Server' , 'the-cache-purger'),321 'button_title' => __( 'Add New Server' ), 322 322 'dependency' => array( 'remote_redis', '==', true ), 323 323 'fields' => array( … … 326 326 array( 327 327 'id' => 'remote_redis_server', 328 'title' => __( 'Server' , 'the-cache-purger'),329 'type' => 'text', 330 'class' => 'kptcp-half-field', 331 'desc' => __( 'Enter the IP address of the server.' , 'the-cache-purger'),328 'title' => __( 'Server' ), 329 'type' => 'text', 330 'class' => 'kptcp-half-field', 331 'desc' => __( 'Enter the IP address of the server.' ), 332 332 ), 333 333 … … 335 335 array( 336 336 'id' => 'remote_redis_port', 337 'title' => __( 'Port' , 'the-cache-purger'),338 'type' => 'text', 339 'class' => 'kptcp-half-field', 340 'desc' => __( 'Enter the Port number of the server.' , 'the-cache-purger'),337 'title' => __( 'Port' ), 338 'type' => 'text', 339 'class' => 'kptcp-half-field', 340 'desc' => __( 'Enter the Port number of the server.' ), 341 341 ), 342 342 … … 344 344 array( 345 345 'id' => 'remote_redis_auth_user', 346 'title' => __( 'Username' , 'the-cache-purger'),347 'type' => 'text', 348 'class' => 'kptcp-half-field', 349 'desc' => __( 'Enter your redis username' , 'the-cache-purger'),346 'title' => __( 'Username' ), 347 'type' => 'text', 348 'class' => 'kptcp-half-field', 349 'desc' => __( 'Enter your redis username' ), 350 350 ), 351 351 // auth password 352 352 array( 353 353 'id' => 'remote_redis_auth_pass', 354 'title' => __( 'Password' , 'the-cache-purger'),354 'title' => __( 'Password' ), 355 355 'type' => 'text', 356 356 'attributes' => array( 'type' => 'password', ), 357 357 'class' => 'kptcp-half-field', 358 'desc' => __( 'Enter your redis password' , 'the-cache-purger'),358 'desc' => __( 'Enter your redis password' ), 359 359 ), 360 360 … … 362 362 array( 363 363 'id' => 'remote_redis_db_id', 364 'title' => __( 'Database ID', 'the-cache-purger' ), 365 'type' => 'text', 366 'class' => 'kptcp-half-field', 367 'desc' => __( 'Enter your database ID', 'the-cache-purger' ), 364 'title' => __( 'Database ID' ), 365 'type' => 'text', 366 'class' => 'kptcp-half-field', 367 'desc' => __( 'Enter your database ID' ), 368 ), 369 370 // prefix or key 371 array( 372 'id' => 'remote_redis_prefixkey', 373 'title' => __( 'Prefix/Key' ), 374 'type' => 'text', 375 'class' => 'kptcp-half-field', 376 'desc' => __( 'Enter your prefix/key' ), 368 377 ), 369 378 … … 375 384 'id' => 'remote_memcache', 376 385 'type' => 'switcher', 377 'title' => __( 'Remote Memcache server?' , 'the-cache-purger'),378 'desc' => __( 'Please only switch this on if you utilize remote Memcache Servers.' , 'the-cache-purger'),386 'title' => __( 'Remote Memcache server?' ), 387 'desc' => __( 'Please only switch this on if you utilize remote Memcache Servers.' ), 379 388 'default' => false, 380 389 ), … … 384 393 'id' => 'remote_memcache_servers', 385 394 'type' => 'repeater', 386 'title' => __( 'Memcache Servers' , 'the-cache-purger'),395 'title' => __( 'Memcache Servers' ), 387 396 'max' => 10, 388 397 'class' => 'inlinable-container', 389 'button_title' => __( 'Add New Server' , 'the-cache-purger'),398 'button_title' => __( 'Add New Server' ), 390 399 'dependency' => array( 'remote_memcache', '==', true ), 391 400 'fields' => array( … … 394 403 array( 395 404 'id' => 'remote_memcache_server', 396 'title' => __( 'Server' , 'the-cache-purger'),397 'type' => 'text', 398 'class' => 'kptcp-half-field', 399 'desc' => __( 'Enter the IP address of the server.' , 'the-cache-purger'),405 'title' => __( 'Server' ), 406 'type' => 'text', 407 'class' => 'kptcp-half-field', 408 'desc' => __( 'Enter the IP address of the server.' ), 400 409 ), 401 410 … … 403 412 array( 404 413 'id' => 'remote_memcache_port', 405 'title' => __( 'Port' , 'the-cache-purger'),406 'type' => 'text', 407 'class' => 'kptcp-half-field', 408 'desc' => __( 'Enter the Port number of the server.' , 'the-cache-purger'),414 'title' => __( 'Port' ), 415 'type' => 'text', 416 'class' => 'kptcp-half-field', 417 'desc' => __( 'Enter the Port number of the server.' ), 409 418 ), 410 419 ), … … 415 424 'id' => 'remote_memcached', 416 425 'type' => 'switcher', 417 'title' => __( 'Remote Memcached server?' , 'the-cache-purger'),418 'desc' => __( 'Please only switch this on if you utilize remote Memcached Servers.' , 'the-cache-purger'),426 'title' => __( 'Remote Memcached server?' ), 427 'desc' => __( 'Please only switch this on if you utilize remote Memcached Servers.' ), 419 428 'default' => false, 420 429 ), … … 424 433 'id' => 'remote_memcached_servers', 425 434 'type' => 'repeater', 426 'title' => __( 'Memcached Servers' , 'the-cache-purger'),435 'title' => __( 'Memcached Servers' ), 427 436 'max' => 10, 428 437 'class' => 'inlinable-container', 429 'button_title' => __( 'Add New Server' , 'the-cache-purger'),438 'button_title' => __( 'Add New Server' ), 430 439 'dependency' => array( 'remote_memcached', '==', true ), 431 440 'fields' => array( … … 434 443 array( 435 444 'id' => 'remote_memcached_server', 436 'title' => __( 'Server' , 'the-cache-purger'),437 'type' => 'text', 438 'class' => 'kptcp-half-field', 439 'desc' => __( 'Enter the IP address of the server.' , 'the-cache-purger'),445 'title' => __( 'Server' ), 446 'type' => 'text', 447 'class' => 'kptcp-half-field', 448 'desc' => __( 'Enter the IP address of the server.' ), 440 449 ), 441 450 … … 443 452 array( 444 453 'id' => 'remote_memcached_port', 445 'title' => __( 'Port' , 'the-cache-purger'),446 'type' => 'text', 447 'class' => 'kptcp-half-field', 448 'desc' => __( 'Enter the Port number of the server.' , 'the-cache-purger'),454 'title' => __( 'Port' ), 455 'type' => 'text', 456 'class' => 'kptcp-half-field', 457 'desc' => __( 'Enter the Port number of the server.' ), 449 458 ), 450 459 ), … … 455 464 'id' => 'service_api_keys', 456 465 'type' => 'fieldset', 457 'title' => __( 'Service API Keys' , 'the-cache-purger'),458 'subtitle' => __( 'These are all optional, and only necessary if you do not have the service\'s plugin installed on your site, but their caches are still used.<br /><br />Please consult with your hosting provider or IT Team if you do not know if they are in use.' , 'the-cache-purger'),466 'title' => __( 'Service API Keys' ), 467 'subtitle' => __( 'These are all optional, and only necessary if you do not have the service\'s plugin installed on your site, but their caches are still used.<br /><br />Please consult with your hosting provider or IT Team if you do not know if they are in use.' ), 459 468 'fields' => array( 460 469 … … 463 472 'id' => 'cloudflare_token', 464 473 'type' => 'text', 465 'title' => __( 'Cloudflare Token' , 'the-cache-purger'),466 'desc' => __( 'Enter your Cloudflare API Token. If you do not have one, you can create one here: <a href="https://dash.cloudflare.com/profile/api-tokens" target="_blank">https://dash.cloudflare.com/profile/api-tokens</a><br /><strong>NOTE: </strong>This is stored in plain-text.' , 'the-cache-purger'),474 'title' => __( 'Cloudflare Token' ), 475 'desc' => __( 'Enter your Cloudflare API Token. If you do not have one, you can create one here: <a href="https://dash.cloudflare.com/profile/api-tokens" target="_blank">https://dash.cloudflare.com/profile/api-tokens</a><br /><strong>NOTE: </strong>This is stored in plain-text.' ), 467 476 'attributes' => array( 'type' => 'password', ), 468 477 'class' => 'kptcp-half-field', … … 473 482 'id' => 'cloudflare_zone', 474 483 'type' => 'text', 475 'title' => __( 'Cloudflare Zone' , 'the-cache-purger'),476 'desc' => __( 'Enter your Cloudflare Zone ID. You can find this by clicking into your websites overview in your account: <a href="https://dash.cloudflare.com/" target="_blank">https://dash.cloudflare.com/</a><br /><strong>NOTE: </strong>This is stored in plain-text.' , 'the-cache-purger'),484 'title' => __( 'Cloudflare Zone' ), 485 'desc' => __( 'Enter your Cloudflare Zone ID. You can find this by clicking into your websites overview in your account: <a href="https://dash.cloudflare.com/" target="_blank">https://dash.cloudflare.com/</a><br /><strong>NOTE: </strong>This is stored in plain-text.' ), 477 486 'attributes' => array( 'type' => 'password', ), 478 487 'class' => 'kptcp-half-field', … … 483 492 'id' => 'sucuri_key', 484 493 'type' => 'text', 485 'title' => __( 'Sucuri Key' , 'the-cache-purger'),486 'desc' => __( 'Enter your Sucuri API Key. If you do not have one, you can find it in your site\'s Firewall here: <a href="https://waf.sucuri.net/" target="_blank">https://waf.sucuri.net/</a>. Click into your site, then Settings, then API.<br /><strong>NOTE: </strong>This is stored in plain-text.' , 'the-cache-purger'),494 'title' => __( 'Sucuri Key' ), 495 'desc' => __( 'Enter your Sucuri API Key. If you do not have one, you can find it in your site\'s Firewall here: <a href="https://waf.sucuri.net/" target="_blank">https://waf.sucuri.net/</a>. Click into your site, then Settings, then API.<br /><strong>NOTE: </strong>This is stored in plain-text.' ), 487 496 'attributes' => array( 'type' => 'password', ), 488 497 'class' => 'kptcp-half-field', … … 493 502 'id' => 'sucuri_secret', 494 503 'type' => 'text', 495 'title' => __( 'Sucuri Secret' , 'the-cache-purger'),496 'desc' => __( 'Enter your Sucuri API Secret. If you do not have one, you can find it in your site\'s Firewall here: <a href="https://waf.sucuri.net/" target="_blank">https://waf.sucuri.net/</a>. Click into your site, then Settings, then API.<br /><strong>NOTE: </strong>This is stored in plain-text.' , 'the-cache-purger'),504 'title' => __( 'Sucuri Secret' ), 505 'desc' => __( 'Enter your Sucuri API Secret. If you do not have one, you can find it in your site\'s Firewall here: <a href="https://waf.sucuri.net/" target="_blank">https://waf.sucuri.net/</a>. Click into your site, then Settings, then API.<br /><strong>NOTE: </strong>This is stored in plain-text.' ), 497 506 'attributes' => array( 'type' => 'password', ), 498 507 'class' => 'kptcp-half-field', … … 503 512 'id' => 'fastly_token', 504 513 'type' => 'text', 505 'title' => __( 'Fastly Token' , 'the-cache-purger'),506 'desc' => __( 'Enter your Fastly CDN Token. If you do not have one, you can find it in your account here: <a href="https://manage.fastly.com/account/personal/tokens" target="_blank">https://manage.fastly.com/account/personal/tokens</a>. You will need to make sure to select a service when you create your token.<br /><strong>NOTE: </strong>This is stored in plain-text.' , 'the-cache-purger'),514 'title' => __( 'Fastly Token' ), 515 'desc' => __( 'Enter your Fastly CDN Token. If you do not have one, you can find it in your account here: <a href="https://manage.fastly.com/account/personal/tokens" target="_blank">https://manage.fastly.com/account/personal/tokens</a>. You will need to make sure to select a service when you create your token.<br /><strong>NOTE: </strong>This is stored in plain-text.' ), 507 516 'attributes' => array( 'type' => 'password', ), 508 517 'class' => 'kptcp-half-field', … … 513 522 'id' => 'fastly_service_id', 514 523 'type' => 'text', 515 'title' => __( 'Fastly Service ID' , 'the-cache-purger'),516 'desc' => __( 'Enter your Fastly Service ID. If you do not have one, you can find it in your account here: <a href="https://manage.fastly.com/account/tokens" target="_blank">https://manage.fastly.com/account/tokens</a>. You will need to make sure to select a service when you create your token.<br /><strong>NOTE: </strong>This is stored in plain-text.' , 'the-cache-purger'),524 'title' => __( 'Fastly Service ID' ), 525 'desc' => __( 'Enter your Fastly Service ID. If you do not have one, you can find it in your account here: <a href="https://manage.fastly.com/account/tokens" target="_blank">https://manage.fastly.com/account/tokens</a>. You will need to make sure to select a service when you create your token.<br /><strong>NOTE: </strong>This is stored in plain-text.' ), 517 526 'attributes' => array( 'type' => 'password', ), 518 527 'class' => 'kptcp-half-field', … … 534 543 * Private method pull together the settings fields 535 544 * 536 * @since 7.4545 * @since 8.1 537 546 * @access private 538 547 * @author Kevin Pirnie <[email protected]> … … 556 565 array( 557 566 'id' => 'caches_to_purge', 558 'title' => __( 'Caches To Purge' , 'the-cache-purger'),559 'desc' => __( 'Select which caches should be purged?' , 'the-cache-purger'),567 'title' => __( 'Caches To Purge' ), 568 'desc' => __( 'Select which caches should be purged?' ), 560 569 'type' => 'button_set', 561 570 'options' => array( 562 1 => __( 'Plugin Caches' , 'the-cache-purger'),563 2 => __( 'Wordpress Caches' , 'the-cache-purger'),564 3 => __( 'Server Caches' , 'the-cache-purger'),565 4 => __( 'Memory Caches' , 'the-cache-purger'),566 5 => __( 'API Caches' , 'the-cache-purger'),571 1 => __( 'Plugin Caches' ), 572 2 => __( 'Wordpress Caches' ), 573 3 => __( 'Server Caches' ), 574 4 => __( 'Memory Caches' ), 575 5 => __( 'API Caches' ), 567 576 ), 568 577 'inline' => true, … … 575 584 'id' => 'should_log', 576 585 'type' => 'switcher', 577 'title' => __( 'Log Purge Actions?' , 'the-cache-purger'),578 'desc' => __( 'This will attempt to write a log of all purge actions performed.<br />The file location is: <code>' . ABSPATH . 'wp-content/purge.log</code><br /><strong>NOTE: </strong>Make sure you hard refresh this page once you save the settings.' , 'the-cache-purger'),586 'title' => __( 'Log Purge Actions?' ), 587 'desc' => __( 'This will attempt to write a log of all purge actions performed.<br />The file location is: <code>' . ABSPATH . 'wp-content/purge.log</code><br /><strong>NOTE: </strong>Make sure you hard refresh this page once you save the settings.' ), 579 588 'default' => false, 580 589 ), … … 584 593 'id' => 'on_plugin_settings', 585 594 'type' => 'switcher', 586 'title' => __( 'Purge on settings save?' , 'the-cache-purger'),587 'desc' => __( 'This will attempt to purge all configured caches for settings save actions.<br /><strong>NOTE:</strong>You need to hard refresh this page after saving this setting in order for this to take effect.' , 'the-cache-purger'),595 'title' => __( 'Purge on settings save?' ), 596 'desc' => __( 'This will attempt to purge all configured caches for settings save actions.<br /><strong>NOTE:</strong>You need to hard refresh this page after saving this setting in order for this to take effect.' ), 588 597 'default' => false, 589 598 ), … … 593 602 'id' => 'on_menu', 594 603 'type' => 'switcher', 595 'title' => __( 'Purge on Menu Save/Delete?' , 'the-cache-purger'),596 'desc' => __( 'This will attempt to purge all configured caches for every menu update, save, or delete.' , 'the-cache-purger'),604 'title' => __( 'Purge on Menu Save/Delete?' ), 605 'desc' => __( 'This will attempt to purge all configured caches for every menu update, save, or delete.' ), 597 606 'default' => false, 598 607 ), … … 602 611 'id' => 'on_post', 603 612 'type' => 'switcher', 604 'title' => __( 'Purge on Post Save/Delete?' , 'the-cache-purger'),605 'desc' => __( 'This will attempt to purge all configured caches for every post update, save, or delete.' , 'the-cache-purger'),613 'title' => __( 'Purge on Post Save/Delete?' ), 614 'desc' => __( 'This will attempt to purge all configured caches for every post update, save, or delete.' ), 606 615 'default' => false, 607 616 ), … … 613 622 'chosen' => true, 614 623 'multiple' => true, 615 'title' => __( 'Ignored Posts' , 'the-cache-purger'),616 'placeholder' => __( 'Please select the posts to ignore...' , 'the-cache-purger'),617 'desc' => __( 'Posts to ignore from the purger. This will simply ignore the purge action when the selected posts get updated.' , 'the-cache-purger'),624 'title' => __( 'Ignored Posts' ), 625 'placeholder' => __( 'Please select the posts to ignore...' ), 626 'desc' => __( 'Posts to ignore from the purger. This will simply ignore the purge action when the selected posts get updated.' ), 618 627 'options' => KPCPC::get_posts_for_select( 'posts' ), 619 628 'default' => array( 0 ), … … 625 634 'id' => 'on_page', 626 635 'type' => 'switcher', 627 'title' => __( 'Purge on Page Save/Delete?' , 'the-cache-purger'),628 'desc' => __( 'This will attempt to purge all configured caches for every page update, save, or delete.' , 'the-cache-purger'),636 'title' => __( 'Purge on Page Save/Delete?' ), 637 'desc' => __( 'This will attempt to purge all configured caches for every page update, save, or delete.' ), 629 638 'default' => false, 630 639 ), … … 636 645 'chosen' => true, 637 646 'multiple' => true, 638 'title' => __( 'Ignored Pages' , 'the-cache-purger'),639 'placeholder' => __( 'Please select the pages to ignore...' , 'the-cache-purger'),640 'desc' => __( 'Pages to ignore from the purger. This will simply ignore the purge action when the selected pages get updated.' , 'the-cache-purger'),647 'title' => __( 'Ignored Pages' ), 648 'placeholder' => __( 'Please select the pages to ignore...' ), 649 'desc' => __( 'Pages to ignore from the purger. This will simply ignore the purge action when the selected pages get updated.' ), 641 650 'options' => KPCPC::get_posts_for_select( 'pages' ), 642 651 'default' => array( 0 ), … … 648 657 'id' => 'on_cpt', 649 658 'type' => 'switcher', 650 'title' => __( 'Purge on Custom Post Type Save/Delete?' , 'the-cache-purger'),651 'desc' => __( 'This will attempt to purge all configured caches for every custom post type update, save, or delete.' , 'the-cache-purger'),659 'title' => __( 'Purge on Custom Post Type Save/Delete?' ), 660 'desc' => __( 'This will attempt to purge all configured caches for every custom post type update, save, or delete.' ), 652 661 'default' => false, 653 662 ), … … 659 668 'chosen' => true, 660 669 'multiple' => true, 661 'title' => __( 'Ignored CPTs' , 'the-cache-purger'),662 'placeholder' => __( 'Please select the cpts to ignore...' , 'the-cache-purger'),663 'desc' => __( 'CPTs to ignore from the purger. This will simply ignore the purge action when the selected CPT get updated.' , 'the-cache-purger'),670 'title' => __( 'Ignored CPTs' ), 671 'placeholder' => __( 'Please select the cpts to ignore...' ), 672 'desc' => __( 'CPTs to ignore from the purger. This will simply ignore the purge action when the selected CPT get updated.' ), 664 673 'options' => KPCPC::get_post_types_for_select( ), 665 674 'default' => array( 0 ), … … 671 680 'id' => 'on_taxonomy', 672 681 'type' => 'switcher', 673 'title' => __( 'Purge on Taxonomy/Term Save/Delete?' , 'the-cache-purger'),674 'desc' => __( 'This will attempt to purge all configured caches for every taxonomy/term update, save, or delete.' , 'the-cache-purger'),682 'title' => __( 'Purge on Taxonomy/Term Save/Delete?' ), 683 'desc' => __( 'This will attempt to purge all configured caches for every taxonomy/term update, save, or delete.' ), 675 684 'default' => false, 676 685 ), … … 680 689 'id' => 'on_category', 681 690 'type' => 'switcher', 682 'title' => __( 'Purge on Category Save/Delete?' , 'the-cache-purger'),683 'desc' => __( 'This will attempt to purge all configured caches for every category update, save, or delete.' , 'the-cache-purger'),691 'title' => __( 'Purge on Category Save/Delete?' ), 692 'desc' => __( 'This will attempt to purge all configured caches for every category update, save, or delete.' ), 684 693 'default' => false, 685 694 ), … … 689 698 'id' => 'on_widget', 690 699 'type' => 'switcher', 691 'title' => __( 'Purge on Widget Save/Delete?' , 'the-cache-purger'),692 'desc' => __( 'This will attempt to purge all configured caches for every widget update, save, or delete.' , 'the-cache-purger'),700 'title' => __( 'Purge on Widget Save/Delete?' ), 701 'desc' => __( 'This will attempt to purge all configured caches for every widget update, save, or delete.' ), 693 702 'default' => false, 694 703 ), … … 698 707 'id' => 'on_customizer', 699 708 'type' => 'switcher', 700 'title' => __( 'Purge on Customizer Save?' , 'the-cache-purger'),701 'desc' => __( 'This will attempt to purge all configured caches for every customizer update or save.' , 'the-cache-purger'),709 'title' => __( 'Purge on Customizer Save?' ), 710 'desc' => __( 'This will attempt to purge all configured caches for every customizer update or save.' ), 702 711 'default' => false, 703 712 ), … … 712 721 'id' => 'on_form', 713 722 'type' => 'switcher', 714 'title' => __( 'Purge on Form Save/Delete?' , 'the-cache-purger'),715 'desc' => __( 'This will attempt to purge all configured caches for every form update, save, or delete.' , 'the-cache-purger'),723 'title' => __( 'Purge on Form Save/Delete?' ), 724 'desc' => __( 'This will attempt to purge all configured caches for every form update, save, or delete.' ), 716 725 'default' => false, 717 726 ); … … 723 732 'chosen' => true, 724 733 'multiple' => true, 725 'title' => __( 'Ignored Forms' , 'the-cache-purger'),726 'placeholder' => __( 'Please select the forms to ignore...' , 'the-cache-purger'),727 'desc' => __( 'Forms to ignore from the purger. This will simply ignore the purge action when the selected forms get updated.' , 'the-cache-purger'),734 'title' => __( 'Ignored Forms' ), 735 'placeholder' => __( 'Please select the forms to ignore...' ), 736 'desc' => __( 'Forms to ignore from the purger. This will simply ignore the purge action when the selected forms get updated.' ), 728 737 'options' => $this -> get_our_forms( ), 729 738 'default' => array( 0 ), … … 740 749 'id' => 'on_acf', 741 750 'type' => 'switcher', 742 'title' => __( 'Purge on ACF Save/Delete?' , 'the-cache-purger'),743 'desc' => __( 'This will attempt to purge all configured caches for every "advanced custom field" group update, save, or delete.' , 'the-cache-purger'),751 'title' => __( 'Purge on ACF Save/Delete?' ), 752 'desc' => __( 'This will attempt to purge all configured caches for every "advanced custom field" group update, save, or delete.' ), 744 753 'default' => false, 745 754 ); … … 751 760 'chosen' => true, 752 761 'multiple' => true, 753 'title' => __( 'Ignored Field Groups' , 'the-cache-purger'),754 'placeholder' => __( 'Please select the field groupd to ignore...' , 'the-cache-purger'),755 'desc' => __( 'Field Groups to ignore from the purger. This will simply ignore the purge action when the selected field groups get updated.' , 'the-cache-purger'),762 'title' => __( 'Ignored Field Groups' ), 763 'placeholder' => __( 'Please select the field groupd to ignore...' ), 764 'desc' => __( 'Field Groups to ignore from the purger. This will simply ignore the purge action when the selected field groups get updated.' ), 756 765 'options' => $this -> get_our_field_groups( ), 757 766 'default' => array( 0 ), … … 771 780 * Private method pull together the documentation 772 781 * 773 * @since 7.4782 * @since 8.1 774 783 * @access private 775 784 * @author Kevin Pirnie <[email protected]> … … 814 823 * Private method pull in the purge log for display in the backend 815 824 * 816 * @since 7.4825 * @since 8.1 817 826 * @access private 818 827 * @author Kevin Pirnie <[email protected]> … … 857 866 * Private method pull all forms 858 867 * 859 * @since 7.4868 * @since 8.1 860 869 * @access private 861 870 * @author Kevin Pirnie <[email protected]> … … 871 880 872 881 // populate the NONE 873 $_ret[0] = __( ' -- None -- ' , 'the-cache-purger');882 $_ret[0] = __( ' -- None -- ' ); 874 883 875 884 // get all forms … … 886 895 887 896 // setup the return array 888 $_ret[$_forms[$_i]['id']] = __( $_forms[$_i]['title'] , 'the-cache-purger');897 $_ret[$_forms[$_i]['id']] = __( $_forms[$_i]['title'] ); 889 898 890 899 } … … 902 911 * Private method pull all ACF field groups 903 912 * 904 * @since 7.4913 * @since 8.1 905 914 * @access private 906 915 * @author Kevin Pirnie <[email protected]> … … 916 925 917 926 // populate the NONE 918 $_ret[0] = __( ' -- None -- ' , 'the-cache-purger');927 $_ret[0] = __( ' -- None -- ' ); 919 928 920 929 // get all field groups … … 931 940 932 941 // add to the array 933 $_ret[$_fgs[$_i]['ID']] = __( $_fgs[$_i]['title'] , 'the-cache-purger');942 $_ret[$_fgs[$_i]['ID']] = __( $_fgs[$_i]['title'] ); 934 943 935 944 } … … 947 956 * The method pulls the current WP Cron schedules 948 957 * 949 * @since 7.4958 * @since 8.1 950 959 * @access private 951 960 * @author Kevin Pirnie <[email protected]> … … 967 976 968 977 // populate the returnable array 969 $_ret[ $_k ] = __( $_v[ 'display' ] , 'the-cache-purger');978 $_ret[ $_k ] = __( $_v[ 'display' ] ); 970 979 } 971 980 -
the-cache-purger/trunk/work/inc/kp-cache-purge-common.php
r3117223 r3309228 5 5 * This file contains the plugins common functionality 6 6 * 7 * @since 7.47 * @since 8.1 8 8 * @author Kevin Pirnie <[email protected]> 9 9 * @package The Cache Purger … … 22 22 * Class for building out the common functionality for the plugin 23 23 * 24 * @since 7.424 * @since 8.1 25 25 * @access public 26 26 * @author Kevin Pirnie <[email protected]> … … 31 31 32 32 /** 33 * initialize_plugin 34 * 35 * Initialize the plugin 36 * 37 * @since 8.1 38 * @access public 39 * @static 40 * @author Kevin Pirnie <[email protected]> 41 * @package The Cache Purger 42 * 43 * @return void Returns nothing 44 * 45 */ 46 public static function initialize_plugin( ) : void { 47 48 // once the plugins are loaded 49 add_action( 'plugins_loaded', function( ) { 50 51 // initialize the field framework 52 KPTCP::init( ); 53 54 }, PHP_INT_MAX ); 55 56 // hack in some styling 57 add_action( 'admin_enqueue_scripts', function( ) : void { 58 59 // we are, so queue up our unminified assets 60 wp_register_style( 'kpcp_css', plugins_url( '/assets/css/style.css?_=' . time( ), TCP_PATH . '/' . TCP_FILENAME ), null, null ); 61 62 // enqueue it 63 wp_enqueue_style( 'kpcp_css' ); 64 65 }, PHP_INT_MAX ); 66 67 // hook into the admin_init 68 add_action( 'admin_init', function( ) : void { 69 70 // get the querystring for the purge 71 $_do_purge = filter_var( ( isset( $_GET['the_purge'] ) ) ? sanitize_text_field( $_GET['the_purge'] ) : false, FILTER_VALIDATE_BOOLEAN ); 72 73 // if it's true 74 if( $_do_purge ) { 75 76 // setup the cache purger 77 $_cp = new KP_Cache_Purge( ); 78 79 // purge 80 $_cp -> kp_do_purge( ); 81 82 // log the purge 83 KPCPC::write_log( "Manual Cache Cleared" ); 84 85 // clean it up 86 unset( $_cp ); 87 88 // show an admin message 89 add_action( 'admin_notices', function( ) :void { 90 91 ?> 92 <div class="notice notice-success is-dismissible"> 93 <p><?php _e( "<p>The cache purge has initialized.</p><p>The majority is run in the background, so please wait around 2 minutes for it to complete.</p>" ); ?></p> 94 </div> 95 <?php 96 97 }, PHP_INT_MAX ); 98 99 } 100 101 // get the querystring for purging the log 102 $_do_log_purge = filter_var( ( isset( $_GET['the_log_purge'] ) ) ? sanitize_text_field( $_GET['the_log_purge'] ) : false, FILTER_VALIDATE_BOOLEAN ); 103 104 /// make sure we are actually purging the log 105 if( $_do_log_purge ) { 106 107 // get the logs path 108 $_l_path = ABSPATH . 'wp-content/purge.log'; 109 110 // unfortunately we cannot utilize wordpress's built-in file methods, but let's clear the log 111 file_put_contents( $_l_path, '', LOCK_EX ); 112 113 } 114 115 }, PHP_INT_MAX ); 116 117 // hook into the wordpress initialization 118 add_action( 'init', function( ) : void { 119 120 // initialize the field framework 121 KPTCP::init( ); 122 123 // get our options 124 $_opts = KPCPC::get_options( ); 125 126 // get our wp cron info 127 $_cron_info = wp_get_schedules( ); 128 129 // set if it's allowed 130 $_allowed = filter_var( ( $_opts -> cron_schedule_allowed ) ?? false, FILTER_VALIDATE_BOOLEAN ); 131 $_l_allowed = filter_var( ( $_opts -> should_log ) ?? false, FILTER_VALIDATE_BOOLEAN ); 132 $_lp_allowed = filter_var( ( $_opts -> cron_log_purge_allowed ) ?? false, FILTER_VALIDATE_BOOLEAN ); 133 134 // if it is 135 if( $_allowed ) { 136 137 // setup our action and create the job for it 138 add_action( 'kpcpc_the_purge', [__CLASS__, 'do_the_actual_purge'] ); 139 140 // make sure we're only scheduling this once 141 if( ! as_has_scheduled_action( 'kpcpc_the_purge' ) ) { 142 143 // throw a hook here 144 do_action( 'tcp_cron_cache_purge' ); 145 146 // get our schedule options 147 $_bi_schedule = ( $_opts -> cron_schedule_builtin ) ?? 'hourly'; 148 149 // schedule the event 150 as_schedule_recurring_action( time( ), $_cron_info[ $_bi_schedule ]['interval'], 'kpcpc_the_purge' ); 151 152 } 153 154 } 155 156 // if the log is enabled and if the log purging is allowed, and allowed to be on a schedule 157 if( $_l_allowed && $_lp_allowed ) { 158 159 // setup the action to be performed 160 add_action( 'kpcpc_the_log_purge', [__CLASS__, 'do_log_purge'] ); 161 162 // make sure we're only scheduling this once 163 if( ! as_has_scheduled_action( 'kpcpc_the_log_purge' ) ) { 164 165 // throw a hook here 166 do_action( 'tcp_cron_log_purge' ); 167 168 // get our schedule options 169 $_bi_schedule = ( $_opts -> cron_log_purge_schedule ) ?? 'weekly'; 170 171 // schedule the event 172 as_schedule_recurring_action( time( ), $_cron_info[ $_bi_schedule ]['interval'], 'kpcpc_the_log_purge' ); 173 174 } 175 176 } 177 178 // see if we're purging 179 $_is_purging = filter_var( ( get_transient( 'is_doing_cache_purge' ) ) ?? false, FILTER_VALIDATE_BOOLEAN ); 180 181 // if we are purging 182 if( $_is_purging ) { 183 184 // create a hook for the clearing to occurr in 185 add_action( 'kptcp_long_purge', [__CLASS__, 'do_the_long_purge'] ); 186 187 // check if the long purge task already exists 188 if( ! as_next_scheduled_action( 'kptcp_long_purge' ) ) { 189 190 // throw a hook here 191 do_action( 'tcp_long_cache_purge' ); 192 193 // schedule it to run once as soon as possible 194 as_schedule_single_action( time( ) + 5, 'kptcp_long_purge' ); 195 196 } 197 198 } 199 200 }, PHP_INT_MAX ); 201 202 // hook into the custom fields loaded 203 add_action( 'kptcp_loaded', function( ) : void { 204 205 // fire up the admin class 206 $_cp_admin = new KP_Cache_Purge_Admin( ); 207 208 // do it! 209 $_cp_admin -> kpcp_admin( ); 210 211 // clean it up 212 unset( $_cp_admin ); 213 214 }, PHP_INT_MAX ); 215 216 // we'll need a message in wp-admin for PHP 8 compatibility 217 add_action( 'admin_notices', function( ) : void { 218 219 // if the site is under PHP 8.1 220 if ( version_compare( PHP_VERSION, '8.1', '<=' ) ) { 221 222 // show this notice 223 ?> 224 <div class="notice notice-info is-dismissible"> 225 <p><?php _e( "<h3>PHP Upgrade Notice</h3><p>To maintain optimal security standards, this will be the final version that supports PHP versions lower than 8.1. Your site must be upgraded in order to update the plugin to future versions.</p><p>Please see here for up to date PHP version information: <a href='https://www.php.net/supported-versions.php' target='_blank'>https://www.php.net/supported-versions.php</a></p>" ); ?></p> 226 </div> 227 <?php 228 } 229 }, PHP_INT_MAX ); 230 231 // fire up the processor class here. Inside it are the proper hooks where the actual purging will take place 232 $_processor = new KP_Cache_Purge_Processor( ); 233 234 // run the processing 235 $_processor -> process( ); 236 237 // clean up 238 unset( $_processor ); 239 240 } 241 242 /** 243 * do_the_long_purge 244 * 245 * Perform the long purging 246 * 247 * @since 8.1 248 * @access public 249 * @static 250 * @author Kevin Pirnie <[email protected]> 251 * @package The Cache Purger 252 * 253 * @return void Returns nothing 254 * 255 */ 256 public static function do_the_long_purge( ) : void { 257 258 // fire up the cache purge 259 $_cp = new KP_Cache_Purge( ); 260 261 // run the long runner 262 $_cp -> kp_do_long_purge( ); 263 264 // clean up 265 unset( $_cp ); 266 267 } 268 269 /** 270 * do_log_purge 271 * 272 * Clean the log 273 * 274 * @since 8.1 275 * @access public 276 * @static 277 * @author Kevin Pirnie <[email protected]> 278 * @package The Cache Purger 279 * 280 * @return void Returns nothing 281 * 282 */ 283 public static function do_log_purge( ) : void { 284 285 // get the logs path 286 $_l_path = ABSPATH . 'wp-content/purge.log'; 287 288 // unfortunately we cannot utilize wordpress's built-in file methods, but let's clear the log 289 file_put_contents( $_l_path, '', LOCK_EX ); 290 291 } 292 293 /** 294 * do_the_actual_purge 295 * 296 * Perform the actual purging 297 * 298 * @since 8.1 299 * @access public 300 * @static 301 * @author Kevin Pirnie <[email protected]> 302 * @package The Cache Purger 303 * 304 * @return void Returns nothing 305 * 306 */ 307 public static function do_the_actual_purge( ) : void { 308 309 // run the purge! 310 $_cp = new KP_Cache_Purge( ); 311 312 // purge 313 $_cp -> kp_do_purge( ); 314 315 // log the purge 316 KPCPC::write_log( "CRONJOB Cache Cleared" ); 317 318 // clean it up 319 unset( $_cp ); 320 321 } 322 323 324 /** 33 325 * get_options 34 326 * 35 327 * Public method pull to the options 36 328 * 37 * @since 7.4329 * @since 8.1 38 330 * @access public 39 331 * @static … … 61 353 * Public method pull to gather all public post types for a select box 62 354 * 63 * @since 7.4355 * @since 8.1 64 356 * @access public 65 357 * @static … … 111 403 112 404 // add the post type to the returnable array 113 $_ret[ $_pt['post_type'] ] = ucwords( __( str_replace( '_', ' ', $_pt['post_type'] ) , 'the-cache-purger') );405 $_ret[ $_pt['post_type'] ] = ucwords( __( str_replace( '_', ' ', $_pt['post_type'] ) ) ); 114 406 115 407 } … … 123 415 124 416 // add the post type to the returnable array 125 $_ret[ $_pt ] = ucwords( __( str_replace( '_', ' ', $_pt ) , 'the-cache-purger') );417 $_ret[ $_pt ] = ucwords( __( str_replace( '_', ' ', $_pt ) ) ); 126 418 127 419 } … … 144 436 * Public method pull to gather all posts for a select box 145 437 * 146 * @since 7.4438 * @since 8.1 147 439 * @access public 148 440 * @static … … 232 524 233 525 // add the id as an array index, and the title to the return array 234 $_ret[$_post -> ID] = __( $_post -> post_title , 'the-cache-purger');526 $_ret[$_post -> ID] = __( $_post -> post_title ); 235 527 236 528 } … … 253 545 * Public method pull to gather all public URLs 254 546 * 255 * @since 7.4547 * @since 8.1 256 548 * @access public 257 549 * @static … … 328 620 * for each section the cache is configured to be purged for 329 621 * 330 * @since 7.4622 * @since 8.1 331 623 * @access public 332 624 * @static … … 363 655 * Public method to write to a cache purge log 364 656 * 365 * @since 7.4657 * @since 8.1 366 658 * @access public 367 659 * @static … … 384 676 385 677 // I want to append a timestamp to the message 386 $_message = '[' . current_time( 'mysql' ) . ']: ' . __( $_msg , 'the-cache-purger') . PHP_EOL;678 $_message = '[' . current_time( 'mysql' ) . ']: ' . __( $_msg ) . PHP_EOL; 387 679 388 680 // unfortunately we cannot use wp's builtin filesystem hanlders for this … … 402 694 * Public method to write to a exception log 403 695 * 404 * @since 7.4696 * @since 8.1 405 697 * @access public 406 698 * @static … … 417 709 418 710 // I want to append a timestamp to the message 419 $_message = '[' . current_time( 'mysql' ) . ']: ' . __( $_msg , 'the-cache-purger') . PHP_EOL;711 $_message = '[' . current_time( 'mysql' ) . ']: ' . __( $_msg ) . PHP_EOL; 420 712 421 713 // unfortunately we cannot use wp's builtin filesystem hanlders for this … … 433 725 * Public method to return either an array or an empty array 434 726 * 435 * @since 7.4727 * @since 8.1 436 728 * @access public 437 729 * @static -
the-cache-purger/trunk/work/inc/kp-cache-purge-processor.php
r3117223 r3309228 5 5 * This file does all the processing for the purges 6 6 * 7 * @since 7.47 * @since 8.1 8 8 * @author Kevin Pirnie <[email protected]> 9 9 * @package The Cache Purger … … 22 22 * Class for processing the purges 23 23 * 24 * @since 7.424 * @since 8.1 25 25 * @access public 26 26 * @author Kevin Pirnie <[email protected]> … … 69 69 * Public method attempting to process the purging 70 70 * 71 * @since 7.471 * @since 8.1 72 72 * @access public 73 73 * @author Kevin Pirnie <[email protected]> … … 253 253 * and check for the exclusions 254 254 * 255 * @since 7.4255 * @since 8.1 256 256 * @access private 257 257 * @author Kevin Pirnie <[email protected]> … … 446 446 * Private method for processing the post 447 447 * 448 * @since 7.4448 * @since 8.1 449 449 * @access public 450 450 * @static … … 583 583 * Private method for processing other cache flushing necessities 584 584 * 585 * @since 7.4585 * @since 8.1 586 586 * @access public 587 587 * @static -
the-cache-purger/trunk/work/inc/kp-cache-purge.php
r3128169 r3309228 5 5 * This file contains cache purging methods 6 6 * 7 * @since 7.47 * @since 8.1 8 8 * @author Kevin Pirnie <[email protected]> 9 9 * @package The Cache Purger … … 36 36 * Class for attempting to purge all caches 37 37 * 38 * @since 7.438 * @since 8.1 39 39 * @access public 40 40 * @author Kevin Pirnie <[email protected]> … … 85 85 * Public method attempting to purge the sites caches 86 86 * 87 * @since 7.487 * @since 8.1 88 88 * @access public 89 89 * @author Kevin Pirnie <[email protected]> … … 160 160 * Public method attempting to run the long running purges 161 161 * 162 * @since 7.4162 * @since 8.1 163 163 * @access public 164 164 * @author Kevin Pirnie <[email protected]> -
the-cache-purger/trunk/work/inc/modules/api.php
r3128169 r3309228 5 5 * This file contains the api purge methods 6 6 * 7 * @since 7.47 * @since 8.1 8 8 * @author Kevin Pirnie <[email protected]> 9 9 * @package The Cache Purger … … 22 22 * This trait contains the api purge methods 23 23 * 24 * @since 7.424 * @since 8.1 25 25 * @author Kevin Pirnie <[email protected]> 26 26 * @package The Cache Purger … … 35 35 * of the configured remote caches 36 36 * 37 * @since 7.437 * @since 8.1 38 38 * @access private 39 39 * @author Kevin Pirnie <[email protected]> … … 100 100 * This method attempts to purge the fastly cdn caches 101 101 * 102 * @since 7.4102 * @since 8.1 103 103 * @access protected 104 104 * @author Kevin Pirnie <[email protected]> … … 155 155 * This method attempts to purge the sucuri cache configured 156 156 * 157 * @since 7.4157 * @since 8.1 158 158 * @access protected 159 159 * @author Kevin Pirnie <[email protected]> … … 209 209 * This method attempts to purge the cloudflare cache configured 210 210 * 211 * @since 7.4211 * @since 8.1 212 212 * @access protected 213 213 * @author Kevin Pirnie <[email protected]> -
the-cache-purger/trunk/work/inc/modules/file.php
r3117223 r3309228 5 5 * This file contains the file purge methods 6 6 * 7 * @since 7.47 * @since 8.1 8 8 * @author Kevin Pirnie <[email protected]> 9 9 * @package The Cache Purger … … 22 22 * This trait contains the file purge methods 23 23 * 24 * @since 7.424 * @since 8.1 25 25 * @author Kevin Pirnie <[email protected]> 26 26 * @package The Cache Purger … … 34 34 * This method attempts to delete the file based caches 35 35 * 36 * @since 7.436 * @since 8.1 37 37 * @access private 38 38 * @author Kevin Pirnie <[email protected]> … … 84 84 * also works recursively 85 85 * 86 * @since 7.486 * @since 8.1 87 87 * @access private 88 88 * @author Kevin Pirnie <[email protected]> -
the-cache-purger/trunk/work/inc/modules/hosting.php
r3117223 r3309228 5 5 * This file contains the hosting purge methods 6 6 * 7 * @since 7.47 * @since 8.1 8 8 * @author Kevin Pirnie <[email protected]> 9 9 * @package The Cache Purger … … 22 22 * This trait contains the hosting purge methods 23 23 * 24 * @since 7.424 * @since 8.1 25 25 * @author Kevin Pirnie <[email protected]> 26 26 * @package The Cache Purger … … 46 46 * of the most common hosting environments 47 47 * 48 * @since 7.448 * @since 8.1 49 49 * @access private 50 50 * @author Kevin Pirnie <[email protected]> … … 84 84 * wpengine caches 85 85 * 86 * @since 7.486 * @since 8.1 87 87 * @access protected 88 88 * @author Kevin Pirnie <[email protected]> … … 130 130 * kinsta caches 131 131 * 132 * @since 7.4132 * @since 8.1 133 133 * @access protected 134 134 * @author Kevin Pirnie <[email protected]> … … 165 165 * godaddy caches 166 166 * 167 * @since 7.4167 * @since 8.1 168 168 * @access protected 169 169 * @author Kevin Pirnie <[email protected]> … … 199 199 * bluehost caches 200 200 * 201 * @since 7.4201 * @since 8.1 202 202 * @access protected 203 203 * @author Kevin Pirnie <[email protected]> … … 228 228 * cloudways caches 229 229 * 230 * @since 7.4230 * @since 8.1 231 231 * @access protected 232 232 * @author Kevin Pirnie <[email protected]> … … 259 259 * pantheon caches 260 260 * 261 * @since 7.4261 * @since 8.1 262 262 * @access protected 263 263 * @author Kevin Pirnie <[email protected]> … … 288 288 * siteground caches 289 289 * 290 * @since 7.4290 * @since 8.1 291 291 * @access protected 292 292 * @author Kevin Pirnie <[email protected]> … … 332 332 * runcloud caches 333 333 * 334 * @since 7.4334 * @since 8.1 335 335 * @access protected 336 336 * @author Kevin Pirnie <[email protected]> -
the-cache-purger/trunk/work/inc/modules/memory.php
r3296444 r3309228 5 5 * This file contains the memory purge methods 6 6 * 7 * @since 7.47 * @since 8.1 8 8 * @author Kevin Pirnie <[email protected]> 9 9 * @package The Cache Purger … … 22 22 * This trait contains the memory purge methods 23 23 * 24 * @since 7.424 * @since 8.1 25 25 * @author Kevin Pirnie <[email protected]> 26 26 * @package The Cache Purger … … 34 34 * This method attempts to delete the memory based caches 35 35 * 36 * @since 7.436 * @since 8.1 37 37 * @access private 38 38 * @author Kevin Pirnie <[email protected]> … … 66 66 * This method attempts to purge the redis servers configured 67 67 * 68 * @since 7.468 * @since 8.1 69 69 * @access protected 70 70 * @author Kevin Pirnie <[email protected]> … … 110 110 if( ! empty( $_server['remote_redis_db_id'] ) ) { 111 111 $_cfg['database'] = $_server['remote_redis_db_id']; 112 } 113 114 // if there's a prefix/key 115 $_prefix = null; 116 if( ! empty( $_server['remote_redis_prefixkey'] ) ) { 117 $_prefix = $_server['remote_redis_prefixkey']; 112 118 } 113 119 … … 120 126 } 121 127 122 // older than PHP 8.0 support 123 if ( version_compare( PHP_VERSION, '8.0', '<=' ) ) { 124 125 // connect 126 call_user_func_array( [$_redis, 'connect'], $_cfg ); 127 128 // otherwise 128 // connect to the database 129 $_redis -> connect( ...$_cfg ); 130 131 // if we have a prefix/key 132 if( $_prefix ) { 133 134 // setup the index 135 $_idx = 0; 136 137 // we have to iterate over all items with this prefix/key 138 do { 139 140 // Scan for keys matching the prefix 141 $_keys = $_redis -> scan( $_idx, $_prefix . '*' ); 142 143 // make sure we aren't throwing ourselves into an endless loop here 144 if ( $_keys === false ) { 145 146 // No more keys to scan, so break out of the loop 147 break; 148 } 149 150 // as long as it's not empty 151 if ( ! empty( $_keys ) ) { 152 153 // delete the item 154 $_redis -> unlink( $_keys ); 155 } 156 157 // while we're greater than 0 158 } while ( $_idx !== 0 ); 159 160 // let's only flush the database 161 } elseif( ! empty( $_server['remote_redis_db_id'] ) ) { 162 163 // only flush the database 164 $_redis -> flushDB( ); 165 166 // we can flush all 129 167 } else { 130 168 131 // connect132 $_redis -> connect( ...$_cfg);169 // now flush 170 $_redis -> flushAll( ); 133 171 134 172 } 135 136 // now flush137 $_redis -> flushAll( );138 173 139 174 // now close the connection … … 142 177 } catch ( Exception $e ) { 143 178 // do nothing... php will ignore and continue 179 144 180 } 145 181 … … 165 201 * This method attempts to purge the memcache servers configured 166 202 * 167 * @since 7.4203 * @since 8.1 168 204 * @access protected 169 205 * @author Kevin Pirnie <[email protected]> … … 225 261 * This method attempts to purge the memcached servers configured 226 262 * 227 * @since 7.4263 * @since 8.1 228 264 * @access protected 229 265 * @author Kevin Pirnie <[email protected]> -
the-cache-purger/trunk/work/inc/modules/nginx.php
r3117223 r3309228 5 5 * This file contains the nginx purge methods 6 6 * 7 * @since 7.47 * @since 8.1 8 8 * @author Kevin Pirnie <[email protected]> 9 9 * @package The Cache Purger … … 22 22 * This trait contains the nginx purge methods 23 23 * 24 * @since 7.424 * @since 8.1 25 25 * @author Kevin Pirnie <[email protected]> 26 26 * @package The Cache Purger … … 35 35 * if they exist 36 36 * 37 * @since 7.437 * @since 8.1 38 38 * @access private 39 39 * @author Kevin Pirnie <[email protected]> -
the-cache-purger/trunk/work/inc/modules/pagespeed.php
r3117223 r3309228 5 5 * This file contains the pagespeed purge methods 6 6 * 7 * @since 7.47 * @since 8.1 8 8 * @author Kevin Pirnie <[email protected]> 9 9 * @package The Cache Purger … … 22 22 * This trait contains the pagespeed purge methods 23 23 * 24 * @since 7.424 * @since 8.1 25 25 * @author Kevin Pirnie <[email protected]> 26 26 * @package The Cache Purger … … 34 34 * This method attempts to purge the PageSpeed Mod caches 35 35 * 36 * @since 7.436 * @since 8.1 37 37 * @access private 38 38 * @author Kevin Pirnie <[email protected]> -
the-cache-purger/trunk/work/inc/modules/php.php
r3117223 r3309228 5 5 * This file contains the php purge methods 6 6 * 7 * @since 7.47 * @since 8.1 8 8 * @author Kevin Pirnie <[email protected]> 9 9 * @package The Cache Purger … … 22 22 * This trait contains the php purge methods 23 23 * 24 * @since 7.424 * @since 8.1 25 25 * @author Kevin Pirnie <[email protected]> 26 26 * @package The Cache Purger … … 43 43 * if they exist; wincache, opcache, apc and apcu 44 44 * 45 * @since 7.445 * @since 8.1 46 46 * @access private 47 47 * @author Kevin Pirnie <[email protected]> … … 81 81 * php wincaches 82 82 * 83 * @since 7.483 * @since 8.1 84 84 * @access protected 85 85 * @author Kevin Pirnie <[email protected]> … … 110 110 * php Zend opcaches 111 111 * 112 * @since 7.4112 * @since 8.1 113 113 * @access protected 114 114 * @author Kevin Pirnie <[email protected]> … … 163 163 * php apc caches 164 164 * 165 * @since 7.4165 * @since 8.1 166 166 * @access protected 167 167 * @author Kevin Pirnie <[email protected]> … … 195 195 * php xcache 196 196 * 197 * @since 7.4197 * @since 8.1 198 198 * @access protected 199 199 * @author Kevin Pirnie <[email protected]> -
the-cache-purger/trunk/work/inc/modules/plugin.php
r3117223 r3309228 5 5 * This file contains the plugin purge methods 6 6 * 7 * @since 7.47 * @since 8.1 8 8 * @author Kevin Pirnie <[email protected]> 9 9 * @package The Cache Purger … … 22 22 * This trait contains the plugin purge methods 23 23 * 24 * @since 7.424 * @since 8.1 25 25 * @author Kevin Pirnie <[email protected]> 26 26 * @package The Cache Purger … … 64 64 * of the most common caching plugins 65 65 * 66 * @since 7.466 * @since 8.1 67 67 * @access private 68 68 * @author Kevin Pirnie <[email protected]> … … 102 102 * of Cloudflare plugin to purge it's caches 103 103 * 104 * @since 7.4104 * @since 8.1 105 105 * @access protected 106 106 * @author Kevin Pirnie <[email protected]> … … 141 141 * of Sucuri plugin to purge it's caches 142 142 * 143 * @since 7.4143 * @since 8.1 144 144 * @access protected 145 145 * @author Kevin Pirnie <[email protected]> … … 173 173 * of Siteground plugin to purge it's caches 174 174 * 175 * @since 7.4175 * @since 8.1 176 176 * @access protected 177 177 * @author Kevin Pirnie <[email protected]> … … 202 202 * of nGinx Helper plugin to purge it's caches 203 203 * 204 * @since 7.4204 * @since 8.1 205 205 * @access protected 206 206 * @author Kevin Pirnie <[email protected]> … … 230 230 * of Lightspeed plugin to purge it's caches 231 231 * 232 * @since 7.4232 * @since 8.1 233 233 * @access protected 234 234 * @author Kevin Pirnie <[email protected]> … … 261 261 * of Cachify plugin to purge it's caches 262 262 * 263 * @since 7.4263 * @since 8.1 264 264 * @access protected 265 265 * @author Kevin Pirnie <[email protected]> … … 289 289 * of Autoptimize plugin to purge it's caches 290 290 * 291 * @since 7.4291 * @since 8.1 292 292 * @access protected 293 293 * @author Kevin Pirnie <[email protected]> … … 320 320 * of Fast Velocity plugin to purge it's caches 321 321 * 322 * @since 7.4322 * @since 8.1 323 323 * @access protected 324 324 * @author Kevin Pirnie <[email protected]> … … 348 348 * of WP Rocket plugin to purge it's caches 349 349 * 350 * @since 7.4350 * @since 8.1 351 351 * @access protected 352 352 * @author Kevin Pirnie <[email protected]> … … 377 377 * of Swift plugin to purge it's caches 378 378 * 379 * @since 7.4379 * @since 8.1 380 380 * @access protected 381 381 * @author Kevin Pirnie <[email protected]> … … 406 406 * of Comet Cache plugin to purge it's caches 407 407 * 408 * @since 7.4408 * @since 8.1 409 409 * @access protected 410 410 * @author Kevin Pirnie <[email protected]> … … 434 434 * of Hummingbird Cache plugin to purge it's caches 435 435 * 436 * @since 7.4436 * @since 8.1 437 437 * @access protected 438 438 * @author Kevin Pirnie <[email protected]> … … 465 465 * of WP Fastest Cache plugin to purge it's caches 466 466 * 467 * @since 7.4467 * @since 8.1 468 468 * @access protected 469 469 * @author Kevin Pirnie <[email protected]> … … 496 496 * of WP Fastest Cache (newer) plugin to purge it's caches 497 497 * 498 * @since 7.4498 * @since 8.1 499 499 * @access protected 500 500 * @author Kevin Pirnie <[email protected]> … … 525 525 * of WP Super Cache plugin to purge it's caches 526 526 * 527 * @since 7.4527 * @since 8.1 528 528 * @access protected 529 529 * @author Kevin Pirnie <[email protected]> … … 563 563 * of W3 Total Cache plugin to purge it's caches 564 564 * 565 * @since 7.4565 * @since 8.1 566 566 * @access protected 567 567 * @author Kevin Pirnie <[email protected]> … … 594 594 * of Hyper Cache plugin to purge it's caches 595 595 * 596 * @since 7.4596 * @since 8.1 597 597 * @access protected 598 598 * @author Kevin Pirnie <[email protected]> … … 625 625 * of WP Optimize plugin to purge it's caches 626 626 * 627 * @since 7.4627 * @since 8.1 628 628 * @access protected 629 629 * @author Kevin Pirnie <[email protected]> … … 669 669 * of WP Optimize (newer version) plugin to purge it's caches 670 670 * 671 * @since 7.4671 * @since 8.1 672 672 * @access protected 673 673 * @author Kevin Pirnie <[email protected]> … … 714 714 * of Cache Enabler plugin to purge it's caches 715 715 * 716 * @since 7.4716 * @since 8.1 717 717 * @access protected 718 718 * @author Kevin Pirnie <[email protected]> … … 746 746 * of Elementor plugin to purge it's caches 747 747 * 748 * @since 7.4748 * @since 8.1 749 749 * @access protected 750 750 * @author Kevin Pirnie <[email protected]> … … 775 775 * of Divi plugin to purge it's caches 776 776 * 777 * @since 7.4777 * @since 8.1 778 778 * @access protected 779 779 * @author Kevin Pirnie <[email protected]> … … 856 856 * of WP Rest Cache plugin to purge it's caches 857 857 * 858 * @since 7.4858 * @since 8.1 859 859 * @access protected 860 860 * @author Kevin Pirnie <[email protected]> … … 899 899 * of nitropack plugin to purge it's caches 900 900 * 901 * @since 7.4901 * @since 8.1 902 902 * @access protected 903 903 * @author Kevin Pirnie <[email protected]> … … 945 945 * of flyingpress plugin to purge it's caches 946 946 * 947 * @since 7.4947 * @since 8.1 948 948 * @access protected 949 949 * @author Kevin Pirnie <[email protected]> -
the-cache-purger/trunk/work/inc/modules/varnish.php
r3117223 r3309228 5 5 * This file contains the varnish purge methods 6 6 * 7 * @since 7.47 * @since 8.1 8 8 * @author Kevin Pirnie <[email protected]> 9 9 * @package The Cache Purger … … 22 22 * This trait contains the varnish purge methods 23 23 * 24 * @since 7.424 * @since 8.1 25 25 * @author Kevin Pirnie <[email protected]> 26 26 * @package The Cache Purger … … 34 34 * This method attempts to delete the varnish based caches 35 35 * 36 * @since 7.436 * @since 8.1 37 37 * @access private 38 38 * @author Kevin Pirnie <[email protected]> -
the-cache-purger/trunk/work/inc/modules/wordpress.php
r3117223 r3309228 5 5 * This file contains the wordpress purge methods 6 6 * 7 * @since 7.47 * @since 8.1 8 8 * @author Kevin Pirnie <[email protected]> 9 9 * @package The Cache Purger … … 22 22 * This trait contains the wordpress purge methods 23 23 * 24 * @since 7.424 * @since 8.1 25 25 * @author Kevin Pirnie <[email protected]> 26 26 * @package The Cache Purger … … 43 43 * builtin to Wordpress 44 44 * 45 * @since 7.445 * @since 8.1 46 46 * @access private 47 47 * @author Kevin Pirnie <[email protected]> … … 81 81 * wordpress object caches 82 82 * 83 * @since 7.483 * @since 8.1 84 84 * @access protected 85 85 * @author Kevin Pirnie <[email protected]> … … 105 105 * wordpress option caches 106 106 * 107 * @since 7.4107 * @since 8.1 108 108 * @access protected 109 109 * @author Kevin Pirnie <[email protected]> … … 145 145 * wordpress transient caches 146 146 * 147 * @since 7.4147 * @since 8.1 148 148 * @access protected 149 149 * @author Kevin Pirnie <[email protected]>
Note: See TracChangeset
for help on using the changeset viewer.