Description
Add one or more “lists” to any post. Registered users of your site can then join or leave the list. Lists can be used for any purpose (event RSVPs, running polls or surveys, etc.) and can be unobtrusively added to any post type. Optionally, lists can have a maximum number of users on it that you define, after which any user who joins the list is automatically added to an overflow “waitlist.”
This plugin also serves the needs of plugin developers who are looking for a simple way to manage sets of users on a per-post basis. A simple set of public functions are exposed to other installed plugins that developers can use to get information about the lists themselves, and the users listed on them.
Code examples
After installing and activating this plugin, include it in your own plugin project as follows:
<?php
/**
* Plugin Name: My plugin project
* Plugin URI: https://example.com/
* Description: Example plugin for playing with WP-Waitlist.
* Author: Me, myself, and I
* Version: 1.0
*/
class My_Plugin {
private $WP_Waitlist;
public function __construct () {
add_action('init', array($this, 'registerDepdencies'));
}
public function registerDepdencies () {
global $WP_Waitlist;
if (!$WP_Waitlist) {
// WP-Waitlist is not available, issue an error.
} else {
$this->$WP_Waitlist = $WP_Waitlist;
}
}
}
$My_Plugin = new My_Plugin();
At that point, you can call WP-Waitlist’s functions in your own plugin as follows:
public function myPluginLearnsAboutWaitlists ($post_id) {
// Get an array of all lists that the author of this post created.
$lists = $this->WP_Waitlist->getListsForPost($post_id);
// You can iterate through the lists attached to this post.
foreach ($lists as $list_name) {
$list_properties = $this->WP_Waitlist->getListProperties($post_id, $list_name);
foreach ($list_properties as $property_name => $property_value) {
print "$property_name is $property_value <br />";
}
// You can also learn which users are on the list...
$user_ids = $this->WP_Waitlist->getListedUsers($post_id, $list_name);
foreach ($user_ids as $id) {
$this_wp_user = get_userdata($id); // $this_wp_user is now a WP_User object.
}
// ...and which users have been waitlisted (joined after the list reached capacity).
$waitlisted_users = $this->WP_Waitlist->getWaitlistedUsers($post_id, $list_name);
// You can also get an array all users who have added themselves to the list, sorted by date.
$all_user_ids_on_list = $this->WP_Waitlist->getUsersOnList($post_id, $list_name);
}
}
Plugins that use this one
Know of a plugin that’s using WP-Waitlist? Let us know by posting in the support forum. ??
- WordPress Volunteer Project Manager
Maintaining this plugin is a labor of love. However, if you like it, please consider making a donation for your use of the plugin, purchasing one of Meitar’s web development books or, better yet, contributing directly to Meitar’s Cyberbusking fund. (Publishing royalties ain’t exactly the lucrative income it used to be, y’know?) Your support is appreciated!
Installation
- Download the plugin file.
- Unzip the file into your ‘wp-content/plugins/’ directory.
- Go to your WordPress administration panel and activate the plugin.
- In the Waitlist Details meta box on any post editing screen, enter a new list name, then publish the post. A join button will automatically appear on the published post.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“WP-Waitlist” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “WP-Waitlist” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
Verson 0.1
- Initial release.