WordPress.DB.PreparedSQLPlaceholders.UnsupportedIdentifierPlaceholder

Unsupported Identifier Placeholder

A SQL query is built in a way that Plugin Check cannot verify as safely prepared.

critical weight

Why It Shows Up

The scan found missing, incorrect, quoted, unsupported, or mismatched SQL placeholders around `$wpdb->prepare()` usage.

Why It Matters

Broken preparation can leave dynamic SQL values unsafe or make queries behave differently than intended.

How to Fix

  • Keep placeholders in the SQL string and pass dynamic values as separate arguments.
  • Use the placeholder that matches the value type.
  • Do not quote placeholders manually, and use allowlists for identifiers or SQL fragments.

Affected Plugins

RankPluginScoreErrorsWarningsInstallsAddedUpdatedTop Issue
#51Geo Blocker – Control Site Access by Region and IP4210641k+Direct Query
#52hCaptcha for WP421151870k+Exception output is not escaped
#53User Role Editor43117145700k+Output is not escaped
#54WP Mail Log43402910k+Text Domain Mismatch
#55wp-Monalisa485694700Direct Query
#56Subscriptions for WooCommerce with Stripe Recurring Payments569467900Non-prefixed global variable
#57Social Media Auto Poster – Schedule & Publish to Buffer58232117k+Dynamic hook name
#58Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages628110440k+Missing direct file access protection
#59Sublium Subscriptions – Subscriptions for WooCommerce – Recurring Payments, Subscription Plans & Installments743522500wp function not compatible with requires wp
#60Interlinks Manager – Internal Links Optimizer8017137k+Database parameter is not escaped