=== Subscribe2 === Contributors: MattyRob, Skippy, RavanH Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=2387904 Tags: posts, subscription, email, subscribe, notify, notification Requires at least: 2.8 Tested up to: 3.2.1 Stable tag: 6.5 Sends a list of subscribers an email notification when new posts are published to your blog == Description == Subscribe2 provides a comprehensive subscription management and email notification system for WordPress blogs that sends email notifications to a list of subscribers when you publish new content to your blog. Email Notifications can be sent on a per-post basis or periodically in a Digest email. Additionally, certain categories can be excluded from inclusion in the notification and posts can be excluded on an individual basis by setting a custom field. The plugin also handles subscription requests allowing users to publicly subscribe (**Public Subscribers**) by submitting their email address in an easy to use form or to register with your blog (**Registered Users**) which enables greater flexibility over the email content for per-post notifications for the subscriber. Admins are given control over the presentation of the email notifications, can bulk manage subscriptions for users and manually send email notices to subscribers. The format of the email can also be customised for per-post notifications, subscribe2 can generate emails for each of the following formats: * plaintext excerpt * plaintext full post (Registered Users only) * HTML excerpt (Registered Users only) * HTML full post (Registered Users only) If you want to send full content HTML emails to Public Subscribers too then upgrade to [Subscribe2 HTML](http://wpplugins.com/plugin/46/subscribe2-html). == Installation == AUTOMATIC INSTALLATION 1. Log in to your WordPress blog and visit Plugins->Add New. 2. Search for Subscribe2, click "Install Now" and then Activate the Plugin 3. Click the "Settings" admin menu link, and select "Subscribe2". 4. Configure the options to taste, including the email template and any categories which should be excluded from notification 5. Click the "Tools" admin menu link, and select "Subscribers". 6. Manually subscribe people as you see fit. 7. Create a [WordPress Page](http://codex.wordpress.org/Pages) to display the subscription form. When creating the page, you may click the "S2" button on the QuickBar to automatically insert the subscribe2 token. Or, if you prefer, you may manually insert the subscribe2 shortcode or token: [subscribe2] or the HTML invisible ***Ensure the token is on a line by itself and that it has a blank line above and below.*** This token will automatically be replaced by dynamic subscription information and will display all forms and messages as necessary. 8. In the WordPress "Settings" area for Subscribe2 select the page name in the "Appearance" section that of the WordPress page created in step 7. MANUAL INSTALLATION 1. Copy the entire /subscribe2/ directory into your /wp-content/plugins/ directory. 2. Activate the plugin. 3. Click the "Settings" admin menu link, and select "Subscribe2". 4. Configure the options to taste, including the email template and any categories which should be excluded from notification 5. Click the "Tools" admin menu link, and select "Subscribers". 6. Manually subscribe people as you see fit. 7. Create a [WordPress Page](http://codex.wordpress.org/Pages) to display the subscription form. When creating the page, you may click the "S2" button on the QuickBar to automatically insert the subscribe2 token. Or, if you prefer, you may manually insert the subscribe2 shortcode or token: [subscribe2] or the HTML invisible ***Ensure the token is on a line by itself and that it has a blank line above and below.*** This token will automatically be replaced by dynamic subscription information and will display all forms and messages as necessary. 8. In the WordPress "Settings" area for Subscribe2 select the page name in the "Appearance" section that of the WordPress page created in step 7. == Frequently Asked Questions == = I want HTML email to be the default email type = You need to pay for the [Subscribe2 HTML version](http://wpplugins.com/plugin/46/subscribe2-html). = Where can I get help? = So, you've downloaded the plugin an it isn't doing what you expect. First you should read the included documentation. There is a ReadMe.txt file and a PDF startup guide installed with the plugin. Next you could search in the [Subscribe2 Forum](http://getsatisfaction.com/subscribe2/), the [WordPress forums](http://wordpress.org/support/) or the [Subscribe2 blog FAQs](http://subscribe2.wordpress.com/category/faq/). No joy there? Well, if you can't find an answer to your question you can get [paid support](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=2387904) by donating at least 20 UK pounds to the plugin author. = Where can I get more information about the plugin features? = A comprehensive guide that covers many, if not all, of the Subscribe2 features is available to purchase from the [My WP Works](http://mywpworks.com/store/subscribe2-ebook/) = Some or all email notifications fail to send, why? = In the first instance ***check this with your hosting provider***, they have access to your server logs and will be able to tell you where and why emails are being blocked. Some hosting providers place a restriction on the maximum number of recipients in any one email message. Some hosts simply block all emails on certain low-cost hosting plans. Subscribe2 provides a facility to work around this restriction by sending batches of emails. To enable this feature, go to Settings->Subscribe2 and located the setting to restrict the number of recipients per email. If this is set to 30 then each outgoing email notification will only contain addresses for 30 recipients. Reminder: because subscribe2 places all recipients in BCC fields, and places the blog admin in the TO field, the blog admin will receive one email per batched delivery. So if you have 90 subscribers, the blog admin should receive three post notification emails, one for each set of 30 BCC recipients. Batches will occur for each group of message as described above. A site on Dreamhost with many public and registered subscribers could conceivably generate a lot of email for your own inbox. = When I click on Send Preview in Settings->Susbcribe2 I get 4 emails, why = Subscribe2 supports 4 potential email formats for Susbcribers so you will get a preview for each of the different possibilities. = Why do I need to create a WordPress Page = Subscribe2 uses a filter system to display dynamic output to your readers. The token may result in the display of the subscription form, a subscription message, confirmation that an email has been sent, a prompt to log in. This information needs a static location for the output of the filter and a WordPress page is the ideal place for this to happen. If you decide to use Subscribe2 only using the widget you must still have at least one WordPress page on your site for Subscribe2 to work correctly. = My host has a limit of X emails per hour / day, can I limit the way Subscribe2 sends emails? = This is the second most common question I get asked (the first being about emails not being sent which quote often ends up here anyway!). This is more commonly called 'throttling' or 'choking'. PHP is a scripting language and while it is technically possible to throttle emails using script it is not very efficient. It is much better in terms of speed and server overhead (CPU cycles and RAM) to throttle using a server side application. In the first instance you should try to solve the problem by speaking to your hosting provider about changing the restrictions, move to a less restricting hosting package or change hosting providers. If the above has not put you off then I spent some time writing a Mail Queue script for Subscribe2 that adds the mails to a database table and sends then in periodic batches. It is available, at a price, [here](http://wpplugins.com/plugin/76/wordpress-mail-queue-wpmq). = Why is my admin address getting emails from Subscribe2? = This plugin sends emails to your subscribers using the BCC (Blind Carbon Copy) header in email messages. Each email is sent TO: the admin address. There may be emails for a plain text excerpt notification, plain text full text and HTML format emails and additionally if the number of recipients per email has been set due to hosting restrictions duplicate copies of these emails will be sent to the admin address. = I can't find my subscribers / the options / something else = Subscribe2 creates four (4) new admin menus in the back end of WordPress. * Posts -> Mail Subscribers : Allows users with Publish capabilities to send emails to your current subscribers * Tools -> Subscribers : Allows you to manually (un)subscribe users by email address, displays lists of currently subscribed users and allows you to bulk subscribe Registered Users * Users -> Subscriptions : Allows the currently logged in user to manage their own subscriptions * Settings -> Subscribe2 : Allows administrator level users to control many aspects of the plugins operation. It should be pretty self explanatory from the notes on the screen = I'm confused, what are all the different types of subscriber? = There are basically only 2 types of subscriber. Public Subscribers and Registered Subscribers. Public subscribers have provided their email address for email notification of your new posts. When they enter there address on your site they are sent an email asking them to confirm their request and added to a list of Unconfirmed Subscribers. Once they complete their request by clicking on the link in their email they will become Confirmed Subscribers. They will receive a limited email notification when new post is made or periodically (unless that post is assigned to one of the excluded categories you defined). The general public will receive a plaintext email with an excerpt of the post: either the excerpt you created when making the post, the portion of text before a tag (if present), or the first 50 words or so of the post. Registered Users have registered with your WordPress blog (provided you have enabled this in the core WordPress settings). Registered users of the blog can elect to receive email notifications for specific categories (unless Digest email are select, then it is an opt in or out decision). The Users->Subscription menu item will also allow them greater control to select the delivery format (plaintext or HTML), amount of message (excerpt or full post), and the categories to which they want to subscribe. You, the blog owner, have the option (Options->Subscribe2) to allow registered users to subscribe to your excluded categories or not. **Note** You can send HTML emails to Public Subscribers with the paid [Subscribe2 HTML version](http://wpplugins.com/plugin/46/subscribe2-html) of the plugin. = Can I put the form elsewhere? (header, footer, sidebar without the widget) = The simple answer is yes you can but this is not supported so you need to figure out any problems that are caused by doing this on your own. Read here for the basic approach. = I'd like to be able to collect more information from users when they subscribe, can I? = Get them to register with your blog rather than using the Subscribe2 form. Additional fields would require much more intensive form processing, checking and entry into the database and since you won't then be able to easily use this information to personalise emails there really isn't any point in collecting this data. = How do I use the Subscribe2 shortcode? = In version 6.1 of Subscribe2 the new standard WordPress shortcode [subscribe2] was introduced. By default, it behaves same as old Subscribe2 token, <--subscribe2-->, which means that it will show the same Subscribe2 output in your chosen page in WordPress or in the Widget. But it also has advanced options, which are related to form. The default form contains two buttons for subscribing and unsubscribing. You may, for example, only want form that handles unsubscribing, so the shortcode accepts a **hide** parameter to hide one of the buttons. If you use the shortcode [subscribe2 hide="subscribe"] then the button for subscribing will be hidden and similarly if you use [subscribe2 hide="unsubscribe"], only button for subscribing will be shown. The new shortcode also accepts two further attributes, these are **id** and **url**. To understand these parameters you need to understand that Subscribe2 returns a user to the default WordPress Page on your site where you use the shortcode or token however in some circumstances you may ant to override this behaviour. If you specify a WordPress page id using the id parameter or a full URL using the url parameter then the user would be returned to the alternative page. There are many scenarios in which to use new options, but here is an example: * Two separate WordPress pages, "Subscribe" that shows only Subscribe button, and "Unsubscribe", that shows only Unsubscribe button. Both pages also have text that should help users in use of form. * In the widget, show only Subscribe button and post form content to page "Subscribe" * In the Subscribe2 email template for new post, add text "You can unsubscribe on a following page:" which is followed with link to "Unsubscribe" page = I can't find or insert the Subscribe2 token or shortcode, help! = If, for some reason the Subscribe2 button does not appear in your browser window try refreshing your browser and cache (Shift and Reload in Firefox). If this still fails then insert the token manually. In the Rich Text Editor (TinyMCE) make sure you switch to the "code" view and type in [subscribe2] or . = My digest email didn't send, how can I resend it? = In order to force sending you'd need to change the date of publication on the posts from last week or amend the date stamp in the database regarding when the posts should be included from. If you opt for the latter way look in the options table for the subscribe2_options settings (it's an array) and you'll need to change the 'last_s2cron' value to a timestamp for last week. Then force the cron event to run again with [WP-Crontrol](http://wordpress.org/extend/plugins/wp-crontrol/). = How do I make use of the support for Custom Post Types = In a plugin file for your site or perhaps functions.php in your theme add the following code where 'my_post_type' is change to the name of your custom post type. function my_post_types($types) { $types[] = 'my_post_type'; return $types; } add_filter('s2_post_types', 'my_post_types'); = How can I make use of the support for Custom Taxonomies = In a plugin file for your site or perhaps functions.php in your theme add the following code where 'my_ taxonomy_type' is change to the name of your custom taxonomy type. function my_taxonomy_types($taxonomies) { $taxonomies[] = 'my_taxonomy_type'; return $taxonomies; } add_filter('s2_taxonomies', 'my_taxonomy_types'); = Can I suggest you add X as a feature = I'm open to suggestions but since the software is written by me for use on my site and then shared for free because others may find it useful as it comes don't expect your suggestion to be implemented unless I'll find it useful. = I'd like to be able to send my subscribers notifications in HTML = By default Public Subscribers get plain text emails and only Registered Subscribers can opt to receive email in HTML format. If you really want HTML for all you need to pay for the [Subscribe2 HTML version](http://wpplugins.com/plugin/46/subscribe2-html). = Which version should I be using, I'm on WordPress x.x.x? = WordPress 2.8 and up requires Subscribe2 from the 6.x stable branch. The most recent version is hosted via [Wordpress.org](http://wordpress.org/extend/plugins/subscribe2/). WordPress 2.3.x through to 2.7.x require Subscribe2 from the 4.x or 5.x stable branch. The most recent version is [5.9](http://downloads.wordpress.org/plugin/subscribe2.5.9.zip). WordPress 2.1.x and 2.2.x require Subscribe2 from the 3.x stable branch. The most recent version is [3.8](http://downloads.wordpress.org/plugin/subscribe2.3.8.zip). WordPress 2.0.x requires Subscribe2 from the 2.x stable branch. The most recent version is [2.22](http://downloads.wordpress.org/plugin/subscribe2.2.22.zip). = Why doesn't the form appear in my WordPress page? = This is usually caused by one of two things. Firstly, it is possible that the form is there but because you haven't logged out of WordPress yourself you are seeing a message about managing your profile instead. Log out of WordPress and it will appear as the subscription form you are probably expecting. Secondly, make sure that the token ([subscribe2] or ) is correctly entered in your page with a blank line above and below. The easiest way to do this is to deactivate the plugin, visit your WordPress page and view the source. The token should be contained in the source code of the page. If it is not there you either have not correctly entered the token or you have another plugin that is stripping the token from the page code. == Screenshots == 1. The Posts->Mail Subscribers admin page generated by the plugin. 2. The Tools->Subscribers admin page generated by the plugin. 3. The Users->Subscriptions admin page generated by the plugin. 4. The Options->Subscribe2 admin page generated by the plugin. == Changelog == = Version 6.5 by Matthew Robinson = * Fix for Multisite / MU detection for WordPress versions prior to 3.0 * Fix in the upgrade() function to insert database entires for Registered Users on first time install * Fix for the uninstaller script to allow use on regular and Multisite WordPress * Updated uninstaller to remove any postmeta entries on uninstall * Fix for blank post detail on HTML Excerpt notifications when the post content is brief * Fix for some PHP notices * Fix to remove all cron settings when options are reverted to per-post * Minor code layout changes and comment updates * Dropped use of WP_CONTENT_DIR to fix issues on site where wp-content/ folder has been moved = Version 6.4 by Matthew Robinson = * Wrapped all KEYWORDS in curly brackets {} so capitalised keywords can be used in content without being replaced * Added support for Custom Taxonomies - thanks to Ian Dunn * Added feature to allow commenters on your blog to subscribe when commenting (requires WordPress 2.9+) * Improved and updated some of the jQuery ready for WordPress 3.2 * Introduced 's2_registered_subscribers' filter to allow other plugins to dynamically add or remove email addresses to the 'registered' array - thanks to Allan Tan * Improved handling of [gallery] shortcode where no post id is defined for HTML emails - thanks to Chris Grady * Removed trailing semi colons from the maybe_add_column function calls * Fixed a type on the Settings page - thanks to Deborah Hanchey * Updated editor buttons to insert shortcode instead of token * Fixed some PHP notices about undeclared variables * Compressed some of the javascript code includes to reduce download time * Fixes to the Counter Widget ColorPicker jQuery code * Fixes to the Counter Widget label tags * Fixed a bug in the new_category function that was introduced in version 6.3 - thanks to crashtest * Improved the user experience when clicking Subscribe and Unsubscribe links in the WordPress MultiSite interface - thanks to Huyz * Improved the Bulk Manage section to take into account the digest notification setting * Updated the uninstall script * Updated some of the code comments to aid reviewing * Other minor improvements and fixes = Version 6.3 by Matthew Robinson = * Stopped using deprecated get_usermeta(), update_usermeta() and delete_usermeta() functions in WordPress 3.1 * Use WP_User_Query class and functions in WordPress 3.1 * Stop using buggy is_blog_user() multisite function * Fixed a bug where the creating of a new category would re-subscribed digest email users incorrectly = Version 6.2 by Matthew Robinson = * Pass email address to add() function explicitly * Fix typos in the ReadMe * Added warning on the Options page to avoid using the Subscribe2 KEYWORDS in posts as they will get substituted * Added HTML LABEL tags to the Subscribe2 form to support WCAG * SSL friendly with WordPress admin areas * Added filter to allow on-the-fly manipulation of the digest email * Added option choice to have emails send from the global admin email and addressed from the name of the blog * Change sending details for Preview emails so they can be more easily identified by type * Fixed a typo in a screen message to WordPressMU users = Version 6.1 by Matthew Robinson = * Fixed a glitch in the HTML tags in the Subscribe2 Widget that affected drag and drop functions in WordPress - thanks to Marty McOmber * Improved detection of Multisite installs - thanks to Nada Oneal * Fixed precontent and postcontent in the Widget to retain entered HTML tags - reported by Rob Saxe * Fixed a few small typos in the inline code comments and email subjects * Fixed a bug where Bulk Management changes to move all users to Plain Text Full content would result in blank settings - reported by Sean @ GetSatisfaction * Fixed issued with TIME and AUTHORNAME keywords in digest emails - thanks to Robert @ GetSatisfaction * Introduced a more flexible Subscribe2 shortcode - thanks to Milan for the patch code = Version 6.0 by Matthew Robinson = * Improved case sensitive SQL queries to avoid issues on some server configurations * Introduced option to check the notification override button by default at Settings->Subscribe2 - Appearance * Extend support for for multiuser sites to include WordPress 3.0 * Converted both Widgets to the WordPress 2.8 API - check your widgets are installation * Improved the Colour Picker in the Counter Widget * Integrated the Counter Widget into the Settings page * Removed several functions from the code for WordPress versions prior to 2.8 (2.8 is now a minimum requirement for Subscribe2) * Removed legacy tinymce files that are no longer required * Added code to prevent duplicate Public Subscriber entries * Introduced TABLELINKS keyword for digest type notifications = Version 5.9 by Matthew Robinson = * Added support for WordPress 3.0 Custom Post Types * Fix for failed save of "entries per page" setting * Correct Digest display issue associated with use of AUTHORNAME keyword * Fixed issue where posts were not included in Digest notifications despite settings * Fixed possible issue where a page is not included in Digest notifications if a certain category is excluded * Fixed issue where successful emailing from Post->Mail Subscribers would report as failed if Subscribe2 is set to email one user per email - Thanks to Meini from Utech Computer Solutions (www.utechworld.com) * Added a preview button in the Email Subscribers screen that will send current content of the window to the logged in user * Avoid duplicating the MIME-Version header in the emails * Removed direct links to Support forum * Ensure that Subscribe2 sanitises email addresses to RFC5322 and RFC5321 - Thanks to Vital * Improved the 'Save Emails to CSV' function to include additional information - Thanks to John Griffiths (www.luadesign.co.uk) * Report that there is no digest notification to resend rather than success if there are no posts in the email = Version 5.8 by Matthew Robinson = * Reverted erroneous use of a WordPress 3.0 function = Version 5.7 by Matthew Robinson = * Corrected some missed strings to allow i18n translation * Added AUTHORNAME to digest notification in the same was a TAGS and CATS (i.e. a fixed location in email independent of location in template) * Ensure digest email sending times are not updated when resend is invoked * Error check options for number of users displayed per page and if not an integer use default setting of 25 * Better name for cron 'define' and improved 'define' and 'defined' statements * Revert to using WordPress capability when adding menus rather than user_level, latter is deprecated * Added DATE and TIME keywords for per-post notifications = Version 5.6 by Matthew Robinson = * Fixed a critical bug in the digest function - a typo resulting failed notifications * Added ability to resend the last digest email again * Improved Bulk Management to apply to filtered users only (provided they are still Registered and not Public Subscribers) * Fix for HTML Excerpt mails not using email template = Version 5.5 by Matthew Robinson = * Made the email header function pluggable to allow custom changes that persist through versions * Fix for failed upgrades * Ensure HTML entities in blogname are decoded for emails * Add safety checking for options at install to protect against randomly resetting options = Version 5.4 by Matthew Robinson = * Fixed a bug introduced in 5.3 that produced in malformed email headers resulting in failed emails * Fixed an upgrade error that could result in an incomplete table update which blocked new subscriptions = Version 5.3 by Matthew Robinson = * Added an HTML Excerpt notification type which sends an HTML formatted excerpt of the post * Issue an error message in Settings->Subscribe2 if there is no WordPress page published on the blog site * Improved usage of time dropdown in Settings->Subscribe2 so it works for periodic emails that are on a less than daily frequency * Sorted categories by slugname for better presentation in the category selection area * Make sure Preview emails skip the mail queue if WPMQ is used * Fixed issue where blog posts made by email generated duplicate notifications * Added fixes with the hope of stopping the random settings reset glitch many thanks to Barbara Wiebel * Fixed AJAX bugs caused by deprecated jQuery function * Fixed an issue where Registered Users who have requests a password reset disappear from Subscribe2 * Amended code for IP address collection to work around IIS servers * Added COUNT keyword * Ensure that BLOGNAME is not used in digest emails if it is empty = Version 5.2 by Matthew Robinson = * Added screen_icon() to each Subscribe2 admin page * Improved addition of links to the Plugins admin page * Improved XHTML validity of admin pages * Improved display of category hierarchy display in the category form * Added ability to use TAGS & CATS keywords in digest mails (position is static irrespective of keyword location) * Use PHP variable for Subscribe2 folder to allow for easier renaming (if needed) * Fixed a bug in TinyURL encoding introduced when links were click enabled * Removed BurnURL from the plugin as it appears to be no longer operational * Added urlencode to email addresses in Tools->Subscribers when editing other user preferences * Restored several FAQs to the ReadMe file and the [WordPress.org FAQ section](http://wordpress.org/extend/plugins/subscribe2/faq/) = Version 5.1 by Matthew Robinson = * Add widget options to add custom text before and a after the dynamic Subscribe2 output - thank to Lee Willis * Add protection against SQL injection attacks to the data entered into the Subscribe2 table * Applied a fix for WP_User_Search on PHP4 installations * Collect IP address of subscribers either at initial submission or at confirmation as required by some hosts to allow relaxation of email restrictions. IP details are in the database or available when the mouse pointer is held over the sign up date in Tools->Subscribers * Fix for script execution time limit code for sites that have safe mode on or that have disable ini_set() * Display category slugs when mouse pointer is held over the name in the category form area * Fixed display of HTML entities in the subject of emails by using html_entity_decode() * Fixed substitution of the MYNAME keyword in notification emails * Added option to use BurnURL as an alternative to TinyURL to create shorter link URLs = Version 5.0 by Matthew Robinson = * Change version number to reflect change in the on going support of the plugin which is now a searchable forum or a paid service * Added links to online Subscribe2 resources into the Options->Subsribe2 page * Fixed Digest Time Dropdown to recall Cron Task scheduled time * Fixed code using updated [Admin Menu Plugin](http://wordpress.org/extend/plugins/ozh-admin-drop-down-menu/) API * Fixed foreach() error in widget rename function * Improved layout of widget control boxes * Improved identification of Administrator level users on blogs where usermeta table entries for user_level are low or missing * Removed avatar plugin support on WPMU due to processing overhead * Improved the layout of the digest email with respect to inclusion of unnecessary white space * Extended maximum script runtime for servers not using PHP in safe mode = Version 4.18 by Matthew Robinson = * Option to sort digest posts in ascending or descending order * Check that plugin options array exists before calling upgrade functions * Improved reliability of the Preview function * Extended Preview function to digest emails * Fixed a code glitch that stopped CATS and TAGS from working * Fixed incorrect sender information is emails are set to come from Post Author * Simplified email notification format options in Users->Subscriptions for per-post notifications * Added Bulk Manage option to update email notification format * Simplified the usermeta database entries from two format variables down to one * Removed trailing spaces from some strings for improved i18n support * Improved Bulk Subscribe and Unsubscribe routines to avoid database artefacts * Moved Select/Deselect All check box to the top of the category list in admin pages * Fixed small layout glitch in Manage->Subscribers screen * Added ChangeLog section to ReadMe to support WordPress.org/extend development = Version 4.17 by Matthew Robinson = * Tested for compatibility with WordPress 2.8.x * Added TAGS and CATS keyword for per-post notification templates * Fixed bug where confirmation emails may have an empty sender field if notifications come from post author * Fixed a bug in WPMU CSS * Added option to exclude new categories by default * Fixed a bug where emails may not be sent to subscribers when a user subscribes or unsubscribes * Improved accessing of 'Admin' level users on blogs where user_level is set below 10 * Added ability to send email previews to currently logged in user from Settings->Subscribe2 * Styled admin menu form buttons to fit with WordPress theme * Improved handling of confirmation sending to reduce errors = Version 4.16 by Matthew Robinson = * Correct minor layout issue in Settings->Subscribe2 * Allow users to define the div class name for the widget for styling purposes * Select from a greater number of notification senders via dropdown list in Settings * Improved efficiency of newly added WordPressMU code * Added ability to manage across-blog subscriptions when using WordPressMU * Fixed bug whereby Public Subscribers may not have got notification emails for posts if Private Posts were blocked * Added ability to define email Subject contents in Settings->Subscribe2 * Sanity checks of email subject and body templates to ensure they are not empty * Introduced s2_html_email and s2_plain_email filters to allow manipulation of email messages after construction * Amended handling of database entries to simplify code and database needs * Improved the layout of the Subscriber drop down menu * Added bullet points to the TABLE of posts * Ensure database remains clean when categories are deleted * Added new option to manage how auto-subscribe handles excluded categories = Version 4.15 by Matthew Robinson = * Fixed E_DEPRECATE warning caused by a variable being passed by reference to the ksort() function * Fixed called to undefined function caused by typo * Fixed a syntax error in the SQL code constructors affecting some users = Version 4.14 by Matthew Robinson = * Reordered some functions to improve grouping * Stop s2mail custom variable being added if empty * Localised 'Send Digest Notification at' string * Add support for template tags in Post->Mail Subscribers emails * Improve handling of translation files for more recent version of WordPress * Implemented