/** * Creates the meta box for managing structured data. * * This meta box shows options to managa structued data to generate for this event * if the option to generate structured data is enabled. * * @param object $post */ public static function btb_event_structured_data_box($post) { $event = btb_get_event($post->ID); wp_nonce_field('btb_save_event_structured_data_box_data', 'btb_event_structured_data_box_nonce'); $structtype = !empty($event->struct_data_type) ? $event->struct_data_type : get_option('btb_struct_data_default_type', 'event'); $structTypeRow = new BTCTableRow(); $structTypeRow->add_content(BTCWPAdminInputRadios::create('structtype', 'btb_struct_data_type', __('Data type', 'bt-booking'), array('disabled' => __('Disabled', 'bt-booking'), 'product' => __('Product', 'bt-booking'), 'event' => __('Event', 'bt-booking')), $structtype)); $eventTypeChooserRow = new BTCTableRow(array(), array('id' => 'eventTypeRow', 'hide' => $structtype != 'event')); $eventTypeChooserRow->add_content(BTCWPAdminInputSelect::create('btb_event_type_field', __('Event type', 'bt-booking'), !empty($event->event_type) ? $event->event_type : get_option('btb_struct_data_event_type'), btb_get_event_types())); $venuePages = get_posts(array('post_type' => 'btb_venue', 'orderby' => 'title')); $venueOptions = array('' => __('Nothing selected', 'bt-booking')); if (!empty($venuePages)) { foreach ($venuePages as $vKey => $vPage) { $venueOptions[$vPage->ID] = $vPage->post_title; } } $venueChooserRow = new BTCTableRow(array(), array('id' => 'venueRow', 'hide' => $structtype != 'event')); $venueChooserRow->add_content(BTCWPAdminInputSelect::create('post_parent', __('Venue', 'bt-booking'), $event->venue, $venueOptions)); $table = new BTCTable(array('htmlClass' => 'form-table'), new BTCTableBody(array(), array($structTypeRow, $eventTypeChooserRow, $venueChooserRow))); $table->render(); }
/** * Renders the shortcode output for the default style. * * @param array $atts The shortcode attributes. See class description for explanation. * @param BTB_Booking $booking The booking object. * @param BTB_Time $time The time object. * @param BTB_Event $event The event object. */ private static function btb_checkout_overview_bs3($atts, $booking, $time, $event) { $slots = $booking->booked_slots; $price = $booking->price; $total = $slots * $price; $ret = '<div id="btb_checkout_table">'; // START CONTAINER if (!empty($atts['headline'])) { $ret .= '<h3>' . $atts['headline'] . '</h3>'; } // START CREATING BOOKING TABLE FULL $headerRow = new BTCTableRow(); $headerRow->add_content(new BTCTableData(__('Event', 'bt-booking'), array(), true)); $headerRow->add_content(new BTCTableData(__('Date', 'bt-booking'), array(), true)); $headerRow->add_content(new BTCTableData(__('Single price', 'bt-booking'), array(), true)); $headerRow->add_content(new BTCTableData(__('Slots', 'bt-booking'), array(), true)); $headerRow->add_content(new BTCTableData(__('Total price', 'bt-booking'), array(), true)); $header = new BTCTableHead(array(), $headerRow); $contentRow = new BTCTableRow(); $contentRow->add_content(new BTCTableData($event->post_title)); $contentRow->add_content(new BTCTableData($time->post_title)); $contentRow->add_content(new BTCTableData(sprintf("%s %s", get_option('btb_currency', '€'), number_format($price, 2, ',', '.')))); $contentRow->add_content(new BTCTableData($slots)); $contentRow->add_content(new BTCTableData(sprintf("%s %s", get_option('btb_currency', '€'), number_format($total, 2, ',', '.')))); $body = new BTCTableBody(array(), array($contentRow)); $bookingTableFull = new BTCTable(array('htmlClasses' => 'table table-responsive hidden-xs hidden-sm btb_checkout_full_table'), $body, $header); $ret .= $bookingTableFull->render(false); // END CREATING BOOKING TABLE FULL // START CREATING BOOKING TABLE SMALL $row1 = new BTCTableRow(); $row1->add_content(new BTCTableData(__('Event', 'bt-booking'), array('scope' => 'row'), true)); $row1->add_content(new BTCTableData($event->post_title)); $row2 = new BTCTableRow(); $row2->add_content(new BTCTableData(__('Date', 'bt-booking'), array('scope' => 'row'), true)); $row2->add_content(new BTCTableData($time->post_title)); $row3 = new BTCTableRow(); $row3->add_content(new BTCTableData(__('Single price', 'bt-booking'), array('scope' => 'row'), true)); $row3->add_content(new BTCTableData(sprintf("%s %s", get_option('btb_currency', '€'), number_format($price, 2, ',', '.')))); $row4 = new BTCTableRow(); $row4->add_content(new BTCTableData(__('Slots', 'bt-booking'), array('scope' => 'row'), true)); $row4->add_content(new BTCTableData($slots)); $row5 = new BTCTableRow(); $row5->add_content(new BTCTableData(__('Total price', 'bt-booking'), array('scope' => 'row'), true)); $row5->add_content(new BTCTableData(sprintf("%s %s", get_option('btb_currency', '€'), number_format($total, 2, ',', '.')))); $smallBody = new BTCTableBody(array(), array($row1, $row2, $row3, $row4, $row5)); $bookingTableSmall = new BTCTable(array('htmlClasses' => 'table table-responsive hidden-md hidden-lg btb_checkout_small_table'), $smallBody); $ret .= $bookingTableSmall->render(false); // END CREATING BOOKING TABLE SMALL $ret .= '</div>'; // END CONTAINER return $ret; }
/** * Provides the meta box for editinig the venue address. * * The box provides input fields for the addres and map location of the venue. * * @param object $post */ public static function btb_venue_address_box($post) { $venue = btb_get_venue($post->ID); wp_localize_script('btb-edit-venue-script', 'BTBooking', array('lat' => $venue->latitude, 'lng' => $venue->longitude, 'queryErrorMsg' => __('When querying the data an error has occurred.', 'bt-booking'), 'nothingFoundMsg' => __('For the specified address no place could be found.', 'bt-booking'))); wp_enqueue_script('btb-edit-venue-script'); wp_nonce_field('btb_save_venue_address_box_data', 'btb_venue_address_box_nonce'); // Creating first row, showing street name and house number $row1 = new BTCTableRow(); $row1->add_content(BTCWPAdminInputText::create('btb_address_street', esc_html__('Street', 'bt-booking'), $venue->street)); $row1->add_content(BTCWPAdminInputText::create('btb_address_number', esc_html__('Number', 'bt-booking'), $venue->house_number)); // Creating second row, showing postal code and city $row2 = new BTCTableRow(); $row2->add_content(BTCWPAdminInputText::create('btb_address_zip', esc_html__('Postal code', 'bt-booking'), $venue->postal_code)); $row2->add_content(BTCWPAdminInputText::create('btb_address_city', esc_html__('City', 'bt-booking'), $venue->city)); // Creating third row, showing state/region and country $row3 = new BTCTableRow(); $row3->add_content(BTCWPAdminInputText::create('btb_address_region', esc_html__('State/Region', 'bt-booking'), $venue->region)); $row3->add_content(BTCWPAdminInputSelect::create('btb_address_country', esc_html__('Country', 'bt-booking'), $venue->country, BTBookingCountries::get_countries())); // Creating fourth row, showing switch for using map coordinates $row4 = new BTCTableRow(); $row4->add_content(BTCWPAdminInputCheckbox::create('btb_use_coordinates', esc_html__('Use map coordinates', 'bt-booking'), $venue->use_map_coords)); $row4->add_content(new BTCTableData()); $saButtonAttrs = array('id' => 'search_address', 'type' => 'button', 'htmlClasses' => 'button button-small'); if (!$venue->use_map_coords) { $saButtonAttrs["style"] = "display:none"; } $row4->add_content(new BTCTableData(new BTCFormButton($saButtonAttrs, esc_html__('Search address', 'bt-booking')))); $table = new BTCTable(array('htmlClasses' => 'form-table'), new BTCTableBody(array(), array($row1, $row2, $row3, $row4))); $table->render(); $loc_table = new BTCTable(array('id' => 'locs_table', 'htmlClasses' => 'form-table', 'style' => 'display:none;')); $loc_head_row = new BTCTableRow(); $thstyle = array('padding' => '15px 10px'); $loc_head_row->add_content(new BTCTableData(esc_html__('Choose', 'bt-booking'), array('style' => $thstyle), true)); $loc_head_row->add_content(new BTCTableData(esc_html__('Street & No.', 'bt-booking'), array('style' => $thstyle), true)); $loc_head_row->add_content(new BTCTableData(esc_html__('City', 'bt-booking'), array('style' => $thstyle), true)); $loc_head_row->add_content(new BTCTableData(esc_html__('ZIP', 'bt-booking'), array('style' => $thstyle), true)); $loc_head_row->add_content(new BTCTableData(esc_html__('State', 'bt-booking'), array('style' => $thstyle), true)); $loc_head = new BTCTableHead(array(), $loc_head_row); $loc_body = new BTCTableBody(array('id' => 'locs_body')); $loc_table->head = $loc_head; $loc_table->body = $loc_body; $loc_table->render(); ?> <input type="hidden" id="btb_address_lat" name="btb_address_lat" value="<?php echo $venue->latitude; ?> "> <input type="hidden" id="btb_address_lon" name="btb_address_lon" value="<?php echo $venue->longitude; ?> "> <div id="mapMessages"> </div> <div id="venueMap" style="height:300px;<?php echo $venue->use_map_coords ? '' : ' display:none'; ?> "> </div> <?php }
/** * Provides the meta box showing the customers identity data. * * @param object $post */ public static function btb_booking_address_box($post) { $booking = btb_get_booking($post->ID); wp_nonce_field('btb_save_booking_address_box_data', 'btb_booking_addres_box_nonce'); $companyrow = new BTCTableRow(); $companyrow->add_content(BTCWPAdminInputSelect::create('btb_title', __('Form of address', 'bt-booking'), $booking->title, array('mr' => __('Mr.', 'bt-booking'), 'mrs' => __('Mrs.', 'bt-booking')), true)); $companyrow->add_content(BTCWPAdminInputText::create('btb_company', __('Company', 'bt-booking'), $booking->company, true)); $namerow = new BTCTableRow(); $namerow->add_content(BTCWPAdminInputText::create('btb_first_name', __('First name', 'bt-booking'), $booking->first_name, true)); $namerow->add_content(BTCWPAdminInputText::create('btb_last_name', __('Last name', 'bt-booking'), $booking->last_name, true)); $address = get_post_meta($post->ID, 'btb_address'); $a = $address[0]; $addressrow = new BTCTableRow(); $addressrow->add_content(BTCWPAdminInputText::create('btb_address', __('Address', 'bt-booking'), $booking->address, true)); $addressrow->add_content(BTCWPAdminInputText::create('btb_address2', __('Additional address', 'bt-booking'), $booking->address2, true)); $cityrow = new BTCTableRow(); $cityrow->add_content(BTCWPAdminInputText::create('btb_city', __('City', 'bt-booking'), $booking->city, true)); $cityrow->add_content(BTCWPAdminInputText::create('btb_zip', __('Postal code', 'bt-booking'), $booking->zip, true)); $countryrow = new BTCTableRow(); $countryrow->add_content(BTCWPAdminInputSelect::create('btb_country', __('Country', 'bt-booking'), $booking->country, BTBookingCountries::get_countries(), true)); $emailrow = new BTCTableRow(); $emailrow->add_content(BTCWPAdminInputText::create('btb_mail', __('E-mail address', 'bt-booking'), $booking->email, true)); $emailrow->add_content(BTCWPAdminInputText::create('btb_phone', __('Phone number', 'bt-booking'), $booking->phone, true)); $table = new BTCTable(array('htmlClasses' => 'form-table'), new BTCTableBody(array(), array($companyrow, $namerow, $addressrow, $cityrow, $countryrow, $emailrow))); $table->render(); }