WP Manifestindependent plugin directory
manifest / integrations / bullion-ops-helper

Bullion Ops Helper WP Registry grade B. Medium-severity findings · 2 findingsWP RegistryMedium-severity findings · 2 findingsOpen the reportB

WordPress plugin: REST endpoints for Rank Math redirects, Elementor regenerate, and cache purges. Used by Bullion Media ops tooling.

★ 0stars
v0.9.99latest · 5d ago

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/bullionmedia/bullion-ops-helper/archive/refs/heads/main.zip
Updates itself. It ships its own updater (Plugin Update Checker), so new versions appear under Dashboard → Updates.

WordPress plugin used by Bullion Media ops tooling. Exposes a small set of authenticated REST endpoints that programmatic clients can call to manage redirects, regenerate Elementor pages, and purge caches.

Endpoints

All endpoints require an authenticated request from a user with manage_options capability (typical pattern: WordPress application password sent as HTTP Basic auth).

Method Path Purpose
GET /wp-json/bullion/v1/ping Sanity check: returns plugin version + detected dependencies (WP Rocket, Cloudflare, Rank Math, Elementor).
GET /wp-json/bullion/v1/redirect?source=... List Rank Math redirects (optionally filtered by source path).
POST /wp-json/bullion/v1/redirect Create or update a Rank Math redirect. Body: source, destination, type (301/302/307/410/451), comparison (exact/contains/start/end/regex).
DELETE /wp-json/bullion/v1/redirect/{id} Delete a Rank Math redirect by id.
POST /wp-json/bullion/v1/cache/purge Purge WP Rocket (domain + minified + used-CSS) and Cloudflare.
POST /wp-json/bullion/v1/elementor/regenerate/{post_id} Force a single Elementor-managed page to rebuild its rendered content + per-post CSS, then run a full cache purge. Use after REST-API-driven Elementor page edits where the editor's save_builder hook never fires.

Auto-updates

The plugin self-updates from GitHub Releases via Plugin Update Checker. When a new release is tagged on this repo, every WordPress site running the plugin sees an "Update Available" notice within ~12 hours (or instantly via Dashboard → Updates → Check Again) and can update with one click.

Install

  1. Download the latest release zip from Releases.
  2. WordPress admin → Plugins → Add New → Upload Plugin → choose the zip.
  3. Activate.

After install, future updates come through WordPress's normal plugin update flow.

Why this exists

Most ops automation against WordPress can be done with the standard /wp/v2/* REST API. Three specific things can't:

  • Rank Math redirects have no REST endpoint of their own.
  • WP Rocket / Cloudflare cache purges are hookable from PHP but not from REST.
  • Elementor pages edited via REST don't trigger Elementor's editor-side regeneration, so the page renders stale even after a successful save.

This plugin fills those three gaps with a single, minimal REST surface.

License

MIT. See LICENSE.

Releases

Newest 25 of 60 recorded releases.

Tag
Published
v0.9.99 latest
Oct 29, 2026 5d ago
Oct 27, 2026 8d ago
Oct 27, 2026 8d ago
Oct 27, 2026 8d ago
Oct 26, 2026 8d ago
Oct 26, 2026 8d ago
Oct 26, 2026 8d ago
Oct 26, 2026 9d ago
Oct 23, 2026 12d ago
Oct 23, 2026 12d ago
Oct 22, 2026 13d ago
Oct 14, 2026 20d ago
Oct 14, 2026 20d ago
Oct 14, 2026 20d ago
Oct 13, 2026 21d ago
Oct 12, 2026 23d ago
Oct 7, 2026 27d ago
Oct 7, 2026 27d ago
Oct 4, 2026 1mo ago
Sep 30, 2026 1mo ago
Sep 25, 2026 1mo ago
Sep 25, 2026 1mo ago
Sep 25, 2026 1mo ago
Sep 25, 2026 1mo ago
Sep 23, 2026 1mo ago
All releases on GitHub →

These releases are tags only. The author does not attach a packaged zip, so there are no download counts to report.

B grade

Security

Bullion Ops Helper 0.9.33 · audited by WP Registry

Medium-severity findings.

1 medium 1 low
Audited release
0.9.33
Findings
2
Worst severity
medium
Content hash
8a8ed237d3dfa28dc5931b3f…

Findings

  • medium Stored XSS via TOC ItemList JSON-LD (JSON_UNESCAPED_SLASHES with decoded heading text)

    xss_stored

    On enrolled contexts (every singular asx_announcement and posts with enrolled slugs) the plugin extracts H2 headings from post_content with DOMDocument and uses textContent, which decodes HTML entities, as the ListItem name. The schema is printed with wp_json_encode() using JSON_UNESCAPED_SLASHES (and without JSON_HEX_TAG), so a heading containing </script><script>alert(document.domain)</script>, which survives kses, is output as a literal </script><script>... sequence that terminates the ld+json block and executes. Any user able to author or edit such content (potentially Contributor/Author depending on the asx_announcement CPT) can run script for visitors and for administrators previewing or viewing the post.

    bullion-ops-helper.php:1806-1834,1922-1934,2052-2086

    Recommendation

    Drop JSON_UNESCAPED_SLASHES (or add JSON_HEX_TAG) for all JSON-LD output so '</' is escaped, and strip tags/limit heading text before encoding.

  • low WPCode snippet rewrite via REST gated only by manage_options

    missing_capability

    PATCH /bullion-ops/v1/wpcode/snippet/<id>/search-replace performs str_replace on any WPCode snippet's post_content and saves it with wp_update_post. WPCode restricts PHP snippet editing to users with unfiltered_html; this route only requires manage_options, so on multisite a sub-site administrator could alter executed PHP snippets (code execution).

    bullion-ops-helper.php:94-98,526-566,569-571

    Recommendation

    Require unfiltered_html (or WPCode's wpcode_edit_php_snippets capability) for the WPCode endpoints.

WP Registry hashes the installable build and reports on that exact bytes-for-bytes copy. Embargoed findings are withheld until they are disclosed, so a clean verdict means nothing public is outstanding. WP Manifest does not audit code itself.