dlb’s Send-A-Link allows visitors to send someone an email containing a link to the post or page.
Key features include:
- Show visitors a link (icon and/or text) to send an email by adding a function call to your templates or a shortcode to your pages/posts.
- The input form, confirmation page, and email message are all based on easily modifiable HTML templates.
- Spam protection includes CAPTCHA verification and limiting any given IP address to two messages per minute.
- Send-A-Link loads fast because code is compact and does not use jQuery.
- Send-A-Link uses Javascript/AJAX for fast, inobtrusive form handling, but it degrades gracefully to provide full functionality to clients without Javascript.
- Built and tested on WordPress v3.5.1; although it might work on earlier versions, it has not been tested on them.
dlb’s Send-A-Link code is heavily commented, especially regarding WordPress plugin interfaces and AJAX features. This makes it a suitable starting point for novice developers to explore their own programming interests. I have attempted to make the code very understandable. However, I do not claim this to be model code because I am not an experienced developer myself. In fact, I would greatly appreciate constructive criticism.
In the future, I plan to release new versions with the following features, in approximately this order:
- Privacy reassurance that email addresses are not stored, but IP’s are
- Make the “send another message” link consistently re-display form with fields pre-filled
- Localize to be ready for translation, including delivery of po and mo files and some instruction on how to use POEDIT to customize the wording, regardless of language. This could especially apply to the error messages.
- Attempt to use PHP’s DOM handling routines for more robust and reliable formatting of responses when client does not have Javascript available
- Use a stored procedure to flush log daily to reduce number of times it is done
- Rewrite using class construction
- Add admin screens to specify some things now defined in constants and templates
- Make it easy to turn CAPTCHA off or on
- Make it easy to use other CAPTCHAs