HEX
Server: nginx/1.24.0
System: Linux DGT-WORDPRESS-VM-SERVER 6.14.0-1014-azure #14~24.04.1-Ubuntu SMP Fri Oct 3 20:52:11 UTC 2025 x86_64
User: ubuntu (1000)
PHP: 8.4.12
Disabled: NONE
Upload Files
File: /mnt/data/doccure-wp-market/wp-content/themes/doccure/inc/scripts.php
<?php

/**
 *
 * General Theme Functions
 *
 */

 if (!function_exists('doccure_newscripts')) {
    function doccure_newscripts() {
        global $doccure_options;
        $theme_version    = wp_get_theme('doccure');
        $google_key       = '';
        $google_key       = !empty( $doccure_options['google_map'] ) ? $doccure_options['google_map'] : '';
        $enable_cart      = !empty( $doccure_options['enable_cart'] ) ? $doccure_options['enable_cart'] : '';
        $script_source    = '/';
        $protocol         = is_ssl() ? 'https' : 'http';

        wp_enqueue_style('bootstrap', get_template_directory_uri() . '/assets/css/bootstrap.css', array(), $theme_version->get('Version'));
       wp_register_style('basictable', get_template_directory_uri() . '/assets/css/basictable.css', array(), $theme_version->get('Version'));

        wp_register_style('fullcalendar', get_template_directory_uri() . '/assets/dashboardjs/fullcalendar/lib/main.min.css', array(), $theme_version->get('Version'));

		wp_register_style('datetimepicker', get_template_directory_uri() . '/assets/css/datetimepicker.css', array(), $theme_version->get('Version'));


 
       wp_enqueue_style('select2', get_template_directory_uri() . '/assets/css/select2.min.css', array(), $theme_version->get('Version'));
       wp_register_style('prettyPhoto', get_template_directory_uri() . '/assets/css/prettyPhoto.css', array(), $theme_version->get('Version'));
       wp_register_style('scrollbar', get_template_directory_uri() . '/assets/css'.$script_source.'scrollbar.css', array(), $theme_version->get('Version'));

        wp_enqueue_style('bootstrap-datetimepickercss', get_template_directory_uri() . '/assets/css/bootstrap/bootstrap-datetimepicker.min.css', array(), $theme_version->get('Version'), 'all');

        // dashboard and doctors single style
        if (is_singular('doctors') || is_page_template('directory/dashboard.php') || is_page_template('page-user-appointment.php')) {
           wp_enqueue_style('scrollbar');
           wp_enqueue_style('datetimepicker');
            wp_enqueue_style('fullcalendar');
        }

        wp_enqueue_style('doccure-style', get_template_directory_uri() . '/style.css', array(), $theme_version->get('Version'));


        	 if ( is_singular('doctors') || is_singular( 'hospitals') ) {
			wp_enqueue_style('prettyPhoto');
          }

            
        // dashboard styles
        if (is_page_template('directory/dashboard.php')) { 
           wp_enqueue_style('basictable');
           wp_enqueue_style('doccure-dashboard', get_template_directory_uri() . '/assets/css'.$script_source.'frontenddashboard.css', array(), $theme_version->get('Version'));
        }

        // inline styles
        $custom_css = doccure_add_dynamic_styles();   
        wp_add_inline_style('doccure-style', $custom_css);

        // Hide Bootstrap validation background icons globally; keep only messages
        $doccure_validation_css = '/* Cascade: hide validation icons */
        .was-validated .form-control:valid,
        .form-control.is-valid,
        .was-validated .form-control:invalid,
        .form-control.is-invalid,
        .was-validated .form-select:valid,
        .form-select.is-valid,
        .was-validated .form-select:invalid,
        .form-select.is-invalid,
        .was-validated textarea:valid,
        textarea.is-valid,
        .was-validated textarea:invalid,
        textarea.is-invalid {
          background-image: none !important;
          padding-right: .75rem !important;
        }';
        wp_add_inline_style('doccure-style', $doccure_validation_css);

        // scripts
        wp_register_script('prettyPhoto', get_template_directory_uri() . '/assets/dashboardjs/prettyPhoto.js', array(), $theme_version->get('Version'), true);
       wp_register_script('select2', get_template_directory_uri() . '/assets/dashboardjs/select2.min.js', array(), $theme_version->get('Version'), true);
        wp_register_script('slick', get_template_directory_uri() . '/assets/dashboardjs/slick.min.js', array(), $theme_version->get('Version'), true);
        wp_register_script('datetimepicker', get_template_directory_uri() . '/assets/dashboardjs/datetimepicker.js', array(), $theme_version->get('Version'), true);
        wp_register_script('doccure-callback', get_template_directory_uri() . '/assets/dashboardjs'.$script_source.'doccure_callback.js', array('jquery'), $theme_version->get('Version'), true);
       wp_register_script('fullcalendar', get_template_directory_uri() . '/assets/dashboardjs/fullcalendar/lib/main.min.js', array(), $theme_version->get('Version'), true);

       wp_enqueue_script('circle-progress', get_template_directory_uri() . '/assets/dashboardjs/circle-progress.min.js', array('jquery'), $theme_version->get('Version'), true);
       wp_register_script('socket.io', get_template_directory_uri() . '/node_modules/socket.io-client/dist/socket.io.js', array(), $theme_version->get('Version'), true);


		wp_enqueue_style( 'jquery-ui-css', 'https://code.jquery.com/ui/1.13.2/themes/base/jquery-ui.css' );
        wp_enqueue_script('modernizr');
        wp_enqueue_script('popper');
        wp_enqueue_script('bootstrap');
       wp_enqueue_script('select2');

        wp_enqueue_script('doccure-callback');

        // Enhance required-field validation and ensure Cancel buttons for forms
        // $doccure_validation_js = "(function(){\n  function initValidation(form){\n    form.addEventListener('submit', function(e){\n      if(!form.checkValidity()){\n        e.preventDefault();\n        e.stopPropagation();\n      }\n      form.classList.add('was-validated');\n    }, false);\n  }\n  function markRequiredFromLabels(form){\n    var groups = form.querySelectorAll('.mb-3, .form-group, .form-group-label');\n    groups.forEach(function(group){\n      var hasAsterisk = group.querySelector('label .text-danger');\n      if(hasAsterisk){\n        var field = group.querySelector('input, select, textarea');\n        if(field){\n          if(!field.hasAttribute('required')){ field.setAttribute('required','required'); }\n          var feedback = group.querySelector('.invalid-feedback');\n          if(!feedback){\n            var div = document.createElement('div');\n            div.className = 'invalid-feedback';\n            div.textContent = '".esc_js( esc_html__('This field is required.', 'doccure') )."';\n            group.appendChild(div);\n          }\n        }\n      }\n    });\n  }\n  function ensureCancel(form){\n    var existing = form.querySelector('button.cancel-btn, .btn.cancel-btn');\n    if(!existing){\n      var cancel = document.createElement('button');\n      cancel.type = 'button';\n      cancel.className = 'btn btn-secondary me-2 cancel-btn';\n      cancel.textContent = '".esc_js( esc_html__('Cancel', 'doccure') )."';\n      cancel.addEventListener('click', function(){ history.back(); });\n      var actions = form.querySelector('.text-end') || form.querySelector('.form-actions') || form;\n      var submit = form.querySelector('button[type=\\"submit\\"], input[type=\\"submit\\"]');\n      if(submit && submit.parentNode === actions){\n        actions.insertBefore(cancel, submit);\n      }\n      else if(submit){\n        submit.parentNode.insertBefore(cancel, submit);\n      } else {\n        actions.appendChild(cancel);\n      }\n    }\n  }\n  document.addEventListener('DOMContentLoaded', function(){\n    var forms = document.querySelectorAll('form');\n    forms.forEach(function(form){\n      var hasRequired = form.querySelector('[required]') || form.querySelector('label .text-danger');\n      if(!hasRequired){ return; }\n      markRequiredFromLabels(form);\n      initValidation(form);\n      ensureCancel(form);\n    });\n  });\n})();";
        // wp_add_inline_script('doccure-callback', $doccure_validation_js, 'after');

        wp_register_script('scrollbar', get_template_directory_uri() . '/assets/dashboardjs/scrollbar.min.js', array('jquery'), $theme_version->get('Version'), true);

        wp_enqueue_script('wp-util');

        // Doctor Single Scripts
        if (is_singular('doctors') || is_page_template('page-user-appointment.php')) {
           wp_enqueue_script('scrollbar');
           wp_enqueue_script('moment');
           wp_enqueue_script('bootstrap-datetimepicker');
           wp_enqueue_script('fullcalendar');
            wp_enqueue_script('jrate', get_template_directory_uri() . '/assets/dashboardjs/jrate.js', array(), $theme_version->get('Version'), true);
            wp_enqueue_script('jquery-ui-slider');
        }

       wp_enqueue_script('moment-doccure', get_template_directory_uri() . '/assets/js/moment.min.js', array('jquery'), $theme_version->get('Version'), true);
       wp_enqueue_script('bootstrap-datetimepicker', get_template_directory_uri() . '/assets/js/bootstrap-datetimepicker.min.js', array('jquery'), $theme_version->get('Version'), true);
        wp_enqueue_script('script-newtheme', get_template_directory_uri() . '/assets/dashboardjs/script-newtheme.js', array('jquery'), $theme_version->get('Version'), true);

        // Dashboard and doctors chat scripts
        if ((is_page_template('directory/dashboard.php') && isset($_GET['ref']) && $_GET['ref'] === 'chat') || is_singular('doctors')) {
        //    wp_enqueue_script('emojionearea', get_template_directory_uri() . '/assets/dashboardjs/emoji/emojionearea.min.js', array(), '', true);
           wp_enqueue_script('linkify', get_template_directory_uri() . '/assets/dashboardjs/linkify/linkify.min.js', array(), '', true);
           wp_enqueue_script('linkify-string', get_template_directory_uri() . '/assets/dashboardjs/linkify/linkify-string.min.js', array(), '', true);
           wp_enqueue_script('linkify-jquery', get_template_directory_uri() . '/assets/dashboardjs/linkify///linkify-jquery.min.js', array(), '', true);
        }

        // Dashboard scripts
        if (is_page_template('directory/dashboard.php') || is_page_template('page-user-appointment.php')) { 
           wp_enqueue_script('bootstrap-datetimepicker');
           wp_enqueue_script('fullcalendar');
            wp_enqueue_script('scrollbar');
            wp_enqueue_script('plupload');
           wp_enqueue_script('basictable', get_template_directory_uri() . '/assets/dashboardjs/basictable.min.js', array(), $theme_version->get('Version'), true);
           wp_enqueue_script('doccure-dashboard', get_template_directory_uri() . '/assets/dashboardjs'.$script_source.'dashboard.js', array('jquery'), $theme_version->get('Version'), true);
            wp_enqueue_script('jquery-ui-datepicker');
            wp_enqueue_script('jquery-ui-core');
            wp_enqueue_script('jquery-ui-sortable');
            wp_enqueue_script('jquery-ui-autocomplete');
			
        }
 
         if (is_singular('doctors')   ) {
			wp_enqueue_script('prettyPhoto');
             }

        wp_localize_script('doccure-callback', 'scripts_vars', array(
            'is_admin'      => 'no',
            'currency_symbol' => get_woocommerce_currency_symbol(),
            'ajaxurl'       => admin_url('admin-ajax.php'),
            'ajax_nonce'    => wp_create_nonce('ajax_nonce')
        ));

        if (is_singular() && comments_open() && get_option('thread_comments')) { 
            wp_enqueue_script('comment-reply');
        }
    }

    add_action('wp_enqueue_scripts', 'doccure_newscripts', 88);
}



/**
 * @Enqueue admin scripts and styles.
 * @return{}
 */
 
if (!function_exists('doccure_admin_enqueue')) {

    function doccure_admin_enqueue($hook) {
        global $post;
        $protolcol = is_ssl() ? "https" : "http";
        $theme_version = wp_get_theme('doccure');
		
		wp_enqueue_style( 'wp-color-picker' );

	   wp_enqueue_style('font-awesome', get_template_directory_uri() . '/assets/css/font-awesome.min.css', array(), $theme_version->get('Version'));

        wp_enqueue_style( 'doccure-admin-style', get_template_directory_uri() . '/admin/css/admin-style.css', array(), $theme_version->get('Version'));
		
        wp_enqueue_script('doccure-admin-functions', get_template_directory_uri() . '/admin/js/admin_functions.js', array('wp-color-picker','jquery'), $theme_version->get('Version'), false);
		
        wp_enqueue_style('datetimepicker', get_template_directory_uri() . '/assets/css/datetimepicker.css', array(), $theme_version->get('Version'));
		wp_enqueue_script('datetimepicker', get_template_directory_uri() . '/assets/dashboardjs/datetimepicker.js', array('jquery'), $theme_version->get('Version'), true);

		


		wp_enqueue_script('jquery-confirm.min', get_template_directory_uri() . '/assets/dashboardjs/jquery-confirm.min.js', array('jquery'), $theme_version->get('Version'), false);
		wp_enqueue_style('jquery-confirm.min', get_template_directory_uri() . '/assets/css/jquery-confirm.min.css', array(), $theme_version->get('Version'));
		
        $is_author_edit = '';
        if (isset($hook) && $hook == 'user-edit.php') {
            $is_author_edit = 'yes';
        }
		
		$dir_spinner = get_template_directory_uri() . '/images/spinner.gif';

        wp_localize_script('doccure-admin-functions', 'scripts_vars', array(
            'yes' 			=> esc_html__('Yes', 'doccure'),
            'no' 			=> esc_html__('No', 'doccure'),
			'import' 		=> esc_html__('Import Users', 'doccure'),
			'spinner'   	=> '<img class="sp-spin" src="'.esc_url($dir_spinner).'">',
            'import_message'	=> esc_html__('Are you sure, you want to import users?', 'doccure'),
			'repeater_message' 	=> esc_html__('Are you sure, you want to remove?', 'doccure'),
			'repeater_title' 	=> esc_html__('Alert', 'doccure'),
            'is_author_edit' 	=> $is_author_edit,
			'ajax_nonce' 		=> wp_create_nonce('ajax_nonce'),
			
			'reject_account' 			=> esc_html__('Reject account', 'doccure'),
			'reject_account_message' 	=> esc_html__('Do you want to reject this account? After reject, this account will no longer visible in the search listing', 'doccure'),
			'approve_account' 			=> esc_html__('Approve Account', 'doccure'),
			'approve_account_message' 	=> esc_html__('Do you want to approve this account? An email will be sent to this user.', 'doccure'),
        ));
		
		wp_enqueue_media();
    }

    add_action('admin_enqueue_scripts', 'doccure_admin_enqueue', 10, 1);
}


/**
 * @Theme Editor/guttenberg Style
 * 
 */
if (!function_exists('doccure_add_editor_styles')) {

    function doccure_add_editor_styles() {
		global $doccure_options;
		$protocol = is_ssl() ? 'https' : 'http';
        $theme_version = wp_get_theme('doccure');
		$editor_css  = '';
		
		if (function_exists('fw_get_db_settings_option')) {
            $color_base = fw_get_db_settings_option('color_settings');
        }
		
		$site_colors 	= !empty( $doccure_options['site_colors'] ) ? $doccure_options['site_colors'] : '';
		
		if ( !empty($site_colors) ) {
			$theme_primary_color 	= !empty( $doccure_options['theme_primary_color'] ) ? $doccure_options['theme_primary_color'] : '';
			$theme_secondary_color 	= !empty( $doccure_options['theme_secondary_color'] ) ? $doccure_options['theme_secondary_color'] : '';
			$theme_tertiary_color 	= !empty( $doccure_options['theme_tertiary_color'] ) ? $doccure_options['theme_tertiary_color'] : '';
			
			if (!empty($theme_primary_color)) {
				$editor_css  .= 'body.block-editor-page .editor-styles-wrapper a,
				body.block-editor-page .editor-styles-wrapper p a,
				body.block-editor-page .editor-styles-wrapper p a:hover,
				body.block-editor-page .editor-styles-wrapper a:hover,
				body.block-editor-page .editor-styles-wrapper a:focus,
				body.block-editor-page .editor-styles-wrapper a:active{color: '.$theme_primary_color.';}';
				
				$editor_css  .= 'body.block-editor-page .editor-styles-wrapper blockquote:not(.blockquote-link),
								 body.block-editor-page .editor-styles-wrapper .wp-block-quote.is-style-large,
								 body.block-editor-page .editor-styles-wrapper .wp-block-quote:not(.is-large):not(.is-style-large),
								 body.block-editor-page .editor-styles-wrapper .wp-block-quote.is-style-large,
								 body.block-editor-page .editor-styles-wrapper .wp-block-pullquote, 
								 body.block-editor-page .editor-styles-wrapper .wp-block-quote, 
								 body.block-editor-page .editor-styles-wrapper .wp-block-quote:not(.is-large):not(.is-style-large),
								 body.block-editor-page .wp-block-pullquote, 
								 body.block-editor-page .wp-block-quote, 
								 body.block-editor-page .wp-block-verse, 
								 body.block-editor-page .wp-block-quote:not(.is-large):not(.is-style-large){border-color:'.$theme_primary_color.';}';
			}
		}
		
		$font_families	= array();
		$font_families[] = 'Open+Sans:400,600';
		$font_families[] = 'Poppins:300,400,500,600,700';
		
		 $query_args = array (
			 'family' => implode('%7C' , $font_families) ,
			 'subset' => 'latin,latin-ext' ,
        );

        $theme_fonts = add_query_arg($query_args , $protocol.'://fonts.googleapis.com/css');
		add_editor_style(esc_url_raw($theme_fonts));
		wp_enqueue_style('doccure-admin-google-fonts' , esc_url_raw($theme_fonts), array () , null);
		
		$editor_css .= "
		body.block-editor-page editor-post-title__input,
		body.block-editor-page .editor-post-title__block .editor-post-title__input
		{font: 400 24px/34px'Poppins', sans-serif;color: #3d4461;}";
		
		$editor_css .= "body.block-editor-page .editor-styles-wrapper{font: 400 14px/26px 'Open Sans', Arial, Helvetica, sans-serif;}";
		
		$editor_css .= "body.block-editor-page .editor-styles-wrapper{color: #3d4461;}";
		$editor_css .= "body.block-editor-page editor-post-title__input,
		body.block-editor-page .editor-post-title__block .editor-post-title__input,
		body.block-editor-page .editor-styles-wrapper h1, 
				body.block-editor-page .editor-styles-wrapper h2, 
				body.block-editor-page .editor-styles-wrapper h3, 
				body.block-editor-page .editor-styles-wrapper h4, 
				body.block-editor-page .editor-styles-wrapper h5, 
				body.block-editor-page .editor-styles-wrapper h6 {font-family: 'Poppins', Arial, Helvetica, sans-serif;}";
							   
		wp_enqueue_style( 'doccure-editor-style', get_template_directory_uri() . '/admin/css/doccure-editor-style.css', array(), $theme_version->get('Version'));
		wp_add_inline_style( 'doccure-editor-style', $editor_css );
		
    }

    add_action('enqueue_block_editor_assets', 'doccure_add_editor_styles');
}

/**
 * @Enqueue before render elementor
 * @return{}
 */
if (!function_exists('doccure_before_render_elementor_enqueue')) {
	
add_action( 'elementor/widget/render_content','doccure_before_render_elementor_enqueue',10, 2 ); 
   function doccure_before_render_elementor_enqueue( $content, $widget ) {
	   if( $widget->get_name() === 'dc_element_custom_links' || $widget->get_name() === 'dc_element_slider_v2' || $widget->get_name() === 'dc_element_top_rated'){
	   		wp_enqueue_style('owl-carousel');
			wp_enqueue_script('owl-carousel');
	   }

	   return $content;
   }
}