Skip to content

WpAgencyKit

WPAK-Deploy2WP

One-click deploys from GitHub with private repos and automatic rollback.

Latest v1.3.0
v1.3.0 2026-04-22
  • Change [i18n] Linguistic audit — rewrote the 4 Italian msgids left in admin/Admin.php (Token richiesto per leggere il changelog., Limite GitHub raggiunto. Riprova più tardi., Impossibile leggere il changelog., Salvato, ma Tag Prefix da controllare: non combacia con i tag GitHub.) into canonical English (WP convention). Sites running WordPress in English no longer see raw Italian error messages for GitHub changelog/token/rate-limit failures
  • Change [i18n] Italian users preserved — a shipped wpak-deploy2wp-it_IT.po/.mo maps the 4 rewritten English msgids back to their original Italian wording
  • New [i18n] First wpak-deploy2wp.pot generated from the canonical English source (531 unique strings) — enables community translations for other locales
  • Note Scope: No behaviour, no markup classes, no meta keys, no option names changed. Rolling back from 1.3.0 to 1.2.4 leaves the DB schema identical — only 4 visible error labels change
v1.2.4 2026-04-21
  • Fix [Updater SDK] Update-check cache lowered from 12 hours → 1 hour so new releases pushed on the update server propagate to client sites within the hour (previously up to half a day of staleness)
  • New [Updater SDK] Honors ?force-check=1 on wp-admin/update-core.php — clicking WordPress's "Check again" now bypasses the local transient and re-queries the update server immediately (before, the SDK returned the cached response and the core button was effectively a no-op for WpAgencyKit plugins)
  • New [Updater SDK] New filter wpak_updater_cache_ttl lets site owners override the cache TTL (min 60s); new filter wpak_updater_force_refresh lets integrations programmatically skip the cache
v1.2.3 2026-04-21
  • Change Declared compatibility with WordPress 6.9.4 — removes the "not tested with your current version of WordPress" warning in the plugin details modal
Show 71 older versions
v1.2.2 2026-04-21
  • New Bundled wiki documentation — the docs/wiki/*.md files (GitHub PAT setup, Webhook setup, Best practices, Use cases) now ship inside the release ZIP and are rendered publicly on wpagencykit.org/docs/ via the [wpak_wiki] shortcode
v1.2.1 2026-04-21
  • Change Release notes adopt the new public/internal tag format — cleaner, user-oriented entries on the public changelog
v1.2.0 2026-04-20
  • New [Admin] Unified WpAgencyKit header design across every Deploy2WP admin page (logo + plugin name + page title with icon + subtitle + brand links)
  • New [Wizard] Inline "How to" help popover next to the "Get a GitHub token" link with step-by-step instructions for creating a fine-grained or classic GitHub PAT (no modal overlay — expands in place)
  • New [Wizard] Pre-filled GitHub deep link on "Get a GitHub token" — opens GitHub with repo scope and the description already populated
  • Fix [Wizard] No longer auto-opens on top of the credential settings when no license is active — the license key field is reachable on first install
v1.1.10 2026-04-20
  • Enhance Smaller release ZIP — dev-only files (node_modules/, package.json, docs/wiki/, tmp/, CONTRIBUTING.md, assets/nerd/) are no longer shipped. The bundled assets/js/admin.js is always included — no runtime impact
v1.1.8 2026-04-18
  • Fix Moved declare(strict_types=1) before ABSPATH guard in sdk/class-wpak-updater.php to prevent PHP fatal error
v1.1.7 2026-04-18
  • Fix Added ABSPATH guards to all PHP files lacking direct-access protection
  • Fix Replaced unlink() with wp_delete_file(), is_writable() with wp_is_writable()
  • Fix Added /* translators: */ comments to all sprintf/_n i18n calls
  • Fix Fixed mismatched placeholders in RepoDetector.php _n() calls
  • Fix Used WordPress checked() function for radio button state output
  • Fix Applied wp_kses_post() to $actions HTML in Plugin.php
  • Fix Sanitized $_SERVER['REMOTE_ADDR'] with wp_unslash() + sanitize_text_field()
  • Fix Added phpcs:ignore with explanatory comments for custom Security::sanitize*() methods
  • Fix Added esc_sql() on table names in DROP TABLE queries
  • Fix Excluded assets/nerd/*.sh from distribution ZIP
v1.1.6 2026-04-17
  • Note Official stable release of the 1.1.6 line, consolidating the beta cycle.
v1.1.3 2026-02-19
  • Fix Identity reconciliation is now deterministic across folder, slug, and text_domain:
  • Fix runtime update checks auto-reconcile only when installed-plugin match is unique and high-confidence,
  • Fix ambiguous matches are no longer auto-written.
  • Fix Auto-repair now auto-resolves safe slug mismatches and adds explicit reason codes:
  • Fix slug_mismatch_resolved
  • Fix slug_mismatch_ambiguous
  • Fix Detect/Magic setup now return and persist text_domain when available.
  • Fix Slug inference now prioritizes real repository path/folder signals before text_domain, then file-based fallback.
  • Fix Webhook queue processing now survives slug renames by resolving config with plugin_file fallback.
  • Fix Monorepo package folder resolution now uses multi-signal header matching (slug/text_domain/main_file) before failing with folder_not_found.
v1.1.2 2026-02-19
  • Fix Tag prefix: when both name- and name-v match tags, the prefix now always chooses -v.
  • Fix Add/Edit now save even if Tag Prefix does not match GitHub tags; configuration is marked needs_action with a warning.
  • Fix Auto-repair upgrades stored prefixes to -v when detected tags clearly use the -v format.
v1.1.1 2026-02-19
  • Fix Tag prefix inference now prefers the -v suffix when repository tags consistently use it (avoids saving prefixes without v).
  • Fix Wizard update policy now persists the selected profile/behaviour when finishing the guide.
v1.1.0 2026-02-18
  • New Changelog viewer: new “Changelog” button in the monitored plugins list opens a popup with the latest CHANGELOG.md section from the GitHub repo.
  • Fix Plugin/theme header parsing now accepts standard comment prefixes (e.g., * Plugin Name:), restoring auto-detect for slug/Text Domain in monorepo.
v1.0.2 2026-02-18
  • Fix Wizard monorepo now auto-detects the slug per folder (Text Domain / main file) and highlights missing slugs per item.
  • Fix Monorepo import now blocks only the items missing slug and shows per-item errors (no more empty imports with zero saved).
  • Fix Magic setup no longer blocks on tag prefix mismatch; it saves with a warning for manual review.
  • Change Magic setup now marks tag-prefix issues as needs_action in config health metadata.
v1.0.1 2026-02-18
  • Fix Tag prefix inference now follows Slug-first + fallback: slug- is canonical, with compatibility fallback to folder-based prefixes only when real tags confirm it.
  • Fix Add/Edit/Magic setup now validate the final tag_prefix against repository tags (when tags exist) and block unsafe saves with explicit tag_prefix_invalid.
  • Fix Monorepo Magic setup no longer forces slug = folder; slug is resolved from plugin metadata (Text Domain / main file) or requires manual input.
  • Fix UI forms no longer auto-overwrite tag_prefix from folder changes in monorepo mode.
  • Fix Wizard monorepo bulk import no longer pre-fills ambiguous folder-based tag prefixes.
  • Change AJAX gup_detect_plugin now returns:
  • Change tag_prefix_candidates
  • Change tag_prefix_selected
  • Change tag_prefix_validation (tags_available, matched_count, confidence)
  • Change AJAX gup_magic_setup now returns tag_prefix_invalid errors with tag_prefix_validation details for guided correction.
  • Change Copy/examples now use canonical tag format <slug>-<version> (for example wpak-seo-1.2.3) instead of -v defaults.
  • Change Repair flow now auto-corrects stored tag_prefix only when the current prefix has zero matches and a unique safe prefix is detected.
v1.0.0 2026-02-17
  • Change Breaking rename: plugin identity moved to wpak-deploy2wp.
  • Change Canonical runtime identifiers updated:
  • Change Plugin name: WpAgencyKit Deploy2WP
  • Change Folder/main file: wpak-deploy2wp/wpak-deploy2wp.php
  • Change Text domain: wpak-deploy2wp
  • Change Tag prefix: wpak-deploy2wp-
  • Change REST namespace: wpak-deploy2wp/v1
  • Change Internal hooks/options/transients/cron keys standardized to wpak_deploy2wp_*.
  • New Runtime and admin naming fully aligned with Deploy2WP across code and docs.
  • Note PHP namespace remains WPAKUpdater in this cycle to minimize regression risk; namespace rename is deferred.
v0.2.46 2026-02-15
  • New First safe support for WordPress Themes in monitor flow (phase 1, notify/manual install only).
  • New New Theme table in dashboard: Monitored themes separated from Monitored plugins.
  • New New backend list table file: admin/Theme_List_Table.php.
  • New New config fields with backward compatibility:
  • New asset_type (plugin|theme, default = plugin)
  • New theme_stylesheet for runtime theme identity.
  • Change Add/Edit form now supports asset type selection (Plugin / Theme) with dynamic fields.
  • Change Wizard Magic Setup now supports Theme flow end-to-end (detect + setup payload + summary context).
  • Change AJAX endpoints kept backward compatible and extended:
  • Change gup_detect_plugin now accepts asset_type and can return theme_stylesheet.
  • Change gup_magic_setup now accepts asset_type and saves correct runtime identity.
  • Change Detect strategy now supports Theme repositories:
  • Change single-theme detection (style.css in root with valid header),
  • Change multi-theme detection (subfolders with valid style.css header).
  • Change Update notices and pending update counters now consider monitored themes too.
  • Change Monorepo upgrader source selection now supports Theme package folder extraction.
  • Fix Webhook safety in phase 1: theme-matched tags are intentionally not queued for auto install (theme_webhook_notify_only), preventing unwanted automatic theme updates.
  • Fix Runtime collision protection extended to theme_stylesheet identities to avoid cross-asset update ambiguity.
v0.2.45 2026-02-15
  • Change Onboarding wizard (final step): added a dedicated info card that explicitly explains you can monitor plugins from multiple GitHub repositories.
  • Change Included a concrete real-world example in the card to make the multi-repo capability immediately clear to non-technical users.
v0.2.44 2026-02-15
  • Fix Add Plugin modal now pre-fills owner/repo (and suggested repo type) from saved monitored configurations, so adding another plugin on an already used repository is faster and consistent.
  • Fix Repository type detection (single/multi) is now more stable:
  • Fix request de-duplication and cancellation on the form (prevents race conditions and “ballerino” results),
  • Fix detect cache per repo/token on server side (faster repeated checks),
  • Fix plugin-header memoization and better directory filtering for monorepo scans.
  • Fix Detect cache no longer stores unknown outcomes, so temporary uncertain results can be retried immediately.
v0.2.43 2026-02-15
  • Fix Status tab now reads pending monitored updates from WordPress update_plugins transient and marks rows as Update available when a real update exists.
  • Fix Latest version shown in list/system status now prioritizes the pending transient version, preventing false Up to date rows caused by release-cache desync.
v0.2.42 2026-02-15
  • Fix Removed notice duplication after update checks:
  • Fix when a real update notice is already shown, the generic "Update check completed" notice is suppressed;
  • Fix when a Notify-only update notice is shown, the generic "Open WpAgencyKit Deploy2WP" warning is not shown in parallel.
v0.2.41 2026-02-15
  • Fix Global "Update available" notice now appears across WordPress admin pages but is not repeated inside WpAgencyKit Deploy2WP pages.
  • Fix Update-available counting now ignores stale update_plugins entries when the monitored plugin is already updated.
  • Fix Notify-only update notices are automatically dismissed when the target version is already installed.
  • Fix Plugin-file collision runtime notice is now one-shot (transient cleared after display) to avoid persistent repeats.
v0.2.40 2026-02-15
  • Change Release bump to publish this update on a new unique tag.
v0.2.39 2026-02-15
  • Change Release bump to publish this update on a new unique tag.
v0.2.38 2026-02-15
  • Change Release bump to publish the intelligent auto-fix hardening on a new unique tag.
v0.2.37 2026-02-15
  • New New per-plugin tag version policy: strict (SemVer only) and compat (also accepts short tags like 1.2, normalized to 1.2.0).
  • New New config health metadata per plugin: health_state and last_autofix_report.
  • New Add/Edit forms now expose Tag version policy explicitly.
  • New AJAX responses extended:
  • New gup_detect_plugin: autofix_preview, confidence_level, user_message_mode.
  • New gup_magic_setup: fixed_items, unresolved_items, next_steps, confidence_level, user_message_mode.
  • Change Smart repair flow now uses safe-first behavior:
  • Change auto-fixes only reliable changes;
  • Change keeps risky mappings for manual confirmation;
  • Change stores a user-friendly summary with guided next steps.
  • Change First admin load after updater version change now runs automatic safe repair (with snapshot backup) and shows positive/clear notice messaging.
  • Change Monorepo logic now keeps slug (WordPress identity) and folder (GitHub path) independent in Add/Edit flows.
  • Change New notices for guided outcomes: autofix_resolved, autofix_partial, autofix_blocked.
  • Change System action label updated to Diagnose & Auto-resolve.
  • Fix Reduced hidden folder -> slug auto-overwrites in JS forms/wizard/repo detection.
  • Fix Runtime release parsing now consistently applies plugin tag policy (strict|compat) in updater checks and webhook tag routing.
  • Fix Avoided unsafe plugin-file rewrites during repair when installed mapping cannot be verified.
v0.2.36 2026-02-15
  • Fix Runtime plugin identity matching no longer uses monorepo folder as a fallback for installed plugin resolution.
  • Fix This prevents folder (GitHub repo path) from forcing a wrong local plugin match when slug/plugin_file are misconfigured.
v0.2.35 2026-02-14
  • Change Safety hardening for slug/folder/tag mapping to prevent cross-plugin updates in monorepo setups.
  • Change Tag prefix detection now returns confidence and warning codes; risky patterns require manual confirmation.
  • Change Automatic post-update repair now runs in diagnostic mode only (no config writes).
  • Change Manual "Repair configuration" now creates a configuration snapshot before applying safe changes.
  • Fix Release/tag parsing now accepts only strict numeric versions after prefix stripping.
  • Fix Add/Magic Setup now blocks silent overwrite when a slug already exists.
  • Fix Runtime update check now blocks and reports plugin_file collisions across monitored entries.
  • Fix Webhook monorepo routing now requires a unique tag-to-plugin match, with explicit safety warnings for ambiguous/no-match cases.
v0.2.33 2026-02-14
  • Change System Info: moved Data Retention card into the top triple-card grid, next to Configuration Repair.
  • Change Adjusted retention card spacing in the triple grid for clean alignment.
v0.2.32 2026-02-14
  • Fix Nerd terminal no longer overflows horizontally on the right side of the page.
  • Change Nerd heading and white divider are now positioned below the terminal bar with colored dots.
v0.2.31 2026-02-14
  • Change Logs > Tools: merged the two separate cards into a single unified card, consistent with the other admin pages.
  • Change Reorganized Tool actions inside the card for cleaner spacing and alignment on desktop and mobile.
v0.2.30 2026-02-14
  • Change Logs page filters redesigned for better visual order and readability.
  • Change Added clearer filter fields (Plugin/Event) with aligned labels and action button.
  • Change Improved top logs toolbar alignment with pagination.
  • Fix Prevented pagination page input from stretching and breaking the filters layout.
v0.2.29 2026-02-14
  • Change Edit Plugin form redesigned as a horizontal card layout with clearer spacing and alignment.
  • Change Field labels are now displayed above each input instead of side-by-side.
  • Change Added responsive grid behavior to keep the form clean on both desktop and mobile.
v0.2.28 2026-02-14
  • Change Onboarding wizard (Update policy step): aligned markup and spacing with the main Settings layout.
  • Change Policy options are now grouped in structured rows with a dedicated action row, improving visual order and readability.
v0.2.27 2026-02-14
  • Change Nerd section redesigned as a standalone terminal block (removed outer white card wrapper).
  • Change Nerd title moved inside terminal with white text and white underline.
  • Change Terminal width aligned to the full section width for cleaner visual continuity with the card below.
v0.2.26 2026-02-14
  • Change Settings layout: Token and License cards are now displayed on the same row on desktop, with automatic stack on smaller screens.
v0.2.25 2026-02-14
  • Change Data Retention: the "Save retention preference" button is no longer full width and now keeps a compact, content-sized width.
v0.2.24 2026-02-14
  • Change Settings > Update Policy card redesigned with a horizontal, balanced layout in backend.
  • Change Improved option cell proportions and spacing for cleaner alignment between sections.
  • Change Save button now sits in a dedicated action row for consistent visual rhythm.
  • Fix Policy option descriptions no longer collapse into narrow wrapping under the radio column.
  • Fix Option cards keep a consistent structure even when texts have different lengths.
v0.2.23 2026-02-14
  • New System Info: new "Configuration Repair" action to re-run slug/folder/tag-prefix consistency fixes on demand.
  • New Automatic one-shot repair after plugin update, with admin notice summary.
  • Change Add/Edit forms: clarified slug vs folder meaning; slug is now always visible and editable in multi-plugin flows.
  • Change Add/Edit save flow: supports safe slug rename (original_slug -> new slug) without losing plugin metadata.
  • Change Tag prefix inference unified server-side with explicit sources (tags, default_folder, default_slug, manual).
  • Change Multi-plugin defaults now prefer folder-v when tags are missing; single-plugin defaults remain slug-v.
  • Change Auto-fill and Magic Setup now return/save main_file and computed plugin_file to reduce sync mismatches.
  • Fix Reduced hidden-field mismatch issues where tag prefix followed slug unexpectedly in monorepo setups.
  • Fix Improved runtime alignment for stored plugin identity (slug, main_file, plugin_file) during repair.
v0.2.22 2026-02-06
  • Change Wizard assistant prompt now includes Update Policy rules (Production/Staging plus Notify/Auto) and prerelease safety guidance.
  • Change Added a glossary for Stable, Beta, RC, and Prerelease to reduce ambiguity in assistant runs.
  • Change Aligned downloaded assistant-prompt.zip content with the in-app "Copy prompt" template.
v0.2.21 2026-02-05
  • New Update Policy (Production vs Staging/Test) with notify/auto behaviour.
  • New Prerelease gate for Production with admin notices + anti-spam.
  • New Semantic version release selection (version_compare) for GitHub releases and tags.
  • New Notify-only flow with “Install now” CTA in admin.
  • New Webhook gating with policy re-check during queue processing.
v0.2.20 2026-02-02
  • New Live license validation on key input with green/red status indicator.
v0.2.19 2026-02-02
  • New License key field in Settings for updater licensing.
  • New License status check on save with status summary.
v0.2.18 2026-02-02
  • New Default license data provider for Deploy2WP (options/constants) plus dev/staging fallback behavior.
v0.2.17 2026-02-01
  • New Licensing server callback: fetch package URL via wpak_deploy2wp_license_data (with failure behavior + cache TTL filters).
v0.2.16 2026-02-01
  • New Update response filter (wpak_deploy2wp_update_response) to override package URLs or block updates.
v0.2.15 2026-01-31
  • Change Maintenance version bump.
v0.2.14 2026-01-31
  • Change Notices: force-move all admin notices (including late-inserted ones) below the header, with a CSS fallback to prevent header flashes.
v0.2.13 2026-01-31
  • Change Notices: move global admin notices below the plugin header on updater pages.
v0.2.12 2026-01-31
  • Change Actions: moved button icons after text in markup and increased icon spacing.
v0.2.11 2026-01-31
  • Change Wizard prompt step: expanded description, added official guide link, and increased top spacing for the helper text.
v0.2.10 2026-01-31
  • Change Wizard summary: count moved outside the list card, alternating row backgrounds, and removed the back-to-selection button.
v0.2.9 2026-01-31
  • Change Wizard: tighter spacing between monorepo name and fields, extra top spacing above actions, and hide Select all when everything is already selected.
v0.2.8 2026-01-31
  • Change Buttons: icons forced to the right with extra spacing from the label.
v0.2.7 2026-01-31
  • Change Wizard: suggested repo badge updated to Aurora Pulse style (premium gradient + sheen).
v0.2.6 2026-01-31
  • Change System Info: compact test cards with summary pills and detail modals to avoid layout stretching.
v0.2.5 2026-01-31
  • Change System Info: GitHub API/Update dry run descriptions, refined test labels, and export button icon.
v0.2.4 2026-01-31
  • Change Notices: removed admin_notices hook so plugin notices only render under the header.
v0.2.3 2026-01-31
  • Change Notices: all notifications now render directly below the page header.
v0.2.2 2026-01-31
  • Change Buttons with icons: icons moved to the right with increased spacing.
v0.2.1 2026-01-31
  • Change System Info: moved GitHub API, Update dry run, and Export to the top.
  • Change Danger Zone: red title divider and two-column button layout.
v0.2.0 2026-01-31
  • Change Admin UI refresh: Actions panel, System Info layout, Nerd styling, and header links updated.
v0.1.7 2026-01-31
  • Change Header links updated to About, FAQ, Support, and Creator.
v0.1.6 2026-01-31
  • Change Actions panel: white background and right-aligned icons with balanced spacing.
  • Change Buttons with icons: subtle hover motion for icon glyphs.
v0.1.5 2026-01-31
  • Change Nerd section: terminal switched to pure black, download cards dark gray with white outline buttons and green hover.
  • Change Nerd section: download buttons centered with icons and anchored to the bottom of each card.
v0.1.4 2026-01-31
  • Change System Info: cards added/reshuffled, with 3-column row for GitHub API, Update dry run, and Export.
  • Change System Info: Danger Zone highlighted with red border and red gradient buttons.
  • Change Buttons: outline borders kept thinner on system cards.
v0.1.3 2026-01-31
  • Change Buttons: removed borders from gradient primary buttons.
  • Change Buttons: outline borders reduced to 1px.
v0.1.2 2026-01-31
  • Fix Nerd downloads: added missing ZIP assets so download buttons no longer 404.
v0.1.1 2026-01-30
  • Change Wizard: step icons aligned with titles, last-step skip removed.
  • Change Wizard: monorepo list cleaned (alternating rows, inline labels, centered helper).
  • Change Wizard: repo-type suggestion highlight stronger and clearer.
  • Change Magic setup: detection waits for token + repo, Next step event fixed.
  • Change Notices: positioned under Actions instead of header.
  • Change Buttons: wizard styling applied globally.
v0.1.0 2026-01-30
  • New Premium wizard layout with stepper sidebar and activity log styling.
  • New Monorepo selection + review step with bulk import controls.
  • New Waiting status for plugins without releases/tags.
  • New Modular admin JS source structure for bundling.
  • Change Notifications render below the header on plugin pages.
  • Change GitHub “no releases/tags” logs now show as info instead of error.
v0.0.8 2026-01-28
  • Change Wizard auto-detect flow, Magic Setup button, default tag prefix, and version pickers.
  • Change Wizard now resumes the correct step after token/data retention save.
  • Change Wizard v2: token + repo on the same step, terminal-style Magic log, and manual fallback.
  • Fix Added missing PHP open tag in main plugin file to prevent “headers already sent”.
v0.0.7 2026-01-28
  • Fix Version bump for testing release pipeline.
v0.0.6 2026-01-28
  • Fix Version bump for testing release pipeline.

WpAgencyKit

WPAK-Cookies

Self-hosted GDPR consent with preset library, site scanner and declaration shortcode.

Latest v1.6.7
v1.6.7 2026-04-21
  • Fix [Updater SDK] Update-check cache lowered from 12h → 1h so new releases pushed on the update server reach this plugin within the hour
  • Fix [Updater SDK] Moved declare(strict_types=1) before the ABSPATH guard in sdk/class-wpak-updater.php — previously a php -l fatal (strict_types declaration must be the very first statement). Brings the file in line with the fix already shipped in menu-conditions 1.2.8 / deploy2wp 1.1.8
  • New [Updater SDK] Honors ?force-check=1 on wp-admin/update-core.php for immediate refresh; new wpak_updater_cache_ttl and wpak_updater_force_refresh filters
v1.6.6 2026-04-21
  • Change Declared compatibility with WordPress 6.9.4 — removes the "not tested with your current version of WordPress" warning in the plugin details modal
v1.6.5 2026-04-21
  • Change Release notes adopt the new public/internal tag format — cleaner, user-oriented entries on the public changelog
Show 29 older versions
v1.6.4 2026-04-21
  • Fix [Banner] White background on the sticky action bar in dark-mode themes
  • New [Banner] --wpak-cookies-actions-bg CSS custom property lets you theme the sticky bar from site CSS
v1.6.3 2026-04-20
  • Fix [Consent Logs] Page layout broken (KPI cards stacked, category stats wrapping, badge unstyled) after the 1.6.2 hook-prefix change
  • Fix [Admin] Logs-page "Settings" link now points to the new top-level menu (avoids an unnecessary redirect)
v1.6.2 2026-04-20
  • Fix [Admin] Broken CSS on every submenu after 1.6.0 (huge logo, missing unified header on Banner / Trackers / Settings / License / Consent Logs)
v1.6.1 2026-04-20
  • Fix [Admin] Fatal error on Dashboard and License pages after upgrading to 1.6.0
v1.6.0 2026-04-20
  • New Top-level WordPress admin menu WpAgencyKit Cookies (icon dashicons-shield-alt, position 79) with six dedicated submenus, matching the UX already used by wpak-translate and wpak-seo:
  • New Dashboard — landing page with status cards (consent mode, active trackers, last site scan, consent records last 30 days, license) and shortcut actions.
  • New Banner — merged Position, Colors, Typography, Banner Texts and Cookie Categories into a single page with four postbox sections.
  • New Trackers & Cookies — Site Scanner, Preset Library toggle + category override, Custom Trackers CRUD, Cookie Declaration shortcode reference.
  • New Consent Logs — existing table, re-parented under the new top-level entry.
  • New Settings — cookie lifetime, log retention, consent mode (opt-in/opt-out), legacy Analytics Integration, Shortcodes & API reference.
  • New License — license key + live status check (self-contained so it stays functional when the plugin is write-locked).
  • New New WPAK_Cookies_Admin_Menu orchestrator (includes/Admin/class-admin-menu.php) with the parent slug, icon/position constants and a ::url($slug) helper.
  • New New abstract WPAK_Cookies_Admin_Page base (includes/Admin/class-admin-page.php) providing the unified header, capability guard, license-aware save_options() and a consistent Save button — every subpage just implements get_*() + render_body() + optional handle_post().
  • Change Each subpage now has its own scoped nonce (wpak_cookies_banner_nonce, wpak_cookies_trackers_nonce, wpak_cookies_settings_general_nonce, wpak_cookies_license_nonce) instead of the monolithic wpak_cookies_settings_nonce. Storage in wp_options.wpak_cookies_options remains identical — no migration needed.
  • Change Plugin action link "Settings" in the Plugins list now points to admin.php?page=wpak-cookies.
  • Change Admin stylesheets (enqueue_admin_styles()) detect the new toplevel_page_wpak-cookies + wpak-cookies_page_wpak-cookies-* hook family via a centralised WPAK_Cookies_Admin_Menu::is_cookies_admin_hook() helper.
  • Change WPAK_Cookies_Logs_Admin::add_logs_page() now attaches under the top-level wpak-cookies parent instead of options-general.php; the enqueue guard accepts both the new and legacy hook names during the transition.
  • Change Exposed WPAK_Cookies::get_database() public accessor so admin pages can read consent statistics without touching the private $db property.
  • Remove Monolithic admin/settings.php (~1.300 lines) has been split into five focused view files under includes/Admin/views/ (dashboard.php, banner.php, trackers.php, settings-general.php, license.php).
  • Remove Obsolete WPAK_Cookies::admin_menu() and WPAK_Cookies::settings_page() methods replaced by the per-page classes.
  • Note Automatic redirect of the legacy URLs /wp-admin/options-general.php?page=wpak-cookies-settings and /wp-admin/options-general.php?page=wpak-cookies-logs to the new top-level slugs via wp_safe_redirect() on admin_init (capability-gated to manage_options).
  • Note Option schema in wp_options.wpak_cookies_options unchanged — every pre-1.6.0 site keeps working without any migration step.
  • Note All new strings are English-only and wrapped in __() / _n() ready for the future translation pass.
v1.5.0 2026-04-20
  • New Custom Trackers table in Settings → Trackers & Cookies: admins can register any number of proprietary trackers (name, provider, category, one or more script URL substrings) without writing PHP. Custom trackers are merged into the same wpak_cookies_script_category_map pipeline as the built-in presets.
  • New Cookie Declaration shortcode [wpak_cookies_declaration]: renders a styled, category-grouped table of the cookies set by every tracker currently enabled. Ready to drop on any Privacy/Cookie Policy page.
  • New category="analytics,marketing" attribute to restrict the rendered categories.
  • New show_empty="1" attribute to keep empty categories visible.
  • New Category headings honour the overrides saved in Banner Texts.
  • New Declarative cookie metadata on every built-in preset: cookies array with name, duration and purpose entries (wildcard names supported, e.g. _ga_*, _hjSession_*). Covers GA4, Clarity, Hotjar, Matomo, Mixpanel, Amplitude, Plausible, Meta Pixel, Google Ads, DoubleClick, LinkedIn Insight, TikTok, Pinterest, X/Twitter, Snapchat, Reddit, YouTube, reCAPTCHA and Vimeo.
  • New New filter wpak_cookies_declaration to reshape the cookie declaration array before rendering, and wpak_cookies_declaration_html to post-process the final HTML.
  • New Minimal, theme-friendly frontend CSS for .wpak-cookies-declaration (bundled inside the existing wpak-cookies.css — no extra enqueue).
  • Change WPAK_Cookies_Tracker_Presets::inject_into_script_map() now also folds custom trackers into the category→patterns map (previously only built-in presets were injected).
  • Change Built-in preset catalog entries now carry an optional cookies metadata array (backwards compatible: missing = no declaration rows contributed).
  • Note All new UI strings are English-only and wrapped in __() ready for the upcoming translation pass.
v1.4.0 2026-04-20
  • New Site Scanner in the Trackers & Cookies section: a "Scan my site" button fetches the homepage, up to two recent posts, one recent page and (if present) the WooCommerce shop page, parses their HTML server-side and matches <script src> / <iframe src> URLs plus inline script bodies against the preset catalog.
  • New Results panel lists every detected preset (with category + a note if already enabled) and every unrecognised external script source, so the admin can spot trackers the library does not cover yet.
  • New One-click "Enable all detected presets" button ticks the matching checkboxes in the Trackers table without a page reload; the admin still reviews categories and clicks Save All Settings to persist.
  • New HTTP errors during the scan (404, timeouts, TLS failures) are surfaced inline to help diagnose why a URL could not be read.
  • New Scanner results are cached for one hour in a WordPress transient (wpak_cookies_scan_results); the Rescan button force-refreshes with force=1.
  • Note The scanner intentionally only sees what renders in the initial HTML; GTM-driven tags, SPA router injections and client-set cookies are out of scope (Layer 2 goal). A manual toggle on every preset remains the primary control.
  • Note All new UI strings are English-only, wrapped in __() / _n() ready for a future translation pass.
v1.3.0 2026-04-20
  • New Trackers & Cookies section in Settings: curated library of 20 common third-party trackers (Google Analytics 4, GTM, Meta Pixel, Microsoft Clarity, Hotjar, Matomo, Mixpanel, Amplitude, Plausible, Google Ads, DoubleClick, LinkedIn Insight, TikTok Pixel, Pinterest Tag, X/Twitter Pixel, Snapchat Pixel, Reddit Pixel, YouTube Embed, Google reCAPTCHA, Vimeo Player).
  • New Per-preset enable toggle + consent-category override dropdown (Default / Necessary / Preferences / Analytics / Marketing) so admins can move any tracker into a stricter bucket without writing PHP.
  • New Privacy-policy link surfaced next to each preset to help operators complete their privacy notice.
  • New New WPAK_Cookies_Tracker_Presets class (includes/class-tracker-presets.php) exposing get_catalog(), sanitize_posted_selection() and an inject_into_script_map() callback hooked at priority 20 on wpak_cookies_script_category_map.
  • New New filter wpak_cookies_tracker_presets_catalog for themes/plugins to extend or override the built-in preset catalog.
  • Change Banner Texts section now links forward to the new Trackers & Cookies section before reaching Appearance, keeping the guided walkthrough coherent.
  • Note All new UI strings are English-only for now, wrapped in __() ready for a future translation pass (Italian, French, German, Portuguese, Spanish).
  • Note Enabled presets are stored under wpak_cookies_options.trackers.enabled[<slug>] with shape { enabled: bool, category: '' | 'necessary' | 'preferences' | 'analytics' | 'marketing' }. Empty category means "use the preset default".
  • Note The server-side script blocker is reused as-is: enabled presets merely feed additional src substrings into the existing get_script_category_map() pipeline.
v1.2.1 2026-04-20
  • Fix Frontend banner: removed the hardcoded white background (and paired box-shadow) from the sticky .wpak-cookies-banner-actions bar in wpak-cookies-debug.css. The actions bar now inherits its backdrop from the banner container so dark/custom-themed banners no longer show an unexpected white band under the buttons. Sticky positioning and safe-area padding are preserved.
v1.2.0 2026-04-20
  • New New "Banner Texts" section on the Settings page: every copy rendered in the frontend banner (title, subtitle, message, accept/reject/save buttons, required badge, close label, save success) is now editable directly from the admin UI.
  • New Per-category editor (title + description) for each cookie category, including unknown custom categories stored in options.
  • New Automatic fallback: leaving any text field empty keeps the existing translated default shipped with the plugin.
  • Change Banner template now resolves every label via $options['texts'][...] with a translated __() fallback, replacing the previous hardcoded strings.
  • Change General Settings introductory notice refreshed to point users to the new Banner Texts section.
  • Security Banner copy fields saved with sanitize_text_field(); long banner message sanitized with wp_kses_post(); category descriptions sanitized with sanitize_textarea_field().
v1.1.0 2026-04-20
  • New Unified WpAgencyKit header design on Settings and Consent Logs pages (logo + plugin name + page title with icon + subtitle + brand/links). Logo locked at 72×72 with object-fit: contain for cross-plugin visual consistency.
v1.0.5 2026-04-20
  • Fix Admin header logo rendered too large on some environments; enforced 120px width via inline style on the <img> tag (belt-and-suspenders with the existing .ct-header-logo CSS rule).
v1.0.4 2026-04-20
  • New Official plugin logo shown in admin page headers (Settings, Logs) next to the page title, matching the Deploy2WP style.
v1.0.3 2026-04-18
  • Fix PHPCS compliance: moved translators: comment directly above __() in logs template
  • Fix PHPCS compliance: added inline phpcs:ignore on SQL string lines in database class
  • Fix PHPCS compliance: added phpcs:ignore for $wpdb->insert() direct query
  • Fix readme.txt: updated Stable tag to match plugin version
v1.0.2 2026-04-18
  • Fix PHPCS compliance: replaced _e() with esc_html_e() in admin templates
  • Fix PHPCS compliance: wrapped number_format_i18n(), paginate_links(), admin_url(), home_url() with escaping functions
  • Fix PHPCS compliance: date()gmdate() in database class
  • Fix PHPCS compliance: added sanitize_text_field() to $_COOKIE reads in main plugin and banner template
  • Fix PHPCS compliance: added wp_unslash() to $_SERVER['HTTP_ACCEPT_LANGUAGE'] in languages class
  • Fix PHPCS compliance: added wp_unslash() + sanitize_text_field() to nonce in AJAX handler
  • Fix PHPCS compliance: added ABSPATH guard to sdk/class-wpak-updater.php
  • Fix PHPCS compliance: updated Tested up to: 6.9 in readme.txt
v1.0.1 2026-04-17
  • Note First official stable release of the 1.0 line, consolidating the beta cycle.
v0.0.14 2026-02-25
  • Change Aligned admin CSS to Deploy2WP Material Design 5 design system: expanded design tokens, no shadows, pill buttons with
  • Change Added Deploy2WP-style page header with logo, brand, and navigation links to settings and logs pages.
v0.0.13 2026-02-21
  • New New explicit runtime API wpak_cookies_register_trigger() for themes/plugins/builders that render cookie triggers
  • Change Frontend UI loading now recognizes explicitly registered runtime triggers in addition to shortcode scanning and
v0.0.12 2026-02-21
  • Change Frontend slimming: load banner UI assets/markup only when required (first consent, partial consent, or explicit
  • Change Added frontend control filters:
  • Change wpak_cookies_force_frontend_assets
  • Change wpak_cookies_has_external_trigger
  • Change Centralized cookie preferences/category helpers in wpak-cookies.php and reused them from analytics and banner
  • Change Unified script category mapping with one PHP source of truth (wpak_cookies_script_category_map) and localized that
  • Change Split admin CSS monolith into page-scoped files:
  • Change assets/css/admin/wpak-cookies-admin-base.css
  • Change assets/css/admin/wpak-cookies-admin-settings.css
  • Change assets/css/admin/wpak-cookies-admin-logs.css
  • Change Added transient cache (5 minutes) for aggregated consent statistics and automatic invalidation on successful consent
v0.0.11 2026-02-18
  • Change Refactored assets/js/wpak-cookies.js to vanilla JS (no jQuery runtime dependency) while preserving cookie handling,
  • Change Cleaned assets/css/wpak-cookies.css by removing duplicated/contradictory blocks and keeping selectors currently used
  • Change Updated frontend script enqueue to remove jquery dependency from wpak-cookies-script.
  • Remove Deleted unused legacy assets:
  • Remove assets/css/consolidated/
  • Remove assets/css/admin/wpak-cookies-admin.css
  • Remove assets/images/flags/
v0.0.10 2026-02-17
  • Change Loaded wpak-cookies-blocker.js conditionally using a conservative policy (only when consent is missing or partial).
  • Change Reduced frontend localized data to essential fields while keeping backward-compatible options.cookie_expiration.
  • Change Switched admin runtime styles to a single physical CSS asset and kept fallback handle compatibility.
  • Change Optimized consent dashboard statistics with a single aggregated SQL query.
  • Remove Deleted unused assets/js/wpak-cookies-footer-fix.js.
  • Remove Deleted unused empty admin templates admin/settings-fixed.php and admin/settings-modern.php.
  • Remove Removed unused darken_color() helper.
v0.0.9 2026-02-11
  • Fix Hardened pre-consent blocking for analytics/marketing scripts, including inert inline scripts.
  • Fix Prevented false-positive consent save feedback when log persistence fails.
  • Fix Made cookie settings panel re-openable after initial acceptance.
  • Fix Improved consent categories sanitization in AJAX endpoint.
  • Fix Improved IP anonymization reliability via WordPress privacy anonymizer fallback.
  • Fix Fixed logs export flow by aligning admin UI download behavior with streamed backend responses.
  • Change Removed per-request time() asset cache busting and restored version-based browser caching.
  • Change Stopped loading Google Fonts until preferences consent is granted.
  • Change Loaded debug CSS only when enabled via WP_DEBUG or wpak_cookies_load_debug_css filter.
  • Change Avoided resetting existing plugin options on activation by merging missing defaults only.
  • Change Cleaned up dead admin export helper code and removed unused admin JS asset.
v0.0.8 2026-02-02
  • New Live license validation on key input with green/red status indicator.
v0.0.7 2026-02-02
  • New License key field in settings to store the bundle key.
  • New License status check on save with status summary.
v0.0.6 2026-02-02
  • New License data provider for Deploy2WP (global licensing server support).
v0.0.5 2026-02-01
  • Change Aligned Cookies admin UI palette and buttons to the Deploy2WP unified style.
v0.0.4 2026-01-31
  • Change Maintenance version bump.
v0.0.3 2026-01-31
  • Change Admin notices now relocate below the page header on Cookies settings/logs pages.
v0.0.2 2026-01-28
  • Fix Version bump for testing release pipeline.

WpAgencyKit

WPAK-Menu-Conditions

Conditional menus & modals by role, device, or login state.

Latest v1.4.0
v1.4.0 2026-04-22
  • Change [i18n] Full linguistic audit — all admin-facing source strings rewritten in English. Previous releases shipped with Italian as the native language of the source (msgid), so a site running WordPress in English had no translation file to fall back to and displayed the raw Italian labels. This caused the common "mixed Italian/English backend" report where the tab Modal Templates (already English) contained Italian labels like Larghezza, Altezza, Ombra, Chiudi. The source is now canonical English and follows the standard WordPress convention for distributable plugins
  • Change [i18n] Italian users preserved — shipped languages/wpak-menu-conditions-it_IT.po/.mo maps the new English msgids back to the original Italian labels, so sites running WordPress in it_IT render exactly as before. Sites on any other locale now see English instead of Italian
  • Change [i18n] Regenerated languages/wpak-menu-conditions.pot from the canonical English source (279 unique strings across 9 PHP files) so future community translations start from the correct base
  • Fix [JS] Replaced the last three hardcoded Italian strings in assets/js/modal.js (Contenuto non disponibile., Modal live non disponibile., ✕ Chiudi) with English equivalents (Content unavailable., Live modal unavailable., ✕ Close). These were not wrapped in wp.i18n.__() and therefore unreachable via .po files — a translation file alone could not have fixed them
v1.3.9 2026-04-21
  • Change [Admin] Modal Template edit page restyles every metabox header (Configurazione Template, Anteprima Live, Publish, Slug) using the same .postbox / .postbox-header card treatment shipped in wpak-cookies-admin-base.css — clean rounded card with surface-variant header bar, no double rules, no raw WP outline. Brings the CPT screen in line with the rest of the WpAgencyKit suite
  • Change [Admin] Publish + Slug now sit side-by-side at the bottom of the page in a 2-column CSS grid layout. Configurazione Template and Anteprima Live span full width above. Collapses to single-column on screens narrower than 960px
v1.3.8 2026-04-21
  • Change [Menus] The "Finestra modale" option in the Comportamento Apertura Link dropdown is now hidden for Custom Link menu items (the ones where the URL is typed in by hand). Custom links almost always point to external domains, and external sites block iframe embedding via Content-Security-Policy: frame-ancestors or X-Frame-Options — the modal cannot physically open them, no matter what the plugin does. Hiding the option upfront prevents the silent same-tab fallback that confused admins
  • Note [Menus] A short description appears under the dropdown for Custom Link items explaining the limitation and suggesting Page/Post items instead (which are always same-origin and modal-able)
  • Fix [Menus] Backend save guard — if a stale POST or third-party tool tries to save behavior=modal against a Custom Link item, the value is silently downgraded to same (matches what the UI now allows)
  • Fix [Frontend] Runtime safety — legacy DB rows from pre-1.3.8 installs (custom item + behavior=modal) are downgraded to same at the nav_menu_link_attributes filter, so the modal JS no longer enters its cross-origin fallback for these items. Existing data is preserved untouched in the DB; only the rendering changes
Show 28 older versions
v1.3.7 2026-04-21
  • Change [Admin] Modal Template CPT pages (list, new, edit) are now visually aligned with the shared WpAgencyKit design system used by wpak-cookies / wpak-seo / wpak-deploy2wp Settings pages. The 1.3.5 "usability pass" had introduced several visual experiments that made the edit screen harder to read; this release reverts those and replaces them with the canonical gup-card pattern
  • Fix [Admin] Removed gradient background banner on the CPT header — the .wpak-uheader now renders identically to the Settings page header (no tint, no rounded panel, no hover effects)
  • Fix [Admin] Removed the accent bar before every h4 section title and the extra bar under the active tab — they duplicated existing state cues and added visual noise
  • Fix [Admin] Removed the diagonal stripe background on the live preview metabox — now a solid surface variant, same treatment as every other preview area across the suite
  • Fix [Admin] Removed sticky tab nav (was aggressive on short viewports), dashed dividers between fields, uppercase field labels, hover lift / shadow on section cards
  • Change [Admin] Replaced the custom intro banner (.wpak-tpl-intro) with a native .notice.notice-info inline — inherits admin styling automatically and stays visually consistent with the rest of wp-admin
v1.3.6 2026-04-21
  • Fix [Modal] Cross-origin menu links (e.g. pointing at a subdomain like support.wpagencykit.org) opened in a new tab instead of the same tab. The handler fell through with return true — without preventDefault() — so the browser ran its default navigation AND any theme-level click handlers (Themify, block themes) that rewrite external links to target="_blank". Now the handler explicitly calls preventDefault() + stopPropagation() and navigates the current tab via window.location.href, which is the expected fallback when a URL cannot be embedded (most remote sites ship CSP: frame-ancestors 'self' or X-Frame-Options: SAMEORIGIN blocking the iframe — the plugin cannot override those server-side headers). A console.warn() line explains the decision for admins looking in DevTools
  • Fix [Modal] Brief full-screen modal flash visible during page refresh on the pages that host a modal trigger. The prerendered #wpak-modal-overlay used only CSS to stay hidden (visibility:hidden + opacity:0), so before the stylesheet finished loading the fixed-position div painted. Now ships with inline style="display:none" that openModal() clears the first time a modal is opened — no more FOUC
v1.3.5 2026-04-21
  • Fix [Modal] Menu items configured as "Open in modal window" silently opened in a new tab on themes whose footer/header <ul> uses classes outside the default nav, .menu, .wp-block-navigation scope (notably Themify's .footer-nav). The click handler's isManagedMenuLink() check rejected these links and fell through to the browser's default navigation, which combined with cross-domain URLs ended up in a new tab
  • Fix [Modal] MENU_SCOPE_SELECTOR broadened to cover .nav, .menus, .primary-menu, .secondary-menu, .header-nav, .footer-nav, .site-navigation, .wpak-menu-scope — plus any link explicitly marked server-side with data-wpak-modal="true" or wpak-modal-trigger is now always treated as managed, regardless of parent class
  • New [Admin] Unified .wpak-uheader brand header on every Modal Templates CPT screen (list, new, edit) — same logo + eyebrow + context-aware title + subtitle pattern already used by Settings and by sibling plugins (Translate, SEO, Cookies)
  • New [Admin] Modal Template edit page usability pass: sticky tab nav (stays visible while scrolling long forms), clearer active-tab indicator with accent bar, section cards with colored icon accents + hover lift, refined field-group hierarchy (uppercase labels, dashed divider between fields, italic descriptions), accent-striped preview metabox so it reads as the "result" area, and a new intro banner above the tabs explaining how templates are reused across menu items
v1.3.4 2026-04-21
  • Fix [Updater SDK] Update-check cache lowered from 12h → 1h so new releases pushed on the update server reach this plugin within the hour
  • New [Updater SDK] Honors ?force-check=1 on wp-admin/update-core.php for immediate refresh; new wpak_updater_cache_ttl and wpak_updater_force_refresh filters
v1.3.3 2026-04-21
  • Change Declared compatibility with WordPress 6.9.4 — removes the "not tested with your current version of WordPress" warning in the plugin details modal
v1.3.2 2026-04-21
  • Change Release notes adopt the new public/internal tag format — cleaner, user-oriented entries on the public changelog
v1.3.1 2026-04-20
  • Change [Admin] Unified WpAgencyKit header design adopted (logo + plugin name + page title with icon + subtitle + brand links)
v1.3.0 2026-04-20
  • Fix [Admin] Plugin header logo rendered too large on some environments
v1.2.9 2026-04-20
  • New [Admin] Official plugin logo in the settings page header next to the page title
v1.2.8 2026-04-18
  • Fix [Critical] PHP fatal error introduced in 1.2.7 (strict_types declaration must be the very first statement)
v1.2.6 2026-04-18
  • Fix PHPCS: suppress false-positive MissingUnslash/InputNotSanitized on array_map('wp_unslash', ...) pattern for visibility roles $_POST field.
v1.2.5 2026-04-18
  • Fix PHPCS/Plugin Check compliance: added wp_unslash() to all $_POST reads before sanitization; replaced wp_die(__()) with wp_die(esc_html__()); added missing i18n text domain to __('Publish'); added ABSPATH guard to SDK updater; added phpcs:ignore suppressions to SDK license gate/client translate() methods and direct DB queries with proper justification comments.
  • Fix readme.txt: updated Tested up to to 6.9, aligned Requires at least to 5.0, translated all content to English.
v1.2.4 2026-04-17
  • Note Official stable release of the 1.2.4 line, consolidating the beta cycle.
v1.2.3 2026-02-25
  • Change Bumping version to trigger release process.
v1.2.2 2026-02-25### Changed
  • Note Aligned admin CSS to Deploy2WP Material Design 5 design system: expanded design tokens (spacing, typography, radius,
  • Note Added Deploy2WP-style page header with logo, brand, and navigation links to license settings page.
v1.2.1 2026-02-21
  • Note Raffinato asset gating frontend: assets/js/modal.js e assets/css/frontend.css vengono enqueued solo con trigger
  • Note Introdotta sorgente unica defaults modal (includes/class-modal-defaults.php) e collegata a template defaults PHP,
  • Note Migliorata robustezza nested modal: i link modal nei menu header/footer della modal effettuano fallback live
  • Note Aggiunto watchdog runtime live: se iframe non carica entro timeout o risulta bloccato (about:blank), fallback
  • Note Ridotta invalidazione cache aggressiva: mantenuta invalidazione globale solo per eventi strutturali (menu/template),
  • Note Estesa invalidazione selettiva a termini tassonomici collegati a URL modal, con refresh discovery solo quando
  • Note Ridotte letture duplicate meta menu item tramite cache per-request condivisa tra frontend filters e custom walker.
v1.2.0 2026-02-18
  • Note Rimossa la dipendenza operativa legacy da wpakModal.newTabItems lato runtime JS.
  • Note Consolidata invalidazione cache discovery + content cache in un unico percorso (WPAK_Modal_Templates::clear_cache).
  • Note Estesi gli hook di invalidazione cache agli eventi di lifecycle contenuti (save_post, deleted_post,
  • Note Puliti rami legacy residui nel salvataggio template modal per usare solo invalidazione centralizzata.
v1.1.0 2026-02-18
  • Note La deduplica prerender ora usa esclusivamente la URL normalizzata come chiave.
  • Note URL modal duplicate su piu voci menu vengono prerenderizzate una sola volta.
  • Note Aggiornata la cache discovery pagine modal alla chiave wpak_modal_pages_v2.
  • Note Introdotta cache contenuto prerender per URL (transient dedicati per contenuto estratto/renderizzato).
  • Note Nuovo filtro wpak_modal_content_cache_ttl con default 900 secondi.
  • Note Nuovo filtro wpak_modal_enable_internal_http_fallback con default false.
  • Note Risoluzione contenuti modal ora preferisce sempre page_id / url_to_postid.
  • Note Fallback HTTP interno eseguito solo se esplicitamente abilitato via filtro.
  • Note In assenza di fallback HTTP abilitato, il contenuto non risolto viene saltato senza fetch interno.
v1.0.0 2026-02-18
  • Note Introdotto includes/class-modal-config-resolver.php come resolver unico configurazione modal.
  • Note Eliminata la duplicazione della logica get_modal_config tra frontend e prerender.
  • Note Aggiunto registry runtime modal localizzato in JS (wpakModal.registry + wpakModal.modalIndex) con newTabItems
  • Note Ridotti gli attributi modal sui link al set minimo: data-wpak-modal, data-wpak-link-behavior, data-modal-key,
  • Note Rimosso il trasferimento massivo di data-modal-* direttamente sui link pagina.
  • Note Conservato fallback robusto no-JS: href reale invariato per navigazione normale.
  • Note Refactor di assets/js/modal.js per lavorare solo sui container menu (nav, .menu, .wp-block-navigation,
  • Note Rimossa la dipendenza primaria dal vecchio scan globale di tutti i link pagina.
  • Note Binding click modal limitato a trigger espliciti in scope menu, con guard e fallback navigazione se mancano
v0.0.10 2026-02-17
  • Note Frontend assets modal (assets/js/modal.js e assets/css/frontend.css) ora vengono caricati solo quando nella pagina
  • Note Introdotto filtro wpak_menu_should_enqueue_frontend_assets per override del comportamento di auto-detection.
  • Note Footer modal markup e prerender vengono saltati nelle pagine senza trigger modal effettivi.
  • Note Introdotta sorgente unica per attributi data-modal-* tramite helper dedicato riusato da link e prerender.
  • Note Eliminata duplicazione della configurazione modal tra attributi link e attributi del prerender.
  • Note Aggiunta cache persistente (object cache + transient) per discovery delle pagine modal con invalidazione su update
  • Note modal.js usa log debug solo con ?wpak_modal_debug=1 (nessun console.log rumoroso in produzione).
  • Note Aggiunto early return quando non esistono trigger modal effettivi nella pagina.
  • Note MutationObserver ora parte solo quando necessario, riducendo overhead.
  • Note Ridotte riapplicazioni ridondanti di applyMenuBehaviors con scheduling dedicato.
  • Note Aggiunto marcatore comportamento link (data-wpak-link-behavior) per evitare conversioni accidentali dei link
v0.0.9 2026-02-11
  • Note I link modal mantengono ora l'href reale per garantire fallback sicuro alla navigazione normale.
  • Note Consolidata la gestione link same/new/modal per ridurre riscritture duplicate lato frontend.
  • Note Ridotto l'impatto del MutationObserver globale, con riapplicazione comportamenti solo quando serve.
  • Note Introdotti nuovi attributi link modal: data-modal-runtime-mode e data-modal-fallback-url.
  • Note Aggiunta modalità contenuto runtime_mode con supporto prerender (default) e live (iframe).
  • Note Aggiunti i nuovi meta _wpak_tpl_runtime_mode (template) e _wpak_modal_runtime_mode (override menu item).
  • Note In modalità live viene emesso l'evento frontend wpak:modal:content:loaded con payload { url, mode }.
  • Note Il prerender ora salta correttamente i contenuti impostati su live.
  • Note Rimosso fallback HTTP debole con sslverify => false e riuso della validazione URL interna.
  • Note Allineata l'anteprima admin alla struttura reale della modal (footer dedicato e layout header aggiornato).
  • Note Aggiunte validazioni di salvataggio per i campi responsive e runtime per evitare configurazioni incoerenti.
  • Note Pulizia CSS frontend: rimosse regole mobile/drawer duplicate in conflitto con breakpoint dinamico.
  • Note Corretto selettore typo su menu-only e aggiunto stile dedicato per contenuto live iframe.
v0.0.8 2026-02-02
  • New Live license validation on key input with green/red status indicator.
v0.0.7 2026-02-02
  • New License settings page with license key input.
  • New License status check on save with status summary.
v0.0.6 2026-02-02
  • New License data provider for Deploy2WP (global licensing server support).
v0.0.5 2026-02-01
  • Change Aligned admin UI colors with the unified Updater style tokens.
v0.0.4 2026-01-31
  • Change Maintenance version bump.
v0.0.3 2026-01-31
  • Change Admin notices now relocate below the page header on Menu Conditions screens.
v0.0.2 2026-01-28
  • Fix Version bump for testing release pipeline.

WpAgencyKit

WPAK-SEO

Full SEO toolkit — AI meta, content audit, 404 monitor, link graph.

Latest v1.2.0
v1.2.0 2026-04-22
  • Change [i18n] Full linguistic audit — rewrote all admin-facing Italian source strings in English. Previous releases shipped with mixed Italian/English source (msgid) across metabox, SEO Opportunities, Content Audit Pro, Onboarding Wizard, Internal Link Graph and 404 Monitor. Sites running WordPress in English had no translation file to fall back to and displayed the raw Italian labels — the source is now canonical English and follows the standard WordPress convention for distributable plugins
  • Change [i18n] Italian users preserved — a shipped wpak-seo-it_IT.po/.mo maps the 79 rewritten English msgids back to their original Italian labels, so sites running WordPress in it_IT render exactly as before
  • New [i18n] First wpak-seo.pot generated from the canonical English source (636 unique strings) — enables community translations for other locales
  • Fix [JS] Replaced the 5 hardcoded Italian strings in assets/js/admin-seo.js (Ottimo, Ottimale, Quasi al limite…, Critico, Suggerimenti dal grafo link interno…) with English equivalents so JS-rendered UI is consistent with the PHP labels
  • Note Scope: No behaviour, no markup classes, no meta keys, no option names, no REST routes, no stored data. Rolling back to 1.1.4 leaves the DB schema identical — only visible labels change
v1.1.4 2026-04-21
  • Fix [Updater SDK] Update-check cache lowered from 12h → 1h so new releases pushed on the update server reach this plugin within the hour
  • New [Updater SDK] Honors ?force-check=1 on wp-admin/update-core.php for immediate refresh; new wpak_updater_cache_ttl and wpak_updater_force_refresh filters
v1.1.3 2026-04-21
  • Change Declared compatibility with WordPress 6.9.4 — removes the "not tested with your current version of WordPress" warning in the plugin details modal
Show 33 older versions
v1.1.2 2026-04-21
  • Fix [Social sharing] Link previews (Telegram, Facebook, X, LinkedIn, Slack) no longer show raw shortcode text in the description — [wpak_wiki], [wpak_changelog] and other shortcodes are now stripped before the auto-excerpt is built
  • Fix [Social sharing] Gutenberg block markers (<!-- wp:paragraph -->) also stripped from auto-generated OG/Twitter/Schema descriptions
v1.1.1 2026-04-21
  • Change Release notes adopt the new public/internal tag format — cleaner, user-oriented entries on the public changelog
v1.1.0 2026-04-20
  • Change [Admin] Unified WpAgencyKit header design adopted across every SEO admin page (logo + plugin name + page title with icon + subtitle + brand links)
v1.0.7 2026-04-20
  • Fix [Admin] Header logo rendered at natural size (~250px) on some pages — corrected CSS rule
v1.0.6 2026-04-20
  • New [Admin] Official plugin logo in every SEO admin page header
v1.0.5 2026-04-18
  • Fix [Readme] Stable tag synced with plugin header version
v1.0.4 2026-04-18
  • Fix [Critical] Fatal error — declare(strict_types=1) must precede the ABSPATH guard
v1.0.3 2026-04-18
  • Fix Plugin Check compliance: synced readme.txt headers (Requires at least: 6.0, Tested up to: 6.9).
  • Fix Added missing languages/ directory; removed deprecated load_plugin_textdomain() call.
  • Fix Added /* translators: */ comments to all i18n strings with printf placeholders.
  • Fix Upgraded unordered %s/%s placeholders to %1$s/%2$s in admin notice strings and metabox.
  • Fix Added ABSPATH guard to sdk/class-wpak-updater.php.
  • Fix Replaced class-constant nonce check with literal strings for PHPCS-traceable nonce verification.
  • Fix Applied wp_unslash() and sanitize_*() to all $_POST, $_GET, $_SERVER, and $_FILES accesses.
  • Fix Replaced wp_redirect() with wp_safe_redirect() plus allowed_redirect_hosts filter in redirect manager.
  • Fix Added object cache (wp_cache_get/set) to sitemap get_post_count() and get_last_modified() queries.
  • Fix Converted all heredoc prompt strings in class-openai.php to implode() arrays.
  • Fix Prefixed global variables in uninstall.php with wpak_seo_ prefix.
  • Fix Added phpcs:ignore annotations for justified direct DB queries, pre-escaped output, and private-helper nonce patterns.
v1.0.2 2026-04-17
  • Note Official stable release of the 1.0 line.
v1.0.1 2026-04-17
  • Note First official stable release of the 1.0 line, consolidating the beta cycle (licensing lifecycle hardening, masked license key input, deduplicated admin notices, refreshed license state caching, local in-process licensing fallback, and assorted SEO settings polish).
v0.8.3 2026-02-25
  • Change Aligned admin CSS to Deploy2WP Material Design 5 design system: expanded design tokens (spacing, typography, radius),
v0.8.2 2026-02-19
  • Security Hardened OpenAI AJAX endpoints (generate, analyze, suggest links, estimate) with per-post capability checks
  • Security Hardened GSC AJAX endpoint (wpak_seo_get_gsc_data) with per-post capability check (edit_post) on the requested
  • Security Sitemap ping now enforces secure TLS verification with filterable override (wpak_seo_sitemap_ping_sslverify, default
  • Security Hardened settings/wizard secret handling: OpenAI key and GSC JSON are not rendered in clear, empty input keeps
  • Note Internal link graph suggestions no longer trigger synchronous snapshot rebuild from editor/runtime calls when snapshot
  • Note Added snapshot TTL guard (wpak_seo_internal_link_graph_snapshot_ttl, default 21600) and lock-based async refresh
  • Note Added shared redirect normalization utility (WPAK_SEO_Redirect_Utils) and reused it in both Technical Redirects and
  • Note Kept redirect option compatibility (wpak_seo_redirects) with canonical + legacy key handling unchanged.
v0.8.1 2026-02-18
  • Change Export/import settings now exclude sensitive credentials (openai_key, gsc_json) and include explicit metadata flag
  • Change Import flow remains backward-compatible with legacy export files, while ignoring legacy credential fields instead of
  • Change Settings UI copy for Export/Import now clearly states that credentials are not exported and must be re-entered
  • Change Default robots.txt template is less aggressive: removed default blocks for /wp-content/plugins/ and global
  • Security Hardened GSC error rendering in admin JS by switching to safe text-based output for error messages.
  • Fix Uninstall cleanup now also removes: wpak_seo_license_key, wpak_seo_license_state, wpak_seo_gsc_mock_mode,
v0.8.0 2026-02-17
  • New Premium onboarding wizard Setup Guidato SEO with 6 deterministic steps:
  • New License
  • New OpenAI
  • New GSC + Mock
  • New Default SEO
  • New Technical checklist
  • New Complete
  • New New option wpak_seo_onboarding_done for one-time auto-open with manual reopen from action bar.
  • New New secure AJAX endpoints:
  • New wp_ajax_wpak_seo_wizard_save_step
  • New wp_ajax_wpak_seo_wizard_complete
  • Change Added shared admin UI helper (WPAK_SEO_Admin_UI) and applied premium shell/header/actions/notices across SEO admin
  • Change Centralized admin interactions in assets/js/admin-seo.js (wizard, redirects, robots reset, 404 actions, audit quick
  • Change Centralized admin design system in assets/css/admin.css with reusable gup-* components and page-specific SEO
  • Change Migrated settings, sitemap, and internal link graph pages to shared UI and removed inline CSS/JS.
  • Change Fixed admin assets loading across all SEO submenu hooks (wpagencykit-seo_page_* and legacy hook prefix).
  • Change Wizard auto-open is now limited to the Settings page, with manual open available from action bars in all SEO pages.
  • Security Wizard AJAX flow enforces nonce + capability checks (manage_options) and server-side sanitization per step.
v0.7.0 2026-02-17
  • Change Premium design system rollout for SEO backend pages with:
  • Change shared header/action bar/cards/table wrappers
  • Change notice relocation below page header
  • Change loading states for form submits/actions
  • Change Removal of inline CSS/JS from migrated SEO admin pages in favor of centralized assets.
v0.6.0 2026-02-17
  • New Premium feature Internal Link Graph + Orphan Finder:
  • New graph snapshot option wpak_seo_internal_link_graph
  • New admin page Internal Link Graph under WpAgencyKit SEO
  • New orphan pages (0 inbound), low-inbound pages, and source -> target suggestions with priority
  • New WP-CLI commands:
  • New wp wpak-seo links rebuild
  • New wp wpak-seo links report --format=json
  • New Metabox integration with top deterministic internal-link suggestions from graph for current content.
  • Change Internal link suggestions endpoint now prioritizes graph-based deterministic suggestions, with AI fallback only when
v0.5.0 2026-02-17
  • New Premium preview block in metabox with SERP Desktop + Mobile cards driven by live field values.
  • New Pixel width calculation (real text measurement) for:
  • New SEO title
  • New Meta description
  • New Visual status badges for each field: Ottimale / Warning / Critico.
  • New Dedicated social preview cards:
  • New OpenGraph card
  • New Twitter card
  • Change Social preview now applies deterministic fallback chain in real time (title, description, image) matching frontend
  • Change Preview updates instantly while typing and while selecting images from media library.
  • Change Frontend SEO meta/social output hooks are now reliably loaded together with metabox logic.
v0.4.0 2026-02-17
  • New New premium metabox tab Schema Pro with visual builder (no code required) for:
  • New FAQPage
  • New HowTo
  • New Product
  • New Event
  • New LocalBusiness
  • New Schema Pro configuration is stored in one JSON meta field: _wpak_seo_schema_pro.
  • New Server-side validation for required fields with clear editor feedback messages.
  • Change Frontend schema output now prioritizes valid Schema Pro JSON-LD when present.
  • Change Base schema generation is kept as fallback when Schema Pro is missing or invalid.
  • Change Duplicate/conflicting primary schema output is prevented when Schema Pro is active.
v0.3.0 2026-02-17
  • New New premium admin page SEO Opportunities under WpAgencyKit SEO with URL-level opportunities list, metrics,
  • New Rule-based priority engine (A/B/C/D) using clicks, impressions, CTR, and average position.
  • New Meta quick actions: Generate variants title/description and Apply variant.
  • New Deterministic local fallback templates for variants when OpenAI API key is missing (or AI call fails).
  • New Dedicated opportunities cache via transient and Refresh Opportunities action.
  • Change Google Search Console provider now supports deterministic MOCK MODE with option wpak_seo_gsc_mock_mode and
  • Change GSC URL/site data endpoints now work in mock mode without real credentials.
  • Security All SEO Opportunities AJAX endpoints enforce nonce + capability checks (manage_options and edit_post where content
v0.2.0 2026-02-17
  • New New admin page Content Audit Pro under WpAgencyKit SEO with centralized audit table for post/page.
  • New Deterministic SEO scoring (0-100) with statuses: Good, OK, Needs work.
  • New Action Plan column with 2-3 concrete prioritized actions (Alta/Media/Bassa).
  • New Filters for post type, score status, and "solo contenuti con problemi".
  • New AJAX Quick Fix action to fill missing SEO title/meta description without overwriting existing values.
  • Security Quick Fix AJAX endpoint includes strict nonce validation and capability checks (manage_options + edit_post).
v0.1.3 2026-02-17
  • Fix 404 Monitor now stores redirects with canonical keys (id, from, to, type, active, created) so they are
  • Fix Redirect reader now normalizes previous-format records in-memory (source/destination/enabled) to canonical format
  • Fix Technical redirect module is now initialized on frontend too, so redirects are executed during frontend requests.
v0.1.2 2026-02-11
  • New GDPR communication templates with placeholders for:
  • New public privacy policy notice
  • New internal editorial team notice
  • New client contract clause
  • New breach communication checklist
  • New Official support links (GDPR, EDPB, Garante Privacy, OpenAI DPA/sub-processors/data controls) in plugin readme.
v0.1.1 2026-02-10
  • Change Documentation expanded with AI Premium setup guide, precision mode explanation, FAQ, and glossary.
v0.1.0 2026-02-10
  • New AI Premium global profile settings (precision mode, output count, cache TTL, locale adaptation,
  • New Post-level “AI Premium Controls” override panel inside SEO metabox.
  • New Draft-aware AI generation: requests now include live editor title/content (Gutenberg + Classic fallback).
  • New New AI usage estimate endpoint with tokens/cost preview in metabox.
  • New Regenerate buttons for title/description generation with force_refresh.
  • Change AI generation now uses precision modes (fast, balanced, deep) with context sampling in deep mode.
  • Change Cache strategy upgraded to dynamic TTL from settings (default 20 minutes) and context-aware cache keys.
  • Change AI prompts now include editorial profile, locale adaptation hints, and anti-repetition seed.
  • Change Suggestion output is now premium-focused and capped to max 3 variants with dedupe + one retry top-up.
  • Change AI AJAX responses now include metadata (cache_hit, precision_mode, content_words_used, token_estimate,
v0.0.10 2026-02-02
  • New Live license validation on key input with green/red status indicator.
v0.0.9 2026-02-02
  • New License key field in settings to store the bundle key.
  • New License status check on save with status summary.
v0.0.8 2026-02-02
  • New License data provider for Deploy2WP (global licensing server support).
v0.0.7 2026-02-01
  • Change Privacy & Data copy now explicitly mentions AI/OpenAI usage for SEO suggestions.
v0.0.6 2026-02-01
  • New Privacy & Data section with data retention toggle.
  • New Uninstall cleanup when data retention is disabled.
v0.0.5 2026-02-01
  • Change Aligned admin UI colors with the unified Updater style tokens.
  • Change Updated inline admin styles for settings, technical, sitemap, GSC, and 404 pages to use shared tokens.
v0.0.4 2026-01-31
  • Change Maintenance version bump.
v0.0.3 2026-01-31
  • Change Admin notices now relocate below the page header on SEO admin pages.
v0.0.2 2026-01-28
  • Fix Version bump for testing release pipeline.

WpAgencyKit

WPAK-Translate

Unlimited AI languages with Batch API and WooCommerce support.

Latest v1.2.1
v1.2.1 2026-04-22
  • Fix [Compat] Prevented a site-wide fatal error in WPAKTranslate\Router::filterHomeUrl() when third-party callers forward a string as the fourth home_url hook argument
v1.2.0 2026-04-22
  • New [i18n] English-first msgid convention — 3 Italian hardcoded JS toasts (Nessuna modifica da salvare, Salvato con avvisi…, Salvato con successo) moved to wpakTranslateAdmin.strings and wired through __() in includes/Plugin.php
  • New [i18n] Plugin now ships .po/.mo for 6 locales: it_IT, de_DE, es_ES, fr_FR, pt_BR, pt_PT (previously none were shipped)
  • New [i18n] Regenerated languages/wpak-translate.pot (986 unique msgids)
  • Change [Compat] Tested up to WordPress 6.9.4
  • Note Bundled: [Updater SDK] Update-check cache lowered from 12h → 1h; honors ?force-check=1 on wp-admin/update-core.php; new wpak_updater_cache_ttl and wpak_updater_force_refresh filters (from pending 1.1.3 SDK work)
v1.1.3 2026-04-21
  • Fix [Updater SDK] Update-check cache lowered from 12h → 1h so new releases pushed on the update server reach this plugin within the hour
  • New [Updater SDK] Honors ?force-check=1 on wp-admin/update-core.php for immediate refresh; new wpak_updater_cache_ttl and wpak_updater_force_refresh filters
Show 42 older versions
v1.1.2 2026-04-21
  • Change Declared compatibility with WordPress 6.9.4 — removes the "not tested with your current version of WordPress" warning in the plugin details modal
v1.1.1 2026-04-21
  • Change Release notes adopt the new public/internal tag format — cleaner, user-oriented entries on the public changelog
v1.1.0 2026-04-20
  • Change [Admin] Unified WpAgencyKit header design adopted across every Translate admin page (Settings, Dashboard, Content, Memory, Glossary, Taxonomy, Site Options, Menu, Widget, Import/Export, Strings, Themify)
v1.0.10 2026-04-20
  • Enhance Smaller release ZIP — dev-only files (vendor/ ~21 MB, tests/, composer.json/composer.lock, phpunit.xml, patchwork.json) are no longer shipped. No runtime impact — plugin declares no runtime Composer dependencies
v1.0.9 2026-04-20
  • Fix [Admin] Header logo rendered too large on some environments
v1.0.8 2026-04-20
  • New [Admin] Official plugin logo in every Translate admin page header (12 pages: Settings, Dashboard, Content, Memory, Glossary, Taxonomy, Site Options, Menu, Widget, Import/Export, Strings, Themify)
v1.0.7 2026-04-18
  • Fix [Switcher] Language switcher emitting http:// links on HTTPS sites (mixed-content warnings after SSL migration / reverse proxy / Cloudflare flexible SSL)
v1.0.6 2026-04-18
  • Fix Plugin Check compliance (round 4): Wrapped multi-line SQL assignments with phpcs:disable/phpcs:enable blocks instead of a single phpcs:ignore. PHPCS reports InterpolatedNotPrepared on each line of a multi-line string that contains an interpolated variable (e.g., a second line with FROM {$table}), and single-line ignores only cover one line. Applied to 20 statements across ContentFilter, TranslationMemory, Activator, ImportExportService, and TranslationRepository.
v1.0.5 2026-04-18
  • Fix Plugin Check compliance (round 3): Resolved remaining InterpolatedNotPrepared and nonce/input sanitization warnings.
  • Fix Moved phpcs:ignore InterpolatedNotPrepared annotations onto the line immediately preceding each multiline SQL string literal (79 locations across repositories and integrations). PHPCS reports the warning on the string literal line, not on the outer $wpdb->get_row/query() wrapper — previous annotations were on the wrapper and didn't suppress the warning.
  • Fix Converted phpcs:ignore to phpcs:disable/phpcs:enable blocks for multi-line nonce-verification if statements (PostMetabox, TermMetabox, ImportExportPage × 2, GlossaryTranslationPage, UMP_Email_Integration) — single phpcs:ignore was covering only the first line of the multi-line condition.
  • Fix Added missing wp_unslash() on $_POST['wpak_translate_email_translations'] array read before per-entry sanitization.
v1.0.4 2026-04-18
  • Fix Plugin Check compliance (round 2): Resolved remaining errors and warnings from the second Plugin Check report.
  • Fix Moved translators: comment inline with __() call in MenuTranslationPage.php (PHPCS requires the comment on the line immediately above __(), not above the outer sprintf()).
  • Fix Added phpcs:ignore EscapeOutput.OutputNotEscaped to SwitcherStyles.php inline CSS echo (CSS built from controlled plugin options and wp_strip_all_tags'd).
  • Fix Added phpcs:ignore PluginCheck.CodeAnalysis.Updater to sdk/class-wpak-updater.php (licensed plugin, not WP.org hosted).
  • Fix Fixed uninstall.php %i identifier placeholder warning and added DirectQuery/NoCaching phpcs:ignore to DeepL transients cleanup.
  • Fix Updated readme.txt Stable tag to match main file version.
  • Fix Bulk phpcs:ignore additions to all remaining $wpdb calls (DirectQuery, NoCaching, InterpolatedNotPrepared, UnescapedDBParameter) in repositories: TranslationMemory, TranslationRepository, StringRepository, Activator, BatchJobRepository, TranslationLogRepository, ImportExportService, and integrations.
  • Fix Added wp_unslash() + sanitization wrappers to all remaining $_POST/$_SERVER/$_COOKIE accesses; added phpcs:ignore NonceVerification.Recommended to read-only page filter params.
v1.0.3 2026-04-18
  • Fix Plugin Check compliance: Resolved all Plugin Check errors and warnings to meet WordPress.org standards.
  • Fix Wrapped all unescaped output with esc_html(), esc_attr(), wp_kses_post(), or (int) casts across admin pages, integrations, and frontend.
  • Fix Added translators: comments to all sprintf()/printf() calls with placeholders; switched to ordered %1$d/%2$d format where required.
  • Fix Replaced date() with gmdate() (7 occurrences), parse_url() with wp_parse_url() (5 occurrences), and wp_get_sidebars_widgets() with get_option('sidebars_widgets').
  • Fix Added phpcs:ignore NonceVerification.Recommended to all read-only $_GET page-filter accesses; added wp_unslash() before sanitization on superglobals.
  • Fix Gated all error_log() and print_r() calls behind WP_DEBUG; added phpcs:ignore to remaining guarded calls.
  • Fix Added phpcs:ignore annotations to all prepared SQL queries using $wpdb->prefix-derived table names; added phpcs:ignore for IN-clause and pre-prepared $query patterns.
  • Fix Removed load_plugin_textdomain() call (auto-loaded since WP 4.6).
  • Fix Prefixed global variables in uninstall.php ($wpak_translate_tables, $wpak_translate_table_name).
  • Fix Added phpcs:ignore for active_plugins core filter and @set_time_limit() in batch import handlers.
v1.0.2 2026-04-18
  • Fix Prevented a site-wide fatal error (ArgumentCountError in WPAK_Cookies_Integration::handle_translate_string) triggered during init when plugins such as woo-checkout-field-editor-pro call the wpml_translate_single_string filter with the original 3-argument WPML signature. The $locale parameter is now optional and falls back to determine_locale() when the caller does not supply it, which restored the frontend and admin on sites combining WooCommerce Blocks Checkout with the Checkout Field Editor Pro plugin.
v1.0.1 2026-04-17
  • Note Official stable release consolidating the 1.0.1-beta cycle.
v1.0.0 2026-04-02
  • Fix WooCommerce checkout -> order-received flow broken when Translate is active: The router was still applying browser-detection, translated-slug recovery, and canonical redirects on WooCommerce transactional URLs. Thank-you and payment-return requests such as /checkout/order-received/.../?key=... must preserve the exact path and query string generated by WooCommerce and payment gateways. Added a dedicated transactional-request guard in Router and skipped all three redirect layers for checkout, cart, my-account, order-pay, order-received, and WC API/AJAX flows.
v0.2.8 2026-02-25
  • Fix Fixed release script not committing changes before tagging. This ensures all the Deploy2WP Material Design 5 UI
v0.2.7 2026-02-25
  • Fix Fixed critical CSS variable typo (--wpak-translate-primary-bg instead of --wpak-translate-bg-primary) that
  • Fix Added comprehensive Material Design 5 UI overrides for .widefat tables (Settings language list), removing old border
  • Fix Removed legacy boxing and padding on .wpak-translate-settings-wrap structure which caused form inputs to bunch up
v0.2.6 2026-02-25
  • Fix Fixed native WordPress UI elements (.form-table, .postbox, .nav-tab) leaking their old gray borders and shadows.
v0.2.5 2026-02-25### Changed
  • Note Minor fixes and updates for new Deploy2WP backend design UI.
v0.2.4 2026-02-25### Fixed
  • Note Fixed browser caching issue for newly applied Deploy2WP Material Design 5 UI. Added filemtime cache busting to
v0.2.3 2026-02-25### Changed
  • Note Aligned admin pages HTML structure to the Deploy2WP Material Design 5 design system. Replaced custom headers with the
v0.2.2 2026-02-25### Changed
  • Note Removed vendor/ directory (21MB, dev-only dependencies) from git tracking. Regenerate with composer install when
  • Note Aligned admin CSS to Deploy2WP Material Design 5 design system: removed all shadows, expanded design tokens, page
  • Note Aligned admin-premium.css primary color to Deploy2WP blue (#1a73e8), set elevation tokens to none.
v0.2.1 2026-02-25
  • Change Aligned admin CSS to Deploy2WP Material Design 5 design system: removed all shadows from postboxes, cards, inputs, and
  • Change Aligned admin-premium.css primary color from WP Blue (#2271b1) to Deploy2WP blue (#1a73e8), set all elevation tokens
v0.2.0 2026-02-23
  • New Automated Testing Suite (PestPHP) — Added modern unit testing framework with Brain\Monkey for mocking WordPress
  • New Strict Type Safety (PHP 8.0+) — Implemented declare(strict_types=1); across the entire plugin core (53 files).
  • New Complete scalar type hinting for all methods, functions, and properties (string, int, bool, array, void,
  • Change Type Refactoring — Hardened input/output boundaries across all Architectural Layers (Domain, App, UI,
  • Change Improved memory safety and null-handling inside TranslationRepository and StringRepository.
  • Change Hardened external provider API response typing (OpenAI, DeepL, Claude, Gemini, OpenRouter) to prevent silent failures
  • Change Restructured Router::detectLanguageFromRequest() and fallback URL resolution to provide resilient URL handling on
  • Fix Fixed uncaught exception hazards with native WordPress translation/routing arrays by enforcing accurate struct
  • Fix Patched isolated edge cases where TranslationService could incorrectly cast IDs due to implicit type coercion.
v0.1.0 2026-02-23
  • New OpenAI Batch API — Massive asynchronous translation via OpenAI /v1/batches endpoint (50% cost reduction, 24h
  • New New includes/Batch/ namespace: BatchJobManager, BatchSegmenter, BatchFileBuilder, OpenAIBatchClient,
  • New New DB table wpak_translate_batch_jobs for campaign tracking.
  • New WP-Cron polling every 5 minutes (wpak_translate_batch_poll) with custom schedule (wpak_batch_5min).
  • New REST routes: POST /batch/launch, GET /batch/status, POST /batch/cancel, POST /batch/estimate.
  • New Dashboard UI card "Massive Translation" with real-time progress polling, per-segment breakdown, and cancel action.
  • New Automatic content segmentation by type (Site Options, Menus, Taxonomies, Posts, Strings) when exceeding 5000 strings.
  • New Provider Settings Alignment — Full parity across all 5 AI providers (Claude, Gemini, OpenRouter now match
  • New Temperature control (0–2) for Claude, Gemini, OpenRouter.
  • New Max Tokens per response (100–16384) for all AI providers including OpenAI (was hardcoded).
  • New Custom Translation Prompt per provider with {SOURCE_LANG}/{TARGET_LANG} placeholders and fallback to OpenAI
  • New Enable/Disable toggle for Claude, Gemini, OpenRouter (consistent with DeepL/OpenAI pattern).
  • New Cost per 1K tokens in Costs section for Claude, Gemini, OpenRouter.
  • New Added WP-Cron daily job (wpak_translate_daily_cleanup) to automatically purge translation logs older than 30 days.
  • Change Replaced computationally heavy O(N) array_search tracking in LRU caches (StringService, ContentFilter) with
  • Change Wrapped DB-heavy URL fallback resolution (Router::resolvePathFallback) in transient cache to mitigate CPU/DB spikes
  • Change Wrapped explicit outputs in esc_attr() across SiteOptionsPage, WidgetTranslationPage, UIKit,
  • Change Provider-specific prompt resolution in OpenAIProvider::getTranslationPromptTemplate(): checks
  • Change Provider-specific max_tokens cap in OpenAIProvider::calculateBatchMaxTokens().
  • Change ProviderFactory now requires explicit translation_enabled toggle for Claude, Gemini, OpenRouter.
  • Change Plugin requirements bumped to PHP 8.0 and WordPress 6.0.
v0.0.19 2026-02-19
  • Change Reduced String Translations admin batch query load:
  • Change visible-only ID lookup now uses bulk fetch (find_strings_by_ids) instead of per-row get_string calls
  • Change batch save now uses bulk upsert (set_translations_bulk / upsert_translations_bulk) with chunking
  • Change cost estimate now uses a single aggregate query (SUM(CHAR_LENGTH(original))) for selected IDs
  • Change Reduced write-path query duplication:
  • Change TranslationRepository::save() now uses single-query UPSERT on unique_translation
  • Change TranslationMemory::add() now uses single-query UPSERT on unique_tm_entry with atomic `usage_count = usage_count +
  • Change Added request-level table-exists cache helpers in TranslationRepository and TranslationMemory for legacy `SHOW
  • Change Removed duplicate pre-save lookup in import flow (ImportExportService), preserving import behavior and payloads.
v0.0.18 2026-02-18
  • New Reintroduced translated slug stack for content workflow:
  • New post/page slug save helpers in service layer
  • New translated slug lookup helpers in repository
  • New translated slug URL generation and request resolution in router
  • New translated slug save support in Content Translation editor flow
  • New Added OpenAI cache controls in Settings:
  • New cache signature tracking on AI-relevant config
  • New automatic cache revision bump on relevant setting changes
  • New manual “Clear OpenAI cache” admin action with nonce protection
  • New Added language configuration self-heal in plugin bootstrap (admin_init) using normalized language schema.
  • Change Upgraded OpenAI provider backend to advanced batch/refine implementation (chunking, fallback handling, and batch stats
  • Change Upgraded translation service backend to advanced text-batch and slang-batch handlers, including REST batch refine
  • Change Kept compatibility bridges in repository for existing callers (getForObjectsMap,
v0.0.17 2026-02-18
  • New Added new Content Translation UI shell with modern editor layout (wpak-ct-*), activity panel, advanced tool cards,
  • New Added AJAX batch handlers for Content Translation rows:
  • New wpak_translate_content_translate_batch
  • New wpak_translate_content_refine_batch
  • New Added REST batch route for slang refinement:
  • New POST /wpak-translate/v1/refine/openai-slang-batch
  • New Added admin JS runtime config for batch processing:
  • New batchChunkSize
  • New batchRequestTimeout
  • New Added admin helper runStringBatchTranslation for chunked Strings page execution with live progress.
  • Change Updated Themify content extraction to generate stable structural keys and deduplicate rows by stable_key before
  • Change Updated Strings page batch AJAX response shape to include stable fields:
  • Change count
  • Change failed
  • Change skipped
  • Change results
  • Change stats
  • Change Updated Strings page frontend flow to use chunked helper when available, with legacy fallback preserved.
  • Change Kept slug/routing translated URL system out of scope for this release (no frontend rewrite/slug behavior changes).
  • Note Existing single-row save/translate flows remain available.
  • Note Existing admin pages outside Content Translation keep legacy behavior.
v0.0.16 2026-02-18
  • Fix Fixed taxonomy translation stability on translated archive URLs by hardening get_term handling with recursion depth
  • Fix Simplified shouldTranslate() to a lightweight current/default language check with request-level memoization,
  • Fix Reduced frontend translation overhead with request-level caching for language/state checks and post-level
  • Fix Added performance gating for aggressive fallback hooks (the_post, loop_start, early/late singular fallbacks) so
  • Fix Optimized Themify DOM fallback by skipping auto mode when candidate strings exceed threshold and by adding
  • Change Added runtime kill switch for taxonomy object translation filter: wpak_translate_enable_get_term_filter (default
  • Change Added runtime toggle for aggressive loop hooks: wpak_translate_enable_aggressive_loop_hooks (default false).
  • Change Reduced debug/logging overhead in frontend router/content filtering paths by deferring expensive debug payload
  • Change Added frontend performance options in wpak_translate_settings:
  • Change perf_mode (compat, balanced, max; default compat)
  • Change themify_dom_fallback_mode (auto, force_on, force_off; default auto)
  • Change gettext_mode (default_only, theme_only, full, off; default default_only)
  • Change max_dom_translation_strings (default 1200)
  • Change Added new WordPress filters:
  • Change wpak_translate_perf_mode
  • Change wpak_translate_gettext_mode
  • Change wpak_translate_enable_themify_dom_fallback
  • Change Refined gettext behavior by mode:
  • Change default_only: only default core domain
  • Change theme_only: active theme and parent theme domains
  • Change full: existing behavior with wpak_translate_translatable_text_domains
  • Change off: disables frontend gettext translation
  • Change Disabled frontend string discovery in balanced/max modes; preserved previous behavior in compat.
  • Change Optimized Themify integration loading strategy:
  • Change first load page-specific strings via batch lookup
  • Change keep global string fallback only in compat
  • Change precompute sorted/normalized translation maps once per request
  • Change Improved DOM observer runtime controls in JS:
  • Change precompiled replace patterns
  • Change mode-driven observation root (document.body in compat, Themify root fallback in balanced/max)
  • Change per-frame work limits (maxNodesPerBatch, maxMsPerFrame) from localized config
  • Change Added idempotent DB performance index on wpak_translate_translations:
  • Change idx_object_field_lang_object (object_type, field, language, object_id)
v0.0.15 2026-02-11
  • Fix Content Translation delete action now removes only string translations scoped to the current post (no global
  • Fix Added scoped repository deletion (deleteStringTranslationsByObjectIds) and language normalization consistency for
  • Fix PHP 8.4 compatibility fix for StringAdminPage constructor nullable parameter.
  • Change Batch translation AJAX flows for Menu, Taxonomy, Widgets and Site Options now support chunked processing (offset,
  • Change Admin batch frontend now processes chunked responses iteratively with live progress updates and partial-error
  • Change OpenAI provider retry policy centralized and hardened for interactive admin requests: shorter timeout (45s), max
  • Change Import/Export now respects selected bundles/object types, includes widget components in bundle mapping, and uses
  • Change Added export guardrail (wpak_translate_export_max_records, default 15000) to prevent oversized exports.
  • Change Reduced admin query load with bulk translation fetches (getForObjectsMap) for Menu/Taxonomy/Widget pages and async
  • Change Added request-level cache for table existence checks in TranslationRepository.
v0.0.14 2026-02-11
  • Change Updated WordPress Privacy Policy guide text to a generic placeholder template for site owners (no vendor/user personal
  • Change Added ready-to-use placeholder sections for both Privacy Policy and Cookie Policy inside
v0.0.13 2026-02-11
  • New WordPress Privacy integration: WpAgencyKit Translate now adds ready-to-use GDPR text to the WordPress Privacy Policy
  • New Suggested policy text now covers: language cookie (wpak_translate_lang, 30 days), external translation providers
v0.0.12 2026-02-11
  • Fix Deferred translatable text-domain memoization until after wp_loaded so late-registered
v0.0.11 2026-02-11
  • Fix Prevented duplicate frontend hook registration by reusing a single ContentFilter instance for the language switcher
  • Fix Reduced gettext/gettext_with_context overhead with request-level domain caching, O(1) domain lookups, and runtime
  • Fix Restricted String Discovery writes to admin-capable users by default, with a new override filter
  • Fix Moved Themify preload timing from init to early wp to ensure the main query is ready before singular checks.
  • Fix Added debug-only Themify string cache hit/miss counters to improve performance diagnostics.
v0.0.10 2026-02-02
  • New Live license validation on key input with green/red status indicator.
v0.0.9 2026-02-02
  • New License key field in settings to store the bundle key.
  • New License status check on save with status summary.
v0.0.8 2026-02-02
  • New License data provider for Deploy2WP (global licensing server support).
v0.0.7 2026-02-01
  • Change Unified remaining Translate admin pages/components with Deploy2WP palette (UI kit, strings, themify, WooCommerce,
  • Change Updated default front-end switcher accent to #1a73e8 for consistency.
v0.0.6 2026-01-31
  • Change Admin pages restyled to match the Deploy2WP (tokens, cards, buttons, inputs).
v0.0.5 2026-01-31
  • Change Onboarding wizard restyled to match the Deploy2WP premium look.
v0.0.4 2026-01-31
  • Change Maintenance version bump.
v0.0.3 2026-01-31
  • Change Admin notices now relocate below the page header on Translate admin pages.
v0.0.2 2026-01-28
  • Fix Version bump for testing release pipeline.

Login

Cookie settings

Choose by category.

We only use the right cookies, we promise. The technical ones are there to make the site work as it should, the others – only if you give us the ok – to make your experience more comfortable and tailored. "We're not here to spy on you, just to remember who you are." You choose: accept all, reject or customize.

Strictly Necessary Required
These cookies are essential for the website to function properly and cannot be disabled.
Preferences
These cookies allow the website to remember choices you make and provide enhanced functionality and personalization.
Analytics
These cookies help us understand how visitors interact with the website, helping us improve our website and services.
Marketing
These cookies are used to track visitors across websites to display relevant advertisements.