__( 'Note: Configure the general settings for this Event here. If you do not want to use any specific feature, you can enable or disable it from Main Configuration → On/Off Sections. Disabling a feature will remove it from the entire site.', 'abp-event-ticket' ),
'sale_continue' => __( 'Note: This switch indicate Event Ticket sale close/continue . You can sale close/continue by this switch. By default sale will be continue', 'abp-event-ticket' ),
'abpet_template' => __( 'Note: Here You can change your details page template.', 'abp-event-ticket' ),
'post_sku' => __( 'Note: Here you can add an SKU for this post. You can also show or hide it on the frontend by turning the switch On or Off.', 'abp-event-ticket' ),
'post_icon' => __( 'Note: Set a custom icon or emoji for this post. The selected icon/emoji will be displayed alongside the post title wherever the title appears across the website, helping it stand out and improve visual recognition.', 'abp-event-ticket' ),
'sub_title' => __( 'Note: Add a Sub-title to enable the Post sub-tile. Leave this blank if you dont want to show any Sub-title information for this Post.', 'abp-event-ticket' ),
'post_description' => __( 'Note: Add short description about this Event . Leave this blank if you dont want to show any description for this Event.', 'abp-event-ticket' ),
'display_capacity' => __( 'Note : Enable this option to display the capacity for this Event on the frontend. This setting only works when the global Event Capacity Display option is enabled.', 'abp-event-ticket' ),
'display_organizer' => __( 'Note : This switch indicate Event Organizer . You can also show or hide it on the frontend by turning the switch On or Off.', 'abp-event-ticket' ),
'display_brand' => __( 'Note : This switch indicate Event Brand name . You can also show or hide it on the frontend by turning the switch On or Off.', 'abp-event-ticket' ),
'display_category' => __( 'Note : This switch indicate Event Category . You can also show or hide it on the frontend by turning the switch On or Off.', 'abp-event-ticket' ),
'related_item' => __( 'Note: Select related items to display on the details page. Leave this option empty or disabled if you do not want to show related items.', 'abp-event-ticket' ),
'post_feature' => __( 'Note: If you want to add feature for this Event, you can add Here. These feature will be show with this Event . You may leave this section empty if you do not want to show frontend. ', 'abp-event-ticket' ),
'display_slider' => __( 'Note: If you want to add an image gallery for this Event, you can upload images below. You may leave this section empty if you do not want to show images. ', 'abp-event-ticket' ),
//=============================//
'seat_type' => __( 'Note: Please select your Event seat type . Default is Ticket', 'abp-event-ticket' ),
'ticket_type' => __( 'Note: You have disabled the Seat Plan System from the Global On/Off Settings, so your ticket types will function as regular tickets only.If you want to use a seat plan, enable Seat Plan System from the Global On/Off Settings. Once enabled, you can turn the Seat Plan feature on or off for each Event individually, allowing you to use either a seat plan or regular tickets as needed.', 'abp-event-ticket' ),
'single_ticket_type' => __( 'Note: If the Global Multiple Ticket System is disabled, you cannot use multiple ticket types for any Event.To enable this feature, turn on Multiple Ticket System from the Global On/Off Settings. Once enabled, you can configure multiple ticket types and prices for each Event. You can also choose to use a single ticket for specific Events whenever needed.', 'abp-event-ticket' ),
'display_ticket_type' => __( 'Note : This switch indicate Event ticket type. if your all ticket/seat same type then switch will be off. if you want to multiple type please switch on', 'abp-event-ticket' ),
'min_qty' => __( 'Note : Set the minimum quantity customers must select per order. This global setting applies across the entire booking system.', 'abp-event-ticket' ),
'max_qty' => __( 'Note : Set the maximum quantity a customer can select per order. This global setting helps control the maximum number of tickets or seats a customer can book in a single order.', 'abp-event-ticket' ),
//=============================//
//=============================//
'no_category' => __( 'No Category Found !', 'abp-event-ticket' ),
'cat_name' => __( 'Note: Please enter a category name — the field cannot be empty. ', 'abp-event-ticket' ),
'cat_slug' => __( 'Note: Category slug is optional — leave it blank to auto-generate from the name. ', 'abp-event-ticket' ),
'cat_des' => __( 'Note: Category description is optional — you can add details to better explain this category. ', 'abp-event-ticket' ),
//=============================//
'no_organizer' => __( 'No Organizer Found !', 'abp-event-ticket' ),
'org_name' => __( 'Note: Please enter a Organizer name — the field cannot be empty. ', 'abp-event-ticket' ),
'org_slug' => __( 'Note: Organizer slug is optional — leave it blank to auto-generate from the name. ', 'abp-event-ticket' ),
'org_des' => __( 'Note: Organizer description is optional — you can add details to better explain this Organizer. ', 'abp-event-ticket' ),
//=============================//
'no_location' => __( 'No Location Found ! ', 'abp-event-ticket' ),
'loc_name' => __( 'Note: Please enter a Location name — the field cannot be empty. ', 'abp-event-ticket' ),
'loc_slug' => __( 'Note: Location slug is optional — leave it blank to auto-generate from the name. ', 'abp-event-ticket' ),
'loc_des' => __( 'Note: Location Address is optional — you can add details to better explain this Location Full Address. ', 'abp-event-ticket' ),
//=============================//
'no_brand' => __( 'No Brand Found ! ', 'abp-event-ticket' ),
'brand_name' => __( 'Note: Please enter a Brand name — the field cannot be empty. ', 'abp-event-ticket' ),
'brand_slug' => __( 'Note: Brand slug is optional — leave it blank to auto-generate from the name. ', 'abp-event-ticket' ),
'brand_des' => __( 'Note: Brand description is optional — you can add details to better explain this Brand. ', 'abp-event-ticket' ),
//=============================//
'no_feature' => __( 'No Feature Found ! ', 'abp-event-ticket' ),
'feature_value' => __( 'Note: Please enter a Feature Value — the field optional ', 'abp-event-ticket' ),
'feature_icon' => __( 'Note: You can add an icon, or emoji for this Feature(optional).', 'abp-event-ticket' ),
'feature_name' => __( 'Note: Please enter a Feature Name — the field cannot be empty.', 'abp-event-ticket' ),
//=============================//
'date_format' => __( 'Note: If you want to change the Date Format, simply choose a different format. The default date is: ', 'abp-event-ticket' ) . ' ' . date_i18n( 'D j M , Y', strtotime( $current_date ) ),
'time_format' => __( 'Note : If you want to change the Time Format, simply choose a different format. The default Time Format is: ', 'abp-event-ticket' ) . ' ' . date_i18n( get_option( 'time_format' ), strtotime( $current_date ) ),
'sale_close_before' => __( 'Note: Enter the time in minutes to close ticket sales before the Event starts. If not specified, it will default to 0 (e.g. 1 hour equals 60 minutes). ', 'abp-event-ticket' ),
'advance_date_number' => __( 'Note: Kindly provide the number of days in advance for booking. By default, the advance booking period is set to 28 days.(optional) ', 'abp-event-ticket' ),
'date_type' => __( 'Note: Please Select your Event operational date type. Default operational date will be Periodic', 'abp-event-ticket' ),
'event_type' => __( 'Note: Please Select your Event type. Default Type Offline/Phisical', 'abp-event-ticket' ),
'specific_dates' => __( 'Note: Please add your Event operational Specific Date lists .', 'abp-event-ticket' ),
'operation_time' => __( 'Note: Configure the time schedule for this event. You can add multiple times and set different times for each event date. This is useful when the event has multiple sessions or different schedules on different dates.', 'abp-event-ticket' ),
'periodic_start_date' => __( 'Note: Please add your Event Launching Date otherwise it will be start today ', 'abp-event-ticket' ),
'periodic_end_date' => __( 'Note: Please add your Event Terminate Date otherwise it will be Continuously running periodically', 'abp-event-ticket' ),
'periodic_after' => __( 'Note: Please add your periodically after days. if your Event operation day everyday this will be one(1).(optional)', 'abp-event-ticket' ),
'date_rule' => __( 'Note: Enable this checkbox to configure special on/off date settings. This option is optional. If you set a date/time in the special “On” date, that date will remain active even if it falls within an “Off” date range or on weekends.', 'abp-event-ticket' ),
'special_on_dates' => __( 'Note: If you add any date in Special On Dates, it will always remain active—even if that date falls within an off date range or on weekends.', 'abp-event-ticket' ),
'weekend' => __( 'Note: Please select your weekend.Default all days open(optional)', 'abp-event-ticket' ),
'day_wise_time' => __( 'Note:Add Day-wise Time if your Event operates on different schedules throughout the week. You can assign multiple departure times for each day, and only the configured times for the selected day will be available to attendees. ', 'abp-event-ticket' ),
'specific_off_dates' => __( 'Note: please add your specific Operation off dates.(optional)', 'abp-event-ticket' ),
'date_wise_time' => __( 'Note: Set the Event time for specific dates. A date will only be saved if it has at least one operation time. If a date is not saved, the regular day-wise schedule or the default operation time will be applied. You can add multiple operation times for the same date.(optional)', 'abp-event-ticket' ),
'off_date_range' => __( 'Note: If you have off days between two dates which can add here.(optional)', 'abp-event-ticket' ),
//=============================//
'_tax_class' => __( 'Note: If you want to add any new tax class , Please go to WooCommerce ->configuration->Tax Area', 'abp-event-ticket' ),
'enable_tax_msg' => __( 'Note: Your Woo-commerce Tax setting already disable. If you want to enable tax please enable woo-commerce tax.', 'abp-event-ticket' ),
//=============================//
'display_additional_services' => __( 'Note: If you want sale additional product/equipment with this Event then active this button and add additional service. Additional item not depends on operation time.', 'abp-event-ticket' ),
'active_global_additional' => __( 'Note: Keep this switch ON to apply the global additional settings.Switch it OFF if you want to set special additional rules for this Event.additional configuration options will open when turned OFF. ', 'abp-event-ticket' ),
//=============================//
'attendee_off' => __( 'Note: Globally, the Attendee Form feature is currently disabled. To add an attendee form for this Event, please enable the feature from the Global Settings, then reload this page.', 'abp-event-ticket' ),
'client_form_option' => __( 'Use comma( , ) to separate option.', 'abp-event-ticket' ),
'display_client_form' => __( 'Note: If you want to get Client information then active this button and add form/import global form or use global form as a client form', 'abp-event-ticket' ),
'active_global_form' => __( 'Note: Keep this switch ON to apply the global Client Form settings.Switch it OFF if you want to set special Client Form rules for this Event. Client Form configuration options will open when turned OFF. ', 'abp-event-ticket' ),
'display_single_form' => __( 'If you want to get single traveller/attendee info for multiple ticket then active this button .Default is on', 'abp-event-ticket' ),
//=============================//
'display_tc' => __( 'Use this switch to control whether the Term & Condition is displayed on the frontend. Turn the switch ON to show the Term & Condition, and OFF to hide it. By default, this option is set to ON.', 'abp-event-ticket' ),
'active_global_tc' => __( 'Enable this switch to apply the global Term & Condition to this post. If you want to add custom Term & Condition specifically for this post, turn the switch OFF and add your custom Term & Condition below.You can also use the Import button to bring in global Term & Condition, which you can then edit or delete based on your needs.', 'abp-event-ticket' ),
//=============================//
'faq_item' => __( 'Both the Title and Description fields are required. If either field is left empty, this FAQ item will not be displayed on the frontend.', 'abp-event-ticket' ),
'display_faq' => __( 'Use this switch to control whether the FAQ is displayed on the frontend. Turn the switch ON to show the FAQ, and OFF to hide it. By default, this option is set to ON.', 'abp-event-ticket' ),
'active_global_faq' => __( 'Enable this switch to apply the global FAQ to this post. If you want to add custom FAQs specifically for this post, turn the switch OFF and add your custom FAQs below.You can also use the Import button to bring in global FAQs, which you can then edit or delete based on your needs.', 'abp-event-ticket' ),
//=============================//
'search_get_wrong_data_info' => __( 'Somethings went Wrong ! Please Try again', 'abp-event-ticket' ),
'sale_close_msg' => __( 'This Event sale close shortly. please try another Event.', 'abp-event-ticket' ),
'not_date' => __( 'No Dates Found !', 'abp-event-ticket' ),
'not_match' => __( 'No Results Found !', 'abp-event-ticket' ),
'not_found' => __( 'Nothing Found !', 'abp-event-ticket' ),
'no_sp' => __( 'No Seat Plan Found. Click Add New to create one.', 'abp-event-ticket' ),
//=============================//
'no_ticket_type' => __( 'No Ticket Type Found ! Please add Ticket Type to use Multiple Ticket Type', 'abp-event-ticket' ),
'no_ticket_config' => __( 'No ticket configuration is available for this Event. Please contact the administrator.', 'abp-event-ticket' ),
'no_sp_config' => __( 'No Seat Plan configuration is available for this Event. Please contact the administrator.', 'abp-event-ticket' ),
'ticket_settings' => __( 'Configure the ticket or seat type with a name, color, prefix, and optional image, icon, or emoji. These settings will be applied automatically to all assigned seats in the Seat Plan and used throughout the booking process for consistent identification.', 'abp-event-ticket' ), //=============================//
'no_decor_item' => __( 'No Decor Item Found ! Please add Decor item to use Multiple Decor item', 'abp-event-ticket' ),
'decor_setting' => __( 'Note: Choose an image, icon, or emoji to represent this decoration item within the Seat Plan layout. Enter a name to identify the item while designing the layout. Decoration items are used only for creating and organizing the Seat Plan and are not considered bookable seats, so they do not affect pricing, availability, or the booking process. The item name will not be displayed to customers, but you can add custom text, change the font size, or modify individual items directly from the Seat Plan editor by double-clicking on them. You can also choose a background color to make different layout elements easier to identify while designing the seat arrangement. Once configured, the selected settings will automatically be applied wherever this decoration item is used.', 'abp-event-ticket' ),
//=============================//
'must_wc' => __( 'Event Ticket Plugin is entirely dependent on the WooCommerce plugin. Please install and activate the WooCommerce plugin otherwise the plugin will not work. Installing this tool may take some time', 'abp-event-ticket' ),
//=============================//
'abpet_ticket' => __( 'Here you can create and manage dynamic ticket types that can be used across all Events. Examples include Economy, Business Class, VIP, Sleeper, Cabin, and more. Each ticket type can have its own price, capacity, color, icon, image, and other configurations. If a seat plan is enabled, you can create seats based on the selected ticket type, and every seat will automatically inherit the corresponding ticket settings. Every ticket type also has a unique ID . You can edit or delete ticket types at any time, but removing a ticket type that is already assigned to a Event may affect the existing configuration.', 'abp-event-ticket' ),
'abpet_decor' => __( 'Note : Here you can create and manage decorative items for the seat plan layout. These items are used only for designing and organizing the seating arrangement and are not considered actual seats. Therefore, they cannot be booked, reserved, or sold. Examples include doors, exits, driver areas, engines, restrooms, food storage, baggage storage, waiting areas, lobbies, walkways, stairs, tables, partitions, and other decorative elements. If needed, you can also add custom text, icons, images, or emojis to create a more realistic seat layout. Every decoration item has its own unique ID and can be reused across multiple seat plans.', 'abp-event-ticket' ),
'abpet_sp' => __( 'Note : Here you can create and manage reusable seat plans that can be assigned to any Event multiple times. Instead of designing the same layout repeatedly, you can create a seat plan once and reuse it whenever needed. The system will automatically calculate the total number of available seats and detect all assigned ticket types from the selected seat plan. If the Event is configured to use a single ticket type, all seats in the selected seat plan will automatically be converted into that ticket type, even if the original layout contains multiple ticket types. You can also use decoration items such as doors, walkways, engines, exits, luggage storage areas, tables, and other custom elements to create a more realistic layout. Every seat plan has a unique ID', 'abp-event-ticket' ),
'abpet_sp_design' => __( 'Note : Here you can design and customize the entire seat layout according to your requirements. You can define the overall layout structure by setting the number of rows and columns, adjusting the background image or background color, and configuring the width, height, and spacing of individual cells. Each cell can occupy one or multiple positions, allowing you to create more complex layouts such as walkways, cabins, tables, lounges, storage areas, and other custom sections.You can select a ticket type and simply click on any cell to automatically assign the selected ticket type along with the corresponding seat number. Likewise, you can select a decoration item and place it anywhere in the layout. Both seat items and decoration items support drag-and-drop functionality, allowing you to move, duplicate, or clone them easily.Every cell can have its own custom text, icon, image, emoji, color, and font size. Double-clicking on a cell allows you to modify its content and appearance individually. You can also resize cells by defining custom width and height values.Advanced selection tools are also available to speed up the design process. Use Ctrl + Click to select individual items and Shift + Click to select multiple cells within a range. Once selected, you can apply changes to all selected items simultaneously.This powerful visual editor makes it easy to create simple or highly detailed layouts for buses, trains, ferries, aircraft, theaters, stadiums, conference halls, and many other seating arrangements. ', 'abp-event-ticket' ),
'abpet_dates' => __( 'Note: Set a global date configuration for your Event that can be reused across all posts', 'abp-event-ticket' ),
'abpet_additional' => __( 'Note: Add extra services for products/equipment with your Event—import or set per Post (also usable globally); stock applies per Post, empty quantity = unlimited, empty max qty = no limit, empty/Zero price = free.', 'abp-event-ticket' ),
'abpet_form' => __( 'Note: This is a flexibility global form system. Once you design the structure here, it serves as a global form. You can effortlessly import this form into any Event or use this setting at any Event,', 'abp-event-ticket' ),
'abpet_faq' => __( 'Note: You can set all Event-related FAQs here and use them globally across all Events. You can also import these FAQs into any individual Event and customize them as needed.', 'abp-event-ticket' ),
'abpet_tc' => __( 'Note: You can set all Event-related Term & Condition here and use them globally across all Event. You can also import these Term & Condition into any individual Event and customize them as needed.', 'abp-event-ticket' ),
'abpet_location' => __( 'Note: Here, you can add all of your Event Location, which can then be used across any Event . You can edit or delete them at any time. However, please note that deleting a location that is already assigned to a Event may affect the existing configuration. If a location is not currently assigned anywhere, deleting it will not cause any issues.', 'abp-event-ticket' ),
'abpet_category' => __( 'Note : Here you can create and manage all Event types or categories. You can assign categories to each Event while creating or editing a post. Every category has a unique ID, which can also be used in shortcodes to display specific post types anywhere on your website. You can edit or delete categories at any time, but removing a category that is already assigned to a post may affect its existing configuration.', 'abp-event-ticket' ),
'abpet_organizer' => __( 'Note: Here you can create and manage Event organizers, operators, or companies. You can assign organizers to each Event while creating or editing a post. Every organizer has a unique ID that can be used in shortcodes to display Event from a specific organizer anywhere on your website. You can edit or delete organizers at any time, but deleting an organizer that is already assigned to a post may affect the existing configuration.', 'abp-event-ticket' ),
'abpet_brand' => __( 'Note : Here you can create and manage Event brands, manufacturers, or service providers. You can assign brand to each Event while creating or editing a post. Every brand has a unique ID that can be used in shortcodes to display post from a specific brand anywhere on your website. You can edit or delete brands at any time, but deleting a brand that is already assigned to a post may affect the existing configuration.', 'abp-event-ticket' ),
'abpet_feature' => __( 'Note : Here you can create and manage Event features that help attendee understand the facilities and services available with each Event. Examples include Wi-Fi, air conditioning, charging ports, refreshments, entertainment systems, restrooms, and more. You can assign one or multiple features to each post while creating or editing a post. You can edit or delete features at any time, but removing a feature that is already assigned to a post may affect the existing configuration.', 'abp-event-ticket' ),
//=============================//
'sign_up_msg' => __( 'Please Login your account to Download/View ticket !', 'abp-event-ticket' ),
'no_permit_msg' => __( 'You are not permitted to Download/View this ticket !', 'abp-event-ticket' ),
'wrong_msg_id' => __( 'We see, this id are not valid !', 'abp-event-ticket' ),
'no_order_found' => __( 'Sorry ! We can not find any Order in your criteria.', 'abp-event-ticket' ),
//'' => __( '', 'abp-event-ticket' ),
);
$des = apply_filters( 'abpet_info_array_filter', $des );
return $des[ $key ] ?? '';
}
public static function icon_svg( $key ): void {
$des = [
'user_group_1' => '',
'user_group_2' => '',
'plus' => '',
'minus_1' => '',
'minus_2' => '',
'minus_3' => '',
'minus_4' => '',
'save' => '',
'edit' => '',
'drag' => '',
'order' => '',
'seat' => '',
'globe' => '',
'setting' => '',
'status' => '',
'category' => '',
'category_1' => '',
'brand_1' => '',
'brand_2' => '',
'organizer_1' => '',
'organizer_2' => '',
'date_1' => '',
'date_2' => '',
'clone_1' => '',
'clone_2' => '',
'close_1' => '',
'close_2' => '',
'view_1' => '',
'view_2' => '',
'view_3' => '',
'pdf_1' => '',
'property' => '',
'' => '',
];
$allowed_svg_tags = [
'svg' => [ 'class' => true, 'aria-hidden' => true, 'aria-labelledby' => true, 'role' => true, 'xmlns' => true, 'width' => true, 'height' => true, 'viewbox' => true, 'fill' => true, 'stroke' => true, 'stroke-width' => true, ],
'g' => [ 'fill' => true, ],
'title' => [ 'title' => true, ],
'path' => [ 'd' => true, 'fill' => true, 'stroke' => true, 'stroke-width' => true, 'stroke-linecap' => true, 'stroke-linejoin' => true, ],
'rect' => [ 'x' => true, 'y' => true, 'width' => true, 'height' => true, 'rx' => true, 'ry' => true, 'fill' => true, 'stroke' => true, ],
'circle' => [ 'cx' => true, 'cy' => true, 'r' => true, 'fill' => true, 'stroke' => true, ],
'line' => [ 'x1' => true, 'y1' => true, 'x2' => true, 'y2' => true, 'stroke' => true, 'stroke-width' => true, ],
'polyline' => [ 'points' => true, 'fill' => true, 'stroke' => true, ],
];
$icons = $des[ $key ] ?? '';
echo ! empty( $icons ) ? wp_kses( $icons, $allowed_svg_tags ) : '';
}
public static function location(): array {
return [
0 => [ 'name' => 'New York City' ],
1 => [ 'name' => 'Los Angeles' ],
2 => [ 'name' => 'Chicago' ],
3 => [ 'name' => 'Las Vegas' ],
4 => [ 'name' => 'San Francisco' ],
5 => [ 'name' => 'Miami' ],
6 => [ 'name' => 'Orlando' ],
7 => [ 'name' => 'Boston' ],
8 => [ 'name' => 'Nashville' ],
9 => [ 'name' => 'Austin' ],
];
}
public static function category(): array {
return [
0 => [ 'name' => 'Concert' ],
1 => [ 'name' => 'Conference' ],
2 => [ 'name' => 'Workshop' ],
3 => [ 'name' => 'Seminar' ],
4 => [ 'name' => 'Festival' ],
5 => [ 'name' => 'Sports' ],
6 => [ 'name' => 'Theater' ],
7 => [ 'name' => 'Exhibition' ],
8 => [ 'name' => 'Party' ],
9 => [ 'name' => 'Other' ],
];
}
public static function organizer(): array {
return [
0 => [ 'name' => 'Global Events Group' ],
1 => [ 'name' => 'EventPro Productions' ],
2 => [ 'name' => 'Premier Events Network' ],
3 => [ 'name' => 'Elite Event Management' ],
4 => [ 'name' => 'NextGen Events' ],
5 => [ 'name' => 'United Event Solutions' ],
];
}
public static function brand(): array {
return [
0 => [ 'name' => 'Live Nation' ],
1 => [ 'name' => 'Eventbrite' ],
2 => [ 'name' => 'AEG Presents' ],
3 => [ 'name' => 'Ticketmaster' ],
4 => [ 'name' => 'IMG Events' ],
5 => [ 'name' => 'C3 Presents' ],
6 => [ 'name' => 'Global Events' ],
7 => [ 'name' => 'Premier Events' ],
8 => [ 'name' => 'EventPro' ],
9 => [ 'name' => 'Elite Entertainment' ],
];
}
public static function ticket(): array {
return [
1 => [ 'label' => 'Ticket', 'color' => '', 'prefix' => '', 'icon' => '🎟️', 'type' => 'seat', ],
2 => [ 'label' => 'VIP', 'color' => '#A78BFA', 'prefix' => 'VIP-', 'icon' => '👑', 'type' => 'seat', ],
3 => [ 'label' => 'Business Class', 'color' => '#0EA5E9', 'prefix' => 'B-', 'icon' => '🛋️', 'type' => 'seat', ],
4 => [ 'label' => 'Special', 'color' => '#6366F1', 'prefix' => 'S-', 'icon' => 'fas fa-couch', 'type' => 'seat', ],
5 => [ 'label' => 'Couple', 'color' => '#C026D3', 'prefix' => 'C-', 'icon' => '💑', 'type' => 'seat', ],
6 => [ 'label' => 'Female', 'color' => '#F472B6', 'prefix' => 'F-', 'icon' => '👩', 'type' => 'seat', ],
7 => [ 'label' => 'Adult', 'color' => '#78350F', 'prefix' => 'AD-', 'icon' => 'fas fa-chair', 'type' => 'seat', ],
8 => [ 'label' => 'Child', 'color' => '#F59E0B', 'prefix' => 'CH-', 'icon' => '🪑', 'type' => 'seat', ],
9 => [ 'label' => 'Economy', 'color' => '#84CC16', 'prefix' => 'E-', 'icon' => '💺', 'type' => 'seat', ],
];
}
public static function decoration(): array {
return [
1 => [ 'label' => 'Blank Space', 'color' => '', 'icon' => '', 'type' => 'other' ],
2 => [ 'label' => 'Security', 'color' => '#1E293B', 'icon' => '👨✈️', 'type' => 'other' ],
3 => [ 'label' => 'Door Entry', 'color' => '#EAB308', 'icon' => '🚪', 'type' => 'other' ],
4 => [ 'label' => 'Stairs', 'color' => '#64748B', 'icon' => '🪜', 'type' => 'other' ],
5 => [ 'label' => 'Aisle/Walkway', 'color' => '#94A3B8', 'icon' => '↔', 'type' => 'other' ],
6 => [ 'label' => 'Window', 'color' => '#38BDF8', 'icon' => '🪟', 'type' => 'other' ],
7 => [ 'label' => 'Engine Box', 'color' => '#475569', 'icon' => '⚙️', 'type' => 'other' ],
8 => [ 'label' => 'Toilet', 'color' => '#06B6D4', 'icon' => '🚽', 'type' => 'other' ],
9 => [ 'label' => 'Luggage Rack', 'color' => '#F97316', 'icon' => '🧳', 'type' => 'other' ],
10 => [ 'label' => 'Food/Snacks', 'color' => '#10B981', 'icon' => '🍔', 'type' => 'other' ],
11 => [ 'label' => 'Emergency Exit', 'color' => '#EF4444', 'icon' => '🚨', 'type' => 'other' ],
];
}
public static function additional(): array {
return [
'as_1' => [ 'icon' => 'fas fa-parking', 'name' => 'Event Parking', 'qty' => 100, 'max_qty' => 1, 'price' => 10.00, 'description' => 'Reserved parking space for the event', 'returnable' => 'no', ],
'as_2' => [ 'icon' => 'fas fa-utensils', 'name' => 'Meal Package', 'qty' => 100, 'max_qty' => 1, 'price' => 15.00, 'description' => 'Meal and refreshments included', 'returnable' => 'no', ],
'as_3' => [ 'icon' => 'fas fa-couch', 'name' => 'VIP Lounge Access', 'qty' => 50, 'max_qty' => 1, 'price' => 25.00, 'description' => 'Exclusive access to the VIP lounge', 'returnable' => 'no', ],
'as_4' => [ 'icon' => 'fas fa-shirt', 'name' => 'Event T-Shirt', 'qty' => 100, 'max_qty' => 2, 'price' => 12.00, 'description' => 'Official event branded T-shirt', 'returnable' => 'yes', ],
];
}
public static function form( $key = '' ): array {
$form['pass_name'] = [ 'type' => 'text', 'required' => 'on', 'label' => __( 'First Name', 'abp-event-ticket' ) ];
$form['pass_name_2'] = [ 'type' => 'text', 'required' => 'on', 'label' => __( 'Last Name', 'abp-event-ticket' ) ];
$form['pass_email'] = [ 'type' => 'email', 'required' => 'on', 'label' => __( 'E-Mail', 'abp-event-ticket' ) ];
$form['pass_phone'] = [ 'type' => 'text', 'required' => 'on', 'label' => __( 'Phone', 'abp-event-ticket' ) ];
$form['pass_gender'] = [ 'type' => 'select', 'required' => 'off', 'label' => __( 'Gender', 'abp-event-ticket' ), 'option' => 'male,female' ];
$form['pass_date'] = [ 'type' => 'date', 'required' => 'off', 'label' => __( 'Date of Birth', 'abp-event-ticket' ) ];
if ( ! is_string( $key ) && ! is_int( $key ) ) {
return $form;
}
if ( $key === '' ) {
return $form;
}
return is_array( $form[ $key ] ?? null ) ? $form[ $key ] : [];
}
public static function faq(): array {
return [
1 => [
'title' => 'How do I book an event ticket?',
'des' => '
Select your preferred event, date, ticket type, and seat if seat selection is available. Complete the checkout and payment process to confirm your booking.
',
],
2 => [
'title' => 'Can I cancel my ticket?',
'des' => '
Ticket cancellation depends on the cancellation policy set by the event organizer. Refund eligibility may vary depending on the ticket type and booking conditions.
',
],
3 => [
'title' => 'Can I change my ticket or event date?',
'des' => '
Ticket changes or date modifications are available only when allowed by the event organizer and subject to availability.
',
],
4 => [
'title' => 'When should I arrive at the event venue?',
'des' => '
Attendees are advised to arrive at least 15 to 30 minutes before the scheduled start time to allow enough time for entry, ticket verification, and seating.
',
],
5 => [
'title' => 'Will I receive a ticket confirmation?',
'des' => '
Yes, a booking confirmation will be provided after successful payment. Your ticket and booking details may also be available from your account dashboard.
Available payment methods depend on the payment gateways configured by the website administrator.
',
],
7 => [
'title' => 'Can I select my preferred seat?',
'des' => '
Yes, if seat selection is enabled for the event, you can choose your preferred available seat during the booking process.
',
],
8 => [
'title' => 'What happens if the event is postponed?',
'des' => '
If an event is postponed, the event organizer will provide information about the new date, ticket validity, cancellation options, or refund policy.
',
],
9 => [
'title' => 'Are children allowed to attend the event?',
'des' => '
Children may be allowed depending on the event rules and age restrictions set by the organizer. Please check the event details before booking.
',
],
10 => [
'title' => 'Who should I contact for assistance?',
'des' => '
For booking or event-related assistance, please contact the event organizer using the contact information provided on the website.
',
],
];
}
public static function tc(): false|string {
ob_start(); ?>
1. Acceptance of Terms
By purchasing or using an event ticket through this website, you agree to comply with these terms and conditions. If you do not agree with any part of these terms, please do not purchase or use the ticket.
2. Ticket Booking and Confirmation
A ticket booking is considered confirmed only after successful payment and receipt of a booking confirmation. Customers are responsible for providing accurate information during the booking process.
3. Attendee Information
Attendees must provide accurate and valid information, including their name, contact details, and any other required information. Incorrect or misleading information may result in ticket cancellation without notice.
4. Ticket and Seat Availability
All ticket and seat bookings are subject to availability. The event organizer reserves the right to change or reassign seats when necessary due to event arrangements, venue requirements, or operational reasons.
5. Event Entry
Attendees are advised to arrive at the event venue at least 15 to 30 minutes before the scheduled start time. Valid tickets may be required for entry, and late arrival may be subject to the event organizer's entry policy.
6. Cancellation and Refund Policy
Ticket cancellation and refund eligibility may vary depending on the event organizer's policy. Any applicable processing fees, taxes, or service charges may be deducted from the refund amount.
7. Event Changes and Postponement
Event dates, times, venues, schedules, performers, speakers, or other event details may be changed due to unforeseen circumstances, operational requirements, weather conditions, government regulations, or other reasons beyond the organizer's reasonable control.
8. Event Cancellation
If an event is cancelled, the event organizer will determine the applicable refund, rescheduling, or replacement arrangements according to the event's cancellation policy.
9. Attendee Conduct
Attendees must behave appropriately and follow the rules of the event and venue. Unlawful, abusive, disruptive, or unsafe behavior may result in removal from the event without compensation.
10. Personal Belongings
Attendees are responsible for their personal belongings brought to the event. The event organizer and venue are not responsible for any loss, damage, or theft of personal items unless otherwise required by applicable law.
11. Limitation of Liability
The event organizer shall not be held responsible for delays, cancellations, changes, injuries, loss of personal belongings, or other circumstances beyond reasonable control, except where liability cannot legally be excluded.
12. Privacy and Personal Information
Personal information collected during the ticket booking process will be used to process bookings, provide event-related services, and communicate important information in accordance with the applicable privacy policy.
13. Changes to Terms
These terms and conditions may be updated from time to time. Continued use of the ticketing service after changes are published indicates acceptance of the revised terms and conditions.