Skip to content

v1.3.0 - Changes and fixes

Latest

Choose a tag to compare

@MaxG-WebProjects MaxG-WebProjects released this 23 Aug 18:40

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 calls wpsh_get_modules() (which now contains translation-function calls) from the plugins_loaded hook, since that fires before load_plugin_textdomain() runs on init — it reads the already-sanitized wpsh_enabled_modules option directly instead, avoiding a _load_textdomain_just_in_time notice on every request.
  • uninstall.php temporarily re-registers the plugin's custom post types/taxonomies (reusing the existing config functions, nothing duplicated) purely so wp_delete_post()/wp_delete_term() can be used safely; post IDs are queried directly via $wpdb rather than get_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 to is_shop() with function_exists(), since it runs on the core template_redirect hook regardless of whether WooCommerce is active.
  • _docs.php had its duplicated (and outdated) plugin-structure comment removed; the authoritative version now lives in CONTRIBUTING.md.

Full Changelog: v1.2.5...v1.3.0