| 开发者 | deftmindlabs |
|---|---|
| 更新时间 | 2026年8月12日 03:04 |
| 捐献地址: | 去捐款 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.0 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
/thank-you/?order_id=1234, name that parameter and your workflow receives the value directly. One rule replaces a subscription to something that only forwards events for you.
Bring the results back. Point any workflow at the plugin's secure endpoint. Payloads arrive into named channels and appear on any page through shortcodes, as formatted articles, data tables, or live-updating feeds.
Ask, and show the answer. Add a form to any page. Submissions are proxied through your own server to your webhook, and the reply renders in place without a page reload. If your platform cannot answer on the connection the form opened - or the work takes minutes - callback mode hands it a one-time return URL to post the answer back to instead.
Private AI chat, without vendor lock-in. Turn on conversation mode and a form becomes a threaded chat. Each turn sends the running conversation to your workflow, so a retrieval-augmented (RAG) pipeline can answer with context. The intelligence stays in your workflow: no API keys stored in WordPress, any model or vector database, and no third-party chat service in the middle.
Anonymous and ephemeral by design. Visitors need no account. Nothing about a conversation is written to your database; the thread lives in the visitor's browser and is gone on reload. For sites answering sensitive questions, that is a feature, not a limitation.
Works with the form you already have. If your site already uses a form plugin, add a couple of data attributes to its markup and Hookwright handles the round trip without replacing anything.
Built for safety
/thank-you/?email=someone@example.com, that address is part of the page URL and will be sent - and on that visitor's next tracked click it appears again as the referrer, because the referrer is simply the page they came from. Two settings control this: a list of query parameters to capture deliberately (empty by default, so nothing is extracted unless you name it), and an option to remove query strings from both the page URL and the referrer URL. Where you can, use an order or customer reference and look the person up on the other side rather than sending an email address anywhere.
Nothing is hashed. Whatever you choose to capture arrives at your webhook readable and stays readable in your workflow tool's execution history. Hashing would not help: an email address can be recovered from its hash by simply trying addresses, so it would remain personal data - and it would no longer be usable for the thing you captured it for. A reference you can look up is the better answer.
You are the data controller for whatever you choose to collect. Disclose it in your privacy policy and obtain consent where the law that applies to you requires it.
Third-party code
This plugin bundles Parsedown 1.7.4 by Emanuil Rusev (https://parsedown.org), used in safe mode to render Markdown. Parsedown is MIT licensed and the full licence text is reproduced in includes/class-hookwright-markdown.php. The class is renamed so it cannot collide with another plugin bundling its own copy; it is otherwise unmodified.
Deftmind Hookwright Pro
An optional add-on that lets your automation act on the site, rather than only feed it. Incoming payloads become real WordPress posts or pages - titles, Markdown bodies, categories, tags and featured images mapped to native fields, including custom post types and custom fields - and the reply your workflow sends back to a form can be saved the same way. It also signs outbound requests, so the receiving end can verify nothing was altered in transit.
Details and download: https://deftmindlabs.com/hookwright/
Documentation: https://deftmindlabs.com/docs-reference/
[hookwright_display] or [hookwright_form] on a page using a Shortcode block.No. Anything that can send or receive an HTTP request with JSON works, whether that is a hosted automation service, a self-hosted workflow tool, or your own script.
No, and deliberately so. Hookwright is the interface; your workflow supplies the intelligence. That means no API keys stored in WordPress and no lock-in to one AI vendor.
No. The conversation exists only in the visitor's browser for the life of the page. Nothing is written to your database and nothing is sent to the plugin author.
Use this plugin's support forum on WordPress.org. It helps to say what you expected, what happened instead, which response handling mode the form uses, and anything listed under Recent send problems on the Settings screen.
Email support@deftmindlabs.com. Please report security problems privately rather than in the public forum, and allow time for a fix to ship before disclosing them. This address is for security reports and bug reports only - for help using the plugin, the support forum above is the faster route.
Use Callback response handling. The plugin hands your workflow a one-time return URL in the payload; the workflow accepts the request, does its work, and posts the answer back whenever it is ready. The visitor keeps waiting on the page, and no PHP worker is held open in the meantime.
Yes, and that is what the Events screen is for. Under Deftmind Hookwright > Events, add a rule with the trigger Page loaded and the page URL pattern of your landing page, for example /thank-you/. Set your webhook URL at the top of the same screen and enable it.
If the redirect carries data you need, name those parameters in Capture query parameters. A visitor arriving at /thank-you/?order_id=1234 then produces a payload containing "query": { "order_id": "1234" }, which your workflow can act on directly.
Prefer an order or customer reference over an email address or a name. A reference means the personal data stays where it already lives and your workflow looks it up; putting an email address in a URL writes it into your server logs, the visitor's browser history, and your workflow tool's execution logs. If you do capture one, tick the option to remove the query string from the page URL so it is sent once rather than twice, and make sure your privacy policy says so.
Clear your caching plugin and any CDN cache, then reload with a hard refresh (Ctrl+Shift+R or Cmd+Shift+R). Page caches often keep serving old HTML and old JavaScript after an update.
Set the default under Deftmind Hookwright > Settings, choose a mode on the form, or add the attribute directly, for example [hookwright_display render="markdown"]. The shortcode attribute always wins. In auto mode the plugin renders an article when it recognises a text field in the payload and a table otherwise.
Yes. Payload shapes are normalised rather than assumed: wrapper objects such as {"data":{...}} are unwrapped, key names are matched loosely so postTitle and post_title both work, and category or tag lists are accepted as arrays, JSON-encoded strings, arrays of objects, or plain delimited text.
The channel name in the shortcode must match the channel your webhook sends exactly. Check Deftmind Hookwright > Channels for the names actually received, then clear your page cache.
That is intentional. Raw HTML in a payload is escaped rather than rendered, because payload content is treated as untrusted. Send Markdown instead.
select), radio buttons (radio), a single tick box (checkbox) and a date picker (date) join the existing seven. Dropdowns and radio buttons list their answers on the same line, after a colon: size | Size | select:Small,Medium,Large. Whatever comes back is checked against that list on the server, so a form can only ever forward one of the answers you offered.note | Why so large? | text | | if:size=Large, or != for any other answer. A field may only depend on a field listed above it.request_id, and the waiting bubble watches for that one reply - so a chat can be answered by a workflow that takes minutes without holding a PHP worker open for the whole time. The conversation object still travels in the payload, so your workflow keeps the thread and its history.return_url handed to your workflow was rejected, and the browser's own check for the reply was too, so the visitor waited out the deadline for an answer that could never be accepted. Both now use add_query_arg().[hookwright_display] refreshing on those sites, for the same reason - the poll never reached the plugin, so a display with refresh="10" simply never updated.source of browser or wordpress, so one workflow can handle both./thank-you/?order_id=1234 can drive a workflow directly. Empty by default: nothing is extracted unless you name it, and an option removes query strings from the page and referrer URLs entirely.hookwright:rendered JavaScript event, fired on document once a reply has rendered, carrying the content element, the export menu, the reply data and the mode. Add-ons extending a reply now have a supported way in instead of searching the page for one. hookwright:response is unchanged and still fires on the form with the raw data.hookwright_delivery action after every outbound request, for add-ons keeping a delivery history. This plugin stores nothing itself.