Releases: MaxG-WebProjects/wp-sniphub
Releases · MaxG-WebProjects/wp-sniphub
Release list
v1.3.0 - Changes and fixes
Added
- Full internationalization: plugin strings are now in English with a bundled French translation, so the Dashboard displays in French on French-locale sites and in English everywhere else.
- New settings backup feature: export your configuration to a JSON file and re-import it later, from a dedicated section on the WPSnipHub screen.
uninstall.php: deleting the plugin now cleans up everything it created in the database, including content added through its custom post types and taxonomies.CONTRIBUTING.md: guidelines and a compliant template for anyone writing a new module.- Dev-only tooling (PHPCS/WPCS, Stylelint) to keep future contributions compliant with WordPress coding standards.
Changed
- Every module is now disabled by default on a fresh install — you choose what to turn on.
- The settings screen was rebuilt on WordPress's native Settings API and now groups modules into 5 categories for easier browsing.
- Deleting WPSnipHub now also removes all portfolio/testimonial/event content and their taxonomy terms, not just the plugin's own settings — since that content can't be managed anywhere once the plugin is gone.
- All 20 modules' comments and documentation blocks were rewritten to a single, consistent format.
- Bumped "Tested up to" to WordPress 7.1.
- Widened the module-title column on the settings screen for better readability.
Fixed
- Critical: enabling the WooCommerce module without WooCommerce installed crashed every page on the site.
- Saving the module list silently failed due to an invalid nested HTML form.
- The Scripts and Styles modules did nothing at all, due to a documentation-comment bug that had disabled their code since they were introduced.
- Inconsistent spacing between labels and fields on the custom image-size settings.
- A WordPress debug notice caused by loading translations too early.
- Several stray files and a minor security-hardening tweak flagged by the official Plugin Check tool.
Technical details
wpsh_load_modules()no longer callswpsh_get_modules()(which now contains translation-function calls) from theplugins_loadedhook, since that fires beforeload_plugin_textdomain()runs oninit— it reads the already-sanitizedwpsh_enabled_modulesoption directly instead, avoiding a_load_textdomain_just_in_timenotice on every request.uninstall.phptemporarily re-registers the plugin's custom post types/taxonomies (reusing the existing config functions, nothing duplicated) purely sowp_delete_post()/wp_delete_term()can be used safely; post IDs are queried directly via$wpdbrather thanget_posts(), since WordPress's'any'status filter silently excludes drafts and auto-drafts.- The wider module-title column (
.form-table th) is scoped inside@media screen and (min-width: 783px), matching WordPress core's own breakpoint for the settings screen's mobile stacked layout, so the two never conflict. wpsh_wc_remove_shop_breadcrumbs()now guards its call tois_shop()withfunction_exists(), since it runs on the coretemplate_redirecthook regardless of whether WooCommerce is active._docs.phphad its duplicated (and outdated) plugin-structure comment removed; the authoritative version now lives inCONTRIBUTING.md.
Full Changelog: v1.2.5...v1.3.0
v1.2.5 – Changes and fixes
Added
- Styles module to manage CSS independently of the scripts.
- Dashicon for each module title.
- Instructions for external HTTP requests hardening - See it in security module (thanks to @ozgursar for his related LinkedIn's post).
Changed
- Split the scripts module to begin the CSS styles.
- wp-sniphub.php and wpsh-admin.css to include and display Dashicons for each module title.
- All favicons files with WPSnipHub logo instead of my own site logo.
Fixed
- Fixed an issue where the browser tab notification emoji was displayed incorrectly or as plain text in some environments (thanks to @valentin-grenier).
- Improved reliability of the browser tab title animation when the page loses focus.
Technical details
- Replaced a raw UTF-8 emoji in inline JavaScript with explicit Unicode escape sequences.
- This prevents character encoding issues caused by PHP → JavaScript injection and ensures consistent rendering across browsers, servers, and build environments.
v1.2.0 – Improvements, Enhancement, Module creation guidelines & WordPress.org compliance
This release focuses on standardizing module development, improving WordPress.org compliance, and providing clear contributor guidelines.
Added
- Official module creation guidelines (README.md):
- Clear philosophy: clean, isolated, maintainable modules
- Mandatory
wpsh_prefix rules for all global symbols - WordPress.org–compliant escaping, i18n, and security practices
- Guidelines for WPSnipHub module creation:
- Plugin Check compliance checklist
- Naming conventions and common pitfalls
- Validation steps before submitting a module
- Standardized official module template for WPSnipHub
- Plugin Check checklist added for contributors and maintainers
Changed
- Global refactor of all modules to comply with Plugin Check and WordPress.org rules:
- All global functions are now consistently prefixed with
wpsh_ - Removed third-party or generic prefixes (
theme_,my_,wpds_,woo_, etc.)
- All global functions are now consistently prefixed with
- Improved code readability and maintainability across all modules:
- Clear function naming aligned with module responsibilities
- Consistent hook registration patterns
- Improved internationalization (i18n):
- All user-facing strings now use the
wp-sniphubtext domain
- All user-facing strings now use the
- Improved date and time handling:
- Replaced deprecated or discouraged PHP functions with
wp_date()
- Replaced deprecated or discouraged PHP functions with
Fixed
- Plugin Check errors across all modules, including:
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFoundWordPress.Security.EscapeOutput.OutputNotEscaped
- Output escaping issues:
- All URLs now escaped with
esc_url() - All HTML attributes escaped with
esc_attr() - All visible text escaped with
esc_html()/esc_html__()
- All URLs now escaped with
- Admin notices and frontend outputs now fully WordPress.org compliant
- Shortcodes, helpers, WooCommerce, Gravity Forms, media, login, cleanup, and publication modules now pass Plugin Check without critical errors
Security
- Hardened all modules against unsafe output:
- No raw
echoof dynamic data without proper escaping
- No raw
- Restricted sensitive features (uploads, SVG, JSON, etc.) to administrator capabilities
- Ensured safe admin-only execution where required
Developer Experience
- Modules are now:
- Fully isolated and independently disable-able
- Easier to audit, extend, and maintain
- Clear separation between:
- Initialization logic
- Business logic
- Hooks and filters
- Reduced risk of conflicts with themes, plugins, or WordPress core
Compatibility
- Fully compatible with:
- WordPress.org Plugin Review guidelines
- Plugin Check (no blocking issues)
- Modern WordPress versions (including block editor environments)
- Safe integration with third-party plugins (WooCommerce, Gravity Forms, Greenshift, etc.)
Notes
This release is primarily a quality, compliance, and maintainability milestone.
No breaking changes for end users, but significant internal improvements to ensure long-term stability and WordPress.org compatibility. Even though WPSnipHub is not intended to be published on the official plugin repository
[1.1.0] – 2026-01-04
Added
- Added Changelog file
- Added indicator for module activation or deactivation
Changed
- Toggle buttons replace checkboxes
Fixed
- Fixed an issue where the switch button label always displayed "Inactive" regardless of its actual state.
[1.0.0] – 2025-12-28
- Initial release