get_schedules( 0, 'default' ); $settings['schedule'] = empty( $schedule_record['schedule'] ) ? (object) array() : $schedule_record['schedule']; $settings['custom'] = $schedule_record['custom']; $settings['holiday'] = $schedule_record['holiday']; $settings = apply_filters( 'booktics_settings', $settings ); if ( ! $key ) { return $settings; } if ( isset( $settings[ $key ] ) && $settings[ $key ] ) { return $settings[ $key ]; } return $default; } /** * Update settings * * @param string $key Settings key * @param mixed $data Settings data * * @return void */ public static function update( $key, $data = array() ) { if ( is_array( $key ) ) { self::update_multiple_data( $key ); } else { self::update_single_data( $key, $data ); } } /** * Update multiple settings data * * @param array $options List of settings data */ private static function update_multiple_data( $options ) { $settings = self::get(); foreach ( $options as $name => $value ) { $settings[ $name ] = $options[ $name ]; } return update_option( self::$option_name, $settings ); } /** * Update single data * * @param string $key Settings key * @param mixed $data Settings data */ private static function update_single_data( $key, $data ) { $settings = self::get(); $settings[ $key ] = $data; return update_option( self::$option_name, $settings ); } /** * Get default settings * * @return array List of default settings */ private static function get_default_settings(): array { $defaults = array( 'currency' => '', 'date_format' => '', 'time_format' => '', 'schedule' => array( 'mon' => array( array( 'start_time' => '9:00 AM', 'end_time' => '6:00 PM', ), ), 'tue' => array( array( 'start_time' => '9:00 AM', 'end_time' => '6:00 PM', ), ), 'wed' => array( array( 'start_time' => '9:00 AM', 'end_time' => '6:00 PM', ), ), 'thurs' => array( array( 'start_time' => '9:00 AM', 'end_time' => '6:00 PM', ), ), 'fri' => array( array( 'start_time' => '9:00 AM', 'end_time' => '6:00 PM', ), ), ), 'holiday' => array(), 'custom' => array(), 'allow_customer_as_wp_user' => false, 'pending_reservation_timeout' => 10, // WooCommerce checkout is stripped down by default: the booking form // already collected the customer, so billing fields would ask twice. 'wc_show_billing_fields' => false, 'wc_thankyou_page' => 'woocommerce', ); return apply_filters( 'booktics_default_settings', $defaults ); } }