WP Manifestindependent plugin directory
manifest / developer / snapcode

SnapCode WP Registry grade B. Medium-severity findings · 1 findingWP RegistryMedium-severity findings · 1 findingOpen the reportB

SnapCode - Run WordPress code instantly without a code editor

★ 4stars
67release downloads
≈10active sites
v1.2.0latest · 1 year ago

Install

Download snapcode-1.2.0.zip From the v1.2.0 release on GitHub, Oct 15, 2025

Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/haruncpi/snapcode/releases/download/v1.2.0/snapcode-1.2.0.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

SnapCode

Run WordPress code instantly without a code editor

wp-snapcode

Features

  • Easy and simple UI
  • Execute PHP and WordPress code instantly
  • Test any plugin code snippet or helper
  • Get immediate output
  • Shows queries for executed code.
  • Skip the step of creating a separate PHP file for testing function calls

Want to try SnapCode?

Try Now

Why Isn’t This on WordPress.org?

The answer is policy, not quality. The official WordPress.org plugin team no longer allows plugins that let you run arbitrary PHP code from inside the admin for security reasons. There is an older plugin named WP-Console that still exists because it was added before these restrictions came into effect, but new submissions with similar functionality are no longer accepted.

That’s why SnapCode is hosted on GitHub — being open-source ensures full transparency.

Download Plugin WP SnapCode

Releases

5 releases. Each count is every asset in that release; expand a row for the breakdown.

Tag
Published
Assets
Downloads
v1.2.0 latest
Oct 15, 2025 1 year ago
snapcode-1.2.0.zip
11
Sep 16, 2025 1 year ago
snapcode-1.1.3.zip
18
Sep 13, 2025 1 year ago
snapcode-1.1.2.zip
33
Sep 12, 2025 1 year ago
snapcode-1.1.1.zip
1
Sep 12, 2025 1 year ago
snapcode.zip
4

Active-site estimate ≈10 comes from the median of recent superseded releases. Method.

B grade

Security

SnapCode 1.2.0 · audited by WP Registry

Medium-severity findings.

1 medium
Audited release
1.2.0
Findings
1
Worst severity
medium
Content hash
435e1e4fa50223f3a9342fd5…

Findings

  • medium Tinker SQL log written to a web-accessible plugin tmp/query.json with no access control

    information_disclosure

    Every snapcode_output invocation calls empty_tmp_files(), which mkdir()s SNAPCODE_DIR/tmp at 0755 and seeds tmp/query.json. During eval, add_filter('log_query_custom_data', TinkerController::log_wp_query) appends each query string and query_time onto that file via file_put_contents. The directory is inside the plugin folder (normally served as /wp-content/plugins/snapcode/tmp/) and the plugin ships no index.php, .htaccess, or equivalent. After an administrator (or the Subscriber RCE in finding 1) runs a snippet, an unauthenticated GET of tmp/query.json returns the last run's SQL — including whatever the operator selected or dumped (wp_users, options, post_content). The file is only truncated to [] at the start of the next tinker call, so it remains world-readable between uses. tmp.txt is also created but is emptied on each run; get_output_by_cmd (which would write PHP into tmp.txt) is not called from get_output.

    src/Controllers/TinkerController.php:104-111,302-318

    Recommendation

    Do not store query logs under a URL-reachable plugin directory. Use a directory outside the web root, or wp_upload_dir() based paths protected with an index.php plus Apache/nginx deny rules, or keep the log in a non-public option/transient and delete it after the AJAX response. Never persist raw SQL from a REPL to a guessable public path.

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.