Ratchet

v26.08.04Updated: 25/08/2026

[team_mw]
v26.08.04

  -Fix array-offset-on-bool notices in the ACF Date helpers (26.08.04)

get_field_object() and get_sub_field_object() return false when the field
does not exist on the post. Both Date helpers indexed straight into that
result, logging “Trying to access array offset on value of type bool” into
the debug.log of every armed site with WP_DEBUG on — 598 hits in 8 days on
johndimond.com.au alone.

The notice was the visible half. createFromFormat(null, null) returns a
DateTime set to “now” rather than false, so a missing field rendered
TODAY’S DATE instead of nothing. Every logged notice was also a wrong date
on the page.

Guarded both helpers so a missing field, a field with no return_format, or
a non-string value returns null, and guarded every createFromFormat()
result before ->format(). On PHP 8 the unguarded ones were fatals, not
notices: “Call to a member function format() on false” on an unparseable
date string, and a TypeError when the value was an array.

Also dropped the unreachable code after the return in the legacy
RatchetHelpersDate::get_field_range(), which referenced two undefined
variables.

Verified old vs new against a stubbed ACF: all valid-input output is
byte-identical, all diagnostics gone. Both release gates pass.

Co-Authored-By: Claude Opus 5

v26.08.03

  -Fix 26.08.02 shipping without the Comments, Cron and Fs endpoints

26.08.02 went out fleet-wide missing three endpoint files. They were written,
they worked, they were listed in RestRouter::shipped_endpoints() — and they were
never `git add`ed. The GitHub Action builds the zip from the pushed tag, so no
released bundle has ever contained them.

The failure was silent from every angle that gets checked. /status and /health
kept reporting `fs`, `comments` and `cron` as implemented and granted, because
those come from the ApiGate catalogue rather than from disk. Meanwhile every
/fs/*, /comments/* and /cron/* route answered 404 rest_no_route on every site.
With /exec neutered to a 501 stub in this build, that left 26.08.02 sites with
no file-read channel at all. /health did flag capabilities.degraded, which is
how it was eventually caught.

Confirmed on sunbrush.co.nz, aflex.com.au, lawfords.com.au and
cwanorthumberland.org.au — the identical three missing on each.

– Add Ratchet/Api/endpoints/Comments.php (scope `comments`)
– Add Ratchet/Api/endpoints/Cron.php (scope `cron`)
– Add Ratchet/Api/endpoints/Fs.php (scope `fs`, read-only)
– Track tests/ — both release gates were themselves untracked, same cause
– registration-smoke: assert every shipped endpoint is TRACKED IN GIT

That last check is the one that would have caught this. Presence on disk was
already asserted and passed; presence in the index is the claim that actually
predicts what the tag, and therefore the zip, will contain.

Co-Authored-By: Claude Opus 5

v26.08.02

  -Add data-ops scope and endpoint for typed read/write/query operations

Introduce a safer alternative to php-exec for routine database tasks, enabling typed reads, writes, and queries through WordPress APIs without triggering malware scanners. Add new scope, endpoints, and supporting functionality in ApiGate and DataOps. Update logger functionality to attach keys to API requests and improve permissions handling.

v26.07.02

  -Add data-ops scope and endpoint for typed read/write/query operations

Introduce a safer alternative to php-exec for routine database tasks, enabling typed reads, writes, and queries through WordPress APIs without triggering malware scanners. Add new scope, endpoints, and supporting functionality in ApiGate and DataOps. Update logger functionality to attach keys to API requests and improve permissions handling.

v26.07.01

  -Add read-only /health endpoint for fleet site analysis

GET /ratchet/v1/health returns a cheap one-call snapshot per armed site:
core/PHP/DB/server versions, active theme, pending update counts, key
environment flags, and plugin counts. Same auth model as /status (any valid
bearer, no scope, count_use=false) so a fleet-wide audit is free to poll.
Reads WordPress’s existing update transients only, no remote wp.org check or
filesystem walk, so it stays sub-second. Bump version to 26.07.01.

Co-Authored-By: Claude Opus 4.8

v26.06.09

  -Add setting to hide WP Toolkit from admin and dashboard

v26.06.08

  -Add setting to hide WP Toolkit from admin and dashboard

v26.06.07

  -Bump to 26.06.07 — release to verify the deploy-pipeline fix

No code change; exercises the new continue-on-error upload + HTTP-reachability
gate so the version-registration webhook fires despite the FTP control-socket
flap.

Co-Authored-By: Claude Opus 4.8

v26.06.06

  -Add Gravity Forms + PHP Exec API endpoints; release-pipeline concurrency guard

v26.06.02

  -Add Hide Login URL setting (obscure wp-admin / wp-login.php)

Ports Solid Security’s “Hide Backend” into Ratchet, guarded by a
Settings > Login toggle + custom slug. wp-login.php 404s and /wp-admin
redirects home for logged-out visitors; login is served only at the
custom slug, with all WP-generated login URLs rewritten to it.
Self-guards on an empty slug to avoid lockout. Bumps version to 26.06.02.

Co-Authored-By: Claude Opus 4.8

v26.06.01

  -Fix wp_tempnam fatal on REST module & media install

wp_tempnam() is defined in wp-admin/includes/file.php, which is not
loaded during REST requests. Modules::install_module() and the media
upload endpoint both called it before that file was available, so every
module install / media upload over the API fatally errored
(Uncaught Error: Call to undefined function wp_tempnam()). Load the file
on demand before the call in both endpoints. Bump version to 26.06.01.

Co-Authored-By: Claude Opus 4.8

v26.05.18

  -Merge: ACF field-group fields in export + /acf/values/{id} (v26.05.18)

v26.05.17

  -plugin update endpoint — close the release loop

POST /ratchet/v1/plugins/{slug}/update runs Plugin_Upgrader. After this
ships once, every subsequent Ratchet release self-installs: push tag →
GH Action builds → webhook updates makelabs → Claude POSTs /update with
confirm_version → next request runs the new code. No more wp-admin trips
between releases.

Guardrails mirror DELETE /pages:
1. Separate scope `plugins-update`, never auto-granted from `plugins`.
2. `confirm_version` body field required — must match the version the
server currently sees as available (forces a fresh wp_update_plugins
check before comparison, so the value isn’t stale).
3. Self-update (Ratchet upgrading itself) requires ?force=true.
4. ?dry_run=true returns {current_version, available_version} without
acting. Free to call.
5. Audit log captures version delta and any Plugin_Upgrader/skin errors.

Co-Authored-By: Claude Opus 4.7 (1M context)

v26.05.16

  -DELETE /pages/{id} with stacked guardrails

Completes the post CRUD cycle — media has DELETE, posts didn’t. New
endpoint trashes by default, with several independent safety rails:

1. Separate scope `pages-delete` — must be armed alongside `pages`,
never auto-granted. Most sessions won’t have it.
2. Trash semantics by default (wp_trash_post). Reversible via wp-admin.
Permanent removal needs explicit ?force=true.
3. `confirm_slug` query param required — must match the post’s current
post_name. Forces caller to fetch first; protects against stale IDs
and “I thought 42 was a test post but it was the homepage” mistakes.
4. `?dry_run=true` returns the snapshot of what would be deleted
without doing it. Free read.
5. Audit log captures a pre-delete snapshot (id, slug, title, word
count, author, thumb, dates) for forensics.

Co-Authored-By: Claude Opus 4.7 (1M context)

v26.05.15

  -verify_request: count once per HTTP request, not per callback fire

WP REST calls permission_callback more than once per request (route
discovery, pre-dispatch, dispatch — three to four times in practice).
26.05.14 made GETs free but still over-counted writes: one POST /pages
was hitting the counter +3 instead of +1.

Track the WP_REST_Request object hash; first verify counts and logs,
subsequent verifies for the same request are no-ops. Class statics
persist across requests under PHP-FPM so a small bounded cache (64
entries, trimmed to 32 on overflow) caps memory.

Co-Authored-By: Claude Opus 4.7 (1M context)

v26.05.14

  -verify_request: only state-changing methods count toward uses

Reads burn no budget. GET/HEAD/OPTIONS are read-only — listing routes,
status probes, GET /pages and friends now cost nothing against max_uses.
POST/PUT/PATCH/DELETE still count. Fixes 26.05.13 where every successful
verify was incrementing the counter and a few probes could disarm a
freshly-armed session.

$count_use becomes tri-state — null (default) auto-detects from method,
true/false force on/off. Status endpoint keeps explicit false; everything
else picks up the smart default automatically.

Co-Authored-By: Claude Opus 4.7 (1M context)

v26.05.13

  -batch create, /status, featured_image_url sideload, dry-run

Pages API gets more migration ergonomics. Batch endpoint lets a 100-post
migration cost one use instead of a hundred. featured_image_url removes
the upload-then-set dance for the common case (and sidesteps the local
Ratchet CLI proxy’s X-header stripping). Dry-run on create mirrors the
existing dry-run on update. Built-in fields post_parent / menu_order /
comment_status / ping_status / sticky now round-trip.

/status is a no-scope, no-count endpoint that reports the armed-session
shape — uses-remaining, scopes, plugin version, arming user — so callers
can decide whether to act before they burn budget. ApiGate::verify_request
gets a $count_use flag that /status passes false to keep polling free.

Co-Authored-By: Claude Opus 4.7 (1M context)

v26.05.12

  -Pages API: accept excerpt/date/author on create + update

Lets content migrations preserve original publish dates and authorship
instead of stamping today’s date / arming user across the board. Excerpt
shares the same path so post_excerpt round-trips cleanly too.

Co-Authored-By: Claude Opus 4.7 (1M context)

v26.05.11

  -auto-register team auth on first front-end visit, not just admin_init

Pre-26.05.11, sites only registered with the team auth server when
somebody loaded wp-admin. Sites that received Ratchet via auto-update
without anyone touching wp-admin afterwards stayed unregistered, and
the bookmarklet returned “Site is not registered for team auth”
indefinitely.

Fix is split across two contexts to keep the front-end fast and to
make sure the shared secret is never read into front-end memory:

– New `kick_register_if_needed` hooked on `init`. Bails in admin/cron/
CLI, then does a single autoloaded-option lookup. If the site isn’t
registered it schedules a one-shot `mw_team_auto_register_cron`
event and returns. No DB queries, no HTTP, no secret access on the
front-end hot path.
– The actual `maybe_auto_register` (which loads `mw_shared_secret`
and POSTs to team.makeweb.com.au) now runs on `admin_init` AND on
the new cron event — never on a front-end request.

`mw_team_registered` is now written autoload=true so the front-end
check is in-memory. A one-time idempotent `wp_set_options_autoload`
call inside `maybe_auto_register` migrates existing rows on the next
admin/cron run after upgrade.

v26.05.10

  -add token metadata to heartbeat response and enforce LiteSpeed cache bypass for team operators

v26.05.09

  -Code Scanner: roll out locked “J” design system

Visual + interaction model from the mockup series at
~/Claude/tools/ratchet-bar-mockups/. Highlights:

UI
– Compact white bar (search input + match-mode toggles inside +
Filters + Scan); modal for everything else
– Match-mode toggles (Aa / ab / .*) live in the bar — they affect
every keystroke so a modal trip would be friction. Whole-word
and Regex are mutually exclusive (both compile to a regex)
– Glass modal with: All / Refined toggle + Limit dropdown inline +
collapsible Refined picker (Core / Plugins / Themes tabs, ghost-
pill style) + File types pills (with custom-ext chips and ANY
wildcard exclusivity)
– Two-state checkbox semantic: ticked = scanned. No more
include/exclude dual mode.
– Drawer for “View whole file” preserved
– Quiet summary line under the bar reads current state at a glance

Backend (CodeSearch)
– resolve_paths now takes (mode, includes[]). All = ABSPATH;
Refined = sum of resolved include identifiers (kind:slug)
– New helpers: resolve_include, core_paths, available_cores,
available_plugins, available_themes — feed the picker tabs
– Old scope/plugin/theme params removed; the model is simpler now

REST endpoint (/dev-tools/scan)
– Accepts mode + includes[] alongside the existing match flags +
filetypes + max. Old scope/plugin/theme params removed.

Tokens
– New file: assets/css/admin/ratchet-tokens.css. Single source of
truth for palette + motion across every Ratchet admin panel.
Documented in the style guide in the mockups directory.

Co-Authored-By: Claude Opus 4.7 (1M context)

v26.05.08

  -Code Scanner: drop filters toggle, add match modes / theme picker / limit

Filters are now permanently visible. The collapse toggle was useless
once a search ran (the panel auto-expanded anyway), so the spacer is
locked at 132px and the bar always shows both rows.

Search controls promoted to first-class:
– Three VSCode-style match-mode toggles inside the search field —
case sensitive (Aa), whole word (underlined ab), regex (.*).
Whole-word and regex are mutually exclusive (both build patterns).
– Backend honours the flags: CodeSearch::run_scan now takes an
options array; whole-word wraps the literal in b…b, regex uses
the input verbatim, both compile-validate up front so a bad regex
surfaces as a clean WP_Error instead of silent zero-results.

New filter dimensions:
– “Specific theme” segmented option mirrors “Specific plugin”; both
use a shared renderCombobox() helper and a generic typeahead JS
module so swapping/extending pickers stays one-file.
– Result-limit dropdown (50/200/500/1000/2000) replaces the
hard-coded 500.

Icon clean-up: every hand-drawn SVG swapped for WP dashicons
(search, no-alt, backup, plus-alt2, arrow-down-alt2). Sharper at the
sizes shown in the bar and consistent with the rest of WP-admin.

DevTools REST: /dev-tools/scan now accepts case_sensitive,
whole_word, regex, theme alongside the existing fields, and
propagates run_scan WP_Errors back to the client.

Co-Authored-By: Claude Opus 4.7 (1M context)

v26.05.07

  -add Ratchet Tools dashboard tab and pin menu position

– Submenu label now reads “Ratchet Tools” (was “Ratchet”), matching
how the user thinks of the toolkit, and is registered with
position 9999 so it always lands at the bottom of the Tools
submenu regardless of which other plugin items are present.
– New default “Dashboard” tab — opens whenever the user clicks the
wrench icon. Shows a card per registered tool with summary text
and a live status badge (e.g. API → “Armed · 96m left” /
“Disarmed” / “Cooldown”). Each card links into its tab.
– Tab strip’s title chip is now a link back to the dashboard so
the wrench is always one click away from the overview.

Co-Authored-By: Claude Opus 4.7 (1M context)

v26.05.06

  -fix Code Scanner CSS bugs surfaced by browser audit

Two bugs preventing the redesigned bar from rendering correctly:

1) The bar was anchoring to left:36px on desktop. WordPress sets
`body.auto-fold` unconditionally on most admin pages but the
actual sidebar fold only kicks in inside `@media (max-width:
960px)`. The unscoped `body.auto-fold .rcs-form` rule was
shoving the bar 124px left, hiding it behind the still-160px
sidebar. Same fix applied to the hub tab strip.

2) The filters panel, plugin combobox panel, and several other
show/hide elements use the HTML `hidden` attribute. The UA
stylesheet’s `[hidden] { display: none }` lost specificity to
`.rcs-form__filters { display: grid }` so toggling did nothing.
Added `.rcs-form [hidden] { display: none !important }` (and
the same for the drawer/backdrop) so the hidden attribute now
actually hides.

Co-Authored-By: Claude Opus 4.7 (1M context)

v26.05.05

  -redesign Code Scanner search bar with custom controls

Hub menu icon now uses the existing ratchet_icon CSS pattern (as in
SettingsPage.php and Ratchet/WP/Users/Init.php) so the wrench glyph
matches the one already shown beside Profile/et_divi entries — same
ratchet-admin.css styles cover it without new CSS hooks.

Search bar rebuilt with hand-coded controls instead of native
selects/dropdowns:

– Search field: magnifier glyph, clear button (×), recent-searches
popover (last 8 queries via localStorage), keyboard shortcut hint
(“/” or ⌘K to focus, Esc to clear)
– Filters panel: collapsible, hidden by default unless the previous
search was non-default; spacer auto-resizes when toggled so results
never slide under the bar
– Scope: segmented pill control (radiogroup) wired to a hidden
`target_scope` field
– Plugin picker: custom typeahead combobox (button → popover with
filter input + filtered list, ↑/↓/Enter/Esc keyboard nav). Hidden
unless scope=Specific plugin; clears its selection when scope flips
– File types: pill toggles + “+” trigger that swaps in a chip-input
for custom extensions (Enter to add, × to remove). “ANY” is a
single-purple override that clears the per-extension picks and
vice-versa
– Form-wide “/” / ⌘K keyboard shortcut focuses the search field

Cohesive dark palette (admin-bar grey + WP blue accent), 6px radii,
soft focus rings, smooth 150-200ms transitions across all controls.

Co-Authored-By: Claude Opus 4.7 (1M context)

v26.05.04

  -consolidate Tools menu items into a single Ratchet hub

Code Scanner and Ratchet API used to occupy two separate Tools
submenu items. They now live as tabs inside one wrench-iconed entry
(Tools → 🔧 Ratchet) that follows a deliberate pattern: each WP-admin
section can grow a sibling Ratchet hub later (Users hub, Posts hub,
etc.) using the same icon so operators recognise the affordance.

ToolsHub registers the menu, renders a fixed top tab strip
(sidebar-aware for folded/auto-folded admin layouts), and dispatches
to per-tab render_panel() statics. Each panel keeps its own
capability check.

Code Scanner: search bar now stacks BENEATH the hub tab strip
(top:76px) instead of fighting it for the same anchor; hub gives the
panel its standard gutter so the search bar still spans full width.

API panel: dropped its own .wrap and h1 since the hub provides them;
arm/disarm redirects now go through ToolsHub::tab_url(‘api’).

Co-Authored-By: Claude Opus 4.7 (1M context)

v26.05.03

  -polish wp-admin Code Scanner UX

Five fixes from operator feedback:
– Top bar now position:fixed under the WP admin bar instead of
sticky-after-scroll, with sidebar-aware left offset for folded /
auto-folded admin layouts
– Plugin picker stays hidden until scope = “Specific plugin” (and
clears its selection when scope changes away)
– Filetype dropdown replaced with inline pill toggles + an “Any”
override; CodeSearch::run_scan honours ‘any’/’*’ / empty list as
a wildcard so the bar’s “Any” button does the right thing
– Tightened result line spacing — dropped the trailing newline
emitted between line spans (preserved-whitespace `

` was
rendering it as a visible blank row) and locked min row height
to 1.4em
- "View whole file" now opens an offcanvas drawer that slides in
from the right (with backdrop, ESC-to-close, body scroll lock)
instead of expanding inline beneath the file's match list

Co-Authored-By: Claude Opus 4.7 (1M context)

v26.05.02

  -unify dev-tools/scan with file-read mode and refactor admin Code Scanner

The REST endpoint and the wp-admin Code Scanner both did their own
filesystem grep. Pulled the shared logic into RatchetToolsCodeSearch
so they can’t drift, then taught dev-tools/scan to also serve a
read-file mode (single endpoint, three input shapes). Path safety
lives in one place.

Admin UI: now shows every match per file (not just the first), groups
results by file with a count badge, and adds a “View whole file”
button that loads the full file via admin-ajax (same CodeSearch
helper) so you can move from “found it” to “read the surrounding
code” without bouncing between tools.

Co-Authored-By: Claude Opus 4.7 (1M context)

v26.05.01

  -add sync reindex support for facets in Postmaster API

v26.04.16

  -update Admin UI defaults and remove redundant MakeWeb gate in DevTools endpoint

v26.04.15

  -streamline Postmaster API labels and descriptions remove version-specific references and add one-click token handoff to Ratchet CLI

v26.04.14

  -add DevTools support to Ratchet API with recursive string scanning

v26.04.13

  -add DevTools endpoint to Ratchet API with source-code scan support

v26.04.12

  -add read support for module files in Ratchet API

v26.04.11

  -add create and duplicate support for cards and grids in Postmaster API

v26.04.10

  -add compile and persist CSS support for cards in Postmaster API

v26.04.09

  -add enhanced read support and CSS rebuild endpoint for cards in Postmaster API

v26.04.08

  -add manual reindex support for facets in Postmaster API

v26.04.07

  -add create support for facets in Postmaster API

v26.04.06

  -add CRUD support for Theme Builder layouts in API endpoints

v26.04.04

  -add write and delete support for cards in Postmaster API

v26.04.03

  -add write and cache-flush support to Postmaster API for grids and facets

v26.04.02

  -add Postmaster API endpoint for WP Grid Builder with read-only support

v26.04.01

  -add Postmaster API bridge for WP Grid Builder with read and future edit support

v1.26.14

  -add UptimeMonitor helper for self-registration with central uptime monitor

New helper at Ratchet/Helpers/UptimeMonitor.php runs a wp-cron job that
asks https://uptime.makelabs.com.au/check.php whether this site is
already monitored, and if not, POSTs to /request.php with a shared
bearer secret to add itself to the moderation queue.

Adaptive cadence: re-check next day if not yet monitored (catches
approval quickly), next month once monitored (light touch). Self-heals
via __construct rescheduling if the chain ever breaks.

Co-Authored-By: Claude Opus 4.7 (1M context)

v1.26.13

  -add missing-secret check to team auto-registration flow to handle cases of manual deletion or corrupted state by forcing re-registration

v1.26.12

  -refine team auto-registration logic with throttled retries and daily heartbeat handling for better recovery from server-side state changes or URL modifications

v1.26.10

  -implement JS-readable login marker cookie for cache-stale detection, add cache-buster reloads on login/logout, and enable robust URL change handling with fingerprinting to prevent cloning conflicts; update auto-registration flow

v1.26.09

  -update tested WordPress version to 6.8.2

v1.26.08

  -update tested WordPress version to 6.8.2

v1.26.06

  -fix DELETE /theme-builder/templates post-type check: Divi uses et_template not et_theme_builder_template; bump to 1.26.06

v1.26.05

  -TB templates default-inherit global header/footer from Default Website Template; add DELETE endpoints for templates and orphan layouts; bump to 1.26.05

v1.26.04

  -link new TB templates into theme_builder parent _et_template meta + invalidate caches so they render; bump to 1.26.04

v1.26.03

  -promote request to admin user for Divi TB calls so internal current_user_can checks pass; restore on exit; bump to 1.26.03

v1.26.02

  -hook wp_die_*_handler filters to throw RuntimeException so try/catch surfaces the real message; bump to 1.26.02

v1.26.01

  -capture fatal errors from Divi TB calls via shutdown handler + ob buffer; bump to 1.26.01

v1.26.00

  -add ACF field-group, Plugins, and Options endpoints; mark scopes implemented; bump to 1.26.00

v1.25.02

  -wrap Divi Theme Builder calls in Throwable catch, probe missing functions, lazy-load theme-builder.php, bump to 1.25.01

v1.25.00

  -update plugin version to 1.25.00

v1.24.04

  -update plugin version to 1.24.04

v1.24.03

  -refactor MakeSecureLogin to improve action handling, simplify key propagation, and strengthen IP scoping

v1.24.02

  -harden MakeSecureLogin by extending passthrough actions and excluding authenticated users from gating

v1.24.01

  -harden MakeSecureLogin by adding rate-limiting, randomized click delays, improved transient handling, and bypass logic for safe wp-login actions

v1.24.0

  -add Ratchet API module with scoped REST endpoints and admin UI for managing time-boxed access

v1.21.05

  -harden TeamAuth redirect logic by validating return URLs and excluding inappropriate paths

v1.21.03

  -remove deprecated conditional.php and migrate functionality to ConditionalFallback class

v1.21.04

  -harden multiple functionalities across plugins and themes by adding proper nonce and capability checks

v1.21.02

  -refactor MakeWeb helper to improve admin user lookup logic during password rotation

v1.21.01

  -refactor MakeWeb helper to improve admin user lookup logic during password rotation

v1.21.00

  -remove conditional logic for team_auth and make it always enabled across sites

v1.20.02

  -improve TeamAuth auto-registration logic with URL change detection and retry throttling

v1.20.01

  -update TeamAuth default admin username placeholder and fallback value to makeweb

v1.20.00

  -ensure mw_shared_secret option is generated if missing and improve URL registration handling

v1.19.06

  -update plugin metadata for version compatibility

v1.19.05

  -remove MakeUpdate handler and integrate PageLocker and TeamAuth features for improved post editing lock management

v1.18.04

  -extend MakeWeb helper class to support maintenance monitor case

v1.18.03

  -update MakeWeb plugin to rename plugin_check case to plugin_monitor in helper class

v1.18.02

  -refactor MakeWeb plugin to enhance plugin inspection logic and improve JS connection management scripts

v1.18.01

  -add MakeWeb helper class with REST API integration, malware scanning, and connection management features

v1.18.0

  -add MakeWeb helper class with REST API integration, malware scanning, and connection management features

v1.17.48

  -include System helper initialization in plugin bootstrap loading process

v1.17.47

  -include System helper initialization in plugin bootstrap loading process

v1.17.46

  -refactor settings structure for improved modularity and add fallback options for non-Divi environments

v1.17.45

  -refine admin bar indicator styling for client view mode and improve frontend restriction script logic

v1.17.44

  -add admin bar indicator for client view mode and improve frontend restriction script logic

v1.17.43

  -update pre_loader image visibility logic based on pre_loader toggle

v1.17.42

  -update LoginMetrics setup to use default monitoring configuration and pre-configured credentials enable monitoring by default

v1.17.41

  -add ConditionalFallback class for backward compatibility and refactor security functionality to include LoginMetrics and MakeSecureLogin helpers

v1.17.38

  -add nowrap utility style to inlineCSS filters

v1.17.37

  -hide DiviMode API notice for non-admin users except user ID 8

v1.17.36

  -hide DiviMode API notice for non-admin users except user ID 8

v1.17.35

  -hide DiviMode API notice for non-admin users except user ID 8

v1.17.34

  -add daily cron job for failed login notifications and adjust LoginSecurity thresholds

v1.17.33

  -increase max login attempts in LoginSecurity helper

v1.17.32

  -refactor scripts and logs handling add LoginSecurity helper and improve VideoPopup triggers

v1.17.31

  -refactor scripts and logs handling add LoginSecurity helper and improve VideoPopup triggers

v1.17.30

  -refactor LogMaintenance to adjust logging behavior and streamline log handling

v1.17.29

  -add LogMaintenance class to manage iThemes Security log size and integrate daily maintenance scheduling

v1.17.28

  -comment out deprecated ConditionalFallback class usage

v1.17.27

  -add ConditionalFallback class to replace deprecated conditional logic

v1.17.26

  -refactor and replace deprecated conditional logic with ConditionalFallback class and add deprecation notice

v1.17.25

  -refactor and fix ai class defs

v1.17.24

  -refactor and fix ai changes syntax

v1.17.23

  -refactor and fix ai changes

v1.17.22

  -refactor and fix function checks for builder compatibility and ensure graceful handling of missing dependencies

v1.17.21

  -add support for direct video URLs in VideoPopup and enhance VideoParser logic

v1.17.20

  -refactor namespace structure and update file paths to improve plugin organization

v1.17.19

  -refactor date helper to add namespace prefixes for acf functions and enhance function existence checks

v1.17.18

  -added class alias for Date helper updated version to 1 17 18 and fixed return type for resolvePopupId method

v1.17.17

  -Update plugin version to 1.17.17

v1.17.16

  -refactor namespaces for better modular structure and relocate files to align with updated architecture

v1.17.15

  -refactor shortcodes structure reorganize namespaces and file locations for improved modularity and clarity

v1.17.14

  -refactor shortcode registration to use shouldRegisterShortcodes method and ensure function existence checks are centralized

v1.17.13

  -Fix shortcode system validation and initialization logic

v1.17.12

  -Changed visibility of register_shortcodes methods from protected to public and explicitly defined return type as void across all shortcode classes

v1.17.11

  -Refactor shortcode initialization to include validation and registration tracking

v1.17.10

  -update plugin version to 1.17.10

v1.17.07

  -Refactor VideoPopup shortcode

v1.17.06

  -OOP for shortcodes tweak 3

v1.17.05

  -OOP for shortcodes tweak 2

v1.17.04

  -OOP for shortcodes tweak

v1.17.03

  -OOP for shortcodes

v1.17.02

  -new plugin toggle helper

v1.17.01

  -minor css tweaks

v1.17.00

  -debrand activity log

v1.16.04

  -lock code scanner to MW

v1.16.03

  -class load fix

v1.16.02

  -class fix

v1.16.01

  -better loading codescanner

v1.16.00

  -introducing code scanner!!

v1.15.07

  -layout inserter loading tweaks

v1.15.06

  -module list load restrictions

v1.15.05

  -preload filters retry

v1.15.04

  -preload filters

v1.15.01

  -fix menu items

v1.15.0

  -new module interface

v1.14.47

  -remove client view mobile

v1.14.40

  -disable ithemes lockout notices

v1.14.39

  -register_access_key_route

v1.14.38

  -better non DIVI Compatability

v1.14.37

  -favicon fix

v1.14.36

  -remove rouge favicons

v1.14.35

  -fix init errors on divi modules

v1.14.34

  -Fix Sonja Password missing class

v1.14.33

  -Fix Sonja Password 2

v1.14.31

  -monitor v0.1

v1.14.30

  -Sonja user to replace Monique

v1.14.28

  -new makedev.com.au features

v1.14.27

  -remove un needed function that breaks old DIVI

v1.14.26

  -make fields update

v1.14.25

  -fix warning on login

v1.14.24

  -fix warning if no save

v1.14.23

  -admin email updater

v1.14.22

  -fix missing class duplicateMenu

v1.14.20

  -tidy up

v1.14.19

  -role redirect log fix

v1.14.18

  -Reword logger msg

v1.14.17

  -redirect after module upload

v1.14.16

  -add switch to turn off comments

v1.14.15

  -added ability to show site health

v1.14.14

  -fix user reset password settings

v1.14.13

  -remove upselling for notification plugin and create space in ratchet to extend

v1.14.12

  -mobile client view module

v1.14.11

  -mobile client view module

v1.14.10

  -remove rest endpoints if not ready to use

v1.14.09

  -make WP_REST_Response work

v1.14.08

  -added Makedev_Pages

v1.14.07

  -Remote accesskey check

v1.14.06

  -Remote accesskey

v1.14.05

  -Remove WPENGINE branding!

v1.14.04

  -Remove WPENGINE branding

v1.14.03

  -ip access helper added

v1.14.02

  -custom modules autoload try 2

v1.14.00

  -custom modules

v1.14.01

  -custom modules autoload

v1.13.63

  -cleaning up options pages 2

v1.13.62

  -cleaning up options pages

v1.13.61

  -new role based settings for users

v1.13.60

  -fixed whitespace in video popup shortcode

v1.13.59

  -change cron method added

v1.13.58

  -fix is_plugin_active load order

v1.13.57

  -woo init2

v1.13.56

  -woo init

v1.13.54

  -rename cron helper

v1.13.53

  -added cron helper

v1.13.52

  -fix users tab icon load

v1.13.51

  -fix users tab icon

v1.13.50

  -another mailgun fix

v1.13.49

  -fix loading reset module not settings

v1.13.48

  -reset pass tweak

v1.13.47

  -namespace issues

v1.13.46

  -user password redirect and module start

v1.13.45

  -ratchet for users

v1.13.44

  -mailGun v2 update

v1.13.43

  -mailGun real test

v1.13.42

  -fix client view for other servers take 2

v1.13.41

  -fix client view for other servers

v1.13.40

  -log update to slack

v1.13.39

  -new ratchet for all

v1.13.38

  -custom_logs improvements

v1.13.37

  -logger notice

v1.13.36

  -eqh fix for non specified size

v1.13.35

  -auto versions for my sanity

v1.13.33

  -temp file fixes and versions

v1.13.32

  -temp file fixes

v1.13.31

  -new temp files allow run quick actions once

v1.13.30

  -theme theme

v1.13.29

  -tame the logs

v1.13.28

  -check if Divi

v1.13.27

  -ps4 auto why

v1.13.26

  -oops

v1.13.25

  -start refactor for growth

v1.13.22

  -new eqh@size breakpoint options

v1.13.20

  -Disable WordPress Administration Email verification

v1.13.19

  -oops

v1.13.18

  -fix php 8.1 namespace error

v1.13.17

  -make sure! only loaded when acfe from loaded

v1.13.16

  -make sure only loaded when acfe from loaded

v1.13.15

  -img title tamer

v1.13.13

  -remove instpage for lightspeed alt

v1.13.12

  -escape were

v1.13.11

  -MW view warning

v1.13.10

  -client view to MW

v1.13.09

  -client view settings tab

v1.13.08

  -client view popup msg

v1.13.07

  -client view

v1.13.05

  -conditional tabs

v1.13.04

  -improved crypt charset

v1.13.03

  -fix QR shortcode

v1.13.02

  -add qr shortcode

v1.13.01

  -fix bug loading encript

v1.13.00

  -encrypt/decrypt shortcode

v1.12.28

  -new better encrypt method

Add timestamp validator and cryptr

[download_plugin]