Skip to main content
NetterTech
Event management for WordPress, done right.

NetterTech Events 1.0.1

v1.0.1

Remediation patch responding to WordPress.org plugin-review feedback. The reviewer flagged the nte prefix as too short (under 4 characters); this release renames every prefixed identifier in the plugin and bundles the corresponding database migration. Substantial diff for a patch release — treated as a remediation patch within the same review cycle rather than a feature release; no new functionality.

Changed

  • All nte_* prefixed identifiers renamed to nettertech_events_* (or nettertech-events-* for kebab-case): hooks, options, post/user/order-item meta keys (_nte_*_nettertech_events_*), transients, AJAX action strings, nonces, $_POST keys, JS-localized variables, custom database table prefixes, cron hooks, and shortcodes ([nte_list][nettertech_events_list], etc.)
  • Custom post type slug: nte_eventnettertech_event (16 characters; the originally-planned 23-character slug exceeded WordPress core’s register_post_type() limit)
  • Taxonomy slugs: nte_event_categorynettertech_event_category; nte_event_tagnettertech_event_tag
  • REST base: nte-eventsnettertech-events (/wp-json/nettertech-events/...)
  • Style handle: nte-public-ticketnettertech-events-public-ticket

Added

  • PrefixMigrationManager — automatic Step 2 migration runs on plugin upgrade. Renames database tables (with conflict detection), updates wp_posts.post_type and wp_term_taxonomy.taxonomy, migrates options and meta keys, classifies transients (cache vs stateful), reschedules cron hooks while preserving cadence, and rewrites shortcodes inside wp_posts.post_content
  • Read-only preflight_inventory() dry-run reporter and verify() post-migration straggler check (admin diagnostic)
  • Block source files (blocks/*/src/index.jsx) now ship alongside their compiled output (blocks/*/build/index.js) for WP.org guideline 4 compliance; readme.txt has a new “Source Code & Build” section pointing to the source files and giving the rebuild command (npm install && npm run build)

Fixed

  • 13 sanitization sites across the addon plugins flagged by WordPress.Security.ValidatedSanitizedInput (Rentals: 11; Seating: 2) — added explicit wp_unslash() and sanitize_text_field() chains at the access point
  • uninstall.php was filtering shadow posts by a 23-char post-type slug that was never a live slug; now reads from the canonical ShadowPostType::POST_TYPE constant so the filter stays in sync with the registered slug
  • uninstall.php transient cleanup was matching the pre-rename _transient_nte_% prefix and would have orphaned every post-1.0.1 transient on uninstall; pattern updated to match the post-migration prefix

Breaking

  • Yoast SEO title-template variables renamed. The three custom variables registered via wpseo_register_var_replacement() were updated from %%nte_event_date%% / %%nte_event_venue%% / %%nte_event_organizer%% to %%nettertech_events_event_date%% / %%nettertech_events_event_venue%% / %%nettertech_events_event_organizer%%. Sites with the legacy variable names in their Yoast title templates need to update those templates after the upgrade — the old names no longer resolve and Yoast renders the literal string. Rank Math equivalents were already on the new prefix and are unaffected.

Migration notes

  • Migration runs automatically on plugin upgrade. Idempotent and lock-protected (600-second transient lock prevents parallel runs across admin/REST/cron processes).
  • If both the old and new tables exist for any artifact, the migration logs the conflict and aborts rather than auto-merging — operators must resolve the conflict manually before re-running.
  • MySQL DDL (RENAME TABLE) is auto-commit; take a wp db export snapshot before running on production data.
  • A site that has already migrated and wants to re-run can clear the completion flag with wp option update nettertech_events_prefix_migration_complete '' before triggering the upgrade hook.

Requirements

  • WordPress 6.5+
  • PHP 8.2+
  • WooCommerce 8.5+ (for ticketing)