Grocers List 1.0.3

Does Grocers List work with WordPress 6.8.2 and PHP 8.1.12? A smoke test was performed on .

Summary

Errors
120Unrecognized messages in the PHP error log
1JavaScript exceptions
All test pages loaded successfully
No resource errors
Performance

Memory usage: 112.51 KiB
The average PHP memory usage increased by this amount after activating by the plugin.

Page speed impact: insignificant.
The plugin didn't make the site noticeably slower.

Environment
WordPress version6.8.2
PHP version8.1.12
MySQL version10.6.10
PHP memory limit512M
Plugin Info
Last updated
Active installs 50+
WordPress.org page https://wordpress.org/plugins/grocerslist/
Badges

WordPress compatibility badge PHP compatibility badge

Get badge code

Pages 3

Plugins ‹ Test site — WordPress

Page screenshot: Plugins ‹ Test site — WordPress
URL /wp-admin/plugins.php?plugin_status=all&paged=1&s
Requested URL /wp-admin/plugins.php?action=activate&plugin=grocerslist%2Fgrocerslist.php&plugin_status=all&paged=1&s&_wpnonce=b5b2f39779
Aspect after-activation
HTTP status 200
Load time 0.354 s
Memory usage 3.64 MiB
JS errors None
Resource errors None

Grocers List

Page screenshot: Grocers List
URL /wp-admin/admin.php?page=grocers-list
Aspect menu-item
HTTP status 200
Load time 0.465 s
Memory usage 3.6 MiB
JS errors
[
    {
        "message": "TypeError: Cannot read properties of undefined (reading 'init')\n    at HTMLDocument.<anonymous> (/wp-admin/js/svg-painter.js?ver=6.8.2:16:17)\n    at e (/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=6.8.2:2:27028)\n    at t (/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=6.8.2:2:27330)",
        "trace": null,
        "code": null
    }
]
Resource errors None

Test site – Just another WordPress site

Page screenshot: Test site – Just another WordPress site
URL /
Aspect front-page
HTTP status 200
Load time 0.259 s
Memory usage 3.52 MiB
JS errors None
Resource errors None

Benchmark

URL Load time Memory usage
Inactive Active Change Inactive Active Change
/wp-admin/index.php0.520 s0.418 s-0.102 s3.51 MiB3.62 MiB+ 120.69 KiB
/wp-admin/edit.php0.208 s0.197 s-0.011 s3.57 MiB3.69 MiB+ 120.36 KiB
/wp-admin/post-new.php0.888 s1.266 s+0.378 s6.07 MiB6.19 MiB+ 122.41 KiB
/wp-admin/upload.php0.703 s0.544 s-0.159 s3.52 MiB3.63 MiB+ 103.37 KiB
/wp-admin/options-writing.php0.224 s0.191 s-0.033 s3.5 MiB3.61 MiB+ 107.36 KiB
/wp-admin/media-new.php0.303 s0.417 s+0.114 s3.49 MiB3.61 MiB+ 115.55 KiB
/wp-admin/edit-tags.php?taxonomy=category0.211 s0.183 s-0.028 s3.5 MiB3.63 MiB+ 126.23 KiB
/wp-admin/post-new.php?post_type=page1.260 s0.897 s-0.363 s6.06 MiB6.17 MiB+ 122.41 KiB
/wp-admin/options-discussion.php0.584 s0.504 s-0.080 s3.5 MiB3.61 MiB+ 103.86 KiB
/wp-admin/edit-comments.php0.288 s0.283 s-0.005 s3.52 MiB3.62 MiB+ 103.36 KiB
/0.327 s0.269 s-0.058 s3.43 MiB3.52 MiB+ 91.97 KiB
Average 0.501 s0.470 s-0.032 s3.97 MiB4.08 MiB+ 112.51 KiB

Code Statistics

Note: Third-party libraries and minified JS/CSS files are excluded from these statistics where possible, so the numbers you see here may be lower than those reported by other tools.

PHP
Language % Lines of code Comment lines Files
PHP97.6%2,51826240
Markdown1.2%3001
JSON1.0%2701
SVG0.2%501
Total 2,580 262 43

PHP Code Analysis | More results »

Lines of code 2,503
Total complexity 378
Median class complexity 6.0
Median method complexity 1.0
Most complex class GrocersList\Admin\AjaxController
Most complex function GrocersList\Service\LinkRewriter::onPostSave()
Classes 33
Methods 176
Functions 2

Additions

Things that the plugin adds to the site. This section is not intended to be comprehensive. The test tool only looks for a few specific types of added content.

Database Tables 1

Options wp_options 4

PHP Error Log 120 lines

[08-Aug-2025 20:13:26 UTC] GrocersList URL mappings table created successfully
[08-Aug-2025 20:13:26 UTC] Option prefix migration completed
[08-Aug-2025 20:13:26 UTC] GrocersList database installed/upgraded to version 1.2.0
[08-Aug-2025 20:13:27 UTC] ContentFilter::filterContent() called
[08-Aug-2025 20:13:27 UTC] PluginSettings::isUseLinkstaLinksEnabled() => true
[08-Aug-2025 20:13:27 UTC] ContentFilter::filterContent() => using database mappings
[08-Aug-2025 20:13:27 UTC] ContentFilter::filterContentWithDatabaseMappings() no mappings found
[08-Aug-2025 20:13:28 UTC] ContentFilter::filterContent() called
[08-Aug-2025 20:13:28 UTC] PluginSettings::isUseLinkstaLinksEnabled() => true
[08-Aug-2025 20:13:28 UTC] ContentFilter::filterContent() => using database mappings
[08-Aug-2025 20:13:28 UTC] ContentFilter::filterContentWithDatabaseMappings() no mappings found
[08-Aug-2025 20:13:28 UTC] ContentFilter::filterContent() called
[08-Aug-2025 20:13:28 UTC] PluginSettings::isUseLinkstaLinksEnabled() => true
[08-Aug-2025 20:13:28 UTC] ContentFilter::filterContent() => using database mappings
[08-Aug-2025 20:13:28 UTC] ContentFilter::filterContentWithDatabaseMappings() no mappings found
[08-Aug-2025 20:13:28 UTC] ContentFilter::filterContent() called
[08-Aug-2025 20:13:28 UTC] PluginSettings::isUseLinkstaLinksEnabled() => true
[08-Aug-2025 20:13:28 UTC] ContentFilter::filterContent() => using database mappings
[08-Aug-2025 20:13:28 UTC] ContentFilter::filterContentWithDatabaseMappings() no mappings found
[08-Aug-2025 20:13:28 UTC] getState called
[08-Aug-2025 20:13:28 UTC] PluginSettings::getApiKey() => (empty)
[08-Aug-2025 20:13:28 UTC] PluginSettings::isAutoRewriteEnabled() => true
[08-Aug-2025 20:13:28 UTC] PluginSettings::isUseLinkstaLinksEnabled() => true
[08-Aug-2025 20:13:28 UTC] PluginSettings::isSetupComplete() => false
[08-Aug-2025 20:13:28 UTC] ContentFilter::filterContent() called
[08-Aug-2025 20:13:28 UTC] PluginSettings::isUseLinkstaLinksEnabled() => true
[08-Aug-2025 20:13:28 UTC] ContentFilter::filterContent() => using database mappings
[08-Aug-2025 20:13:28 UTC] ContentFilter::filterContentWithDatabaseMappings() no mappings found
[08-Aug-2025 20:13:29 UTC] ContentFilter::filterContent() called
[08-Aug-2025 20:13:29 UTC] PluginSettings::isUseLinkstaLinksEnabled() => true
[08-Aug-2025 20:13:29 UTC] ContentFilter::filterContent() => using database mappings
[08-Aug-2025 20:13:29 UTC] ContentFilter::filterContentWithDatabaseMappings() no mappings found
[08-Aug-2025 20:13:29 UTC] PluginSettings::getApiKey() => (empty)
[08-Aug-2025 20:13:29 UTC] ContentFilter::filterContent() called
[08-Aug-2025 20:13:29 UTC] PluginSettings::isUseLinkstaLinksEnabled() => true
[08-Aug-2025 20:13:29 UTC] ContentFilter::filterContent() => using database mappings
[08-Aug-2025 20:13:29 UTC] ContentFilter::filterContentWithDatabaseMappings() no mappings found
[08-Aug-2025 20:13:29 UTC] ContentFilter::filterContent() called
[08-Aug-2025 20:13:29 UTC] PluginSettings::isUseLinkstaLinksEnabled() => true
[08-Aug-2025 20:13:29 UTC] ContentFilter::filterContent() => using database mappings
[08-Aug-2025 20:13:29 UTC] ContentFilter::filterContentWithDatabaseMappings() no mappings found
[08-Aug-2025 20:13:30 UTC] ContentFilter::filterContent() called
[08-Aug-2025 20:13:30 UTC] PluginSettings::isUseLinkstaLinksEnabled() => true
[08-Aug-2025 20:13:30 UTC] ContentFilter::filterContent() => using database mappings
[08-Aug-2025 20:13:30 UTC] ContentFilter::filterContentWithDatabaseMappings() no mappings found
[08-Aug-2025 20:13:30 UTC] ContentFilter::filterContent() called
[08-Aug-2025 20:13:30 UTC] PluginSettings::isUseLinkstaLinksEnabled() => true
[08-Aug-2025 20:13:30 UTC] ContentFilter::filterContent() => using database mappings
[08-Aug-2025 20:13:30 UTC] ContentFilter::filterContentWithDatabaseMappings() no mappings found
[08-Aug-2025 20:13:30 UTC] ContentFilter::filterContent() called
[08-Aug-2025 20:13:30 UTC] PluginSettings::isUseLinkstaLinksEnabled() => true
[08-Aug-2025 20:13:30 UTC] ContentFilter::filterContent() => using database mappings
[08-Aug-2025 20:13:30 UTC] ContentFilter::filterContentWithDatabaseMappings() no mappings found
[08-Aug-2025 20:13:30 UTC] PluginSettings::isAutoRewriteEnabled() => true
[08-Aug-2025 20:13:30 UTC] ContentFilter::filterContent() called
[08-Aug-2025 20:13:30 UTC] PluginSettings::isUseLinkstaLinksEnabled() => true
[08-Aug-2025 20:13:30 UTC] ContentFilter::filterContent() => using database mappings
[08-Aug-2025 20:13:30 UTC] ContentFilter::filterContentWithDatabaseMappings() no mappings found
[08-Aug-2025 20:13:30 UTC] ContentFilter::filterContent() called
[08-Aug-2025 20:13:30 UTC] PluginSettings::isUseLinkstaLinksEnabled() => true
[08-Aug-2025 20:13:30 UTC] ContentFilter::filterContent() => using database mappings
[08-Aug-2025 20:13:30 UTC] ContentFilter::filterContentWithDatabaseMappings() no mappings found
[08-Aug-2025 20:13:31 UTC] ContentFilter::filterContent() called
[08-Aug-2025 20:13:31 UTC] PluginSettings::isUseLinkstaLinksEnabled() => true
[08-Aug-2025 20:13:31 UTC] ContentFilter::filterContent() => using database mappings
[08-Aug-2025 20:13:31 UTC] ContentFilter::filterContentWithDatabaseMappings() no mappings found
[08-Aug-2025 20:13:31 UTC] ContentFilter::filterContent() called
[08-Aug-2025 20:13:31 UTC] PluginSettings::isUseLinkstaLinksEnabled() => true
[08-Aug-2025 20:13:31 UTC] ContentFilter::filterContent() => using database mappings
[08-Aug-2025 20:13:31 UTC] ContentFilter::filterContentWithDatabaseMappings() no mappings found
[08-Aug-2025 20:13:32 UTC] ContentFilter::filterContent() called
[08-Aug-2025 20:13:32 UTC] PluginSettings::isUseLinkstaLinksEnabled() => true
[08-Aug-2025 20:13:32 UTC] ContentFilter::filterContent() => using database mappings
[08-Aug-2025 20:13:32 UTC] ContentFilter::filterContentWithDatabaseMappings() no mappings found
[08-Aug-2025 20:13:33 UTC] ContentFilter::filterContent() called
[08-Aug-2025 20:13:33 UTC] PluginSettings::isUseLinkstaLinksEnabled() => true
[08-Aug-2025 20:13:33 UTC] ContentFilter::filterContent() => using database mappings
[08-Aug-2025 20:13:33 UTC] ContentFilter::filterContentWithDatabaseMappings() no mappings found
[08-Aug-2025 20:13:34 UTC] ContentFilter::filterContent() called
[08-Aug-2025 20:13:34 UTC] PluginSettings::isUseLinkstaLinksEnabled() => true
[08-Aug-2025 20:13:34 UTC] ContentFilter::filterContent() => using database mappings
[08-Aug-2025 20:13:34 UTC] ContentFilter::filterContentWithDatabaseMappings() no mappings found
[08-Aug-2025 20:13:35 UTC] ContentFilter::filterContent() called
[08-Aug-2025 20:13:35 UTC] PluginSettings::isUseLinkstaLinksEnabled() => true
[08-Aug-2025 20:13:35 UTC] ContentFilter::filterContent() => using database mappings
[08-Aug-2025 20:13:35 UTC] ContentFilter::filterContentWithDatabaseMappings() no mappings found
[08-Aug-2025 20:13:35 UTC] PluginSettings::isAutoRewriteEnabled() => true
[08-Aug-2025 20:13:35 UTC] ContentFilter::filterContent() called
[08-Aug-2025 20:13:35 UTC] PluginSettings::isUseLinkstaLinksEnabled() => true
[08-Aug-2025 20:13:35 UTC] ContentFilter::filterContent() => using database mappings
[08-Aug-2025 20:13:35 UTC] ContentFilter::filterContentWithDatabaseMappings() no mappings found
[08-Aug-2025 20:13:35 UTC] ContentFilter::filterContent() called
[08-Aug-2025 20:13:35 UTC] PluginSettings::isUseLinkstaLinksEnabled() => true
[08-Aug-2025 20:13:35 UTC] ContentFilter::filterContent() => using database mappings
[08-Aug-2025 20:13:35 UTC] ContentFilter::filterContentWithDatabaseMappings() no mappings found
[08-Aug-2025 20:13:35 UTC] ContentFilter::filterContent() called
[08-Aug-2025 20:13:35 UTC] PluginSettings::isUseLinkstaLinksEnabled() => true
[08-Aug-2025 20:13:35 UTC] ContentFilter::filterContent() => using database mappings
[08-Aug-2025 20:13:35 UTC] ContentFilter::filterContentWithDatabaseMappings() no mappings found
[08-Aug-2025 20:13:36 UTC] ContentFilter::filterContent() called

(+20 more lines)
See also: All tests for this plugin, How to Hide the "Grocers List" Admin Menu