[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fIwdlyYhTQi9GT7CBMVf4B9IcnfDVTak9RmB7k7sUVvE":3},{"slug":4,"display_name":4,"profile_url":5,"plugin_count":6,"total_installs":7,"avg_security_score":8,"avg_patch_time_days":9,"trust_score":10,"computed_at":11,"plugins":12},"forgepress","https:\u002F\u002Fprofiles.wordpress.org\u002Fforgepress\u002F",1,0,100,30,94,"2026-04-04T16:19:17.223Z",[13],{"slug":14,"name":15,"version":16,"author":4,"author_profile":5,"description":17,"short_description":18,"active_installs":7,"downloaded":19,"rating":7,"num_ratings":7,"last_updated":20,"tested_up_to":21,"requires_at_least":22,"requires_php":23,"tags":24,"homepage":30,"download_link":31,"security_score":8,"vuln_count":7,"unpatched_count":7,"last_vuln_date":32,"fetched_at":33},"forgepress-country-choice-rules-for-gravity-forms","ForgePress Country Choice Rules for Gravity Forms","1.3.2","\u003Cp>\u003Cstrong>ForgePress Country Choice Rules for Gravity Forms\u003C\u002Fstrong> lets you define rules that remove specific \u003Cstrong>choices\u003C\u002Fstrong> (radio, dropdown, checkbox options) for visitors from selected countries. This happens \u003Cstrong>server-side\u003C\u002Fstrong> (secure), and you can configure a \u003Cstrong>fallback choice\u003C\u002Fstrong> to auto-select when an option is removed.\u003C\u002Fp>\n\u003Ch3>Highlights\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Per-country choice blocking\u003C\u002Fstrong> for radio, dropdown, and checkbox fields\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Multi-form \u002F multi-field\u003C\u002Fstrong> rules (simple repeater UI)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Fallback choice\u003C\u002Fstrong> (optional) if a blocked option is removed\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Server-side filtering\u003C\u002Fstrong> (not just CSS\u002FJS hiding)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Optional VPN\u002FProxy handling\u003C\u002Fstrong>:\n\u003Cul>\n\u003Cli>\u003Cem>Do nothing\u003C\u002Fem>  \u003C\u002Fli>\n\u003Cli>\u003Cem>Show warning\u003C\u002Fem> message  \u003C\u002Fli>\n\u003Cli>\u003Cem>Force a default country\u003C\u002Fem> for rule evaluation  \u003C\u002Fli>\n\u003Cli>\u003Cem>Block submission\u003C\u002Fem> with a custom message\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Cloudflare aware\u003C\u002Fstrong> (\u003Ccode>CF-IPCountry\u003C\u002Fcode>) with 1h caching for IP lookups\u003C\u002Fli>\n\u003Cli>Lightweight and admin-friendly\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cblockquote>\n\u003Cp>This plugin is \u003Cstrong>not\u003C\u002Fstrong> affiliated with or endorsed by Gravity Forms. It simply integrates with Gravity Forms via its standard hooks.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch3>How it works (in short)\u003C\u002Fh3>\n\u003Col>\n\u003Cli>You add rules: \u003Cstrong>Form ID + Field ID + Choice Text\u002FValue + Countries\u003C\u002Fstrong> (+ optional fallback).\u003C\u002Fli>\n\u003Cli>On render\u002Fvalidation, the plugin detects the visitor \u003Cstrong>country\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>If a rule matches, the corresponding \u003Cstrong>choice(s) are removed\u003C\u002Fstrong> and an optional \u003Cstrong>fallback\u003C\u002Fstrong> is selected.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>External Services & Data Flow (Guideline 6)\u003C\u002Fh3>\n\u003Cp>This plugin may use third-party services to determine the visitor’s country and (optionally) detect VPN\u002FProxy usage.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Cstrong>Cloudflare (if your site is on Cloudflare):\u003C\u002Fstrong>\u003Cbr \u002F>\nWe read the \u003Ccode>CF-IPCountry\u003C\u002Fcode> header provided by Cloudflare. No outbound request is made by this plugin.\u003Cbr \u002F>\nPrivacy: https:\u002F\u002Fwww.cloudflare.com\u002Fprivacypolicy\u002F\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>ipapi.co (free)\u003C\u002Fstrong> \u003Cem>(default geolocation when Cloudflare is not present)\u003C\u002Fem>:\u003Cbr \u002F>\nThe plugin requests \u003Ccode>https:\u002F\u002Fipapi.co\u002F{IP}\u002Fjson\u002F\u003C\u002Fcode> to map visitor IP \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> country.\u003Cbr \u002F>\n\u003Cstrong>Data sent:\u003C\u002Fstrong> visitor IP only.\u003Cbr \u002F>\n\u003Cstrong>Retention:\u003C\u002Fstrong> result cached in WordPress for 1 hour.\u003Cbr \u002F>\nPrivacy: https:\u002F\u002Fipapi.co\u002Fprivacy\u002F\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Optional VPN\u002FProxy checks (opt-in by the site admin):\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>ipregistry.co\u003C\u002Fstrong> (if an API key is configured):\u003Cbr \u002F>\n\u003Cstrong>Data sent:\u003C\u002Fstrong> visitor IP to check proxy\u002FVPN indicators.\u003Cbr \u002F>\nPrivacy: https:\u002F\u002Fipregistry.co\u002Fprivacy\u003C\u002Fli>\n\u003Cli>\u003Cstrong>ipapi.com PRO\u003C\u002Fstrong> (if an API key is configured):\u003Cbr \u002F>\n\u003Cstrong>Data sent:\u003C\u002Fstrong> visitor IP with \u003Ccode>security=1\u003C\u002Fcode> to check VPN\u002FProxy\u002FTor.\u003Cbr \u002F>\nPrivacy: https:\u002F\u002Fipapi.com\u002Fprivacy\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>No form entries or personal form fields are sent to these providers. Admins can \u003Cstrong>disable\u003C\u002Fstrong> optional VPN checks entirely.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>GDPR\u002FPrivacy:\u003C\u002Fstrong> Only an IP address may be sent to the selected provider(s) to derive country\u002FVPN status. You should disclose this in your site privacy policy if enabled.\u003C\u002Fp>\n\u003Ch3>Notes on Naming \u002F Trademarks\u003C\u002Fh3>\n\u003Cp>This is an independent plugin \u003Cstrong>for\u003C\u002Fstrong> Gravity Forms and is not affiliated with or endorsed by Gravity Forms. The name and readme make this relationship clear.\u003C\u002Fp>\n\u003Ch3>Features in Detail\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Rule builder UI\u003C\u002Fstrong> under \u003Cem>Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> ForgePress Country Choice Rules\u003C\u002Fem>\n\u003Cul>\n\u003Cli>Add multiple rows; each row targets a \u003Cstrong>Form ID + Field ID\u003C\u002Fstrong>, the \u003Cstrong>choice label\u002Fvalue\u003C\u002Fstrong>, and a list of \u003Cstrong>countries (ISO-2)\u003C\u002Fstrong>.  \u003C\u002Fli>\n\u003Cli>Optionally set a \u003Cstrong>Fallback choice\u003C\u002Fstrong> to auto-select if the blocked option is removed.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Runtime enforcement\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>Choices are removed on \u003Ccode>gform_pre_render\u003C\u002Fcode> and validated on \u003Ccode>gform_validation\u003C\u002Fcode>.  \u003C\u002Fli>\n\u003Cli>If a blocked value is posted manually, validation fails with a clear message.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>VPN\u002FProxy handling\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>Admin can choose: \u003Cem>Do nothing\u003C\u002Fem>, \u003Cem>Show warning\u003C\u002Fem>, \u003Cem>Force country\u003C\u002Fem>, or \u003Cem>Block submission\u003C\u002Fem>.  \u003C\u002Fli>\n\u003Cli>Works without an API key (heuristics). With a key (ipregistry\u002Fipapi PRO), detection is more accurate.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n","Country-based choice rules for Gravity Forms. Hide or replace field choices per country, with optional VPN\u002FProxy handling.",191,"2025-09-16T17:31:00.000Z","6.8.5","5.8","7.4",[25,26,27,28,29],"choices","conditional-logic","country","geolocation","gravity-forms","","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fforgepress-country-choice-rules-for-gravity-forms.1.3.2.zip",null,"2026-03-15T15:16:48.613Z"]