| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- <?php
- class Booked_WC_Custom_Fields {
- private function __construct() {
- if (
- (
- is_admin()
- && isset($_GET['page'])
- && $_GET['page'] !== 'booked-setting'
- ) ||
- (
- !empty($_POST['action'])
- && $_POST['action']==='booked_admin_load_full_customfields'
- )
- ) {
- $this->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);
- }
- }
|