__( 'Events', 'webcodexworld-events-manager' ),
'singular_name' => __( 'Event', 'webcodexworld-events-manager' ),
'add_new' => __( 'Add Event', 'webcodexworld-events-manager' ),
'add_new_item' => __( 'Add New Event', 'webcodexworld-events-manager' ),
'edit_item' => __( 'Edit Event', 'webcodexworld-events-manager' ),
'new_item' => __( 'New Event', 'webcodexworld-events-manager' ),
'all_items' => __( 'All Events', 'webcodexworld-events-manager' ),
'view_item' => __( 'View Event', 'webcodexworld-events-manager' ),
'search_items' => __( 'Search Event', 'webcodexworld-events-manager' ),
'not_found' => __( 'No event found', 'webcodexworld-events-manager' ),
'not_found_in_trash' => __( 'No event found in trash', 'webcodexworld-events-manager' ),
'menu_name' => __( 'Events Manager', 'webcodexworld-events-manager' ),
'parent_item_colon' => '',
'featured_image' => _x( 'Event Image', 'Context: Label for the featured images for an event', 'webcodexworld-events-manager' ),
'set_featured_image' => _x( 'Set Event Image', 'Context: Text to set the featured image for an event', 'webcodexworld-events-manager' ),
'remove_featured_image' => _x( 'Remove Event Image', 'Context: Text to remove the feature image for an event', 'webcodexworld-events-manager' ),
'use_featured_image' => _x( 'Use as Event Image', 'Context: Text to use an image as the featured image for an event', 'webcodexworld-events-manager' ),
'insert_into_item' => _x( 'Insert into Event', 'Overrides the Insert into post phrase (used when inserting media into a post)', 'webcodexworld-events-manager' ),
'items_list' => __( 'Event list.', 'webcodexworld-events-manager' ),
'item_published' => __( 'Event published.', 'webcodexworld-events-manager' ),
'item_published_privately' => __( 'Event published privately.', 'webcodexworld-events-manager' ),
'item_reverted_to_draft' => __( 'Event reverted to draft.', 'webcodexworld-events-manager' ),
'item_scheduled' => __( 'Event scheduled.', 'webcodexworld-events-manager' ),
'item_updated' => __( 'Event updated.', 'webcodexworld-events-manager' ),
'item_link' => __( 'Event Link', 'webcodexworld-events-manager' ),
'item_link_description' => __( 'A link to a event.', 'webcodexworld-events-manager' ),
);
$ebm_event_args = array(
'labels' => $ebm_event_labels,
'show_in_rest' => (bool) $block_editor_events,
'public' => true,
'publicly_queryable' => true,
'query_var' => true,
'map_meta_cap' => true,
'hierarchical' => false,
'has_archive' => false,
'menu_icon' => 'dashicons-calendar-alt',
'rewrite' => array('slug' => $single_event_url_slug, 'with_front' => false),
'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments', 'revisions'),
);
register_post_type( EM_WCW_EVENT_POST_TYPE, apply_filters( 'em_wcw_event_post_type_args', $ebm_event_args ) );
/* Register `Venue` Post Type */
$ebm_venue_labels = array(
'name' => __( 'Venues', 'webcodexworld-events-manager' ),
'singular_name' => __( 'Venue', 'webcodexworld-events-manager' ),
'add_new' => __( 'Add Venue', 'webcodexworld-events-manager' ),
'add_new_item' => __( 'Add New Venue', 'webcodexworld-events-manager' ),
'edit_item' => __( 'Edit Venue', 'webcodexworld-events-manager' ),
'new_item' => __( 'New Venue', 'webcodexworld-events-manager' ),
'all_items' => __( 'All Venues', 'webcodexworld-events-manager' ),
'view_item' => __( 'View Venue', 'webcodexworld-events-manager' ),
'search_items' => __( 'Search Venue', 'webcodexworld-events-manager' ),
'not_found' => __( 'No venue found', 'webcodexworld-events-manager' ),
'not_found_in_trash' => __( 'No venue found in trash', 'webcodexworld-events-manager' ),
'menu_name' => __( 'Venues', 'webcodexworld-events-manager' ),
'featured_image' => _x( 'Venue Image', 'Context: Label for the featured images for an venue', 'webcodexworld-events-manager' ),
'set_featured_image' => _x( 'Set Venue Image', 'Context: Text to set the featured image for an venue', 'webcodexworld-events-manager' ),
'remove_featured_image' => _x( 'Remove Venue Image', 'Context: Text to remove the feature image for an venue', 'webcodexworld-events-manager' ),
'use_featured_image' => _x( 'Use as Venue Image', 'Context: Text to use an image as the featured image for an venue', 'webcodexworld-events-manager' ),
'insert_into_item' => _x( 'Insert into Venue', 'Overrides the Insert into post phrase (used when inserting media into a post)', 'webcodexworld-events-manager' ),
'items_list' => __( 'Venue list.', 'webcodexworld-events-manager' ),
'item_published' => __( 'Venue published.', 'webcodexworld-events-manager' ),
'item_published_privately' => __( 'Venue published privately.', 'webcodexworld-events-manager' ),
'item_reverted_to_draft' => __( 'Venue reverted to draft.', 'webcodexworld-events-manager' ),
'item_scheduled' => __( 'Venue scheduled.', 'webcodexworld-events-manager' ),
'item_updated' => __( 'Venue updated.', 'webcodexworld-events-manager' ),
'item_link' => __( 'Venue Link', 'webcodexworld-events-manager' ),
'item_link_description' => __( 'A link to a venue.', 'webcodexworld-events-manager' ),
);
$ebm_venue_args = array(
'labels' => $ebm_venue_labels,
'show_in_rest' => (bool) $block_editor_venues,
'public' => false,
'show_ui' => true,
'publicly_queryable' => false,
'query_var' => false,
'hierarchical' => false,
'rewrite' => false,
'show_in_menu' => 'edit.php?post_type=' . EM_WCW_EVENT_POST_TYPE,
'menu_icon' => 'dashicons-location',
'supports' => array( 'title', 'thumbnail', 'author' ),
);
register_post_type( EM_WCW_VENUE_POST_TYPE, apply_filters( 'em_wcw_venue_post_type_args', $ebm_venue_args ) );
/* Register `Organizer` Post Type */
$ebm_organizer_labels = array(
'name' => __( 'Organizers', 'webcodexworld-events-manager' ),
'singular_name' => __( 'Organizer', 'webcodexworld-events-manager' ),
'add_new' => __( 'Add Organizer', 'webcodexworld-events-manager' ),
'add_new_item' => __( 'Add New Organizer', 'webcodexworld-events-manager' ),
'edit_item' => __( 'Edit Organizer', 'webcodexworld-events-manager' ),
'new_item' => __( 'New Organizer', 'webcodexworld-events-manager' ),
'all_items' => __( 'All Organizers', 'webcodexworld-events-manager' ),
'view_item' => __( 'View Organizer', 'webcodexworld-events-manager' ),
'search_items' => __( 'Search Organizer', 'webcodexworld-events-manager' ),
'not_found' => __( 'No organizer found', 'webcodexworld-events-manager' ),
'not_found_in_trash' => __( 'No organizer found in trash', 'webcodexworld-events-manager' ),
'menu_name' => __( 'Organizers', 'webcodexworld-events-manager' ),
'featured_image' => _x( 'Organizer Image', 'Context: Label for the featured images for an organizer', 'webcodexworld-events-manager' ),
'set_featured_image' => _x( 'Set Organizer Image', 'Context: Text to set the featured image for an organizer', 'webcodexworld-events-manager' ),
'remove_featured_image' => _x( 'Remove Organizer Image', 'Context: Text to remove the feature image for an organizer', 'webcodexworld-events-manager' ),
'use_featured_image' => _x( 'Use as Organizer Image', 'Context: Text to use an image as the featured image for an organizer', 'webcodexworld-events-manager' ),
'insert_into_item' => _x( 'Insert into Organizer', 'Overrides the Insert into post phrase (used when inserting media into a post)', 'webcodexworld-events-manager' ),
'items_list' => __( 'Organizer list.', 'webcodexworld-events-manager' ),
'item_published' => __( 'Organizer published.', 'webcodexworld-events-manager' ),
'item_published_privately' => __( 'Organizer published privately.', 'webcodexworld-events-manager' ),
'item_reverted_to_draft' => __( 'Organizer reverted to draft.', 'webcodexworld-events-manager' ),
'item_scheduled' => __( 'Organizer scheduled.', 'webcodexworld-events-manager' ),
'item_updated' => __( 'Organizer updated.', 'webcodexworld-events-manager' ),
'item_link' => __( 'Organizer Link', 'webcodexworld-events-manager' ),
'item_link_description' => __( 'A link to a organizer.', 'webcodexworld-events-manager' ),
);
$ebm_organizer_args = array(
'labels' => $ebm_organizer_labels,
'show_in_rest' => (bool) $block_editor_organizers,
'public' => false,
'show_ui' => true,
'publicly_queryable' => false,
'query_var' => false,
'hierarchical' => false,
'rewrite' => false,
'show_in_menu' => 'edit.php?post_type=' . EM_WCW_EVENT_POST_TYPE,
'menu_icon' => 'dashicons-groups',
'supports' => array( 'title', 'thumbnail', 'author' ),
);
register_post_type( EM_WCW_ORGANIZER_POST_TYPE, apply_filters( 'em_wcw_organizer_post_type_args', $ebm_organizer_args ) );
/* Register `Layout` Post Type */
$em_wcw_layout_labels = array(
'name' => __( 'Layouts', 'webcodexworld-events-manager' ),
'singular_name' => __( 'Layout', 'webcodexworld-events-manager' ),
'add_new' => __( 'Add Layout', 'webcodexworld-events-manager' ),
'add_new_item' => __( 'Add New Layout', 'webcodexworld-events-manager' ),
'edit_item' => __( 'Edit Layout', 'webcodexworld-events-manager' ),
'new_item' => __( 'New Layout', 'webcodexworld-events-manager' ),
'all_items' => __( 'All Layout', 'webcodexworld-events-manager' ),
'view_item' => __( 'View Layout', 'webcodexworld-events-manager' ),
'search_items' => __( 'Search Layout', 'webcodexworld-events-manager' ),
'not_found' => __( 'No layout found', 'webcodexworld-events-manager' ),
'not_found_in_trash' => __( 'No layout found in trash', 'webcodexworld-events-manager' ),
'menu_name' => __( 'All Layout', 'webcodexworld-events-manager' ),
'parent_item_colon' => '',
);
$em_wcw_layout_args = array(
'labels' => $em_wcw_layout_labels,
'show_in_rest' => false,
'public' => false,
'exclude_from_search' => true,
'show_ui' => false,
'rewrite' => false,
'supports' => array('title', 'editor', 'author')
);
register_post_type( EM_WCW_LAYOUT_POST_TYPE, apply_filters( 'em_wcw_layout_post_type_args', $em_wcw_layout_args ) );
}
add_action( 'init', 'em_wcw_register_post_types', 5 );
/**
* Function to register taxonomies
*
* @since 1.0.0
*/
function em_wcw_register_taxonomies() {
/* Event Category */
$event_cat_url_slug = em_wcw_get_setting( 'event_cat_url_slug' );
$event_cat_arch = em_wcw_get_setting( 'event_cat_arch' );
$ebm_event_cat_args = array(
'hierarchical' => true,
'label' => __( 'Categories', 'webcodexworld-events-manager' ),
'labels' => array(
'name' => __( 'Event Categories', 'webcodexworld-events-manager' ),
'singular_name' => __( 'Event Category', 'webcodexworld-events-manager' ),
'menu_name' => _x( 'Event Categories', 'Admin menu name', 'webcodexworld-events-manager' ),
'search_items' => __( 'Search Categories', 'webcodexworld-events-manager' ),
'all_items' => __( 'All categories', 'webcodexworld-events-manager' ),
'parent_item' => __( 'Parent Category', 'webcodexworld-events-manager' ),
'parent_item_colon' => __( 'Parent Category:', 'webcodexworld-events-manager' ),
'edit_item' => __( 'Edit Event Category', 'webcodexworld-events-manager' ),
'update_item' => __( 'Update Category', 'webcodexworld-events-manager' ),
'add_new_item' => __( 'Add Category', 'webcodexworld-events-manager' ),
'new_item_name' => __( 'New Category Name', 'webcodexworld-events-manager' ),
'not_found' => __( 'No event categories found', 'webcodexworld-events-manager' ),
'back_to_items' => __( '← Go to Event Categories', 'webcodexworld-events-manager' ),
),
'show_in_rest' => true,
'show_ui' => true,
'query_var' => true,
'public' => ! empty( $event_cat_arch ) ? true : false,
'rewrite' => array(
'slug' => $event_cat_url_slug,
'with_front' => false,
'hierarchical' => true,
)
);
// Register `Event` Category
register_taxonomy( EM_WCW_EVENT_CAT, apply_filters( 'em_wcw_taxonomy_objects_events_cat', array( EM_WCW_EVENT_POST_TYPE ) ), apply_filters( 'em_wcw_taxonomy_args_events_cat', $ebm_event_cat_args ) );
/* Event Tag */
$event_tag_url_slug = em_wcw_get_setting( 'event_tag_url_slug' );
$event_tag_arch = em_wcw_get_setting( 'event_tag_arch' );
$ebm_event_tag_args = array(
'hierarchical' => false,
'label' => __( 'Tags', 'webcodexworld-events-manager' ),
'labels' => array(
'name' => __( 'Event Tags', 'webcodexworld-events-manager' ),
'singular_name' => __( 'Event Tag', 'webcodexworld-events-manager' ),
'menu_name' => _x( 'Event Tags', 'Admin menu name', 'webcodexworld-events-manager' ),
'search_items' => __( 'Search Tags', 'webcodexworld-events-manager' ),
'all_items' => __( 'All Tags', 'webcodexworld-events-manager' ),
'edit_item' => __( 'Edit Tag', 'webcodexworld-events-manager' ),
'update_item' => __( 'Update Tag', 'webcodexworld-events-manager' ),
'add_new_item' => __( 'Add Tag', 'webcodexworld-events-manager' ),
'new_item_name' => __( 'New Tag Name', 'webcodexworld-events-manager' ),
'not_found' => __( 'No event tags found', 'webcodexworld-events-manager' ),
'popular_items' => __( 'Popular Event Tags', 'webcodexworld-events-manager' ),
'back_to_items' => __( '← Go to Event Tags', 'webcodexworld-events-manager' ),
'add_or_remove_items' => __( 'Add or remove event tags', 'webcodexworld-events-manager' ),
'choose_from_most_used' => __( 'Choose from the most used event tags', 'webcodexworld-events-manager' ),
),
'show_in_rest' => true,
'show_ui' => true,
'query_var' => true,
'public' => ! empty( $event_tag_arch ) ? true : false,
'rewrite' => array(
'slug' => $event_tag_url_slug,
'with_front' => false,
)
);
// Register `Event` Tag
register_taxonomy( EM_WCW_EVENT_TAG, apply_filters( 'em_wcw_taxonomy_objects_events_tag', array( EM_WCW_EVENT_POST_TYPE ) ), apply_filters( 'em_wcw_taxonomy_args_events_tag', $ebm_event_tag_args ) );
}
add_action( 'init', 'em_wcw_register_taxonomies', 5 );
/**
* Function to update post messages
*
* @since 1.0.0
*/
function em_wcw_post_updated_messages( $messages ) {
global $post;
$permalink = get_permalink( $post->ID );
/* Event Post Type Message */
$messages[EM_WCW_EVENT_POST_TYPE] = array(
0 => '', // Unused. Messages start at index 1.
/* translators: 1: Opening link tag to the single event, 2: Closing link tag. */
1 => sprintf( __( 'Event updated. %1$sView Event%2$s', 'webcodexworld-events-manager' ), '', '' ),
2 => __( 'Custom field updated.', 'webcodexworld-events-manager' ),
3 => __( 'Custom field deleted.', 'webcodexworld-events-manager' ),
4 => __( 'Event updated.', 'webcodexworld-events-manager' ),
5 => __( 'Revision restored.', 'webcodexworld-events-manager' ),
/* translators: 1: Opening link tag to the single event, 2: Closing link tag. */
6 => sprintf( __( 'Event published. %1$sView Event%2$s', 'webcodexworld-events-manager' ), '', '' ),
7 => __( 'Event saved.', 'webcodexworld-events-manager' ),
/* translators: %s: Preview event url */
8 => sprintf( __( 'Event submitted. Preview event', 'webcodexworld-events-manager' ), esc_url( add_query_arg( 'preview', 'true', $permalink ) ) ),
9 => sprintf(
/* translators: 1: date 2: event url */
__( 'Event scheduled for: %1$s. Preview event', 'webcodexworld-events-manager' ),
'' . date_i18n( __( 'M j, Y @ G:i', 'webcodexworld-events-manager' ), strtotime( $post->post_date ) ) . '',
esc_url( $permalink )
),
/* translators: %s: event url */
10 => sprintf( __( 'Event draft updated. Preview event', 'webcodexworld-events-manager' ), esc_url( add_query_arg( 'preview', 'true', $permalink ) ) ),
);
/* Venue Post Type Message */
$messages[EM_WCW_VENUE_POST_TYPE] = array(
0 => '', // Unused. Messages start at index 1.
1 => __( 'Venue updated.', 'webcodexworld-events-manager' ),
2 => __( 'Custom field updated.', 'webcodexworld-events-manager' ),
3 => __( 'Custom field deleted.', 'webcodexworld-events-manager' ),
4 => __( 'Venue updated.', 'webcodexworld-events-manager' ),
5 => __( 'Revision restored.', 'webcodexworld-events-manager' ),
6 => __( 'Venue updated.', 'webcodexworld-events-manager' ),
7 => __( 'Venue saved.', 'webcodexworld-events-manager' ),
8 => __( 'Venue submitted.', 'webcodexworld-events-manager' ),
9 => sprintf(
/* translators: %s: date */
__( 'Venue scheduled for: %s.', 'webcodexworld-events-manager' ),
'' . date_i18n( __( 'M j, Y @ G:i', 'webcodexworld-events-manager' ), strtotime( $post->post_date ) ) . ''
),
10 => __( 'Venue draft updated.', 'webcodexworld-events-manager' ),
);
/* Organizer Post Type Message */
$messages[EM_WCW_ORGANIZER_POST_TYPE] = array(
0 => '', // Unused. Messages start at index 1.
1 => __( 'Organizer updated.', 'webcodexworld-events-manager' ),
2 => __( 'Custom field updated.', 'webcodexworld-events-manager' ),
3 => __( 'Custom field deleted.', 'webcodexworld-events-manager' ),
4 => __( 'Organizer updated.', 'webcodexworld-events-manager' ),
5 => __( 'Revision restored.', 'webcodexworld-events-manager' ),
6 => __( 'Organizer updated.', 'webcodexworld-events-manager' ),
7 => __( 'Organizer saved.', 'webcodexworld-events-manager' ),
8 => __( 'Organizer submitted.', 'webcodexworld-events-manager' ),
9 => sprintf(
/* translators: %s: date */
__( 'Organizer scheduled for: %s.', 'webcodexworld-events-manager' ),
'' . date_i18n( __( 'M j, Y @ G:i', 'webcodexworld-events-manager' ), strtotime( $post->post_date ) ) . ''
),
10 => __( 'Organizer draft updated.', 'webcodexworld-events-manager' ),
);
return $messages;
}
add_filter( 'post_updated_messages', 'em_wcw_post_updated_messages' );
/**
* Function to update post messages
*
* @since 1.0.0
*/
function em_wcw_bulk_post_updated_messages( $bulk_messages, $bulk_counts ) {
/* Event Post Type Message */
$bulk_messages[EM_WCW_EVENT_POST_TYPE] = array(
/* translators: %s: event count */
'updated' => _n( '%s event updated.', '%s events updated.', $bulk_counts['updated'], 'webcodexworld-events-manager' ),
/* translators: %s: event count */
'locked' => _n( '%s event not updated, somebody is editing it.', '%s events not updated, somebody is editing them.', $bulk_counts['locked'], 'webcodexworld-events-manager' ),
/* translators: %s: event count */
'deleted' => _n( '%s event permanently deleted.', '%s events permanently deleted.', $bulk_counts['deleted'], 'webcodexworld-events-manager' ),
/* translators: %s: event count */
'trashed' => _n( '%s event moved to the Trash.', '%s events moved to the Trash.', $bulk_counts['trashed'], 'webcodexworld-events-manager' ),
/* translators: %s: event count */
'untrashed' => _n( '%s event restored from the Trash.', '%s events restored from the Trash.', $bulk_counts['untrashed'], 'webcodexworld-events-manager' ),
);
/* Venue Post Type Message */
$bulk_messages[EM_WCW_VENUE_POST_TYPE] = array(
/* translators: %s: venue count */
'updated' => _n( '%s venue updated.', '%s venues updated.', $bulk_counts['updated'], 'webcodexworld-events-manager' ),
/* translators: %s: venue count */
'locked' => _n( '%s venue not updated, somebody is editing it.', '%s venues not updated, somebody is editing them.', $bulk_counts['locked'], 'webcodexworld-events-manager' ),
/* translators: %s: venue count */
'deleted' => _n( '%s venue permanently deleted.', '%s venues permanently deleted.', $bulk_counts['deleted'], 'webcodexworld-events-manager' ),
/* translators: %s: venue count */
'trashed' => _n( '%s venue moved to the Trash.', '%s venues moved to the Trash.', $bulk_counts['trashed'], 'webcodexworld-events-manager' ),
/* translators: %s: venue count */
'untrashed' => _n( '%s venue restored from the Trash.', '%s venues restored from the Trash.', $bulk_counts['untrashed'], 'webcodexworld-events-manager' ),
);
/* Organizer Post Type Message */
$bulk_messages[EM_WCW_ORGANIZER_POST_TYPE] = array(
/* translators: %s: organizer count */
'updated' => _n( '%s organizer updated.', '%s organizers updated.', $bulk_counts['updated'], 'webcodexworld-events-manager' ),
/* translators: %s: organizer count */
'locked' => _n( '%s organizer not updated, somebody is editing it.', '%s organizers not updated, somebody is editing them.', $bulk_counts['locked'], 'webcodexworld-events-manager' ),
/* translators: %s: organizer count */
'deleted' => _n( '%s organizer permanently deleted.', '%s organizers permanently deleted.', $bulk_counts['deleted'], 'webcodexworld-events-manager' ),
/* translators: %s: organizer count */
'trashed' => _n( '%s organizer moved to the Trash.', '%s organizers moved to the Trash.', $bulk_counts['trashed'], 'webcodexworld-events-manager' ),
/* translators: %s: organizer count */
'untrashed' => _n( '%s organizer restored from the Trash.', '%s organizers restored from the Trash.', $bulk_counts['untrashed'], 'webcodexworld-events-manager' ),
);
return $bulk_messages;
}
add_filter( 'bulk_post_updated_messages', 'em_wcw_bulk_post_updated_messages', 10, 2 );