mitcho Michael 芳貴 Erlewine

Linguist. Fifth year PhD student at MIT.

HookPress

Download HookPress v0.1.11 [zip]
Donate to mitcho (Michael Yoshitaka Erlewine) for this plugin via PayPal

Webhooks are a simple paradigm for developing instant notifications and mashups based on simple HTTP requests. With HookPress you can set up webhooks so that a specified URL (a public service or something you set up) is requested when certain WordPress actions occur. Possible uses include generating push notifications or using non-PHP web technology to extend WordPress.

A tutorial video is available on WordPress.tv.

As seen on WordPress.com!

To learn about the various hooks WordPress provides, please consult the WordPress Plugin API’s Action Reference and Filter Reference. Not all hooks are supported yet, but more are in the works.

To learn more about webhooks, take a look at the webhooks blog as well as The Pushbutton Web by Anil Dash. Webhooks champion Jeff Lindsay’s excellent slides are a particularly good place to start.

To write and host a target script you can of course use your own server but you might also consider Scriptlets. A dead-simple tool which logs any requests thrown at it, test.php, is included with HookPress as a great way to test requests generated by your webhooks.

Installation

Upload the HookPress plugin to your blog’s wp-content/plugins/ directory and activate. In the admin section, go to Settings > Webhooks to add new webhooks.

Other notes

FAQ

How does HookPress affect performance?

HookPress currently makes requests synchronously so can measurably affect performance. I highly recommend using a caching plugin such as WP-SuperCache to stem the performance hit. If your filters’ results are time-sensitive or dependent on external data sources as well, make sure to set an appropriate cache expiration time.

Changelog

0.1.11

  • Fix to register the right number of incoming arguments for actions.

0.1.10

  • No longer depends on the Snoopy library; uses wp_remote_post() instead. Note that the HTTP referer may no longer be sent correctly.
  • Added the hookpress_request filter.
  • Code cleanup

0.1.9

  • New snazzy options screen, with help from Automattic
    • added webhook editing
  • Various miscellaneous features: added nonces for security, modularized the code a bit, etc.

0.1.8

  • Added more filtersÑnow covers basic + comment filters
  • Marking as compatible through 2.9.9, because it should be.
  • Added version checking and beta offers to the options screen.

0.1.7

  • Now supports basically all actions. (Still no actions with no arguments.)
  • Added more filter optionsÑnow covers all basic database read filters.

0.1.6

  • Added another batch of actions. (Still no actions with no arguments, though… something to consider.)
  • Fixed hooks which referred to the users and links tables.

0.1.5

  • Now enforces sending the first field in filters and highlights the first field.
  • Added FAQ note on performance concerns and caching.

0.1.4

  • Bugfix: hooks with ID 0 can now be deleted
  • Made HookPress fully localizable - please email before you start localizing to claim your language.

0.1.3

  • A small bugfix to the filters list for save_pre
  • Initial support for filters with an short list of supported filters
  • Updated test.php to return first parameter (to trivially support filters)

0.1.2

  • Added support for the post_url field
  • Added support for parent_* post fields for save_post which are sent in case the post is a revision of a previous draft.
  • Fixes a PHP error which displayed on install
  • Disallowed redirects on the webhook - corrects duplicate records when used with PostBin

0.1.1

0.1

  • Initial release
    • supports webhooks based on WP actions

Future plans

  • Editing webhooks (rather than deleting and adding)
  • More custmization on a per-webhook basis