-
-
Notifications
You must be signed in to change notification settings - Fork 15
/
changelog.txt
716 lines (539 loc) · 35.8 KB
/
changelog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
= v24.07.01 (2024-07-21) =
- Fixed: View::tooltip() -> Typos "dan".
- Fixed: Filesystem::sanitize_maxsizedisk() -> Returns default if empty.
- Added: DOCKET_CACHE_OPCVIEWER_SHOWALL constant to enable/disable listing all opcache file.
- Added: DOCKET_CACHE_PATH_NETWORK_(n) constant, to change default cache path for multinetwork. (n) for network Id.
= v23.08.02 (2023-11-13) =
- Fixed: Tweaks::post_missed_schedule() -> Prevent post publish immediately.
- Fixed: WP_Object_Cache() -> Add setters and getters for backwards compatibility.
- Added: TWEAKS_SINGLESEARCHREDIRECT_DISABLED constant to disable redirection of single search results to the page.
- Updated: Tested up to 6.4.
= v23.08.01 (2023-08-19) =
- Fixed: LimitBulkedit::bulk_editing_is_limited() -> Deprecated Constant FILTER_SANITIZE_STRING.
- Fixed: restrict_api error notice.
- Fixed: Outdated php warning is triggered when Disable Serve Happy Checking is enabled.
- Updated: Tested up to 6.3.
= v22.07.05 (2023-03-18) =
- Fixed: Plugin::register_plugin_hooks() -> Undefined property: stdClass::$slug.
- Fixed: Event::garbage_collector() -> Stale cache, invalid filter for comment_feed.
- Fixed: Event::garbage_collector() -> Stale cache, add filter for adjacent_post, wp_get_archives and get_comment_child_ids.
- Fixed: Tweaks::wplazyload() -> Add filter for wp_get_attachment_image_attributes.
- Fixed: WP_Object_Cache::dc_save() -> Returns false if data type is "unknown type".
- Added: Filesystem::is_wp_cache_group_queries() -> Match group for *-queries.
- Added: WP_Object_Cache::maybe_expire() -> Match group for *-queries.
Thanks to Ronny from web55.se for bug report.
= v22.07.04 (2023-03-01) =
- Fixed: Advanced Post Cache -> Only visible to wp < 6.1.1 as it is already implemented in wp core (WP_Query caching).
- Fixed: Filesystem::shutdown_cleanup() -> Avoid cleanup on shutdown if a file is empty.
- Fixed: Plugin::register_plugin_hooks() -> Do not load the CronAgent class if cronbot is disabled.
- Fixed: TermCount() -> Invalid usage of clean_term_cache.
- Fixed: WP_Object_Cache::$cache_hits, WP_Object_Cache::$cache_misses -> Retain same as non persistent.
- Fixed: Prevent performance-lab from overwriting the object cache drop-in.
- Fixed: Becache::export_alloptions() -> Only export option with autoload 'yes' and not transient.
- Fixed: Becache::store_cache() -> Miss match array_serialize.
- Added: WP_Object_Cache::$persistent_cache_hits -> Stats hits from cache file.
- Added: Tweaks::wpquery() -> wp_allow_query_attachment_by_filename for wp > 6.0.1.
- Added: Configuration -> Cache Options, Retain Transients in Db.
- Added: Configuration -> Optimisations, Limit Bulk Edit Actions.
- Added: Configuration -> Wp Tweaks, Deactivate Post Via Email.
- Added: DOCKET_CACHE_TRANSIENTDB constant to enable retaining Transients in the database.
- Added: DOCKET_CACHE_IGNORED_TRANSIENTDB constant. A list of cache keys that remain in the object cache instead of the db.
- Added: DOCKET_CACHE_POSTVIAEMAIL constant to enable deactivation Post Via Email.
- Added: DOCKET_CACHE_LIMITBULKEDIT constant to enable Limit Bulk Edit Actions.
- Added: DOCKET_CACHE_LIMITBULKEDIT_LIMIT constant to change bulk edit limit. By default it is set as 100..
- Changed: Advanced Post Cache, some part of the code has been moved to Tweaks::wpquery().
- Removed: WP_Object_Cache::is_data_uptodate() -> No longer needed.
- Updated: Symfony component -> symfony/var-exporter v5.4.21.
= v22.07.03 (2023-02-07) =
- Fixed: Tweaks::woocommerce_misc() -> Check if action_scheduler_migration_status is complete to prevent the list on the Scheduled Actions page from disappearing.
- Fixed: Tweaks::woocommerce_widget_remove() -> The classic widget is not disabled.
- Fixed: Plugin::get_precache_maxfile() -> Invalid constant, replace maxfile with precache_maxfile.
- Fixed: Filesystem::sanitize_precache_maxfile() -> Set the limit to 100 by default.
- Fixed: Becache::export() -> Invalid expiration time. Already in timestamp format not in seconds.
- Fixed: WP_Object_Cache::dc_save() -> Serialize twice when checking object size.
- Fixed: Configuration -> A notice is not shown when the constant is already defined.
- Added: Configuration -> Storage Options, Check file limits in real-time and Exclude Empty Object Data.
- Added: Configuration -> Runtime Options, Deactivate Concatenate WP-Admin Scripts and Deactivate WP Cron.
- Added: WP-CLI command -> run:optimizedb.
- Added: DOCKET_CACHE_MAXFILE_LIVECHECK constant to enable checking file limits in real-time.
- Added: DOCKET_CACHE_PRECACHE_MAXKEY, DOCKET_CACHE_PRECACHE_MAXGROUP constant to limit cache keys and groups.
- Added: DOCKET_CACHE_STALECACHE_IGNORE constant to enable excluding stale cache from being stored on disk.
- Added: DOCKET_CACHE_EMPTYCACHE constant to enable excluding empty caches from being stored on disk.
- Added: DOCKET_CACHE_AUTOUPDATE_TOGGLE constant, only to sync with WordPress auto_update_plugins option.
- Added: DOCKET_CACHE_GCRON_DISABLED constant to disable garbage collector cron event.
- Added: Filesystem::suspend_cache_write() -> Temporarily suspends new cache from being stored on disk.
- Changed: DOCKET_CACHE_AUTOUPDATE constant can only be defined manually to force an automatic update.
- Improved: Increase timeout limit if lower than 180 seconds.
- Improved: Constans::maybe_define() -> Keep track of constants that have been defined in the $GLOBAL['DOCKET_CACHE_RUNTIME'] list.
- Improved: WP_Object_Cache::maybe_expire() -> Set expiration to 1 day for key/group matches with the stale cache.
- Improved: Event::garbage_collector() -> Improve wc_cache filtering and other possible stale caches.
- Improved: WP_Object_Cache::dc_code() -> Use native var_export for data type objects and arrays if only have stdClass.
- Removed: Event::watchproc() -> No longer needed.
- Updated: DOCKET_CACHE_ADVCPOST_POSTTYPE -> Set the built-in Post Type as the default.
- Updated: Filesystem::get_max_execution_time() -> Accept value to set time limit.
Thanks to Kevin Shenk of Avunu LLC for providing access to the staging server for testing purposes.
= v22.07.02 (2022-12-10) =
- Fixed: Tweaks::cache_http_response() -> Default TTL.
- Fixed: Tweaks::wpservehappy() -> missing array key.
- Added: wp_cache_supports() function.
- Changed: Tweaks::cache_http_response() -> Use transient instead of wp_cache.
- Changed: Disable Auto update by default.
- Changed: Disable Advanced Post Cache by default.
- Tested up to 6.1.
= v22.07.01 (2022-07-15) =
- Fixed: Plugin:cleanuppost() -> Invalid index for trashbin.
- Fixed: MoCache() -> Add $entries, $headers properties to avoid warning on get_translations_for_domain.
- Updated: Symfony component -> symfony/var-exporter.
= v21.08.11 (2022-05-30) =
- Fixed: Avoid calling Filesystem::close_buffer() if a process involved accessing a disk.
- Fixed: Removed handling stale cache on shutdown.
- Added: Garbage Collector Status -> Cleanup Stale Cache.
- Improved: Collected stale cache will be handled by Garbage Collector.
= v21.08.10 (2022-05-20) =
- Changed: Disable "CHUNKCACHEDIR" by default. Let's users choose it depending on their hosting environment.
= v21.08.09 (2022-05-20) =
- Fixed: WP_Object_Cache::maybe_expire() -> missing preg_match parameter.
Thanks to @carmpocalypse for bug report.
= v21.08.08 (2022-05-19) =
- Fixed: Don't remove cron event without a hook, let's WordPress handles it.
- Fixed: WP_Object_Cache::dc_close() -> Only run one time per instance.
- Fixed: WP_Object_Cache::maybe_expire() -> Check cache key.
- Added: CACHEHTTPRESPONSE, CACHEHTTPRESPONS_TTL, CACHEHTTPRESPONS_INCLUDE, CACHEHTTPRESPONS_EXCLUDE constants.
- Changed: Disable "Auto Remove Stale Cache" by default. Let's users choose it depending on their cpu/storage speeds limit.
= v21.08.07 (2022-05-13) =
- Fixed: Tweaks::wpembed() -> body_class missing seconds arguments that require by some themes.
- Fixed: Tweaks::wpembed() -> Disable body_class filter, cause unpredictable syntax error on some themes.
Thanks to @simonhawketts for bug report.
= v21.08.06 (2022-05-13) =
- Fixed: WP_Object_Cache::dc_close() -> Remove stale cache abandoned by WordPress, WooCommerce, Advanced Post Cache after doing cache invalidation.
- Fixed: WP_Object_Cache::dc_get() -> The transient should return false if does not have a value or has expired.
- Fixed: WP_Object_Cache::dc_get() -> Run maybe_unserialize to check and unserialize string data when failed to convert into an array.
- Fixed: WP_Object_Cache::dc_save() -> Reduce cache miss if contain objects of headers remote requests.
- Fixed: WP_Object_Cache::dc_save() -> Return true and avoid storing on disk if the transient has no value.
- Fixed: WP_Object_Cache() -> dc_precache_load(), dc_precache_set() -> Do check precache max list.
- Fixed: Tweaks() -> wpbrowsehappy(),wpservehappy() -> Use the pre_site_transient filter instead of blocking API requests, makes the query monitor happy.
- Fixed: RecursiveDirectoryIterator -> Do check max_execution_time to avoid a fatal timeout.
- Fixed: WP_Object_Cache() -> dc_precache_load(), dc_precache_set() -> Do check max_execution_time to avoid a fatal timeout.
- Fixed: Event() -> optimizedb(), garbage_collector() -> Do check max_execution_time to avoid a fatal timeout.
- Fixed: CronAgent::run_wpcron() -> Do check max_execution_time to avoid a fatal timeout.
- Fixed: Tweaks::wpembed() -> Invalid body_class hook arguments.
- Fixed: Plugin::get_opcache_status() -> OPcache File Cache Only -> Use getATime instead of getMTime to match with in-memory last_used_timestamp.
- Fixed: Overview -> Object Cache -> Data is not updated when opcache is not available.
- Fixed: Overview -> Flush Object Cache -> Immediately remove the cache file instead of truncate.
- Added: WP-CLI command -> flush:transient, flush:advcpost, flush:menucache.
- Added: wp_cache_flush_runtime(), wp_cache_*_multiple() functions.
- Added: wp_cache_flush_group_match() -> Remove cache file match with the group name in files.
- Added: WP_Object_Cache::dc_stalecache_filter() -> Capture cache key pattern match with the stale cache.
- Added: WP_Object_Cache::add_stalecache() -> Set a list of stale cache to remove when Object Cache shutdown.
- Added: Configuration -> Admin Interface -> Additional Flush Cache Action Button.
- Added: Configuration -> Cache Options -> Post Caching Any Post Type.
- Added: Configuration -> Storage Options -> Chunk Cache Directory, Auto Remove Stale Cache, Cache Files Limit, Cache Disk Limit.
- Added: Opcache Viewer -> Possible to display a notice if the current site path has been blacklisted in opcache.blacklist_filename directive.
- Added: DOCKET_CACHE_CHUNKCACHEDIR constant to enable chunk cache files into a smaller directory to avoid an excessive number of cache files in a single directory.
- Added: DOCKET_CACHE_ADVCPOST_POSTTYPE constant to allow cache other post types.
- Added: DOCKET_CACHE_ADVCPOST_POSTTYPE_ALL constant to allow cache any post types.
- Added: DOCKET_CACHE_FLUSH_STALECACHE constant to enable auto remove stale cache.
- Added: DOCKET_CACHE_PRECACHE_MAXLIST constant to limit cache entries per URL.
- Added: DOCKET_CACHE_IGNORE_REQUEST constant to bypass object cache match key from POST, GET variables.
Thanks to Jordan from @websavers for improvement feedback.
= v21.08.05 (2022-04-22) =
- Fixed: object-cache.php -> Checking is file object-cache-delay.txt.
- Fixed: OPcacheView::get_usage() -> checking if opcache_statistics, memory_usage exists.
- Fixed: Compability with OPcache File Cache Only (opcache.file_cache_only=1).
- Added: Woo Tweaks -> Deactivate WooCommerce WP Dashboard -> Disable setup widget.
- Added: Woo Tweaks -> Misc WooCommerce Tweaks -> Enable WooCommerce no-cache headers.
- Added: Woo Tweaks -> Misc WooCommerce Tweaks -> Remove the WooCommerce usage tracker cron event.
- Added: WP Tweaks -> Deactivate Browse Happy Checking.
- Added: WP Tweaks -> Deactivate Serve Happy Checking.
- Added: Filesystem::opcache_filecache_only() -> Determine OPcache in File Cache Only.
- Added: Filesystem::opcache_filecache_scanfiles() -> Listing OPcache file cache.
- Added: Filesystem::opcache_filecache_flush() -> Remove OPcache single file cache.
- Added: Filesystem::opcache_filecache_reset() -> Empty OPcache file cache directory.
- Updated: Symfony component -> symfony/polyfill-php80, symfony/var-exporter.
- Updated: Advanced Post Caching tooltip description.
- Updated: WP_Object_Cache::dc_precache() -> Ignore precache for /wp-admin/admin-ajax.php, /wp-cron.php, /xmlrpc.php, /robots.txt, /favicon.ico.
- Updated: OPcache viewer -> layout for OPcache File Cache Only.
Thanks to @123nadav and @jibsoux for improvement feedback.
= v21.08.04 (2022-02-05) =
- Added: WordPress Menu Caching.
- Added: DOCKET_CACHE_MENUCACHE constant.
- Added: DOCKET_CACHE_MENUCACHE_TTL constant.
Thanks to @alriksson.
= v21.08.03 (2021-11-29) =
- Fixed: Filesystem::is_opcache_enable() -> do checking PHP INI disable_functions directive.
- Fixed: Overview -> if OPcache enable and opcache_get_status function disabled, only show "Enabled".
- Fixed: Flush OPcache -> show notice if opcache_reset function disabled.
- Fixed: OPcache Viewer -> show notice if opcache_get_status, opcache_get_configuration function disabled.
- Fixed: docketcache_runtime() -> only valid for PHP >= 7.2.5.
Thanks to @robderijk.
= v21.08.02 (2021-08-27) =
- Fixed: opcacheviewer -> some filter parameters do not escape.
Thanks to Erwan from WPScan.
= v21.08.01 (2021-08-27) =
- Changed: plugin options -> check critical version, disabled by default.
- Changed: Mark 21.08.1 as a stable release.
= v21.02.08 (2021-07-20) =
- Fixed: Tweaks::http_headers_expect() -> only visible to wp < 5.8 since already included in core.
- Fixed: Filesystem::is_request_from_theme_editor() -> checking if from plugin-editor.
- Fixed: nwdcx_unserialize() -> checking if ABSPATH and WPINC defined.
- Tested up to 5.8.
= v21.02.07 (2021-07-02) =
- Fixed: missing Becache.php in wp repo.
= v21.02.06 (2021-07-02) =
- Fixed: Plugin::site_url_scheme() -> strip whitespace.
- Fixed: Tweaks::post_missed_schedule() -> remove sort by date.
- Fixed: Tweaks::register_tweaks() -> run register_tweaks at shutdown, lock for 3 minutes.
- Fixed: ReqAction::exit_failed() -> missing args.
- Fixed: ReqAction::parse_action() -> replace $_GET, $_POST conditional with $_REQUEST.
- Fixed: Canopt::put_config() -> check file exists before unlink.
- Fixed: WP_Object_Cache::maybe_expire() -> exclude transient key health-check-site-status-result.
- Fixed: CronAgent::run_wpcron() -> capture hook output if any.
- Removed: Plugin::suspend_wp_options_autoload() -> already replace with Filesystem::optimize_alloptions().
- Added: Filesystem::keys_alloptions() -> list of core alloptions key.
- Added: Action Hook -> 'docketcache/action/flushcache/object' to flush cache files.
- Added: Becache::export() -> early cache for transient and alloptions.
- Improved: Configuration -> change wording at Option label.
- Improved: CronAgent::send_action() -> disconnect if object cache disabled.
= v21.02.05 (2021-06-05) =
- Fixed: Normalize a filesystem path on Windows.
- Fixed: Plugin::cleanuppost() -> Invalid counting for trash.
- Fixed: Tweaks::woocommerce_crawling_addtochart_links() -> Checking user-agent to avoid redundancy in robots.txt.
- Fixed: OPcache -> OPcache Config. Proper link directives name to php documentation.
- Added: Configuration -> Actions -> Runtime code. install/uninstall runtime code.
- Added: Configuration -> Runtime Options. Possible to handles wp debug and auto update core.
- Added: OPcache -> OPcache Files -> Items limit selection. Limit items to display.
- Improved: runtime code and how to handle wp constants.
- Removed: Our sequence order to the first index in the plugin list.
Thanks to @kotyarashop for reporting an issue with robots.txt.
= v21.02.04 (2021-05-24) =
- Fixed: View::code_focus() -> remove {behavior: "smooth"} to correct scroll position in firefox.
- Fixed: OPcacheView::get_files() -> normalize files path.
- Fixed: Filesystem::opcache_reset() -> remove additional invalidate files, issue with memory burst when run admin preloading.
- Fixed: ReqAction::run_action() -> prevent run opcache_reset after flush object cache.
- Fixed: Tweaks::limit_http_request() -> allows admin-ajax.php and .local hostname.
- Added: Tweaks::woocommerce_crawling_addtochart_links() -> simple tweaks to prevent robots from crawling add-to-cart links.
- Added: LIMITHTTPREQUEST_WHITELIST constant -> list of hostname to exclude from checking.
- Added: Tweaks::wpdashboardnews() -> remove Events & News Feed in WP dashboard.
- Added: Cronbot -> Run Now for single event.
= v21.02.03 (2021-04-20) =
- Fixed: WpConfig::has() -> missing argument for nwdcx_throwable.
Thanks to Stanislav Khromov for testing with php 8. https://github.com/nawawi/docket-cache/issues/10
= v21.02.02 (2021-03-25) =
- Fixed: Plugin::is_subpage() -> opcach viewer left menu link.
- Fixed: Filesystem::fastcgi_close() -> Theme editor failed to verify updated file.
- Added: Tweaks::http_headers_expect() -> HTTP Request Expect header tweaks.
Thanks to Oleg for reporting an issue with Theme Editor https://docketcache.com/feedback/#comment-2
= v21.02.01 (2021-03-06)
- Fixed: Filesystem::chmod() -> invalid mode for file.
- Fixed: Filesystem::define_cache_path() -> avoid checking if the cache path exists and create the content path if define.
- Fixed: Overview -> Cache Path not same with DOCKET_CACHE_PATH, due to error at define_cache_path().
- Added: Filesystem::mkdir_p() -> fix directory permissions issues, when web server and php has different user/group.
- Added: Filesystem::touch() -> fix notice "Utime failed: Operation not permitted" when web server and php has different user/group.
- Added: Filesysten::getchmod() -> gets file/dir permissions in octal format.
- Added: OPcache viewer.
- Added: sites selection for cleanup post on multisite.
- Updated tested up to 5.7
- Improved: action notice at the configuration page.
Thanks to @patrickwgs for reporting an issue on bedrock installation.
= v21.01.01 (2021-02-03)
- Fixed: Tweaks::woocommerce_cart_fragments_remove() -> check if "wc-cart-fragments" script exists.
- Fixed: WP_Object_Cache::dc_precache_set -> ignore transient, site-transient.
- Added: Configuration -> Runtime Options.
- Added: Configuration -> Config reset.
- Added: WP-CLI command -> runtime:install, runtime:reset.
= v20.12.04 (2021-01-16)
- Fixed: Limit WP-Admin HTTP Requests -> invalid variable pagenow.
- Fixed: Cache Log -> use get_utc_offset() instead of date('T').
- Fixed: Overview Actions -> rename admin/actcmd.php to admin/actions.php.
- Fixed: Cronbot Events -> display notice if failed to load EventList() .
- Fixed: nwdcx_throwable() -> only save data if WP_DEBUG defined .
- Fixed: Tweak::compat_notice() -> move to Plugin::compat_notice(), do check at CLI.
- Fixed: Plugin::get_subpage() -> add checking for adx variable.
- Fixed: OPcache flush -> lock for 20 seconds before accept new request.
- Added: Filesystem() methods -> sanitize_precache_maxfile, sanitize_maxsize, sanitize_maxsizedisk.
= v20.12.03 (2020-12-30)
- Fixed: Auto-updates -> remove v20.11.05 workaround, had issue with opcache, enable/disable docket auto-updates only in docket cache -> configuration.
- Fixed: nwdcx_cleanuptransient() -> didn't cleanup properly.
- Added: Configuration -> Limit WP-Admin HTTP Requests.
= v20.12.02 (2020-12-28)
- Fixed: Filesystem::cache_size() -> getsize stat failed.
- Fixed: Overview -> Object/WP OPcache Stats data empty called from worker.
- Fixed: Plugin::active() -> Randomly slow.
- Added: Configuration -> Flush OPcache On Deactivation.
= v20.12.01 (2020-12-26)
- Fixed: Event::register() -> cron_schedules, merge if not exists.
- Fixed: ReqAction::screen_notice() -> missing cronbot executed events message.
- Fixed: WP_Hook -> use PHP_INT_MIN instead of -PHP_INT_MAX for earlier sequence.
- Added: WP_Object_Cache::dc_close() -> save precache after shutdown hooks.
- Added: WP_Object_Cache::dc_precache_load -> replace dc_precache_get().
- Added: Filesystem::close_buffer() -> close fastcgi request if no output buffer.
= v20.11.06 (2020-12-25)
- Fixed: Plugin::get_opcache_status() -> Missing match pattern.
- Fixed: Plugin::register_plugin_hooks() -> Redundant loading, change plugin_loaded to plugins_loaded.
- Fixed: Filesystem::opcache_compile() -> Change filemtime early to 60 seconds. Opcache won't compile if file newer than runtime.
- Fixed: WP_Object_Cache::dc_save() -> Remove change filemtime. Cache expiration now handles by timeout key.
- Fixed: Event::garbage_collector() -> Filemtime comparison with maxttl only applies to cache file without timeout or 0.
- Fixed: Event::register() -> Redundant loading, change plugin_loaded to plugins_loaded.
- Fixed: Dropino::multinet_install() -> Wrong flags for file_put_contents.
= v20.11.05 (2020-12-23)
- Fixed: CronAgent::check_connection() -> close_ping() -> Invalid selfcheck delay. Set to 90 minutes instead of current time.
- Fixed: Auto-updates -> wp >= 5.5 can't enable/disable auto-updates for docket cache at plugins page. Now, it should works vise-versa.
- Fixed: ReqAction -> Error notice undefined variable nv.
= v20.11.04 (2020-12-21)
- Fixed: Admin Interface -> filter others admin notice using hook.
- Fixed: Event -> rare condition checkversion cronagent process lock timestamp no effect.
- Fixed: Event -> invalid remove event.
- Fixed: Actions -> when disable object cache, it will stay disabled until enable it back.
- Fixed: Notice -> only show compability notice at plugins, updates page and our overview page.
- Added: Constans() -> option to reload config at dc* methods.
- Added: Configuration -> deactivate WooCommerce Cart Fragments.
- Added: nwdcx_cleanuptransient -> makes it reuseable for Event::delete_expired_transients_db().
= v20.11.03 (2020-12-14)
- Fixed: Admin Interface -> action notice can't dismiss.
- Fixed: Admin Notice -> exclude Dismissible Notices Handler dnh_dismissed_notices option from cache.
- Added: Configuration -> remove the WordPress Application Passwords feature.
= v20.11.02 (2020-12-09)
- Fixed: PostCache::setup_hooks() -> removed deprecated jetpack hook instagram_cache_oembed_api_response_body.
= v20.11.01 (2020-12-08)
- Added: WP-CLI command -> run:gc, run:stats, run:cron, reset:lock, reset:cron, dropin:enable, dropin:disable, dropin:update, flush:precache
- Fixed: Admin Interface -> only show our own notice.
= v20.10.15 (2020-12-05)
- Improved: on Admin Interface.
- Fixed: Drop-in outdated notice.
= v20.10.12 (2020-11-30)
- Fixed: File cleanup -> use shutdown hook instead of register_shutdown_function to avoid issue with *some* page cache plugin.
- Added: DOCKET_CACHE_PRECACHE_MAXFILE constant to limit precache file.
= v20.10.10 (2020-11-30)
- Fixed: Max Cache Size -> validate sizeof object instead of exported data.
- Fixed: Filesystem -> use php shutdown at dump and unlink methods.
- Added: Resc class -> handle base64 icons and image.
- Added: Configuration -> option to remove WP Lazy Load and WP Sitemap.
- Added: Configuration -> scroll at option position after select to change configuration.
= v20.10.09 (2020-11-28)
- Fixed: Filesystem::suspend_cache_file() -> use dump to avoid long locking.
- Fixed: Filesystem::cache_get() -> catch Throwable, only filter cache file to avoid long locking.
- Fixed: Filesystem::dump() -> remove retry, immediately return false if failed.
- Fixed: Filesystem() -> only use register_shutdown_function to capture fatal error, other than that use wp shutdown hook.
= v20.10.08 (2020-11-28)
- Fixed: WP_Object_Cache::dc_save() -> cache meta data type, change string to array if original data serialized.
- Fixed: WP_Object_Cache::dc_save() -> wrong logic causes a random delay if array size more than 1MB.
= v20.10.07 (2020-11-26)
- Fixed: Tweaks::misc() -> removed deprecated jetpack hook instagram_cache_oembed_api_response_body.
- Fixed: Filesystem::validate_fatal_error_file() -> update timestamp.
- Added: Filesystem::suspend_cache_file().
= v20.10.06 (2020-11-23)
- Fixed: Filesystem::scanfiles() -> missing regex pattern for dump file.
- Fixed: Filesystem::dump() -> retry to create a file if failed.
- Fixed: WP_Object_Cache::dc_init() -> Flush Litespeed Cache admin notice if exists.
- Added: Filesystem::dc_save() -> limit object size to 1000000.
- Added: Garbage Collector -> action button output results.
- Added: Filesystem::capture_fatal_error() -> attempt to fix any cache file error-prone.
= v20.10.05 (2020-11-15)
- Fixed: Litespeed Cache admin notice "Purged all caches successfully" still shown after dismiss.
= v20.10.04 (2020-11-11)
- Improved: CronAgent.
- Improved: CLI.
- Improved: Disk I/O and CPU usage.
- Optimized WP Alloptions.
= v20.10.03 (2020-11-03)
- Fixed: nwdcx_optget() -> missing sql syntax.
Thanks to Mark Barnes (@mark8barnes) for reporting this issue.
= v20.10.02 (2020-11-03)
- Fixed: output buffering issue with page caching.
= v20.10.01 (2020-11-02)
- Improved: precaching.
- Improved: cache stats.
- Improved: garbage collector.
- Improved: disk I/O and CPU usage.
- Added: new constant DOCKET_CACHE_CONTENT_PATH.
= v20.09.07 (2020-10-28)
- Fixed: Deactivate WooCommerce Widget, prevent error notice _doing_it_wrong for the_widget.
- Fixed: Precaching, always strip query string doing_wp_cron.
- Fixed: nwdcx_network_multi function, replace with simple query to detect multinetwork condition.
= v20.09.06 (2020-10-27)
- Fixed: Misc WooCommerce Tweaks, remove checking for woo class exist since we at the first sequence.
- Fixed: Precaching, strip query string, replace preg_replace with strtok.
- Added: Deactivate WooCommerce Admin, Widget, Dashboard Metabox to configuration page instead of bundling with misc tweaks.
= v20.09.05 (2020-10-25)
- Fixed: Suspend WP Options Autoload. Use hook instead of change autoload value in the database. WordPress will treat all key as autoload if none has set to yes.
- Fixed: Drop-in after delay. Remove transient from database if expiry not set and already expired.
- Added: Remove XML-RPC / Pingbacks, WP Header Junk into the configuration instead of bundling with Misc Performance Tweaks.
- Added: Remove WP Emoji, WP Feed, WP Embed options.
- Added: ReqAction class to handle action.
- Added: wp_cache_flush_group.
- Added: try to set SQL_BIG_SELECTS=1 for shared hosting.
= v20.09.04 (20202-10-14)
- Fixed: OPcache Stats, invalid calculation for cache files.
- Fixed: Cronbot, run scheduled event in multisite.
- Added: Optimize WP Query option at configuration page.
- Added: the Check Critical Version description to comply with WordPress policy.
= v20.09.03 (20202-10-11)
- Added: Multisite Multi-Network.
- Added: Object OPcache, WP OPcache stats.
- Fixed: Admin interface, loading spinner should not display when no action.
- Fixed: CronAgent::run_wpcron(), reset doing_cron if locked.
- Fixed: CronAgent::run_wpcron(), halt if run reach maximum CRONBOT_MAX for site in multisite.
= v20.09.02 (20202-10-06)
- Cron event, docketcache_optimizedb and docketcache_checkversion only run on main site if multisite.
- Cron event, checkversion change to every 3 days to avoid excessive process.
- Cronbot, change Test Ping to use it own action, to avoid conflict with connect/disconnect action.
- Cronbot, max to 5 sites if multisite, define DOCKET_CACHE_CRONBOT_MAX to change it.
- CronAgent::send_action, allow capture error if second argument set to pong.
- Canopt::keys, added description for each key.
- Cleanup admin interface.
= v20.09.01 (2020-10-05)
- Improved: admin interface structure.
- Improved: admin menu using top-level instead of submenu from settings.
- Improved: Cronbot to support multisite.
- Added: Actions pane at overview page to flush cache/OPcache and enable/disable object cache.
- Added: Auto update options at configuration page.
- Added: Cron event checkversion to check for critical update, define DOCKET_CACHE_CHECKVERSION constant to false to disable it.
- Fixed: CronAgent issue with doing_cron locked on multisite.
- Fixed: Cron event missing watchproc hook on unregister.
= v20.08.18 (2020-09-29)
- Fixed: Cache Log -> change to native file_put_contents instead of put() to avoid early unlock result to truncate.
- Fixed: Filesystem::put() -> add blocking option to avoid early unlock.
- Fixed: dc_save() -> invalid conditional for is_data_updated().
- Fixed: skip_stats() -> add checking for ignored groups.
- Fixed: unlink -> add checking is_file to avoid php warning and make query-monitor happy.
- Fixed: Canopt::setlock() -> set file permission if write true.
- Added: DOCKET_CACHE_IGNORED_PRECACHE constant to exclude group:key from precaching.
- Added: DOCKET_CACHE_IGNORED_GROUPKEY constant to exclude group:key from persistent cache.
- Added: CLI command "unlock" to clear all lock files.
= v20.08.17 (2020-09-27)
- Fixed: CronAgent, woocommerce -> get_cart - not be called before the wp_loaded action.
- Fixed: WP_Object_Cache::$cache_hits, WP_Object_Cache::$cache_misses -> hit rate.
= v20.08.16 (2020-09-25)
- Fixed: WP_Object_Cache::set() -> only write to disk if data change and expiry not 0.
- Fixed: WP_Object_Cache::dc_precache_set -> only write to disk if data change.
= v20.08.15 (2020-09-25)
- Fixed: precaching, invalid conditional for query string.
- Fixed: cache maxttl, missing timestamp in cache meta.
- Fixed: cache, flush user_meta group before login and after logout.
- Fixed: micro optimization, before using regex functions.
- Fixed: transient, remove all from db before activate our dropin.
= v20.08.14 (2020-09-24)
- Fixed: unserialize data if serialized before coverting to php code.
= v20.08.13 (2020-09-21)
- Fixed: Advanced Post Cache, invalid comment counting.
- Fixed: Precaching, exclude docketcache-post group.
- Set garbage collector always enable.
= v20.08.12 (2020-09-20)
- Use our own locking functions instead of wp_cache_* functions.
- Standardize hook prefix, rename docket-cache to docketcache.
- Increase default maxfile to 50000.
- Cronbot, remove scheduled events if hooks has errors or not exist.
- Cronbot, added "Run All Now" at admin interface.
- Garbage collector, remove older files if maxttl defined. By default set to 2 days (172800 seconds).
- Cache group post_meta and options, set to expire in 24 hours if no expiration time.
- Precaching, data expire set to 4 hours and maximum 5000 lists at a time.
- Precaching, append site host as key to allow use it on multisite.
- Precaching allow query string if user_logged_in() true and uri match with "/wp-admin/(network/)?.\*?\.php\?.\*?".
- Preloading, add locking to prevent run multiple time in short period.
- Standardize data size in binary rather than decimal.
- DOCKET_CACHE_MAXTTL, only numbers between 86400 and 2419200 are accepted (1 day - 28 days).
- DOCKET_CACHE_MAXSIZE, only numbers between 1000000 and 10485760 are accepted (1 MB - 10 MB).
- DOCKET_CACHE_MAXSIZE_DISK, minimum 1048576 (1MB), default set to 500MB.
- CLI, new command to run garbage collector "wp cache gc".
= v20.08.11 (2020-09-17)
- Fixed: Object cache stats, counting using ajax worker and only run on the overview page.
- Fixed: Precaching, completely ignore query string and limit to 1000 urls.
- Fixed: Caching, maxttl always set to 0 to avoid unexpected behavior from others plugin.
- Fixed: Cronbot, bepart::is_ssl() check if site behind cloudflare/proxy.
- Fixed: Missing wp_is_maintenance_mode(), wp < 5.5.1
- Added: Transient, Set the expiry time to 12 hours if expiration not set.
- Added: Garbage collector, scheduled to every 5 minutes instead of 30 minutes. Enable cronbot service if your site wp-cron not running active.
- Added: Object cache stats, enable/disable at configuration page.
- Added: DOCKET_CACHE_MAXFILES constant, attempting to reduce cache file if bigger than default 5000 files. Only numbers between 200 and 200000 are accepted.
= v20.08.10 (2020-09-17)
- Fixed: cache file grow quickly if enable advanced post cache, maxttl should always set to 0.
= v20.08.09 (2020-09-16)
- Fixed: empty value return by constans->is_int, constans->is_array.
= v20.08.08 (2020-09-16)
- Fixed: cache stats, do collecting data in background to avoid lagging.
- Fixed: cronbot, execute cron process directly without wp-cron.php, to avoid http connection error.
- Added: cache stats options, Enable/disable object cache stats at Overview page.
= v20.08.07 (2020-09-13)
- Fixed: precaching, ignore query to avoid junk query string
- Fixed: cronbot, add locking to avoid multiple send in short period
- Fixed: cronbot, remove site url trailing slash
- Fixed: cache stats overview
= v20.08.06 (2020-09-07)
- Fixed: precache “class not found”
- Fixed: cronbot send site url instead of main site url if multisite
- Fixed: cronbot recheck connection
= v20.08.05 (2020-09-01)
- Added: Cronbot Service
- Fixed: precache overmissed
- Fixed: for security reason, exclude user group from cache log if WP_DEBUG false
- Fixed: cache_read() -> Registry::getClassReflector -> fatal error class not found
- Fixed: PostCache::setup_hooks() -> array_shift error byreference
- Fixed: get_proxy_ip() -> return bool instead of IP string
- Fixed: ajax worker -> cache preload, cache flush, log flush
= v20.08.04 (2020-08-18)
- Added: Object Cache Precaching.
- Added: Optimize Database Tables.
- Added: Suspend WP Options Autoload.
- Added: Post Missed Schedule Tweaks.
- Added: OPcache reset.
- Added: Cache/OPcache Statistics.
- Fixed: Invalid variable at "maybe_recount_posts_for_term".
- Fixed: Checking if file at cachedir_flush, cache_size.
- Fixed: Cache flush and Drop-in installation, return false if dir/file is not writable.
= v20.08.03 (2020-08-03)
- Added: WordPres Translation Caching.
- Added: Optimization for Term Count Queries.
= v20.07.27 (2020-07-27)
- Added: delete expired transients before replace dropin
- Fixed: rarely condition, check wp function if exists before use at drop-in file to avoid fatal error, mostly if using apache mod_fcgid
= v20.07.24 (2020-07-24)
- Added: basic configuration interface.
- Improved: cache read/write.
= v20.07.20 (2020-07-20)
- Cache performance, replace file_exists with is_file.
= v20.07.19 (2020-07-19)
- Automatically enable object cache when plugin activate.
- Delay caching object when installing drop-in file.
- Sorting option by first and last line at cache log page.
- Prevent fatal error at drop-in file.
= v20.07.17 (2020-07-17)
- Updated: use shorter class name in cache file.
- Updated: admin interface. add overlay when window unload to prevent click.
- Updated: rename Files() class to Filesystem() since its more than files.
- Added: View() class to handle admin page.
- Added: log order and line for view log at admin page.
- Fixed: add nonce to ajax for preload.
= v20.07.16 (2020-07-16)
- Fixed: misc tweaks, remove heartbeat, had issue with elementor.
- Fixed: run opcache_flush when truncate cache files.
- Fixed: cache path always suffix with docket-cache.
- Fixed: add prefix NAWAWI at vendor namespace to avoid conflict with others plugins.
- Added: compat.php to fix older cache files.
- Updated: admin page.
- Updated: dropin follow plugin version.
= v20.07.14 (2020-07-14)
- Fixed: wrong conditional -> sanitize_second.
- Fixed: using class method instead of closure function.
- Fixed: cache file, write to temp file first to avoid data half write.
- Fixed: dont cache if size more than 1MB.
- Fixed: null type data, set data to empty -> object-cache.php.
- Fixed: chmod wrong file -> object-cache.php.
- Fixed: file locking when read write cache file.
- Fixed: only truncate when flush the cache files.
- Fixed: DOCKET_CACHE_DISABLED doesnt work.
- Added: tweaks for woocommerce.
- Added: filtered_group to cache group with conditional.
- Added: class Files to handle most of filesystem functions.
- Added: garbage collector.
- Added: DOCKET_CACHE_GC constant to disable garbage collector.
- Added: DOCKET_CACHE_FLUSH_DELETE to enable remove rather than truncate when flush.
- Updated: replace DOCKET_CACHE_DEBUG* to DOCKET_CACHE_LOG*.
- Updated: using trigger_error instead of throw Exception when library not found -> object-cache.php.
= v20.07.09 (2020-07-09)
- Versions are as follows: Year.Month.Day of release.
- Fixed: Invalid data -> docket_update, docket_get.
- Added: opcache_invalidate after updating cache -> opcache_flush_file.
- Added: performance tweaks -> register_tweaks.
- Added: Advanced Post Cache from vip-go.
= 1.0.0 (2020-07-08)
- Initial release of the plugin.