%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/html/shaban/laviva/wp-content/themes/bridge/framework/
Upload File :
Create Path :
Current File : /var/www/html/shaban/laviva/wp-content/themes/bridge/framework/qode-framework.php

<?php
require_once("lib/qode.layout.php");
require_once("lib/qode.layout.tax.php");
require_once("lib/qode.optionsapi.inc");
require_once("lib/qode.framework.php");
require_once("lib/qode.functions.php");
require_once("lib/qode.common.php");
require_once("lib/qode.icons/qode.icons.php");
require_once("lib/google-fonts.php");
require_once("admin/options/qode-options-setup.php");
require_once("admin/meta-boxes/qode-meta-boxes-setup.php");
require_once("modules/qode-modules-loader.php");

/**
 * Register styles and scripts
 */

function qode_admin_scripts_init() {
    wp_register_style('qodef-bootstrap', get_template_directory_uri().'/framework/admin/assets/css/qodef-bootstrap.css');
    wp_register_style('qodef-page-admin', get_template_directory_uri().'/framework/admin/assets/css/qodef-page.css');
    wp_register_style('qodef-options-admin', get_template_directory_uri().'/framework/admin/assets/css/qodef-options.css');
    wp_register_style('qodef-meta-boxes-admin', get_template_directory_uri().'/framework/admin/assets/css/qodef-meta-boxes.css');
    wp_register_style('qodef-ui-admin', get_template_directory_uri().'/framework/admin/assets/css/qodef-ui/qodef-ui.css');
    wp_register_style('qodef-forms-admin', get_template_directory_uri().'/framework/admin/assets/css/qodef-forms.css');
    wp_register_style('font-awesome-admin', get_template_directory_uri().'/framework/admin/assets/css/font-awesome/css/font-awesome.min.css');
    wp_register_style('select2', get_template_directory_uri().'/framework/admin/assets/css/select2.min.css');

    wp_register_script('bootstrap.min', get_template_directory_uri().'/framework/admin/assets/js/bootstrap.min.js');
	wp_register_script("select2", get_template_directory_uri().'/framework/admin/assets/js/select2.min.js', array(), false, true);
    wp_register_script('jquery.nouislider.min', get_template_directory_uri().'/framework/admin/assets/js/qodef-ui/jquery.nouislider.min.js');
    wp_register_script('qodef-ui-admin', get_template_directory_uri().'/framework/admin/assets/js/qodef-ui/qodef-ui.js');
    wp_register_script('qodef-ui-repeater', get_template_directory_uri().'/framework/admin/assets/js/qodef-ui/qodef-ui-repeater.js', array(), false, true);
	wp_enqueue_script("qodef-twitter-connect", get_template_directory_uri().'/framework/admin/assets/js/qodef-twitter-connect.js', array(), false, true);
	wp_enqueue_script("qodef-instagram", get_template_directory_uri().'/framework/admin/assets/js/qodef-instagram.js', array(), false, true);
	//This part is required for field type address
	$enable_google_map_in_admin = apply_filters('qode_google_maps_in_backend', false);
	if($enable_google_map_in_admin) {
		//include google map api script
		$google_maps_api_key          = qode_options()->getOptionValue( 'google_maps_api_key' );
		$google_maps_extensions       = '';
		$google_maps_extensions_array = apply_filters( 'qode_google_maps_extensions_array', array() );
		if ( ! empty( $google_maps_extensions_array ) ) {
			$google_maps_extensions .= '&libraries=';
			$google_maps_extensions .= implode( ',', $google_maps_extensions_array );
		}
		if ( ! empty( $google_maps_api_key ) ) {
			wp_enqueue_script( 'qodef-admin-maps', '//maps.googleapis.com/maps/api/js?key=' . esc_attr( $google_maps_api_key ) . $google_maps_extensions, array(), false, true );
			wp_enqueue_script( 'jquery.geocomplete', get_template_directory_uri() . '/framework/admin/assets/js/jquery.geocomplete.min.js', array('qodef-admin-maps'), false, true );
		}
	}
}
add_action('admin_init', 'qode_admin_scripts_init');

/**
 * Enqueue styles and scripts for admin page
 */

function enqueue_admin_styles() {
    wp_enqueue_style( 'wp-color-picker' );
    wp_enqueue_style('qodef-bootstrap');
    wp_enqueue_style('select2');
    wp_enqueue_style('qodef-page-admin');
    wp_enqueue_style('qodef-options-admin');
    wp_enqueue_style('qodef-ui-admin');
    wp_enqueue_style('jquery.nouislider.min');
    wp_enqueue_style('qodef-forms-admin');
    wp_enqueue_style('font-awesome-admin');
}

function enqueue_admin_scripts() {
    wp_enqueue_script('underscore'); //underscore
    wp_enqueue_script('wp-color-picker'); //colorpicker
    wp_enqueue_script('bootstrap.min');
    wp_enqueue_script('select2');
    wp_enqueue_media();
    wp_enqueue_script('jquery.nouislider.min');
    wp_enqueue_script('qodef-ui-admin');
}

function enqueue_meta_box_styles() {
    wp_enqueue_style( 'wp-color-picker' );
    wp_enqueue_style('qodef-bootstrap');
	wp_enqueue_style('select2');
    wp_enqueue_style('qodef-page-admin');
    wp_enqueue_style('qodef-meta-boxes-admin');
    wp_enqueue_style('qodef-ui-admin');
    wp_enqueue_style('jquery.nouislider.min');
    wp_enqueue_style('qodef-forms-admin');
    wp_enqueue_style('font-awesome-admin');
}

function enqueue_meta_box_scripts() {
    wp_enqueue_script('underscore'); //underscore
    wp_enqueue_script('wp-color-picker'); //colorpicker
    wp_enqueue_script('bootstrap.min');
	wp_enqueue_script('select2');
    wp_enqueue_media();
	wp_enqueue_script('jquery-ui-sortable');
    wp_enqueue_script('jquery.nouislider.min');
    wp_enqueue_script('qodef-ui-admin');
	wp_enqueue_script('qodef-ui-repeater');
}

global $qode_options_proya;
$qode_options_proya  = get_option('qode_options_proya');

function init_qode_theme_options() {
	global $qode_options_proya;
	global $qodeFramework;
	if(isset($qode_options_proya['reset_to_defaults'])){
		if( $qode_options_proya['reset_to_defaults'] == 'yes' ) delete_option( "qode_options_proya");
	}
	if (! get_option("qode_options_proya")) {
		add_option( "qode_options_proya",
			$qodeFramework->qodeOptions->options
		);
		$qode_options_proya = $qodeFramework->qodeOptions->options;
	}
}

function qode_theme_menu() {
	global $qodeFramework;
	init_qode_theme_options();
  	$page_hook_suffix = add_menu_page(
      'Qode Options',                   // The value used to populate the browser's title bar when the menu page is active
      'Qode Options',                   // The text of the menu in the administrator's sidebar
      'administrator',                  // What roles are able to access the menu
      'qode_theme_menu',                // The ID used to bind submenu items to this menu
      'qode_theme_display'              // The callback function used to render this menu
  	);
	foreach ($qodeFramework->qodeOptions->adminPages as $key=>$value ) {
		$slug = "";
		if (!empty($value->slug)) $slug = "_tab".$value->slug;
    	$subpage_hook_suffix = add_submenu_page(
    		'qode_theme_menu',
	        'Qode Options - '.$value->title,                   // The value used to populate the browser's title bar when the menu page is active
	        $value->title,                   // The text of the menu in the administrator's sidebar
	        'administrator',                  // What roles are able to access the menu
	        'qode_theme_menu'.$slug,                // The ID used to bind submenu items to this menu
      		'qode_theme_display'              // The callback function used to render this menu
    	);
    	add_action('admin_print_scripts-'.$subpage_hook_suffix, 'enqueue_admin_scripts');
  		add_action('admin_print_styles-'.$subpage_hook_suffix, 'enqueue_admin_styles');
  	};
    add_action('admin_print_scripts-'.$page_hook_suffix, 'enqueue_admin_scripts');
  	add_action('admin_print_styles-'.$page_hook_suffix, 'enqueue_admin_styles');
}
add_action( 'admin_menu', 'qode_theme_menu' );


function qode_theme_import_menu() {
	global $qodeFramework;
	init_qode_theme_options();
	$page_hook_suffix = add_menu_page(
		'Qode Import',                   // The value used to populate the browser's title bar when the menu page is active
		'Qode Import',                   // The text of the menu in the administrator's sidebar
		'administrator',                  // What roles are able to access the menu
		'qode_options_import_page',                // The ID used to bind submenu items to this menu
		'qode_theme_import_display',              // The callback function used to render this menu
		'dashicons-download'
	);

	add_action('admin_print_scripts-'.$page_hook_suffix, 'enqueue_admin_scripts');
	add_action('admin_print_styles-'.$page_hook_suffix, 'enqueue_admin_styles');
}
add_action( 'admin_menu', 'qode_theme_import_menu' );


if(!function_exists('qode_add_theme_options_toolbar')) {
    /**
     * Adds a link to Qode Options in toolbar for easier access
     * @param $wp_admin_bar WP_Admin_Bar instance
     */
    function qode_add_theme_options_toolbar($wp_admin_bar) {
        if(!is_admin()) {
            $args = array(
                'id'    => 'qode_theme_menu',
                'title' => 'Qode Options',
                'href'  => admin_url('admin.php?page=qode_theme_menu'),
                'parent' => 'site-name'
            );

            $wp_admin_bar->add_node($args);
        }
    }

    add_action('admin_bar_menu', 'qode_add_theme_options_toolbar', 999);
}

function register_qode_theme_settings() {
    register_setting( 'qode_theme_menu', 'qode_options' );
}
add_action('admin_init', 'register_qode_theme_settings');

function strafter($string, $substring) {
  $pos = strpos($string, $substring);
  if ($pos === false)
   return NULL;
  else 
   return(substr($string, $pos+strlen($substring)));
}
function qode_get_admin_tab(){
	return isset($_GET['page']) ? strafter($_GET['page'],'tab') : NULL;
}

function qodef_save_options() {
	global $qode_options_proya;
	global $qodeFramework;

    if(current_user_can('administrator')){
        $_REQUEST = stripslashes_deep($_REQUEST);
		check_ajax_referer('qode_ajax_save_nonce', 'qode_ajax_save_nonce');
        foreach ($qodeFramework->qodeOptions->options as $key => $value) {
            if (isset($_REQUEST[$key])) {
                $qode_options_proya[$key] = $_REQUEST[$key];
            }
        }
        update_option('qode_options_proya', $qode_options_proya);
        do_action('qode_after_theme_option_save');
        echo "Saved";

        die();
    }
}
add_action('wp_ajax_qodef_save_options', 'qodef_save_options');

function qode_theme_display() {
		global $qodeFramework;
		$tab    = qode_get_admin_tab();
		$active_page = $qodeFramework->qodeOptions->getAdminPageFromSlug($tab);
		if ($active_page == null) return;
	 ?>
    <div class="qodef-options-page qodef-page">

        <div class="qodef-page-header page-header clearfix">
            <img src="<?php echo get_template_directory_uri() . '/framework/admin/assets/img/qode-logo.png' ?>" alt="qode_logo" class="qodef-header-logo pull-left"/>
            <?php $current_theme = wp_get_theme(); ?>
            <h2 class="qodef-page-title pull-left">
                <?php echo $current_theme->get('Name'); ?>
                <small><?php echo $current_theme->get('Version') ?></small>
            </h2>
			<?php if($active_page->slug != '_importexport') { ?>
            	<div class="pull-right"> <input type="button" id="qode_top_save_button" class="btn btn-primary btn-sm pull-right" value="<?php _e('Save Changes', 'qode'); ?>"/></div>
			<?php } ?>
        </div> <!-- close div.qodef-page-header -->

        <div class="qodef-page-content-wrapper">
            <div class="qodef-page-content">
                <div class="qodef-page-navigation qodef-tabs-wrapper vertical left clearfix">

                    <div class="qodef-tabs-navigation-wrapper">
                        <ul class="nav nav-tabs">
                        	<?php
                        		foreach ($qodeFramework->qodeOptions->adminPages as $key=>$page ) {
                                    $slug = "";
                                    if (!empty($page->slug)) $slug = "_tab".$page->slug;
                                    $icon = $page->icon;
                            ?>
                            <li <?php if ($page->slug == $tab) echo "class=\"active\""; ?>>
                                <a href="<?php echo get_admin_url(); ?>admin.php?page=qode_theme_menu<?php echo $slug; ?>">
                                    <i class="fa fa-<?php echo $icon; ?> qodef-tooltip qodef-inline-tooltip left" data-placement="top" data-toggle="tooltip" title="<?php echo $page->title; ?>"></i>
                                    <span><?php echo $page->title; ?></span>
                                </a>
                            </li>
                        	<?php } ?>
                        </ul>
                    </div> <!-- close div.qodef-tabs-navigation-wrapper -->

                    <div class="qodef-tabs-content">
                        <div class="tab-content">
                        	<?php
                        		foreach ($qodeFramework->qodeOptions->adminPages as $key=>$page ) {
                        			if ($page->slug == $tab) {
                        	?>
                            <div class="tab-pane fade<?php if ($page->slug == $tab) echo " in active"; ?>" id="<?php echo $key; ?>">
                                <div class="qodef-tab-content">
                                    <h2 class="qodef-page-title"><?php echo $page->title; ?></h2>

									<?php if($page->slug == '_importexport') { ?>

										<form method="post" class="qode_import_export_ajax_form">
											<div class="qodef-page-form">
												<?php $page->render(); ?>

											</div>
										</form>

									<?php } else { ?>
										<form method="post" class="qode_ajax_form">
											<?php wp_nonce_field("qode_ajax_save_nonce","qode_ajax_save_nonce") ?>
											<div class="qodef-page-form">
												<?php $page->render(); ?>

												<div class="form-button-section clearfix">
													<div class="qodef-input-change">You should save your changes</div>
													<div class="qodef-changes-saved">All your changes are successfully saved</div>
													<div class="form-buttom-section-holder" id="anchornav">
														<div class="form-button-section-inner clearfix" >

															<div class="container-fluid">
																<div class="row">
																	<div class="col-lg-10">
																		<ul class="pull-left">
																			<li>Scroll To:</li>
																			<?php
																			foreach ($page->layout as $key=>$panel ) {
																				?>
																				<li><a href="#qodef_<?php echo $panel->name; ?>"><?php echo $panel->title; ?></a></li>
																				<?php
																			}
																			?>
																		</ul>
																	</div>
																	<div class="col-lg-2">
																		<input type="submit" class="btn btn-primary btn-sm pull-right" value="<?php _e('Save Changes', 'qode'); ?>"/>
																	</div>
																</div>
															</div>

														</div>
													</div>
												</div>
											</div>
										</form>

									<?php } ?>

                                </div><!-- close qodef-tab-content -->
                            </div>
                           <?php
                        			}
                        		}
                        	?>
                        </div>
                    </div> <!-- close div.qodef-tabs-content -->

                </div> <!-- close div.qodef-page-navigation -->

            </div> <!-- close div.qodef-page-content -->

        </div> <!-- close div.qodef-page-content-wrapper -->

    </div> <!-- close div.qode-options-page -->
<?php }


function qode_theme_import_display() {
	$importObject = Qode_Import::getInstance();
	$demos = $importObject->demos_import_list();
	?>
	<div class="qodef-options-page qodef-page">

		<div class="qodef-page-header page-header clearfix">
			<img src="<?php echo get_template_directory_uri() . '/framework/admin/assets/img/qode-logo.png' ?>" alt="qode_logo" class="qodef-header-logo pull-left"/>
			<?php $current_theme = wp_get_theme(); ?>
			<h2 class="qodef-page-title pull-left">
				<?php echo $current_theme->get('Name'); ?>
				<small><?php echo $current_theme->get('Version') ?></small>
			</h2>
		</div> <!-- close div.qodef-page-header -->

		<div class="qodef-page qodef-page-info">
			<div class="qodef-page-content">
				<h2 class="qodef-page-title"><?php esc_html_e('Bridge - One-Click Import', 'qode') ?></h2>
				<form method="post" id="importContentForm">
					<div class="qodef-page-form">
						<div class="qodef-page-form-section-holder clearfix">
							<h3 class="qodef-page-section-title">Import Demo Content</h3>
							<div class="qodef-page-form-section">
								<div class="qodef-field-desc">
									<h4><?php esc_html_e('Demo Site', 'qode'); ?></h4>
									<p>Choose demo site you want to import</p>
								</div>
								<div class="qodef-section-content">
									<div class="container-fluid">
										<div class="row">
											<div class="col-lg-3">
												<select name="import_example" id="import_example" class="form-control qodef-form-element">
														<?php foreach ($demos as $demo => $value) { ?>
															<option value="<?php echo esc_attr($demo); ?>"><?php echo esc_html($value['title']); ?></option>
														<?php } ?>
												</select>
											</div>
										</div>
										<div class="row next-row">
											<div class="col-lg-3">
												<img id="demo_site_img" src="#" alt="demo site" />
											</div>
											<div class="col-lg-6">
												<div id="qode-required-plugins"></div>
											</div>
										</div>

									</div>
								</div>
							</div>
							<div class="qodef-page-form-section" >
								<div class="qodef-field-desc">
									<h4><?php esc_html_e('Import Type', 'qode'); ?></h4>
									<p>Choose if you would like to import all or specific content</p>
								</div>

								<div class="qodef-section-content">
									<div class="container-fluid">
										<div class="row">
											<div class="col-lg-3">
												<select name="import_option" id="import_option" class="form-control qodef-form-element">
													<option value="">Please Select</option>
													<option value="complete_content">All</option>
													<option value="content">Content</option>
													<option value="widgets">Widgets</option>
													<option value="options">Options</option>
												</select>
											</div>
										</div>
									</div>
								</div>
							</div>
							<div class="qodef-page-form-section" >
								<div class="qodef-field-desc">
									<h4><?php esc_html_e('Import attachments', 'qode'); ?></h4>
									<p>Do you want to import media files?</p>
								</div>

								<div class="qodef-section-content">
									<div class="container-fluid">
										<div class="row">
											<div class="col-lg-3">
												<input type="checkbox" value="1" class="qodef-form-element" name="import_attachments" id="import_attachments" />
											</div>
										</div>
									</div>
								</div>
							</div>

							<div class="row">
								<div class="col-lg-3">
									<div class="form-button-section clearfix">
										<input type="submit" class="btn btn-primary btn-sm " value="Import" name="import" id="import_demo_data" />
									</div>
								</div>
							</div>
							<div class="row">
								<div class="col-lg-3"></div>

							</div>

							<div class="import_load"><span><?php _e('The import process may take some time. Please be patient.', 'qode') ?> </span><br />
								<div class="qode-progress-bar-wrapper html5-progress-bar">
									<div class="progress-bar-wrapper">
										<progress id="progressbar" value="0" max="100"></progress>
									</div>
									<div class="progress-value">0%</div>
									<div class="progress-bar-message">
									</div>
								</div>
							</div>
							<div class="alert alert-warning">
								<strong><?php _e('Important notes:', 'qode') ?></strong>
								<ul>
									<li><?php _e('Delete all menus from Appearance > Menus before importing a new demo.', 'qode'); ?></li>
									<li><?php _e('All options will be overwritten by the options for the demo you are importing.', 'qode'); ?></li>
									<li><?php _e('Please note that import process will take time needed to download all attachments from demo web site.', 'qode'); ?></li>
									<li><?php _e('If you plan to use shop, please install WooCommerce before you run import.', 'qode');?></li>
								</ul>
							</div>
							<!-- <div class="success_msg alert" id="success_msg" >--><?php //echo $this->message; ?><!--</div>-->
						</div>
					</div>
				</form>
			</div> <!-- close div.qodef-page-content -->

		</div> <!-- close div.qodef-page-content-wrapper -->

	</div> <!-- close div.qode-options-page -->
<?php }


function qode_meta_box_add() {
	global $qodeFramework;
	
	foreach ($qodeFramework->qodeMetaBoxes->metaBoxes as $key=>$box ) {
		$hidden = false;
		if (!empty($box->hidden_property)){
			foreach ($box->hidden_values as $value) {
				if (qodef_option_get_value($box->hidden_property)==$value)
					$hidden = true;

			}
		}
	    add_meta_box(
	        'qodef-meta-box-'.$key,
	        $box->title,
	        'qodef_render_meta_box',
	        $box->scope,
			'advanced',
			'high',
			array( 'box' => $box)
	    );
		if ($hidden) {

			if(is_array($box->scope)){
				foreach($box->scope as $scope){
					add_filter( 'postbox_classes_'.$scope.'_qodef-meta-box-'.$key, 'qode_meta_box_add_hidden_class' );
				}
			} else {
				add_filter( 'postbox_classes_'.$box->scope.'_qodef-meta-box-'.$key, 'qode_meta_box_add_hidden_class' );
			}
		}
	}

    add_action('admin_enqueue_scripts', 'enqueue_meta_box_styles');
    add_action('admin_enqueue_scripts', 'enqueue_meta_box_scripts');
}
add_action('add_meta_boxes', 'qode_meta_box_add');

function qode_meta_box_save( $post_id, $post ) {
	global $qodeFramework;


	$nonces_array = array();
	$meta_boxes   = qode_framework()->qodeMetaBoxes->getMetaBoxesByScope( $post->post_type );

	if ( is_array( $meta_boxes ) && count( $meta_boxes ) ) {
		foreach ( $meta_boxes as $meta_box ) {
			$nonces_array[] = 'qode_meta_box_' . $meta_box->name . '_save';
		}
	}

	if ( is_array( $nonces_array ) && count( $nonces_array ) ) {
		foreach ( $nonces_array as $nonce ) {

			if ( ! isset( $_POST[ $nonce ] ) || ! wp_verify_nonce( $_POST[ $nonce ], $nonce ) ) {
				return;
			}
		}
	}


	$postTypes = apply_filters('qode_meta_box_post_types_save', array("page", "post", "portfolio_page", "testimonials", "slides", "carousels","masonry_gallery"));



	//add product post type into array if woocommerce is installed
    if(qode_is_woocommerce_installed()){
        array_push($postTypes, "product");
    }
    if ( !isset( $_POST[ '_wpnonce' ] ))
        return;
    if ( !current_user_can( 'edit_post', $post_id ) )
		return;
	if ( ! in_array( $post->post_type, $postTypes ) )
		return;
	foreach ($qodeFramework->qodeMetaBoxes->options as $key=>$box ) {

		if ( isset( $_POST[ $key ] ) && trim( $_POST[ $key ] !== '') ) {

			$value = $_POST[ $key ];
			// Auto-paragraphs for any WYSIWYG
			update_post_meta( $post_id, $key, $value );
		} else {
			delete_post_meta( $post_id, $key );
		}
	}
				
	$portfolios = false;
	if (isset($_POST['optionLabel'])) {
		foreach ($_POST['optionLabel'] as $key => $value) {
			$portfolios_val[$key] = array('optionLabel'=>$value,'optionValue'=>$_POST['optionValue'][$key],'optionUrl'=>$_POST['optionUrl'][$key],'optionlabelordernumber'=>$_POST['optionlabelordernumber'][$key]); 
			$portfolios = true;
		
		}
	}	

	if ($portfolios) {
		update_post_meta( $post_id,  'qode_portfolios', $portfolios_val );
	} else {
		delete_post_meta( $post_id, 'qode_portfolios' );
	}
				
	$portfolio_images = false;
	if (isset($_POST['portfolioimg'])) {
		foreach ($_POST['portfolioimg'] as $key => $value) {
			$portfolio_images_val[$key] = array('portfolioimg'=>$_POST['portfolioimg'][$key],'portfoliotitle'=>$_POST['portfoliotitle'][$key],'portfolioimgordernumber'=>$_POST['portfolioimgordernumber'][$key], 'portfoliovideotype'=>$_POST['portfoliovideotype'][$key], 'portfoliovideoid'=>$_POST['portfoliovideoid'][$key], 'portfoliovideoimage'=>$_POST['portfoliovideoimage'][$key], 'portfoliovideowebm'=>$_POST['portfoliovideowebm'][$key], 'portfoliovideomp4'=>$_POST['portfoliovideomp4'][$key], 'portfoliovideoogv'=>$_POST['portfoliovideoogv'][$key], 'portfolioimgtype'=>$_POST['portfolioimgtype'][$key] );
			$portfolio_images = true;
		}
	}
			
			
	if ($portfolio_images) {
		update_post_meta( $post_id,  'qode_portfolio_images', $portfolio_images_val );
	} else {
		delete_post_meta( $post_id,  'qode_portfolio_images' );
	}
}

add_action( 'save_post', 'qode_meta_box_save', 1, 2 );

function qodef_render_meta_box($post, $metabox) {?>
    <div class="qodef-meta-box qodef-page">
        <div class="qodef-meta-box-holder">
		<?php $metabox["args"]["box"]->render(); ?>
		<?php wp_nonce_field( 'qode_meta_box_' . $metabox['args']['box']->name . '_save', 'qode_meta_box_' . $metabox['args']['box']->name . '_save' ); ?>
		</div>
	</div>
<?php
}

function qode_meta_box_add_hidden_class( $classes=array() ) {
    if( !in_array( 'qodef-meta-box-hidden', $classes ) )
        $classes[] = 'qodef-meta-box-hidden';
        
    return $classes;
}

/**
 * Remove the default Custom Fields meta box
 */

function removeDefaultCustomFields() {
    foreach ( array( 'normal', 'advanced', 'side' ) as $context ) {
        foreach ( apply_filters('qode_meta_box_post_types_remove', array("page", "post", "portfolio_page", "testimonials", "slides", "carousels")) as $postType ) {
            remove_meta_box( 'postcustom', $postType, $context );
        }
    }
}
add_action('do_meta_boxes','removeDefaultCustomFields');

if(!function_exists('qode_admin_notice')) {
    /**
     * Prints admin notice. It checks if notice has been disabled and if it hasn't then it displays it
     * @param $id string id of notice. It will be used to store notice dismis
     * @param $message string message to show to the user
     * @param $class string HTML class of notice
     * @param bool $is_dismisable whether notice is dismisable or not
     */
    function qode_admin_notice($id, $message, $class, $is_dismisable = true) {
        $is_dismised = get_user_meta(get_current_user_id(), 'dismis_'.$id);

        //if notice isn't dismissed
        if(!$is_dismised && is_admin()) {
            echo '<div style="display: block;" class="'.esc_attr($class).' is-dismissible notice">';
            echo '<p>';

            echo wp_kses_post($message);

            if($is_dismisable) {
                echo '<strong style="display: block; margin-top: 7px;"><a href="'.esc_url(add_query_arg('qode_dismis_notice', $id)).'">'.__('Dismiss this notice', 'qode').'</a></strong>';
            }

            echo '</p>';

            echo '</div>';
        }

    }
}

if(!function_exists('qode_save_dismisable_notice')) {
    /**
     * Updates user meta with dismisable notice. Hooks to admin_init action
     * in order to check this on every page request in admin
     */
    function qode_save_dismisable_notice() {
        if(is_admin() && !empty($_GET['qode_dismis_notice'])) {
            $notice_id = sanitize_key($_GET['qode_dismis_notice']);
            $current_user_id = get_current_user_id();

            update_user_meta($current_user_id, 'dismis_'.$notice_id, 1);
        }
    }

    add_action('admin_init', 'qode_save_dismisable_notice');
}

if(!function_exists('qode_enqueue_style_scripts_slider_taxonomy')) {
	/**
	 * Enqueue style and scripts when on slider taxonomy page in admin
	 */
	function qode_enqueue_style_scripts_slider_taxonomy() {
		if(isset($_GET['taxonomy']) && $_GET['taxonomy'] == 'slides_category') {
			wp_enqueue_style('qodef-slider-category', get_template_directory_uri().'/framework/admin/assets/css/qodef-slider-category.css');
			wp_enqueue_script('qodef-slider-category', get_template_directory_uri().'/framework/admin/assets/js/qodef-slider-category.js');
		}
	}

	add_action('admin_print_scripts-edit-tags.php', 'qode_enqueue_style_scripts_slider_taxonomy');
}

if(!function_exists('qode_enqueue_nav_menu_script')) {
    /**
     * Function that enqueues styles and scripts necessary for menu administration page.
     * It checks $hook variable
     * @param $hook string current page hook to check
     */
    function qode_enqueue_nav_menu_script($hook) {
        if($hook == 'nav-menus.php') {
            wp_enqueue_script('qodef-nav-menu', get_template_directory_uri().'/framework/admin/assets/js/qodef-nav-menu.js');
            wp_enqueue_style('qodef-nav-menu', get_template_directory_uri().'/framework/admin/assets/css/qodef-nav-menu.css');
        }
    }

    add_action('admin_enqueue_scripts', 'qode_enqueue_nav_menu_script');
}

if(!function_exists('qode_generate_icon_pack_options')) {
    /**
     * Generates options HTML for each icon in given icon pack
     * Hooked to wp_ajax_update_admin_nav_icon_options action
     */
    function qode_generate_icon_pack_options() {
        global $qodeIconCollections;

        $html = '';
        $icon_pack = isset($_POST['icon_pack']) ? $_POST['icon_pack'] : '';
        $collections_object = $qodeIconCollections->getIconCollection($icon_pack);

        if($collections_object) {
            $icons = $collections_object->getIconsArray();
            if(is_array($icons) && count($icons)) {
                foreach ($icons as $key => $icon) {
                    $html .= '<option value="'.esc_attr($key).'">'.esc_html($key).'</option>';
                }
            }
        }

        print $html;
    }

    add_action('wp_ajax_update_admin_nav_icon_options', 'qode_generate_icon_pack_options');
}

if(!function_exists('qode_get_custom_sidebars')) {
    /**
     * Function that returns all custom made sidebars.
     *
     * @uses get_option()
     * @return array array of custom made sidebars where key and value are sidebar name
     */
    function qode_get_custom_sidebars() {
        $custom_sidebars = get_option('qode_sidebars');
        $formatted_array = array();

        if(is_array($custom_sidebars) && count($custom_sidebars)) {
            foreach ($custom_sidebars as $custom_sidebar) {
                $formatted_array[$custom_sidebar] = $custom_sidebar;
            }
        }

        return $formatted_array;
    }
}


if(!function_exists('qode_hook_twitter_request_ajax')) {
	/**
	 * Wrapper function for obtaining twitter request token.
	 * Hooks to wp_ajax_qode_twitter_obtain_request_token ajax action
	 *
	 * @see QodeTwitterApi::obtainRequestToken()
	 */
	function qode_hook_twitter_request_ajax() {
		QodeTwitterApi::getInstance()->obtainRequestToken();
	}

	add_action('wp_ajax_qode_twitter_obtain_request_token', 'qode_hook_twitter_request_ajax');
}

if(!function_exists('qode_disconnect_from_instagram')) {

	function qode_disconnect_from_instagram() {

		QodeInstagramApi::getInstance()->deleteFieldsFromDB();

	}

	add_action('wp_ajax_qode_disconnect_from_instagram', 'qode_disconnect_from_instagram');
}

/* Taxonomy custom fields functions - START */

if(!function_exists('qode_init_custom_taxonomy_fields')){
	function qode_init_custom_taxonomy_fields(){
		do_action('qode_custom_taxonomy_fields');
	}
	add_action('after_setup_theme','qode_init_custom_taxonomy_fields');

}

if(!function_exists('qode_taxonomy_fields_add')) {
	function qode_taxonomy_fields_add()
	{
		global $qodeFramework;
		foreach ($qodeFramework->qodeTaxonomyOptions->taxonomyOptions as $key => $fields) {
			add_action($fields->scope.'_add_form_fields', 'qode_taxonomy_fields_display_add', 10, 2);
		}
	}

	add_action('after_setup_theme', 'qode_taxonomy_fields_add', 11);
}

if(!function_exists('qode_taxonomy_fields_edit')) {
	function qode_taxonomy_fields_edit()
	{
		global $qodeFramework;
		foreach ($qodeFramework->qodeTaxonomyOptions->taxonomyOptions as $key => $fields) {
			add_action($fields->scope.'_edit_form_fields', 'qode_taxonomy_fields_display_edit', 10, 2);
		}
	}

	add_action('after_setup_theme', 'qode_taxonomy_fields_edit', 11);
}

if(!function_exists('qode_taxonomy_fields_display_add')) {
	function qode_taxonomy_fields_display_add($taxonomy)
	{
		global $qodeFramework;
		foreach ($qodeFramework->qodeTaxonomyOptions->taxonomyOptions as $key => $fields) {
			if($taxonomy == $fields->scope) {
				$fields->render();
			}
		}
	}
}

if(!function_exists('qode_taxonomy_fields_display_edit')) {
	function qode_taxonomy_fields_display_edit($term, $taxonomy)
	{
		global $qodeFramework;
		foreach ($qodeFramework->qodeTaxonomyOptions->taxonomyOptions as $key => $fields) {
			if($taxonomy == $fields->scope) {
				$fields->render();
			}
		}
	}
}

if (!function_exists('qode_save_taxonomy_custom_fields')) {
	function qode_save_taxonomy_custom_fields($term_id) {
		$fields = apply_filters('qode_taxonomy_fields',array());

		foreach ( $fields as $value ) {
			if( isset( $_POST[$value] ) && '' !== $_POST[$value] ){
				add_term_meta ( $term_id, $value, $_POST[$value] );
			}
		}
	}
	add_action('created_term', 'qode_save_taxonomy_custom_fields', 10, 2);
}


if (!function_exists('qode_update_taxonomy_custom_fields')) {
	function qode_update_taxonomy_custom_fields ( $term_id) {
		$fields = apply_filters('qode_taxonomy_fields',array());

		foreach ( $fields as $value ) {
			if( isset( $_POST[$value] ) && '' !== $_POST[$value] ){
				update_term_meta ( $term_id, $value, $_POST[$value] );
			}else {
				update_term_meta ( $term_id, $value, '' );
			}
		}
	}
	add_action( 'edited_term', 'qode_update_taxonomy_custom_fields', 10, 2 );
}


if (!function_exists('qode_tax_add_script')) {
	function qode_tax_add_script() {
		wp_enqueue_media();
		wp_enqueue_script('qode-tax-js', QODE_FRAMEWORK_ROOT.'/admin/assets/js/qode-tax-custom-fields.js');
		wp_enqueue_script( 'select2', get_template_directory_uri() . '/framework/admin/assets/js/select2.min.js', array(), false, true );

		wp_enqueue_style( 'select2', get_template_directory_uri() . '/framework/admin/assets/css/select2.min.css' );
	}
	add_action( 'admin_enqueue_scripts', 'qode_tax_add_script' );
}

/** Taxonomy Delete Image **/
if (!function_exists('qode_tax_del_image')) {
	function qode_tax_del_image()
	{

		/** If we don't have a term_id, bail out **/
		if (!isset($_GET['term_id'])) {
			echo esc_html('Not Set or Empty', 'qode');
			exit;
		}

		$field_name = $_GET['field_name'];
		$term_id = $_GET['term_id'];
		$imageID = get_term_meta($term_id, $field_name, true);  // Get our attachment ID

		if (is_numeric($imageID)) {                              // Verify that the attachment ID is indeed a number
			wp_delete_attachment($imageID);                       // Delete our image
			delete_term_meta($term_id, $field_name);// Delete our image meta
			exit;
		}

		echo esc_html__('Contact Administrator', 'qode'); // If we've reached this point, something went wrong - enable debugging
		exit;
	}

	add_action('wp_ajax_qode_tax_del_image', 'qode_tax_del_image');
}

/* Taxonomy custom fields functions - END */

if ( ! function_exists( 'qode_set_admin_google_api_class' ) ) {
	function qode_set_admin_google_api_class( $classes ) {
		$google_map_api = qode_options()->getOptionValue( 'google_maps_api_key' );

		if ( empty( $google_map_api ) ) {
			$classes .= ' qodef-empty-google-api';
		}

		return $classes;
	}

	add_filter( 'admin_body_class', 'qode_set_admin_google_api_class' );
}

Zerion Mini Shell 1.0