/** * Gets the default form structure for creating a new form * @return array */ public static function get_form_template() { if (empty(self::$form_template)) { self::$form_template = apply_filters('em_booking_form_get_form_template', array('name' => array('label' => __emp('Name', 'dbem'), 'type' => 'name', 'fieldid' => 'user_name', 'required' => 1), 'user_email' => array('label' => __emp('Email', 'dbem'), 'type' => 'user_email', 'fieldid' => 'user_email', 'required' => 1), 'dbem_address' => array('label' => __emp('Address', 'dbem'), 'type' => 'dbem_address', 'fieldid' => 'dbem_address', 'required' => 1), 'dbem_city' => array('label' => __emp('City/Town', 'dbem'), 'type' => 'dbem_city', 'fieldid' => 'dbem_city', 'required' => 1), 'dbem_state' => array('label' => __emp('State/County', 'dbem'), 'type' => 'dbem_state', 'fieldid' => 'dbem_state', 'required' => 1), 'dbem_zip' => array('label' => __('Zip/Post Code', 'em-pro'), 'type' => 'dbem_zip', 'fieldid' => 'dbem_zip', 'required' => 1), 'dbem_country' => array('label' => __emp('Country', 'dbem'), 'type' => 'dbem_country', 'fieldid' => 'dbem_country', 'required' => 1), 'dbem_phone' => array('label' => __emp('Phone', 'dbem'), 'type' => 'dbem_phone', 'fieldid' => 'dbem_phone'), 'dbem_fax' => array('label' => __('Fax', 'em-pro'), 'type' => 'dbem_fax', 'fieldid' => 'dbem_fax'), 'booking_comment' => array('label' => __emp('Comment', 'dbem'), 'type' => 'textarea', 'fieldid' => 'booking_comment'))); } return self::$form_template; }
function init() { //Menu/admin page add_action('admin_init', array('EM_Booking_Form', 'admin_page_actions'), 10); add_action('emp_forms_admin_page', array('EM_Booking_Form', 'admin_page'), 10); //Booking admin and exports add_action('em_bookings_single_custom', array('EM_Booking_Form', 'em_bookings_single_custom'), 1, 1); //show booking form and ticket summary //Booking Tables UI add_filter('em_bookings_table_rows_col', array('EM_Booking_Form', 'em_bookings_table_rows_col'), 10, 5); add_filter('em_bookings_table_cols_template', array('EM_Booking_Form', 'em_bookings_table_cols_template'), 10, 2); // Actions and Filters add_action('em_booking_form_custom', array('EM_Booking_Form', 'booking_form'), 10, 1); //handle the booking form template //Booking interception $booking_button_request = !empty($_REQUEST['action']) && $_REQUEST['action'] == 'booking_add_one' && is_user_logged_in(); //in order to disable the form if booking button is pressed if (!$booking_button_request) { if (get_option('dbem_multiple_bookings')) { //Mulitiple Booking Mode add_filter('em_multiple_booking_get_post', array('EM_Booking_Form', 'em_booking_get_post'), 10, 2); //get post data + validate add_filter('em_multiple_booking_validate', array('EM_Booking_Form', 'em_booking_validate'), 10, 2); //validate object add_filter('em_multiple_booking_save', array('EM_Booking_Form', 'em_booking_save'), 1, 2); //add new user fields to current EM_Person instance for use on this run } else { //Normal bookings add_filter('em_booking_save', array('EM_Booking_Form', 'em_booking_save'), 1, 2); //add new user fields to current EM_Person instance for use on this run } add_filter('em_booking_get_post', array('EM_Booking_Form', 'em_booking_get_post'), 10, 2); //get post data + validate add_filter('em_booking_validate', array('EM_Booking_Form', 'em_booking_validate'), 10, 2); //validate object add_action('em_bookings_added', array('EM_Booking_Form', 'em_bookings_added'), 10, 1); //add extra use reg data add_filter('em_register_new_user_pre', array('EM_Booking_Form', 'em_register_new_user_pre'), 10, 1); //add extra use reg data } //Placeholder overriding add_filter('em_booking_output_placeholder', array('EM_Booking_Form', 'placeholders'), 1, 3); //for emails //custom form chooser in event bookings meta box: add_action('em_events_admin_bookings_footer', array('EM_Booking_Form', 'event_bookings_meta_box'), 20, 1); add_filter('em_event_save_meta', array('EM_Booking_Form', 'em_event_save_meta'), 10, 2); self::$form_template = array('name' => array('label' => __('Name', 'dbem'), 'type' => 'name', 'fieldid' => 'user_name', 'required' => 1), 'user_email' => array('label' => __('Email', 'dbem'), 'type' => 'user_email', 'fieldid' => 'user_email', 'required' => 1), 'dbem_address' => array('label' => __('Address', 'dbem'), 'type' => 'dbem_address', 'fieldid' => 'dbem_address', 'required' => 1), 'dbem_city' => array('label' => __('City', 'dbem'), 'type' => 'dbem_city', 'fieldid' => 'dbem_city', 'required' => 1), 'dbem_state' => array('label' => __('State/County', 'dbem'), 'type' => 'dbem_state', 'fieldid' => 'dbem_state', 'required' => 1), 'dbem_zip' => array('label' => __('Zip/Post Code', 'dbem'), 'type' => 'dbem_zip', 'fieldid' => 'dbem_zip', 'required' => 1), 'dbem_country' => array('label' => __('Country', 'dbem'), 'type' => 'dbem_country', 'fieldid' => 'dbem_country', 'required' => 1), 'dbem_phone' => array('label' => __('Phone', 'dbem'), 'type' => 'dbem_phone', 'fieldid' => 'dbem_phone'), 'dbem_fax' => array('label' => __('Fax', 'dbem'), 'type' => 'dbem_fax', 'fieldid' => 'dbem_fax'), 'textarea' => array('label' => __('Comment', 'dbem'), 'type' => 'textarea', 'fieldid' => 'booking_comment')); }