This plugin stops access to your signup page, except where the visitor has been invited and clicked the link in their invitation email. Your users invite people, and you can see who has sent the most invitations, and how many resulting signups have occurred. Other features:
- Restrict the ability to invite people to users who have been registered only for a certain number of days or more
- View the number of invites sent and resulting signups per month
- View the users who have sent the most invites, and the number of resulting signups
- Browse all invitations sent (auto paginated)
- Change the default email text
- Set after how many days an invitation will expire
- Works with different locations of signup page (default: /wp-signup.php)
- Set the message to show if someone tries to sign up with no valid invitation
- Turn off security on signup form, allowing anyone to sign up (this does not affect the ability to invite people)
- Show an invitation form on the dashboard
- Show best inviters on your site with a shortcode
- Set any number of special codes with which people can sign up without being invited
- View reports on the number of people who have signed up with each code
This plugin is based on the invitation plugin by kt (Gord) from http://www.ikazoku.com.
There are a few extra features introduced in version 0.9:
Introducer points system
Each time somebody (Person A) invites a friend (Person B), and Person B signs up, Person A is awarded 5 points. If Person B invites someone (Person C) and they sign up, Person A is awarded 2 points. And if Person C invites someone (Person D) and they sign up, Person A is awarded 1 point (and, of course, Person B is awarded 2 points). Using this pyramid-like system you can see who is inviting not just the most people, but the best kind of people.
The introducer points are stored in the users meta table with the key
secure_invite_points. You can retrieve a persons points using this function:
get_usermeta( [user ID], "secure_invite_points" ) substituting [user ID] for their actual user ID.
Bulk deletion of invites
As an administrator you can now select multiple invitations and delete them. This is much better than the one-at-a-time deletion method in previous versions.
There are three shortcodes available:
1) By using the [inviteform] shortcode you can place an invitation form on any post or page.
2) Using [bestinviters] will show a list of the top 6 inviters by points, with the points they have currently got.
3) Using [myinviter] will show the diplay name for the person who invited the current user. Using [myinviter id=”123″] will show the display name for the person who invited the user with ID 123.
Automatic BuddyPress theme integration
If your BuddyPress theme is the default theme (for BuddyPress version 1.2 or above), or a child of the default theme, or uses the same template hooks as the default theme, you can put the invitation form in the following places by just ticking the right box in your settings screen:
- Before any list of members
- After any list of members
- At the top of every page
- Before your site homepage
- After your site homepage
- At the top of the default sidebar
- At the bottom of the default sidebar
The invitation form is hidden by default, and is shown by clicking an “Invite a friend” button which makes the form slide into view.
If you want to quickly set up invitations without messing with lots of settings, there are now four presets you can use:
- Anyone can join with or without an invitation, and all users can invite as many people as they like
- Signup is just for invited people, and all users can invite as many people as they like
- Signup is just for invited people, and all users who have been registered for 30 days or more can invite as many people as they like
- Signup is just for invited people, and all users who have been registered for 30 days or more can invite up to 10 people
Or you can use your own custom settings just as before.
Overriding of special users
Sometimes you want particular users to be able to invite more friends than the default, or perhaps you want to stop a particular user from inviting anybody at all. Now you can, by searching for the user and changing their own individual settings. You san set whether they are allowed to send invitations at all, and of so how many (either a limited number or unlimited).
Next on the list for this plugin is the ability to invite multiple people at the same time (with the same message).
Then, adding the ability for site admins to only allow hand-picked users to send invitations (thanks to Tuomas for that suggestion here: http://www.stillbreathing.co.uk/blog/2009/01/14/wordpress-mu-plugin-secure-invites/#comment-24240).
For standard WordPress: just install the plugin as normal from the plugin repository.
For WordPress MU and WordPress MultiSite: there are two options. Either place the plugin in your /wp-content/mu-plugins/ directory (not /wp-content/plugins/), this method requires no activation. Or install the plugin as normal from the plugin repository and enable it for all sites in your network.
To enable the template form in your template page you should call the secure_invite_form() function like this:
<php? secure_invite_form(); ?>
There are three optional parameters in this function, they are:
- The CSS class to be applied to the form
- The message to be shown when the invitation has been successfully sent (by default this is ‘<p class="success">Thanks, your invitation has been sent</p>’)
- The message to be shown when the invitation could not be sent (by default this is ‘<p class="error">Sorry, your invitation could not be sent</p>’)
So to set the CSS class of the form to ‘inviteform’, and the success message to ‘Yay!’ and the error message to ‘Oops!’ you would use this:
<php? secure_invite_form( ‘inviteform’, ‘Yay!’, ‘Oops!’ ); ?>
In addition, you can now automatically show the invitation form in your BuddyPress theme (if it is a child of the 1.2 or greater default theme, or it has all the same template hooks). Just tick the right boxes in the admin settings screen for where you want the invitation form to appear in your theme.
- Why did you write this plugin?
To scratch my own itch when developing Wibsite.com. Hopefully this plugin helps other developers too.
- Does this plugin work with BuddyPress?
Yes, several users have reported it works fine. You just need to change the URL of the signup form from the default (wp-signup.php) to the BuddyPress page so the plugin knows which URL to secure. In addition, you can now automatically show the invitation form in your BuddyPress theme (if it is a child of the 1.2 or greater default theme, or it has all the same template hooks). Just tick the right boxes in the admin settings screen for where you want the invitation form to appear in your theme.
An invitation form can be easily put into your template page, look at the Installation details for more information.
Contributors & Developers
“Secure Invites” is open source software. The following people have contributed to this plugin.Contributors
- Fixed incorrect use of $wpdb->prepare() method (thanks to @maximinime for reporting this: https://wordpress.org/support/topic/missing-argument-2-for-wpdb)
- Fixed incorrect casing of $current_user->id – changed to $current_user->ID
- Fixed incorrect response code (https://wordpress.org/support/topic/plugin-secure-invites-plugin-generates-false-500-errors)
- Fixed bug with custom registration URL (https://wordpress.org/support/topic/plugin-secure-invites-invitation-link-does-not-honor-https-setting)
- Fixed bug with pagination links (https://wordpress.org/support/topic/invitation-list-pages-not-found)
- Fixed bug with deleting multiple invites
- Fixed bug with best inviters invite rate
- Fixed bug with secure_invite_user_invites_remaining() function
- Fixed bug where users could still send invites after they had run out of invites to send
- Added function to reset a users invite settings to the global default
- System now shows reason why a user cannot send invites
- Fixed session_start() bug
- Added ability to increase number of available invites for all users who have had an invite limit set
- Put reason for invite button not showing on the main settings page (this was a regularly-reported bug)
- Fixed bug which showed invite reports to non-admin users
- Fixed divide by zero bug when viewing an individual users invite report
- Added [bestinviters] shortcode
- Added [myinviter] shortcode
- Fixed bugs with database collation which led to empty reports
- Made support for different versions of WordPress more robust
- Added support for invitation codes, so people can register without being invited as long as they have a valid code
- Added reports for invitation codes
- Allowed site administrators to invite no matter what the other settings are
- Added new preset for only allowing administrators to invite people
- Fixed bug with is_user_logged_in() function
- Added facility for administrators to send bulk invites
Fixed security problem for logged-in users
Added [inviteform] shortcode
Fixed BuddyPress redirect bug (thanks to Alessandro: http://www.ilbigliettino.com/)
Added mini admin report in a dashboard widget
Added invite form in a dashboard widget
Fixed bug for new users invite lockout
Fixed incorrect registration links for standard WordPress and BuddyPress sites
Fixed BuddyPress registration bug (thanks to Patrick Neyman: http://patrickneyman.com/). Made the default settings more sensible. Added proper notification for why the invitation button can be disabled.
Fixed bug with secure_invite_user_can_invite() when time limit is 0
Fixed bug with is_site_admin()/is_super_admin()
Fixed bug in MultiSite and MU admin.
Made the plugin work with standard (i.e. not MU or MultiSite) WordPress.
Fixed bug allowing an email address to be repeatedly invited (thanks to Chestnut from http://blog.bng.net for reporting this bug)
Fixed bug reported here: https://wordpress.org/support/topic/411404
Compatibility with WP 3.0, fixed small bugs
Updated plugin URI
Removed Plugin Register
Fixed conflict bug with group invite screen
Fixed bug with automatic BuddyPress integration options
Fixed bug with template tag form (thanks to Rune from http://vixenmagazine.no)
Added Plugin Register code
Added automatic BuddyPress theme integration, added inviter points system, added bulk deletion of invites, added settings presets, added override for special users, fixed bugs
Added registration email URL to settings
Allowed multiple registration URLs to be protected, changed email headers to fix from address bug
Added a support link and donate button
Added HTML comments for reasons why a user cannot send invites to help with troubleshooting
Added stripslashes() to fix display errors (thanks to Mark from http://of-cour.se/ for reporting that)
Disabled invite form if site registrations have been disabled (thanks to Mark of http://of-cour.se/ for the suggestion)
Added limit to the number of invitations a user can send, added secure_invite_form() function for display in a theme page, added deletion of invites for site admins, cleaned up the architecture