admin_hooks(); } else { $this->front_end_hooks(); } } protected function admin_hooks() { // add Paid Service Selector button add_action('booked_custom_fields_add_buttons', array($this, 'booked_custom_fields_add_buttons')); // add Paid Service Selector button add_action('booked_custom_fields_add_template', array($this, 'booked_custom_fields_add_template')); // add prepopulated template with options add_filter('booked_custom_fields_add_template_main', array($this, 'booked_custom_fields_add_template_main'), 10, 7); add_filter('booked_custom_fields_add_template_subs', array($this, 'booked_custom_fields_add_template_subs'), 10, 4); // close the html if the last field has type booked appointment add_action('booked_custom_fields_add_template_subs_end', array($this, 'booked_custom_fields_add_template_subs_end'), 10, 2); } protected function front_end_hooks() { // add prepopulated template with options add_filter('booked_custom_fields_add_template_main', array($this, '_booked_custom_fields_add_template_main'), 10, 8); add_filter('booked_custom_fields_add_template_subs', array($this, '_booked_custom_fields_add_template_subs'), 10, 7); // close the html if the last field has type booked appointment add_action('booked_custom_fields_add_template_subs_end', array($this, '_booked_custom_fields_add_template_subs_end'), 10, 2); } public static function setup() { return new self(); } # ------------------ # Administration # ------------------ public function booked_custom_fields_add_buttons() { Booked_WC_Fragments::load('booked-administration-fields/buttons'); } public function booked_custom_fields_add_template() { Booked_WC_Fragments::load('booked-administration-fields/templates'); } public function booked_custom_fields_add_template_subs($field_type='', $name='', $value='', $look_for_subs='') { $reset_subs = true; if ( $field_type==='single-paid-service' ) { $reset_subs = false; $template_path = Booked_WC_Fragments::get_path('booked-administration-fields/templates-subs'); include($template_path); } else if ( $look_for_subs==='paid-service' ) { $this->booked_custom_fields_add_template_subs_end($field_type, $look_for_subs); } return $reset_subs; } public function booked_custom_fields_add_template_main($default_return=false, $field_type='', $name='', $value='', $is_required=false, $look_for_subs='', $numbers_only=0) { $template_path = Booked_WC_Fragments::get_path('booked-administration-fields/templates-main'); $look_for_subs = include($template_path); // echo + return return $look_for_subs; } public function booked_custom_fields_add_template_subs_end($field_type='', $look_for_subs='') { $template_path = Booked_WC_Fragments::get_path('booked-administration-fields/templates-subs-end'); include($template_path); } # ------------------ # Front End # ------------------ public function _booked_custom_fields_add_template_subs($field_type='', $name='', $value='', $is_required=false, $look_for_subs='', $numbers_only=0, $data_attributes='') { $reset_subs = true; if ( $field_type==='single-paid-service' ): $reset_subs = false; $template_path = Booked_WC_Fragments::get_path('booked-frontend-fields/templates-subs'); include($template_path); elseif ( $look_for_subs==='paid-service' ): $this->_booked_custom_fields_add_template_subs_end($field_type, $look_for_subs); endif; return $reset_subs; } public function _booked_custom_fields_add_template_main($default_return=false, $field_type='', $name='', $value='', $is_required=false, $look_for_subs='', $numbers_only=0, $data_attributes='') { if ( $field_type==='paid-service-label' ): $template_path = Booked_WC_Fragments::get_path('booked-frontend-fields/templates-main'); include($template_path); $look_for_subs = 'paid-service'; endif; return $look_for_subs; } public function _booked_custom_fields_add_template_subs_end($field_type='', $look_for_subs='') { $template_path = Booked_WC_Fragments::get_path('booked-frontend-fields/templates-subs-end'); include($template_path); } }