File: /home/nhqyemt2u0zd/www/wp-content/themes/kitgreen1.1.0/framework/shortcodes/shortcodes.php
<?php if ( ! defined('ABSPATH')) exit('No direct script access allowed');
/* ------------------------------------------------------------------------------------------------
* Video Poppup shortcode
* ------------------------------------------------------------------------------------------------
*/
if( ! function_exists( 'kitgreen_shortcode_button' ) ) {
function kitgreen_shortcode_button( $atts ) {
wp_enqueue_style( 'lightbox-css', URI_PATH.'/assets/css/css_jws/lightbox.css', false );
wp_enqueue_style( 'black-css', URI_PATH.'/assets/css/css_jws/skin/black.css', false );
wp_enqueue_script( 'lightbox-js', URI_PATH.'/assets/js/dev/lightbox.js', array('jquery'), '', true );
wp_enqueue_script( 'lightbox-ac', URI_PATH.'/assets/js/dev/start-video.js', array('jquery'), '', true );
extract( shortcode_atts( array(
'img' => '',
'link' => '',
'align' => 'center',
'el_class' => '',
), $atts) );
ob_start();
$btn_class = 'action-popup-url';
if( $el_class != '' ) {
$btn_class .= ' ' . $el_class;
}
$attrs = "";
if( $link != '' ) {
$attrs .= ' href="' . esc_attr( $link ) . '"';
}
?>
<div class="kitgreen-button-wrapper video-popup text-<?php echo esc_attr( $align ) ?>"><a class=" <?php echo $btn_class; ?> " <?php echo $attrs; ?> data-options="width:1920, height:1080" ><?php echo wp_get_attachment_image($img, 'full'); ?></a></div>
<?php
return ob_get_clean();
}
add_shortcode( 'kitgreen_button', 'kitgreen_shortcode_button' );
}
/**
* ------------------------------------------------------------------------------------------------
* Demo theme shortcode
* ------------------------------------------------------------------------------------------------
*/
if( ! function_exists( 'kitgreen_shortcode_demo_theme' ) ) {
function kitgreen_shortcode_demo_theme( $atts ) {
extract( shortcode_atts( array(
'img' => '',
'link' => '',
'name' => '',
), $atts) );
ob_start();
$url = wp_get_attachment_image_url($img, 'full');
?>
<div class="demo_con">
<a href="<?php echo esc_url($link); ?>" class="demo_theme" style="background-image: url('<?php echo $url; ?>');">
</a>
<span class="link">
<?php esc_html_e($name) ?>
</span>
</div>
<?php
return ob_get_clean();
}
add_shortcode( 'kitgreen_demo_theme', 'kitgreen_shortcode_demo_theme' );
}
/**
* ------------------------------------------------------------------------------------------------
* instagram shortcode
* ------------------------------------------------------------------------------------------------
*/
if( ! function_exists( 'kitgreen_shortcode_instagram' ) ) {
function kitgreen_shortcode_instagram( $atts, $content = '' ) {
$output = '';
$parsed_atts = shortcode_atts( array_merge( kitgreen_get_owl_atts(), array(
'title' => '',
'username' => 'flickr',
'number' => 9,
'slides_per_view' => 8 ,
'size' => 'thumbnail',
'target' => '_self',
'link' => '',
'design' => 'default',
'space' => 0,
'rounded' => 0,
'per_row' => 3,
'spacing' => '',
) ), $atts );
extract( $parsed_atts );
$carousel_id = 'carousel-' . rand(100,999);
ob_start();
$class = 'instagram-widget';
if( $spacing == 1 ) {
$class .= ' instagram-with-spaces';
}
if( $rounded == 1 ) {
$class .= ' instagram-rounded';
}
$class .= ' instagram-per-row-' . $per_row;
echo '<div id="' . $carousel_id . '" class="' . $class." ".$design.'">';
if ($username != '') {
$media_array = kitgreen_scrape_instagram($username, $number);
if ( is_wp_error($media_array) ) {
echo esc_html( $media_array->get_error_message() );
} else {
?><ul class="instagram-pics <?php if( $design == 'slider') echo 'jws-carousel'; ?>" data-slick='{"slidesToShow": <?php echo $slides_per_view; ?> , "autoplay": true, "autoplaySpeed": 2000,"slidesToScroll": 1,"responsive":[{"breakpoint": 1024,"settings":{"slidesToShow": 3}},{"breakpoint": 480,"settings":{"slidesToShow": 2}}]}'><?php
foreach ($media_array as $item) {
$image = (! empty( $item[$size] )) ? $item[$size] : $item['thumbnail'];
echo '<li>
<a target="_blank" href="'. esc_url( $item['link'] ) .'" target="'. esc_attr( $target ) .'"><span class="ion-social-instagram-outline"></span></a>
<div class="wrapp-pics">
<img src="'. esc_url( $image ) .'" />
<div class="hover-mask"></div>
</div>
</li>';
}
?></ul><?php
}
}
if ($link != '') {
?><p class="clear"><a href="//instagram.com/<?php echo trim($username); ?>" rel="me" target="<?php echo esc_attr( $target ); ?>"><?php echo esc_html($link); ?></a></p><?php
}
echo '</div>';
$output = ob_get_contents();
ob_end_clean();
return $output;
}
add_shortcode( 'kitgreen_instagram', 'kitgreen_shortcode_instagram' );
}
if( ! function_exists( 'kitgreen_scrape_instagram' ) ) {
function kitgreen_scrape_instagram($username, $slice = 9) {
$username = strtolower( $username );
$by_hashtag = ( substr( $username, 0, 1) == '#' );
//if ( false === ( $instagram = get_transient( 'instagram-media-new-'.sanitize_title_with_dashes( $username ) ) ) ) {
$request_param = ( $by_hashtag ) ? 'explore/tags/' . substr( $username, 1) : trim( $username );
$remote = wp_remote_get( 'http://instagram.com/'. $request_param );
if ( is_wp_error( $remote ) )
return new WP_Error( 'site_down', __( 'Unable to communicate with Instagram.', 'kitgreen' ) );
if ( 200 != wp_remote_retrieve_response_code( $remote ) )
return new WP_Error( 'invalid_response', __( 'Instagram did not return a 200.', 'kitgreen' ) );
$shards = explode( 'window._sharedData = ', $remote['body'] );
$insta_json = explode( ';</script>', $shards[1] );
$insta_array = json_decode( $insta_json[0], TRUE );
if ( !$insta_array )
return new WP_Error( 'bad_json', __( 'Instagram has returned invalid data.', 'kitgreen' ) );
// old style
if ( isset( $insta_array['entry_data']['UserProfile'][0]['userMedia'] ) ) {
$images = $insta_array['entry_data']['UserProfile'][0]['userMedia'];
$type = 'old';
// new style
} else if ( isset( $insta_array['entry_data']['ProfilePage'][0]['graphql']['user']['edge_owner_to_timeline_media']['edges']) ) {
$images = $insta_array['entry_data']['ProfilePage'][0]['graphql']['user']['edge_owner_to_timeline_media']['edges'];
$type = 'new';
} elseif( $by_hashtag && isset( $insta_array['entry_data']['TagPage'][0]['tag']['media']['nodes'] ) ) {
$images = $insta_array['entry_data']['TagPage'][0]['tag']['media']['nodes'];
$type = 'new';
} else {
return new WP_Error( 'bad_json_2', __( 'Instagram has returned invalid data. ', 'kitgreen' ) );
}
//ar($images);
if ( !is_array( $images ) )
return new WP_Error( 'bad_array', __( 'Instagram has returned invalid data.', 'kitgreen' ) );
$instagram = array();
switch ( $type ) {
case 'old':
foreach ( $images as $image ) {
if ( $image['user']['username'] == $username ) {
$image['link'] = $image['link'];
$image['images']['thumbnail'] = preg_replace( "/^http:/i", "", $image['images']['thumbnail'] );
$image['images']['standard_resolution'] = preg_replace( "/^http:/i", "", $image['images']['standard_resolution'] );
$image['images']['low_resolution'] = preg_replace( "/^http:/i", "", $image['images']['low_resolution'] );
$instagram[] = array(
'description' => $image['edge_media_to_caption']['edegs']['text'],
'link' => $image['link'],
'time' => $image['created_time'],
'comments' => $image['comments']['count'],
'likes' => $image['likes']['count'],
'thumbnail' => $image['images']['thumbnail'],
'large' => $image['images']['standard_resolution'],
'small' => $image['images']['low_resolution'],
'type' => $image['type']
);
}
}
break;
default:
foreach ( $images as $imagess ) {
foreach ($imagess as $image) {
$image['thumbnail_src'] = preg_replace( "/^https:/i", "", $image['thumbnail_src'] );
$image['thumbnail'] = $image['thumbnail_resources'][0]['src'];
$image['medium'] = $image['thumbnail_resources'][2]['src'];
$image['large'] = $image['thumbnail_src'];
if ( $image['is_video'] == true ) {
$type = 'video';
} else {
$type = 'image';
}
$caption = esc_html__( 'Instagram Image', 'kitgreen' );
if ( ! empty( $image['caption'] ) ) {
$caption = $image['caption'];
}
$instagram[] = array(
'description' => $caption,
'link' => '//instagram.com/p/' . $image['shortcode'],
'likes' => $image['edge_media_preview_like']['count'],
'thumbnail' => $image['thumbnail'],
'medium' => $image['medium'],
'large' => $image['large'],
'type' => $type
);
}
}
break;
}
// do not set an empty transient - should help catch private or empty accounts
if ( ! empty( $instagram ) ) {
$instagram = base64_encode( maybe_serialize( $instagram ) );
set_transient( 'instagram-media-new-'.sanitize_title_with_dashes( $username ), $instagram, apply_filters( 'null_instagram_cache_time', HOUR_IN_SECONDS*2 ) );
}
//}
if ( ! empty( $instagram ) ) {
$instagram = maybe_unserialize( base64_decode( $instagram ) );
return array_slice( $instagram, 0, $slice );
} else {
return new WP_Error( 'no_images', __( 'Instagram did not return any images.', 'kitgreen' ) );
}
}
}
if( !function_exists( 'kitgreen_instagram_images_only' ) ) {
function kitgreen_instagram_images_only($media_item) {
if ($media_item['type'] == 'image')
return true;
return false;
}
}
/**
* ------------------------------------------------------------------------------------------------
* Google Map shortcode
* ------------------------------------------------------------------------------------------------
*/
function jwsthemes_maps_render($params) {
extract(shortcode_atts(array(
'api' => 'AIzaSyAq7OU88Rn2LmYOJrBKwlhdr7VmoP4oYiY',
'address' => 'New York, United States',
'infoclick' => '',
'coordinate' => '',
'markercoordinate' => '',
'markertitle' => '',
'markerdesc' => '',
'markerlist' => '',
'markericon' => '',
'infowidth' => '200',
'width' => 'auto',
'height' => '350px',
'type' => 'ROADMAP',
'style' => '',
'zoom' => '13',
'scrollwheel' => '',
'pancontrol' => '',
'zoomcontrol' => '',
'scalecontrol' => '',
'maptypecontrol' => '',
'streetviewcontrol' => '',
'overviewmapcontrol' => '',
), $params));
/* API Key */
if(!$api){
$api = 'AIzaSyAq7OU88Rn2LmYOJrBKwlhdr7VmoP4oYiY';
}
$api_js = "https://maps.googleapis.com/maps/api/js?key=$api&sensor=false";
wp_enqueue_script('maps-googleapis',$api_js,array(),'3.0.0');
wp_enqueue_script('maps-apiv3', URI_PATH_FR . "/shortcodes/maps.js",array(),'1.0.0');
/* Map Style defualt */
$map_styles = array(
'Subtle-Grayscale'=>'[{"featureType":"landscape","stylers":[{"saturation":-100},{"lightness":65},{"visibility":"on"}]},{"featureType":"poi","stylers":[{"saturation":-100},{"lightness":51},{"visibility":"simplified"}]},{"featureType":"road.highway","stylers":[{"saturation":-100},{"visibility":"simplified"}]},{"featureType":"road.arterial","stylers":[{"saturation":-100},{"lightness":30},{"visibility":"on"}]},{"featureType":"road.local","stylers":[{"saturation":-100},{"lightness":40},{"visibility":"on"}]},{"featureType":"transit","stylers":[{"saturation":-100},{"visibility":"simplified"}]},{"featureType":"administrative.province","stylers":[{"visibility":"off"}]},{"featureType":"water","elementType":"labels","stylers":[{"visibility":"on"},{"lightness":-25},{"saturation":-100}]},{"featureType":"water","elementType":"geometry","stylers":[{"hue":"#ffff00"},{"lightness":-25},{"saturation":-97}]}]',
'Shades-of-Grey'=>'[{"featureType":"all","elementType":"labels.text.fill","stylers":[{"saturation":36},{"color":"#000000"},{"lightness":40}]},{"featureType":"all","elementType":"labels.text.stroke","stylers":[{"visibility":"on"},{"color":"#000000"},{"lightness":16}]},{"featureType":"all","elementType":"labels.icon","stylers":[{"visibility":"off"}]},{"featureType":"administrative","elementType":"geometry.fill","stylers":[{"color":"#000000"},{"lightness":20}]},{"featureType":"administrative","elementType":"geometry.stroke","stylers":[{"color":"#000000"},{"lightness":17},{"weight":1.2}]},{"featureType":"landscape","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":20}]},{"featureType":"poi","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":21}]},{"featureType":"road.highway","elementType":"geometry.fill","stylers":[{"color":"#000000"},{"lightness":17}]},{"featureType":"road.highway","elementType":"geometry.stroke","stylers":[{"color":"#000000"},{"lightness":29},{"weight":0.2}]},{"featureType":"road.arterial","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":18}]},{"featureType":"road.local","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":16}]},{"featureType":"transit","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":19}]},{"featureType":"water","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":17}]}]',
'Blue-water'=>'[{"featureType":"administrative","elementType":"labels.text.fill","stylers":[{"color":"#444444"}]},{"featureType":"landscape","elementType":"all","stylers":[{"color":"#f2f2f2"}]},{"featureType":"poi","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"road","elementType":"all","stylers":[{"saturation":-100},{"lightness":45}]},{"featureType":"road.highway","elementType":"all","stylers":[{"visibility":"simplified"}]},{"featureType":"road.arterial","elementType":"labels.icon","stylers":[{"visibility":"off"}]},{"featureType":"transit","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"water","elementType":"all","stylers":[{"color":"#46bcec"},{"visibility":"on"}]}]',
'Pale-Dawn'=>'[{"featureType":"administrative","elementType":"all","stylers":[{"visibility":"on"},{"lightness":33}]},{"featureType":"landscape","elementType":"all","stylers":[{"color":"#f2e5d4"}]},{"featureType":"poi.park","elementType":"geometry","stylers":[{"color":"#c5dac6"}]},{"featureType":"poi.park","elementType":"labels","stylers":[{"visibility":"on"},{"lightness":20}]},{"featureType":"road","elementType":"all","stylers":[{"lightness":20}]},{"featureType":"road.highway","elementType":"geometry","stylers":[{"color":"#c5c6c6"}]},{"featureType":"road.arterial","elementType":"geometry","stylers":[{"color":"#e4d7c6"}]},{"featureType":"road.local","elementType":"geometry","stylers":[{"color":"#fbfaf7"}]},{"featureType":"water","elementType":"all","stylers":[{"visibility":"on"},{"color":"#acbcc9"}]}]',
'Blue-Essence'=>'[{"featureType":"landscape.natural","elementType":"geometry.fill","stylers":[{"visibility":"on"},{"color":"#e0efef"}]},{"featureType":"poi","elementType":"geometry.fill","stylers":[{"visibility":"on"},{"hue":"#1900ff"},{"color":"#c0e8e8"}]},{"featureType":"road","elementType":"geometry","stylers":[{"lightness":100},{"visibility":"simplified"}]},{"featureType":"road","elementType":"labels","stylers":[{"visibility":"off"}]},{"featureType":"transit.line","elementType":"geometry","stylers":[{"visibility":"on"},{"lightness":700}]},{"featureType":"water","elementType":"all","stylers":[{"color":"#7dcdcd"}]}]',
'Apple-Maps-esque'=>'[{"featureType":"landscape.man_made","elementType":"geometry","stylers":[{"color":"#f7f1df"}]},{"featureType":"landscape.natural","elementType":"geometry","stylers":[{"color":"#d0e3b4"}]},{"featureType":"landscape.natural.terrain","elementType":"geometry","stylers":[{"visibility":"off"}]},{"featureType":"poi","elementType":"labels","stylers":[{"visibility":"off"}]},{"featureType":"poi.business","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"poi.medical","elementType":"geometry","stylers":[{"color":"#fbd3da"}]},{"featureType":"poi.park","elementType":"geometry","stylers":[{"color":"#bde6ab"}]},{"featureType":"road","elementType":"geometry.stroke","stylers":[{"visibility":"off"}]},{"featureType":"road","elementType":"labels","stylers":[{"visibility":"off"}]},{"featureType":"road.highway","elementType":"geometry.fill","stylers":[{"color":"#ffe15f"}]},{"featureType":"road.highway","elementType":"geometry.stroke","stylers":[{"color":"#efd151"}]},{"featureType":"road.arterial","elementType":"geometry.fill","stylers":[{"color":"#ffffff"}]},{"featureType":"road.local","elementType":"geometry.fill","stylers":[{"color":"black"}]},{"featureType":"transit.station.airport","elementType":"geometry.fill","stylers":[{"color":"#cfb2db"}]},{"featureType":"water","elementType":"geometry","stylers":[{"color":"#a2daf2"}]}]',
);
/* Select Template */
$map_template = '';
switch ($style){
case '':
$map_template = '';
break;
default:
$map_template = rawurlencode($map_styles[$style]);
break;
}
/* marker render */
$marker = new stdClass();
if($markercoordinate){
$marker->markercoordinate = $markercoordinate;
if($markerdesc || $markertitle){
$marker->markerdesc = '<div class="ro-maps-info-content">'.
'<hp>'.$markertitle.'</p>'.
'<span>'.$markerdesc.'</span>'.
'</div>';
}
if($markericon){
$marker->markericon = wp_get_attachment_url($markericon);
}
}
if($markerlist){
$marker->markerlist = $markerlist;
}
$marker = rawurlencode(json_encode($marker));
/* control render */
$controls = new stdClass();
if($scrollwheel == true){ $controls->scrollwheel = 1; } else { $controls->scrollwheel = 0; }
if($pancontrol == true){ $controls->pancontrol = true; } else { $controls->pancontrol = false; }
if($zoomcontrol == true){ $controls->zoomcontrol = true; } else { $controls->zoomcontrol = false; }
if($scalecontrol == true){ $controls->scalecontrol = true; } else { $controls->scalecontrol = false; }
if($maptypecontrol == true){ $controls->maptypecontrol = true; } else { $controls->maptypecontrol = false; }
if($streetviewcontrol == true){ $controls->streetviewcontrol = true; } else { $controls->streetviewcontrol = false; }
if($overviewmapcontrol == true){ $controls->overviewmapcontrol = true; } else { $controls->overviewmapcontrol = false; }
if($infoclick == true){ $controls->infoclick = true; } else { $controls->infoclick = false; }
$controls->infowidth = $infowidth;
$controls->style = $style;
$controls = rawurlencode(json_encode($controls));
/* data render */
$setting = array(
"data-address='$address'",
"data-marker='$marker'",
"data-coordinate='$coordinate'",
"data-type='$type'",
"data-zoom='$zoom'",
"data-template='$map_template'",
"data-controls='$controls'"
);
ob_start();
$maps_id = uniqid('maps-');
?>
<div class="ro_maps">
<div id="<?php echo $maps_id; ?>" class="maps-render" <?php echo implode(' ', $setting); ?> style="width:<?php echo esc_attr($width); ?>;height: <?php echo esc_attr($height); ?>"></div>
</div>
<?php
return ob_get_clean();
}
add_shortcode('maps', 'jwsthemes_maps_render');
/**
* ------------------------------------------------------------------------------------------------
* Blog shortcode
* ------------------------------------------------------------------------------------------------
*/
if( ! function_exists( 'kitgreen_shortcode_blog' ) ) {
function kitgreen_shortcode_blog( $atts ) {
global $kitgreen_loop;
$parsed_atts = shortcode_atts( array(
'post_type' => 'post',
'include' => '',
'custom_query' => '',
'taxonomies' => '',
'pagination' => '',
'parts_title' => true,
'parts_meta' => true,
'parts_text' => true,
'parts_btn' => true,
'items_per_page' => 12,
'offset' => '',
'orderby' => 'date',
'blog_design' => 'border-bottom',
'order' => 'DESC',
'meta_key' => '',
'exclude' => '',
'ajax_page' => '',
'img_size' => 'medium',
'blog_columns' =>'2',
'review' => false,
'like' => false,
'thumbnail_show' => false,
'animation' => '',
'text_remore' => 'Continue Reading',
), $atts );
extract( $parsed_atts );
$encoded_atts = json_encode( $parsed_atts );
if ($blog_columns == '2') {
$class_column = ' col-lg-6 col-md-6 col-sm-12 col-xs-12';
$size_col = "size-6" ;
}elseif($blog_columns == '3') {
$class_column = ' col-lg-4 col-md-4 col-sm-6 col-xs-12';
$size_col = "size-4" ;
}
elseif($blog_columns == '4') {
$class_column = ' col-lg-3 col-md-3 col-sm-6 col-xs-12';
$size_col = "size-3" ;
}elseif($blog_columns == '5'){
$class_column = 'col-lg-55 col-sm-6 col-xs-12';
$size_col = "size-5" ;
}elseif($blog_columns == '6'){
$class_column = ' col-lg-2 col-md-2 col-sm-6 col-xs-12';
$size_col = "size-2" ;
}else {
$class_column = ' col-lg-12 col-md-12 col-sm-16 col-xs-12';
$size_col = "size-1" ;
}
$is_ajax = (defined( 'DOING_AJAX' ) && DOING_AJAX);
$animation_classes = getCSSAnimation( $animation );
$output = '';
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
if( $ajax_page > 1 ) $paged = $ajax_page;
$args = array(
'post_type' => ''.$post_type.'',
'status' => 'published',
'paged' => $paged,
'posts_per_page' => $items_per_page
);
if( $post_type == 'ids' && $include != '' ) {
$args['post__in'] = explode(',', $include);
}
if( ! empty( $exclude ) ) {
$args['post__not_in'] = explode(',', $exclude);
}
if( ! empty( $taxonomies ) ) {
$taxonomy_names = get_object_taxonomies( $post_type );
$terms = get_terms( $taxonomy_names, array(
'orderby' => 'name',
'include' => $taxonomies
));
if( ! is_wp_error( $terms ) && ! empty( $terms ) ) {
$args['tax_query'] = array('relation' => 'OR');
foreach ($terms as $key => $term) {
$args['tax_query'][] = array(
'taxonomy' => $term->taxonomy,
'field' => 'slug',
'terms' => array( $term->slug ),
'include_children' => true,
'operator' => 'IN'
);
}
}
}
if( ! empty( $order ) ) {
$args['order'] = $order;
}
if( ! empty( $offset ) ) {
$args['offset'] = $offset;
}
if( ! empty( $meta_key ) ) {
$args['meta_key'] = $meta_key;
}
if( ! empty( $orderby ) ) {
$args['orderby'] = $orderby;
}
$blog_query = new WP_Query($args);
ob_start();
$kitgreen_loop['img_size'] = $img_size;
$kitgreen_loop['like'] = $like;
$kitgreen_loop['review'] = $review;
$kitgreen_loop[ 'thumbnail_show'] = $thumbnail_show;
$kitgreen_loop[ 'text_remore'] = $text_remore;
$kitgreen_loop['loop'] = 0;
$kitgreen_loop['parts']['title'] = $parts_title;
$kitgreen_loop['parts']['meta'] = $parts_meta;
$kitgreen_loop['parts']['text'] = $parts_text;
if( ! $parts_btn )
$kitgreen_loop['parts']['btn'] = false;
$class = 'jws-masonry '.$blog_design.$animation_classes.'';
$data = 'data-masonry=\'{"selector":".post-item ", "columnWidth":".grid-sizer","layoutMode":"packery"}\'';
$sizer = '<div class="grid-sizer '.$size_col.'"></div>';
if(!$is_ajax) echo '<div class="kitgreen-blog-holder row ' . esc_attr( $class) . '" data-paged="1" data-atts="' . esc_attr( $encoded_atts ) . '" '.wp_kses_post( $data ).' >';
echo wp_kses_post( $sizer );
while ( $blog_query->have_posts() ) {
$blog_query->the_post();
if( $post_type == 'ids' && $include != '' ) {
?>
<div class="post-item <?php echo $class_column ; ?>">
<?php get_template_part( 'framework/templates/blog/entry' ); ?>
</div>
<?php
}
if($blog_design == "border-bottom") {
?>
<div class="post-item layout-2 <?php echo $class_column ; ?>">
<?php get_template_part( 'framework/templates/blog/entry2' ); ?>
</div>
<?php
}elseif($blog_design == "blog-menu"){
?>
<div class="post-item layout-4 <?php echo $class_column ; ?>">
<?php get_template_part( 'framework/templates/blog/entry4' ); ?>
</div>
<?php
}elseif($blog_design == 'image-left') {
?>
<div class="post-item layout-5 <?php echo $class_column ; ?>">
<?php get_template_part( 'framework/templates/blog/entry5' ); ?>
</div>
<?php
}
else {
?>
<div class="post-item layout-3 <?php echo $class_column ; ?>">
<?php get_template_part( 'framework/templates/blog/entry3' ); ?>
</div>
<?php
}
}
if(!$is_ajax) echo '</div>';
if ( $blog_query->max_num_pages > 1 && !$is_ajax && ! empty( $pagination ) ) {
?>
<div class="blog-footer <?php echo esc_attr($blog_design); ?>">
<?php if ($pagination == 'more-btn'): ?>
<a href="#" class=" kitgreen-blog-load-more"><span class="text_label"><?php _e('Load More', 'kitgreen'); ?></span><span class="lnr lnr-arrow-down"></span></a>
<p class="posts-loaded"><?php _e('All Posts Loaded.', 'kitgreen'); ?></p>
<?php elseif( $pagination == 'pagination' ): ?>
<?php query_pagination( $blog_query->max_num_pages ); ?>
<?php endif ?>
</div>
<?php
}
?>
<?php
unset( $kitgreen_loop );
wp_reset_postdata();
$output .= ob_get_clean();
ob_flush();
if( $is_ajax ) {
$output = array(
'items' => $output,
'status' => ( $blog_query->max_num_pages > $paged ) ? 'have-posts' : 'no-more-posts'
);
}
return $output;
}
add_shortcode( 'kitgreen_blog', 'kitgreen_shortcode_blog' );
}
/**
* ------------------------------------------------------------------------------------------------
* Team shortcode
* ------------------------------------------------------------------------------------------------
*/
if( ! function_exists( 'kitgreen_shortcode_team' ) ) {
function kitgreen_shortcode_team( $atts ) {
global $kitgreen_loop;
$parsed_atts = shortcode_atts( array(
'custom_query' => '',
'taxonomies' => '',
'pagination' => '',
'items_per_page' => 12,
'offset' => '',
'orderby' => 'date',
'team_design' => 'default',
'order' => 'DESC',
'meta_key' => '',
'exclude' => '',
'ajax_page' => '',
'img_size' => 'medium',
'team_columns' =>'2',
'animation' => '',
), $atts );
extract( $parsed_atts );
$encoded_atts = json_encode( $parsed_atts );
if ($team_columns == '2') {
$class_column = ' col-lg-6 col-md-6 col-sm-12 col-xs-12';
$size_col = "size-6" ;
}elseif($team_columns == '3') {
$class_column = ' col-lg-4 col-md-4 col-sm-6 col-xs-12';
$size_col = "size-4" ;
}
elseif($team_columns == '4') {
$class_column = ' col-lg-3 col-md-3 col-sm-6 col-xs-12';
$size_col = "size-3" ;
}elseif($team_columns == '5'){
$class_column = 'col-lg-5 col-md-2 col-sm-6 col-xs-12';
$size_col = "size-5" ;
}elseif($team_columns == '6'){
$class_column = ' col-lg-2 col-md-2 col-sm-6 col-xs-12';
$size_col = "size-2" ;
}else {
$class_column = ' col-lg-12 col-md-12 col-sm-16 col-xs-12';
$size_col = "size-1" ;
}
$is_ajax = (defined( 'DOING_AJAX' ) && DOING_AJAX);
$animation_classes = getCSSAnimation( $animation );
$output = '';
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
if( $ajax_page > 1 ) $paged = $ajax_page;
$args = array(
'post_type' => 'team',
'status' => 'published',
'paged' => $paged,
'posts_per_page' => $items_per_page
);
if( ! empty( $exclude ) ) {
$args['post__not_in'] = explode(',', $exclude);
}
if( ! empty( $taxonomies ) ) {
$taxonomy_names = get_object_taxonomies('team');
$terms = get_terms( $taxonomy_names, array(
'orderby' => 'name',
'include' => $taxonomies
));
if( ! is_wp_error( $terms ) && ! empty( $terms ) ) {
$args['tax_query'] = array('relation' => 'OR');
foreach ($terms as $key => $term) {
$args['tax_query'][] = array(
'taxonomy' => $term->taxonomy,
'field' => 'slug',
'terms' => array( $term->slug ),
'include_children' => true,
'operator' => 'IN'
);
}
}
}
if( ! empty( $order ) ) {
$args['order'] = $order;
}
if( ! empty( $offset ) ) {
$args['offset'] = $offset;
}
if( ! empty( $meta_key ) ) {
$args['meta_key'] = $meta_key;
}
if( ! empty( $orderby ) ) {
$args['orderby'] = $orderby;
}
$blog_query = new WP_Query($args);
ob_start();
$kitgreen_loop['img_size'] = $img_size;
$kitgreen_loop['loop'] = 0;
$class = 'jws-masonry '.$team_design.$animation_classes.'';
$data = 'data-masonry=\'{"selector":".team-item ","layoutMode":"packery"}\'';
$sizer = '<div class="grid-sizer '.$size_col.'"></div>';
if(!$is_ajax) echo '<div class="kitgreen-team-holder row ' . esc_attr( $class) . '" data-paged="1" data-atts="' . esc_attr( $encoded_atts ) . '" '.wp_kses_post( $data ).' >';
while ( $blog_query->have_posts() ) {
$blog_query->the_post();
if($team_design == "default") {
?>
<div class="team-item <?php echo $class_column ; ?>">
<?php get_template_part( 'framework/templates/team/entry' ); ?>
</div>
<?php
}else {
?>
<div class="team-item <?php echo $class_column ; ?>">
<?php get_template_part( 'framework/templates/team/entry2' ); ?>
</div>
<?php
}
}
if(!$is_ajax) echo '</div>';
if ( $blog_query->max_num_pages > 1 && !$is_ajax && ! empty( $pagination ) ) {
?>
<div class="team-footer <?php echo esc_attr($blog_design); ?>">
<?php if ($pagination == 'more-btn'): ?>
<a href="#" class=" kitgreen-blog-load-more"><span class="text_label"><?php _e('LOAD MORE', 'kitgreen'); ?></span><span class="icon ion-ios-arrow-thin-down"></span></a>
<p class="posts-loaded"><?php _e('All Posts Loaded.', 'kitgreen'); ?></p>
<?php elseif( $pagination == 'pagination' ): ?>
<?php query_pagination( $blog_query->max_num_pages ); ?>
<?php endif ?>
</div>
<?php
}
?>
<?php
unset( $kitgreen_loop );
wp_reset_postdata();
$output .= ob_get_clean();
ob_flush();
if( $is_ajax ) {
$output = array(
'items' => $output,
'status' => ( $blog_query->max_num_pages > $paged ) ? 'have-posts' : 'no-more-posts'
);
}
return $output;
}
add_shortcode( 'kitgreen_team', 'kitgreen_shortcode_team' );
}
/**
* ------------------------------------------------------------------------------------------------
* Team shortcode
* ------------------------------------------------------------------------------------------------
*/
if( ! function_exists( 'kitgreen_shortcode_search' ) ) {
function kitgreen_shortcode_search( $atts ) {
global $kitgreen_loop;
$parsed_atts = shortcode_atts( array(
'el_class' => '',
), $atts );
extract( $parsed_atts );
$output = '';
ob_start();
?>
<div id="search-modal" class="search-modal search-fix" tabindex="-1" role="dialog">
<div class="modal-content">
<form method="get" class="instance-search" action="<?php echo esc_url( home_url( '/' ) ); ?>">
<div class="loading">
</div>
<div class="search-fields">
<input type="text" name="s" placeholder="<?php esc_attr_e( 'Search Product ...', 'kitgreen' ); ?>" class="search-field" autocomplete="off">
<input type="hidden" name="post_type" value="product">
<span class="search-submit">
<button type="submit" class="lnr lnr-magnifier"></button>
</span>
</div>
</form>
<div class="search-results">
<div class="woocommerce"></div>
</div>
</div>
</div>
<?php
$output .= ob_get_clean();
ob_flush();
return $output;
}
add_shortcode( 'kitgreen_search', 'kitgreen_shortcode_search' );
}
/**
* ------------------------------------------------------------------------------------------------
* Service shortcode
* ------------------------------------------------------------------------------------------------
*/
if( ! function_exists( 'kitgreen_shortcode_service' ) ) {
function kitgreen_shortcode_service( $atts ) {
global $kitgreen_loop;
$parsed_atts = shortcode_atts( array(
'custom_query' => '',
'taxonomies' => '',
'pagination' => '',
'items_per_page' => 12,
'offset' => '',
'orderby' => 'date',
'service_design' => 'slider',
'order' => 'DESC',
'meta_key' => '',
'exclude' => '',
'ajax_page' => '',
'img_size' => 'medium',
'service_columns' =>'2',
'number_show' => '3',
'animation' => '',
'text_more' => 'Continue Reading',
), $atts );
extract( $parsed_atts );
$encoded_atts = json_encode( $parsed_atts );
if ($service_columns == '2') {
$class_column = ' col-lg-6 col-md-6 col-sm-12 col-xs-12';
$size_col = "size-6" ;
}elseif($service_columns == '3') {
$class_column = ' col-lg-4 col-md-4 col-sm-6 col-xs-12';
$size_col = "size-4" ;
}
elseif($service_columns == '4') {
$class_column = ' col-lg-3 col-md-3 col-sm-6 col-xs-12';
$size_col = "size-3" ;
}elseif($service_columns == '5'){
$class_column = 'col-lg-5 col-md-2 col-sm-6 col-xs-12';
$size_col = "size-5" ;
}elseif($service_columns == '6'){
$class_column = ' col-lg-2 col-md-2 col-sm-6 col-xs-12';
$size_col = "size-2" ;
}else {
$class_column = ' col-lg-12 col-md-12 col-sm-16 col-xs-12';
$size_col = "size-1" ;
}
$is_ajax = (defined( 'DOING_AJAX' ) && DOING_AJAX);
$animation_classes = getCSSAnimation( $animation );
$output = '';
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
if( $ajax_page > 1 ) $paged = $ajax_page;
$args = array(
'post_type' => 'service',
'status' => 'published',
'paged' => $paged,
'posts_per_page' => $items_per_page
);
if( ! empty( $exclude ) ) {
$args['post__not_in'] = explode(',', $exclude);
}
if( ! empty( $taxonomies ) ) {
$taxonomy_names = get_object_taxonomies('service');
$terms = get_terms( $taxonomy_names, array(
'orderby' => 'name',
'include' => $taxonomies
));
if( ! is_wp_error( $terms ) && ! empty( $terms ) ) {
$args['tax_query'] = array('relation' => 'OR');
foreach ($terms as $key => $term) {
$args['tax_query'][] = array(
'taxonomy' => $term->taxonomy,
'field' => 'slug',
'terms' => array( $term->slug ),
'include_children' => true,
'operator' => 'IN'
);
}
}
}
if( ! empty( $order ) ) {
$args['order'] = $order;
}
if( ! empty( $offset ) ) {
$args['offset'] = $offset;
}
if( ! empty( $meta_key ) ) {
$args['meta_key'] = $meta_key;
}
if( ! empty( $orderby ) ) {
$args['orderby'] = $orderby;
}
$blog_query = new WP_Query($args);
ob_start();
$kitgreen_loop['text_more'] = $text_more;
$kitgreen_loop['img_size'] = $img_size;
$kitgreen_loop['loop'] = 0;
if($service_design != "slider") {
$data = 'data-masonry=\'{"selector":".service-item ", "columnWidth":".grid-sizer","layoutMode":"packery"}\'';
$sizer = '<div class="grid-sizer '.$size_col.'"></div>';
$slider = "";
}else {
$data = 'data-slick=\'{"slidesToShow":'.$number_show.', "slidesToScroll":1 , "arrows":false , "speed":700 , "dots":true,"responsive":[{"breakpoint": 1024,"settings":{"slidesToShow": '.round($number_show - 1) .'}},{"breakpoint": 480,"settings":{"slidesToShow": 1}}] }\'';
$sizer = '';
$slider = " service_slider ";
$class_column = "";
}
$class = 'jws-masonry '.$service_design.$animation_classes.$slider.'';
if(!$is_ajax) echo '<div class="kitgreen-service-holder row ' . esc_attr( $class) . '" data-paged="1" data-atts="' . esc_attr( $encoded_atts ) . '" '.wp_kses_post( $data ).' >';
echo wp_kses_post( $sizer );
while ( $blog_query->have_posts() ) {
$blog_query->the_post();
if($service_design == "slider" || $service_design == "grid2" ) {
?>
<div class="service-item <?php echo $class_column ; ?>">
<?php get_template_part( 'framework/templates/service/entry' ); ?>
</div>
<?php
}else {
?>
<div class="service-item <?php echo $class_column ; ?>">
<?php get_template_part( 'framework/templates/service/entry2' ); ?>
</div>
<?php
}
}
if(!$is_ajax) echo '</div>';
if ( $blog_query->max_num_pages > 1 && !$is_ajax && ! empty( $pagination ) ) {
?>
<div class="service-footer <?php echo esc_attr($blog_design); ?>">
<?php if ($pagination == 'more-btn'): ?>
<a href="#" class=" kitgreen-blog-load-more"><span class="text_label"><?php _e('LOAD MORE', 'kitgreen'); ?></span><span class="icon ion-ios-arrow-thin-down"></span></a>
<p class="posts-loaded"><?php _e('All Posts Loaded.', 'kitgreen'); ?></p>
<?php elseif( $pagination == 'pagination' ): ?>
<?php query_pagination( $blog_query->max_num_pages ); ?>
<?php endif ?>
</div>
<?php
}
unset( $kitgreen_loop );
wp_reset_postdata();
$output .= ob_get_clean();
ob_flush();
if( $is_ajax ) {
$output = array(
'items' => $output,
'status' => ( $blog_query->max_num_pages > $paged ) ? 'have-posts' : 'no-more-posts'
);
}
return $output;
}
add_shortcode( 'kitgreen_service', 'kitgreen_shortcode_service' );
}
/**
* ------------------------------------------------------------------------------------------------
* Service shortcode
* ------------------------------------------------------------------------------------------------
*/
if( ! function_exists( 'kitgreen_shortcode_portfolio_slider' ) ) {
function kitgreen_shortcode_portfolio_slider( $atts ) {
global $kitgreen_loop;
$parsed_atts = shortcode_atts( array(
'custom_query' => '',
'taxonomies' => '',
'offset' => '',
'orderby' => 'date',
'order' => 'DESC',
'meta_key' => '',
'exclude' => '',
'img_size' => 'medium',
'number_show' => '3',
'animation' => '',
'items_per_page' => '-1',
), $atts );
extract( $parsed_atts );
$encoded_atts = json_encode( $parsed_atts );
$animation_classes = getCSSAnimation( $animation );
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
'post_type' => 'portfolio',
'status' => 'published',
'paged' => $paged,
'posts_per_page' => $items_per_page
);
if( ! empty( $exclude ) ) {
$args['post__not_in'] = explode(',', $exclude);
}
if( ! empty( $taxonomies ) ) {
$taxonomy_names = get_object_taxonomies('portfolio');
$terms = get_terms( $taxonomy_names, array(
'orderby' => 'name',
'include' => $taxonomies
));
if( ! is_wp_error( $terms ) && ! empty( $terms ) ) {
$args['tax_query'] = array('relation' => 'OR');
foreach ($terms as $key => $term) {
$args['tax_query'][] = array(
'taxonomy' => $term->taxonomy,
'field' => 'slug',
'terms' => array( $term->slug ),
'include_children' => true,
'operator' => 'IN'
);
}
}
}
if( ! empty( $order ) ) {
$args['order'] = $order;
}
if( ! empty( $offset ) ) {
$args['offset'] = $offset;
}
if( ! empty( $meta_key ) ) {
$args['meta_key'] = $meta_key;
}
if( ! empty( $orderby ) ) {
$args['orderby'] = $orderby;
}
$blog_query = new WP_Query($args);
ob_start();
$kitgreen_loop['img_size'] = $img_size;
$kitgreen_loop['loop'] = 0; ?>
<div class="kitgreen-portfolio-slider">
<div class="portfolio-content-container row" data-slick='{"slidesToShow":1, "slidesToScroll":1 ,"fade":true , "arrows":false , "speed":700 , "dots":false , "asNavFor":".portfolio-thumbnail-container" }' >
<?php while ( $blog_query->have_posts() ) {
$blog_query->the_post(); ?>
<div class="portfolio-content ">
<div class="col-md-7 col-sm-6 col-xs-12">
<?php echo kitgreen_get_post_thumbnail( 'large'); ?>
</div>
<div class="col-md-5 col-sm-6 col-xs-12">
<div class="content">
<div class="title">
<h4>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</h4>
</div>
<div class="cat">
<?php
$item_cats = get_the_terms( get_the_ID(), 'portfolio_cat' );
if ( $item_cats ):
foreach ( $item_cats as $item_cat ) {
?>
<a href="<?php echo esc_url(get_term_link($item_cat->slug, 'portfolio_cat')); ?>">
<?php echo $item_cat->name . ' '; ?>
</a><span>/</span>
<?php }
endif;
?>
</div>
<div class="excerpt">
<?php the_excerpt(); ?>
</div>
<div class="readmore">
<a href="<?php the_permalink(); ?>"><?php esc_html_e("View Detail" , "kitgreen") ?><span class="lnr lnr-arrow-right"></span></a>
</div>
</div>
<?php ?>
</div>
</div>
<?php } ?>
</div>
<div class="portfolio-thumbnail-container" data-slick='{"slidesToShow":<?php echo $number_show; ?>, "slidesToScroll":1 , "arrows":true , "speed":700 , "dots":false , "focusOnSelect":true , "asNavFor":".portfolio-content-container" }'>
<?php while ( $blog_query->have_posts() ) {
$blog_query->the_post(); ?>
<div class="portfolio-thumbnail">
<?php if ( has_post_thumbnail() ) : ?>
<?php echo kitgreen_get_post_thumbnail( '270x170'); ?>
<?php endif; ?>
</div>
<?php } ?>
</div>
</div>
<?php unset( $kitgreen_loop );
wp_reset_postdata();
return ob_get_clean();
ob_flush();
}
add_shortcode( 'kitgreen_portfolio_slider', 'kitgreen_shortcode_portfolio_slider' );
}
if( ! function_exists( 'kitgreen_get_blog_shortcode_ajax' ) ) {
add_action( 'wp_ajax_kitgreen_get_blog_shortcode', 'kitgreen_get_blog_shortcode_ajax' );
add_action( 'wp_ajax_nopriv_kitgreen_get_blog_shortcode', 'kitgreen_get_blog_shortcode_ajax' );
function kitgreen_get_blog_shortcode_ajax() {
if( ! empty( $_POST['atts'] ) ) {
$atts = $_POST['atts'];
$paged = (empty($_POST['paged'])) ? 2 : (int) $_POST['paged'] + 1;
$atts['ajax_page'] = $paged;
$data = kitgreen_shortcode_blog($atts);
echo json_encode( $data );
die();
}
}
}
/**
* ------------------------------------------------------------------------------------------------
* Counter shortcode
* ------------------------------------------------------------------------------------------------
*/
if( ! function_exists( 'extra_shortcode_animated_counter' )) {
function extra_shortcode_animated_counter($atts) {
$output = $label = $el_class = '';
extract( shortcode_atts( array(
'label' => '',
'value' => 100,
'icon' => '',
'el_class' => '',
'layout' => 'layout1',
'animation' => '',
), $atts ) );
$animation_classes = getCSSAnimation( $animation );
ob_start();
wp_enqueue_script( 'counter-up.min', URI_PATH.'/assets/js/dev/jquery.counterup.min.js', array('jquery'), '', true );
wp_enqueue_script( 'setupap', URI_PATH.'/assets/js/dev/appear.js', array('jquery'), '', true );
wp_enqueue_script( 'setup', URI_PATH.'/assets/js/dev/setup_animation.js', array('jquery'), '', true );
wp_enqueue_style( 'csscout', URI_PATH.'/assets/css/cout_up.css', array(), '4.1.0');
?>
<div class="counter_up_out <?php echo esc_attr($animation_classes); echo esc_attr(' '.$layout); ?>">
<div class="extra-counter <?php echo esc_attr($el_class ); ?>">
<div class="text_content">
<?php if ($icon != ''): ?>
<span class="<?php echo esc_attr($icon); ?> ct_icon"></span>
<?php endif ?>
<h2 class="counter-value odometer" data-number="<?php echo esc_attr( $value ); ?>" data-duration="2000" ></h2>
<?php if ($label != ''): ?>
<p class="counter-label"><?php echo esc_html( $label ); ?></p>
<?php endif ?>
</div>
</div>
</div>
<?php
$output .= ob_get_clean();
return $output;
}
add_shortcode( 'kitgreen_counter_up', 'extra_shortcode_animated_counter' );
}
/**
* ------------------------------------------------------------------------------------------------
* Portfolio shortcode
* ------------------------------------------------------------------------------------------------
*/
if( ! function_exists( 'kitgreen_shortcode_portfolio' ) ) {
function kitgreen_shortcode_portfolio( $atts ) {
global $kitgreen_portfolio_loop, $kitgreen_loop;
$output = $title = $el_class = '';
$parsed_atts = shortcode_atts( array(
'posts_per_page' => '',
'filters' => '',
'categories' => '',
'columns' => '4',
'spacing' => '0',
'ajax_page' => '',
'pagination' => ' ',
'orderby' => 'post_date',
'order' => 'DESC',
'el_class' => '',
'img_size'=>"",
'layout' =>'grid',
'style' => 'st1',
'animation' => '',
'hover_style' => 'hover1',
'view_all_text' => 'View All',
'view_all_link' => '#'
), $atts );
extract( $parsed_atts );
$encoded_atts = json_encode( $parsed_atts );
$animation_classes = getCSSAnimation( $animation );
$is_ajax = (defined( 'DOING_AJAX' ) && DOING_AJAX);
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
if( $ajax_page > 1 ) $paged = $ajax_page;
$args = array(
'post_type' => 'portfolio',
'posts_per_page' => $posts_per_page,
'orderby' => $orderby,
'order' => $order,
'paged' => $paged
);
if( get_query_var('portfolio_cat') != '' ) {
$args['tax_query'] = array(
array(
'taxonomy' => 'portfolio_cat',
'field' => 'slug',
'terms' => get_query_var('portfolio_cat')
),
);
}
if( $categories != '' ) {
$args['tax_query'] = array(
array(
'taxonomy' => 'portfolio_cat',
'field' => 'term_id',
'operator' => 'IN',
'terms' => $categories
),
);
}
$style_nav = " ";
if($style == 'st1') {
$style_nav = ' nav_1 ';
}elseif($style == 'st2') {
$style_nav = ' nav_2 ';
}else {
$style_nav = ' nav_3 ';
}
if($columns == "4") {
$size_pp = '3';
}elseif($columns == "3"){
$size_pp = '4';
}elseif($columns == "2"){
$size_pp = '6';
}else {
$size_pp = '2';
}
$kitgreen_portfolio_loop['columns'] = $columns;
$kitgreen_portfolio_loop['img_size'] = $img_size;
$kitgreen_portfolio_loop['layout'] = $layout;
$kitgreen_portfolio_loop['spacing'] = $spacing;
$class = $data = $sizer = '';
$class = ' jws-masonry ';
$data = 'data-masonry=\'{"selector":".item_portfolio ","layoutMode":"masonryHorizontal"}\'';
$sizer = '<div class="grid-sizer size-'.$size_pp.'"></div>';
$query = new WP_Query( $args );
ob_start();
if($layout == "grid2") :
wp_enqueue_style( 'lightbox-css', URI_PATH.'/assets/css/css_jws/lightbox.css', false );
wp_enqueue_style( 'black-css', URI_PATH.'/assets/css/css_jws/skin/black.css', false );
wp_enqueue_script( 'lightbox-js', URI_PATH.'/assets/js/dev/lightbox.js', array('jquery'), '', true );
wp_enqueue_script( 'lightbox-ac', URI_PATH.'/assets/js/dev/start-video.js', array('jquery'), '', true );
endif;
?>
<?php if ( ! $is_ajax ): ?>
<div class="<?php echo esc_attr($animation_classes); echo esc_attr($el_class); ?> site-content page-portfolio" role="main">
<?php endif ?>
<?php if ( $query->have_posts() ) : ?>
<?php if ( ! $is_ajax ): ?>
<div class="row row-spacing-<?php echo esc_attr( $spacing ); ?>">
<?php if ( ! is_tax() && $filters ): ?>
<?php
$cats = get_terms( 'portfolio_cat', array( 'parent' => $categories ) );
if( ! is_wp_error( $cats ) && ! empty( $cats ) ) {
?>
<div class="portfolio-filter">
<ul class="masonry-filter list-inline text-center <?php echo esc_attr($style_nav); ?>">
<li><a href="#" data-filter="*" class="filter-active"><?php _e('All', 'kitgreen'); ?></a></li>
<?php
foreach ($cats as $key => $cat) {
?>
<li><a href="#" data-filter="<?php echo ".".esc_attr( $cat->slug ); ?>"><?php echo esc_html( $cat->name ); ?></a></li>
<?php
}
?>
</ul>
</div>
<?php
}
?>
<?php endif ?>
<div class="clear"></div>
<div class="masonry-container kitgreen-portfolio-holder <?php echo esc_attr($layout); echo esc_attr($class); echo esc_attr($el_class);?>" data-atts="<?php echo esc_attr( $encoded_atts ); ?>" data-source="shortcode" data-paged="1" <?php //echo wp_kses_post( $data ); ?>>
<?php endif ?>
<?php //echo wp_kses_post( $sizer ); ?>
<?php while ( $query->have_posts() ) : $query->the_post();?>
<?php
if($layout == "grid2") {
get_template_part( 'content', 'portfolio2' );
}else {
get_template_part( 'content', 'portfolio' );
}
?>
<?php endwhile; ?>
<?php if ( ! $is_ajax ): ?>
</div>
</div>
<?php
if ( $query->max_num_pages > 1 && !$is_ajax && $pagination != 'disable' && $pagination != 'view-btn' ) {
?>
<div class="portfolio-footer">
<?php if ( $pagination == 'more-btn'): ?>
<a href="#" class="btn_load kitgreen-portfolio-load-more load-on-<?php echo ($pagination == 'more-btn') ? 'click' : 'scroll'; ?>"><?php esc_html_e('LOAD MORE', 'kitgreen'); ?><span class="lnr lnr-arrow-down"></span></a>
<?php else: ?>
<?php query_pagination( $query->max_num_pages ); ?>
<?php endif ?>
</div>
<?php
}else { if ( $pagination == 'view-btn') : ?>
<div class="portfolio-footer">
<a href="<?php echo esc_url($view_all_link); ?>" class="view_all btn_load"><?php echo esc_attr($view_all_text); ?><span class="lnr lnr-arrow-right"></span></a>
</div>
<?php endif; }
?>
<?php endif ?>
<?php elseif ( ! $is_ajax ) : ?>
<?php get_template_part( 'content', 'none' ); ?>
<?php endif; ?>
<?php if ( ! $is_ajax ): ?>
</div><!-- .site-content -->
<?php endif ?>
<?php
$output .= ob_get_clean();
wp_reset_postdata();
if( $is_ajax ) {
$output = array(
'items' => $output,
'status' => ( $query->max_num_pages > $paged ) ? 'have-posts' : 'no-more-posts'
);
}
return $output;
}
add_shortcode( 'kitgreen_portfolio', 'kitgreen_shortcode_portfolio' );
}
if( ! function_exists( 'kitgreen_get_portfolio_shortcode_ajax' ) ) {
add_action( 'wp_ajax_kitgreen_get_portfolio_shortcode', 'kitgreen_get_portfolio_shortcode_ajax' );
add_action( 'wp_ajax_nopriv_kitgreen_get_portfolio_shortcode', 'kitgreen_get_portfolio_shortcode_ajax' );
function kitgreen_get_portfolio_shortcode_ajax() {
if( ! empty( $_POST['atts'] ) ) {
$atts = $_POST['atts'];
$paged = (empty($_POST['paged'])) ? 2 : (int) $_POST['paged'] + 1;
$atts['ajax_page'] = $paged;
$data = kitgreen_shortcode_portfolio($atts);
echo json_encode( $data );
die();
}
}
}
/**
* ------------------------------------------------------------------------------------------------
* Categories grid shortcode
* ------------------------------------------------------------------------------------------------
*/
if( ! function_exists( 'kitgreen_shortcode_categories' )) {
function kitgreen_shortcode_categories($atts, $content) {
global $woocommerce_loop;
$extra_class = '';
$parsed_atts = shortcode_atts( array_merge( kitgreen_get_owl_atts(), array(
'title' => __( 'Categories', 'kitgreen' ),
'number' => null,
'orderby' => 'name',
'order' => 'ASC',
'columns' => '4',
'hide_empty' => 1,
'parent' => '',
'ids' => '',
'spacing' => 30,
'style' => 'default',
'el_class' => '',
) ), $atts );
extract( $parsed_atts );
if ( isset( $ids ) ) {
$ids = explode( ',', $ids );
$ids = array_map( 'trim', $ids );
} else {
$ids = array();
}
$hide_empty = ( $hide_empty == true || $hide_empty == 1 ) ? 1 : 0;
// get terms and workaround WP bug with parents/pad counts
$args = array(
'orderby' => $orderby,
'order' => $order,
'hide_empty' => $hide_empty,
'include' => $ids,
'pad_counts' => true,
'child_of' => $parent
);
$product_categories = get_terms( 'product_cat', $args );
if ( '' !== $parent ) {
$product_categories = wp_list_filter( $product_categories, array( 'parent' => $parent ) );
}
if ( $hide_empty ) {
foreach ( $product_categories as $key => $category ) {
if ( $category->count == 0 ) {
unset( $product_categories[ $key ] );
}
}
}
if ( $number ) {
$product_categories = array_slice( $product_categories, 0, $number );
}
if($columns == "4") {
$columnsit = "col-md-3 col-sm-6 col-xs-12";
}elseif($columns == "3") {
$columnsit = "col-md-4 col-sm-6 col-xs-12";
}elseif($columns == "2") {
$columnsit = "col-md-6 col-sm-6 col-xs-12";
}else {
$columnsit = "col-md-2 col-sm-6 col-xs-12";
}
$columns = absint( $columns );
if( $style == 'masonry' ) {
$extra_class = 'categories-masonry';
}
if( $style == 'masonry-first' ) {
$woocommerce_loop['different_sizes'] = array(1);
$extra_class = 'categories-masonry';
$columns = 4;
}
$extra_class .= ' categories-space-' . $spacing;
$woocommerce_loop['columns'] = $columns;
$woocommerce_loop['style'] = $style;
$carousel_id = 'carousel-' . rand(100,999);
ob_start();
// Reset loop/columns globals when starting a new loop
$woocommerce_loop['loop'] = '';
if ( $product_categories ) {
//woocommerce_product_loop_start();
if( $style == 'carousel' ) {
?>
<div id="<?php echo esc_attr( $carousel_id ); ?>" class="vc_carousel_container">
<div class="owl-carousel carousel-items">
<?php foreach ( $product_categories as $category ): ?>
<div class="category-item">
<?php
wc_get_template( 'content-product_cat.php', array(
'category' => $category
) );
?>
</div>
<?php endforeach; ?>
</div>
</div> <!-- end #<?php echo esc_html( $carousel_id ); ?> -->
<?php
$parsed_atts['carousel_id'] = $carousel_id;
kitgreen_owl_carousel_init( $parsed_atts );
} else {
foreach ( $product_categories as $category ) {
?> <div class="cat-item <?php echo esc_attr($columnsit); ?>"> <?php
wc_get_template( 'content-product_cat.php', array(
'category' => $category
) );
?></div><?php
}
}
//woocommerce_product_loop_end();
}
unset($woocommerce_loop['different_sizes']);
woocommerce_reset_loop();
if( $style == 'carousel' ) {
return '<div class="woocommerce categories-style-'. esc_attr( $style ) . ' ' . esc_attr( $extra_class ) . '">' . ob_get_clean() . '</div>';
} else {
return '<div class="woocommerce row categories-style-'. esc_attr( $style ) . ' ' . esc_attr( $extra_class ) . ' columns-' . $columns . '">' . ob_get_clean() . '</div>';
}
}
add_shortcode( 'kitgreen_categories', 'kitgreen_shortcode_categories' );
}
/**
* ------------------------------------------------------------------------------------------------
* Products widget shortcode
* ------------------------------------------------------------------------------------------------
*/
if( ! function_exists( 'kitgreen_shortcode_products_widget' )) {
function kitgreen_shortcode_products_widget($atts, $content) {
$output = $title = $el_class = '';
extract( shortcode_atts( array(
'title' => __( 'Products', 'kitgreen' ),
'el_class' => ''
), $atts ) );
$output = '<div class="widget_products' . $el_class . '">';
$type = 'WC_Widget_Products';
$args = array('widget_id' => rand(10,99));
ob_start();
the_widget( $type, $atts, $args );
$output .= ob_get_clean();
$output .= '</div>';
return $output;
}
add_shortcode( 'kitgreen_shortcode_products_widget', 'kitgreen_shortcode_products_widget' );
}
/**
* ------------------------------------------------------------------------------------------------
* Counter shortcode
* ------------------------------------------------------------------------------------------------
*/
if( ! function_exists( 'kitgreen_shortcode_animated_counter' )) {
function kitgreen_shortcode_animated_counter($atts) {
$output = $label = $el_class = '';
extract( shortcode_atts( array(
'label' => '',
'value' => 100,
'time' => 1000,
'size' => 'default',
'el_class' => ''
), $atts ) );
$el_class .= ' counter-' . $size;
ob_start();
?>
<div class="kitgreen-counter <?php echo esc_attr( $el_class ); ?>">
<span class="counter-value" data-state="new" data-final="<?php echo esc_attr( $value ); ?>"><?php echo esc_attr( $value ); ?></span>
<?php if ($label != ''): ?>
<span class="counter-label"><?php echo esc_html( $label ); ?></span>
<?php endif ?>
</div>
<?php
$output .= ob_get_clean();
return $output;
}
add_shortcode( 'kitgreen_counter', 'kitgreen_shortcode_animated_counter' );
}
/**
* ------------------------------------------------------------------------------------------------
* testimonials shortcodes
* ------------------------------------------------------------------------------------------------
*/
if( ! function_exists( 'kitgreen_shortcode_testimonials' ) ) {
function kitgreen_shortcode_testimonials($atts = array(), $content = null) {
$output = $class = $autoplay = '';
$parsed_atts = shortcode_atts( array_merge( kitgreen_get_owl_atts(), array(
'style' => 'standard', // standard boxed
'align' => 'center', // left center
'name' => '',
'title' => '',
'el_class' => '',
'slides_per_view' => '3',
'slides_per_view_2' => '2',
'slides_per_view_3' => '1',
'layout' => 'layout1',
'animation' => '',
'image' => '',
) ), $atts );
extract( $parsed_atts );
$class .= ' ' . $el_class;
ob_start();
$animation_classes = getCSSAnimation( $animation );
?>
<div class="testimonials-wrapper <?php echo esc_attr($layout); echo esc_attr($animation_classes); ?>">
<?php if($layout == 'layout1') { ?>
<div id="content" class="flexslider">
<?php echo do_shortcode( $content ); ?>
</div>
<div id="thmbnail-img" class="flexslider" >
<?php echo do_shortcode( $content ); ?>
</div>
<div id="content2" class="flexslider content_bottom">
<?php echo do_shortcode( $content ); ?>
</div>
<?php }elseif($layout == 'layout4') { ?>
<div class="slider4">
<?php echo do_shortcode( $content ); ?>
</div>
<?php } else { ?>
<div id="content" class="flexslider">
<?php echo do_shortcode( $content ); ?>
</div>
<?php } ?>
</div>
<?php if($layout == 'layout1' || $layout == 'layout2' || $layout == 'layout4' ) { ?>
<script>
jQuery(document).ready(function($) {
function jwsthemetestimonialSlider() {
<?php if($layout == 'layout1') { ?>
$('#content').not('.slick-initialized').slick({
slidesToShow:1,
slidesToScroll: 1,
arrows: false,
fade: false,
asNavFor: '#thmbnail-img , #content2 ',
arrows: true,
nextArrow: '<span class="lnr lnr-chevron-right"></span>',
prevArrow: '<span class="lnr lnr-chevron-left"></span>',
});
$('#content2').not('.slick-initialized').slick({
slidesToShow:1,
slidesToScroll: 1,
arrows: false,
fade: false,
asNavFor: '#thmbnail-img'
});
$('#thmbnail-img').not('.slick-initialized').slick({
slidesToShow: 3,
slidesToScroll: 1,
asNavFor: '#content',
dots: false,
centerMode: true,
arrows: false,
responsive: [
{
breakpoint: 768,
settings: {
arrows: true,
centerMode: true,
centerPadding: '0px',
slidesToShow: 1
}
},
{
breakpoint: 480,
settings: {
arrows: true,
centerMode: true,
centerPadding: '0px',
slidesToShow: 1
}
}
]
});
<?php } elseif($layout == 'layout4') { ?>
$('.slider4').not('.slick-initialized').slick({
slidesToShow: <?php echo $slides_per_view; ?>,
slidesToScroll: 1,
dots: false,
nextArrow: '<span class="lnr lnr-chevron-right"></span>',
prevArrow: '<span class="lnr lnr-chevron-left"></span>',
responsive: [
{
breakpoint: 991,
settings: {
slidesToShow: <?php echo $slides_per_view_2; ?>,
}
},
{
breakpoint: 560,
settings: {
slidesToShow: <?php echo $slides_per_view_3; ?>,
}
}
]
});
<?php } else { ?>
$('#content').not('.slick-initialized').slick({
dots: false,
arrows: true,
infinite: true,
slidesToShow: 1,
slidesToScroll:1,
nextArrow: '<span class="lnr lnr-chevron-right"></span>',
prevArrow: '<span class="lnr lnr-chevron-left"></span>',
responsive: [
{
breakpoint: 1199,
settings: {
centerMode: true,
centerPadding: '0px',
slidesToShow: 1,
}
},
{
breakpoint: 480,
settings: {
centerMode: true,
centerPadding: '0px',
slidesToShow: 1 ,
}
}
]
});
<?php } ?>
}
jwsthemetestimonialSlider();
//Now it will not throw error, even if called multiple times.
$(window).on( 'resize', jwsthemetestimonialSlider );
});
</script>
<?php } ?>
<?php
$output = ob_get_contents();
ob_end_clean();
return $output;
}
add_shortcode( 'testimonials', 'kitgreen_shortcode_testimonials' );
}
if( ! function_exists( 'kitgreen_shortcode_testimonial' ) ) {
function kitgreen_shortcode_testimonial($atts, $content) {
if( ! function_exists( 'wpb_getImageBySize' ) ) return;
$output = $class = '';
extract(shortcode_atts( array(
'image' => '',
'image_before' => '',
'image_after' => '',
'img_size' => '100x100',
'name' => '',
'title' => '',
'el_class' => '',
'layout' => 'layout1',
'date' => '',
'project' => ''
), $atts ));
$img_id = preg_replace( '/[^\d]/', '', $image );
$img_id_bf = preg_replace( '/[^\d]/', '', $image_before );
$img_id_at = preg_replace( '/[^\d]/', '', $image_after );
$img = wpb_getImageBySize( array( 'attach_id' => $img_id, 'thumb_size' => $img_size, 'class' => 'testimonial-avatar-image' ) );
$img_before = wpb_getImageBySize( array( 'attach_id' => $img_id_bf, 'thumb_size' => $img_size, 'class' => 'testimonial-before-image' ) );
$img_after = wpb_getImageBySize( array( 'attach_id' => $img_id_at, 'thumb_size' => $img_size, 'class' => 'testimonial-after-image' ) );
$class .= ' ' . $el_class;
ob_start();
?>
<div class="testimonial<?php echo esc_attr( $class ); ?>" >
<?php if($layout == 'layout1') { ?>
<div class="testimonial-content">
<?php echo do_shortcode( $content ); ?>
</div>
<div class="testimonial-avatar">
<div class="image">
<?php echo $img['thumbnail']; ?>
</div>
<footer>
<h5><?php echo esc_html( $name ); ?> / </h5>
<span><?php echo esc_html( $title ); ?></span>
</footer>
</div>
<?php }elseif($layout == 'layout2') { ?>
<div class="slider_container">
<div class="slider_inner">
<div class="image display_flex">
<div class="before">
<span><?php esc_html_e('Before' , 'kitgreen'); ?></span>
<?php echo $img_before['thumbnail']; ?>
</div>
<div class="after">
<span><?php esc_html_e('After' , 'kitgreen'); ?></span>
<?php echo $img_after['thumbnail']; ?>
</div>
</div>
<div class="testimonial-content">
<?php echo do_shortcode( $content ); ?>
<footer>
<h5><?php echo esc_html( $name ); ?></h5>
<span> / <?php echo esc_html( $title ); ?></span>
</footer>
</div>
</div>
</div>
<?php } elseif($layout == 'layout3') { ?>
<div class="slider_container">
<div class="slider_inner">
<div class="slider_inner_child">
<div class="testimonial-content">
<?php echo do_shortcode( $content ); ?>
</div>
<div class="testimonial-avatar">
<div class="image">
<?php echo $img['thumbnail']; ?>
</div>
</div>
<footer>
<h5><?php echo esc_html( $name ); ?> </h5>
<span><?php echo esc_html( $title ); ?></span>
</footer>
</div>
</div>
</div>
<?php } else { ?>
<div class="slider_container">
<div class="slider_inner">
<div class="slider_inner_child">
<div class="testimonial-content">
<?php echo do_shortcode( $content ); ?>
</div>
</div>
<div class="client_info">
<div class="info_top">
<div class="testimonial-avatar">
<div class="image">
<?php echo $img['thumbnail']; ?>
</div>
</div>
<footer>
<h5><?php echo esc_html( $name ); ?> </h5>
<?php if(!empty($name) || !empty($title) ) : ?>
<span class="line">/</span>
<?php endif; ?>
<span><?php echo esc_html( $title ); ?></span>
</footer>
</div>
<div class="info_bottom">
<div class="date"><?php echo $date; ?></div>
<?php if(!empty($name) || !empty($title) ) : ?>
<span class="line">|</span>
<?php endif; ?>
<div class="project"><?php echo $project; ?></div>
</div>
</div>
</div>
</div>
<?php } ?>
</div>
<?php
$output = ob_get_contents();
ob_end_clean();
return $output;
}
add_shortcode( 'testimonial', 'kitgreen_shortcode_testimonial' );
}
if( ! function_exists( 'kitgreen_shortcode_team' ) ) {
function kitgreen_shortcode_team($atts, $content) {
if( ! function_exists( 'wpb_getImageBySize' ) ) return;
$output = $class = '';
extract(shortcode_atts( array(
'image' => '',
'img_size' => '100x100',
'name' => '',
'title' => '',
'el_class' => '',
'layout' => 'layout1',
), $atts ));
$img_id = preg_replace( '/[^\d]/', '', $image );
$img = wpb_getImageBySize( array( 'attach_id' => $img_id, 'thumb_size' => $img_size, 'class' => 'team-avatar-image' ) );
$class .= ' ' . $el_class;
ob_start();
?>
<div class="team<?php echo esc_attr( $class ); ?>" >
<?php if($layout == 'layout1') { ?>
<div class="team_container">
<div class="content_container">
<div class="team-content">
<?php echo do_shortcode( $content ); ?>
</div>
</div>
<div class="team-avatar">
<?php echo $img['thumbnail']; ?>
<footer>
<h5><?php echo esc_html( $name ); ?> </h5>
<span><?php echo esc_html( $title ); ?></span>
</footer>
</div>
</div>
<?php }else { ?>
<div class="slider_container">
<div class="slider_inner">
<div class="team-content">
<?php echo do_shortcode( $content ); ?>
</div>
<footer>
<h5><?php echo esc_html( $name ); ?> </h5>
<span><?php echo esc_html( $title ); ?></span>
</footer>
<div class="team-avatar">
<div class="image">
<?php echo $img['thumbnail']; ?>
</div>
</div>
</div>
</div>
<?php } ?>
</div>
<?php
$output = ob_get_contents();
ob_end_clean();
return $output;
}
add_shortcode( 'team', 'kitgreen_shortcode_team' );
}
/**
* ------------------------------------------------------------------------------------------------
* Pricing tables shortcodes
* ------------------------------------------------------------------------------------------------
*/
if( ! function_exists( 'kitgreen_shortcode_pricing_tables' ) ) {
function kitgreen_shortcode_pricing_tables($atts = array(), $content = null) {
$output = $class = $autoplay = '';
extract(shortcode_atts( array(
'el_class' => '',
'view' => '3'
), $atts ));
$class .= ' ' . $el_class;
ob_start();
?>
<div class="pricing-tables-wrapper">
<div class="pricing-tables<?php echo esc_attr( $class ); ?>" >
<?php echo do_shortcode( $content ); ?>
</div>
</div>
<?php
$output = ob_get_contents();
ob_end_clean();
return $output;
}
add_shortcode( 'pricing_tables', 'kitgreen_shortcode_pricing_tables' );
}
if( ! function_exists( 'kitgreen_shortcode_pricing_plan' ) ) {
function kitgreen_shortcode_pricing_plan($atts, $content) {
global $wpdb, $post;
if( ! function_exists( 'wpb_getImageBySize' ) ) return;
$output = $class = '';
extract(shortcode_atts( array(
'name' => '',
'price_value' => '',
'price_suffix' => '/ 1 kitchen',
'features_list' => '',
'image' => '',
'link' => '#',
'button_label' => 'Book Now',
'el_class' => '',
'animation' => '',
'image_size' => '',
), $atts ));
$img_id = preg_replace( '/[^\d]/', '', $image );
$img = wpb_getImageBySize( array( 'attach_id' => $img_id, 'thumb_size' => $image_size, 'class' => 'pricing-image' ) );
$animation_classes = getCSSAnimation( $animation );
$class .= ' ' . $el_class;
$class .= ' ' . $animation_classes;
$features = explode(PHP_EOL, $features_list);
ob_start(); ?>
<div class="kitgreen-price-table text-center<?php echo esc_attr( $class ); ?>" >
<div class="pricing_top">
<div class="image_pr">
<?php echo $img['thumbnail']; ?>
</div>
</div>
<div class="kitgreen-plan-inner">
<div class="kitgreen-plan">
<div class="kitgreen-plan-name">
<h6><?php echo $name; ?></h6>
</div>
</div>
<div class="kitgreen-plan-price">
<h3 class="kitgreen-price-value">
<?php echo $price_value; ?>
</h3>
<p class="kitgreen-price-suffix">
<?php echo $price_suffix; ?>
</p>
</div>
<?php if ( count( $features ) > 0 ): ?>
<div class="kitgreen-plan-features">
<div class="kitgreen-plan-feature">
<?php $features = str_ireplace('<br />', '', $features); ?>
<?php foreach ($features as $value): ?>
<div class="item"><?php echo $value; ?></div>
<?php endforeach; ?>
</div>
</div>
<?php endif ?>
<div class="kitgreen-plan-footer ">
<a href="<?php echo esc_url( $link ); ?>" class="button price-plan-btn">
<?php echo $button_label; ?>
<span class="lnr lnr-arrow-right"></span>
</a>
</div>
</div>
</div>
<?php
$output = ob_get_contents();
ob_end_clean();
return $output;
}
add_shortcode( 'pricing_plan', 'kitgreen_shortcode_pricing_plan' );
}
/**
* ------------------------------------------------------------------------------------------------
* Products tabs shortcode
* ------------------------------------------------------------------------------------------------
*/
if( ! function_exists( 'kitgreen_shortcode_products_tabs' ) ) {
function kitgreen_shortcode_products_tabs($atts = array(), $content = null) {
if( ! function_exists( 'wpb_getImageBySize' ) ) return;
$output = $class = $autoplay = '';
extract(shortcode_atts( array(
'title' => '',
'image' => '',
'color' => '#1aada3',
'el_class' => ''
), $atts ));
$img_id = preg_replace( '/[^\d]/', '', $image );
$img = wpb_getImageBySize( array( 'attach_id' => $img_id, 'thumb_size' => 'full', 'class' => 'tabs-icon' ) );
// Extract tab titles
preg_match_all( '/products_tab([^\]]+)/i', $content, $matches, PREG_OFFSET_CAPTURE );
$tab_titles = array();
if ( isset( $matches[1] ) ) {
$tab_titles = $matches[1];
}
$tabs_nav = '';
$first_tab_title = '';
$tabs_nav .= '<ul class="products-tabs-title">';
$_i = 0;
foreach ( $tab_titles as $tab ) {
$_i++;
$tab_atts = shortcode_parse_atts( $tab[0] );
$tab_atts['carousel_js_inline'] = 'yes';
$encoded_atts = json_encode( $tab_atts );
if( $_i == 1 ) $first_tab_title = $tab_atts['title'];
$class = ( $_i == 1 ) ? 'active-tab-title' : '';
if ( isset( $tab_atts['title'] ) ) {
$tabs_nav .= '<li data-atts="' . esc_attr( $encoded_atts ) . '" class="' . esc_attr( $class ) . '""><span class="tab-label">' . $tab_atts['title'] . '</span></li>';
}
}
$tabs_nav .= '</ul>';
$tabs_id = rand(999,9999);
$class .= ' tabs-' . $tabs_id;
$class .= ' ' . $el_class;
ob_start(); ?>
<div class="kitgreen-products-tabs<?php echo esc_attr( $class ); ?>">
<div class="kitgreen-products-loader">
<div class="overlay-loader">
<div>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
</div>
</div>
</div>
<div class="kitgreen-tabs-header">
<?php if ( ! empty( $title ) ): ?>
<div class="tabs-name">
<?php echo $img['thumbnail']; ?>
<span><?php echo ($title); ?></span>
</div>
<?php endif; ?>
<div class="tabs-navigation-wrapper">
<?php
echo ($tabs_nav);
?>
</div>
</div>
<?php
$first_tab_atts = shortcode_parse_atts( $tab_titles[0][0] );
echo kitgreen_shortcode_products_tab( $first_tab_atts );
?>
<style type="text/css">
.tabs-<?php echo esc_html( $tabs_id ); ?> .tabs-name {
background: <?php echo esc_html( $color ); ?>
}
.kitgreen-products-tabs.tabs-<?php echo esc_html( $tabs_id ); ?> .products-tabs-title .active-tab-title {
color: <?php echo esc_html( $color ); ?>
}
.kitgreen-products-tabs .products-tabs-title li:hover {
color: <?php echo esc_html( $color ); ?>
}
.tabs-<?php echo esc_html( $tabs_id ); ?> .kitgreen-tabs-header {
border-color: <?php echo esc_html( $color ); ?>
}
</style>
</div>
<?php
$output = ob_get_contents();
ob_end_clean();
return $output;
}
add_shortcode( 'products_tabs', 'kitgreen_shortcode_products_tabs' );
}
if( ! function_exists( 'kitgreen_shortcode_products_tab' ) ) {
function kitgreen_shortcode_products_tab($atts) {
global $wpdb, $post;
if( ! function_exists( 'wpb_getImageBySize' ) ) return;
$output = $class = '';
$is_ajax = (defined( 'DOING_AJAX' ) && DOING_AJAX);
$parsed_atts = shortcode_atts( array_merge( array(
'title' => '',
), kitgreen_get_default_product_shortcode_atts()), $atts );
extract( $parsed_atts );
$parsed_atts['carousel_js_inline'] = 'yes';
$parsed_atts['force_not_ajax'] = 'yes';
ob_start(); ?>
<?php if(!$is_ajax): ?>
<div class="kitgreen-tab-content<?php echo esc_attr( $class ); ?>" >
<?php endif; ?>
<?php
echo kitgreen_shortcode_products( $parsed_atts );
?>
<?php if(!$is_ajax): ?>
</div>
<?php endif; ?>
<?php
$output = ob_get_clean();
if( $is_ajax ) {
$output = array(
'html' => $output
);
}
return $output;
}
add_shortcode( 'products_tab', 'kitgreen_shortcode_products_tab' );
}
if( ! function_exists( 'kitgreen_get_products_tab_ajax' ) ) {
add_action( 'wp_ajax_kitgreen_get_products_tab_shortcode', 'kitgreen_get_products_tab_ajax' );
add_action( 'wp_ajax_nopriv_kitgreen_get_products_tab_shortcode', 'kitgreen_get_products_tab_ajax' );
function kitgreen_get_products_tab_ajax() {
if( ! empty( $_POST['atts'] ) ) {
$atts = $_POST['atts'];
$data = kitgreen_shortcode_products_tab($atts);
echo json_encode( $data );
die();
}
}
}
/**
* ------------------------------------------------------------------------------------------------
* Mega Menu widget
* ------------------------------------------------------------------------------------------------
*/
if( ! function_exists( 'kitgreen_shortcode_mega_menu' )) {
function kitgreen_shortcode_mega_menu($atts, $content) {
$output = $title_html = '';
extract(shortcode_atts( array(
'title' => '',
'nav_menu' => '',
'style' => '',
'color' => '',
'kitgreen_color_scheme' => 'light',
'el_class' => ''
), $atts ));
$class = $el_class;
if( $title != '' ) {
$title_html = '<h5 class="widget-title color-scheme-' . $kitgreen_color_scheme . '">' . $title . '</h5>';
}
$widget_id = 'widget-' . rand(100,999);
//if( $nav_menu == '') return;
ob_start(); ?>
<div id="<?php echo esc_attr( $widget_id ); ?>" class="widget_nav_mega_menu shortcode-mega-menu <?php echo esc_attr( $class ); ?>">
<?php echo $title_html; ?>
<div class="kitgreen-navigation">
<?php
wp_nav_menu( array(
'fallback_cb' => '',
'menu' => $nav_menu,
'walker' => new kitgreen_Mega_Menu_Walker()
) );
?>
</div>
</div>
<?php if ( $color != '' ): ?>
<style type="text/css">
#<?php echo esc_attr( $widget_id ); ?> {
border-color: <?php echo esc_attr($color); ?>
}
#<?php echo esc_attr( $widget_id ); ?> .widget-title {
background-color: <?php echo esc_attr($color); ?>
}
</style>
<?php endif ?>
<?php
$output = ob_get_contents();
ob_end_clean();
return $output;
}
add_shortcode( 'kitgreen_mega_menu', 'kitgreen_shortcode_mega_menu' );
}
/**
* ------------------------------------------------------------------------------------------------
* Widget user panel
* ------------------------------------------------------------------------------------------------
*/
if( ! function_exists( 'kitgreen_shortcode_user_panel' )) {
function kitgreen_shortcode_user_panel($atts) {
if( ! kitgreen_woocommerce_installed() ) return;
$click = $output = $title_out = $class = '';
extract(shortcode_atts( array(
'title' => '',
), $atts ));
$class .= ' ';
$user = wp_get_current_user();
ob_start(); ?>
<div class="kitgreen-user-panel<?php echo esc_attr( $class ); ?>">
<?php if ( ! is_user_logged_in() ): ?>
<?php printf(__('Please, <a href="%s">log in</a>', 'kitgreen'), get_permalink( get_option('woocommerce_myaccount_page_id') )); ?>
<?php else: ?>
<div class="user-avatar">
<?php echo get_avatar( $user->ID, 92 ); ?>
</div>
<div class="user-info">
<span><?php printf( __('Welcome, <strong>%s</strong>', 'kitgreen'), $user->user_login ) ?></span>
<a href="<?php echo esc_url( wp_logout_url( home_url('/') ) ); ?>" class="logout-link"><?php _e('Logout', 'kitgreen'); ?></a>
</div>
<?php endif ?>
</div>
<?php
$output = ob_get_contents();
ob_end_clean();
return $output;
}
add_shortcode( 'user_panel', 'kitgreen_shortcode_user_panel' );
}
/**
* ------------------------------------------------------------------------------------------------
* Widget with author info
* ------------------------------------------------------------------------------------------------
*/
if( ! function_exists( 'kitgreen_shortcode_author_area' )) {
function kitgreen_shortcode_author_area($atts, $content) {
if( ! function_exists( 'wpb_getImageBySize' ) ) return;
$click = $output = $title_out = $class = '';
extract(shortcode_atts( array(
'title' => '',
'image' => '',
'img_size' => '800x600',
'link' => '',
'link_text' => '',
'alignment' => 'left',
'style' => '',
'kitgreen_color_scheme' => 'dark',
'el_class' => ''
), $atts ));
$img_id = preg_replace( '/[^\d]/', '', $image );
$img = wpb_getImageBySize( array( 'attach_id' => $img_id, 'thumb_size' => $img_size, 'class' => 'author-area-image' ) );
$class .= ' text-' . $alignment;
$class .= ' color-scheme-' . $kitgreen_color_scheme;
$class .= ' ' . $el_class;
if( $title != '' ) {
$title_out = '<h3 class="title author-title">' . esc_html($title) . '</h3>';
}
if( $link != '') {
$link = '<a href="' . esc_url( $link ) . '">' . esc_html($link_text) . '</a>';
}
ob_start(); ?>
<div class="author-area<?php echo esc_attr( $class ); ?>">
<?php echo $title_out; ?>
<div class="author-avatar">
<?php echo $img['thumbnail']; ?>
</div>
<div class="author-info">
<?php echo do_shortcode( $content ); ?>
</div>
<?php echo $link; ?>
</div>
<?php
$output = ob_get_contents();
ob_end_clean();
return $output;
}
add_shortcode( 'author_area', 'kitgreen_shortcode_author_area' );
}
/**
* ------------------------------------------------------------------------------------------------
* Promo banner - image with text and hover effect
* ------------------------------------------------------------------------------------------------
*/
if( ! function_exists( 'kitgreen_shortcode_promo_banner' )) {
function kitgreen_shortcode_promo_banner($atts, $content) {
if( ! function_exists( 'wpb_getImageBySize' ) ) return;
$click = $output = $class = '';
extract(shortcode_atts( array(
'image' => '',
'img_size' => '800x600',
'link' => '',
'alignment' => 'left',
'vertical_alignment' => 'top',
'style' => '',
'hover' => '',
'kitgreen_color_scheme' => 'left',
'el_class' => '',
'animation' => '',
), $atts ));
//$img_id = preg_replace( '/[^\d]/', '', $image );
$images = explode(',', $image);
if( $link != '') {
$class .= ' cursor-pointer';
}
$animation_classes = getCSSAnimation( $animation );
$class .= $animation_classes;
$class .= ' text-' . $alignment;
$class .= ' vertical-alignment-' . $vertical_alignment;
$class .= ' banner-' . $style;
$class .= ' hover-' . $hover;
$class .= ' position-' . $kitgreen_color_scheme;
$class .= ' ' . $el_class;
if ( count($images) > 1 ) {
$class .= ' multi-banner';
}
ob_start(); ?>
<div class="promo-banner<?php echo esc_attr( $class ); ?>" <?php if( ! empty( $link ) ): ?>onclick="window.location.href='<?php echo esc_js( $link ) ?>'"<?php endif; ?> >
<div class="main-wrapp-img">
<div class="banner-image">
<?php if ( count($images) > 0 ): ?>
<?php $i=0; foreach ($images as $img_id): $i++; ?>
<?php $img = wpb_getImageBySize( array( 'attach_id' => $img_id, 'thumb_size' => $img_size, 'class' => 'promo-banner-image image-' . $i ) ); ?>
<?php echo $img['thumbnail']; ?>
<?php endforeach ?>
<?php endif ?>
</div>
</div>
<div class="wrapper-content-baner ">
<div class="banner-inner">
<?php echo do_shortcode( $content ); ?>
</div>
</div>
</div>
<?php
$output = ob_get_contents();
ob_end_clean();
return $output;
}
add_shortcode( 'promo_banner', 'kitgreen_shortcode_promo_banner' );
}
if( ! function_exists( 'kitgreen_shortcode_banners_carousel' ) ) {
function kitgreen_shortcode_banners_carousel($atts = array(), $content = null) {
$output = $class = $autoplay = '';
$parsed_atts = shortcode_atts( array_merge( kitgreen_get_owl_atts(), array(
'el_class' => '',
) ), $atts );
extract( $parsed_atts );
$class .= ' ' . $el_class;
$carousel_id = 'carousel-' . rand(100,999);
ob_start(); ?>
<div id="<?php echo ($carousel_id); ?>" class="banners-carousel-wrapper">
<div class="owl-carousel banners-carousel<?php echo esc_attr( $class ); ?>" >
<?php echo do_shortcode( $content ); ?>
</div>
</div>
<?php
$parsed_atts['carousel_id'] = $carousel_id;
kitgreen_owl_carousel_init( $parsed_atts );
?>
<?php
$output = ob_get_contents();
ob_end_clean();
return $output;
}
add_shortcode( 'banners_carousel', 'kitgreen_shortcode_banners_carousel' );
}
/**
* ------------------------------------------------------------------------------------------------
* Info box
* ------------------------------------------------------------------------------------------------
*/
if( ! function_exists( 'kitgreen_shortcode_info_box' )) {
function kitgreen_shortcode_info_box($atts, $content) {
if( ! function_exists( 'wpb_getImageBySize' ) ) return;
$click = $output = $class = '';
extract(shortcode_atts( array(
'image' => '',
'img_size' => '800x600',
'link' => '#',
'link_target' => '_self',
'alignment' => 'left',
'image_alignment' => 'top',
'style' => 'base',
'hover' => '',
'kitgreen_color_scheme' => 'dark',
'css' => 'light',
'btn_text' => '',
'hover'=> 'hover1',
'btn_position' => 'hover',
'btn_color' => 'default',
'btn_style' => 'link',
'btn_size' => 'default',
'new_styles' => 'no',
'el_class' => '',
'color' => '',
'icon' => '',
'number'=> '1',
'active' => false,
'layout' => 'left_icon',
'animation' => '',
'text_btn' => 'View More',
), $atts ));
$animation_classes = getCSSAnimation( $animation );
$class = $animation_classes;
$images = explode(',', $image);
if( $link != '') {
$class .= ' cursor-pointer';
}
$class .= ( $new_styles == 'yes') ? ' kitgreen-info-box2' : ' kitgreen-info-box';
$class .= ' text-' . $alignment;
$class .= ' icon-alignment-' . $image_alignment;
$class .= ' box-style-' . $style;
// $class .= ' hover-' . $hover;
$class .= ' color-scheme-' . $kitgreen_color_scheme;
$class .= ' ' . $el_class . ' ';
if ( count($images) > 1 ) {
$class .= ' multi-icons';
}
$class .= $hover;
if( ! empty( $btn_text ) ) {
$class .= ' with-btn';
$class .= ' btn-position-' . $btn_position;
}
if( function_exists( 'vc_shortcode_custom_css_class' ) ) {
$class .= ' ' . vc_shortcode_custom_css_class( $css );
}
$rand = "svg-" . rand(1000,9999);
$sizes = explode( 'x', $img_size );
$width = $height = 128;
if( count( $sizes ) == 2 ) {
$width = $sizes[0];
$height = $sizes[1];
}
if( $link_target == '_blank' ) {
$onclick = 'onclick="window.open(\''. esc_url( $link ).'\',\'_blank\')"';
} else {
$onclick = 'onclick="window.location.href=\''. esc_url( $link ).'\'"';
}
$class .= $layout;
if($image_alignment == 'left' && $layout == 'left_icon' || $layout == 'left_icon_2' ) {
$class .= ' display_flex ';
}
if($active) {
$class .= ' active ';
}
ob_start(); ?>
<div class="<?php echo esc_attr( $class ); ?>" <?php if( ! empty( $link ) ) echo $onclick; ?> >
<?php if($layout == 'top_icon') echo '<div class="info_inner_slider">'; ?>
<?php if ( count($images) > 0 ): ?>
<?php if($layout == 'process_icon' || $layout == 'process_icon3') echo "<div class='number_process'><span class='overlay'></span><span class='number'>".esc_attr($number)."</span></div>"; ?>
<div class="box-icon-wrapper">
<div class="info-box-icon">
<?php $i=0; foreach ($images as $img_id): $i++; ?>
<?php $img = wpb_getImageBySize( array( 'attach_id' => $img_id, 'thumb_size' => $img_size, 'class' => 'info-icon image-' . $i ) ); ?>
<?php
$src = $img['p_img_large'][0];
if( substr($src, -3, 3) == 'svg' ) {
echo '<div id="' . $rand . '" class="info-svg-wrapper" style="width: ' . $width . 'px;height: ' . $height . 'px;"></div>';
?>
<script type="text/javascript">
jQuery(document).ready(function($) {
new Vivus('<?php echo $rand; ?>', {
type: 'delayed',
duration: 200,
start: 'inViewport',
file: '<?php echo $src; ?>',
animTimingFunction: Vivus.EASE_OUT
});
});
</script>
<?php
} else {
echo $img['thumbnail'];
}
?>
<?php endforeach ?>
<?php
if($icon) {
echo '<div class="has_icon"><span style="color:'.$color.'" class="'.$icon.'"></span></div>';
}
?>
</div>
</div>
<?php endif ?>
<div class="info-box-content">
<div class="info-box-inner">
<p>
<?php
echo do_shortcode( $content );
if( ! empty( $btn_text ) ) {
printf( '<div class="info-btn-wrapper"><a href="%s" class="btn btn-style-link btn-color-primary info-box-btn">%s</a></div>', $link, $btn_text );
}
?>
</div>
<?php if($layout == 'process_icon' || $layout == 'process_icon3') echo "<a href=".esc_url($link)." class='button_info'>".esc_attr($text_btn)."</a>"; ?>
</div>
<?php if($layout == 'top_icon') echo '</div>'; ?>
</div>
<?php
$output = ob_get_contents();
ob_end_clean();
return $output;
}
add_shortcode( 'kitgreen_info_box', 'kitgreen_shortcode_info_box' );
}
/**
* ------------------------------------------------------------------------------------------------
* Heading Two Color
* ------------------------------------------------------------------------------------------------
*/
if( ! function_exists( 'kitgreen_shortcode_heading' )) {
function kitgreen_shortcode_heading($atts, $content) {
if( ! function_exists( 'wpb_getImageBySize' ) ) return;
$click = $output = $class = '';
extract(shortcode_atts( array(
'title' => '',
'title2' => '',
'el_class' => '',
'color' =>'',
'color2' => '',
'font_size1' => '',
'font_weight1' => '',
'font_size2' => '',
'position' => 'left',
'font_weight2' => '',
), $atts ));
$class .= ' headding_two ' . $el_class;
ob_start();
?>
<h3 style="text-align:<?php echo $position; ?>;font-size:<?php echo $font_size1; ?>; font-weight: <?php echo $font_weight1; ?> ; color: <?php echo $color; ?> ; " class="<?php echo esc_attr($class); ?>"><?php echo $title; ?>
<span style="color: <?php echo $color2; ?> ; font-size:<?php echo $font_size2; ?>; font-weight: <?php echo $font_weight2; ?> "><?php echo $title2; ?></span>
</h3>
<?php
$output = ob_get_contents();
ob_end_clean();
return $output;
}
add_shortcode( 'headingtwo', 'kitgreen_shortcode_heading' );
}
/**
* ------------------------------------------------------------------------------------------------
* Button
* ------------------------------------------------------------------------------------------------
*/
if( ! function_exists( 'kitgreen_shortcode_btn' )) {
function kitgreen_shortcode_btn($atts, $content) {
if( ! function_exists( 'wpb_getImageBySize' ) ) return;
$click = $output = $class = '';
extract(shortcode_atts( array(
'link' => '',
'btn_text' => '',
'color' => '',
'height' => '60px',
'width' => '218px',
'radius' => '25px',
'position' =>'left',
'size' =>'13px',
'el_class' => '',
'animation' =>'',
'color3' => '#ffffff',
'color_hv3'=> '',
'color_hv1'=> ''
), $atts ));
$animation_classes = getCSSAnimation( $animation );
$ntt = '';
if($position == 'center') {
$ntt = 'margin:0 auto;';
}elseif($position == 'left') {
$ntt = 'margin:0;';
}else {
$ntt = ' margin: 0 0 0 auto; ';
}
$onclick = 'onclick="window.location.href=\''. esc_url( $link ).'\'"';
$id_btn = rand();
ob_start(); ?>
<div class="button_kitgreen btn-<?php esc_attr_e($id_btn); ?><?php echo esc_attr($animation_classes); ?>">
<div class="<?php echo esc_attr( $class,$el_class );?> button_kitgreen" <?php if( ! empty( $link ) ) echo $onclick; ?> >
<?php echo $btn_text; ?>
</div>
<style type="text/css">
.btn-<?php esc_attr_e($id_btn); ?> {
border-radius: <?php echo $radius; ?>;
background-color: <?php echo $color;?> !important;
<?php echo $ntt; ?> width: <?php echo $width; ?> ;
height: <?php echo $height; ?> ;
line-height: <?php echo $height; ?> ;
text-align: center; color: <?php echo $color3; ?>;
font-size: <?php echo $size; ?> ;
font-weight: 500;
display: block;
cursor: pointer;
transition: 0.5s all;
-webkit-transition: 0.5s all;
}
.btn-<?php esc_attr_e($id_btn); ?>:hover {
<?php if(!empty($color_hv1)) : ?>
background-size: 200% auto; background-color:<?php echo $color_hv1; ?> !important;
<?php endif; ?>
<?php if(!empty($color_hv3)) : ?>
color: <?php echo $color_hv3; ?>;
<?php endif; ?>
}
</style>
</div>
<?php
$output = ob_get_contents();
ob_end_clean();
return $output;
}
add_shortcode( 'kitgreen_button_click', 'kitgreen_shortcode_btn' );
}
/**
* ------------------------------------------------------------------------------------------------
* Info box
* ------------------------------------------------------------------------------------------------
*/
if( ! function_exists( 'kitgreen_shortcode_logo' )) {
function kitgreen_shortcode_logo($atts, $content) {
if( ! function_exists( 'wpb_getImageBySize' ) ) return;
$output = $class = '';
extract(shortcode_atts( array(
'image' => '',
'animation' => '',
'image_big_size' => 'full',
'image_thumbnail_size' => 'full',
'thumbnail_item' => '4',
), $atts ));
$animation_classes = getCSSAnimation( $animation );
$class = $animation_classes;
$images = explode(',', $image);
ob_start(); ?>
<div class="slider_banner<?php echo esc_attr( $class ); ?>" >
<?php if ( count($images) > 0 ): ?>
<div class="image_active" data-slick='{"slidesToShow":1, "slidesToScroll":1 , "fade":true , "arrows":true , "speed":700 , "dots":false , "asNavFor":".image_thumbnail" }' >
<?php $i=0; foreach ($images as $img_id): $i++; ?>
<div class="logo_iteam">
<?php $img = wpb_getImageBySize( array( 'attach_id' => $img_id,'thumb_size' => ''.$image_big_size.'', 'class' => 'info-icon image-' . $i ) ); ?>
<div class="itema_inner">
<?php
echo $img['thumbnail'];
?>
</div>
</div>
<?php endforeach ?>
</div>
<div class="image_thumbnail" data-slick='{"slidesToShow":<?php echo $thumbnail_item; ?>, "slidesToScroll":1 , "arrows":false , "speed":700 , "dots":false , "focusOnSelect":true , "asNavFor":".image_active" }'>
<?php $i=0; foreach ($images as $img_id): $i++; ?>
<div class="logo_iteam">
<?php $img = wpb_getImageBySize( array( 'attach_id' => $img_id,'thumb_size' => ''.$image_thumbnail_size.'', 'class' => 'info-icon image-' . $i ) ); ?>
<div class="itema_inner">
<?php
echo $img['thumbnail'];
?>
</div>
</div>
<?php endforeach ?>
</div>
<?php endif ?>
</div>
<?php
$output = ob_get_contents();
ob_end_clean();
return $output;
}
add_shortcode( 'kitgreen_log_bn', 'kitgreen_shortcode_logo' );
}
/**
* ------------------------------------------------------------------------------------------------
* 3D view - images in 360 slider
* ------------------------------------------------------------------------------------------------
*/
if( ! function_exists( 'kitgreen_shortcode_3d_view' )) {
function kitgreen_shortcode_3d_view($atts, $content) {
if( ! function_exists( 'wpb_getImageBySize' ) ) return;
$click = $output = $class = '';
extract(shortcode_atts( array(
'images' => '',
'img_size' => 'full',
'title' => '',
'link' => '',
'style' => '',
'el_class' => ''
), $atts ));
$id = rand(100,999);
$images = explode(',', $images);
if( $link != '') {
$class .= ' cursor-pointer';
}
$class .= ' ' . $el_class;
$frames_count = count($images);
if ( $frames_count < 2 ) return;
$images_js_string = '';
$width = $height = 0;
ob_start(); ?>
<div class="kitgreen-threed-view<?php echo esc_attr( $class ); ?> threed-id-<?php echo esc_attr( $id ); ?>" <?php if( ! empty( $link ) ): ?>onclick="window.location.href='<?php echo esc_js( $link ) ?>'"<?php endif; ?> >
<?php if ( ! empty( $title ) ): ?>
<h3 class="threed-title"><span><?php echo ($title); ?></span></h3>
<?php endif ?>
<ul class="threed-view-images">
<?php if ( count($images) > 0 ): ?>
<?php $i=0; foreach ($images as $img_id): $i++; ?>
<?php
$img = wpb_getImageBySize( array( 'attach_id' => $img_id, 'thumb_size' => $img_size, 'class' => 'threed-view-image image-' . $i ) );
$width = $img['p_img_large'][1];
$height = $img['p_img_large'][2];
$images_js_string .= "'" . $img['p_img_large'][0] . "'";
if( $i < $frames_count ) {
$images_js_string .= ",";
}
?>
<?php endforeach ?>
<?php endif ?>
</ul>
<div class="spinner">
<span>0%</span>
</div>
</div>
<script type="text/javascript">
jQuery(document).ready(function( $ ) {
$('.threed-id-<?php echo esc_attr( $id ); ?>').ThreeSixty({
totalFrames: <?php echo $frames_count; ?>,
endFrame: <?php echo $frames_count; ?>,
currentFrame: 1,
imgList: '.threed-view-images',
progress: '.spinner',
imgArray: [<?php echo $images_js_string; ?>],
height: <?php echo $height ?>,
width: <?php echo $width ?>,
responsive: true,
navigation: true
});
});
</script>
<?php
$output = ob_get_contents();
ob_end_clean();
return $output;
}
add_shortcode( 'kitgreen_3d_view', 'kitgreen_shortcode_3d_view' );
}
/**
* ------------------------------------------------------------------------------------------------
* Countdown timer
* ------------------------------------------------------------------------------------------------
*/
if( ! function_exists( 'kitgreen_shortcode_countdown_timer' )) {
function kitgreen_shortcode_countdown_timer($atts, $content) {
if( ! function_exists( 'wpb_getImageBySize' ) ) return;
$click = $output = $class = '';
extract(shortcode_atts( array(
'date' => '2018/12/12',
'kitgreen_color_scheme' => 'light',
'size' => 'medium',
'align' => 'center',
'style' => 'base',
'el_class' => ''
), $atts ));
$class .= ' ' . $el_class;
$class .= ' color-scheme-' . $kitgreen_color_scheme;
$class .= ' timer-align-' . $align;
$class .= ' timer-size-' . $size;
$class .= ' timer-style-' . $style;
ob_start(); ?>
<div class="kitgreen-countdown-timer<?php echo esc_attr( $class ); ?>">
<div class="kitgreen-timer" data-end-date="<?php echo esc_attr( $date ) ?>"></div>
</div>
<?php
$output = ob_get_contents();
ob_end_clean();
return $output;
}
add_shortcode( 'kitgreen_countdown_timer', 'kitgreen_shortcode_countdown_timer' );
}
/**
* ------------------------------------------------------------------------------------------------
* Shortcode function to display posts teaser
* ------------------------------------------------------------------------------------------------
*/
if( ! function_exists( 'kitgreen_shortcode_posts_teaser' )) {
function kitgreen_shortcode_posts_teaser($atts, $query = false) {
global $woocommerce_loop;
$posts_query = $el_class = $args = $my_query = $title_out = $output = '';
$posts = array();
extract( shortcode_atts( array(
'el_class' => '',
'posts_query' => '',
'style' => 'default',
'title' => '',
), $atts ) );
if( ! $query ) {
list( $args, $query ) = vc_build_loop_query( $posts_query ); //
}
$carousel_id = 'teaser-' . rand(100,999);
if( $title != '' ) {
$title_out = '<h3 class="title teaser-title">' . $title . '</h3>';
}
ob_start();
if($query->have_posts()) {
echo $title_out;
?>
<div id="<?php echo esc_html( $carousel_id ); ?>">
<div class="posts-teaser teaser-style-<?php echo esc_attr( $style ); ?> <?php echo esc_attr( $el_class ); ?>">
<?php
$_i = 0;
while ( $query->have_posts() ) {
$_i++;
$query->the_post(); // Get post from query
?>
<div class="post-teaser-item teaser-item-<?php echo esc_attr( $_i ); ?>">
<?php if( has_post_thumbnail() ) {
?>
<a href="<?php echo esc_url( get_permalink() ); ?>"><?php the_post_thumbnail( ( $_i == 1 ) ? 'large' : 'medium' ); ?></a>
<?php
} ?>
<a href="<?php echo esc_url( get_permalink() ); ?>" class="post-title"><?php the_title(); ?></a>
<?php kitgreen_post_meta(array(
'author' => 0,
'labels' => 1,
'cats' => 0,
'tags' => 0
)); ?>
</div>
<?php
}
?>
</div> <!-- end posts-teaser -->
</div> <!-- end #<?php echo esc_html( $carousel_id ); ?> -->
<?php
}
wp_reset_postdata();
$output = ob_get_contents();
ob_end_clean();
return $output;
}
add_shortcode( 'kitgreen_posts_teaser', 'kitgreen_shortcode_posts_teaser' );
}
/**
* ------------------------------------------------------------------------------------------------
* Shortcode function to display posts as a slider or as a grid
* ------------------------------------------------------------------------------------------------
*/
if( ! function_exists( 'kitgreen_shortcode_posts' ) ) {
function kitgreen_shortcode_posts( $atts ) {
return kitgreen_generate_posts_slider( $atts );
}
add_shortcode( 'kitgreen_posts', 'kitgreen_shortcode_posts' );
}
if( ! function_exists( 'kitgreen_generate_posts_slider' )) {
function kitgreen_generate_posts_slider($atts, $query = false) {
global $woocommerce_loop, $kitgreen_loop;
$posts_query = $el_class = $args = $my_query = $speed = '';
$slides_per_view = $wrap = $scroll_per_page = $title_out = '';
$autoplay = $hide_pagination_control = $hide_prev_next_buttons = $output = '';
$posts = array();
$parsed_atts = shortcode_atts( array_merge( kitgreen_get_owl_atts(), array(
'el_class' => '',
'posts_query' => '',
'img_size' => 'large',
'blog_layout' => '1',
'title' => '',
'review' => false,
'like' => false,
'thumbnail_show' => false,
) ), $atts );
extract( $parsed_atts );
$kitgreen_loop['img_size'] = $img_size;
$kitgreen_loop['blog_layout'] = $blog_layout;
$kitgreen_loop['like'] = $like;
$kitgreen_loop['review'] = $review;
$kitgreen_loop[ 'thumbnail_show'] = $thumbnail_show;
if( ! $query ) {
list( $args, $query ) = vc_build_loop_query( $posts_query ); //
}
$carousel_id = 'carousel-' . rand(100,999);
if( $title != '' ) {
$title_out = '<h3 class="title slider-title">' . $title . '</h3>';
}
if ( $blog_layout == '1' ){ $layout = "default"; }else {
$layout = "border-bottom";
}
ob_start();
if($query->have_posts()) {
echo $title_out;
?>
<div id="<?php echo esc_attr( $carousel_id ); ?>" class="vc_carousel_container kitgreen-blog-holder <?php echo esc_attr($layout); ?>">
<div class="owl-carousel post-slider product-items <?php echo esc_attr( $el_class ); if ($blog_layout == '2') echo "ct-margin" ?>">
<?php
while ( $query->have_posts() ) {
$query->the_post(); // Get post from query
?>
<div class="product-item owl-carousel-item">
<div class="owl-carousel-item-inner">
<div class="post-item layout-2">
<?php get_template_part( 'framework/templates/blog/entry2' ); ?>
</div>
</div>
</div>
<?php
}
unset( $woocommerce_loop['slider'] );
?>
</div> <!-- end product-items -->
</div> <!-- end #<?php echo esc_html( $carousel_id ); ?> -->
<?php
$parsed_atts['carousel_id'] = $carousel_id;
kitgreen_owl_carousel_init( $parsed_atts );
}
wp_reset_postdata();
unset($kitgreen_loop['img_size']);
$output = ob_get_contents();
ob_end_clean();
return $output;
}
}
/**
* ------------------------------------------------------------------------------------------------
* Shortcode function to display posts as a slider or as a grid
* ------------------------------------------------------------------------------------------------
*/
if( ! function_exists( 'kitgreen_shortcode_products' ) ) {
add_shortcode( 'kitgreen_products', 'kitgreen_shortcode_products' );
function kitgreen_shortcode_products($atts, $query = false) {
global $woocommerce_loop, $kitgreen_loop;
$parsed_atts = shortcode_atts( kitgreen_get_default_product_shortcode_atts(), $atts );
extract( $parsed_atts );
$kitgreen_loop['img_size'] = $img_size;
$is_ajax = (defined( 'DOING_AJAX' ) && DOING_AJAX && $force_not_ajax != 'yes' );
$parsed_atts['force_not_ajax'] = 'no'; // :)
$encoded_atts = json_encode( $parsed_atts );
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
if( $ajax_page > 1 ) $paged = $ajax_page;
$ordering_args = WC()->query->get_catalog_ordering_args( $orderby, $order );
$meta_query = WC()->query->get_meta_query();
if( $post_type == 'featured' ) {
$meta_query[] = array(
'taxonomy' => 'product_visibility',
'field' => 'name',
'terms' => 'featured',
);
}
if( $orderby == 'post__in' ) {
$ordering_args['orderby'] = $orderby;
}
$args = array(
'post_type' => 'product',
'status' => 'published',
'ignore_sticky_posts' => 1,
'paged' => $paged,
'orderby' => $ordering_args['orderby'],
'order' => $ordering_args['order'],
'posts_per_page' => $items_per_page,
'meta_query' => $meta_query
);
if( ! empty( $ordering_args['meta_key'] ) ) {
$args['meta_key'] = $ordering_args['meta_key'];
}
if( $post_type == 'ids' && $include != '' ) {
$args['post__in'] = explode(',', $include);
}
if( ! empty( $exclude ) ) {
$args['post__not_in'] = explode(',', $exclude);
}
if( ! empty( $taxonomies ) ) {
$taxonomy_names = get_object_taxonomies( 'product' );
$terms = get_terms( $taxonomy_names, array(
'orderby' => 'name',
'include' => $taxonomies
));
if( ! is_wp_error( $terms ) && ! empty( $terms ) ) {
$args['tax_query'] = array('relation' => 'OR');
foreach ($terms as $key => $term) {
$args['tax_query'][] = array(
'taxonomy' => $term->taxonomy,
'field' => 'slug',
'terms' => array( $term->slug ),
'include_children' => true,
'operator' => 'IN'
);
}
}
}
if( ! empty( $order ) ) {
$args['order'] = $order;
}
if( ! empty( $offset ) ) {
$args['offset'] = $offset;
}
if( $post_type == 'sale' ) {
$args['post__in'] = array_merge( array( 0 ), wc_get_product_ids_on_sale() );
}
if( $post_type == 'bestselling' ) {
$args['orderby'] = 'meta_value_num';
$args['meta_key'] = 'total_sales';
}
$woocommerce_loop['timer'] = $sale_countdown;
$products = new WP_Query( $args );
// Simple products carousel
$woocommerce_loop['columns'] = $columns;
$woocommerce_loop['masonry'] = false;
if($columns =="2") {
$vccolumns = "col-md-6 col-sm-6 col-xs-12 col-xs-66";
$columns_layout = "6";
}elseif($columns == "3" ) {
$vccolumns = "col-md-4 col-sm-6 col-xs-12 col-xs-66";
$columns_layout = "4";
}elseif($columns == "4" ) {
$vccolumns = "col-md-3 col-sm-6 col-xs-12 col-xs-66" ;
$columns_layout = "3";
}elseif($columns == "5" ) {
$vccolumns = " col-md-20 col-sm-6 col-xs-12 col-xs-66" ;
$columns_layout = "20";
}else {
$vccolumns = " col-md-2 col-sm-6 col-xs-12 col-xs-66" ;
$columns_layout = "2";
}
if ( $pagination == 'more-btn' ) {
$woocommerce_loop['masonry'] = true;
}
if ( $pagination != 'arrows' ) {
$woocommerce_loop['loop'] = $items_per_page * ( $paged - 1 );
}
$carousel_id = 'carousel-' . rand(100,999);
$class .= ' pagination-' . $pagination;
$class .= ' grid-columns-' . $columns;
if( $woocommerce_loop['masonry'] ) {
$class .= ' grid-masonry';
}
$classne = $data = $sizer = '';
if ($layout != "carousel") {
$classne = ' jws-masonry';
$data = 'data-masonry=\'{"selector":".tb-products-grid ", "columnWidth":".grid-sizer","layoutMode":"packery"}\'';
$sizer = '<div class="grid-sizer size-'.$columns_layout.'"></div>';
}
ob_start();
if(!$is_ajax) echo '<div class="kitgreen-products-element ' .$pagination.'">';
if(!$is_ajax && $pagination != 'more-btn') echo '<div class="kitgreen-products-loader"><div class="overlay-loader">
<div>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
</div>
</div></div>';
if(!$is_ajax) echo '<div class="products elements-grid row kitgreen-products-holder ' . esc_attr( $class) . ''.esc_attr( $classne ).'" data-paged="1" data-atts="' . esc_attr( $encoded_atts ) . '" '.wp_kses_post( $data ).' >';
if ( $products->have_posts() ) :
if( $layout == 'carousel' ) echo '<div id="ptcarousel" ><div class="owl-carousel product-items owl-theme owl-loaded"> ';
echo wp_kses_post( $sizer );
while ( $products->have_posts() ) :
$products->the_post();
?> <div class="tb-products-grid <?php if ($layout == "grid") echo $vccolumns; ?>"> <?php
wc_get_template_part( 'content', 'productvc' );
?></div><?php
endwhile;
if( $layout == 'carousel' ) echo '</div></div> ';
endif;
if(!$is_ajax) echo '</div>';
woocommerce_reset_loop();
wp_reset_postdata();
if ( $products->max_num_pages > 1 && !$is_ajax ) {
?>
<div class="products-footer">
<?php if ($pagination == 'more-btn'): ?>
<a href="#" class=" kitgreen-products-load-more"><?php _e('Load More', 'kitgreen'); ?></a>
<p style="display: none;" class="loaded-all"><?php esc_html_e('All Product Loaded.' , 'kitgreen') ?></p>
<?php elseif ($pagination == 'arrows'): ?>
<a href="#" class="btn kitgreen-products-load-prev disabled"><?php _e('Prev', 'kitgreen'); ?></a>
<a href="#" class="btn kitgreen-products-load-next"><?php _e('Next', 'kitgreen'); ?></a>
<?php endif ?>
</div>
<div class="clear"></div>
<?php
}
if(!$is_ajax) echo '</div>';
if ($layout == "carousel") {
$items = array();
$items['desktop'] = ($slides_per_view > 0) ? $slides_per_view : 1;
$items['desktop_small'] = ($items['desktop'] > 1) ? $items['desktop'] - 1 : 1;
$items['tablet'] = ($items['desktop_small'] > 1) ? $items['desktop_small'] -1 : 2;
$items['mobile'] = ($items['tablet'] > 2) ? $items['tablet'] - 2 : 1;
if($items['mobile'] > 2) {
$items['mobile'] = 2;
}
?>
<script type="text/javascript">
jQuery( document ).ready(function( $ ) {
var owl = $("#ptcarousel .owl-carousel");
$( window ).bind( "vc_js", function() {
owl.trigger('refresh.owl.carousel');
} );
var options = {
rtl: $('body').hasClass('rtl'),
items: <?php echo esc_js( $items['desktop'] ); ?>,
responsive: {
979: {
items: <?php echo esc_js( $items['desktop'] ); ?>,
margin: 30,
},
768: {
items: <?php echo esc_js( $items['desktop_small'] ); ?>,
margin: 10,
},
479: {
items: <?php echo esc_js( $items['tablet'] ); ?>,
margin: 5,
},
0: {
items: <?php echo esc_js( $items['tablet'] ); ?>,
margin: 0,
}
},
autoplay: <?php echo ($autoplay == 'no') ? 'true' : 'false'; ?>,
autoplayTimeout: <?php echo $speed; ?>,
dots: <?php echo ($hide_dots == 'yes') ? 'false' : 'true'; ?>,
nav: <?php echo ($hide_prev_next_buttons == 'yes') ? 'false' : 'true'; ?>,
slideBy: <?php echo ($scroll_per_page == 'yes') ? '\'page\'' : 1; ?>,
navText:['<span class="ion-ios-arrow-thin-left"></span>','<span class="ion-ios-arrow-thin-right"></span>'],
loop: <?php echo ($wrap == 'yes') ? 'true' : 'false'; ?>,
margin: <?php echo $space; ?>,
onRefreshed: function() {
$(window).resize();
}
};
owl.owlCarousel(options);
});
</script>
<?php
}
$output = ob_get_clean();
if( $is_ajax ) {
$output = array(
'items' => $output,
'status' => ( $products->max_num_pages > $paged ) ? 'have-posts' : 'no-more-posts'
);
}
return $output;
}
}
if( ! function_exists( 'kitgreen_get_shortcode_products_ajax' ) ) {
add_action( 'wp_ajax_kitgreen_get_products_shortcode', 'kitgreen_get_shortcode_products_ajax' );
add_action( 'wp_ajax_nopriv_kitgreen_get_products_shortcode', 'kitgreen_get_shortcode_products_ajax' );
function kitgreen_get_shortcode_products_ajax() {
if( ! empty( $_POST['atts'] ) ) {
$atts = $_POST['atts'];
$paged = (empty($_POST['paged'])) ? 2 : (int) $_POST['paged'];
$atts['ajax_page'] = $paged;
$data = kitgreen_shortcode_products($atts);
echo json_encode( $data );
die();
}
}
}
if( ! function_exists( 'kitgreen_get_default_product_shortcode_atts' ) ) {
function kitgreen_get_default_product_shortcode_atts() {
return array(
'post_type' => 'product',
'layout' => 'grid',
'include' => '',
'custom_query' => '',
'taxonomies' => '',
'pagination' => '',
'items_per_page' => 12,
'columns' => 4,
'sale_countdown' => 0,
'offset' => '',
'orderby' => 'date',
'order' => 'DESC',
'meta_key' => '',
'exclude' => '',
'class' => '',
'space' => '30',
'ajax_page' => '',
'speed' => '5000',
'slides_per_view' => '1',
'wrap' => '',
'autoplay' => 'no',
'hide_dots' => ' ',
'hide_pagination_control' => '',
'hide_prev_next_buttons' => '',
'scroll_per_page' => 'yes',
'carousel_js_inline' => 'no',
'img_size' => 'shop_catalog',
'force_not_ajax' => 'no',
);
}
}
// Register shortcode [html_block id="111"]
add_shortcode('vc_content', 'kitgreen_html_block_shortcode');
if( ! function_exists( 'kitgreen_html_block_shortcode' ) ) {
function kitgreen_html_block_shortcode($atts) {
extract(shortcode_atts(array(
'id' => 0
), $atts));
return kitgreen_get_html_block($id);
}
}
/**
* ------------------------------------------------------------------------------------------------
* kitchen tabs shortcode
* ------------------------------------------------------------------------------------------------
*/
if( ! function_exists( 'kitgreen_shortcode_kitchen_tabs' ) ) {
function kitgreen_shortcode_kitchen_tabs($atts = array(), $content = null) {
if( ! function_exists( 'wpb_getImageBySize' ) ) return;
$output = $class = '';
extract(shortcode_atts( array(
'el_class' => '',
), $atts ));
// Extract tab titles
preg_match_all( '/kitchen_tab([^\]]+)/i', $content, $matches, PREG_OFFSET_CAPTURE );
$tab_titles = array();
if ( isset( $matches[1] ) ) {
$tab_titles = $matches[1];
}
$tabs_nav = '';
$first_tab_title = '';
$tabs_nav .= '<ul class="kitchen-tabs-title">';
$_i = 0;
foreach ( $tab_titles as $tab ) {
$_i++;
$tab_atts = shortcode_parse_atts( $tab[0] );
$image = '';
$image = $tab_atts['image'];
$img_id = preg_replace( '/[^\d]/', '', $image );
$img = wpb_getImageBySize( array( 'attach_id' => $img_id, 'thumb_size' => '230x125' , 'class' => 'tabs-icon' ) );
$encoded_atts = json_encode( $tab_atts );
if( $_i == 1 ) $first_tab_title = $tab_atts['title'];
$class = ( $_i == 1 ) ? 'active-tab-title' : '';
if ( isset( $tab_atts['title'] ) ) {
$tabs_nav .= '<li data-atts="' . esc_attr( $encoded_atts ) . '" class="' . esc_attr( $class ) . '"">'.$img['thumbnail'].' <span class="tab-label">'.$tab_atts['title'] . '</span></li>';
}
}
$tabs_nav .= '</ul>';
$tabs_id = rand(999,9999);
$class .= ' tabs-' . $tabs_id;
$class .= ' ' . $el_class;
ob_start(); ?>
<div class="kitgreen-kitchen-tabs-portfolio<?php echo esc_attr( $class ); ?>">
<div class="kitgreen-tabs-header-portfolio">
<div class="tabs-navigation-wrapper">
<?php
echo ($tabs_nav);
?>
</div>
</div>
<div class="kitgreen_content_container">
<div class="kitgreen-kitchen-loader">
<div class="overlay-loader">
<div>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
</div>
</div>
</div>
<?php
$first_tab_atts = shortcode_parse_atts( $tab_titles[0][0] );
echo kitgreen_shortcode_kitchen_tab( $first_tab_atts );
?>
</div>
</div>
<?php
$output = ob_get_contents();
ob_end_clean();
return $output;
}
add_shortcode( 'kitchen_tabs', 'kitgreen_shortcode_kitchen_tabs' );
}
if( ! function_exists( 'kitgreen_shortcode_kitchen_tab' ) ) {
function kitgreen_shortcode_kitchen_tab($atts) {
global $wpdb, $post;
if( ! function_exists( 'wpb_getImageBySize' ) ) return;
$output = $class = '';
$is_ajax = (defined( 'DOING_AJAX' ) && DOING_AJAX);
extract(shortcode_atts( array(
'iamge'=>'',
'title'=>'',
'img_size' =>'1520x750',
'label' => 'View Detail',
'taxonomies' => '',
'orderby' => 'post_date',
'order' => 'DESC',
'posts_per_page' => '',
'ajax_page' => ''
), $atts ));
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
if( $ajax_page > 1 ) $paged = $ajax_page;
$args = array(
'post_type' => 'portfolio',
'posts_per_page' => $posts_per_page,
'orderby' => $orderby,
'order' => $order,
'paged' => $paged
);
if( get_query_var('portfolio') != '' ) {
$args['tax_query'] = array(
array(
'taxonomy' => 'portfolio',
'field' => 'slug',
'terms' => get_query_var('portfolio')
),
);
}
if( ! empty( $taxonomies ) ) {
$taxonomy_names = get_object_taxonomies('portfolio');
$terms = get_terms( $taxonomy_names, array(
'orderby' => 'name',
'include' => $taxonomies
));
if( ! is_wp_error( $terms ) && ! empty( $terms ) ) {
$args['tax_query'] = array('relation' => 'OR');
foreach ($terms as $key => $term) {
$args['tax_query'][] = array(
'taxonomy' => $term->taxonomy,
'field' => 'slug',
'terms' => array( $term->slug ),
'include_children' => true,
'operator' => 'IN' ,
'include' => $taxonomies
);
}
}
}
$query = new WP_Query( $args );
ob_start();
wp_enqueue_style( 'twentytwenty-css', URI_PATH.'/assets/css/css_jws/twentytwenty.css', false );
wp_enqueue_script( 'jquery-event', URI_PATH.'/assets/js/dev/jquery.event.move.js', array('jquery'), '', true );
wp_enqueue_script( 'jquery-twentytwenty', URI_PATH.'/assets/js/dev/jquery.twentytwenty.js', array('jquery'), '', true );
?>
<?php if(!$is_ajax): ?>
<div class="kitgreen-tab-portfolio kitgreen-tab-content">
<?php endif;
if ( $query->have_posts() ) :
while ( $query->have_posts() ) :
$query->the_post(); $options = get_post_meta( get_the_ID(), '_custom_wc_thumb_options', true );
$image_id ='';
if(isset($options['image_before'])) {
$image_id = $options['image_before'];
}
$img_id = preg_replace( '/[^\d]/', '', $image_id );
$img = wpb_getImageBySize( array( 'attach_id' => $img_id, 'thumb_size' => $img_size , 'class' => 'tabs-icon' ) );
$image_id2 ='';
if(isset($options['image_after'])) {
$image_id2 = $options['image_after'];
}
$img_id2 = preg_replace( '/[^\d]/', '', $image_id2 );
$img2 = wpb_getImageBySize( array( 'attach_id' => $img_id2, 'thumb_size' => $img_size , 'class' => 'tabs-icon' ) );
?>
<div class="item_loc">
<div class="image_before_after">
<?php echo $img['thumbnail']; ?>
<?php echo $img2['thumbnail']; ?>
</div>
<div class="title">
<h4>
<span class="label_fi"><?php echo esc_html__('NAME PROJECT: ','kitgreen') ?></span><?php the_title(); ?>
</h4>
</div>
<div class="cat">
<?php
$item_cats = get_the_terms( get_the_ID(), 'portfolio_cat' );
if ( $item_cats ):
foreach ( $item_cats as $item_cat ) {
?>
<a href="<?php echo esc_url(get_term_link($item_cat->slug, 'portfolio_cat')); ?>">
<?php echo $item_cat->name . ' '; ?>
</a><span>/</span>
<?php }
endif;
?>
</div>
<div class="excerpt">
<?php the_excerpt(); ?>
</div>
<div class="redmore ">
<a href="<?php the_permalink(); ?>">
<?php echo esc_html($label); ?>
<span class="lnr lnr-arrow-right"></span>
</a>
</div>
</div>
<?php
endwhile;
endif;
if(!$is_ajax) echo '</div>';
wp_reset_postdata();
if(!$is_ajax): ?>
<script>
jQuery(document).ready(function($) {
$(window).load(function() {
$(".image_before_after").twentytwenty();
});
});
</script>
</div>
<?php endif; ?>
<?php
$output = ob_get_clean();
if( $is_ajax ) {
$output = array(
'html' => $output
);
}
return $output;
}
add_shortcode( 'kitchen_tab', 'kitgreen_shortcode_kitchen_tab' );
}
if( ! function_exists( 'kitgreen_get_kitchen_tab_ajax' ) ) {
add_action( 'wp_ajax_kitgreen_get_kitchen_tab_shortcode', 'kitgreen_get_kitchen_tab_ajax' );
add_action( 'wp_ajax_nopriv_kitgreen_get_kitchen_tab_shortcode', 'kitgreen_get_kitchen_tab_ajax' );
function kitgreen_get_kitchen_tab_ajax() {
if( ! empty( $_POST['atts'] ) ) {
$atts = $_POST['atts'];
$data = kitgreen_shortcode_kitchen_tab($atts);
echo json_encode( $data );
die();
}
}
}