Documentation
Installation
Install and activate the Conference Scheduler plugin from within your sites Admin section, or download it from the WordPress Plugins Directory.
Setup
View Mode
Conference Scheduler can be setup in one of two view modes which affect the display of the schedule ot the user and the way that workshop times are managed in the Admin.
Session Mode
In Session Mode, you manually create Sessions (ie. timeslots that the workshops will occur during). The Start time and length properties are defined for the Session, and then you just link each workshop to a session. When a users views the schedule, it is presented as a list of Sessions with the workshops in a session displayed in a grid below the session title.
This mode works best for situations where you have many workshops that occur during a few, set periods.
Timeline Mode
In Timeline Mode, the start time and duration are set individually for each workshop. In this mode, the system automatically manages Sessions for you so you can just ignore them. When a user views the schedule, it is presented as a vertical timeline with workshops placed in groups on the line based on their start time.
Timeline Mode is best for situations where workshops have different start times and/or durations.
To change mode, go to the Conference section of the WP Customizer and change the “Display Mode” setting. You can swap back and forth at any point.
Enter your Schedule Data
- Setup Sessions (Session Mode Only) – Conference Scheduler manages workshop timings using Sessions so it’s best to set them all up first. Enter all possible workshop sessions on the ‘Conference -> Sessions’ screen of the WordPress admin. Name each session and specify start date/time and session length. Sessions can be nested to easily organize complex schedules (eg. a one hour session with two 30min sessions in parallel).
- Setup Themes and Keywords – if your conference has defined streams it’s best to define these tags first so you can apply them to workshops quickly. You can also create new tags when entering workshops if you think of new ones later.
- Add Workshops – add all the workshop information using the familiar WordPress admin interface.
Display
To show your schedule, add the Conference Scheduler block to the post or page where you want the schedule to show. You can configure the display options in the block settings.
Shortcode Display
If you’re still using the classic editor or prefer to use the shortcode block, you can display the full conference schedule on your website by adding the following shortcode on the post/page where you want it to go:
[conf_scheduler]
Yes, it’s that simple!
Display Only Selected Session
You can optionally configure the shortcode to display only the children of a specified Session (and their descendants). This is useful for showing events on only a particular day, or even if you want to have monthly/annual events and display them separately. You can specify a session by either slug or ID (don’t use both).
Single Session View: To show a single session and its workshops (versus all child sessions and their workshops), use the singlesession attribute of the shortcode and put in the ID of the sesion as the value. To display the workshops in session with ID 121:
[conf_scheduler singlesession="121"]
Specify Session By Slug: You can add session=”my-session-slug” to the shortcode to display child sessions of the session whose slug is my-session-slug. Session slugs are listed in the table on the Sessions page in the Conference menu.
[conf_scheduler session="my-session-slug"]
Specify Session By ID: You can add id=”121″ to the shortcode to display child sessions of the session with ID 121. Session IDs are the Tag ID number in the Edit Session link on the Session table. It’s generally easier to use slug, but if you’re having issues with it, ID is more specific.
[conf_scheduler id="121"]
Display Only Workshops With Selected Theme/Keyword
You can optionally configure the shortcode to display only workshops that have a particular theme or keyword. You can pass a comma-separated list of slugs to the attribute and only workshops that match ANY of the themes/keywords will be displayed. To filter by theme, use the theme attribute, and use the keywords attribute for keywords.
[conf_scheduler theme="theme-one,theme-three"]
[conf_scheduler keywords="keyword-two,keyword-five"]
Initial Display State
Conference Scheduler Block:
If you’re using the block, you can set the initial display state using the Show On Load block setting. Click on the Conference Scheduler block, and in the Block Settings panel, choose what you want to show.
Shortcode:
By default, days and sessions are initally closed and need to be clicked on to display. However, you can use the defaultstate shortcode option to customize the initial display state. The possible values of defaultstate are:
- open – all days, sessions and workshops are displayed.
- parent_sessions – days and first-level sessions only are displayed. Workshops and any child sessions are hidden.
- all_sessions – All days and sessions are displayed, but workshops are hidden.
For example, to show all content initially, use the following shortcode:
[conf_scheduler defaultstate="open"]
Styling Output
Use the WordPress Customizer to configure basic workshop display settings like:
- Workshops per row.
- Workshop sort order.
- Workshop colours (border, title, background, open/picked background).
- Day and session title colours.
Conference Scheduler has been designed with a minimal set of CSS rules that should make it look good in most themes, but it’s also easy to add custom CSS to your theme to change the way the workshops render.
If you need help styling Conference Scheduler to match your theme, get in touch, and I’d be happy to help for a small fee.
Using Conference Scheduler
Conference Scheduler creates a collapsable tree of dates and sessions which can be collapsed/expanded by clicking/tapping on their title.
By default, workshops hide their description and presenter bio. To view/hide these, just click/tap on the workshop. If you want to force the description and bio to always show, add the following CSS rule to your theme stylesheet or the WordPress Customizer’s Additional CSS section:
.conf_scheduler .session .workshop .details,
body.single-conf_workshop .workshop .details { display:block !important; }
Searching
Conference Scheduler comes with a search bar which includes select menus to filter workshops by themes or keywords, as well as a search box which searches in workshop title and presenter fields.
Picks
Conference Scheduler allows visitors to “pick” workshops by clicking on the star in the top-left corner of the workshop. Picked workshops will rise to the beginning of their session for easy access. Additionally, the “Show My Picks” button in the Conference Scheduler search bar will show only picked workshops so you can quickly see only what you’re interested in. To un-pick a workshop, simply click/tap on the star again.
Picked workshops are stored as a cookie on the device and are thus saved between visits.
Session Setup
The organizational power of Conference Scheduler comes from the use of sessions to schedule workshops. With thoughtful session setup, you can present workshops in many different ways.
Session Descriptions
You can optionally add a description to each session that will show below the session title. This can be used to describe the session, provide a summary of the workshops, or be used with sessions without any workshops to add other items to the conference schedule like keynote presentations, lunch breaks etc.
Simple Sessions
Great for cases where all workshops in a session are the same length. Just create a basic session and don’t worry about any of the options.
Merged Sessions
If you have workshops of different lengths that you want to show together, this is for you. For example, if you have a one-hour slot with some workshops that are the full hour, while others are only 20 minutes each, what you should do is create the main session for 60 minutes, and then create a new session for each sub-session, and set the Parent to the main session.
Group by Location
If you don’t want to specify subsession times on the schedule, you can place all the workshops in the same parent session and check the “Group By Location” box for the session. This will use the location field to group workshops together, while each workshop still shows the same timeslot.
FAQ
Emails are not being sent/received
Conference Scheduler uses the default WordPress mail function which works well on most servers. Some email programs will classify these emails as spam, so make sure to check your spam folder. Some servers are configured in a way that creates issues with the default WordPress email function. If you are having issues with sending emails, try using a SMTP mail plugin like WP Mail SMTP.
Advanced Customization
For people with basic familiarity with WordPress coding (editing CSS, theme function.php files), Conference Scheduler Pro has several hooks and filters to allow for detailed customization. If you’re not comfortable with doing this yourself, I can do it for you for a small fee if you get in touch.
Workshop Template
The HTML of the workshop block can be customized creating a ‘conference-scheduler’ folder in your theme and copying the ‘templates/workshop.php’ file from the plugin folder. Workshop data is passed to the template as a PHP object called $data, with properties named for each field.
Advanced Custom Fields Integration
Conference Scheduler supports Advanced Custom Fields (ACF) for workshops. Setup your custom fields using ACF and set the Location rule to be Post Type equals Workshop. ACF text, textarea, and wysiwyg types are automatically supported during import and export. Other field types can be added but require custom code to handle their import/export.
To display values from ACF fields on the workshop, just use the normal ACF functions in the workshop template. For example, to display a text field simply add:
<?php the_field('text_field', $data->post_id); ?>
To add an image field to the workshop:
<?php $image = get_field('image', $data->post_id);
$size = 'full'; // (thumbnail, medium, large, full or custom size)
if( $image ) {
echo wp_get_attachment_image( $image, $size );
}
?>
When displaying ACF fields, make sure you specify the second Post ID parameter (with the value $data->post_id). Otherwise, the data will be taken from the page/post the schedule is being displayed on rather than the workshop being displayed.
Customizing Front-end Searching
By default, the search box displayed with the workshops only searches the Title and Presenter fields for each workshop. Additional fields can be searched by calling the ‘conf_scheduler_searchable’ filter and adding CSS selectors to be searched. Selectors will only be matched within the .workshop block, so you don’t have to give full selectors. For example, to set the description as searchable, add this code to your functions.php file:
add_filter('conf_scheduler_searchable', 'searchable_selectors');
function searchable_selectors($selectors) {
$selectors[] = '.description';
return $selectors;
Warning: Adding additional search fields can make searching less responsive with large numbers of workshops.
Pro Features
Import/Export
With Conference Scheduler Pro, you can import workshop and session data from Excel (.xlsx) files. Choose Conference -> Import/Export from the WordPress admin and follow instructions.
Update Mode
If Update mode is active (box checked), the workshop will be matched to existing workshops by the Workshop ID field (and language if WPML is active). All fields are overwritten with the data from the import row – even if you only want to update certain fields, make sure you have the correct information for all fields present in the file.
Column Mapping
After uploading an Excel file to import, you can select which columns to use for which data fields. Conference Scheduler will attempt to automatically match columns based on the column title, but you can change the mapping on this screen before the import occurs. It’s best to first export sessions/workshops and use that file as a template so you make sure you get all the necessary columns, but you can use your own. If there are extra columns in your data, choose “Skip column” to prevent importing too excessive or duplicate information, while keeping your Excel file the way you want it.
Column Formats – Workshop Import
Enter the information into the cell as you want it to appear on the website. The Workshop description and Presenter Bio fields support HTML.
- Workshop ID: This field can contain letters and/or numbers, but should be unique to each workshop. This field is not displayed by default, but is required if you want to be able to import updates from Excel or use the WPML translations feature.
- Workshop Description: This field supports HTML. To create a new paragraph, use two line break characters (In Excel type ALT-Enter on Windows, Option-Return on Mac).
- Presenter Bio: This field supports HTML. To create a new paragraph, use two line break characters (In Excel type ALT-Enter on Windows, Option-Return on Mac).
- Participant Limit: If registration is allowed, enter the maximum number of participants allowed. Leave blank to indicate no limit.
- Session: The Session ID or title of the session the workshop is in. The importer first checks for a session with a matching Session ID, if none is found, it searches for a matching title. If a session with this Session ID/title already exists in the system, the workshop will be added to that session and the values of the Start and Length fields will be ignored. If the session title is not found, a new session will be created.
- Start: The start date/time of the session. This can either be an Excel time field, or a string formatted as ‘yyyy-mm-dd hh:mm’.
- Length: Length of the session in minutes. Ignored if the session already exists.
- Themes: Comma separated list of themes to tag the workshop with. If a theme name contains a comma, enclose the name in double quotes (e.g. Theme 1, Theme 2, “Theme, with comma”, Theme 4).
- Keywords: Comma separated list of keywords to tag the workshop with. Commas in keywords are not recommended as they are not well supported by WordPress, but if required can be entered by enclosing the keyword in double quotes.
- Files: Comma separated list of URLs to be attached as to the workshop as Files. Currently only supports items already present in the WordPress Media Gallery.
- Registered Participants: Comma separated list of users who are registered for the workshop. When importing, users must already have an account on your website, and will be matched by email address only.
- Waitlist Participants: Comma separated list of users who are on the waitlist for the workshop. When importing, users must already have an account on your website, and will be matched by email address only.
Column Formats – Session Import
Enter the information into the cell as you want it to appear on the website. The description field supports HTML.
- Session ID: This field can contain letters and/or numbers, but should be unique to each session. This field is not displayed by default, but is required if you want to be able to import updates from Excel.
- Name: The name of the session.
- Parent: The name of the session that this session is a child of.
- Description: This field supports HTML. To create a new paragraph, use two line break characters (In Excel type ALT-Enter on Windows, Option-Return on Mac).
- Start: The start date/time of the session. This can either be an Excel time field, or a string formatted as ‘yyyy-mm-dd hh:mm’.
- Length: Length of the session in minutes.
- Group by Location: Group workshops in this session together by location. Enter “yes”, or 1 to group by location.
- Collapse: Merge together workshops from child sessions and show them as groups, with each group having 1 workshop from each child session. Enter “collapse”, “yes”, or 1 to collapse sub-sessions.
- Hide Time: Hide the session time in the session name on the schedule. Enter “yes”, or 1 to hide the time.
- Hide Title: Hide the session title in the session name on the schedule. Enter “yes”, or 1 to hide the title.
Language Codes
When WPML is enabled on your site, you can import/export workshop data in all languages in one file. Two additional fields are added to the Import/Export template: Language and Source Language.
- Language: The 2 character code for the language of this data (e.g. en for English, fr for French, es for Spanish). Find the codes for your languages by going to WPML -> Languages and clicking the Edit Languages link in the Site Languages section.
- Source Language: The 2 character code for the master language for this workshop.
Import/Export Permission
By default, only Administrators can import or export workshops on a site, however this can be customized using the conf_scheduler_ie_cap filter. This filter must return a WordPress capability to be tested to check if the user should be allowed to import/export. To enable Editors to also import/export, add the following code to your theme’s functions.php file:
add_filter('conf_scheduler_ie_cap', function(){return 'edit_pages';});
Registration
Conference Scheduler Pro allows users with an account on your website to register for workshops. A Register button will be shown for each workshop, and if the user is logged in, they can click it to register. The button will always reflect the current status of the user’s registration. Unlike picks which are stored as a device cookie, logged-in users registration status is stored on the server and will show correctly on any device where the user is logged in.
Waitlists
If enabled in Settings, a waitlist will be maintained for each workshop once it reaches capacity, and the waitlist number will be shown on the register button. If a registered user unregisters for the workshop, the first user on the waitlist will be automatically moved to the registered list.
Disable Registration for Individual Workshops
You can disable registration for individual workshops by checking the “Disable Registration” checkbox in the Workshop Info sidebar of the Edit Workshop screen. Any existing registrations will be saved, but no changes will be allowed and the registration button will not show on the schedule.
Prevent Overlap
If enabled, users will not be allowed to register for workshops that overlap in time with ones that they are already registered for. Users will be allowed to sign up for waitlists on overlapping workshops, but if a space becomes available for them, it will be held for them for a limited time (Hold Duration) during which they can unregister from conflicting workshops and then accept the hold. If they do not accept the hold before the Hold duration passes, they will be unregistered from the workshop and the space will be made to the next person on the waitlist.
You should enable the “Email User on Space Held” notification so that the user gets notified of the hold and can act accordingly.
Hold Duration
The number of hours that a confirmed space will be held for a user when they have a conflict that prevents them from registering for the workshop.
Control Who Can Register
The “Restrict Registration” setting controls which users are allowed to register for workshops. Select which mode you want:
- No restriction – all logged in users can register for workshops.
- Restrict by Role – only users with the specified role(s) can register. Core roles are ‘subscriber’, ‘contributor’, ‘author’, ‘editor’ and ‘administrator’. User roles are assigned in the User section of the WordPress Admin.
- Eventbrite attendees – integrate with Eventbrite to automatically create accounts on your site for everyone who purchases a ticket on Eventbrite for the specified event.
- Restrict by Product (WooCommerce) – only users who have purchase the selected WooCommerce product(s) can register.
Eventbrite Integration
Conference Scheduler Pro con integrate with Eventbrite, allowing you to sell tickets on Eventbrite and then have users come to your site to register for workshops using Conference Scheduler.
To setup the integration, login to your Eventbrite account and go to API Keys under Developer Settings of your account. Click the “Create API Key” button at the top right of the screen. Fill out the simple form that appears with your contact information. For Application Details use:
- Application URL: Use your website address (https://www.mysite.com/ for example)
- OAuth Redirect URL: Leave this field blank
- Application Name: Conference Scheduler
- Description: Something to help you remember what this is for – it can be anything.
Read the terms and conditions and check the checkbox, and then click “Create Key”. You will be taken back to the API Keys listing. Find the Conference Scheduler App you just created and click “Show API key, client secret and tokens”. Find and copy your “Private token”, and paste it into the “Eventbrite API Private Token” field in the Conference -> Settings page on your website admin. Click the Login to Eventbrite button.
Once you are logged into Eventbrite on your Conference -> Settings admin screen, you have to select the Eventbrite Organization and then Event you want to integrate with using the dropdown menus. Once you’ve selected an event, click the “Pull Attendees from Eventbrite” button to complete the integration.
If you want to remove an Eventbrite integration, simply click the “Unlink from MYEVENT” button in the Conference -> Settings screen of your website admin.
WooCommerce Settings
Conference Scheduler registration requires the user to have an account on your website. By default, WooCommerce allows guest checkout (no account), but you can also have it automatically create an account for each customer if you change a couple settings in the WooCommerce -> Settings -> Accounts & Privacy admin page as follows:
- Uncheck “Allow customers to place orders without an account” – requires an account to make a purchase.
- Check “Allow customers to create an account during checkout” – coupled with the above, this automatically creates an account for the customer.
- (optional) Check “When creating an account, automatically generate a username from the customer’s email address” if you want the system to automatically generate a username for the account. This means one less field to fill in on checkout.
- (optional) Check “When creating an account, automatically generate an account password” if you want the system to automatically generate a secure password for the user. This will be automatically emailed to the customer after purchase.
My Schedule
Conference Scheduler Pro provides a shortcode that will display a schedule showing the workshops the user has registered for, along with a button that allows the user to have the schedule sent to their user email address as a “ticket”. To display a users schedule, use:
[conf_scheduler_ticket]
Restricted Content
Each workshop has a separate content field that is displayed in the Ticket Block for users who have registered for that workshop. This can be used to provide special instructions to registered users, such as URLs to the live-stream of the session for virtual conferences.
Google Calendar Integration
Conference Scheduler can integrate with Google Calendar to allow users to simply click a button and have their registered workshops added to their calendar automatically. To enable this feature, you must create a “Client ID” and “Client Secret” with Google. There are several steps, but the process is simple and should only take about 5 minutes. See the captioned screenshots below or follow the text instructions.
Instructions to get your Google Client ID and Client Secret codes:
- Go to the Google Developers Console. You will have to sign in with a Google Account (or create one using your email address).
- Create a new project by clicking the “Create” button in the notice or clicking “Select a project” in the top left corner and then “New Project” in the modal window.
- Give your project a name (your conference title is a good choice) and click “Create”.
- Enable Google Calendar API if it is not already enabled by clicking on the “Enable APIs and services” button.
- Search for “Calendar” on the APIs page.
- Click on “Google Calendar API”, and then click on the “Enable” button.
- Click the “Create Credentials” button in the notice. If it’s not there, you can find it on the the “Credentials” page linked in the left menubar.
- At the first wizard step select “Google Calendar API” from the “Which API are you using?” dropdown, “Web browser (Javascript)” from “Where will you be calling the API from?” dropdown and “User data” from “What data will you be accessing?” option. After that click on the “What credentials do I need?” button.
- A “Set up OAuth consent screen” window may appear. If so, click “Set up consent screen”. Fill out the following fields and click “Save”:
- Application name: Your conference title
- Application logo: Your conference logo
- Authorised domains: The domain of your website (eg. “mycomference.com” for a homepage URL of “https://www.myconference.com/”)
- Application Homepage link: The URL of website (something like “https://www.myconference.com/”.
- Application Privacy Policy link: The URL of the page that has your privacy policy.
- Go back to the initial window with the “Add credentials to your project” Wizard, which should now be on Step 2. Enter the “Name” of your OAuth client ID (“Conference Scheduler” is a good choice) and in the “Authorized Javascript origins” field, enter your website homepage URL (eg. “https://www.myconference.com/”). After that click on “Create OAuth client ID” button (you may have to click the “Refresh” button first.
- At the third step click on “Done” button. After that, click on your newly created OAuth client ID in the credentials list.
- Copy and paste “Client ID” and “Client Secret” into the respective fields on the Conference Scheduler Registration Settings page on your website and click “Save changes” at the bottom of the page.
Now you are all set up. An “Add to Google Calendar” button will appear on the Conference Ticket where ever it is show. When a user clicks it, they will be asked to login to their Google account and give permission for your website to access their calendar. If they agree, then their registered workshops will be added automatically to their calendar.
Note: As of 2019, Google has tightened their OAuth security verification process, and so after completing the above steps and testing the integration with one of your own accounts, you may receive an email asking for further verification (such as a screen recording of how your app works). If you get a request like this, please get in touch and we’ll help you through it. A sample screen recording is available on request.
Email Notifications
Conference Scheduler Pro has a comprehensive email notification system that can be enabled to automatically send emails to users and/or admins when various registration events happen. Each notification can be enabled/disabled independently, and the subject and content of the message can be customized on the Settings page.