Invite Anyone – invite by email too – please help test
Hi everyone. I have updated my Invite Anyone plugin to allow invitation by email address. It seems pretty solid, but I would really like to have some other people test it before I make it the stable version.
If you have a non-production site and you wouldn’t mind testing it out, please download the development trunk version at http://wordpress.org/extend/plugins/invite-anyone/download/. If you’re already running a version of Invite Anyone on your site, please make sure to deactivate it before downloading and activating this one. (Note too that you must deactivate and reactivate – if you just replace the files, the necessary db table won’t be created.)
A brief rundown of the new functionality:
– A new subnav item has been added to profile pages, called Send Invites
– Under that item are two pages. The first, Invite New Members, allows you to enter up to five email addresses, a custom message, and select some of the groups you’re a member of.
– The second page is Sent Invites, a list of invitations you’ve already sent.
– When you send the invitation, an email goes to the invitee(s) with the custom message and a link to [your bp install]/register/accept-invitation/[email-address]
– When the user clicks that link, he or she should see the normal register page, with a message above that says “You’ve been invited by [the name(s) of the user(s) who sent invitations]…”
– When the user activates the new account, he or she will receive invitations to all invited groups, as well as friendship requests from all members who sent invitations.
– There is also a new (and ugly!) link on the Group Send Invites page, which takes you to the Send Invites profile page and pre-selects the group you just came from.
– There’s a pretty fair amount of email validation that happens. Try punching in some bad emails (banned on your WPMU install, poorly formed, etc) and see what happens. I should note that right now I’m using WPMU’s native email validation – I haven’t even tried loading it on a single-blog install of WP. I did use if ( function_exists ) so nothing should crash, but it’ll probably allow any old email on single WP.
Phew – I think that’s it.
Please hammer away at it and leave any bugs/suggestions here.
As I say I do get the point , it’s a bit of work though in that if it is really an opt-out link then when clicked the email address has to be added to the DB in order to form the basis of a list that can be checked and then in some ways we are starting to create a DB of email addresses apart from those that members knowingly supply.
I can and will run this by one of our directors who is a lawyer and generally worries about this sort of stuff and see what he thinks.
Thanks for your thoughtful comments. crashutah is right that some information will have to be written to the database. I think it would as simple as adding a column to the table already created by the plugin, something like is_opt_out. Any information about legal stuff would be really helpful as I go forth.
I just checked in version 0.4.1, which should fix both the other-peoples-profile problem and the WP single problems that Anton mentions.
Nicely done @boone
Quick feedback…Is there a way to include some kind of automatic link to the inviter’s profile page?
I’m thinking that a lot of my users are going to want to say “Hey there, come check out my awesome Profile Page at ….. where you can can see my latest blog post, twitter & facebook action, and pretty pics of my kids..”
Ideally, it would be cool to have a checkbox that would insert a link to that member’s profile page: “Check out my ___ Profile”
Thanks again boone.
Great idea Greg! It’s easy to do and I will put it in the next version.
Quickly upgraded and tested before shutting down, can still send from another users profile, is this correct? checking the table and the record does at least record the inviter_ID as the logged in user which I’m not sure I checked first time round but given that I did note that sent invites list was actually the logged in user and not the ‘Other’ member it must have always recorded the logged in user as the sender regardless of appearances, (stating the obvious really)
Has the new version actually updated the downloader correctly? or have I simply upgraded same version? readme.txt file does state 0.4.1 along with changelog notes.
Urrrrrrrgh. Once again, I had failed to do my code merge correctly. I managed not to include the fix in 0.4.1. I just uploaded a proper version, so if you want the fix, just download version 0.4.1 again. I don’t want to tag another version just for this mess up on my part. I will tag a new version in the next day or two when I add some of the other suggestions I’ve gotten in this thread and elsewhere. Sorry about the idiocy on my part.
Thanks for giving us another useful plugin. I just installed it and will test it properly and let you know if I come across any issues.
The 1 minor problem I see immediately is not specific to this plugin but was only noticed because of it. I am using the default buddypress theme and already have the bp-links and ajax chat plugins installed which create links in the profile menu bar. Now with the send invites link, the bar is too long and spilling over to another row.
Ofcourse, this is a limitation with my theme (I made the default theme fixed narrow width) and not with the plugin but I was wondering if anyone knew how I can easily remove 1 or more of the profile menu bar items which are not essential.
I had failed to do my code merge correctly
Never been a fan of CVS/Subversion, always get confused when it comes to merging,tagging, checking out, et al
Back to the Opt Out debate:
I’ll be updating our privacy statement to include, in the email address records section, acknowledgement that members can send invites to NON members and that those email addresses are stored in our DB but that we will remove any address on request.
As for the email I would be wanting a statement at the bottom of the email notifying the recipient that they may use the Site Admin link to request that their email address be removed from our DB records and no further emails be sent to that particular email address.
Checking through the Can Spam Act suggests that one of the primary compliances is for a clear and definite Opt Out notification.
The Act itself is, it’s to be noted, a Federal USA piece of legislation, so not necessarily binding on other countries, naturally emails sent to American addresses might be deemed to fall under the act but this area of international law and boundaries is a particularly gray area, but I’m going to have a chat with our legal chap to see what his position is on the Act, it’s probably a case though that it doesn’t hurt to reference it in the sent email.
your plugin is fantastic!!!!!
Here’s the research I did on how Facebook deals with the email import and “opt-out” features of their email friend finder.
If you go the “import address” route, here’s the “Learn More” info that Facebook uses:
“We will not store your password after we import your friends’ information.
We may use the email addresses you upload through this importer to help you connect with friends, including using this information to generate Suggestions for you and your contacts on Facebook. If you don’t want us to store this information, visit this page.”
The page that Facebook uses when you want to REMOVE your email from their list/importer manually says the following:
“Remove Contacts Imported using the Friend Finder
Facebook uses the email addresses you upload through the Friend Finder to help you connect with friends, including using this information to generate Suggestions for you and your contacts on Facebook. Please click the “Remove” button below if you want Facebook to remove these contacts. Note that it may take some time before your name will be completely removed from Suggestions.
[Remove Button] [Cancel Button]”
In the email to join Facebook at the bottom of the email it says:
“firstname.lastname@example.org was invited to join Facebook by Stevie Jones. If you do not wish to receive this type of email from Facebook in the future, please click here to unsubscribe.
Facebook’s offices are located at 1601 S. California Ave., Palo Alto, CA 94304.”
The “here” link goes to a page where it says (no login required):
“Facebook will notify you by email when your friends enter your email address and request that an email be sent to you. This includes when your friends invite you to an event, tag you in a photo, or add you as a friend on Facebook.
Do you want to stop receiving Facebook emails email@example.com?
[Checkbox]Opt out of receiving emails from Facebook.
[Confirm Button] [Cancel Button]”
Certainly the wording would be a bit different than Facebook, but hopefully this will help you design the opt out portion when you have time. My concern is the extra load on the DB when you’re searching to see if an email has opted out or not. Have to be careful there. Not a horrible problem if you only allow 5 emails to be sent, but if/when people send more it will matter more if not done right.
Obviously I like this plugin a lot. Added it to my test site and everything went really smooth and easy. Just a few comments/bugs:
-It would be a great feature to customize the subject line (similar to the body). Would also likely want to include the name of the person requesting in the subject. As a side note, Facebooks email invite has a subject that says “Check out my photos on Facebook” Interesting way to get people to read the email.
-Email Invite should have the “reply to” from the person that invited them. Maybe it requires some backend server/email configuration to not get caught in the spam filter? The point being that person sent the request, they should get a response to that email if there is one.
-In the invite I sent it had an apostrophe and when it got to the email it shows the apostrophe with \’ in the email. Needs to be filtered/sanitized somehow?
-Would be really nice to have the email field auto-populated. Otherwise, people can sign up with a different email address and then it doesn’t update that the invite was accepted and that person never gets the group/friend invites (I tried). Granted, a lot of people have only one email, but would also save them time if it pulled in the email into the email registration field.
-Personally, I’d prefer it to just add the person to the group and make the requesting person their friend instead of sending them 2 more emails which could be confusing since you’ll get a total of at least 4 emails after activating (New Account, New Blog, Group Request, Friend Request). Maybe this could be an option that can be turned off or on.
Nice work. I love the person’s name on the registration page. I think touches like that could be expanded upon to really increase sign up rates.
crashutah – Thanks a million for the feedback. The Facebook language is really helpful. I think I should be able to add an opt-out feature with only a little work.
As for your other excellent suggestions:
– Definitely agree about customizing the subject. My plan was to make it customizable by the site admin, but not by the end user – but on second thought it would be easy enough to put a toggle on the back end that lets the site admin decide whether users can personalize the subject line
– The Reply To idea is very good. I’m using wp_mail, WP’s built in mail function, which in theory should allow me to feed in some headers. I will give it a try – but no promises on this one, as I’ve had trouble making the WP default reply-to address work correctly in the past and don’t feel like tearing any more hair out over it
– Something must have gotten screwed up in your apostrophe comment. Do you mean that a slash showed up? I suppose that makes sense. I will have a look at stripping those slashes.
– Great, great idea about autopopulating email field. I will take care of it right away.
– Your point about auto-adding/auto-friending is well-taken. I kind of feel the same way. I think I might make it an admin option: send group/friend invites, or just do the adding. I can see arguments both ways (you give a good case for auto-adding, but you might also think that it’s nice to get some notifications first thing when you log in…) so I think it might be best left as an option for the administrator.
Again, I really appreciate the detailed feedback.
Maybe it requires some backend server/email configuration to not get caught in the spam filter? The point being that person sent the request, they should get a response to that email if there is one.
- The Reply To idea is very good. I’m using wp_mail, WP’s built in mail function, which in theory should allow me to feed in some headers. I will give it a try – but no promises on this one, as I’ve had trouble making the WP default reply-to address work correctly in the past and don’t feel like tearing any more hair out over it
This is a nice idea but I would tread carefully. it sounds like a classic SPF issue? my original problem at the start of testing this plugin were not receiving the emails that turned out to be our google business account marking them as spam, which wasn’t happening before but haven’t had a chance to track down what has changed.
Happy to help. Thanks for the great plugin. Looks like you understood all my ideas perfectly.
A few other things I found today:
-I just tried the Facebook Connect plugin which creates the user using the Facebook login. When a user created that way visits the “Send Invites” (ie. http://purebiggestloser.com/members/username/invite-anyone/ ) then only the first text box and the “Hi there” appears for the form. This is likely a problem with how the Facebook Connect plugin is creating the login, but maybe you could see what info you’re trying to pull and see what it’s creating wrong. I’ll see about looking at it later too.
-This might be purposefully done, but the “Send Invites” tab isn’t available on the Groups page unless the person is moderator. Personally, I think that everyone that’s a member of the group should have access to invite people to the group. Plus, even if the person is not a moderator of the group and they go to the send invites page on their profile they can invite people to all the groups for which they are members.
-I’d also look at just having a comma delimited text area for the email addresses instead of the a-e set of text boxes. Just use explode() in PHP and you’re there faster and I think most people are familiar with comma delimitted text areas. Probably would require a little more validation of the list though. However, then you could quickly incorporate the Plaxo widget I linked to previously.
I just checked in a trunk version with a bunch of fixes and new stuff. From the readme:
* Enabled Opt Out option for invitees
* Subject line is now customizable by the admin
* Admin can toggle whether users can customize subject line and message body of invitation emails
* Some localization bugs fixed
* Filtered spammers from group invitation list
* Fixed bug that may have caused problems with some MU limited email domain lists
* Email Address field is now auto-populated on Accept Invitation screen
If anyone feels like being an Outstanding Citizen and helping me out, they’re more than welcome to grab the development version https://wordpress.org/extend/plugins/invite-anyone/download/, deactivate and move their current version of the plugin, activate the dev version, and put it through the paces. I’m especially concerned to hear whether the opt-out feature works in the way that you’d expect.
- I will try to get around the FB Connect issue. I glanced at the code to see if I could understand the problem and I didn’t see it right away, though it’s more than likely the case (as you suggest) that FB Connect is not making full-fledged BuddyPress members (as opposed to the less fleshed-out WP users).
– I’m planning on making the group send invites tab visibility more fine grained, so sitewide admins can choose who will get to see it.
– Not sure I agree with you about people being used to comma-delimited fields – I can see my users getting terrified of such a phrase! Part of the reason for having separate fields is to prevent spam. It’d be easy enough to limit the number of permitted invitations with a comma-delimited list, but having separate fields makes it visually clear that you can only send a few at a time. On the back end, at some point in the future I will add the hooks and filters necessary to allow for address-book importing – the way the front end appears doesn’t really affect this functionality, as it all ends up getting stored as an array anyway.
Just ran test on 0.5 on live test site.
Ran process from start to finish with all dashboard options in effect and used and all ran perfectly, checked DB and all screens no issues what so ever, congrats on that.
Ran second test but this time testing Opt Out and that equally ran smoothly.
A few things have occurred to me though:
Perfect world it would be nice to have access in admin to textarea to set the text that is displayed on the Opt Out confirmation screens that would ensure we could add any thing we thought necessary for our own particular circumstances.
In a similar vein having allowed users to configure the email message area it occurred to me that I would like one further textarea that admin might use to set a footer to the email for any disclaimers we might think necessary and that we DONT want changing by users.
I have a possible concern over the legal requirements of Opt Outs with respect – in our case – to the UK Data Protection Act and have asked our legal chap to think on it , my concerns may be ill founded but I’ll report back if they are confirmed.
Last little point and which is more an issue I have to resolve but sent invites arrive and are dumped to my spam folder yet registrations and all the attendant confirmation emails arrive correctly.
Only have time today to test it on my WPMU site. Will test this on the single WP this weekend.
One question: When you have invited people and they have accepted, could there be a delete button on the sent invite page where you can view all of the invites that you have sent out? This is going to become quite clogged up if you invite many.
hnla – Glad things worked well. Making an admin-editable footer area is a really nice idea. I could also make an editable opt-out message, though it’s less obvious to me that admins would want rich control over that.
Generally, I’m happy to make fields editable by the site admin where it makes sense. But at the same time I don’t want to clutter the admin panel too much. Part of the argument for having the text strings in the plugin fully localized (which they are in this plugin! FTW!) is that users can change them to whatever they want by creating a custom po/mo.
Anton – A great idea. There are a couple things I can think of doing with the Sent Invites screen. One is to paginate it – so you only see a max of, say, 10 at a time. I could also make it sortable, by date, email, and whether accepted. That shouldn’t be too hard to do. Finally, I think “clear” links are a nice idea (“delete” seems misleading to me, especially if the invitation has already been accepted) – maybe a clear link on each accepted invitation, with another link to clear ALL accepted invitations. Might not get to it in this version, but certainly in an upcoming one.
I understand not wanting to clutter admin config screen, I was simply thinking out loud trying to second guess potential issues or requirements.
I was pondering a second non technical admin such as our legal chap deciding that in fact he wanted a more detailed explanation of what we would do when user requested opt out, then I’m happy for him to jump in and change it, what he wouldn’t be able to do is edit a .pot file.
This really isn’t a huge matter though, footer area would be time better spent because I think that it’s an issue if one has decided to allow users to edit subject line and message body it could prove dangerous and retaining control over one piece of text in the email that the user couldn’t change becomes wise?
? I’m thinking 0.5 feels pretty stable ?
Anton does make a good point in being able to clear the sent invites list.
Just tagged 0.5 stable. hnla, I’m going to implement your footer suggestion in the next version – I think it’s a great idea.
Nice work Boone. A few bugs and suggestions.
-When the invite errors (email already exists or bad email address), the custom body message is ending up in the custom subject instead of in the custom body
-When an email has opted out and you try to send an invite to that same email with no groups checked it tries to load this page: /members/admin/invite-anyone/sent-invites/send/ and loads no page. Once I click a group, then the proper error is thrown that they’ve opted out.
-How about having an admin defined header/footer for the email message. Then, the option for the invite sender to put a custom message in between the admin defined header/footer? That way people can do whatever they want with the email message. You could include the “sign up” and “opt out” text as part of the default for the footer. Then, admins can add to it or modify it as they see appropriate.
-Instead of the “clear” function on the Sent Invites screen how about changing Sent Invites tab into multiple tabs: “Pending Invites” “Accepted Invites” “Opt Out Invites” and “Cancelled Invites” (this would require you adding a cancel button to the “Pending Invites” screen). Or if you don’t want separate tabs you could do a filter on the “Sent Invites” tab with these categories, and default it to “Pending Invites”
Just tagged 0.5 stable
And just noticed that, I’m going to upload to production in the morning, despite the issues techguy has mentioned.
Running a quick test myself responded correctly with a message informing that I couldn’t send to this address,
However what is strange?? is that remaining on this screen (with the displayed message to try again )and simply changing the opted out email address I entered to a new one results in the message body getting duplicated in the subject line and sent on
tested again and an opted out email that I try and send a new invite to results in the message body textarea being added to subject line textarea.
for reference the option to allow user to customise both subject line and message body are checked but the user has not actually added or changed any of the default text displaying.
On a slightly odd note and harking back to my email issues invites were being flagged as spam while all other site emails i.e registration emails were arriving as expected normally , now this has changed despite me having changed nothing!! inviites are correctly being received and not flagged as spam any longer .
*sigh* it’s a black art, server email configuration
- The topic ‘Invite Anyone – invite by email too – please help test’ is closed to new replies.