Hooks reference

Every public SubtleForms and SubtleForms Pro action and filter, grouped by area, with what each one is for.

Every public hook in SubtleForms 2.7 and SubtleForms Pro 2.8. Names starting with subtleforms_pro/ need Pro. For full examples, see Developer hooks.

Lifecycle

HookTypeWhat it is for
subtleforms/loadedactionThe free plugin has loaded.
subtleforms/register_extensionsactionRegister an add-on with SubtleForms.
subtleforms/deactivatedactionThe free plugin was deactivated.
subtleforms_pro/loadedactionSubtleForms Pro has loaded.

Fields and logic

HookTypeWhat it is for
subtleforms/fields/registeractionRegister custom field types. Receives the field registry.
subtleforms/fields/inspector_controlsfilterChange the settings shown for a field in the builder.
subtleforms/fields/validate_valuefilterValidate a submitted value on the server.
subtleforms/logic/passesfilterOverride whether a field’s logic rules pass.
subtleforms/logic/evaluate_conditionfilterEvaluate a single condition, for custom operators.
subtleforms/templatesfilterAdd or change form templates.

Submissions

HookTypeWhat it is for
subtleforms/submit/before_storefilterChange submitted values before the entry is saved.
subtleforms/submit/after_storeactionAn entry was saved.
subtleforms/submission/completedactionA submission finished.
subtleforms/submission/computed_valuesfilterChange computed values, such as calculations, before saving.
subtleforms/submit/confirmationfilterChange the confirmation shown after submit.
subtleforms/submission/deletedactionAn entry was deleted.
subtleforms/uploads/max_filesfilterMaximum files per upload field. Default 1.

Email

HookTypeWhat it is for
subtleforms/mail/argsfilterChange the arguments of an email before it is sent.
subtleforms/email/attachmentsfilterAdd attachments to a notification email.
subtleforms/email/after_sendactionA notification email was sent.

Payments

HookTypeWhat it is for
subtleforms/payments/quotefilterChange the computed order: items, discount, tax and total.
subtleforms/payments/line_itemsfilterChange the order’s line items.
subtleforms/payments/validate_couponfilterAccept or refuse a coupon.
subtleforms/payments/gatewaysfilterRegister payment gateways.
subtleforms/payment/verifyfilterConfirm a payment when the visitor submits.
subtleforms/payment/capturefilterCapture an authorised payment after the entry is saved.
subtleforms/payment/voidactionRelease an authorised payment when saving failed.
subtleforms_pro/payments/max_totalfilterLargest order total accepted. Default 999999.99.

Front end

HookTypeWhat it is for
subtleforms/frontend/enqueuedactionPublic form assets were enqueued.
subtleforms/frontend/languagefilterChange the language used for form messages.
subtleforms/public_schemafilterChange the form data sent to the browser.

Spam protection and security

HookTypeWhat it is for
subtleforms/captcha/enabledfilterTurn the challenge on or off for a form.
subtleforms/captcha/recaptcha_min_scorefilterMinimum reCAPTCHA v3 score. Default 0.5.
subtleforms/spam/blockedactionA submission was blocked as spam.
subtleforms/client_ip/trusted_proxiesfilterProxies trusted when reading the visitor’s IP address.
subtleforms/capabilitiesfilterChange which capabilities can manage forms and entries.

Webhooks and integrations

HookTypeWhat it is for
subtleforms/webhooks/entry_valuesfilterChange the entry values sent in a webhook.
subtleforms/webhooks/payload_groupsfilterChange how the webhook payload is grouped.
subtleforms_pro/delivery/attemptedactionAn integration delivery was attempted.
subtleforms_pro/integrations/deferfilterWhether integration deliveries run in the background.

Pro analytics and PDFs

HookTypeWhat it is for
subtleforms/analytics/track_viewsfilterTurn form view tracking on or off.
subtleforms/analytics/track_funnelfilterTurn field funnel tracking on or off.
subtleforms_pro/pdf/fontsfilterAdd fonts for entry PDFs.

REST API

Public and admin endpoints live under the subtleforms/v1 namespace. Use subtleforms/rest/public_routes to change which routes are public.

Something unclear or out of date on this page? Tell us and we will fix it.