Subscribe2 3.3 for WP2.1.x

Version 3.3 of the Plugin is now available for download for WordPress 2.1.x users only! This version has been tested on WordPress 2.1.2 and 2.1.3.

For users of WordPress 2.0.x, please download Version 2.17 of Subscribe2.

This version contains the following improvements:

  • QuickTag button added! (The WordPress hook has been delayed until 2.3) Works with Visual and Standard Editor. Look in Code for token addition if using RTE.
  • Current Server time displayed for Cron tasks
  • Fixed bug so Registered users now identified correctly
  • Upgrade function called via WordPress hook to prevent calls to undefined functions

If you use this plugin make a donation to support future development!

Download Version 3.3, recommended for users of WordPress 2.1.1 and above.

Download from mirror site.

To install correctly:

  1. Deactivate your exisiting Subscribe2 Plugin
  2. Use FTP software to delete the old plugin and upload the new version
  3. Activate the new version of the plugin

65 thoughts on “Subscribe2 3.3 for WP2.1.x

  1. Hi Matthew
    Thanks for your work.

    Im having some troubles with the new update to 3.3.

    In WP option menu Subscribe2 tab is showing up 2 times.
    In WP manage menu Subscribers tab is showing up 2 times.

    The 3 e-mail forms are empty after upgrade.

    If possible I can e-mail you some screen dumps. Im also looking for a way to send you the danish translation. The one in subscribe2/i18n is rather old.

    sincerely mads

  2. I ran into the duplicate menu issue when testing on WP2.3alpha – I think it may be a cache issue in WordPress or the browser – the code is not hooking the menu twice!

    It’s a worry that your settings went missing, clicking RESET will restore the defaults.

  3. Hi there. Same thing happens to me. Duplicate Subscribe2 options and also duplicate Subscribe2 under Manage.

    I reset the options, and redid them, and saved. When I came back to options, they didn’t show again.

    The mistake I made was installing 2.2.17 by mistake. I then disabled the plugin, deleted the folder and the other php file it installs on the plugins main folder. Installed the correct files, and activated the plugin…. but it still was showing duplicate menus. I don’t know if the 2.2.17 install was responsible or not.

    Finally, if I de-activate the plugin, both menu options disappear, and by reactivating, both reappear…


  4. Okay folks, bit of a glitch I think between a class and a function. Try the following, it works for me. I’ve updated the code in the download based on these changes so if you aren’t comfortable editing code – re-download!

    Change line 49 from:

    $mysubscribe2 = new subscribe2();


    $mysubscribe2 = new s2class;

    Change line 53 from:

    class subscribe2 {


    class s2class {

  5. Worked like a charm.
    -no more duplicated options
    -updating options don’t “go away”
    -subscribers intact. All’s well.


  6. Solved
    In subscribe2widget.php at line 19 change:

    //Check Sidebar Widget and Subscribe2 plugins are activated
    if ( !function_exists(‘register_sidebar_widget’) || !class_exists(‘subscribe2’))


    //Check Sidebar Widget and Subscribe2 plugins are activated
    if ( !function_exists(‘register_sidebar_widget’) || !class_exists(‘s2class’))

    Finish πŸ™‚

  7. If I could make a suggestion…

    I ran into an issue using this plugin with a wpmu installation, but I dont think its necessarily limited to that sw.

    It appears to me that your check for whether or not you need to install the subscribe2 plugin is not optimal. Your check is:

    if(mysql_query(“SELECT COUNT(*) FROM “.$this->public)==FALSE) { $this->install(); }

    if one doesnt yet have any subscribers, this will attempt to install over and over as count returns null for empty table. In wpmu, this prevents the creation of new blogs due to multiple functions attempting to require upgrade-functions(). In addition, its unnecessary action to attempt to install.

    A better check, IMHO, for a need to install would be:

    if(!mysql_query(“DESCRIBE “.$this->public)==FALSE) { $this->install(); }

    If the table is created, this will fail and doesnt require that you have a subscriber…

    just my two cents…

    thanks for a very nice plugin…

  8. The download links only link to version 2.17 (according to the text file in the download). Where do I find 3.3?

  9. Beth, if you have downloaded from the Main or Mirror site above you have the right files for WordPress 2.1.x. The Readme is mainly aimed at WordPress 2.0.x as this is going to be supported for much longer than 2.1.x which is due for replacement by 2.2 any day.

  10. We’ve just installed the new version of your plugin, but seem to be having problems. After the install we got an error in the Categories section under “Manage > Subscribers”. We changed the line
    foreach ($all_cats as $cat) {
    foreach ((array)$all_cats as $cat) {
    This seemed to correct the error, but now we only have a checkbox with no category, we have tried adding a new category, but it still does not show anything.
    Any thoughts?

  11. Can you let me know the version of WordPress that you are running and also what the error was that you saw. Also, how many categories does you site have?

    With your fix you are arraying an array hence the loss of the Category name.

  12. We are running wp 2.1 and we have 5 categories (1 is the blogroll but the rest are “real” categories).
    We have also removed the “fix” we made and this is the error we get –
    Warning: Invalid argument supplied for foreach() in /…serverpath…/html/wordpress/wp-content/plugins/subscribe2/subscribe2.php on line 1641

    The only other plugin we have is EventCalendar 3.1.1.rc1 so one of our categories is “assigned” to that, but we have no other errors being displayed.

    Thank you in advance for your help.

  13. I have a slight problem, only my first confirmed subscriber receives an email upon update. Could this be due to BCCLIMIT value? It is set to 0.

  14. Marilyn,

    It does seem that the foreach is not being passed an array as required. Which release for WordPress 2.1 are you on. There were problems in 2.1.0 and 2.1.1 (I think), so moving to 2.1.3 may fix this if you aren’t already on this version.

  15. Beth,

    When BCCLIMIT is 0 all subscribed are put together in one long BCC header. I think therefore it is more likely an email restriction in place from your hosting provider. Check with them if they are impementing any limitations on outgoing emails – like number of recipients or mails per hour.

  16. Thanks, I talked to the hosting provider and no such restrictions exist. I changed the BCCLIMIT to 1 and still, only person got it. If I delete that person from the list, another randomly chosen person receives the email.

    Very strange.

  17. Also, the sender is receiving two copies… which appears to be incorrect according to line 303.

  18. Beth,

    Can you confirm what version of WordPress and Subscribe2 that you are using? Something strange is going on with your install, that much is certain!

  19. I know, bah. I have WordPress 2.1.3 and Subscribe Version: 2.3.3 for WP2.1

    I also have my hosting admin looking at the script. I did some print $header; testing and it looks like it is repeating the header information twice before it sends it.

    I have less than 30 subcribers, I’m not on Dreamhost, and BCCLIMIT is set to 0.

  20. I’m not having much luck with Subscribe2. I have followed the directions, but the subscription form does not display!

    One hint that something else is amiss is that when I edit subscribe.php using the plugin editor and hit “update changes”, I just get a blank page, not a “successfully saved” message.

    I edited the file using the webhost’s editor to change S2PAGE to 5 (the ID of my “subscribe” page, which has the S2 token on it).

    Any reasonable way to followup what may be going on?

    Thanks for a good plugin…I just need to make it work! (WP 2.1.3 and S2 3.3)

  21. Beth,

    Depending on your subscribers the $header could get repeated 3 times, one for each of the different email types sent; plaint excerpt, palin full and HTML (more in BCCLIMIT > 0).

    Please, let me know what your hosting admin comes back with.

  22. Camner,

    If you have been playing around in the admin section of WordPress you’ll be logged in. This means the form won’t display but will direct you to your profile – if you are a registered and logged in user you manage you subscription differently.

    Try logging out or opening your site in a different browser application to see the form.

  23. Hi,

    I don’t seem to have any problems with Subscribe2 3.3 using WP 2.1.3… except one πŸ™‚

    My only problem is that on the config screen where I can “exclude” categories – I try excluding 2 categories, but the users can still see/subscribe to them.

    This happened with another plugin (Limit Categories), but I was able to fix it with a patch. I’m wondering if it might be the same problem?


  24. Oh – and by the way – i DID uncheck the option to allow registered users to subscribe to all categories.

  25. Thank you for your quick reply. Unfortunately, I am still not able to make this work. I logged out, cleared the temporary internet files (caches), rebooted, used a new browser on a different computer, and still I get no evidence that anything is happening with subscribe2. I create the “subscribe” page, edit the subscribe2.php file so that the following code appears: define(‘S2PAGE’, ‘4’);

    To verify, I go to “manage pages” and see that my “subscribe” page has ID=4.

    When I click on the “subscribe” page link, I get taken to the subscribe page, but nothing appears. You can see for yourself at

    And, when I’m logged in, I’m not taken to the profile page. I’m taken to the “subscribe” page, and nothing else happens.

    I’ve even tried deleting the entire WP installation, reinstalling, and doing nothing else besides installing subscribe2!

    I’m probably missing something really obvious, but (obviously!) I can’t figure this one out.

    Hmmm…let me try a longshot. When installing subscribe2, there are TWO ‘subscribe2’ directories in the download package. The outer one contains the file ‘buttonsnap.php’ and contains another folder called ‘subscribe2’. That inner folder is the one, along with buttonsnap.php, I’m uploading to the server. I presume that is correct because I am able to activate the plugin.

    Could there be file permission issues? What are the permissions that should be there for the various installed subscribe2 files?

  26. Camner,

    The <!–subscribe2–> token needs to be on a line by itself and have a blank line above it. This will make WordPress wrap it in paragraph tags and the replace function will then work.

  27. GT,

    You’re doing everything right! I’ve just tried the exact same thing on my test setup though and initially thought that I had no problems but oyu are quite right. 😦

    It’s another one of those damned category function changes making a mess of things!!

    On line 1628 of the code you’ll see:

    foreach ($all_cats as $cat) {
    if (in_array($cat->cat_ID, $exclude)) {

    Change this to:

    foreach ($all_cats as $cat => $cat_ID) {
    if (in_array($all_cats[$cat]->cat_ID, $exclude)) {

    This will be fixed in Subscribe2 3.4!

  28. Thanks. Putting the S2 token on its own line with a blank line above did the trick.

    I am noticing a few things, and I want to check functionality:

    1. Email notification is only for new posts…new pages and edited pages & posts do not receive email notifications.

    2. Comments do not receive email notifications.

    Am I correct about all this?

  29. Camner,

    In answer to your questions:

    1/ The plugin should only function for new ‘posts’ and not for new ‘pages’ and ‘edits’ of existing published posts. I am working on an option to notify (by option) subscribers of new ‘private’ posts.

    2/ Comments do not get notifications via Subscribe2, fr that you’d need the Subscribe To Comments plugin.

  30. My hosting admin fixed it, just give me an email and I’ll forward it to you. It’s quite a lengthy email πŸ™‚

  31. Please post some kind of summary of whatever Beth’s hosting admin figured out. I’m having exactly the same problem as Beth!

  32. Pingback: BCC Header Troubleshooting « Subscribe2 Plugin

  33. hello,
    i am trying to fix a problem similar to beth’s using wp 2.0.x and subscribe2 2.2.17, but my host is not very helpful at all (webfusion/donhost). i have implemented the change you gave beth by changing my BCCLIMIT to 50 (i only have 17 subscribers, but i plan for it to grow quickly) and removing the \r\n from 2 lines of code. any chance you can send me what Beth’s host sent her so i can see everything they said?? as i thought it was my smpt server, i have even installed wpPHPMailer so i could avoid smtp server issues…any thoughts on what is happening?

  34. Hi,
    I had compatibility issues with the gengo plugin (translations, see
    It gave me this error: Fatal error: Call to undefined function get_currentuserinfo() in /var/www/web11/web/wp-content/plugins/gengo/gengo.php on line 1080.
    It seems to be related to the placement of the load_plugin_textdomain call which should be in the method called by the ‘init’ action (add_action(‘init’, array(&$this, ‘subscribe2’));). In this case the subscribe2 method. At least it is what I understand from
    It seems to work for me.
    What do you think Mr Administrator ?

  35. Just a followup: I made the changes recommended in the BCC Header TroubleShooting page, and everything works! Thanks for posting it!

    And thanks to Beth for doggedly pursuing a solution!

  36. Yves,

    Try moving the loag_plugin_textdomain command from the s2init function to the subscribe2 function after the global $table_prefix; (line 1977).

    I’ll make this change for the next release too.

  37. Thanks for the update πŸ˜€ the upgrade went fine – thankfullymy host isok with sending email and such but I will keep Beth’s notes just in case ^^ I’ve noticed that if I change a post from private->public (where it was originally public but somehow I Must have clicked something to change it to private) another email is sent out.
    Would it be possible to consider incorporating that as an option in the future – where if private posts become public, it isn’t necessarily considered a new post?
    Thanks πŸ˜€

  38. Mosey,

    Some people want the Private_To_Post to work others don’t. To make my life easier I’m going to leave it in there but if you don’t want it to work look for a line as follows:

    add_action(‘private_to_published’, array(&$this, ‘private2publish’));

    And comment it out by adding // before it.

  39. Great Plugin and working wonderful.

    But I am wondering about an additional function. The plugin is sending an email per default after each new post. Is it possible to include a function in the writing editor to turn off the automatic email temporary? I would think about a check box, which can be selected per default, but in case I don’t want to send an email for certain posts, I can simply switch it off. Is that possible?


  40. Hi. I would like to know as I can join the simple form of newsletters for when an user registers in the site, in the same form that asks user and e-mail for her to register to appear one also wants to receive the notifications of the site in its e-mail.

    Thank you.

  41. I would like to disable sending pages to the subscribers as an option at the options pages. Also I would like to suggest to not sent pages who are password protected. This could give some security issues if someone as enabled that the post is entirely or excerptly mailed.

  42. Hello,

    After installing subscribe2 then every time I publish a new post i get this error:

    WordPress databaseerror: [Lost connection to MySQL server during query]
    SELECT a.user_id FROM wp_usermeta AS a INNER JOIN wp_usermeta AS b ON a.user_id = b.user_id INNER JOIN wp_usermeta AS c ON a.user_id = c.user_id INNER JOIN wp_usermeta AS d ON a.user_id = d.user_id WHERE a.meta_key=’s2_subscribed’ AND b.meta_key=’s2_format’ AND b.meta_value=’text’ AND c.meta_key=’s2_excerpt’ AND c.meta_value=’post’AND (d.meta_key=’s2_cat1′)

    But the post are published to the webpage and the subscribers (those checked) are getting their email.

    Any input to what can be wrong? If I disable subscribe2 the error goes away.


  43. I’m having a problem whereby the site admin receives the notification and the first unregistered user receives the notification. No one else receives any other emails.

    I’ve tried the header fix but that has no impact.

    Any ideas? I’m using a windows host with all the relevant PHP stuff so everything is working apart from Subscribe2…

  44. Hello, Matthew.

    First, thank you for such a great plugin. I am very pleased as how well it has worked for me.

    However, with the most recent upgrade, I seem to be having a problem. I am running WP 2.1.3 and Subscribe2 2.2.3. Before the upgrade, when I published a post to my blog, an email notification would be sent out immediately and I would receive it in my mail mailbox and test mailboxes within a couple of minutes.

    With the new upgrade, it is now taking almost a full hour before the email is sent out via the plugin. I spoke with my webhost about this and they say there are no restrictions on my Apache handler or the php email system that would prohibit it from being sent out as soon as I publish.

    I am wondering if you might have some insight as to why the delay. I will say up front that I am on Arizona time and we don’t follow DST, but I didn’t have this problem up until the upgrade and DST has been in effect for over a month.

    Any input would be greatly appreciated.


  45. BoxNew,

    In Options->Subscribe2 you can set the plugin to auto-subscribe anyone who registers with your blog. To let your users know you are doing this make an entry in you blog or amed the code of the WordPress wp-register.php file.

  46. Shade,

    It looks like you are getting a time out due to the length of time taken to make the post. Are you also running Google Sitemap Generator? Try the latest version (3.0b) if you are. Otherwise check with your host about database timeouts.

  47. Tommy,

    That is a problem with email handling at your host – you’ll need to ask them about the restrictions they have in place on your hosting account.

  48. Seth,

    There is no code in the plugin that would cause a delay in the emails being sent out, they are sent immediately by the plugin and not buffered.

    It could be that your host time stamp is making a difference on the mail server or that the emails are simply being queued.

  49. Thanks for the update, are there any particular questions I should be asking them? I do know that I can only send email from a valid account at my domain. The fact that 2 emails are getting through would tell me I’m getting past this stage. SHould I be asking them about any sort of header restrictions???

  50. Tommy,

    As them about restrictions placed on outgoing emails in terms of use of BCC header, number of recipients, limits placed on emails per minute and limits placed on emails per hour.

  51. Ok, everything well, I had already seen this resource, because this plugin is very good. But I wanted to leave in the register option for the user to choose if he wants or not to receive the newsletters of the site.

    Has as to happen some code of the simplest form of the type:

    To want to receive daily notifications of the site?

    Thank you.

  52. BoxNew,

    I’m not sure if there is an API in WordPress to add content to the registration form. If there is an API I’ll look into adding what you are after.

  53. I try again. Thanks for a GREAT plugin πŸ˜€

    I just wonder if there is anything wrong or with my setup or if it is possible with HTML in the “Send e-mail to all subscribers” section. If it isnΒ΄t possible it would be a really great feature to ad πŸ™‚

    Thanks again for a great plugin!


  54. I left the option of my newsletter “once a day”, and would like to know some information:

    In the date and schedule that shows
    Next email notification will be sent: Sunday, 15 / May / 2007 @ 18:09
    How can I leave a fixed schedule? I already tried to edit the file subscribe2.php but I didn’t get to locate the part of the code to leave the set time.

    And is another thing that I meant, that if I left once a day, and did I publish 5 posts for example in one day, then when to order the newsletters was for having the title, link and summary of the 5 posts of that day, but did I test that, and does only appear the last published post, because that is happening?

  55. BoxNew,

    The date and time of scheduled posts is updated every time you click submit, do it once at the time you want the post to go and leave the setting alone after that.

    The Plugin should pick up any posts made since the last email was sent. They will appear in the email in the order they were posted with the most recent at the top.

Comments are closed.