240, 'width' => 240, 'flex-height' => true, ) ); add_image_size('appointment-booking-homepage-thumb',240,145,true); register_nav_menus( array( 'primary' => __( 'Primary Menu', 'appointment-booking' ), ) ); add_theme_support( 'custom-background', array( 'default-color' => 'ffffff' ) ); //selective refresh for sidebar and widgets add_theme_support( 'customize-selective-refresh-widgets' ); /* * Enable support for Post Formats. * * See: https://codex.wordpress.org/Post_Formats */ add_theme_support( 'post-formats', array('image','video','gallery','audio',) ); /* * This theme styles the visual editor to resemble the theme style, * specifically font, colors, icons, and column width. */ add_editor_style( array( 'css/editor-style.css', appointment_booking_font_url() ) ); } endif; // Theme Activation Notice global $pagenow; if ( is_admin() && ('themes.php' == $pagenow) && isset( $_GET['activated'] ) ) { add_action( 'admin_notices', 'appointment_booking_activation_notice' ); } add_action( 'after_setup_theme', 'appointment_booking_setup' ); // Notice after Theme Activation function appointment_booking_activation_notice() { echo '
'; echo '

'. esc_html__( 'Thank you for choosing Appointment Booking Theme. Would like to have you on our Welcome page so that you can reap all the benefits of our Appointment Booking Theme.', 'appointment-booking' ) .'

'; echo '

'. esc_html__( 'GET STARTED', 'appointment-booking' ) .'

'; echo '
'; } /* Theme Widgets Setup */ function appointment_booking_widgets_init() { register_sidebar( array( 'name' => __( 'Blog Sidebar', 'appointment-booking' ), 'description' => __( 'Appears on blog page sidebar', 'appointment-booking' ), 'id' => 'sidebar-1', 'before_widget' => '', 'before_title' => '

', 'after_title' => '

', ) ); register_sidebar( array( 'name' => __( 'Page Sidebar', 'appointment-booking' ), 'description' => __( 'Appears on page sidebar', 'appointment-booking' ), 'id' => 'sidebar-2', 'before_widget' => '', 'before_title' => '

', 'after_title' => '

', ) ); register_sidebar( array( 'name' => __( 'Sidebar 3', 'appointment-booking' ), 'description' => __( 'Appears on page sidebar', 'appointment-booking' ), 'id' => 'sidebar-3', 'before_widget' => '', 'before_title' => '

', 'after_title' => '

', ) ); register_sidebar( array( 'name' => __( 'Footer Navigation 1', 'appointment-booking' ), 'description' => __( 'Appears on footer 1', 'appointment-booking' ), 'id' => 'footer-1', 'before_widget' => '', 'before_title' => '

', 'after_title' => '

', ) ); register_sidebar( array( 'name' => __( 'Footer Navigation 2', 'appointment-booking' ), 'description' => __( 'Appears on footer 2', 'appointment-booking' ), 'id' => 'footer-2', 'before_widget' => '', 'before_title' => '

', 'after_title' => '

', ) ); register_sidebar( array( 'name' => __( 'Footer Navigation 3', 'appointment-booking' ), 'description' => __( 'Appears on footer 3', 'appointment-booking' ), 'id' => 'footer-3', 'before_widget' => '', 'before_title' => '

', 'after_title' => '

', ) ); register_sidebar( array( 'name' => __( 'Footer Navigation 4', 'appointment-booking' ), 'description' => __( 'Appears on footer 4', 'appointment-booking' ), 'id' => 'footer-4', 'before_widget' => '', 'before_title' => '

', 'after_title' => '

', ) ); register_sidebar( array( 'name' => __( 'Shop Page Sidebar', 'appointment-booking' ), 'description' => __( 'Appears on shop page', 'appointment-booking' ), 'id' => 'woocommerce-shop-sidebar', 'before_widget' => '', 'before_title' => '

', 'after_title' => '

', ) ); register_sidebar( array( 'name' => __( 'Single Product Sidebar', 'appointment-booking' ), 'description' => __( 'Appears on single product page', 'appointment-booking' ), 'id' => 'woocommerce-single-sidebar', 'before_widget' => '', 'before_title' => '

', 'after_title' => '

', ) ); register_sidebar( array( 'name' => __( 'Social Media', 'appointment-booking' ), 'description' => __( 'Appears on top header', 'appointment-booking' ), 'id' => 'social-links', 'before_widget' => '', 'before_title' => '

', 'after_title' => '

', ) ); } add_action( 'widgets_init', 'appointment_booking_widgets_init' ); /* Theme Font URL */ function appointment_booking_font_url() { $font_url = ''; $font_family = array(); $font_family[] = 'Jost:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i'; $font_family[] = 'ABeeZee:400,400i'; $font_family[] = 'Trirong:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i'; $font_family[] = 'ZCOOL XiaoWei'; $font_family[] = 'Poppins:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i'; $font_family[] = 'Heebo:100,300,400,500,700,800,900'; $font_family[] = 'Saira:100,200,300,400,500,600,700,800,900'; $font_family[] = 'Krub:200,200i,300,300i,400,400i,500,500i,600,600i,700,700i'; $font_family[] = 'PT Sans:300,400,600,700,800,900'; $font_family[] = 'Roboto:100,100i,300,300i,400,400i,500,500i,700,700i,900,900i'; $font_family[] = 'Roboto Condensed:400,700'; $font_family[] = 'Open Sans:300,300i,400,400i,600,600i,700,700i,800,800i'; $font_family[] = 'Fira Sans:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i'; $font_family[] = 'Overpass'; $font_family[] = 'Staatliches'; $font_family[] = 'Montserrat:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i'; $font_family[] = 'Playball:300,400,600,700,800,900'; $font_family[] = 'Alegreya:300,400,600,700,800,900'; $font_family[] = 'Julius Sans One'; $font_family[] = 'Arsenal'; $font_family[] = 'Slabo'; $font_family[] = 'Lato'; $font_family[] = 'Overpass Mono'; $font_family[] = 'Source Sans Pro'; $font_family[] = 'Raleway:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,800;0,900;1,100;1,200;1,400;1,500;1,600;1,700;1,800;1,900'; $font_family[] = 'Merriweather'; $font_family[] = 'Droid Sans'; $font_family[] = 'Rubik'; $font_family[] = 'Lora'; $font_family[] = 'Ubuntu'; $font_family[] = 'Cabin'; $font_family[] = 'Arimo'; $font_family[] = 'Playfair Display'; $font_family[] = 'Quicksand'; $font_family[] = 'Padauk'; $font_family[] = 'Muli:100;0,200;0,300;0,400;0,500;0,600;0,800;0,900;1,100;1,200;1,400;1,500;1,600;1,700;1,800;1,900'; $font_family[] = 'Inconsolata'; $font_family[] = 'Bitter'; $font_family[] = 'Pacifico'; $font_family[] = 'Indie Flower'; $font_family[] = 'VT323'; $font_family[] = 'Dosis'; $font_family[] = 'Frank Ruhl Libre'; $font_family[] = 'Fjalla One'; $font_family[] = 'Oxygen:300,400,700'; $font_family[] = 'Arvo'; $font_family[] = 'Noto Serif'; $font_family[] = 'Lobster'; $font_family[] = 'Crimson Text'; $font_family[] = 'Yanone Kaffeesatz'; $font_family[] = 'Anton'; $font_family[] = 'Libre Baskerville'; $font_family[] = 'Bree Serif'; $font_family[] = 'Gloria Hallelujah'; $font_family[] = 'Josefin Sans'; $font_family[] = 'Abril Fatface'; $font_family[] = 'Varela Round'; $font_family[] = 'Vampiro One'; $font_family[] = 'Shadows Into Light'; $font_family[] = 'Cuprum'; $font_family[] = 'Rokkitt'; $font_family[] = 'Vollkorn:400,400i,600,600i,700,700i,900,900i'; $font_family[] = 'Francois One'; $font_family[] = 'Orbitron'; $font_family[] = 'Patua One'; $font_family[] = 'Acme'; $font_family[] = 'Satisfy'; $font_family[] = 'Josefin Slab'; $font_family[] = 'Quattrocento Sans'; $font_family[] = 'Architects Daughter'; $font_family[] = 'Russo One'; $font_family[] = 'Monda'; $font_family[] = 'Righteous'; $font_family[] = 'Lobster Two'; $font_family[] = 'Hammersmith One'; $font_family[] = 'Courgette'; $font_family[] = 'Permanent Marker'; $font_family[] = 'Cherry Swash'; $font_family[] = 'Cormorant Garamond'; $font_family[] = 'Poiret One'; $font_family[] = 'BenchNine'; $font_family[] = 'Economica'; $font_family[] = 'Handlee'; $font_family[] = 'Cardo'; $font_family[] = 'Alfa Slab One'; $font_family[] = 'Averia Serif Libre'; $font_family[] = 'Cookie'; $font_family[] = 'Chewy'; $font_family[] = 'Great Vibes'; $font_family[] = 'Coming Soon'; $font_family[] = 'Philosopher'; $font_family[] = 'Days One'; $font_family[] = 'Kanit'; $font_family[] = 'Shrikhand'; $font_family[] = 'Tangerine'; $font_family[] = 'IM Fell English SC'; $font_family[] = 'Boogaloo'; $font_family[] = 'Bangers'; $font_family[] = 'Fredoka One'; $font_family[] = 'Bad Script'; $font_family[] = 'Volkhov'; $font_family[] = 'Shadows Into Light Two'; $font_family[] = 'Marck Script'; $font_family[] = 'Sacramento'; $font_family[] = 'Unica One'; $query_args = array( 'family' => rawurlencode(implode('|',$font_family)), ); $font_url = add_query_arg($query_args,'//fonts.googleapis.com/css'); return $font_url; } /* Theme enqueue scripts */ function appointment_booking_scripts() { wp_enqueue_style( 'appointment-booking-font', appointment_booking_font_url(), array() ); wp_enqueue_style( 'appointment-booking-block-style', get_theme_file_uri('/assets/css/blocks.css') ); wp_enqueue_style( 'appointment-booking-block-patterns-style-frontend', get_theme_file_uri('/inc/block-patterns/css/block-frontend.css') ); wp_enqueue_style( 'bootstrap-style', esc_url(get_template_directory_uri()).'/assets/css/bootstrap.css' ); wp_enqueue_style( 'appointment-booking-basic-style', get_stylesheet_uri() ); wp_style_add_data('appointment-booking-basic-style', 'rtl', 'replace'); /* Inline style sheet */ require get_parent_theme_file_path( '/custom-style.php' ); wp_add_inline_style( 'appointment-booking-basic-style',$appointment_booking_custom_css ); wp_enqueue_style( 'font-awesome-css', esc_url(get_template_directory_uri()).'/assets/css/fontawesome-all.css' ); wp_enqueue_script( 'jquery-superfish', get_theme_file_uri( '/assets/js/jquery.superfish.js' ), array( 'jquery' ), '2.1.2', true ); wp_enqueue_script( 'bootstrap-js', esc_url(get_template_directory_uri()). '/assets/js/bootstrap.js', array('jquery') ,'',true); wp_enqueue_script( 'appointment-booking-custom-scripts-jquery', esc_url(get_template_directory_uri()) . '/assets/js/custom.js', array('jquery'),'' ,true ); if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { wp_enqueue_script( 'comment-reply' ); } /* Enqueue the Dashicons script */ wp_enqueue_style( 'dashicons' ); } add_action( 'wp_enqueue_scripts', 'appointment_booking_scripts' ); //define define('APPOINTMENT_BOOKING_FREE_THEME_DOC',__('https://vwthemesdemo.com/docs/free-appointment-booking/','appointment-booking')); define('APPOINTMENT_BOOKING_SUPPORT',__('https://wordpress.org/support/theme/appointment-booking/','appointment-booking')); define('APPOINTMENT_BOOKING_REVIEW',__('https://wordpress.org/support/theme/appointment-booking/reviews','appointment-booking')); define('APPOINTMENT_BOOKING_BUY_NOW',__('https://www.vwthemes.com/themes/appointment-wordpress-theme/','appointment-booking')); define('APPOINTMENT_BOOKING_LIVE_DEMO',__('https://www.vwthemes.net/vw-appointment-pro/','appointment-booking')); define('APPOINTMENT_BOOKING_PRO_DOC',__('https://vwthemesdemo.com/docs/vw-appointment-pro/','appointment-booking')); define('APPOINTMENT_BOOKING_FAQ',__('https://www.vwthemes.com/faqs/','appointment-booking')); define('APPOINTMENT_BOOKING_CONTACT',__('https://www.vwthemes.com/contact/','appointment-booking')); define('APPOINTMENT_BOOKING_CHILD_THEME',__('https://developer.wordpress.org/themes/advanced-topics/child-themes/','appointment-booking')); define('APPOINTMENT_BOOKING_CREDIT',__('https://www.vwthemes.com/themes/free-appointment-wordpress-theme/','appointment-booking')); if ( ! function_exists( 'appointment_booking_credit' ) ) { function appointment_booking_credit(){ echo "". esc_html__('Appointment Booking WordPress Theme ','appointment-booking').""; } } /** * Enqueue block editor style */ function appointment_booking_block_editor_styles() { wp_enqueue_style( 'appointment-booking-font', appointment_booking_font_url(), array() ); wp_enqueue_style( 'appointment-booking-block-patterns-style-editor', get_theme_file_uri( '/inc/block-patterns/css/block-editor.css' ), false, '1.0', 'all' ); wp_enqueue_style( 'bootstrap-style', esc_url(get_template_directory_uri()).'/assets/css/bootstrap.css' ); } add_action( 'enqueue_block_editor_assets', 'appointment_booking_block_editor_styles' ); function appointment_booking_sanitize_dropdown_pages( $page_id, $setting ) { // Ensure $input is an absolute integer. $page_id = absint( $page_id ); // If $page_id is an ID of a published page, return it; otherwise, return the default. return ( 'publish' == get_post_status( $page_id ) ? $page_id : $setting->default ); } function appointment_booking_sanitize_choices( $input, $setting ) { global $wp_customize; $control = $wp_customize->get_control( $setting->id ); if ( array_key_exists( $input, $control->choices ) ) { return $input; } else { return $setting->default; } } function appointment_booking_sanitize_number_range( $number, $setting ) { // Ensure input is an absolute integer. $number = absint( $number ); // Get the input attributes associated with the setting. $atts = $setting->manager->get_control( $setting->id )->input_attrs; // Get minimum number in the range. $min = ( isset( $atts['min'] ) ? $atts['min'] : $number ); // Get maximum number in the range. $max = ( isset( $atts['max'] ) ? $atts['max'] : $number ); // Get step. $step = ( isset( $atts['step'] ) ? $atts['step'] : 1 ); // If the number is within the valid range, return it; otherwise, return the default return ( $min <= $number && $number <= $max && is_int( $number / $step ) ? $number : $setting->default ); } function appointment_booking_sanitize_phone_number( $phone ) { return preg_replace( '/[^\d+]/', '', $phone ); } /* Excerpt Limit Begin */ function appointment_booking_string_limit_words($string, $word_limit) { $words = explode(' ', $string, ($word_limit + 1)); if(count($words) > $word_limit) array_pop($words); return implode(' ', $words); } // Change number or products per row to 3 add_filter('loop_shop_columns', 'appointment_booking_loop_columns'); if (!function_exists('appointment_booking_loop_columns')) { function appointment_booking_loop_columns() { return 3; // 3 products per row } } /* Implement the Custom Header feature. */ require get_template_directory() . '/inc/custom-header.php'; /* Custom template tags for this theme. */ require get_template_directory() . '/inc/template-tags.php'; /* Customizer additions. */ require get_template_directory() . '/inc/customizer.php'; /* Typography */ require get_template_directory() . '/inc/typography/ctypo.php'; /* get started */ require get_template_directory() . '/inc/getstart/getstart.php'; /* Social Icons */ require get_template_directory() . '/inc/themes-widgets/social-icon.php'; /* Block Pattern */ require get_template_directory() . '/inc/block-patterns/block-patterns.php'; /* TGM Plugin Activation */ require get_template_directory() . '/inc/tgm/tgm.php'; /* Plugin Activation */ require get_template_directory() . '/inc/getstart/plugin-activation.php';