Subscribe2 2.8

Version 2.8 of the Plugin is now available for download!

This update has addressed the following issues:

  • Fixed missing line return in email headers that was causing failed emails
  • Added user feedback messages to profile area
  • Added ‘Authorname’ to the list of message substitutions in email messages
  • Fixed name and email substitution in Digest Mails
  • Fixed stripslashes issue in email subjects
  • Added new ‘Action’ token for confirmation emails

Many thanks to Chris Carlson for submitting bug reports and fixes.

Download Version 2.8, recommended for all users.

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

143 thoughts on “Subscribe2 2.8

  1. Hello,
    thanks for this great plugin. I have been playing around a little bit with the latest version and everything seems to work fine.
    I noticed a cosmetic (?) problem though: I have disabled the auto subscribe option. If a user registers on my blog, he doesn’t indeed get subscribed, i.e. in this profile all check boxes are unchecked.
    However, the username does get listed in Manage/Subscribers list under “registered subscribers” and “all subscribers”, which is a little bit confusing. At the same time,. when looking at the number displayed behind individual categories, the number doesn’t change (which is correct, because the user hasn’t been auto-subscribed). From what I can see, the user should get listed under “public subscribers”?


  2. Hi. ๐Ÿ™‚

    Thank you for this plugin. I have tried differens versions of it these last couple of days, I just recently stumbled upon this one and I understand this one is the latest.

    I have downloaded it and deleted older versions and installed it according to instructions in the readme. It works fine and it handles the swedish characters such as รฅ, รค, รถ perfectly! Thank you! ๐Ÿ˜€

    The problem I am having is this: When clicking the confirmationlink in the email it loads ALL of my pages (in a row). Maybe I am creating the subscrribe2page in a strange, wrong way (I created it using “create new page” in wordpress (not by making a template) and inserting the ” ! – – s u b s c r i b e 2 – – ” into the page.

    Everything else seems to be working just fine, but it is rather disturbing that all of my wordpress-pages loads. Can someone please tell me what am I doing wrong?
    I am using IE, wordpress version 2.0

    My website is entirely in swedish, sorry for that. ๐Ÿ™‚


  3. I am sorry for my previous message, I found the answer to my problem in troubleshooting. May I suggest to write this about defining S2PAGE in the readme?!

    Thanks for a great plugin!

  4. Prime,

    The autosubscibe feature is relatively new but should be working. The problem may be down to the “newness”. I’ve added options under Options -> Subscribe that allow admins to decide if newly registering users are automatically subscribed and what type of email they will get.

    But, these options are left blank on upgrading so you need to make your choice before it will “work” for new users. All people who register with the blog become “Registered Users” so you can email them from Manage->Subscribers. Public Subscribers have only submitted their email but not registered with the blog.

  5. Jennie,

    Glad you got that fixed – I’ll certainly add something to the ReadMe about S2PAGE as I do get a lot of queries relating to this. Thanks for the feedback ๐Ÿ™‚

  6. Hello, me again ๐Ÿ™‚
    I’d have a question about the “exluded category” feature for non-registered users. I have a category “update” that I often combine with other categories (subject1, subject2 etc). I’d like to subscribe non-registered users to all posts in the “update” category, no matter which other category the post gets assigned to. However, I do not want to subcribe them to posts that are only assigned to (e.g.) category1 but not to category update.
    I am right that this is currently not possible? If I exclude all categories except the “update” category, emails are only sent out for posts that are only assigned to this non-exluded category. I guess, it would be necessary to switch from the “exlude”-concept to a “include”-concept (like for the registered users)? Would this be feasible?


  7. re: autosubscribe

    ok, I can see it makes sense the way it’s currently done. I guess I was sort of confused by the figures that are displayed. ๐Ÿ™‚

  8. Prime,

    You are right about the excluded cateogires, if th post is contained in any excluded category then posts are not sent (except to registered users if the over-ride preference is set).

    I’ll have a look at code in this area and see if anything can be done.

  9. Prime,

    Following up on the previous comment, if you want the functionality you describe I think the best solution is to make a change to the code on your own blog (a hack!)

    At line 340 you’ll find the following code:

    $check = false;
    // is the current post assigned to any categories
    // which should not generate a notification email?
    foreach (explode(‘,’, $this->get_excluded_cats()) as $cat) {
    if (in_array($cat, $post_cats)) {
    $check = true;

    Change this to:

    $check = true;
    // is the current post assigned to any categories
    // which should not generate a notification email?
    foreach (explode(‘,’, $this->get_excluded_cats()) as $cat) {
    if (!in_array($cat, $post_cats)) {
    $check = false;

    So 3 changes:

    change first check to true not false
    add exclamation mark before in_array
    change secone check to false not true

  10. Thanks a lot, seems to be working. ๐Ÿ™‚ Any plans to implement this behaviour by default?

    I also noticed the following two “issues” I am not too sure about:
    – I have enabled “Send Email From: Blog Admin”, but the sender address (and thus the reply-to) is the one associated with my user profile. I am running sendmail. The setting doesn’t seem to have any impact. The return-path is set via a php.ini.
    – German Umlauts (รค, รผ etc) display correctly in the email body, but not in the email subject. E.g. the “รŸ” displays as “รƒลธ”. Any idea how to fix that? Just for fun, I installed the smtp plugin for testing. With SMTP the Umlauts don’t even show correctly in the email body.

    I hope you are not already fed up with all my questions. (:-

  11. Prime,

    If your user profile is also the administrator profile then you will get the emails sent from Blog Admin despite the settings in Options.

    I am aware of the issue with non-english characters not appearing as expected in email subjects. This is a limitation of email subject headers but there is a possible fix. I am looking for a tester for this – are you interested?

  12. Hello!

    Love this plug!

    Is there any way to let public subscribers get the whole HTML-post (same as the registrated users)? Here public subscribers only get excerpts now.

  13. Hello,

    I installed this plugin but cannot get it to work. I installed it on 2 identical blogs, the only difference is the server they are on. On one server (, it works perfectly, on the other (, when I send a message via “Write -> Mail Subscribers” it says Message Sent, but no email ever arrives in my inbox. What could possibly be wrong?

    Thanks for your help.

  14. Lausse,

    This is possible but not supported or considered as a development for the plugin. Basically, I use the plugin to encourage users to register on my main site. By offering HTML email and category selection for public subscribers the incentive is gone.

    I am open to be hired to make code amendments or you can change the PHP yourself if you are comfortable with that.

  15. Jordan,

    The fact that it works on one server and not another points to the server.

    You need to check with the host provider of the second site that they support email sending via PHP. The other possibility is that they attempt to block spam by restricting Bcc: headers so try setting DreamHost to true at the top of the code and try again.

  16. Hey Admin,

    Thanks for the fast response. I contacted support already regarding sending email via php and they said that yes, they do allow it. I just tried setting Dreamhost to true and still no luck. BTW, for testing purposes I am only sending to one email address at the moment, mine.

    Here is my php info for the non-working server if it helps any:


  17. Jordan,

    Nothing jumping out at me on the phpinfo page.

    When you say there is only you on the blog – are you subscribed? You’ll be a registered user of the blog and may need to manually subscribe to categories to get email notifications.

    Or are you sending from Write -> Mail Subscribers?

  18. Admin,

    I am just sending from Write -> Mail Subscribers. I am the only one on the blog for now so I subscribed my own account and (attempt to) mail to that.

  19. Hey I got it to work.

    After examining the email I got from the working one, I noticed that the “To:” field contained the admin’s email address which was an address managed by the same server as said blog.

    Going back to the non-working one now I noticed that the admin’s email address I had put in was one that was not managed by the same host that the blog is on, so I changed it to one that was managed by the same host and voila, it works. Does this make sense to you?

    Just a note, I am logged in as admin when I am sending the mail.

  20. Jordan,

    That makes perfect sense, it’s a standard anti-spam method implemented on servers. The server will be associated with a specific domain, if you try sending email that is apparently from another domain sending is blocked on the server.

  21. Hey,
    I’ve been using this plugin since v2.6, but have had a problem with the widget in the sidebar.

    My blog also uses the plugins popularity-contest and share-this. The problem is that when the subscribe2 widget is included in the sidebar, and I’m viewing a single post, the popularity-contest and share-this plugins show up in the sidebar immediately following the email subscription form. Note that at this point neither of these plugins function properly, because they refer to another post (not the one being viewed).

    I know this should not be a subscribe2 problem, but removing that widget removes those two plugins. Could there be a conflict?

    You can see as an example.

  22. Dweep,

    There appear to be a conflict between the Widget and any other plugin that calls on the WordPress function called the_content.

    It certainly affects PodPress and the two plugins you are using. I’ll look into this again but I couldn’t figure it out last time ๐Ÿ˜ฆ

  23. Hey admin. Me again here to bug you with another problem.

    When I have this plugin activated and try to create a new category, I get the following error:


    Warning: Invalid argument supplied for foreach() in /home/janton/public_html/wp/wp-content/plugins/subscribe2/subscribe2.php on line 1017

    Warning: Cannot modify header information – headers already sent by (output started at /home/janton/public_html/wp/wp-content/plugins/subscribe2/subscribe2.php:1017) in /home/janton/public_html/wp/wp-includes/pluggable-functions.php on line 269


    The problem happens only with this version 2.8. I tried going back to the 2.7 version and that did not cause any problems but I really want to run the latest version. What do you think could be wrong? I tested the problem on a fresh install of WordPress and it still comes up.

  24. Hi,

    I just found your great plugin. I logged out as admin to send a test subscription email to another address, received the email, clicked on the link… and got a 403 error.

    The Link in the email is to the main wordpress directory, not to any of the plugin files.

    http://%5Bdomain%5D/wordpress/?s2=%5Bcode not reproduced]

    Thanks for any help!


  25. Tobias > I guess you should check out ReadMe.
    “IMPORTANT: Define S2PAGE on line 43 to the page number of the page you created”

    Means you should open subscribe2.php and edit define(‘S2PAGE’, ‘0’); with your pageID.

    Good luck!

  26. Tobias,

    If the suggestion from Lausse doen’t work it may be becasue you have the WordPress files in a sub-directory but the Blog front page is at the root of the domain.

    To fix this look in the code around line 502 for:

    $link = get_settings(‘siteurl’) . “?s2=”;

    Change this to:

    $link = “”;

  27. Hello Admin… again :p .

    Ok, in addition to my above problem (which isn’t too important for now), I have realized that when I make a post that is to be sent to a large list (40+), nothing goes out. However, when I make a post to be sent to one or two people, it goes through fine. Now this obviously sounds like I needed to set DREAMHOST to TRUE. I did that and still no help. I then contacted my host to see if maybe they had a limit lower than 30. They said their limit for emails is 50 per hour so I got them to raise it to 500 per hour. Still no luck. I figure this has something to do with a limitation on my host so I will try contacting them again but until then I thought maybe their was any other advice you could give me.

    Thanks for your time and help.

  28. Jordan,

    UPDATED – small bug with fix

    In relation to your first issue I think it may be caused if you only have no registered users who have opted to be automatically subscribed to new categories. Try adding the following code in immediately before line 1017:

    if (” == $user_IDs) { return; }

    In relation to the emails, check with your host that they allow sending to recipients via Bcc: A limit of 50 emails per hour is more than enough as only one email is sent to you but it is BCC’ed to your subscribers.

  29. Don,

    Good point. Skippy originally wrote th 2.2.x version for WordPress 2.0.x but I usually upgrade my WordPress quite early.

    I also don’t have the spare time to test on previous versions so it will probably work just fine but I really don’t know.

  30. Admin,
    Lausse was correct about you being fast at responding! Thanks for taking a 2nd look, and please do post if you find a fix.

  31. Hey Admin,

    So with regards to the first of my two recent issues, you are correct. The error stopped coming up now that a few members have opted to be automatically subscribed to new categories. Thanks a mil.

    As for the second issue, my host insists that there are no restrictions on Bcc. I still believe there must be though because today the email went out when an article was posted in a category that only 5 people were subscribed to but it still wont go out for one that everyone (all 46 of em) is subscribed to. Would it be a problem if I set the DREAMHOST to TRUE and set the limit for recipients per email to about 5? That would be the easy way out it seems.

    Thanks again for your time and help, its much appreciated.

  32. Jordan,

    Sounds like there is some restriction going on there – certainly worth setting DREAMHOST to TRUE and change the limit to 5.

    Check ot lines 257 and 274 – you’ll need to change both from 30 to 5.

  33. Wow, thanks a lot – I do have a wordpress subdirectory – changing line 502 did the trick! Thanks a lot. Thanks for the plugin!

  34. I’m having trouble having the Subscribe box show up at all on my site. It used to show up, but after I upgraded WP to 2.0.5 I never checked back on the page until now so I’m not sure if it won’t show up because of the upgrade or because of something else. I’ve upgraded the plugin to 2.8 (following the upgrade instructions) but the Subscribe box isn’t showing up. I’ve manually inserted into my Page. Here is the link:

    WP is installed in the root directory and the page ID is 35 (in case this is info you need).

    If you could help, that would be gerat. Thank you!

  35. May I suggest you use mail() instead of wp_mail() in your code? wp_mail is a pluggable function and therefore susceptible of being replaced by some other plugins….

  36. Manda,

    The Subscribe2 Token is in your page but is not being replaced. There could be a few reasons for this:

    1/ The plugin is not activated
    2/ The plugin did not upload fully and is corrupt (but you should get other errors)
    3/ The token is not as expected – ensure it is on it’s own line and has no space or tags on either side.

  37. This is a most useful plugin, so thanks!

    I do have one problem with it, however. Since installing the plugin, whenever I enter a new post and click ‘save and continue editing’, I get the following error:

    “WordPress database error: [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘Warning: Invalid argument supplied for foreach() in /var/www/ht’ at line 2]
    INSERT INTO wp_post2cat (post_id, category_id) VALUES (179,
    Warning: Invalid argument supplied for foreach() in /var/www/html/wp-content/plugins/subscribe2/subscribe2.php on line 1017106)

    Warning: Cannot modify header information – headers already sent by (output started at /var/www/html/wp-includes/wp-db.php:104) in /var/www/html/wp-includes/pluggable-functions.php on line 269″

    It also appears to do something with the categories I’ve chosen. For example, if I add a new category as part of the posting process, the error – whatever it is – ignores that I’ve selected a new category.

    As I say, this problem has arisen only since I installed the plugin, and I’ve made no other changes to my WordPress configuration.

  38. Francis,

    This is another issue caused by one bug found by Jordan further up this page.

    Paste the following line into the code at line 1016 and it should be fixed.

    if (” == $user_IDs) { return; }

  39. Hi Matthew,
    After 48 hours spent trawling plugin sites and $15 worse off I have eventually found the latest version of subscribe2. It’s absolutely beautiful!!!

    I think I have tried 6 different plugins for use on a newsletter with a blog I am putting up for a mate and Skippy’s Subscribe2 just wasn’t working for me until I realised that you had taken over the management and there was a V2.8. It does everything I need it to…including users and excluding cats. It even worked first time, no hassle. Just brilliant mate, you have made my night. Thank you so much!! ๐Ÿ™‚

    If you ever need testers for new versions, I would be more than willing to help.

  40. Thank you for your prompt reply! I tried reinstalling the plugin and all is well again, thanks again for your help! ๐Ÿ™‚

  41. hello, i have installed your plugin and everything is working very well, however when a user subscribes and then confirms, the confirmation page that they land on displays a list of evey page on the website. please subscribe and have a look.

  42. I installed the Subscribe2 plugin, and it turned the rich text editor back on!? I went back into my options and indeed, I do have that turned off. Then I went into my uder profile and saw that the use rich text editor box was checked in there. But I wasn’t seeing the editor until I installed Subscribe2. Probably something to do with adding the S2 button on the editor bar?

  43. Nice integration, a lot of features. Good job.

    I have only question. I follow the steps for install and it works perfectly but I did not manage to insert correctly the suscribe box in the sidebar. My code below.
    2.0.4 and last release of your plug-in (2.2.8). I also remove the Pod-press plug-in.

    Votre email:   S’inscrire Se dรฉsinscrire

    Did I miss something ?
    Thanks in advance. Keep up the good work.

  44. Hello again,

    upon further testing, I noticed a rather ugly problem with the emails to be sent out. In theory emails do work and do arrive. However, there’s a problem:

    I have ATM for testing purposes 3 confirmed email addresses and one registered user. The registered user has unchecked all categories in his profile, i.e. he doesn’t get any emails.

    When I post a topic on my blog, two emails get sent out (according to my server logs). I use sendmail.

    The first email is the one that is sent to the admin. The second is the email sent to the confirmed user that appears at the top of the list under Manage/subscribers.

    By contrast, no emails are sent out for the other 2 confirmed users.

    When looking at the full header of the admin email I noticed:

    MIME-Version: 1.0
    Content-type: text/plain; charset=”UTF-8″,

    The same appears in the complete header of the first confirmed email address.

    From what I can see, email no. 2 and 3 get added into the header instead of being used as BCC. Thus only one confirmed user actually gets an email. Additionally, this user can see the email addresses of all other subscribers, which is not ecactly ideal. ๐Ÿ˜‰

    I’d really love to use this plugin, but can’t for obvious reasons… Does my “bug report” make sense to you? I am running ATM another (seperate) mailing list (DadaMail), where this problem does not occur.

    Thanks for any assistance you can provide to get this issue sorted out. ๐Ÿ™‚

  45. Prime,

    I think I understnd your explanation but I am at a loss to explain to you why that is happening. The emial is constructed with the admin email address in the To: header and the subscribers in the Bcc: header.

    There is nothing in the code that would make the plugin function as you describe. Could it be something in your sendmail settings?

  46. thanks for getting back to me.

    It’s all pretty weird.

    The blog is running on a 1&1 dedicated server. I’ll contact 1&1 and ask them whether there’s a problem.

    BTW, here’s the email logfile:

    Sent via email

    as you can see, only the first BCC-address is handled by sendmail, all subsequent ones don’t even appear in the logfile. (return-to-address) is set by a local php.ini.

  47. Thanks for developing what looks like a great plugin. Just a quick question. Is the wp-cron plugin also required to make this work. Just wondering, I did not see anything in the installation instructions about this…


  48. Admin, thanks for such a quick response. I just plan to use the plugin to notify registered users of new posts to the blog. I don’t plan to offer a daily digest. Thanks for the info!

  49. hi,
    when i try to insert a new category from
    i receive the following error

    Warning: Invalid argument supplied for foreach() in /home/d171928/public_html/wp-content/plugins/subscribe2/subscribe2.php on line 1020

    Warning: Cannot modify header information – headers already sent by (output started at /home/d171928/public_html/wp-content/plugins/subscribe2/subscribe2.php:1020) in /home/d171928/public_html/wp-admin/categories.php on line 33


    any idea?


  50. Derar Administrator,

    I have installed the plugin per the instructions, and created a subscribe page for the Subscribe2 form. I entered the ID for this Page on line 43 of the subscribe2.php file. Unfortuantely, when a user subscribes to the blog through this form, they receive no confirmation link/page.

    When users register for the blog, they are recieving password/confirmations. Any ideas or suggestions would be greatly appreciated.

  51. Jim,

    Have you got any other plugins installed? Does it work with them turned off?

    Also, to clarify did you create the subscription page in WordPress or did you hand code it?

  52. I created the subscription page (titled Subscribe) in WordPress. I used the Subscribe2 button to insert the form. The HTML is:

    I have another plugin installed Akismet, but it is not activated.


  53. Dear Admin,

    I’m sorry, but because it’s a staff newsletter of sorts and contains some personal information, I had to restrict access to the blog to a specific IP range.

    If a non-registered user enters an email address in the Subscribe form, checks subscribe, they receive the following message:


    A confirmation message is on its way!

    However, as far as I can tell they are not receiving a confirmation message. If a user registers to the blog, they do receive an email.

    If you are logged into the blog, you see this if you click on the link to the Subscribe page:


    You may manage your subscription options from your profile.

    If you click on the profile link in this message, you recive the following error:

    PHP Fatal error: Cannot redeclare class subscribe2 in D:\Program Files\wordpress\wp-content\plugins\subscribe2\subscribe2.php on line 53

    The HTML for the Subscribe page is:


    Thanks for any suggestions… Jim

    The HTML for the Subscribe Page is:

  54. I received the following message from a subscriber today and I’m not at all certain what’s happening:

    Got two copies, one HTML and one pure text. Both show you as the addressee as well as the sender, which could reduce the likelihood the message will be opened.

  55. Jim,

    Emails from the blog will be sent from a different email address that the ones from Subscribe2 – check you are using an email address to send the emails that is on the same domain address as the blog as some servers block emails from other domain names.

    Not sure about the PHP error although I have heard that this happens quite often on Windows Installations.

  56. Steve,

    Got two copies, one HTML and one pure text. Both show you as the addressee as well as the sender, which could reduce the likelihood the message will be opened.

    Is this user sure they aren’t subscribed twice? Bizarre that they got 2 emails in different formats.

    Also, the emails is sent to the blog admin with subscribers in the BCC: header so it will show you as the addressee and sender. The alternative is to send single emails to all subscribers which will take MUCH longer and make you unpopular with your host!

  57. Dear Admin,

    Thank you so much for the help. I’m apologize, but I just began working with WordPress. You indicated that the email address that subscribe2 uses to generate notifications is different than the general email address the blog uses for confirmation of new registered uses. I take it, then, that the subscribe2 email address should be the same as the blog administrator’s password?

    Sorry to trouble you!!

  58. Thanks. The subscriber is one of my partners and he’s in there twice (I had forgotten I did that when I was testing the plugin). I don’t suppose there’s anyway to cure the addressee/sender issue other than the single email answer, eh?

  59. Sorry, I meant to say ‘ . . . same as administrator’s email (not password) and on the same domain.

  60. Steve,

    Right, the only way to fix the addressee / sender issue is single emails. Some sites have a few hundred subscribers so this is not a way forward.

  61. When under Manage->Subscribers, it is unclear how to force subscription categories for the subscribers. There’s a checkbox, which seems to automatically check excluded categories which should not generate notifications, there’s two submit buttons, subscribe and unsubscribe.

    It is unclear what checking or unchecking the box would do and how this behavior depends on whether the user checks subscribe or unsubscribe.

    Perhaps it would be clearer to add some documentation after the Categories tag and the behavior to be as folllows.

    “Choose which categories registered subscribers automatically have subscriptions to”

    Checked box = subscribed to this category
    Unchecked box = not subscribed to this category.

    And have a single ‘Submit’ or ‘Register/Unregister’ button.


  62. Also, s2_autosub, when checked in Options->subscribe2, should call

    foreach ($users as $user) {

    located in upgrade(), but only gets called when S2VERSION has changed. This allows admins to modify existing registered subscriber lists.

    P.S. is there an svn to which people could write patches and submit them? I’d love to help out on this project.

  63. When I choose HTML as the delivery method the text of the post is not included at all. Any idea why this would be the case?

  64. Francis,

    The instructions in Bulk Management could be clearer now I look at it again. Selecting the option by checking the box performs the action (Subscribe or Unsubscribe) depending on the button clicked.

    It’s difficult to implement the way you describe as you may want to subscribe all users to a certain category, but by leaving the others blank you’ll unsubscribe them for all other categories.

    Also, the upgrade() function is designed to amke database changes between versions so it will only be called when S2VERSION changes. s2_autosub changes a WordPress Option that ensures users are autosubscribes to new categories as they are created so shouldn’t need to call the upgrade() function.

    The SVN is a but I don’t have admin rights. Please feel free to post me code suggestion on here or via email.

  65. Brian,

    Are you saying you get an email with all of the template contect except the POST when you select HTML? Have you also selected Full Post? This shouldn’t matter but you never know.

  66. Well, I just tried some other combinations. I now have it set to HTML with “Full Post” and what I get now is an excerpt.


  67. Thanks for the quick reply. What I mean with the s2_autosub is that it only applies to all future registrations, not existing ones? It is only called when register() is called, perhaps add code to the options_menu() line 1237 to reregister all users very much like to how upgrade() handles it. The goal is so that all previously registered users will automagically get subscribed to the categories set in the options menu.

    Additionally, one could have a list of categories if autosub is enabled to choose which categories to be autosubscribed to.

    Itโ€™s difficult to implement the way you describe as you may want to subscribe all users to a certain category, but by leaving the others blank youโ€™ll unsubscribe them for all other categories.

    Agreed, let’s instead make the Manage->Subscriptions menu more useful, Have checkboxes next to the userlist, and then allow the admin to completely manage the checked user’s subscription options. such as the categories they’re subscribed to, the notification settings, etc. In the list of categories, we gray out and check the default category subscription which is specificed in Options->subscribe2. Of course we tell the admin that they’re potentially irritating their users by messing with their privacy.

    Also, Manage-> Subscriptions , in the Categories section as I brought up before, checking or unchecking boxes, subscribe or unsubscribe doesn’t seem to be doing anything? I’m looking at the code around 1578, and it seems that the two if loops are doing the same thing, making a given category to always be checked

  68. Hi thanks for your fast response,

    i try to insert “if (โ€ == $user_IDs) { return; }” in the 1017 line, before “foreach ($user_IDs as $user_ID) {“….

    but i have the same error when i try to add a new categorie… ๐Ÿ˜ฆ
    Warning: Invalid argument supplied for foreach() in /home/d171928/public_html/wp-content/plugins/subscribe2/subscribe2.php on line 1021
    Warning: Cannot modify header information – headers already sent by (output started at /home/d171928/public_html/wp-content/plugins/subscribe2/subscribe2.php:1021) in /home/d171928/public_html/wp-admin/categories.php on line 33

    could you help me?

    i see that i can add a new categorie from “write post” though i cant see after on the “manage->subscribtors”.


  69. Jorse,

    I just tried that if statement and i can successfully add categories independent of whether i have any users who are automatically subscribing.

    To debug, try adding right before the foreach,

    echo ” . $wpdb->last_results . ”;


    Then add a new category from the Manage -> Categories page. You’ll get a cannot modify header information, but I’m interested in the first (if any) line you see.

    to get your categories page working again, delete the echo line.

  70. Francis,

    You are right that s2_autosub is only called for future registrations. The bulk management section is there to deal with previously registered users when new categories are added.

    I have considered a more micro-management approach to the admin level of subscription management but layout will become an issue as there will be:

    Unconfirmed Public Subscribers
    Confirmed Public Subscribers
    Registered Users with all categories listed and the post options – for each user!

    It may get somewhat cluttered and confusing having all that on one screen. BUT if you can think of a way to implement this I’m open to code submissions so please feel free to contribute (and thanks for helping out on this forum too)

  71. Pingback: Subscribe2 DK opdateret til 2.2.8 at K2 DK

  72. hi francis,

    i try “echo $wpdb->last_results;” before “foreach ($user_IDs as $user_ID) { “, and this is the result…

    Warning: Invalid argument supplied for foreach() in /home/d171928/public_html/wp-content/plugins/subscribe2/subscribe2.php on line 1025

    Warning: Cannot modify header information – headers already sent by (output started at /home/d171928/public_html/wp-content/plugins/subscribe2/subscribe2.php:1025) in /home/d171928/public_html/wp-admin/categories.php on line 33

    i didnt see anything new… ๐Ÿ˜ฆ


  73. Hi!

    First of all I love this plugin. The only thing is that I installed everything as said, but I have some little problems:

    -Subscribe2 doesn’t work if I have activated also the Kimili Flash Embed plugin (any ideas or solutions with other plugins to embed flash content?)
    -I tried to subscribe with some e-mail of mine to test if it works well. The problem is that is not sending any confirmation message to the e-mail addresses that subscribed.

    Do you know what’ wrong?


  74. I noticed this annoying bug when I upgraded to the latest subscribe2 from where skippy’s subscribe2 left off. It was giving me an undefined function for get_userdata. I tracked this all the way to where the constructor calls upgrade if the S2VERSION doesn’t match, which ultimately calls register() which includes get_userdata .

    I refreshed again and was able to get past the error, but of course is moot because by now the S2VERSION has been updated and upgrade is never called.

    The problem is that get_userdata (in register) is called (indirectly) by the subscriber2 constructor class. get_userdata is defined in pluggable-functions.php which is not loaded until after all the plugins are loaded (wp-settings.php). Therefore, I submitted a diff to the trac that instead hooks the upgrade function to init, safely after pluggable-functions.php has loaded. The bug seems to have been forwarded to skippy, but I’m not sure if you got around to it.

    Perhaps it is also advisable to move updating S2VERSION, to the very end of the upgrade function?

    Also it may be advisable to not run anything in the constructor but instead wrap them in functions that hook into init?


    P.S. I think the options_menu has too many get_option and update_option, as a performance tweak I’ll work on serializing the options..

  75. Francis,

    I checked out the trac – great idea to hook into init. That bug has been on my list for a while but I just could not figure it out. Thanks.

    Also, I look forward to anything you can tweak in the options. Thanks for your contributions ๐Ÿ™‚

  76. Admin –

    I have subscribe2 set up on a windows installation, like the previous post Jim – I’m receiving the error regarding redeclaring class subscribe2 when clicking “view profile” from the subscribe page.

    Also, more importantly, when I logout and try creating a new subscription by filling out the form and hitting submit, I get this error:

    The function you attempted is not valid for this resource “http://www.(mydomainhere).com/news/?page_id=12”.
    (Error 405.)

    The requested method “POST” is not allowed for the particular resource, possibly because of an improper MIME type set up. There may be a problem with this web page.

    Any ideas?

    My index is in root, if that makes a difference… Thanks!

  77. Beth,

    As I said to Jim this appears to be a Windows related error. I don’t get redeclare issues on any other platform. As I don’t use Windows to develop Subscribe2 I’m not really going to be able to help.

    The second error you are getting looks like it may be a configuration issue in the webserver (presumably not Apache) or PHP.

    Check out your set up and ensure you are allowing html form posts to be made to the server.

  78. Admin,

    Thanks for the quick reply. It was actually because it was http://www.(mydomainhere).com/news/?page_id=12. If I added index.php?, it processed it fine and added my email to the awaiting confirmation list.

    I haven’t received a confirmation email though.

  79. Beth,

    I still think this is pointing to a configuration issue. The webserver is only serving absolute page addresses (like index.php) rather than making assumptions.

    It would also explain the lack of emails if sendmail (or equivalent) is not installed or correctly configured.

  80. Admin,

    No, sendmail is properly configured – we just tested it.

    The problem must lie with the extension working only with /index.php?

    Hmmm, well I’ll have to research this – thanks again for your help!!!

  81. hi,

    Now all is working perfectly…

    A lot of thanks by all your help!!!!
    This is a great project and you are a big guy ๐Ÿ˜‰


  82. Admin –

    Finally got it – for those with Windows installations – please remove the brackets and display names around the To: address and the From: address. SMTP adds the brackets – so we were getting two sets.

    Thanks for the help!

  83. Eric,

    Thanks for the suggestion – I agree that this would be a useful addition however after a brief look it’s more difficult than I first thought.

    WordPress provides a hook for when a post is published as public, but not as private. If I can think of a way of doing detecting private publications I’ll get it in for a future release.

  84. Hey.
    Great work you did there.
    On the november 16th, you wrote “You are getting that message because you are logged in to your blog. Log out and youโ€™ll see the form.”.

    As for me, i’d like to have the sidebar but for loggued users.
    My blog is for a intranet so everyone log with same user and i’d like them the option to subscribe.

    Installation went fine. Is this possible ?

  85. Nicolas,

    The sidebar will work for logged users allowing them to manage their subscriptions.

    Your problem is that all of your intranet users are using the same “Usr” details to log onto your blog. This would mean a single subscription setting for the one blog user. It is not possible to have different settings for each user if they are all using the same log in details.

    Possibly your best bet is to have your users as public subscribers.

  86. I downloaded and activated plugin. Then I created a page on my website “SUBSCRIBE” and put in the token into the body of the page. then when I click on the link that says Manage your subscription from your profile it takes me to a page with this:
    Cannot load subscribe2/subscribe2.php. Could someone please help and explain how I can get this link to work.

  87. I’ve submitted a new diff as well as a new file for inclusion to subscribe2 to changing the options to a serialized format.

    I’ve tested as far as setting and unsetting the options and seeing if it updates the database. As for functions which use the options, I haven’t tested them yet, but since it was merely replacing the old get_option() with $this->subscribe2_options it might just be a matter of typos.


    I want to completely kill get_excluded_cats() since its no longer needed because we have $this->subscribe2_options[‘excluded’], but I’ll submit a diff after the next cvs update.

    Hopefully everything works ๐Ÿ™‚


    P.S. I’m brainstorming killing the two different types of subscribers. It seems excessive to add additional tables to WP, when what we do can be stuffed in usermeta. I’ll let you know.

  88. Is this now in open svn? Submitting via email or tickets causes little motivation to help on the small scale, and until I get comfortable in the code I am unlikely to help out on anything bigger.

  89. Hi…question on version 2.8…for our public subscribers who get an excerpt email, nothing appears after the excerpt, even though Subscribe2’s options are configured to include this:

    You may view the latest post at
    You received this e-mail because you asked to be notified when new updates are posted.
    Best regards,

    The excerpt is 51 words (not 55 as the code leads me to believe) and it doesn’t end with a ‘…’ 3 of the words in the excerpt have a possessive (as in ‘s), so I’m not sure how this impacts the word count. HTML emails are just fine.

    Any thoughts?

    The plugin otherwise just plain works. Thanks in advance.

  90. wbmjr,

    There isn’t a POST for message substitution in the template you posted. Can you check that your template does contain this word in capitals and with a space on either side.

    Let me know if there are any conditions that reliably re-produce this issue for you.

  91. Here’s my exact ‘New post email’ from Subscribe options:

    BLOGNAME has posted a new item, ‘TITLE’
    You may view the latest post at
    You received this e-mail because you asked to be notified when new updates are posted.
    Best regards,

    The excerpt email that I receive as a public subscriber contains 51 words of POST but nothing after that. One other comment: although I have POST on a new line, in the plain text email, POST appears on the same line as TITLE.

    When you say ‘a space on either side’, is the fact that I have POST on a separate line causing my problem?

    Keep in mind, the template works fine for HTML emails.


  92. Bill,

    Hmm my plaintext summaries display correctly (with a carriage return after TITLE in gmail using flock as well as a plain text reader (mutt).

    The emails are sent with Content-Type plain/text and character encoding UTF8, can your email software interpret this?


  93. I don’t think it’s a function of the email displaying correctly. I’m using MS Outlook, and I’m pretty sure that can display UTF8 encoding. Every time we make a new post, I get a few emails from those that get plain text versions, saying that their email is cut off. I thought the problem was limited to public subscribers, but it also occurs if a registered user opts for a plain text email.

    It comes down to what is being sent out. Maybe that is a function of my template, which I posted earlier. I too have a new line after TITLE. Some of the next part of the template, POST, is included in the email. I don’t recall having this problem prior to 2.8, but I can’t be 100% sure of that. I looked for older emails to check, but they’re gone on at least my current system.

  94. I have had the exact same experience as Simeon Moses (above):

    He says:
    “I downloaded and … it takes me to a page with this: Cannot load subscribe2/subscribe2.php.”

    I note that a very similar problem was encountered with earlier distros of this plug, see here: , in the post made by Ozh on the 29th of December 2005.

    I would very much appreciate any help that anyone could offer.

  95. Simeon / BKK – OZ,

    What hosting platform are you using? Can you type in a link that works? What pages (of the four implemented by the plugin) can you access and which can’t you access?

    I think this is again a problem on Windows hosting – perhaps something to do with .htaccess files or maybe the mod_rewrite module in Apache.

  96. A further update on my problem: plain-text emails were sent out just fine with the prior version of the plugin that I had installed (which I believe was 2.7). Is there a version of 2.7 I can download to compare the code section on sending plain text emails?

  97. Thanx for your response – your interest is genuinely appreciated!

    For your first question, my hosting provider is They use a fairly vanilla linux/Apache?MySQL, etc. platform.

    In terms of pages, I can’t see any, once I click on the link provided thru the embedded token, it takes me to the same error message as Simeon reported.

    I am not sure what you mean by the ‘other’ pages, I followed the install instructions, which only get me to the point mentioned above.

    I haven’t tried directly typing in a link, because a) I didn’t think of it and b) I dunno what URL to try! :-).

  98. quick update, just looked up the details on my host and WP config:

    Linux kernel version 2.4.21-47.0.1.ELsmp
    Apache version 1.3.36 (Unix)
    PHP version 5.1.4
    MySQL version 5.0.24-standard
    WordPress 2.0.5 (& just FYI, SpotMilk 1.7.2)

    Plugins activated:

    catcloud version 0.3
    Page Category Organiser version 2.0
    plOOp 1.0.1
    Popup Image Gallery 4.2.3
    WordPress Database Backup 1.8
    WP Shopping Cart 3.2.1

  99. BKK-OZ,

    The plugin should introduce 4 new admin pages in Write, Manage, Options and Users. Can you see and access any of these?

    Is there any chance of emailing me your user name and password off list for me to have a look behind the scenes at your site?

  100. Francis,

    I’ve emailed Matt at the SVN to remedy me not getting notifications of tickets – they are still going to the previous author ๐Ÿ˜ฆ

    I’ll look into the admin menu hooks and ticket 514.

  101. Well, tho Matt has been kind enuf to contact me directly, people reading here should know that the problem has been fixed

    The problem I had (see above) was probably of my own making – I had an earlier install of Subscribe2 clogging up my WP plug-in directory. Cleaning that out and and re-installing did the trick.

    Great plug-in!

    Thanx very much for making it available and thanx for taking an interest in maintaining it!


  102. Does anyone else think the logic of ANY do not subscribe category prevents emails from being sent is backawrds???

    I have a general BROADCAST category, and including any non-subscribe2 category prevents that email from being sent… comments?

    I’m trying to bring a workgroup in the loop, through email notifications, but this ‘feature’ is preventing properly categorized emails from being sent.

  103. Kenneth,

    I haven’t had a great deal of demand to implement this the way your are suggesting but you can hack it yourself. I think the following should work.

    Look in the subscribe2.php file for:

    foreach (explode(‘,’, $this->get_excluded_cats()) as $cat) {
    if (in_array($cat, $post_cats)) {
    $check = true;

    Change it to:

    foreach (explode(‘,’, $post_cats) as $cat) {
    if (in_array($cat, $this->get_excluded_cats())) {
    $check = true;

  104. Is there any way to adjust the weekly notification so that it delivers on a specific day at a specific time, instead of relying on the hosting server time?

    My site at is a Portland Oregon site, but the server is on the East coast, so my deliveries are always three hours earlier than I want them…

  105. TheStoneWailer,

    The latest version of the plugin tells you the time on the server and the time when the cron job will be called – this will allow you to change the time when the job is executed to meet your needs.

  106. # Beth Says:
    December 12th, 2006 at 4:02 pm

    Admin –

    Finally got it – for those with Windows installations – please remove the brackets and display names around the To: address and the From: address. SMTP adds the brackets – so we were getting two sets.

    I had a look for the code I can cant find To: address, would it be possible to show me the code please? I am using wordpress 2.0.4 and subscribe2.21

  107. KennyK,

    You need to look for the mail() function that starts on line 225. There are 2 lines not far in as follows:

    $headers = “From: ” . $this->myname . ” <” . $this->myemail . “>\n”;
    $headers .= “Return-Path: <” . $this->myemail . “>\n”;

    Change these to something like:

    $headers = “From: ” . $this->myemail . “\n”;
    $headers .= “Return-Path: ” . $this->myemail . “\n”;

  108. Hi,
    thanks for the quick reply. I made the changes as advise above, but still no emails.
    is there something in wp-comment-post.php that I also need to change?


  109. Hello,

    Thanks for having implemented this useful plugin with all the related anti-spam securities (confirmation of subscription…).

    With the latest version, only administrators can see and filter the list of subscribed people. I was wondering if there is any possibility to give access to that menu also to simple users (editors in French) which are not administrators.


  110. Rob,

    The page is added in the admin_menu() function with a line containing the following:

    add_management_page(__('Subscribers', 'subscribe2'), __('Subscribers', 'subscribe2'), "manage_options", __FILE__, array(&$this, 'manage_menu'));

    Change the ‘manage_options’ to ‘read’ and you should be set.

Comments are closed.