Skip to content
  • My Account
  • My Downloads
  • Purchase History & Licenses
  • Subscriptions
Stephen Sherrard Plugins

Wordpress Plugins from Stephen Sherrard

Cart total: $0.00
Menu
  • Home
  • Plugins
    • Extensions
    • Bundles
    • Free Plugins
    • Services
  • Docs
    • WooCommerce Wholesale Ordering
      • WPML Integration and Multi-Currency Support
      • Aelia Currency Switcher integration
    • WooCommerce User Role Pricing
      • WPML Integration and Multi-Currency Support
      • Aelia Currency Switcher integration
    • Wholesale Ordering and User Role Pricing integration
    • WooCommerce User Role Minimums
    • Volunteer Sign Up Sheets documentation
    • Volunteer Sign Up Sheets Custom Fields documentation
    • Volunteer Sign Up Sheets Automated and Conditional Emails – Documentation
    • Volunteer Sign Up Sheets Calendar Display
    • Volunteer Sign Up Sheet Groups
    • Volunteer Sign Up Sheets Customizer documentation
    • PTA Member Directory & Contact Form documentation
  • Videos
  • Services
    • Custom Programming
    • Custom Woocommerce Extensions
    • Subsidized Development
    • Web Design
  • Help & Support
    • Support Forums
    • Code Snippets
    • File Downloads
    • Privacy & Security
    • Terms & Conditions
  • About Stephen
  • Contact

Volunteer Sign Up Sheets

Volunteer Sign Up Sheets plugin for WordPress

Free WordPress plugin for
Volunteer Sign Ups & Management

IMPORTANT ANNOUNCEMENT:
Plugin updates will be hosted here!

This plugin will remain free, but you will need to “purchase” the plugin to generate a license key in order to get automatic updates through your admin dashboard. If you already own the Complete Bundle then the main license key for that bundle will work for this plugin as well, so no need to purchase again.

Why the change?
The SVN repo had become corrupted in February 2025, and I have been locked out from making any updates or changes since then. The plugin team at wordpress.org has not been able to fix this in a timely manner, even after a minor security vulnerability was discovered, and so I’m forced to move the updates my own server to release the updates (including the security patch) and include the software licensing system and updater that I use for my paid extensions. I have also made the repo for this plugin public at GitHub to make it easier for others to contribute to the code and/or translations. If you know what you are doing, you can always download the latest version from GitHub and install the updates manually.

Plugin Details

This plugin allows you to easily create and manage volunteer sign up sheets for your school or organization. You can define four different types of events: Single, Recurring, Multi-Day, or Ongoing events. Single events are for events that take place on just a single date. Recurring events are events that happen more than once (such as a weekly function), but have the same needs for each date. Multi-Day events are events that are spread across more than one day, but have different needs for each day. Ongoing events do not have any dates associated with them, but are for committees or helpers that are needed on an ongoing basis.

For each of these types of events, you can create as many tasks or items as needed. For each of these tasks/items, you can specify how many items or people are needed, a description, a start and end time, the date (for multi-day events), and whether or not item details are needed (for example, if you want the volunteer to enter the type of dish they are bringing for a luncheon), and optionally enable quantities. The order of tasks/items can easily be sorted by drag and drop.

Sheets can also be specified as a “No Sign Up” event, which can be useful for general organization events and meetings, especially when used in conjunction with the Calendar Display extension.

Each sign-up sheet can be set to visible or hidden, so that you can create sign-up sheets ahead of time, but only make them visible to the public when you are ready for them to start signing up. There is also a test mode which will only show sign-up sheets on the public side to admin users or those who you give the “manage_signup_sheets” capability. Everyone else will see a message of your choosing while you are in test mode. When not in test mode, admins and users with the “manage_signup_sheets” capability can still view hidden sheets on the public side (for testing those sheets without putting the whole system into test mode).

In the settings, you can choose to require that users be logged in to view and/or sign-up for any volunteer sign-up sheets, and pick the message they will see if they are not logged in. Even if you keep the sheets open to the public, you can choose which personal info to show, or simply show “Filled” for filled slots.

There is also a hidden spambot field to prevent signup form submission from spambots.

If a user is logged in when they sign up, the system will keep track of the user ID, and on the main volunteer sign-ups page, they will also see a list of items/tasks that they have signed up for, and it will give them a link to clear each sign up if they need to cancel or reschedule. If they are not logged in when they sign up, but they use the same email as a registered user, that sign-up will be linked to that user’s account. You can also use the shortcode [pta_user_signups] to show the list of the current user’s signups on any page (along with clear links, if allowed).

Admin users can use the “live search” option on the front end sign up form to search for volunteers in either the plugin’s signups table, the WordPress users table, or both. If the admin then selects a volunteer, they can sign up that volunteer, and the signup will be assigned to that user’s account (if your volunteers have user accounts).

Admin users can also add, edit, or clear signups from the View Signups page in the admin dashboard.

There is a shortcode for a main sign-up sheet page – [pta_sign_up_sheet] – that will show a list of all active (and non-hidden) sign-up sheets, showing the number of open volunteer slots with links to view each individual sheet. Individual sheets have links next to each open task/item for signing up. When signing up, if the user is already logged in, their name and contact info (phone and email) will be pre-filled in the sign-up page form if that info exists in the user’s meta data. You can also enter shortcode arguments to display a specific sign-up sheet on any page. Additionally, there are shortcode arguments for many other features (see documentation).

There is a sidebar widget to show upcoming volunteer events and how many spots still need to be filled for each, linked to each individual sign-up sheet. You can choose whether or not to show Ongoing type events in the widget, and if they should be at the top or bottom of the list (since they don’t have dates associated with them).

Admin users can view sign-ups for each sheet, and add, edit, or clear any spots with a simple link. Each sheet can also be exported to Excel, CSV, PDF or Print formats. Admin side signups are displayed using the jQuery DataTables plugin, which allows sorting, filtering, searching, and showing/hiding columns, so you can arrange the data anyway you want before exporting or printing.

Committee/Event contact info can be entered for each sheet, or, if you are using the PTA Member Directory plugin, you can select one of the positions from the directory as the contact. When a user signs up, a confirmation email is sent to the user as well as a notification email to the contacts for that event (can be optionally disabled).

Automatic Email reminders can be set for each sign-up sheet. You can specify the number of days before the event to send the reminder emails, and there can be two sets of reminders for each sheet (for example, first reminder can be sent 7 days before the event, and the second reminder can be sent the day before the event). You can set an hourly limit for reminder emails in case your hosting account limits the number of outgoing emails per hour.

Simple to use custom email templates for sign-up confirmations and reminders.

Admin can use an Email Volunteers form page to quickly send an email to all volunteers for a specific sheet, or to all volunteers.

Sheets and tasks/signups can be shown via tables, or via table-style divs. CSS can be optionally disabled so that you can more easily style the displays the way you wish.

Custom Fields can be added to sheets, tasks, or sign-up forms (for collecting additional info from volunteers) via the Custom Fields extension.

Text displayed on the public side, such as columns headers, can be modified, along with additional layout options, with the Customizer extension.

Much more! Read the documentation for all the current features.

Features:

  • [pta_user_signups] shortcode allows you to show a list of the current logged in user’s signups on any page (with clear links, if allowed).
  • Integrates with the GDPR privacy functions of WordPress 4.9.6. Exported personal data from WordPress will include any signups for the specified email or user ID associated with that email. If the user requests their data be deleted, that same user signup data will be deleted along with all other WordPress data for that user.
  • Option to output lists as divs instead of tables (for easier custom styling and mobile responsive design).
  • Extensive hooks and filters that make it easy to extend or modify functionality
  • Supports the calendar display extension: https://stephensherrardplugins.com/plugins/pta-volunteer-sign-up-sheets-calendar-display/
  • Create custom fields that can be used for sheets, tasks, or signup forms, with the Custom Fields extension: https://stephensherrardplugins.com/plugins/pta-volunteer-sign-up-sheets-custom-fields/
  • Customize public side text and layout options with the Customizer extension: https://stephensherrardplugins.com/plugins/pta-volunteer-sign-up-sheets-customizer/
  • Group, or categorize, sheets/events with the Groups extension, which can also import groups from the WP Groups and BuddyPress plugins: https://stephensherrardplugins.com/plugins/pta-volunteer-sign-up-sheet-groups/
  • Specify any type of sheet as a “No Signup Event”. This allows you to create non-volunteer events for display only (no signup links or available spots will be shown). You can still create tasks/items with dates, start and end times for these sheets, which could be useful for showing the schedule/agenda for an event, but you won’t be able to specify quantity or other normal task options. This is useful for a combination volunteer sign-up and event calendar type of list/display, especially when used with the Calendar Display extension.
  • You can now move tasks from one sheet (they will be deleted from that sheet) to another sheet that you specify (they will be merged/added-to the selected sheet). Useful for merging two or more sheets into one for easier management.
  • Admin can live search user or sign-up tables for volunteers on the public sign-up form, to sign up volunteers from the public side.
  • Admin can view, edit, add, and clear signups from the View Signups page in the Admin dashboard.
  • Signups are shown on the Admin side using jQuery DataTables for easy sorting/filtering/searching, showing/hiding columns, and organizing your signup data for quick and easy export to Excel, CSV, PDF, or Print.
  • You can optionally enter a description for each task (in addition to the main content area for the whole sheet) that will be shown above the task signup table for each task (when not empty)
  • The ability to allow duplicate signups on a per task basis, changing the label for the item details form field on a per task/item basis, as well as allowing volunteers to specify quanitites on a per task/item basis.
  • Easily create volunteer sign-up sheets with unlimited number of tasks/items for each
  • Supports Single, Recurring, Ongoing or Multi-Day Events
  • All Sheets can be hidden from the public (visible only to logged in users)
  • No volunteer contact info is shown to the public (emails and phone are always hidden). Default public view shows only first name and last name for filled spots, but you can optionall show the full name, and there is also an option to simply show “Filled” for filled spots.
  • Hidden spambot field helps prevent automatic spambot form submissions
  • Up to 2 automatic reminder emails can be set up at individually specified intervals for each sheet (e.g., 7 days and 1 day before event)
  • Shortcodes for all sheets, or use argument to show a specific sheet on a page
  • Widget to show upcoming events that need volunteers in page sidebars
  • Individual sheets can be set to hidden until you are ready to have people sign up (useful for testing individual sheets)
  • Test Mode for entire volunteer system, which displays a message of your choosing to the public while you test the system
  • “manage_signup_sheets” capability so you can set up other users who can create and manage sign-up sheets without giving them full admin level access.
  • Integration with the PTA Member Directory & Contact Form plugin to quickly specify contacts for each sign-up sheet, linked to the contact form with the proper recipient already selected. http://wordpress.org/plugins/pta-member-directory/
  • Gutenberg Block Editor “PTA” block for creating shortcodes with all possible arguments, or use the free PTA Shortcodes extension ( available at https://wordpress.org/plugins/pta-shortcodes/ ) to easily generate shortcodes with all possible arguments in the Classic Editor
  • WordPress Multisite compatibility

Please see the GitHub page for more info:

https://github.com/dbarproductions/pta-volunteer-sign-up-sheets

 

Currency

Volunteer Sign Up Sheets

Checkout Added to cart
Included in the Complete Bundle / All Access Pass:
Checkout Added to cart
Already purchased? Log In
Recent reviews

There are no reviews yet.

  • Published: March 16, 2017
  • Licensed: Yes
  • Current Version: 5.6.4
Changelog

Version 5.6.4

  • Fixed security check bug when clearing a signup from the admin view signups page.
  • Fix admin side signup form validation to allow the number zero ("0") to be entered in item details field when the field is required.
  • Tested with PHP 8.4.7 and WordPress 6.8.1

Version 5.6.3

  • Version bump
  • Tested with PHP 8.4.7 and WordPress 6.8.1

Version 5.6.2

  • Fix for undefined constant in new updater function that would cause an error if no extensions were installed (constant defined in extensions)
  • Tested with PHP 8.4.7 and WordPress 6.8.1

Version 5.6.1

  • Removed the failed github updater code and replaced it with the same software licensing system and updater that the paid extensions use. Licenses will be required for automatic updates, but are free.
  • Tested with PHP 8.4.7 and WordPress 6.8.1

Version 5.5.5

  • Properly sanitize/escape values in the Upcoming Events widget.
  • Rework the loading of classes to prevent PHP notices of the translation text domains being loaded too early
  • CSS fix for sheet header row when using the Divs display option
  • Fix signup form validation to allow the number zero ("0") to be entered in item details field when the field is required.
  • Added updater function to serve updates from the public GitHub repository. Updates will no longer be available from the WordPress plugin repository.
  • Tested with PHP 8.4.7 and WordPress 6.8.1

Version 5.5.4

  • Added hooks and parameter to the add signup function to allow extensions to bypass the redirect function after a signup is processed
  • Tested with PHP 8.4.5 and WordPress 6.7.2

Version 5.5.3

  • Remove extraneous div closing tag that was messing up the User Signups List display when using Divs instead of tables.
  • Tested with PHP 8.4.5 and WordPress 6.7.2

Version 5.5.2

  • Update for the data class add_signup function to work better with the Waitlists extension.
  • Tested with PHP 8.4.2 and WordPress 6.7.2

Version 5.5.1

  • Fixed typo in the closing "tbody" tag in the signup sheet tables template that could affect the display of Multi-day or Recurring sheets with some themes.
  • Tested with PHP 8.4.2 and WordPress 6.7.2

Version 5.5.0

  • Added new template tags for emails.
  • Refactored template tag class to use separate functions for signup, task, and sheet tags, making it easier for extensions to utilize for specific objects.
  • Improved the template tag helper to show tag copied notice even when the page is scrolled down, added a close icon, and also made it so the helper can be closed with the ESC key.
  • Removed the list of available template tags under each email template editor now that additional tags are available and are more easily accessible with the template tags helper.
  • Tested with PHP 8.4.2 and WordPress 6.7.2

Version 5.4.0

  • Add a Template Tags Helper feature, and class, to help with the creation of template tags for use in email templates. Extensions can also register their own template tags with the class.
  • The Template Tags helper will appear at the top right of admin pages where you create email templates, and allow you to quickly search template tags and copy them to the clipboard just by clicking on them. Extensions will be updated after this to add their own template tags.
  • All the new public text strings for the validation system, as well as some previously unregistered text strings, are now registered with the new text registry class in version 4.0.0 of the Customizer extension.
  • Fix for {contact_emails} template tag always returning "N/A".
  • Changed the "# Needed" field on the add/edit Tasks page to be a number input instead of a text input, now that all modern browsers support number inputs.
  • Updated and modernized the javascript for adding/removing task rows on the Add/Edit Tasks page.
  • Tested with PHP 8.4.2 and WordPress 6.7.2

Version 5.3.1

  • Fixed the {validation_link} template tag for signup validation emails which was broken in 5.3.0 after separating out the email template tag functions into its own separate class.
  • Tested with PHP 8.4.2 and WordPress 6.7.2

Version 5.3.0

  • Separated out the email template tag functions into its own static class to be more accessible and extendable by extensions.
  • Updated javascript/jQuery files to more modern standards.
  • Minor HTML change for filter hooks on User Signups List for proper formatting for extensions that add columns after the "Clear" column.
  • Switched to vanilla js autocomplete function instead of jQuery UI Autocomplete for better efficiency, and registered the script for use in extensions (shared by Calendar extension). This is only used to allow admins or Signup Sheet managers to signup other people via live search on the public side signup form in the main plugin and the calendar extension.
  • Tested with PHP 8.4.2 and WordPress 6.7.2

Version 5.2.2

  • Bug fix for javascript browser confirmation when clearing a signup. Was still clearing the signup even if the user clicked "Cancel" in the confirmation box.
  • Tested with PHP 8.4.2 and WordPress 6.7.1

Version 5.2.1

  • Updated the User Signups List code to properly show clear links based on the new clear hours option, if it is changed to hours instead of days for a sheet.
  • Added link to new Waitlists extension on the admin "Add Ons" page
  • Tested with PHP 8.4.2 and WordPress 6.7.1

Version 5.2.0

  • New option on sheets to select if the clear time should be treated as days (default) or hours. Days are now treated as 24 hours instead of a calendar day.
  • The allow clear check function now will also look to see if the task has a start time, and if so, will base the allowed clear time calculation on the date and start time. If no start time, it defaults to midnight (time zero) of the signup date.
  • Bug fix for clear link showing to logged-in users for other user's signups
  • Minor code consolidation and optimization
  • Tested with PHP 8.4.2 and WordPress 6.7.1

Version 5.1.2

  • Minor change to the blocks build script to include a required WordPress dependency, that could cause the block editor to crash if you tried to edit a page with the old/legacy Sign Up Sheets block. If other blocks loaded by the editor include the dependency, then the editor will crash.
  • Tested with PHP 8.4.2 and WordPress 6.7.1

Version 5.1.1

  • Switched from sessions to cookies for storing the message data during redirects to be more compatible with different WordPress environments and plugins that may send out headers before this plugin has a chance to start the session, which was causing PHP Warnings on some sites.
  • Tested with PHP 8.4.2 and WordPress 6.7.1

Version 5.1.0

  • Fixed issues with certain validation features still working even when the main checkbox to enable the validation system was unchecked.
  • Added new Require Validation to Signup option to the Validation settings. Checking this will require that users validate their email address using the validation form before they can signup for an event, if you are not already requiring visitor to login or validate to view the signup sheets.
  • Added new option to disable sending the Signup Validation email to the global CC email address. Check if you do NOT want to get a copy of the validation emails when an unvalidated visitor has signed up for something (only if signup validation is enabled and you are not requiring validation to view).
  • Continued refactoring and modularization of the plugin code to make it easier to maintain and extend. Slowly working toward a complete overhaul of the core plugin code and a more object-oriented approach.
  • Tested with PHP 8.4.2 and WordPress 6.7.1

Version 5.0.0

  • Added new Validation features to (optionally) validate signups and allow users to view and clear their own signups without having to have a WordPress user account. Check the documentation for more details.
  • Updated the old Sign Up Sheets block to use the newest block API and to show a live preview of the output.
  • Added new blocks for the User Signups List, Upcoming Events list (old widget remains as well), and the User Validation Form.
  • New shortcode added for the User Validation Form. [pta_validation_form]
  • Logfile creation and viewing from the admin CRON functions page that will show any actions run during the CRON run. Log files will be automatically cleared every 30 days, or can be manually cleared from the CRON functions page.
  • Code optimization & moving common functions from extensions to global functions to reduce code duplication
  • Beginning to refactor the very old code base to make it more modular and easier to extend, moving toward a more object-oriented and modular approach.
  • Additional hooks added for new extensions, specifically for the new Waitlists extension
  • Minor changes to prevent deprecation notices in PHP8.4
  • Tested with PHP 8.4.2 and WordPress 6.7.1
  • This update, and all future versions of this plugin, as well as all extensions, will require PHP 7.4 or higher.

Version 4.6.1

  • Bug fix for "to" email address not being set for reminder and reschedule emails after changes introduced in version 4.6.0
  • Set a max limit on the quantity input on the signup form to the number of available slots
  • Minor update to activation functions for multisite installs for best practices
  • Minor code optimization changes
  • Additional hooks added for new extensions

Version 4.6.0

  • New option added to email settings page to enable sending emails in HTML format. If this is checked, the simple textarea input will change to the WordPress TinyMCE visual/text editor for email message templates. Line breaks in email templates will be converted to HTML with the WordPress wpautop function before sending the email.
  • New option added to enable automatic clear/deletion of expired sheets. This will delete the sheet from the database, along with all associated tasks and signups, a specified number of days after the sheet end date. You can also manually trigger this function from the CRON functions page to manually delete all expired sheets at any time.
  • New option to specify the number of days after the signup date, or the last sheet date, before clearing the sheets or signups. Default is 1 to be consistent with previous functionality. But, now you can increase this if you wish to automatically clean up your database, but want to give your managers some more time to be able to view/export the data before it's cleared from the database.
  • New option to hide the date header above the task tables when the sheet type is "Single", as this might be considered redundant by showing the same date above each task table.
  • User Signup Lists now have the sheet title linked to the individual sheet, as long as you have the "Volunteer Sign Up Page" set in the main options. It will link to that page with the sheet_id URL argument added so that the specific sheet is displayed. If you are using the Calendar extension and have that sheet linked to a calendar for view, the title will open the associated calendar for that sheet.
  • Added a timestamp column to the signups table that will be set to the current timestamp based on your WordPress time zone when a signup is added. This field will be shown on the admin View Signups and View/Export All Data pages in a "Signup Time" column with date and time formatted as set in your WordPress general settings.
  • New select options added to the add/edit sheet page to specify the recipients of signup confirmation and clear emails, which will override global email settings if you select anything other than default for each. You can choose from Default, Chairs, User, Both, or None. There are separate selections for signup confirmation emails and clear emails.
  • Added code to prevent viewing or signup for a sheet that has been trashed. This is for those rare situations where a shortcode includes a specific sheet ID, or there was an old manual link that included the sheet ID, but that sheet has been trashed. Previously the sheet would still be shown (but not in the main list of sheets).
  • data-label attribute added to each cell of tables, which is used in the mobile CSS added in this version (see below), but could also be used in any custom CSS or js to get the label/header for any cell.
  • Made the chair name(s) and chair email(s) fields no longer required when adding or editing a sheet. Note that this will result in a message on the sheet saying "No Event Chair contact info provided" (message can be changed or disabled with the Customizer extension), and the reply to address will be set to the Reply-To email in the email settings, or the admin email if the Reply-To email is not set.
  • Added option to include some simple mobile CSS that will style the tables to a one column display on screen sizes less than 600px wide. Table headers are hidden and table cells will be displayed in block format so each cell takes the full width, and a label will be added to the left from the data-label attribute added to each cell.
  • Modified and removed some of the default CSS table styling, and modified/added to some of the class names for elements, to work better with the new mobile CSS and Customizer extension.
  • Minor code optimization changes
  • Tested with PHP 8.3.13 and WordPress 6.7.1

Version 4.5.2

  • Minor code changes for compatibility with custom extensions
  • Tested with PHP 8.3.8 and WordPress 6.5.5

Version 4.5.1

  • Minor code change for compatibility with some custom extensions
  • Tested with PHP 8.2.10 and WordPress 6.5.3

Version 4.5.0

  • Added a database check for open spots and new error message "All spots have already been filled." that will show if a spot is filled by one person while another person is still filling out the form or still browsing the list of sheets. Thus when the second person tried to view the sign-up form, or tries to submit the sign-up form, when someone else just took the last spot, a more appropriate error message will be shown to avoid any confusion.
  • Minor code cleanup
  • Tested with PHP 8.2.10 and WordPress 6.5.3

Version 4.4.2

  • Minor change to the way the timestamp is calculated for use on the Admin view pages (to view all signup data) to allow dataTables to properly sort the date column. An issue was discovered where some date formats in other languages could cause an issue with the calculation of the timestamp using PHP's strtotime function.
  • Tested with PHP 8.2.10
  • Tested with WordPress 6.3.2

Version 4.4.0

  • Minor code cleanup
  • Tested with PHP 8.2.10
  • Tested with WordPress 6.3.1

Version 4.3.0

  • Added select option for all WordPress Users on the Admin Email Volunteers page, so you can now directly email all of your WordPress users.
  • Added hooks for new extensions
  • Register the select2 script (as 'pta-select2') so that it can be shared by several extensions that use it without having to register it separately in each extension
  • Tested with WordPress 6.0.2

Version 4.2.0

  • Added option to show the task description on the signup form.
  • Changed Quantity input to "number" type input and set minimum to 1 so can't try to submit with invalid numbers, or text, in the quantity input
  • Tested with WordPress 6.0.1

Version 4.1.0

  • Updated admin side scripts to allow DataTables column reordering in the View Signups and All Signup Data pages. You can now drag and drop columns to put them in the order you want them.

Version 4.0.0

  • NEW FEATURE: Admin can now Move a Signup to a different Sheet, Task, and/or Date. You can do this from the Admin side View Signups page. A new icon has been added after the Edit icon in the Actions column.
  • NEW FEATURE: Email settings added to allow you to disable signup confirmation emails and/or reminder emails
  • NEW FEATURE: Included the StateSave DataTables module for the Admin tables of View Signups and All Signup Data, which will allow you to create and view/update/delete different "states" (visible columns, sorting/filtering, etc.) of your DataTables settings for each table
  • Added Task Description to the columns for admin view signups and view/export all data
  • Updated DataTables to the latest version
  • CHANGED THE TRANSLATION TEXT DOMAIN to match the directory name to enable editing of translations at the wordpress.org website. If you were using your own translation file, you need to change the filename to match the new text domain, replacing pta_volunteer_sus with pta-volunteer-sign-up-sheets . All the old translation files submitted by others have been changed to the new file names, so they should be a good starting point
  • Tested with WordPress 5.9.3
Stephen Sherrard Plugins - WordPress Plugins from Stephen Sherrard
© 2025 DBAR Productions, LLC, dba MusicTECH
This site uses cookies. Find out more about this site’s cookies. ☒
Log into Your Account

Lost Password?