Events Wizard
The Events Calendar makes creating events for your WordPress calendar a cinch. But this extension makes it even easier by introducing an efficient step-by-step process for creating new events that we call the Event Wizard.
Requirements
The Events Calendar is required to use this extension. You can also use Event Tickets alongside The Events Calendar if you plan in creating tickets for events.
Installation
- Download the extension ZIP file
- Log into the WordPress dashboard and navigate to Plugins → Add New
- Click the “Upload Plugin” option and choose the extension ZIP file
- Activate the plugin once it has been installed
Usage
Once activated, the Events Wizard will open when you create a new event (Events → Add New).
Events Wizard turns creating new events into a four-step guided process:
- Step 1: Give the event a title.
- Step 2: Select the start and end dates.
- Step 3: Enter a link to a livestream if this is an online event.
- Step 4: Add tickets to the event (Event Tickets required)
That’s it! You will be redirected to the full event editor to add more details if you’d like. Otherwise, go forth and publish the event!
What if you don’t want to use the Events Wizard for an event? Simply click the “Skip” link on the screen to close Events Wizard and continue to the full WordPress editor.
Custom steps
Events Wizard can be customized as well. For example, add more steps with a snippet like this in your theme’s functions.php file.
<?php
add_filter( 'tribe_ext_events_wizard_data', 'custom_last_step' ); function custom_last_step( $steps ) {
$fields = []; $fields[] = [ 'id' => 'my_confirmation_field',
'name' => 'my_confirmation_field',
'type' => 'checkbox',
'label' => __( 'Just confirm what I want' ),
'classes' => 'my-own__css-class',
];
$step = [
'id' => 'my-confirmation-step',
'step_title' => esc_html__( 'Last' ),
'title' => esc_html__( 'I need your confirmation' ),
'description' => esc_html__( 'And here I am explaining why, because I am a description' ),
'fields' => $fields,
'classes' => '',
];
$steps[] = $step;
return $steps;
}
And to intercept the saving to do whatever you want with this information you can do the following:
<?php
add_action( 'tribe_ext_events_wizard_event_add', 'custom_last_step_save' );
function custom_last_step_save( $event_id, $_post ) {
if ( empty( $event_id ) ) {
return;
}
$my_confirmation_value = isset( $_post['my_confirmation_field'] ) ? sanitize_text_field( $_post['my_confirmation_field'] ) : '';
update_post_meta( $event_id, '_my_confirmation', $my_confirmation_value );
}
You can also filter the event creation arguments by hooking into the tribe_ext_events_wizard_event_args
filter. For example, to publish the events directly after the last step instead of saving the event as a draft, you can do the following:
<?php
add_filter( 'tribe_ext_events_wizard_event_args', 'events_wizard_set_new_event_published' );
function events_wizard_set_new_event_published( $args ) {
$args['post_status'] = 'publish';
return $args;
}
The full documentation for this extension is available in the GitHub repository.
Changelog
Version 1.0.1
- January 23, 2023
- Update translation catalog
Version 1.0.0
- May 20, 2020
- Initial release