PTA Volunteer Sign Up Sheets documentation

The PTA Volunteer Sign Up Sheets plugin is a free plugin that you can download from the repository.  Search for it from your Add New plugins page, or download it from and install it manually.


I’m looking for feedback on either continued development of the free plugin, or a complete reworking into a “Pro” version with much better core structure. Please read the details and leave your comments here.


Have a new feature to request?  Please add your feature requests to the feature request forum.

I will use the feature request forum to try to keep track of the most popular feature requests, and will pick from those when (and if) I decide to add more features to the plugin.

Already this plugin has MANY more features than I originally intended, and MUCH more than we use for our school PTA site! It’s simply not possible or even practical for me to include all the feature requests that get sent my way. If I tried to make everyone happy and include every feature that people requested, the options would be overwhelming, and the plugin would be bloated to the point of greatly slowing sites down.

Whenever possible, if a feature request is popular enough, and won’t complicate or bloat the plugin too much, I will do my best to add it as I find time. Donations and great reviews are always encouraging!! Unfortunately, donations are extremely rare, and don’t come anywhere close to paying for the time involved to add just one small feature. Paying jobs always take priority.

If there is something you need right away, and it’s a feature that can be worked into an extension, or would be of benefit to many users, I will always consider subsidized development.

Other times I may decide to add features via a paid extension, so that they don’t over complicate and bloat the main plugin, and so they can help cover some of my development time. This way you can pick and choose only the extensions you need for the extra features you want. If you don’t see an extension that covers the features you need, I can always be hired to custom program one for you!

I also have been adding new features to the main plugin, as well as some of the extensions, as “subsidized” development jobs. If you have a feature that you absolutely need, and it’s something that I think may benefit other users as well, then I may consider moving it up to the top of my work list for a smaller subsidized fee for my development time. I usually do this more for paid extensions, and hope to make back my development time through additional sales.


Version 2.4 added these new features:

  • Added GDPR functions to hook in with new WordPress 4.9.6 GDPR functions. Signup data included in personal data exporter, and also for personal data eraser.
  • Added [pta_user_signups] shortcode to display list of user signups (with clear links, if allowed) on any page.

Version 2.2.2 added these new features:

  • Added “Prevent Global Overlapping Signups” option to prevent users from signing up for tasks on the same date with overlapping times. As opposed to the per sheet option, this will check ALL user signups across ALL sheets and, when enabled, will always check for overlaps, regardless of the per sheet setting.
  • Added order_by and order arguments to the shortcode for sorting the order of the main list of sheets. order_by can be set to “first_date”, “last_date”, “title”, or “id”. order can be either “ASC” or “DESC”.

Version 2.2.0 added these new features:

  • Added option to show/hide remaining slots on CSV exports for sheets. If you don’t need all the empty rows (for manual paper signups), you can un-check this setting to remove all those empty rows from CSV exports.
  • Added Reply-To Chairs option, allowing the reply-to email addresses to be set from the chair email addresses.
  • Added Disable ALL emails option. This will turn off all emails from the plugin. Useful if you are testing, or if you need to clear a bunch of signups and then manually sign people up again, and don’t want all those emails being sent.

Version 2.1.0 added these new features:

  • Added show_headers shortcode argument to show headers for sheets (title, contacts, and description). Shown by default.
  • Added show_phone shortcode argument to show phone numbers on signup lists. Hidden by default.

Version 2.0.1 added these new features:

  • Option to show full name when not hiding name (full first and last name instead of first name and last initial)
  • Added optional reminder 2 email subject and message templates. If either is left blank (subject and message are checked independent of each other), then the same subject and/or message template will be used for both reminders (default)

Version 2 added these new features:

  • Added option in email settings to send clear emails when a signup is cleared from the admin pages
  • Add option in email settings to disable emails to chairs/contacts. This will stop all signup and clear emails from being copied to the specified chair/contact emails for a sheet. Global CC emails will still be sent.
  • Added email template tag for chair/contact names (previously only had tag for contact emails)
  • Added option to create output using divs instead of tables, for easier styling and better responsive design (when customizing the CSS)
  • Added option to disable loading the plugin’s CSS styles. Use this when you want to create your own CSS styles for layout and messages.
  • Added code to check if the signup form and any messages (errors or signup notices) have already been displayed on a page, and to suppress them from being output more than once for those people who want to put more than one sign-up sheet shortcode on one page without using the redirect option for sign-up forms.
  • Added required attributes to first name, last name, and email fields on signup form. Browsers that support the required attribute will show a message if they try to submit the form without filling out those fields.
  • Added option to set whether the phone fields is required, allowing you to have it on the signup form but still allow people to sign up without filling it out. If set to required, the required attribute will also be added to the html form field inputs.
  • Added new check box on the task fields to set if the details field is required. This check box will only show if you first check “details needed”. Setting it as not required (un-checked) will allow you to use the field to collect optional info from the volunteers, without forcing them to fill out the field.

Version 1.13 added these new features:

  • Added new “Login Required for Signup” option. If you un-check the regular “Login Required?” option, but then check this new option, guests can view the sign-up sheets, but they will not be able to sign-up. Includes option to specify the “Login to Signup” message text.
  • Added new “Hide Details and Quantities” option. Checking this will not show the item details or quantity columns in the tasks list (single sheet display). Useful if you are using the details field to collect info from the volunteer that you don’t want shown to anyone else. This will affect all sheets.
  • Added new “Redirect Sign Ups to Main Page” option, which will be checked by default to be compatible with previous versions behavior. If you un-check this, sign-up links will NOT go to the main volunteer page, but will stay on the current page. Useful if you are using different shortcodes on different pages to display specific sheets and want to keep volunteers on that page when signing up.
  • Added an email volunteers form page (admin) where you can send an email message to either all volunteers, or volunteers for a specific sheet.
  • Additional code to allow multiple groups and restricted access when using the soon to be updated PTA Volunteer Sign Up Sheet Groups extension
  • Database update to allow MANY more dates to be added to recurring dates field.
  • Added phone number template tag for emails
  • Email template tags can now also be used in email subjects
  • New option added in Email Settings to send all CC/BCC emails as separate TO emails, potentially bypassing issues on some servers that do not like the default formatting of multiple CC/BCC emails in the header when using default server Sendmail (wp_mail) function, as opposed to bypassing Sendmail by using an SMTP plugin to send all WordPress emails via SMTP (much more reliable). If you are experiencing email delivery issues, try activating this option. Also, see this thread about WordPress emails.
  • Updated French translations, including France and Canada versions

Version 1.8 added these new features:

  • You can now specify, on a per sheet basis, if you want to let volunteers clear their own signups. Additionally, you can specify a minimum number of days before the event after which they can no longer clear their signups. Note that this will only work if your volunteers have user accounts on your site and are either logged in when they sign up, or use the same email associated with their user account (if not logged in when they sign up).
  • Added option to remove chair contact info from public sheets display (spam protection if you don’t want contact email links published)

Version 1.7 added:

  • You can now choose to hide the phone field on the volunteer task/item signup form

Version 1.6.2 added these new features:

  • A Global “CC email” has been added to the email settings. When a volunteer signs up, or clears one of their sign ups, any email entered into this CC email field will be copied the notification emails IN ADDITION TO the event chair contact emails. This way, if you want the site admin or a volunteer coordinator to get all notifications, and don’t want to enter their email as an additional event chair contact for each sheet, you can specify that email in this field.
  • Cleared signup email notifications. If a user clears one of their sign-ups (can only be done if you allow user accounts on your site and the user is logged in when they sign up), a confirmation email will be sent to that volunteer and will be copied to the contact emails for that sheet as well as the new global CC email (if entered).
  • The disable login notices option will now also remove the text below the main list of volunteer sheets notifying non-logged-in users to please login to view/edit their sign-ups.

Version 1.6 added several major new features:

  • You can now allow duplicate sign-ups on a per task basis. New checkbox option has been added on the add/edit tasks page. This will allow a volunteer to sign-up more than once for the same task/item.
  • You can now enter/modify the text that appears for the text field label on the signup form when you check “Details Needed” for a task/item. The default is “Item you are bringing”. Now you can set that text to anything you want to make that text input field more descriptive for the specific item/task that you require the user to input detail. This is set on a per task basis again, and the field for entering your text will appear after you check the “Details Needed?” box.
  • There is now a checkbox to Enable Quantities for each task/item. So, if you need something like 50 of a specific item for an event, you can now allow the volunteer to specify how many of those items they are bringing. The number of available spots will adjust based on the quantity entered.
  • You can now disable the login notice that appear on the signup screen if a user is not logged in. This is the message that strongly recommends they login before signing up so that they can keep track of and clear their signups. But, if you are not allowing user accounts on your site, this notice could cause confusion as your volunteers try to figure out how to sign in.


I’ll go through various sections of the plugin below and give detailed descriptions of what each does.

Please check the Newest Updates section above for new settings that may have been added since the below documentation was written.


Main Settings:

  • Enable Test Mode — Pretty self-explanatory.  Puts the entire system in test mode so that only admin level users can view sign-up sheets on the public side.  All other users will see a message of your choosing
  • Test Mode Message — The message you want displayed to the public on the page with your sign-up-sheet shortcode while in test mode.
  • Volunteer Sign Up Page — Choose a page from the drop down select list where you have put the main volunteer short code. Links in the widget will go to this page, and this page needs to be set for those widget links to work correctly. However, you can now use the below option to bypass redirects to this page from sign-up links in task lists.
  • Redirect Sign Ups to Main Page? — When checked (default) and a volunteer clicks on a sign-up link from the task list, they will be redirected to the main volunteer page (set above) for the sign-up form. The above setting is required for the Widget links to work properly, but you can now un-check this setting if you are using different sign-up sheet shortcodes on different pages to display specific sheets and want to keep the volunteers on that particular page when they go to the sign-up form.
  • Use divs? — If you check this option, the sheets lists, individual sheet tasks lists, and volunteer sign-up lists (list of things the volunteer signed up for if they are logged in), will be output using divs styled as a table instead of using tables. This makes it easier to style the output the way you want using custom CSS, as well as the ability with custom CSS to make the lists more responsive and mobile friendly. Each div has an appropriate class name (or several classes), making it very easy to target specific parts of the list for custom styling (or to hide them completely).
  • Disable plugin CSS? — Check this option to completely disable the output of the plugin’s CSS stylesheet. This way you don’t have to use things like “!important” to override the built-in styles. Use your browser inspector to get the classes for elements you want to style, or copy the plugin’s style sheet (inside the assets/css folder, it is the style.css file) to your theme and modify as desired.
  • Hide Volunteer names from public? — When checked, it just shows a slot as “filled”.  When not checked, it will show the first name and last initial of the person who signed up for that slot (no last names or contact info are ever shown to the public)
  • Show full name? — When checked, and not hiding name (above), the full first and last names will be shown instead of first name and last initial.
  • Consolidate remaining slots? — Condenses the layout of empty slots on task/item lists… very helpful if you have a lot of slots for a particular task/item and don’t want to show an empty row for each unfilled slot.
  • Hide Details and Quantities — This is a global option that affects all sheets. If you check this, the Details and Quantities columns will NOT be shown on any sheet (in case you are using the item details field to collect personal info you don’t want to show to anyone else)
  • Hide chair contact info from public? — Although chairs and contact info are required when creating a sheet, you can check this option to not show the chairs and contact info to the public on your sheets.
  • Show Ongoing events in Widget? — When checked, Ongoing event types will also be displayed in the sign-up sheets widget.  Normally the widget will only show sheets with tasks that have dates that haven’t passed yet.  Ongoing events don’t have dates, though, so if you include them in the widget they will always show up in the widget list of sheets.
  • Show Onging events last? — This works with the above option, and determines if ongoing events are shown first or last in the widget sheet list.
  • Phone Required? — Previously all sign-up form fields were required. Now with this option you can decide if the phone field is optional, without having to use the below option to completely remove it from the form. Default value is that phone is required.
  • Remove Phone field from Signup form? — If you don’t need volunteers to provide a contact form number, you can check this box to remove the field from the signup form.
  • Login Required? — If checked, only logged in users of your site will be able to view and sign up for any volunteer sheets.
  • Login Required for Signup? — If you un-check the above box, but then check this box, visitors can view the sheets, but they will not be able sign-up until they login. An often asked for feature!
  • Login Required Message — The message non-logged-in users will see on the volunteer sign-up sheets page if the above option is checked
  • Login to Sign-Up Message — This message replaced the “sign up” text link when you have the “Login Required for Signup?” option checked.
  • Read Only Signup? — When requiring users to be logged in to view or sign-up, when you check this option, the name and email fields will be filled from their user account info, and they won’t be able to modify it during the signup (input fields are set to read only).
  • Show Login Link? — If you have the login required option set, checking this will show a login link under the login required message.
  • Disable Login Notices? — Turns off the messages that strongly recommend they login before signing up (if they are not logged in and you are not requiring login).
  • Prevent Global Overlapping Signups? — Checking this will prevent users from signing up for tasks on the same date with overlapping times. As opposed to the per sheet option, this will check ALL user signups across ALL sheets and, when enabled, will always check for overlaps, regardless of the per sheet setting.
  • Enable CRON Notifications? — A CRON job is a scheduled action that happens in the background.  This plugin sets up two CRON jobs that are checked hourly.  One checks to see if any reminder emails need to be sent, and they other checks to see if there are any expired signups that should be cleared from the database.  WordPress has its own CRON function, which we use, but it will only get triggered when there is traffic to your site, so it’s possible that the CRON jobs will not run every hour.  If you check this box an email will be sent to your admin email address when a CRON job is run that has any results, meaning some reminders were sent or some signups were deleted from the database.  If no reminders were sent or no signups were deleted, you will not get an email.
  • Detailed Reminder Notifications? — Admin reminder emails notification will include the message body of all reminders sent, useful for troubleshooting.
  • Show Expired Tasks? — If you want to save signup info even after the dates have expired, check this box.  This ONLY affects the signup lists on the ADMIN side.  The public sign up sheets will never show tasks/signups that have expired.
  • Automatically clear expired signups? — Enables the hourly CRON function that checks for and deletes expired signups from the database.  If you want to save your signup data after a task date has passed be sure to uncheck this and then check the above option to be able to view the expired tasks/signups on the admin side.  If later on you want to manually delete all your expired signups, use the button on the CRON Functions page.  For example, it is useful to clear all signups so that you can alter the dates on a sheet and reuse it for the following school year.
  • Show remaining slots on sheet CSV exports? — Check this to generate rows for all the empty slots for tasks when exporting to CSV. This could be useful if you need to have manual paper signup forms. Un-Check this to not have all those empty rows in your CSV export file.
  • Enable Sign-up form live search? — If you check this box, admin users can use the public side to sign-up other volunteers for tasks. Start typing in a first or last name on the sign-up form, and matching users/volunteers will show in a drop down list you can select to automatically fill the fields. When you submit the sign-up, that sign-up gets assigned to that user (if they have a user account on your site) instead of to your admin account.
  • Live Search Tables — Select which tables to search for the above live search field. You can select WordPress Users, or the Sign-Ups table, or both.

 Email Settings

  • FROM email — Enter the email address that you want set as the From address for signup confirmation and reminder emails.  NOTE: if you use an SMTP plugin, such as the PTA SMTP Mailer, this address may be overridden by your SMTP settings.
  • Reply-To email — The reply-to email address for the same emails
  • Reply-To Chairs? — Check this to have the reply-to emails be set from the chair emails. When checked, the above reply-to option is ignored.
  • Confirmation email subject — Subject line of the confirmation email a volunteer receives when they sign up for something.  This email is also copied to the contact emails for that sheet.
  • Confirmation email template — Here is where you set up the confirmation email that a volunteer receives when they sign up for something.  Curly brackets are used as placeholders for variables that you can embed into your email, and there is a list of the ones you can use below the text area.  To avoid typos, just copy and paste the variable tags you want to use from the list below the textarea, including the curly brackets. These emails are sent as plain text, so do not use html.
  • Reminder email subject — subject for reminder emails sent to volunteers if you entered values for 1st or 2nd reminders when you added a sheet.
  • Reminder email template — works the same way as the Confirmation email template
  • Reminder 2 email subject — subject for the second reminder emails sent to volunteers if you entered values for 1st or 2nd reminders when you added a sheet. If this if left blank (default), then the same subject will be used for both reminders.
  • Reminder 2 email template — email template for the second reminder email. Leave this blank (default) to use the same template for both reminders. This is independent of the reminder 2 subject, so even if the reminder 2 subject is blank you can still create a separate message template, and vice versa.
  • Max Reminders per Hour — if your hosting account places a limit on the number of outgoing emails per hour, it’s a good idea to set a number here to limit how many emails this plugin can send out per hour.  Make sure to give yourself some margin to allow for other system emails as well.  Leave blank or set to zero for no limit.
  • Separate CC/BCC to individual TO emails? —  If checked, any CC or BCC email addresses (chairs, global CC, admin) will be sent individually as separate emails, as opposed to one email with several CC or BCC addresses in the header. This could solve some email issues on some servers when using the the built-in wp_mail function (PHP sendmail), instead of an SMTP email plugin (a better choice), where none or only some of the CC/BCC recipients actually get the email. Note, however, that this could send out a large number of emails at once, and you should be aware of any server limits on the number of emails sent per hour. Also, see this thread about WordPress emails.
  • Send emails when clear from admin? — Check this option to send out the cleared signup email when a spot is cleared by the admin from the admin view signups page.
  • Disable chair emails? — Check this to disable sending copies of all the signup, reminder, and cleared emails to the chair emails. If you have a lot of spots and lots of volunteers signing up, and regularly check the volunteers on your site, you may want to check this box if the chair email boxes are getting flooded with notifications.
  • Disable ALL emails? — If checked, ALL emails will be disabled (including reminder emails). Useful if you want to clear and manually sign up users without emails being sent (when making corrections, for example). Reminders will start to get checked and sent again after you turn this off.

Integration Settings

This page will show any options that are available for integrating with other supported plugins.  Right now, this plugin only integrates with the PTA Member Directory & Contact Form plugin.

PTA Member Directory Integration settings

If you have the PTA Member Directory plugin, you can use it to specify a Position group of members to be the contacts for a volunteer sheet.  For example, if you are having an Ice Cream Social and have the committee chairs for the ice cream social set up with the “position” of Ice Cream Social in your member directory, then you can specify that group as the contact for your Ice Cream Social volunteer sign-up sheet.  If a volunteer clicks on the contact link on the Ice Cream Social volunteer page, they will be taken to the member directory contact form with that group pre-selected, and they can send a message to the group.  Also, for the confirmation and reminder emails, the plugin will automatically extract the emails for all members of that group and list those emails in place of the {contact_emails} template tag.

  • Enable PTA Member Directory — Turns on the integration with the Member Directory plugin
  • Member Directory Page — Select the page where you have put the shortcode for your member directory.
  • Contact Form Page — Select the page where you have put the shortcode for the PTA Member Directory contact form.  This page will be linked to from the contact link on the sign-up sheet pages, and the group you specify as the contact for the sheet will be pre-selected in the contact form.  Also works with the Gravity Forms extension.

User Roles – Sign-up Sheet Manager

This plugin adds a new user role to the WordPress system called “Sign-up Sheet Manager”.  This role is the same as the “Author” role, except that it adds the “manage_signup_sheets” capability.  If you have users who you want to allow to create, edit, and view sign-up sheets on the admin side, but don’t want them to have full admin access, you can either assign them to the Sign-up Sheet Manager role, or use some type of role/capability editor (such as Role Scoper) to assign the manage_signup_sheets capability to them.

Event Types

When adding a new sign-up sheet, there are four Event Types you can choose from:

  • Single — This is for an event that happens on just one day.  You will only be able to enter one date on the tasks screen that will apply to all items/tasks for this event type.
  • Recurring — This is for an event that recurs on multiple days, but has the exact same items/tasks needed for each occurrence. For example, our school has Popcorn Fridays almost every Friday, and we need two poppers and one cashier each Friday.  On the tasks screen for this event type, there will be a multi-date select box to allow you to set all the dates for this event, and then all of the tasks you enter will show up for each one of those dates.  NOTE, it is possible to eventually fill up all the space allocated to this dates field, so if you have an event that recurs a very large number of times, you may need to limit how many upcoming dates you list at one time and deselect old dates after they have passed.  We came across this problem with our Popcorn Fridays event for our school, but after I figured out the problem, I more than doubled the available size for this field.
  • Multi-Day — This is an event that happens across more than one day, but that has different tasks/items needed for each day.  For example, we use it for our Book Fairs, where we have a “set up” day and a “take down” day where we just need a certain number of bodies to help, and then for the week of the book fair we need a certain number of cashiers and book finders/floaters for each day.  For these Multi-Day event types, each task/item has its own single date picker field to specify the date for that item/task.
  • Onging — This type of sheet doesn’t have any dates associated with it.  These are for more general volunteer type opportunities that don’t have specific date/time type requirements, but are needed at various times throughout the year.  For example, you could use it to get volunteers for Yearbook photographers, Webmasters, Art Docents, classroom helpers, etc.

Adding a new Sign-up Sheet

From the admin dashboard, you can create a new sign-up sheet with the “Add New” submenu page under Sign-Up sheets, or by clicking on the “Add New” button at the top of the “All Sheets” list.

The forms for entering a new sign-up sheet are split across 2 pages, the first being for the main event type and details, and the second is where you set up all the items/tasks needed.  Once a sheet has been saved, there will be an “Edit Sheet” and an “Edit Tasks” link for each sheet when you hover over the name.

Add/Edit Sheet

This is the page where you set up the Event Title, Type of Event, Contact Info, and the Event Details.  You can only select the Event Type when adding a new sheet.  Once that sheet has been saved, you can’t change its event type as the task data is saved differently for each type of event and would not translate properly to a different event type.

Most of the fields here should be self explanatory.

No Signup Event? Checking this box lets you create an event that doesn’t need anyone to sign up, but still lets you create simple tasks/items. This is so you can show other types of events, which don’t require volunteers, in the main sheet list, the widget, or the calendar extension.

Reminders:  You can have up to two automatic email reminders sent out to volunteers.  To set up a reminder, simply enter the number of days before the task/event date that you want the email sent.  For example, you may want to send out the first set of reminders 7 days before an event/task, and the second set of reminders the day before.  If you don’t want any reminders sent, just leave these fields blank or set them to 0.  Note that the date that the reminder function checks against is the date for each task, so it works properly for recurring events or multi-day events.  If you use an Ongoing even type, these fields won’t have any effect and reminders won’t be sent.

Show Clear links for signups? This is checked by default to be compatible with older versions. Un-checking this will remove the clear links from the public side, so that volunteers (if they were logged in when they signed up) can not clear their own sign-ups.

Clear links and # of days: Added in version 1.8, you can now decide if you want to allow volunteers to be able to clear themselves from an item/task they signed up for. Uncheck the box to completely disable the clear links for all signups on the sheet. If you leave it checked, you can also specify a # of days before the event after which they can no longer clear their signups.  For example, if you set this to 2 for a task/item scheduled for a Friday, then they can only clear their signups before Wednesday. From Wednesday on the clear link will not be shown. Please note that this only works if your volunteers all have user accounts on your site and if they were logged into their account when they signed up, or, if they weren’t logged in, they used their registered email.  They only see the list of items they have signed up for on the main sign-up sheet page if they are logged into their user account.

Allow Duplicate Signup Times? Allows volunteers to sign-up for different tasks (on the same sheet) that have overlapping times.

Contact Info: Contact info is required.  If you don’t have the PTA Member Directory plugin and the integration enabled, then you must enter at least one name and email for the contact info. Multiple names and emails can be entered by separating each by a comma.  If you do have the Member Directory plugin and integration is enabled, then you will see a select box with Positions from the Member Directory as choices.  You may then select one of those Positions to act as the contact for the sheet/event.  If the public clicks on the contact link on the sign-up sheet page for that event, they will be taken to the contact form with that position pre-selected as the recipient group.  That contact message will be sent to all members who hold that position.  Alternately, instead of selecting a position (in case you chose not to show positions in your contact form, for example, or you don’t want to use them as contacts), you can still enter names and emails in the boxes provide.  NOTE, you are not allowed to do both — i.e., you can’t select a Position and also enter names/emails.

Program/Event Details: Although this field is optional, it is probably the best place to put all your detailed info about an event that you want to present on a sign-up page.  This will then be generated by the shortcode when a volunteer clicks through to this specific sign-up page. This way you can just have one page for ALL of your volunteer events that you put the main shortcode on.  That will show a list of all available volunteer opportunities, and when they click through to one of the sheets/events they can see full details as well as a listing of all the tasks that they can sign up for.

Add/Edit Tasks/Items

The page to add or edit tasks/items should also be mostly self-explanatory, but a few things will change depending on the type of event selected.

For Single and Recurring event types, the first field on the page will be for date/dates. For Single events, you may select only one date with the pop-up date picker.  For Recurring events, you can select many dates, but you MUST select at least 2 dates (otherwise, it’s really a single event).  You can then add/remove and sort taks/items as needed.

The only required fields for Tasks/Items is a name and # of People/Items needed.  If you don’t enter a number for # of People/Items needed, the plugin will assume you meant to enter a 1 and fill that in for you when you save the tasks.  Other fields are optional.

For Multi-Day events, the main difference is that the date field at the top will be removed, and instead each Task/Item will have its own date field, for which you can pick only one date.

For Ongoing events, you will not see any date fields at all on the add/edit tasks page.  Everything else functions the same as above.

Details Needed – Originally, this field was set up for our own organization for staff lunches where people would sign up to bring something like a “main dish”, and we wanted them to specify the exact dish they were bringing to avoid duplicates by other volunteers. However, users of this plugin have found many other uses for this field, and options have been added to make it more flexible. When you check the “Details Needed” check box, a text field will open allowing you to specify the label that will be used for the text input field on the sign up form. There is an option on the main settings page to hide the details field from the public side, which makes it possible to use this field to collect additional info from your volunteer without it being publicly displayed. Version 2 also adds an additional check box for each task, that is shown when you check “Details Needed”, and that allows you to determine if the details field is required on the sign up form (default). You can un-check that option to make that input field not required to complete the sign-up, allowing you to collect optional extra info for the task/item.

Move tasks – This is a relatively new feature that allows you to move all tasks from the current sheet to another sheet (this is a function added by another contributor). Useful if you want to merge events from two sheets into one, or to “copy” tasks from an old sheet to a new sheet without simply using the copy function from the main sheets list. Please note that the tasks are MOVED (NOT copied) by simply reassigning the sheet id in the database table that stores the tasks, so once you do the move operation, you will lose all tasks in the current sheet.

Administration – All Sheets

Once you have some sheets added, there are several things you can do from the Admin section of this plugin.  On the All Sheets page you will see a list-table of all sheets currently in the system, along with some basic info for each.

If you hover over the title of any sheet, you will see the following option links:

  • View Sign-ups — Takes you to a detailed list table with a list of all volunteers who have signed up, along with their full contact info, a link to clear each signup, and a button to export the signups as an Excel ready CSV file.
  • Edit Sheet — Takes you to the edit sheet page for that event (see above)
  • Edit Tasks — Takes you to the edit tasks page for that event (see above)
  • Copy — Makes a copy of the sheet, appending “copy” to the name.  Useful if you have a couple of events that have very similar requirements, as it will copy all sheet and tasks you have entered, and then you can change the name and any other details on the copy you created for the second event.
  • Trash — Moves the sheet to the trash, but does not permanently delete it (click on trash at the top of the table to view trashed sheets and permanently delete them)

Visibility — There is a “Visible” column for each sheet on the All Sheets list table.  If a sheet is hidden from the public, you will see a red “NO” listed in the column.  If you go to the public side, those sheets will not show up in the main volunteer page list or in the widgets unless you are logged in as admin or volunteer sheet manager (in which case you will see the sheet listed, but there will be some red text below it to remind you that the sheet is hidden from the public).  Click on “Yes” or “NO” to toggle the visibility of a sheet.  It may be useful to have a sheet hidden while you are getting it set up and testing things out, or if you don’t want to make sign-ups available until a certain date.

Bulk Actions — From the main All Sheets list you can use bulk actions to trash or toggle the visibility of several sheets at once.  While you are in the trash bin, you can use bulk actions to permanently delete or restore multiple sheets at once.

View Sign-ups Page (admin)

This is where you can view all your detailed sign-up information for an event.  Full name and contact information is shown for each volunteer, and there is a “Clear Spot” link if you need to remove a volunteer from a spot.  At the bottom of the list table is an “Export Sheet as CSV” button that will export that sign-up information to an Excel ready CSV file.

CRON Functions (admin)

The CRON Functions admin page will show you some information about the CRON reminder functions, and also will allow you to manually clear expired signups if you disabled their automatic clearing.

In the reminders section, you’ll see data for the last time any reminder emails were actually sent, and then data for the last time the reminders were actually sent.  If the CRON function has never run, or no reminders have ever been sent, you may see some strange date/times here.  If you are testing, and don’t want to wait for the next hourly CRON reminder check, you can click the Send Reminders button to run the reminders check manually.

Email Volunteers

Version 1.13 adds a new sub-menu item and page to the Sign-Up Sheets admin menu labeled “Email Volunteers”. This is a simple email form that will allow admin users to send a message to all signed-up volunteers for a specific sheet, or to ALL volunteers currently in the sign-up database table (for ALL sheets).

This form should be self explanatory, with the exception of the option at the bottom to either send emails individually (one email sent as a “to” email for each volunteer), or to use one email with BCC fields. The reason for one or the other is explained next to the option, and also above for a similar option for the email settings page. If you are using BCC (default), but not all the volunteers are getting the email, the preferred method is to install a SMTP mailer plugin and connect your WordPress site to a real SMTP account (which will be much more reliable anyway). But, if you can’t do that, and your server’s sendmail function doesn’t like the formatting of the BCC headers, then check this box to loop through all volunteer emails and send to one email address at a time. Be aware, however, that this could generate a LOT of emails in a short period of time (if you have a lot of volunteers in the sign-up database), and your server may have spam protection in place that limits how many emails can be sent each other (check with your hosting company).

Public Side use


All you really need to make all the features available to the public is to create a page for your Vounteer sign-up system and insert the main shortcode:


However, if you want to use any arguments in the shortcode, or simply have trouble remembering (or copying and pasting), it is highly recommended that you download the free PTA Shortcodes plugin, which will add a PTA icon to your page/post editor to create the shortcodes for you.

It is also recommended that you don’t put any other content in the content area of the page or post that you insert the main shortcode since the shortcode will generate different content depending on actions that the user takes.

Version 2.4.0 Added the [pta_user_signups] shortcode to display only a list of the current user’s signups (with clear links, if allowed) on any page. The show_time argument can also be used with this shortcode.


Public functionality

On the page that you put the shortcode, there will first appear a simple list-table of current volunteer sign-up sheets with start date, end date, and links to “View & sign-up” for each sheet.  The default heading of “Current Volunteer Sign-up Sheets” above that table can be changed by adding a “list-title” argument to the shortcode, such as:

list_title=”My New Title”

Again, this is made easier if you use the PTA Shortcodes plugin.

This list will ONLY show sheets where there are still items/tasks whose dates have not already passed.  If it’s a recurring or multi-day event, the sheet will still be in the list as long as there still are some dates for items/tasks that have not expired yet.  Expired tasks/items will not be counted in the “Open Slots” calculations.

If a user is logged in and has already signed up for anything, then below that main list will be another list showing everything they have signed up for along with a “clear” link that they can use to remove themselves from a sign-up.

When a volunteer clicks on a sheet title or the “View & sign-up” link, the page refreshes and they will see the details for that specific sheet/event.  Title, contact info, and any details will be shown at the top, followed by a table of all upcoming tasks/items.  For each available spot that has not been filled yet, there will be a “Sign up” link.

When a volunteer clicks on the sign up link for an open spot, the page refreshes and they are shown a simple sign-up form where they enter first name, last name, email, and phone.  If the task/item requires details, then there will be an input box for them to enter the task/item details (such as what dish they are bringing to a lunch).  If the user is logged in, then their contact info will already be filled in for them if it has already been stored in their user profile (as a minimum, each user account needs an email, so that will always be filled in for logged in users).  If they don’t have first name, last name, or phone already stored in their user meta, then after they sign up for their first volunteer slot, that information will be added to the user’s meta, and they won’t have to fill it in for future volunteer sign-ups.

After a user signs-up for a slot, they will immediately be emailed a confirmation with all the details, and a copy of that will also be sent to the contacts specified for the event.

Displaying a Sign-up Sheet on its own page

If you have a page where you always want to show the list of available sign-ups for a particular event/sheet, you can add the “id” argument to the shortcode.  You need to look at the All Sheets list on the admin side to find the ID for a sheet, and then add the argument to the shortcode in the format:


Again, this is made easier if you use the PTA Shortcodes plugin.

With this argument included, the main list of all sign-up sheets will not be displayed, instead you will see the details and list of available sign-ups for that particular sheet. If you have the “Redirect Sign Ups to Main Page?” box check in the main settings, the volunteer will be redirected to the main “Volunteer Sign Up Page” you selected in the settings. If you want to keep them on the same page to signup, then you need to make sure the “Redirect Sign Ups to Main Page?” option is not checked.

Starting with version 2 of the plugin, you can use more than one shortcode on a page to display several single sheets on a page. If you put multiple shortcodes on one page, you will probably need to enable the option “Suppress Duplicate Output?” to avoid duplicate success/error messages, and/or use the redirect option to redirect to a main page for signups.

ALL Available Shortcode Arguments

It is once again strongly recommended that you use the PTA Shortcodes plugin to see and properly use all the available shortcode arguments, but they are listed here for reference:

  • id – A specific sheet ID to display. ID is shown as the first column on the admin main list of sheets
  • date – Can be used on its own to only show sheets/tasks for a specific date, or can also be used in combination with the id argument to only show tasks for a specific sheet and a specific date (only really useful if that sheet has tasks on multiple dates). Dates need to be specified as: yyyy-mm-dd
  • group – This is used to specify one or more groups to show sheets for when used in conjunction with the Groups extension
  • list_title – Allows you to modify the default title shown above the main list of volunteer sheets
  • show_headers – This allows you to determine if headers should be shown on the individual sheet display. Headers include the sheet title, contact info, and description. Argument values are “yes” or “no”. If not specified, headers will be shown by default (“yes” is default)
  • show_time – Allows you to show or hide the start and end time columns on the sheet display. Argument values are “yes” or “no”. If not specified, times will be shown by default (“yes” is default)
  • show_phone – Allows you to show phone numbers on the list of signups. Only works if you are displaying each signup in the task list (versus a consolidated view). Argument values are “yes” or “no”. If not specified, the phone column will NOT be shown(“no” is default)
  • order_by – Lets you define the sort order of the list of sheets shown. Can be set to “first_date” (default), “last_date”, “title”, or “id”.
  • order – when used with the above order_by, lets you set the ordering as ‘ASC’ or ‘DESC’ (ascending or descending).

For any of the arguments, the format is the argument id, followed by an equal sign and then the value in quotes. Here is a sample with all arguments shown:

[pta_sign_up_sheet id="6" date="" group="" list_title="" show_time="yes" show_headers="yes" show_phone="yes" order_by="title" order="ASC"]