Esempio n. 1
0
 function output($format, $target = "html")
 {
     preg_match_all("/(#@?_?[A-Za-z0-9]+)({([^}]+)})?/", $format, $placeholders);
     foreach ($this->get_tickets() as $EM_Ticket) {
         /* @var $EM_Ticket EM_Ticket */
         break;
     }
     //Get first ticket for single ticket placeholders
     $output_string = $format;
     $replaces = array();
     foreach ($placeholders[1] as $key => $result) {
         $replace = '';
         $full_result = $placeholders[0][$key];
         switch ($result) {
             case '#_BOOKINGID':
                 $replace = $this->booking_id;
                 break;
             case '#_RESPNAME':
                 //Depreciated
             //Depreciated
             case '#_BOOKINGNAME':
                 $replace = $this->get_person()->get_name();
                 break;
             case '#_RESPEMAIL':
                 //Depreciated
             //Depreciated
             case '#_BOOKINGEMAIL':
                 $replace = $this->get_person()->user_email;
                 break;
             case '#_RESPPHONE':
                 //Depreciated
             //Depreciated
             case '#_BOOKINGPHONE':
                 $replace = $this->get_person()->phone;
                 break;
             case '#_BOOKINGSPACES':
                 $replace = $this->get_spaces();
                 break;
             case '#_BOOKINGDATE':
                 $replace = $this->timestamp ? date_i18n(get_option('dbem_date_format'), $this->timestamp) : 'n/a';
                 break;
             case '#_BOOKINGTIME':
                 $replace = $this->timestamp ? date_i18n(get_option('dbem_time_format'), $this->timestamp) : 'n/a';
                 break;
             case '#_BOOKINGDATETIME':
                 $replace = $this->timestamp ? date_i18n(get_option('dbem_date_format') . ' ' . get_option('dbem_time_format'), $this->timestamp) : 'n/a';
                 break;
             case '#_BOOKINGLISTURL':
                 $replace = em_get_my_bookings_url();
                 break;
             case '#_COMMENT':
                 //Depreciated
             //Depreciated
             case '#_BOOKINGCOMMENT':
                 $replace = $this->booking_comment;
                 break;
                 $replace = $this->get_price(true);
                 //if there's tax, it'll be added here
                 break;
             case '#_BOOKINGPRICEWITHOUTTAX':
                 $replace = $this->format_price($this->get_price() - $this->get_price_taxes());
                 break;
             case '#_BOOKINGPRICETAX':
                 $replace = $this->get_price_taxes(true);
                 break;
             case '#_BOOKINGPRICEWITHTAX':
             case '#_BOOKINGPRICE':
                 $replace = $this->get_price(true);
                 break;
             case '#_BOOKINGTICKETNAME':
                 $replace = $EM_Ticket->name;
                 break;
             case '#_BOOKINGTICKETDESCRIPTION':
                 $replace = $EM_Ticket->description;
                 break;
             case '#_BOOKINGTICKETPRICEWITHTAX':
                 $replace = $this->format_price($EM_Ticket->get_price_without_tax() * (1 + $this->get_tax_rate() / 100));
                 break;
             case '#_BOOKINGTICKETPRICEWITHOUTTAX':
                 $replace = $EM_Ticket->get_price_without_tax(true);
                 break;
             case '#_BOOKINGTICKETTAX':
                 $replace = $this->format_price($EM_Ticket->get_price_without_tax() * ($this->get_tax_rate() / 100));
                 break;
             case '#_BOOKINGTICKETPRICE':
                 $replace = $EM_Ticket->get_price(true);
                 break;
             case '#_BOOKINGTICKETS':
                 ob_start();
                 em_locate_template('emails/bookingtickets.php', true, array('EM_Booking' => $this));
                 $replace = ob_get_clean();
                 break;
             case '#_BOOKINGSUMMARY':
                 ob_start();
                 em_locate_template('emails/bookingsummary.php', true, array('EM_Booking' => $this));
                 $replace = ob_get_clean();
                 break;
             default:
                 $replace = $full_result;
                 break;
         }
         $replaces[$full_result] = apply_filters('em_booking_output_placeholder', $replace, $this, $full_result, $target);
     }
     //sort out replacements so that during replacements shorter placeholders don't overwrite longer varieties.
     krsort($replaces);
     foreach ($replaces as $full_result => $replacement) {
         $output_string = str_replace($full_result, $replacement, $output_string);
     }
     //run event output too, since this is never run from within events and will not infinitely loop
     $output_string = $this->get_event()->output($output_string, $target);
     return apply_filters('em_booking_output', $output_string, $this, $format, $target);
 }
Esempio n. 2
0
// We are firstly checking if the user has already booked a ticket at this event, if so offer a link to view their bookings.
$EM_Booking = $EM_Event->get_bookings()->has_booking();
?>

	<?php 
if (is_object($EM_Booking) && !get_option('dbem_bookings_double')) {
    //Double bookings not allowed
    ?>

		<p>
			<?php 
    echo get_option('dbem_bookings_form_msg_attending');
    ?>

			<a href="<?php 
    echo em_get_my_bookings_url();
    ?>
"><?php 
    echo get_option('dbem_bookings_form_msg_bookings_link');
    ?>
</a>
		</p>
	<?php 
} elseif (!$EM_Event->event_rsvp) {
    //bookings not enabled
    ?>

		<p><?php 
    echo get_option('dbem_bookings_form_msg_disabled');
    ?>
</p>
Esempio n. 3
0
function em_add_options()
{
    global $wp_locale;
    $decimal_point = !empty($wp_locale->number_format['decimal_point']) ? $wp_locale->number_format['decimal_point'] : '.';
    $thousands_sep = !empty($wp_locale->number_format['thousands_sep']) ? $wp_locale->number_format['thousands_sep'] : ',';
    $email_footer = '<br/><br/>-------------------------------<br/>Powered by Events Manager - http://wp-events-plugin.com';
    $respondent_email_body_localizable = __("Dear #_BOOKINGNAME, <br/>You have successfully reserved #_BOOKINGSPACES space/spaces for #_EVENTNAME.<br/>When : #_EVENTDATES @ #_EVENTTIMES<br/>Where : #_LOCATIONNAME - #_LOCATIONFULLLINE<br/>Yours faithfully,<br/>#_CONTACTNAME", 'dbem') . $email_footer;
    $respondent_email_pending_body_localizable = __("Dear #_BOOKINGNAME, <br/>You have requested #_BOOKINGSPACES space/spaces for #_EVENTNAME.<br/>When : #_EVENTDATES @ #_EVENTTIMES<br/>Where : #_LOCATIONNAME - #_LOCATIONFULLLINE<br/>Your booking is currently pending approval by our administrators. Once approved you will receive an automatic confirmation.<br/>Yours faithfully,<br/>#_CONTACTNAME", 'dbem') . $email_footer;
    $respondent_email_rejected_body_localizable = __("Dear #_BOOKINGNAME, <br/>Your requested booking for #_BOOKINGSPACES spaces at #_EVENTNAME on #_EVENTDATES has been rejected.<br/>Yours faithfully,<br/>#_CONTACTNAME", 'dbem') . $email_footer;
    $respondent_email_cancelled_body_localizable = __("Dear #_BOOKINGNAME, <br/>Your requested booking for #_BOOKINGSPACES spaces at #_EVENTNAME on #_EVENTDATES has been cancelled.<br/>Yours faithfully,<br/>#_CONTACTNAME", 'dbem') . $email_footer;
    $event_approved_email_body = __("Dear #_CONTACTNAME, <br/>Your event #_EVENTNAME on #_EVENTDATES has been approved.<br/>You can view your event here: #_EVENTURL", 'dbem') . $email_footer;
    $event_submitted_email_body = __("A new event has been submitted by #_CONTACTNAME.<br/>Name : #_EVENTNAME <br/>Date : #_EVENTDATES <br/>Time : #_EVENTTIMES <br/>Please visit #_EDITEVENTURL to review this event for approval.", 'dbem') . $email_footer;
    $event_submitted_email_body = str_replace('#_EDITEVENTURL', admin_url() . 'post.php?action=edit&post=#_EVENTPOSTID', $event_submitted_email_body);
    $event_published_email_body = __("A new event has been published by #_CONTACTNAME.<br/>Name : #_EVENTNAME <br/>Date : #_EVENTDATES <br/>Time : #_EVENTTIMES <br/>Edit this event - #_EDITEVENTURL <br/> View this event - #_EVENTURL", 'dbem') . $email_footer;
    $event_published_email_body = str_replace('#_EDITEVENTURL', admin_url() . 'post.php?action=edit&post=#_EVENTPOSTID', $event_published_email_body);
    $event_resubmitted_email_body = __("A previously published event has been modified by #_CONTACTNAME, and this event is now unpublished and pending your approval.<br/>Name : #_EVENTNAME <br/>Date : #_EVENTDATES <br/>Time : #_EVENTTIMES <br/>Please visit #_EDITEVENTURL to review this event for approval.", 'dbem') . $email_footer;
    $event_resubmitted_email_body = str_replace('#_EDITEVENTURL', admin_url() . 'post.php?action=edit&post=#_EVENTPOSTID', $event_resubmitted_email_body);
    //event admin emails - new format to the above, standard format plus one unique line per booking status at the top of the body and subject line
    $contact_person_email_body_template = '#_EVENTNAME - #_EVENTDATES @ #_EVENTTIMES' . '<br/>' . __('Now there are #_BOOKEDSPACES spaces reserved, #_AVAILABLESPACES are still available.', 'dbem') . '<br/>' . strtoupper(__('Booking Details', 'dbem')) . '<br/>' . __('Name', 'dbem') . ' : #_BOOKINGNAME' . "\n" . __('Email', 'dbem') . ' : #_BOOKINGEMAIL' . '<br/>' . '#_BOOKINGSUMMARY' . '<br/>' . '<br/>Powered by Events Manager - http://wp-events-plugin.com';
    $contact_person_emails['confirmed'] = sprintf(__('The following booking is %s :', 'dbem'), strtolower(__('Confirmed', 'dbem'))) . '<br/>' . $contact_person_email_body_template;
    $contact_person_emails['pending'] = sprintf(__('The following booking is %s :', 'dbem'), strtolower(__('Pending', 'dbem'))) . '<br/>' . $contact_person_email_body_template;
    $contact_person_emails['cancelled'] = sprintf(__('The following booking is %s :', 'dbem'), strtolower(__('Cancelled', 'dbem'))) . '<br/>' . $contact_person_email_body_template;
    $contact_person_emails['rejected'] = sprintf(__('The following booking is %s :', 'dbem'), strtolower(__('Rejected', 'dbem'))) . '<br/>' . $contact_person_email_body_template;
    //registration email content
    $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
    $booking_registration_email_subject = sprintf(__('[%s] Your username and password', 'dbem'), $blogname);
    $booking_registration_email_body = sprintf(__('You have successfully created an account at %s', 'dbem'), $blogname) . '<br/>' . sprintf(__('You can log into our site here : %s', 'dbem'), get_bloginfo('wpurl') . '/wp-login.php') . '<br/>' . __('Username', 'dbem') . ' : %username%' . '<br/>' . __('Password', 'dbem') . ' : %password%' . '<br/>' . sprintf(__('To view your bookings, please visit %s after logging in.', 'dbem'), em_get_my_bookings_url());
    //all the options
    $dbem_options = array('dbem_time_format' => get_option('time_format'), 'dbem_date_format' => 'd/m/Y', 'dbem_date_format_js' => 'dd/mm/yy', 'dbem_dates_separator' => ' - ', 'dbem_times_separator' => ' - ', 'dbem_default_category' => 0, 'dbem_default_location' => 0, 'dbem_events_default_orderby' => 'event_start_date,event_start_time,event_name', 'dbem_events_default_order' => 'ASC', 'dbem_events_default_limit' => 10, 'dbem_search_form_submit' => __('Search', 'dbem'), 'dbem_search_form_advanced' => 1, 'dbem_search_form_advanced_hidden' => 1, 'dbem_search_form_advanced_show' => __('Show Advanced Search', 'dbem'), 'dbem_search_form_advanced_hide' => __('Hide Advanced Search', 'dbem'), 'dbem_search_form_text' => 1, 'dbem_search_form_text_label' => __('Search', 'dbem'), 'dbem_search_form_geo' => 1, 'dbem_search_form_geo_label' => __('Near...', 'dbem'), 'dbem_search_form_geo_units' => 1, 'dbem_search_form_geo_units_label' => __('Within', 'dbem'), 'dbem_search_form_geo_unit_default' => 'mi', 'dbem_search_form_geo_distance_default' => 25, 'dbem_search_form_geo_distance_options' => '5,10,25,50,100', 'dbem_search_form_dates' => 1, 'dbem_search_form_dates_label' => __('Dates', 'dbem'), 'dbem_search_form_dates_separator' => __('and', 'dbem'), 'dbem_search_form_categories' => 1, 'dbem_search_form_categories_label' => __('All Categories', 'dbem'), 'dbem_search_form_category_label' => __('Category', 'dbem'), 'dbem_search_form_countries' => 1, 'dbem_search_form_default_country' => get_option('dbem_location_default_country', ''), 'dbem_search_form_countries_label' => __('All Countries', 'dbem'), 'dbem_search_form_country_label' => __('Country', 'dbem'), 'dbem_search_form_regions' => 1, 'dbem_search_form_regions_label' => __('All Regions', 'dbem'), 'dbem_search_form_region_label' => __('Region', 'dbem'), 'dbem_search_form_states' => 1, 'dbem_search_form_states_label' => __('All States', 'dbem'), 'dbem_search_form_state_label' => __('State/County', 'dbem'), 'dbem_search_form_towns' => 0, 'dbem_search_form_towns_label' => __('All Cities/Towns', 'dbem'), 'dbem_search_form_town_label' => __('City/Town', 'dbem'), 'dbem_events_form_editor' => 1, 'dbem_events_form_reshow' => 1, 'dbem_events_form_result_success' => __('You have successfully submitted your event, which will be published pending approval.', 'dbem'), 'dbem_events_form_result_success_updated' => __('You have successfully updated your event, which will be republished pending approval.', 'dbem'), 'dbem_events_anonymous_submissions' => 0, 'dbem_events_anonymous_user' => 0, 'dbem_events_anonymous_result_success' => __('You have successfully submitted your event, which will be published pending approval.', 'dbem'), 'dbem_event_submitted_email_admin' => '', 'dbem_event_submitted_email_subject' => __('Submitted Event Awaiting Approval', 'dbem'), 'dbem_event_submitted_email_body' => str_replace("<br/>", "\n\r", $event_submitted_email_body), 'dbem_event_resubmitted_email_subject' => __('Re-Submitted Event Awaiting Approval', 'dbem'), 'dbem_event_resubmitted_email_body' => str_replace("<br/>", "\n\r", $event_resubmitted_email_body), 'dbem_event_published_email_subject' => __('Published Event', 'dbem') . ' - #_EVENTNAME', 'dbem_event_published_email_body' => str_replace("<br/>", "\n\r", $event_published_email_body), 'dbem_event_approved_email_subject' => __("Event Approved", 'dbem') . " - #_EVENTNAME", 'dbem_event_approved_email_body' => str_replace("<br/>", "\n\r", $event_approved_email_body), 'dbem_event_reapproved_email_subject' => __("Event Approved", 'dbem') . " - #_EVENTNAME", 'dbem_event_reapproved_email_body' => str_replace("<br/>", "\n\r", $event_approved_email_body), 'dbem_events_page_title' => __('Events', 'dbem'), 'dbem_events_page_scope' => 'future', 'dbem_events_page_search_form' => 1, 'dbem_event_list_item_format_header' => '<table cellpadding="0" cellspacing="0" class="events-table" >
    <thead>
        <tr>
			<th class="event-time" width="150">' . __('Date/Time', 'dbem') . '</th>
			<th class="event-description" width="*">' . __('Event', 'dbem') . '</th>
		</tr>
   	</thead>
    <tbody>', 'dbem_event_list_item_format' => '<tr>
			<td>
                #_EVENTDATES<br/>
                #_EVENTTIMES
            </td>
            <td>
                #_EVENTLINK
                {has_location}<br/><i>#_LOCATIONNAME, #_LOCATIONTOWN #_LOCATIONSTATE</i>{/has_location}
            </td>
        </tr>', 'dbem_event_list_item_format_footer' => '</tbody></table>', 'dbem_event_list_groupby' => 0, 'dbem_event_list_groupby_format' => '', 'dbem_event_list_groupby_header_format' => '<h2>#s</h2>', 'dbem_display_calendar_in_events_page' => 0, 'dbem_single_event_format' => '<div style="float:right; margin:0px 0px 15px 15px;">#_LOCATIONMAP</div>
<p>
	<strong>' . __('Date/Time', 'dbem') . '</strong><br/>
	Date(s) - #_EVENTDATES<br /><i>#_EVENTTIMES</i>
</p>
{has_location}
<p>
	<strong>' . __('Location', 'dbem') . '</strong><br/>
	#_LOCATIONLINK
</p>
{/has_location}
<p>
	<strong>' . __('Categories', 'dbem') . '</strong>
	#_CATEGORIES
</p>
<br style="clear:both" />
#_EVENTNOTES
{has_bookings}
<h3>Bookings</h3>
#_BOOKINGFORM
{/has_bookings}', 'dbem_event_excerpt_format' => '#_EVENTDATES @ #_EVENTTIMES - #_EVENTEXCERPT', 'dbem_event_excerpt_alt_format' => '#_EVENTDATES @ #_EVENTTIMES - #_EVENTEXCERPT{55}', 'dbem_event_page_title_format' => '#_EVENTNAME', 'dbem_event_all_day_message' => __('All Day', 'dbem'), 'dbem_no_events_message' => sprintf(__('No %s', 'dbem'), __('Events', 'dbem')), 'dbem_locations_default_orderby' => 'location_name', 'dbem_locations_default_order' => 'ASC', 'dbem_locations_default_limit' => 10, 'dbem_locations_page_title' => __('Event', 'dbem') . " " . __('Locations', 'dbem'), 'dbem_locations_page_search_form' => 1, 'dbem_no_locations_message' => sprintf(__('No %s', 'dbem'), __('Locations', 'dbem')), 'dbem_location_default_country' => '', 'dbem_location_list_item_format_header' => '<ul class="em-locations-list">', 'dbem_location_list_item_format' => '<li>#_LOCATIONLINK<ul><li>#_LOCATIONFULLLINE</li></ul></li>', 'dbem_location_list_item_format_footer' => '</ul>', 'dbem_location_page_title_format' => '#_LOCATIONNAME', 'dbem_single_location_format' => '<div style="float:right; margin:0px 0px 15px 15px;">#_LOCATIONMAP</div>
<p>
	<strong>' . __('Address', 'dbem') . '</strong><br/>
	#_LOCATIONADDRESS<br/>
	#_LOCATIONTOWN<br/>
	#_LOCATIONSTATE<br/>
	#_LOCATIONREGION<br/>
	#_LOCATIONPOSTCODE<br/>
	#_LOCATIONCOUNTRY
</p>
<br style="clear:both" />
#_LOCATIONNOTES

<h3>' . __('Upcoming Events', 'dbem') . '</h3>
<p>#_LOCATIONNEXTEVENTS</p>', 'dbem_location_excerpt_format' => '#_LOCATIONEXCERPT', 'dbem_location_excerpt_alt_format' => '#_LOCATIONEXCERPT{55}', 'dbem_location_no_events_message' => '<li>' . __('No events in this location', 'dbem') . '</li>', 'dbem_location_event_list_item_header_format' => "<ul>", 'dbem_location_event_list_item_format' => "<li>#_EVENTLINK - #_EVENTDATES - #_EVENTTIMES</li>", 'dbem_location_event_list_item_footer_format' => "</ul>", 'dbem_location_event_list_limit' => 20, 'dbem_location_event_single_format' => '#_EVENTLINK - #_EVENTDATES - #_EVENTTIMES', 'dbem_location_no_event_message' => __('No events in this location', 'dbem'), 'dbem_categories_default_limit' => 10, 'dbem_categories_default_orderby' => 'name', 'dbem_categories_default_order' => 'ASC', 'dbem_categories_list_item_format_header' => '<ul class="em-categories-list">', 'dbem_categories_list_item_format' => '<li>#_CATEGORYLINK</li>', 'dbem_categories_list_item_format_footer' => '</ul>', 'dbem_no_categories_message' => sprintf(__('No %s', 'dbem'), __('Categories', 'dbem')), 'dbem_category_page_title_format' => '#_CATEGORYNAME', 'dbem_category_page_format' => '#_CATEGORYNOTES<h3>' . __('Upcoming Events', 'dbem') . '</h3>#_CATEGORYNEXTEVENTS', 'dbem_category_no_events_message' => '<li>' . __('No events in this category', 'dbem') . '</li>', 'dbem_category_event_list_item_header_format' => '<ul>', 'dbem_category_event_list_item_format' => "<li>#_EVENTLINK - #_EVENTDATES - #_EVENTTIMES</li>", 'dbem_category_event_list_item_footer_format' => '</ul>', 'dbem_category_event_list_limit' => 20, 'dbem_category_event_single_format' => '#_EVENTLINK - #_EVENTDATES - #_EVENTTIMES', 'dbem_category_no_event_message' => __('No events in this category', 'dbem'), 'dbem_category_default_color' => '#a8d144', 'dbem_tags_default_limit' => 10, 'dbem_tags_default_orderby' => 'name', 'dbem_tags_default_order' => 'ASC', 'dbem_tags_list_item_format_header' => '<ul class="em-tags-list">', 'dbem_tags_list_item_format' => '<li>#_TAGLINK</li>', 'dbem_tags_list_item_format_footer' => '</ul>', 'dbem_no_tags_message' => sprintf(__('No %s', 'dbem'), __('Tags', 'dbem')), 'dbem_tag_page_title_format' => '#_TAGNAME', 'dbem_tag_page_format' => '<h3>' . __('Upcoming Events', 'dbem') . '</h3>#_TAGNEXTEVENTS', 'dbem_tag_no_events_message' => '<li>' . __('No events with this tag', 'dbem') . '</li>', 'dbem_tag_event_list_item_header_format' => '<ul class="em-tags-list">', 'dbem_tag_event_list_item_format' => "<li>#_EVENTLINK - #_EVENTDATES - #_EVENTTIMES</li>", 'dbem_tag_event_list_item_footer_format' => '</ul>', 'dbem_tag_event_single_format' => '#_EVENTLINK - #_EVENTDATES - #_EVENTTIMES', 'dbem_tag_no_event_message' => __('No events with this tag', 'dbem'), 'dbem_tag_event_list_limit' => 20, 'dbem_rss_limit' => 0, 'dbem_rss_scope' => 'future', 'dbem_rss_main_title' => get_bloginfo('title') . " - " . __('Events', 'dbem'), 'dbem_rss_main_description' => get_bloginfo('description') . " - " . __('Events', 'dbem'), 'dbem_rss_description_format' => "#_EVENTDATES - #_EVENTTIMES <br/>#_LOCATIONNAME <br/>#_LOCATIONADDRESS <br/>#_LOCATIONTOWN", 'dbem_rss_title_format' => "#_EVENTNAME", 'dbem_rss_scope' => 'future', 'dbem_rss_order' => get_option('dbem_events_default_order', 'ASC'), 'dbem_rss_orderby' => get_option('dbem_events_default_orderby', 'event_start_date,event_start_time,event_name'), 'em_rss_pubdate' => date('D, d M Y H:i:s +0000'), 'dbem_ical_limit' => 0, 'dbem_ical_scope' => "future", 'dbem_ical_description_format' => "#_EVENTNAME - #_LOCATIONNAME - #_EVENTDATES - #_EVENTTIMES", 'dbem_ical_real_description_format' => "#_EVENTEXCERPT", 'dbem_ical_location_format' => "#_LOCATION", 'dbem_gmap_is_active' => 1, 'dbem_map_default_width' => '400px', 'dbem_map_default_height' => '300px', 'dbem_location_baloon_format' => '<strong>#_LOCATIONNAME</strong><br/>#_LOCATIONADDRESS - #_LOCATIONTOWN<br/><a href="#_LOCATIONPAGEURL">' . __('Events', 'dbem') . '</a>', 'dbem_map_text_format' => '<strong>#_LOCATIONNAME</strong><p>#_LOCATIONADDRESS</p><p>#_LOCATIONTOWN</p>', 'dbem_email_disable_registration' => 0, 'dbem_rsvp_mail_port' => 465, 'dbem_smtp_host' => 'localhost', 'dbem_mail_sender_name' => '', 'dbem_rsvp_mail_send_method' => 'wp_mail', 'dbem_rsvp_mail_SMTPAuth' => 1, 'dbem_smtp_html' => 1, 'dbem_smtp_html_br' => 1, 'dbem_image_max_width' => 700, 'dbem_image_max_height' => 700, 'dbem_image_min_width' => 50, 'dbem_image_min_height' => 50, 'dbem_image_max_size' => 204800, 'dbem_list_date_title' => __('Events', 'dbem') . ' - #j #M #y', 'dbem_full_calendar_month_format' => 'M Y', 'dbem_full_calendar_event_format' => '<li>#_EVENTLINK</li>', 'dbem_full_calendar_long_events' => '0', 'dbem_full_calendar_initials_length' => 0, 'dbem_full_calendar_abbreviated_weekdays' => true, 'dbem_display_calendar_day_single_yes' => 1, 'dbem_small_calendar_month_format' => 'M Y', 'dbem_small_calendar_event_title_format' => "#_EVENTNAME", 'dbem_small_calendar_event_title_separator' => ", ", 'dbem_small_calendar_initials_length' => 1, 'dbem_small_calendar_abbreviated_weekdays' => false, 'dbem_small_calendar_long_events' => '0', 'dbem_display_calendar_order' => 'ASC', 'dbem_display_calendar_orderby' => 'event_name,event_start_time', 'dbem_display_calendar_events_limit' => get_option('dbem_full_calendar_events_limit', 3), 'dbem_display_calendar_events_limit_msg' => __('more...', 'dbem'), 'dbem_calendar_direct_links' => 1, 'dbem_require_location' => 0, 'dbem_locations_enabled' => 1, 'dbem_use_select_for_locations' => 0, 'dbem_attributes_enabled' => 1, 'dbem_recurrence_enabled' => 1, 'dbem_rsvp_enabled' => 1, 'dbem_categories_enabled' => 1, 'dbem_tags_enabled' => 1, 'dbem_placeholders_custom' => '', 'dbem_location_attributes_enabled' => 1, 'dbem_location_placeholders_custom' => '', 'dbem_bookings_registration_disable' => 0, 'dbem_bookings_registration_disable_user_emails' => 0, 'dbem_bookings_registration_user' => '', 'dbem_bookings_approval' => 1, 'dbem_bookings_approval_reserved' => 0, 'dbem_bookings_approval_overbooking' => 0, 'dbem_bookings_double' => 0, 'dbem_bookings_user_cancellation' => 1, 'dbem_bookings_currency' => 'USD', 'dbem_bookings_currency_decimal_point' => $decimal_point, 'dbem_bookings_currency_thousands_sep' => $thousands_sep, 'dbem_bookings_currency_format' => '@#', 'dbem_bookings_tax' => 0, 'dbem_bookings_tax_auto_add' => 0, 'dbem_bookings_submit_button' => __('Send your booking', 'dbem'), 'dbem_bookings_login_form' => 1, 'dbem_bookings_anonymous' => 1, 'dbem_bookings_form_max' => 20, 'dbem_bookings_form_msg_disabled' => __('Online bookings are not available for this event.', 'dbem'), 'dbem_bookings_form_msg_closed' => __('Bookings are closed for this event.', 'dbem'), 'dbem_bookings_form_msg_full' => __('This event is fully booked.', 'dbem'), 'dbem_bookings_form_msg_attending' => __('You are currently attending this event.', 'dbem'), 'dbem_bookings_form_msg_bookings_link' => __('Manage my bookings', 'dbem'), 'dbem_booking_warning_cancel' => __('Are you sure you want to cancel your booking?', 'dbem'), 'dbem_booking_feedback_cancelled' => sprintf(__('Booking %s', 'dbem'), __('Cancelled', 'dbem')), 'dbem_booking_feedback_pending' => __('Booking successful, pending confirmation (you will also receive an email once confirmed).', 'dbem'), 'dbem_booking_feedback' => __('Booking successful.', 'dbem'), 'dbem_booking_feedback_full' => __('Booking cannot be made, not enough spaces available!', 'dbem'), 'dbem_booking_feedback_log_in' => __('You must log in or register to make a booking.', 'dbem'), 'dbem_booking_feedback_nomail' => __('However, there were some problems whilst sending confirmation emails to you and/or the event contact person. You may want to contact them directly and letting them know of this error.', 'dbem'), 'dbem_booking_feedback_error' => __('Booking could not be created', 'dbem') . ':', 'dbem_booking_feedback_email_exists' => __('This email already exists in our system, please log in to register to proceed with your booking.', 'dbem'), 'dbem_booking_feedback_new_user' => __('A new user account has been created for you. Please check your email for access details.', 'dbem'), 'dbem_booking_feedback_reg_error' => __('There was a problem creating a user account, please contact a website administrator.', 'dbem'), 'dbem_booking_feedback_already_booked' => __('You already have booked a seat at this event.', 'dbem'), 'dbem_booking_feedback_min_space' => __('You must request at least one space to book an event.', 'dbem'), 'dbem_booking_feedback_spaces_limit' => __('You cannot book more than %d spaces for this event.', 'dbem'), 'dbem_booking_button_msg_book' => __('Book Now', 'dbem'), 'dbem_booking_button_msg_booking' => __('Booking...', 'dbem'), 'dbem_booking_button_msg_booked' => sprintf(__('%s Submitted', 'dbem'), __('Booking', 'dbem')), 'dbem_booking_button_msg_already_booked' => __('Already Booked', 'dbem'), 'dbem_booking_button_msg_error' => sprintf(__('%s Error. Try again?', 'dbem'), __('Booking', 'dbem')), 'dbem_booking_button_msg_full' => __('Sold Out', 'dbem'), 'dbem_booking_button_msg_cancel' => __('Cancel', 'dbem'), 'dbem_booking_button_msg_canceling' => __('Canceling...', 'dbem'), 'dbem_booking_button_msg_cancelled' => __('Cancelled', 'dbem'), 'dbem_booking_button_msg_cancel_error' => sprintf(__('%s Error. Try again?', 'dbem'), __('Cancellation', 'dbem')), 'dbem_bookings_notify_admin' => 0, 'dbem_bookings_contact_email' => 1, 'dbem_bookings_contact_email_pending_subject' => __("Booking Pending", 'dbem'), 'dbem_bookings_contact_email_pending_body' => str_replace("<br/>", "\n\r", $contact_person_emails['pending']), 'dbem_bookings_contact_email_confirmed_subject' => __('Booking Confirmed', 'dbem'), 'dbem_bookings_contact_email_confirmed_body' => str_replace("<br/>", "\n\r", $contact_person_emails['confirmed']), 'dbem_bookings_contact_email_rejected_subject' => __("Booking Rejected", 'dbem'), 'dbem_bookings_contact_email_rejected_body' => str_replace("<br/>", "\n\r", $contact_person_emails['rejected']), 'dbem_bookings_contact_email_cancelled_subject' => __("Booking Cancelled", 'dbem'), 'dbem_bookings_contact_email_cancelled_body' => str_replace("<br/>", "\n\r", $contact_person_emails['cancelled']), 'dbem_bookings_email_pending_subject' => __("Booking Pending", 'dbem'), 'dbem_bookings_email_pending_body' => str_replace("<br/>", "\n\r", $respondent_email_pending_body_localizable), 'dbem_bookings_email_rejected_subject' => __("Booking Rejected", 'dbem'), 'dbem_bookings_email_rejected_body' => str_replace("<br/>", "\n\r", $respondent_email_rejected_body_localizable), 'dbem_bookings_email_confirmed_subject' => __('Booking Confirmed', 'dbem'), 'dbem_bookings_email_confirmed_body' => str_replace("<br/>", "\n\r", $respondent_email_body_localizable), 'dbem_bookings_email_cancelled_subject' => __('Booking Cancelled', 'dbem'), 'dbem_bookings_email_cancelled_body' => str_replace("<br/>", "\n\r", $respondent_email_cancelled_body_localizable), 'dbem_bookings_email_registration_subject' => $booking_registration_email_subject, 'dbem_bookings_email_registration_body' => str_replace("<br/>", "\n\r", $booking_registration_email_body), 'dbem_bookings_tickets_orderby' => 'ticket_price DESC, ticket_name ASC', 'dbem_bookings_tickets_priority' => 0, 'dbem_bookings_tickets_show_unavailable' => 0, 'dbem_bookings_tickets_show_loggedout' => 1, 'dbem_bookings_tickets_single' => 0, 'dbem_bookings_tickets_single_form' => 0, 'dbem_bookings_my_title_format' => __('My Bookings', 'dbem'), 'dbem_hello_to_user' => 1, 'dbem_bp_events_list_format_header' => '<ul class="em-events-list">', 'dbem_bp_events_list_format' => '<li>#_EVENTLINK - #_EVENTDATES - #_EVENTTIMES<ul><li>#_LOCATIONLINK - #_LOCATIONADDRESS, #_LOCATIONTOWN</li></ul></li>', 'dbem_bp_events_list_format_footer' => '</ul>', 'dbem_bp_events_list_none_format' => '<p class="em-events-list">' . __('No Events', 'dbem') . '</p>', 'dbem_css_editors' => 1, 'dbem_css_rsvp' => 1, 'dbem_css_rsvpadmin' => 1, 'dbem_css_evlist' => 1, 'dbem_css_search' => 1, 'dbem_css_loclist' => 1, 'dbem_css_catlist' => 1, 'dbem_css_taglist' => 1, 'dbem_cp_events_slug' => 'events', 'dbem_cp_locations_slug' => 'locations', 'dbem_taxonomy_category_slug' => 'events/categories', 'dbem_taxonomy_tag_slug' => 'events/tags', 'dbem_cp_events_template' => '', 'dbem_cp_events_body_class' => '', 'dbem_cp_events_post_class' => '', 'dbem_cp_events_formats' => 1, 'dbem_cp_events_has_archive' => 1, 'dbem_events_default_archive_orderby' => '_start_ts', 'dbem_events_default_archive_order' => 'ASC', 'dbem_events_archive_scope' => 'past', 'dbem_cp_events_archive_formats' => 1, 'dbem_cp_events_excerpt_formats' => 1, 'dbem_cp_events_search_results' => 0, 'dbem_cp_events_custom_fields' => 0, 'dbem_cp_events_comments' => 1, 'dbem_cp_locations_template' => '', 'dbem_cp_locations_body_class' => '', 'dbem_cp_locations_post_class' => '', 'dbem_cp_locations_formats' => 1, 'dbem_cp_locations_has_archive' => 1, 'dbem_locations_default_archive_orderby' => 'title', 'dbem_locations_default_archive_order' => 'ASC', 'dbem_cp_locations_archive_formats' => 1, 'dbem_cp_locations_excerpt_formats' => 1, 'dbem_cp_locations_search_results' => 0, 'dbem_cp_locations_custom_fields' => 0, 'dbem_cp_locations_comments' => 1, 'dbem_cp_categories_formats' => 1, 'dbem_categories_default_archive_orderby' => 'event_start_date,event_start_time,event_name', 'dbem_categories_default_archive_order' => 'ASC', 'dbem_cp_tags_formats' => 1, 'dbem_tags_default_archive_orderby' => 'event_start_date,event_start_time,event_name', 'dbem_tags_default_archive_order' => 'ASC', 'dbem_disable_thumbnails' => false, 'dbem_feedback_reminder' => time());
    //do date js according to locale:
    $locale_code = substr(get_locale(), 0, 2);
    $locale_dates = array('nl' => 'dd/mm/yy', 'af' => 'dd/mm/yy', 'ar' => 'dd/mm/yy', 'az' => 'dd.mm.yy', 'bg' => 'dd.mm.yy', 'bs' => 'dd.mm.yy', 'cs' => 'dd.mm.yy', 'da' => 'dd-mm-yy', 'de' => 'dd.mm.yy', 'el' => 'dd/mm/yy', 'en-GB' => 'dd/mm/yy', 'eo' => 'dd/mm/yy', 'et' => 'dd.mm.yy', 'eu' => 'yy/mm/dd', 'fa' => 'yy/mm/dd', 'fo' => 'dd-mm-yy', 'fr' => 'dd.mm.yy', 'fr' => 'dd/mm/yy', 'he' => 'dd/mm/yy', 'hu' => 'yy.mm.dd.', 'hr' => 'dd.mm.yy.', 'ja' => 'yy/mm/dd', 'ro' => 'dd.mm.yy', 'sk' => 'dd.mm.yy', 'sq' => 'dd.mm.yy', 'sr' => 'dd/mm/yy', 'sr' => 'dd/mm/yy', 'sv' => 'yy-mm-dd', 'ta' => 'dd/mm/yy', 'th' => 'dd/mm/yy', 'vi' => 'dd/mm/yy', 'zh' => 'yy/mm/dd', 'es' => 'dd/mm/yy', 'it' => 'dd/mm/yy');
    if (array_key_exists($locale_code, $locale_dates)) {
        $dbem_options['dbem_date_format_js'] = $locale_dates[$locale_code];
    }
    //add new options
    foreach ($dbem_options as $key => $value) {
        add_option($key, $value);
    }
    if (!get_option('dbem_version')) {
        add_option('dbem_credits', 1);
    }
    if (get_option('dbem_version') != '' && get_option('dbem_version') < 5) {
        //make events, cats and locs pages
        update_option('dbem_cp_events_template_page', 1);
        update_option('dbem_cp_locations_template_page', 1);
        //reset orderby, or convert fields to new fieldnames
        $EM_Event = new EM_Event();
        $orderbyvals = explode(',', get_option('dbem_events_default_orderby'));
        $orderby = array();
        foreach ($orderbyvals as $val) {
            if (array_key_exists('event_' . $val, $EM_Event->fields)) {
                $orderby[] = 'event_' . $val;
            }
        }
        $orderby = count($orderby) > 0 ? implode(',', $orderby) : $dbem_options['dbem_events_default_orderby'];
        update_option('dbem_events_default_orderby', $orderby);
        //Locations and categories weren't controlled in v4, so just reset them
        update_option('dbem_locations_default_orderby', 'location_name');
        update_option('dbem_categories_default_orderby', 'name');
        //Update the slugs if necessary
        $events_page_id = get_option('dbem_events_page');
        $events_page = get_post($events_page_id);
        update_option('dbem_cp_events_slug', $events_page->post_name);
        update_option('dbem_taxonomy_tag_slug', $events_page->post_name . '/tags');
        if (defined('EM_LOCATIONS_SLUG') && EM_LOCATIONS_SLUG != 'locations') {
            update_option('dbem_cp_locations_slug', EM_LOCATIONS_SLUG);
        }
        if (defined('EM_CATEGORIES_SLUG') && EM_CATEGORIES_SLUG != 'categories') {
            update_option('dbem_taxonomy_category_slug', $events_page->post_name . '/' . EM_CATEGORIES_SLUG);
        }
    }
    if (get_option('dbem_version') != '' && get_option('dbem_version') < 5.19) {
        update_option('dbem_event_reapproved_email_subject', get_option('dbem_event_approved_email_subject'));
        update_option('dbem_event_reapproved_email_body', get_option('dbem_event_approved_email_body'));
    }
    if (get_option('dbem_version') != '' && get_option('dbem_version') <= 5.21) {
        //just remove all rsvp cut-off info
        global $wpdb;
        $wpdb->query("UPDATE " . $wpdb->postmeta . " SET meta_value = NULL WHERE meta_key IN ('_event_rsvp_date','_event_rsvp_time') AND post_id IN (SELECT post_id FROM " . EM_EVENTS_TABLE . " WHERE recurrence_id > 0)");
        $wpdb->query("UPDATE " . EM_EVENTS_TABLE . " SET event_rsvp_time = NULL, event_rsvp_date = NULL WHERE recurrence_id > 0");
    }
    if (get_option('dbem_version') != '' && get_option('dbem_version') < 5.364) {
        if (get_option('dbem_cp_events_template_page')) {
            update_option('dbem_cp_events_template', 'page');
            delete_option('dbem_cp_events_template_page');
        }
        if (get_option('dbem_cp_locations_template_page')) {
            update_option('dbem_cp_locations_template', 'page');
            delete_option('dbem_cp_locations_template_page');
        }
        update_option('dbem_events_archive_scope', get_option('dbem_events_page_scope'));
        update_option('em_last_modified', current_time('timestamp', true));
        update_option('dbem_category_event_single_format', get_option('dbem_category_event_list_item_header_format') . get_option('dbem_category_event_list_item_format') . get_option('dbem_category_event_list_item_footer_format'));
        update_option('dbem_category_no_event_message', get_option('dbem_category_event_list_item_header_format') . get_option('dbem_category_no_events_message') . get_option('dbem_category_event_list_item_footer_format'));
        update_option('dbem_location_event_single_format', get_option('dbem_location_event_list_item_header_format') . get_option('dbem_location_event_list_item_format') . get_option('dbem_location_event_list_item_footer_format'));
        update_option('dbem_location_no_event_message', get_option('dbem_location_event_list_item_header_format') . get_option('dbem_location_no_events_message') . get_option('dbem_location_event_list_item_footer_format'));
        update_option('dbem_tag_event_single_format', get_option('dbem_tag_event_list_item_header_format') . get_option('dbem_tag_event_list_item_format') . get_option('dbem_tag_event_list_item_footer_format'));
        update_option('dbem_tag_no_event_message', get_option('dbem_tag_event_list_item_header_format') . get_option('dbem_tag_no_events_message') . get_option('dbem_tag_event_list_item_footer_format'));
    }
    if (get_option('dbem_version') != '' && get_option('dbem_version') < 5.38) {
        update_option('dbem_dates_separator', get_option('dbem_dates_Seperator', get_option('dbem_dates_seperator', ' - ')));
        update_option('dbem_times_separator', get_option('dbem_times_Seperator', get_option('dbem_times_seperator', ' - ')));
        delete_option('dbem_dates_Seperator');
        delete_option('dbem_times_Seperator');
        delete_option('dbem_dates_seperator');
        delete_option('dbem_times_seperator');
    }
    if (get_option('dbem_version') != '' && get_option('dbem_version') < 5.4) {
        //tax rates now saved at booking level, so that alterations to tax rates don't change previous booking prices
        //any past bookings that don't get updated will adhere to these two values when calculating prices
        update_option('dbem_legacy_bookings_tax_auto_add', get_option('dbem_bookings_tax_auto_add'));
        update_option('dbem_legacy_bookings_tax', get_option('dbem_bookings_tax'));
    }
    if (get_option('dbem_version') != '' && get_option('dbem_version') < 5.422) {
        //copy registration email content into new setting
        update_option('dbem_rss_limit', 0);
    }
    if (get_option('dbem_version') != '' && get_option('dbem_version') < 5.4425) {
        //copy registration email content into new setting
        update_option('dbem_css_editors', 0);
        update_option('dbem_css_rsvp', 0);
        update_option('dbem_css_evlist', 0);
        update_option('dbem_css_loclist', 0);
        update_option('dbem_css_rsvpadmin', 0);
        update_option('dbem_css_catlist', 0);
        update_option('dbem_css_taglist', 0);
        if (locate_template('plugins/events-manager/templates/events-search.php')) {
            update_option('dbem_css_search', 0);
            update_option('dbem_search_form_hide_advanced', 0);
        }
        update_option('dbem_events_page_search_form', get_option('dbem_events_page_search'));
        update_option('dbem_search_form_dates_separator', get_option('dbem_dates_separator'));
        delete_option('dbem_events_page_search');
        //avoids the double search form on overriden templates
        update_option('dbem_locations_page_search_form', 0);
        //upgrades shouldn't get extra surprises
    }
    if (get_option('dbem_version') != '' && get_option('dbem_version') < 5.512) {
        update_option('dbem_search_form_geo_units', 0);
        //don't display units search for previous installs
        //correcting the typo
        update_option('dbem_search_form_submit', get_option('dbem_serach_form_submit'));
        //if template isn't overridden, assume it is still being used
        if (!locate_template('plugins/events-manager/templates/events-search.php')) {
            delete_option('dbem_serach_form_submit', 0);
        }
        //ML translation
        if (get_option('dbem_serach_form_submit_ml')) {
            update_option('dbem_search_form_submit_ml', get_option('dbem_serach_form_submit_ml'));
            delete_option('dbem_serach_form_submit_ml');
            //we can assume this isn't used in templates
        }
    }
    if (get_option('dbem_version') != '' && get_option('dbem_version') < 5.54) {
        update_option('dbem_cp_events_excerpt_formats', 0);
        //don't override excerpts in previous installs
        update_option('dbem_cp_locations_excerpt_formats', 0);
    }
    if (get_option('dbem_version') != '' && get_option('dbem_version') < 5.55) {
        //rename email templates sent to admins on new bookings
        update_option('dbem_bookings_contact_email_cancelled_subject', get_option('dbem_contactperson_email_cancelled_subject'));
        update_option('dbem_bookings_contact_email_cancelled_body', get_option('dbem_contactperson_email_cancelled_body'));
        if (get_option('dbem_bookings_approval')) {
            //if approvals ENABLED, we should make the old 'New Booking' email the one for a pending booking
            update_option('dbem_bookings_contact_email_pending_subject', get_option('dbem_bookings_contact_email_subject'));
            update_option('dbem_bookings_contact_email_pending_body', get_option('dbem_bookings_contact_email_body'));
        } else {
            //if approvals DISABLED, we should make the old 'New Booking' email the one for a confirmed booking
            update_option('dbem_bookings_contact_email_confirmed_subject', get_option('dbem_bookings_contact_email_subject'));
            update_option('dbem_bookings_contact_email_confirmed_body', get_option('dbem_bookings_contact_email_body'));
        }
        delete_option('dbem_contactperson_email_cancelled_subject');
        delete_option('dbem_contactperson_email_cancelled_body');
        delete_option('dbem_bookings_contact_email_subject');
        delete_option('dbem_bookings_contact_email_body');
    }
    //set time localization for first time depending on current settings
    if (get_option('dbem_time_24h', 'not set') == 'not set') {
        //Localise vars regardless
        $locale_code = substr(get_locale(), 0, 2);
        if (preg_match('/^en_(?:GB|IE|AU|NZ|ZA|TT|JM)$/', get_locale())) {
            $locale_code = 'en-GB';
        }
        //Set time
        $show24Hours = !preg_match("/en|sk|zh|us|uk/", $locale_code);
        // Setting 12 hours format for those countries using it
        update_option('dbem_time_24h', $show24Hours);
    }
}
Esempio n. 4
0
 function output($format, $target = "html")
 {
     preg_match_all("/(#@?_?[A-Za-z0-9]+)({([^}]+)})?/", $format, $placeholders);
     foreach ($this->get_tickets() as $EM_Ticket) {
         break;
     }
     //Get first ticket for single ticket placeholders
     $output_string = $format;
     $replaces = array();
     foreach ($placeholders[1] as $key => $result) {
         $replace = '';
         $full_result = $placeholders[0][$key];
         switch ($result) {
             case '#_BOOKINGID':
                 $replace = $this->booking_id;
                 break;
             case '#_RESPNAME':
                 //Depreciated
             //Depreciated
             case '#_BOOKINGNAME':
                 $replace = $this->get_person()->get_name();
                 break;
             case '#_RESPEMAIL':
                 //Depreciated
             //Depreciated
             case '#_BOOKINGEMAIL':
                 $replace = $this->get_person()->user_email;
                 break;
             case '#_RESPPHONE':
                 //Depreciated
             //Depreciated
             case '#_BOOKINGPHONE':
                 $replace = $this->get_person()->phone;
                 break;
             case '#_BOOKINGSPACES':
                 $replace = $this->get_spaces();
                 break;
             case '#_BOOKINGLISTURL':
                 $replace = em_get_my_bookings_url();
                 break;
             case '#_COMMENT':
                 //Depreciated
             //Depreciated
             case '#_BOOKINGCOMMENT':
                 $replace = $this->booking_comment;
                 break;
             case '#_BOOKINGPRICEWITHTAX':
                 $replace = em_get_currency_symbol(true) . " " . number_format($this->get_price(false, false, true), 2);
                 break;
             case '#_BOOKINGPRICEWITHOUTTAX':
                 $replace = em_get_currency_symbol(true) . " " . number_format($this->get_price(false, false, false), 2);
                 break;
             case '#_BOOKINGPRICETAX':
                 $replace = em_get_currency_symbol(true) . " " . number_format($this->get_price(false, false, false) * (get_option('dbem_bookings_tax') / 100), 2);
                 break;
             case '#_BOOKINGPRICE':
                 $replace = em_get_currency_symbol(true) . " " . number_format($this->get_price(), 2);
                 break;
             case '#_BOOKINGTICKETNAME':
                 $replace = $EM_Ticket->name;
                 break;
             case '#_BOOKINGTICKETDESCRIPTION':
                 $replace = $EM_Ticket->description;
                 break;
             case '#_BOOKINGTICKETPRICEWITHTAX':
                 $replace = em_get_currency_symbol(true) . " " . number_format($EM_Ticket->get_price(false, true), 2);
                 break;
             case '#_BOOKINGTICKETPRICEWITHOUTTAX':
                 $replace = em_get_currency_symbol(true) . " " . number_format($EM_Ticket->get_price(false, false), 2);
                 break;
             case '#_BOOKINGTICKETTAX':
                 $replace = em_get_currency_symbol(true) . " " . number_format($EM_Ticket->get_price(false, false) * (get_option('dbem_bookings_tax') / 100), 2);
                 break;
             case '#_BOOKINGTICKETPRICE':
                 $replace = em_get_currency_symbol(true) . " " . number_format($EM_Ticket->get_price(), 2);
                 break;
             case '#_BOOKINGTICKETS':
                 ob_start();
                 em_locate_template('emails/bookingtickets.php', true, array('EM_Booking' => $this));
                 $replace = ob_get_clean();
                 break;
             default:
                 $replace = $full_result;
                 break;
         }
         $replaces[$full_result] = apply_filters('em_booking_output_placeholder', $replace, $this, $full_result, $target);
     }
     //sort out replacements so that during replacements shorter placeholders don't overwrite longer varieties.
     krsort($replaces);
     foreach ($replaces as $full_result => $replacement) {
         $output_string = str_replace($full_result, $replacement, $output_string);
     }
     //run event output too, since this is never run from within events and will not infinitely loop
     $output_string = $this->get_event()->output($output_string, $target);
     return apply_filters('em_booking_output', $output_string, $this, $format, $target);
 }
Esempio n. 5
0
 /**
  * @param EM_Booking $EM_Booking
  * @param EM_Event $event
  * @return boolean
  */
 function email()
 {
     global $EM_Mailer;
     //FIXME ticket logic needed
     $EM_Event = $this->get_event();
     //We NEED event details here.
     //Make sure event matches booking, and that booking used to be approved.
     if (!($this->status == 0 && $this->previous_status > 0) || $this->previous_status == 4) {
         $contact_id = $EM_Event->owner != "" ? $EM_Event->owner : get_option('dbem_default_contact_person');
         $contact_subject = get_option('dbem_bookings_contact_email_subject');
         $contact_body = get_option('dbem_bookings_contact_email_body');
         if (get_option('dbem_bookings_approval') == 0 && $this->status < 2 || $this->status == 1) {
             $booker_subject = get_option('dbem_bookings_email_confirmed_subject');
             $booker_body = get_option('dbem_bookings_email_confirmed_body');
         } elseif ($this->status == 0 || $this->previous_status == 4) {
             $booker_subject = get_option('dbem_bookings_email_pending_subject');
             $booker_body = get_option('dbem_bookings_email_pending_body');
         } elseif ($this->status == 2) {
             $booker_subject = get_option('dbem_bookings_email_rejected_subject');
             $booker_body = get_option('dbem_bookings_email_rejected_body');
         } elseif ($this->status == 3) {
             $booker_subject = get_option('dbem_bookings_email_cancelled_subject');
             $booker_body = get_option('dbem_bookings_email_cancelled_body');
             $contact_subject = get_option('dbem_contactperson_email_cancelled_subject');
             $contact_body = get_option('dbem_contactperson_email_cancelled_body');
         }
         // email specific placeholders
         $placeholders = array('#_RESPNAME' => '#_BOOKINGNAME', '#_RESPEMAIL' => '#_BOOKINGEMAIL', '#_RESPPHONE' => '#_BOOKINGPHONE', '#_COMMENT' => '#_BOOKINGCOMMENT', '#_RESERVEDSPACES' => '#_BOOKEDSPACES', '#_BOOKINGNAME' => $this->person->display_name, '#_BOOKINGEMAIL' => $this->person->user_email, '#_BOOKINGPHONE' => $this->person->phone, '#_BOOKINGSPACES' => $this->get_spaces(), '#_BOOKINGLISTURL' => em_get_my_bookings_url(), '#_BOOKINGCOMMENT' => $this->comment);
         foreach ($placeholders as $key => $value) {
             $contact_subject = str_replace($key, $value, $contact_subject);
             $contact_body = str_replace($key, $value, $contact_body);
             $booker_subject = str_replace($key, $value, $booker_subject);
             $booker_body = str_replace($key, $value, $booker_body);
         }
         $booker_subject = $EM_Event->output($booker_subject, 'email');
         $booker_body = $EM_Event->output($booker_body, 'email');
         //Send to the person booking
         if (!$this->email_send($booker_subject, $booker_body, $this->person->user_email)) {
             return false;
         }
         //Send admin/contact emails
         if ((get_option('dbem_bookings_approval') == 0 || $this->status == 0 || $this->status == 3) && (get_option('dbem_bookings_contact_email') == 1 || get_option('dbem_bookings_notify_admin') != '')) {
             //Only gets sent if this is a pending booking, unless approvals are disabled.
             $contact_subject = $EM_Event->output($contact_subject, 'email');
             $contact_body = $EM_Event->output($contact_body, 'email');
             if (get_option('dbem_bookings_contact_email') == 1) {
                 if (!$this->email_send($contact_subject, $contact_body, $EM_Event->contact->user_email) && current_user_can('activate_plugins')) {
                     $this->errors[] = __('Confirmation email could not be sent to contact person. Registrant should have gotten their email (only admin see this warning).', 'dbem');
                     return false;
                 }
             }
             if (get_option('dbem_bookings_notify_admin') != '' && preg_match('/^[_\\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\\.)+[a-z]{2,3}$/', get_option('dbem_bookings_notify_admin'))) {
                 if (!$this->email_send($contact_subject, $contact_body, get_option('dbem_bookings_notify_admin'))) {
                     $this->errors[] = __('Confirmation email could not be sent to admin. Registrant should have gotten their email (only admin see this warning).', 'dbem');
                     return false;
                 }
             }
         }
         return true;
     }
     return false;
     //TODO need error checking for booking mail send
 }
Esempio n. 6
0
for ($i = 1; $i <= 10; $i++) {
    $booking_spaces = !empty($_POST['booking_spaces']) && $_POST['booking_spaces'] == $i ? 'selected="selected"' : '';
    array_push($booked_places_options, "<option value='{$i}' {$booking_spaces}>{$i}</option>");
}
$EM_Tickets = $EM_Event->get_bookings()->get_tickets();
?>
<div id="em-booking">
	<a name="em-booking"></a>
	<?php 
// We are firstly checking if the user has already booked a ticket at this event, if so offer a link to view their bookings.
?>
	<?php 
if ($EM_Event->get_bookings()->has_booking()) {
    ?>
		<p><?php 
    echo sprintf(__('You are currently attending this event. <a href="%s">Manage my bookings</a>', 'dbem'), em_get_my_bookings_url());
    ?>
</p>
	<?php 
} elseif ($EM_Event->start < current_time('timestamp')) {
    ?>
		<p><?php 
    _e('Bookings are closed for this event.', 'dbem');
    ?>
</p>
	<?php 
} else {
    ?>
		<?php 
    echo $EM_Notices;
    ?>
Esempio n. 7
0
for ($i = 1; $i <= 10; $i++) {
    $booking_spaces = !empty($_POST['booking_spaces']) && $_POST['booking_spaces'] == $i ? 'selected="selected"' : '';
    array_push($booked_places_options, "<option value='{$i}' {$booking_spaces}>{$i}</option>");
}
$EM_Tickets = $EM_Event->get_bookings()->get_tickets();
?>
<div id="em-booking">
	<a name="em-booking"></a>
	<?php 
// We are firstly checking if the user has already booked a ticket at this event, if so offer a link to view their bookings.
?>
	<?php 
if ($EM_Booking = $EM_Event->get_bookings()->has_booking()) {
    ?>
		<p><?php 
    echo apply_filters('em_my_bookings_booked_message', sprintf(__('You are currently attending this event. <a href="%s">Manage my bookings</a>', 'dbem'), em_get_my_bookings_url()), $EM_Booking);
    ?>
</p>
	<?php 
} elseif (!$EM_Event->rsvp) {
    ?>
		<p><?php 
    _e('Online bookings are not available for this event.', 'dbem');
    ?>
</p>
	<?php 
} elseif ($EM_Event->start < current_time('timestamp')) {
    ?>
		<p><?php 
    _e('Bookings are closed for this event.', 'dbem');
    ?>