Changelog — JPKCom Allow Block Types
Version history of the JPKCom Allow Block Types WordPress plugin.
Version history of jpkcom-allow-blocks. Entries are taken verbatim from the project's README. A hands-on guide with tips is available in the project guide.
3.0.0
- Breaking:
jpkcom_allowed_block_types()has been removed with no deprecated shim. It always returned the same hard-coded array regardless of its arguments, so a shim could only return that same stale list — code calling it directly will now fatal instead of silently getting outdated data - Changed: the fixed 17-block allow-list is gone. Block permissions are now configured per role from a new settings screen under Appearance → Block permissions, with every currently registered block available to every role by default
- Fixed: the previous restriction never actually took effect. It was registered inside
if ( ! is_admin() ), but the block editor is part of wp-admin, soallowed_block_types_allwas never filtered there. Every block was available to everyone regardless of the plugin's hard-coded list - Added: export block permissions to a JSON file and re-import them elsewhere, with a preview step before anything is written
- Added:
jpkcom_allow_blocks_is_exemptfilter to change which users bypass the restriction (defaults tomanage_options), andjpkcom_allow_blocks_extra_block_namesto add block names that are only registered in JavaScript and therefore invisible to the PHP-side registry - Added: German translations (
de_DE,de_DE_formal)
2.0.8
- Fixed: the update manifest no longer reports
network: truefor this plugin. The generator defaulted a missingNetwork:header to true, while WordPress' own default for a missing header is "not network-only". Metadata only — WordPress derives network-only from the plugin header viais_network_only_plugin(), not from the update manifest - CI: the lint and guard workflow now also runs on pushes to
main. It only covered pull requests, so a direct push with bypass rights skipped every check - Changed: comments, workflow step names and CI output across the repository are now English throughout, and the developer notes in
CLAUDE.mdwere translated and trimmed. No effect on the shipped plugin
2.0.7
- Changed:
Tested up toraised to WordPress 7.1 - Changed: the bundled updater's runtime floor now matches the plugin's own minimum. It bailed out below WordPress 6.8 while the plugin header has required 6.9 for several releases, so the check could never fire on a supported installation
- CI: the release manifest's fallback values for
requiresandtestednow say 6.9 and 7.1. They only apply when the README metadata cannot be read, but a stale fallback would have published a minimum the plugin no longer supports
2.0.6
- Added: plugin banners (
assets/banner-1544x500.avif,assets/banner-772x250.avif) — a plain#3c4955surface with no lettering. The update manifest already advertised these two URLs, but nothing was published under them, so the plugin card in wp-admin had a broken banner
2.0.5
- CI: the release step no longer copies the staging directory into itself, so the ZIP has no empty
jpkcom-allow-blocks/jpkcom-allow-blocks/folder - CI: bumped the pinned GitHub Actions (checkout v7.0.1, setup-python v7.0.0, action-gh-release v3.0.2, fetch-metadata v3.1.0), still pinned to full commit SHAs
- CI: the release ZIP now excludes the development-only
tests/andtools/directories - CI: security and regression tests now run on every pull request, where a plugin has them
2.0.4
- Security: update packages are now verified before installation — the verified file is handed to WordPress instead of being downloaded a second time, so the bytes that were checked are the bytes that get installed
- Security: a missing or unfetchable SHA-256 checksum now aborts the update instead of installing unverified code (previously it silently skipped verification)
- Security: pinned every GitHub Action to a full commit SHA and added Dependabot with a 7-day cooldown, so a moved tag can no longer change the release build
- Security: tightened which download the updater claims, so sibling plugins cannot match each other's package
- Fixed:
sprintf()calls in the updater bound named arguments to a variadic parameter, which raisesArgumentCountErroron PHP 8.3 - Fixed: the "View Details" modal could fail with a
TypeErrorwhen the manifest omittedrequires_plugins - Performance: a failed manifest fetch is now cached for an hour instead of being retried on every admin request
- Added: CI workflow on every pull request (PHP lint, named-argument check, YAML validation, action-pinning guard)
2.0.3
- Added secure self-hosted plugin updates via GitHub with SHA256 checksum verification
- Added an automated release workflow (builds the ZIP, generates the manifest and deploys to gh-pages on tag push)
- Raised the minimum WordPress version to 6.9 and "Tested up to" to WordPress 7.0
- Switched license metadata to the SPDX identifier
GPL-2.0-or-laterwith the HTTPS license URI - Added PHPDoc-generated API documentation, built and deployed to gh-pages on release
- Hardening: enabled
declare(strict_types=1)and documented the block-types callback
2.0.2
- Tested up to WP v6.8
2.0.1
- Fix Stable tag
2.0.0
- Added README.md
- Plugin meta data update
1.0.0
- Initial Release