get( 'Version' ) );
if( ! defined( 'APPOINTMENT_MANAGEMENT_THEME_NAME' ) ) define( 'APPOINTMENT_MANAGEMENT_THEME_NAME', $appointment_management_theme_data->get( 'Name' ) );
if( ! defined( 'APPOINTMENT_MANAGEMENT_THEME_TEXTDOMAIN' ) ) define( 'APPOINTMENT_MANAGEMENT_THEME_TEXTDOMAIN', $appointment_management_theme_data->get( 'TextDomain' ) );
if ( ! function_exists( 'appointment_management_setup' ) ) :
function appointment_management_setup() {
load_theme_textdomain( 'appointment-management', get_template_directory() . '/languages' );
add_theme_support( 'woocommerce' );
add_theme_support( 'automatic-feed-links' );
add_theme_support( 'title-tag' );
add_theme_support( 'post-thumbnails' );
register_nav_menus(
array(
'primary' => esc_html__( 'Primary', 'appointment-management' ),
'social' => esc_html__( 'Social', 'appointment-management' ),
)
);
add_theme_support(
'html5',
array(
'search-form',
'comment-form',
'comment-list',
'gallery',
'caption',
'style',
'script',
'woocommerce',
)
);
add_theme_support( 'post-formats', array(
'image',
'video',
'gallery',
'audio',
) );
add_theme_support(
'custom-background',
apply_filters(
'appointment_management_custom_background_args',
array(
'default-color' => 'ffffff',
'default-image' => '',
)
)
);
add_theme_support( 'customize-selective-refresh-widgets' );
add_theme_support(
'custom-logo',
array(
'height' => 250,
'width' => 250,
'flex-width' => true,
'flex-height' => true,
)
);
add_theme_support( 'align-wide' );
add_theme_support( 'responsive-embeds' );
}
endif;
add_action( 'after_setup_theme', 'appointment_management_setup' );
function appointment_management_content_width() {
$GLOBALS['content_width'] = apply_filters( 'appointment_management_content_width', 640 );
}
add_action( 'after_setup_theme', 'appointment_management_content_width', 0 );
function appointment_management_widgets_init() {
register_sidebar(
array(
'name' => esc_html__( 'Sidebar', 'appointment-management' ),
'id' => 'sidebar-1',
'description' => esc_html__( 'Add widgets here.', 'appointment-management' ),
'before_widget' => '',
'before_title' => '
',
)
);
// Regsiter 4 footer widgets.
$appointment_management_footer_widget_column = get_theme_mod('appointment_management_footer_widget_column','4');
for ($appointment_management_i=1; $appointment_management_i<=$appointment_management_footer_widget_column; $appointment_management_i++) {
register_sidebar( array(
'name' => __( 'Footer ', 'appointment-management' ) . $appointment_management_i,
'id' => 'appointment-management-footer-widget-' . $appointment_management_i,
'description' => __( 'The Footer Widget Area', 'appointment-management' ) . $appointment_management_i,
'before_widget' => '',
'before_title' => '',
) );
}
}
add_action( 'widgets_init', 'appointment_management_widgets_init' );
/**
* Enqueue scripts and styles.
*/
function appointment_management_scripts() {
// Append .min if SCRIPT_DEBUG is false.
$min = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min';
// Slick style.
wp_enqueue_style( 'appointment-management-slick-style', get_template_directory_uri() . '/resource/css/slick' . $min . '.css', array(), '1.8.1' );
// Fontawesome style.
wp_enqueue_style( 'appointment-management-font-awesome-css', esc_url(get_template_directory_uri())."/resource/css/fontawesome-all.css" );
// Main style.
wp_enqueue_style( 'appointment-management-style', get_template_directory_uri() . '/style.css', array(), APPOINTMENT_MANAGEMENT_VERSION );
// RTL style.
wp_style_add_data('appointment-management-style', 'rtl', 'replace');
// Animate CSS
wp_enqueue_style( 'appointment-management-animate-style', get_template_directory_uri() . '/resource/css/animate.css' );
// Navigation script.
wp_enqueue_script( 'appointment-management-navigation-script', get_template_directory_uri() . '/resource/js/navigation.js', array(), APPOINTMENT_MANAGEMENT_VERSION, true );
// Slick script.
wp_enqueue_script( 'appointment-management-slick-script', get_template_directory_uri() . '/resource/js/slick' . $min . '.js', array( 'jquery' ), '1.8.1', true );
// Custom script.
wp_enqueue_script( 'appointment-management-custom-script', get_template_directory_uri() . '/resource/js/custom.js', array( 'jquery' ), APPOINTMENT_MANAGEMENT_VERSION, true );
// Wow script.
wp_enqueue_script( 'appointment-management-wow-jquery', get_template_directory_uri() . '/resource/js/wow.js', array('jquery'),'' ,true );
if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
wp_enqueue_script( 'comment-reply' );
}
// Include the file.
require_once get_theme_file_path( 'theme-library/function-files/wptt-webfont-loader.php' );
// Load the webfont.
wp_enqueue_style(
'Open Sans',
Appointment_Management_wptt_get_webfont_url( 'https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap' ),
array(),
'1.0'
);
}
add_action( 'wp_enqueue_scripts', 'appointment_management_scripts' );
//Change number of products per page
add_filter( 'loop_shop_per_page', 'appointment_management_products_per_page' );
function appointment_management_products_per_page( $cols ) {
return get_theme_mod( 'appointment_management_products_per_page',9);
}
// Change number or products per row
add_filter('loop_shop_columns', 'appointment_management_loop_columns');
if (!function_exists('appointment_management_loop_columns')) {
function appointment_management_loop_columns() {
return get_theme_mod( 'appointment_management_products_per_row', 3 );
}
}
/**
* Include wptt webfont loader.
*/
require_once get_theme_file_path( 'theme-library/function-files/wptt-webfont-loader.php' );
/**
* Implement the Custom Header feature.
*/
require get_template_directory() . '/theme-library/custom-header.php';
/**
* Custom template tags for this theme.
*/
require get_template_directory() . '/theme-library/function-files/template-tags.php';
/**
* Functions which enhance the theme by hooking into WordPress.
*/
require get_template_directory() . '/theme-library/function-files/template-functions.php';
/**
* Customizer additions.
*/
require get_template_directory() . '/theme-library/customizer.php';
/**
* Google Fonts
*/
require get_template_directory() . '/theme-library/function-files/google-fonts.php';
/**
* Dynamic CSS
*/
require get_template_directory() . '/theme-library/dynamic-css.php';
/**
* Breadcrumb
*/
require get_template_directory() . '/theme-library/function-files/class-breadcrumb-trail.php';
/**
* Customizer Settings Functions
*/
require get_template_directory() . '/theme-library/function-files/customizer-settings-functions.php';
/**
* Getting Started
*/
require get_template_directory() . '/theme-library/getting-started/getting-started.php';
function appointment_management_links_setup() {
if ( ! defined( 'APPOINTMENT_MANAGEMENT_PREMIUM_PAGE' ) ) {
define('APPOINTMENT_MANAGEMENT_PREMIUM_PAGE',__('https://asterthemes.com/products/appointment-booking-wordpress-theme','appointment-management'));
}
if ( ! defined( 'APPOINTMENT_MANAGEMENT_THEME_PAGE' ) ) {
define('APPOINTMENT_MANAGEMENT_THEME_PAGE',__('https://asterthemes.com/products/appointment-management','appointment-management'));
}
if ( ! defined( 'APPOINTMENT_MANAGEMENT_SUPPORT' ) ) {
define('APPOINTMENT_MANAGEMENT_SUPPORT',__('https://wordpress.org/support/theme/appointment-management/','appointment-management'));
}
if ( ! defined( 'APPOINTMENT_MANAGEMENT_REVIEW' ) ) {
define('APPOINTMENT_MANAGEMENT_REVIEW',__('https://wordpress.org/support/theme/appointment-management/reviews/','appointment-management'));
}
if ( ! defined( 'APPOINTMENT_MANAGEMENT_PRO_DEMO' ) ) {
define('APPOINTMENT_MANAGEMENT_PRO_DEMO',__('https://demo.asterthemes.com/appointment-management/','appointment-management'));
}
if ( ! defined( 'APPOINTMENT_MANAGEMENT_THEME_DOCUMENTATION' ) ) {
define('APPOINTMENT_MANAGEMENT_THEME_DOCUMENTATION',__('https://demo.asterthemes.com/docs/appointment-management-wordpress-theme-free/','appointment-management'));
}
if ( ! defined( 'APPOINTMENT_MANAGEMENT_PREMIUM_DOCUMENTATION' ) ) {
define('APPOINTMENT_MANAGEMENT_PREMIUM_DOCUMENTATION',__('https://demo.asterthemes.com/docs/appointment-management-wordpress-theme-pro/','appointment-management'));
}
if ( ! defined( 'APPOINTMENT_MANAGEMENT_BUNDLE_PAGE' ) ) {
define('APPOINTMENT_MANAGEMENT_BUNDLE_PAGE',__('https://asterthemes.com/products/wp-theme-bundle','appointment-management'));
}
}
add_action('after_setup_theme', 'appointment_management_links_setup');
/*
* This theme styles the visual editor to resemble the theme style,
* specifically font, colors, icons, and column width.
*/
add_editor_style( '/resource/css/editor-style.css' );
/**
* Demo Import
*/
add_action( 'init', 'appointment_management_load_theme_wizard' );
function appointment_management_load_theme_wizard() {
require get_parent_theme_file_path( '/theme-wizard/config.php' );
}
// Enqueue Customizer live preview script
function appointment_management_customizer_live_preview() {
wp_enqueue_script(
'appointment-management-customizer',
get_template_directory_uri() . '/resource/js/customizer.js',
array('jquery', 'customize-preview'),
'',
true
);
}
add_action('customize_preview_init', 'appointment_management_customizer_live_preview');
// Featured Image Dimension
function appointment_management_blog_post_featured_image_dimension(){
if(get_theme_mod('appointment_management_blog_post_featured_image_dimension') == 'custom' ) {
return true;
}
return false;
}
// Reset all theme settings
function appointment_management_reset_demo_import_settings() {
if (current_user_can('manage_options')) {
// List only demo import-related settings to reset
remove_theme_mod('appointment_management_enable_header_search_section');
remove_theme_mod('appointment_management_header_button_label_');
remove_theme_mod('appointment_management_header_button_link_');
remove_theme_mod('appointment_management_banner_button_label_');
remove_theme_mod('appointment_management_banner_button_link_');
remove_theme_mod('appointment_management_enable_banner_section');
remove_theme_mod('appointment_management_enable_service_section');
remove_theme_mod('appointment_management_trending_product_heading');
remove_theme_mod('appointment_management_service_button_label_');
remove_theme_mod('appointment_management_phone_text');
remove_theme_mod('appointment_management_phone_number');
remove_theme_mod('appointment_management_email_text');
remove_theme_mod('appointment_management_email_address');
remove_theme_mod('appointment_management_timing_text');
remove_theme_mod('appointment_management_opening_timing');
wp_send_json_success(array('message' => __('Demo import settings have been reset.', 'appointment-management')));
} else {
wp_send_json_error(array('message' => __('Permission denied.', 'appointment-management')));
}
}
add_action('wp_ajax_appointment_management_reset_demo_import_settings', 'appointment_management_reset_demo_import_settings');