Skip to content

Replace Akismet with Gravity Forms Turnstile on corporate #647

Description

@jpmckinney

Align www.open-contracting.org with www.open-spending.eu, which uses Fluent Forms with Cloudflare Turnstile.

This is not a prerequisite for dropping Akismet — Gravity Forms has an official Turnstile add-on, free on every licence tier (gravityformsturnstile 1.5.0 appears in our licensed manifest). The case for migrating is coalition alignment.

What's actually in scope

Only one form is live:

Form Fields Live?
2 — Office Hours 11 Yes, /contact-office-hours/
1 — Contact us 11 No — not embedded on any published page

/about/contact/ returns 200 with no Gravity Forms markup; the only wp:gravityforms blocks are on page 29984 and one draft.

The live form: 4 text, 1 email, 3 select, 1 textarea, 1 checkbox; 3 conditional-logic fields; 83 choices (45 of them country names); one notification to {admin_email}; one message confirmation; no honeypot; 0 stored entries (notification-only).

Translation burden is zero

gravity_form-1   620 strings   613 translated   <- not published anywhere
gravity_form-2   192 strings     0 translated   <- the live one, authored in Spanish

Theme coupling is two filters

app/Providers/FormServiceProvider.php is the only Gravity Forms reference in the theme:

add_filter('gform_disable_css', '__return_true');
add_filter('gform_disable_form_theme_css', '__return_true');

There are no .gform/.gfield/.ginput selectors anywhere in the theme's SCSS. Gravity Forms' own CSS is disabled and forms inherit generic element styles from resources/scss/base/_forms.scss, so there is no form CSS to port.

Steps

  • Install Fluent Forms and rebuild Office Hours (11 fields, 3 conditional rules, 83 choices)
  • Configure Turnstile, as on the coalition site (_fluentform_turnstile_details)
  • Set the notification to {admin_email} and the message confirmation
  • Swap the two filters in FormServiceProvider for the Fluent Forms equivalent (Idea Bureau)
  • Cut over page 29984; verify conditional fields, Turnstile, notification delivery and styling on staging
  • Decide form 1's fate — rebuild, or export its 613 translations and retire it
  • Remove gravityforms and akismet

Notes

Fluent Forms now has an official WPML bridge (multilingual-forms-fluent-forms-wpml) covering labels, placeholders and select/radio/checkbox choices. It is young (1.0.6) and WPML's certification was last tested against Fluent Forms 6.0.2. Only relevant if form 1 is rebuilt bilingually.

Refs #568

🤖 Generated with Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    S: cmsRelating to the WordPress and Wagtail serverpending decision

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions