css_check = 0;
}
public static function get_instance( $new = false ) {
if ( $new || null === self::$instance ) {
self::$instance = new self();
}
return self::$instance;
}
public static function vincentyGreatCircleDistance( $latitudeFrom, $longitudeFrom, $latitudeTo, $longitudeTo, $earthRadius = 6371000 ) {
// convert from degrees to radians
$latFrom = deg2rad( floatval( $latitudeFrom ) );
$lonFrom = deg2rad( floatval( $longitudeFrom ) );
$latTo = deg2rad( floatval( $latitudeTo ) );
$lonTo = deg2rad( floatval( $longitudeTo ) );
$lonDelta = $lonTo - $lonFrom;
$a = pow( cos( $latTo ) * sin( $lonDelta ), 2 ) +
pow( cos( $latFrom ) * sin( $latTo ) - sin( $latFrom ) * cos( $latTo ) * cos( $lonDelta ), 2 );
$b = sin( $latFrom ) * sin( $latTo ) + cos( $latFrom ) * cos( $latTo ) * cos( $lonDelta );
$angle = atan2( sqrt( $a ), $b );
return $angle * $earthRadius;
}
public static function object_to_array( $obj ) {
//only process if it's an object or array being passed to the function
if ( is_object( $obj ) || is_array( $obj ) ) {
$ret = (array) $obj;
foreach ( $ret as &$item ) {
//recursively process EACH element regardless of type
$item = self::object_to_array( $item );
}
return $ret;
} //otherwise (i.e. for scalar values) return without modification
else {
return $obj;
}
}
public static function formatStoreAddress( $address ) {
if ( is_array( $address ) && ! empty( $address ) ) {
$o_address = isset( $address['address'] ) && ! empty( $address['address'] ) ? $address['address'] : '';
if ( isset( $address['city'] ) && ! empty( $address['city'] ) ) {
$o_address .= empty( $o_address ) ? $address['city'] : ', ' . $address['city'];
}
if ( isset( $address['state'] ) && ! empty( $address['state'] ) ) {
$o_address .= empty( $o_address ) ? $address['state'] : ', ' . $address['state'];
}
if ( isset( $address['country'] ) && ! empty( $address['country'] ) ) {
$o_address .= empty( $o_address ) ? $address['country'] : ', ' . $address['country'];
}
return $o_address;
}
return '';
}
public static function formatStoreOpening( $opening ) {
if ( ! is_array( $opening ) || empty( $opening ) ) {
return '';
}
$same_day = '';
$same_time = 0;
$time_duplicate = array_count_values( $opening );
foreach ( $time_duplicate as $t_key => $t_val ) {
if ( $t_val < 5 ) {
continue;
}
if ( $t_val == 7 ) {
return [ [ '', self::formatBeautyTime( $t_key, true ) ] ];
}
$change_time = false;
$change_count = 0;
foreach ( $opening as $o_key => $o_val ) {
if ( $change_time === false ) {
$change_time = $o_val;
continue;
}
if ( $change_time != $o_val ) {
$change_count ++;
$change_time = $o_val;
}
}
if ( $change_count <= 1 ) {
$short_days = [];
$short_day = [];
$temp_time = '';
foreach ( $opening as $s_key => $s_val ) {
if ( empty( $short_day ) ) {
$short_day = [ self::formatDayName( $s_key ), self::formatBeautyTime( $s_val ) ];
$temp_time = $s_val;
continue;
}
if ( $temp_time != $s_val ) {
$short_days[] = $short_day;
$short_day = [ self::formatDayName( $s_key ), self::formatBeautyTime( $s_val ) ];
$temp_time = $s_val;
continue;
} else {
$short_day[0] = self::formatDayRange( $short_day[0], self::formatDayName( $s_key ) );
}
if ( $s_key = 'sunday' && $change_count == 1 && count( $short_days ) == 1 ) {
$short_days[] = $short_day;
}
}
return $short_days;
}
}
$regular_day = [];
foreach ( $opening as $r_key => $r_val ) {
$regular_day[] = [ self::formatDayName( $r_key ) . ':', self::formatBeautyTime( $r_val ) ];
}
return $regular_day;
}
public static function splitStoreOpening( $opening ) {
if ( ! is_array( $opening ) || empty( $opening ) ) {
return '';
}
$r_opening = [];
$is_open_store = false;
foreach ( $opening as $o_key => $o_val ) {
$d_opening = [];
$d_opening[0] = self::formatFullDayName( $o_key );
$split_part = explode( '-', $o_val );
if ( ! empty( $split_part ) && is_array( $split_part ) && 2 == count( $split_part ) ) {
$d_opening[1] = $split_part[0];
$d_opening[2] = $split_part[1];
$is_open_store = true;
} else {
$d_opening[1] = $o_val;
$is_open_store = false;
}
$r_opening[] = $d_opening;
}
if ( ! $is_open_store ) {
return array( array( esc_html__( 'Close', '9map-map-multi-locations' ) ) );
}
return $r_opening;
}
public static function formatBeautyTime( $time, $all_day = false ) {
if ( empty( $time ) ) {
if ( $all_day ) {
return '';
} else {
return esc_html__( 'Close', '9map-map-multi-locations' );
}
}
if ( ! strpos( $time, 'm' ) && ! strpos( $time, 'M' ) ) {
return $time;
}
$split_part = explode( '-', $time );
$o_time = '';
foreach ( $split_part as $s_time ) {
$hour_part = explode( ':', $s_time );
foreach ( $hour_part as $h_pos => $h_time ) {
switch ( $h_pos ) {
case 0:
if ( 0 == strpos( $h_time, '0' ) ) {
$o_time .= empty( $o_time ) ? substr( $h_time, 1, 1 ) : ' - ' . substr( $h_time, 1, 1 );
} else {
$o_time .= empty( $o_time ) ? $h_time : ' - ' . $h_time;
}
break;
case 1:
if ( '00' != $h_time ) {
$o_time .= ':' . $h_time;
}
break;
case 2:
$o_time .= $h_time;
default:
}
}
}
return $o_time;
}
public static function formatDayName( $day ) {
if ( empty( $day ) ) {
return '';
}
switch ( $day ) {
case 'monday':
return 'MON';
case 'tuesday':
return 'TUS';
case 'wednesday':
return 'WED';
case 'thursday':
return 'THU';
case 'friday':
return 'FRI';
case 'saturday':
return 'SAR';
default:
return 'SUN';
}
}
public static function formatFullDayName( $day ) {
if ( empty( $day ) ) {
return '';
}
switch ( $day ) {
case 'monday':
return 'Monday';
case 'tuesday':
return 'Tuesday';
case 'wednesday':
return 'Wednesday';
case 'thursday':
return 'Thursday';
case 'friday':
return 'Friday';
case 'saturday':
return 'Saturday';
default:
return 'Sunday';
}
}
public static function formatDayRange( $day, $next ) {
if ( empty( $day ) ) {
return '';
}
if ( strlen( $day ) > 3 ) {
$day = substr( $day, 0, 3 );
}
$day .= '-' . $next;
return $day . ':';
}
public static function getFormattedStores( $stores, $category, $location, $radius, $unit = 'km' ) {
$o_stores = [];
foreach ( $stores as $store ) {
$store_category = get_the_terms( $store->ID, 'nimap_store_category' );
$format_category = [];
if ( $store_category && is_array( $store_category ) && ! empty( $store_category ) ) {
$exits_cat = false;
foreach ( $store_category as $cat_data ) {
if ( $category && $cat_data->term_id == $category ) {
$exits_cat = true;
}
$format_category[ $cat_data->term_id ] = $cat_data->name;
}
if ( $category && ! $exits_cat ) {
continue;
}
}
$store_title = get_the_title( $store->ID ) ?: '';
$store_address = get_post_meta( $store->ID, 'nimap_store_address', true ) ?: '';
$store_address = maybe_unserialize( $store_address );
$s_distance = 0;
if ( $store_address && is_array( $store_address ) ) {
$s_distance = self::getStoreDistance( $store_address, $location, $unit );
if ( ! $radius || $s_distance < 0 || $s_distance > $radius ) {
continue;
}
}
$store_description = get_post_meta( $store->ID, 'nimap_store_description', true ) ?: '';
$store_information = get_post_meta( $store->ID, 'nimap_store_information', true ) ?: '';
$store_opening = get_post_meta( $store->ID, 'nimap_store_opening', true ) ?: '';
$store_image = get_post_meta( $store->ID, 'nimap_store_image', true ) ?: '';
$store_image = self::getStoreThumbnail( $store_image, $store_title );
$store_information = maybe_unserialize( $store_information );
$store_opening = maybe_unserialize( $store_opening );
$store_opening = self::formatStoreOpening( $store_opening );
$category_render = self::printCategory( $format_category );
$c_store = array(
'id' => $store->ID,
'title' => $store_title,
'address' => $store_address['address'],
'image' => $store_image['info'],
'city' => $store_address['city'],
'state' => isset( $store_address['state'] ) ? $store_address['state'] : '',
'country' => $store_address['country'],
'zip' => $store_address['zip'],
'phone' => $store_information['phone'],
'fax' => $store_information['fax'],
'website' => $store_information['website'],
'url' => $store_information['website'],
'custom' => $store_information['custom'],
'email' => $store_information['email'],
'description' => $store_description,
'opening' => self::printOpening( $store_opening ),
'category' => $category_render[0],
'category_r' => $category_render[1],
'lat' => $store_address['latitude'],
'lng' => $store_address['longitude'],
'distance' => $s_distance,
);
$o_stores[] = $c_store;
}
return $o_stores;
}
public static function getStoreDistance( $store, $location, $unit ) {
if ( empty( $store ) || ! is_array( $store ) || ! isset( $store['latitude'] ) || ! isset( $store['longitude'] )
|| empty( $location ) || ! is_array( $location ) || ! isset( $location['lng'] ) || ! isset( $location['lat'] ) ) {
return - 1;
}
$l_distance = (float) NIMAP_MULTI_LOCATOR_Function::vincentyGreatCircleDistance( $store['latitude'],
$store['longitude'], $location['lat'], $location['lng'], $unit );
$f_distance = round( $l_distance, 2 );
return $f_distance;
}
public static function sortStoreResults( $stores, $sort = 'distance', $index = 0, $count = 99 ) {
$d_sort = array_column( $stores, $sort );
array_multisort( $d_sort, SORT_ASC, $stores );
if ( $count && count( $stores ) > $count ) {
$o_stores = array_slice( $stores, $index, $count );
} else {
$o_stores = $stores;
}
return $o_stores;
}
public static function renderPagingResults( $stores_count, $current_page, $number_post ) {
if ( $stores_count <= $number_post ) {
return '';
}
$total_page = $stores_count > $number_post ? $stores_count % $number_post == 0 ?
intdiv( $stores_count, $number_post ) :
intdiv( $stores_count, $number_post ) + 1 : 1;
$o_html = '';
ob_start();
for ( $p = 1; $p <= $total_page; $p ++ ) {
if ( $p == 1 || $p == $total_page ) { ?>
$current_page - 2 ) {
?>
...
$current_page + 2 ) {
continue;
}
if ( $p < $current_page + 2 ) {
?>
...
$cat_name ) {
// $f_category .= '';
$f_category .= '' . esc_html( $cat_name ) . '';
// $f_category .= '';
$raw_category .= $raw_category == '' ? $cat_name : ', ' . $cat_name;
}
return [ $f_category, $raw_category ];
}
public static function printOpening( $format_opening, $formatted = false ) {
$f_opening = '';
if ( ! $format_opening ) {
$f_opening .= '' . esc_html( '' ) . '';
}
foreach ( $format_opening as $open_day ) {
$f_opening .= '';
$f_opening .= '' . esc_html( $open_day[0] ) . ' ';
if ( 3 == count( $open_day ) ) {
$f_opening .= '' . esc_html( $open_day[1] ) . '';
$f_opening .= '–';
$f_opening .= '' . esc_html( $open_day[2] ) . '';
} elseif ( 2 == count( $open_day ) ) {
if ( $open_day[1] == '' && $open_day[0] == '' ) {
$f_opening = esc_html__( 'Close', '9map-map-multi-locations' );
} else {
$f_opening .= '' . esc_html( $open_day[1] ) . '';
}
}
$f_opening .= empty( $f_opening ) ? '' : '
';
}
return $f_opening;
}
public static function getStoreThumbnail( $image_id, $store_name, $size = array( 50, 50 ) ) {
$attr = array(
'class' => 'nimap-store-thumb',
'alt' => $store_name
);
$thumb = [];
if ( ! empty( $image_id ) ) {
$image_src = wp_get_attachment_image_src( $image_id, apply_filters( 'nimap_thumbnail_size', 'thumbnail' ) );
$image_alt = get_post_meta( $image_id, '_wp_attachment_image_alt', true );
} else {
// $image_src[0] = wc_placeholder_img_src( 'woocommerce_single' );
$image_src[0] = '';
$image_alt = esc_html__( 'Awaiting product image', '9map-map-multi-locations' );
}
$no_image = empty( $image_src[0] ) ? ' nimap-store-no-image' : '';
$thumb['list'] = '
';
$thumb['info'] = '';
return $thumb;
}
public static function registerGoogleMaps( $atts = array(), $locate = 'locator' ) {
switch ( $locate ) {
case 'list':
case 'widget':
case 'coordinate':
$map_url = 'https://maps.googleapis.com/maps/api/js?libraries=places&loading=async&callback=nimapInitMap';
break;
case 'setup':
$map_url = 'https://maps.googleapis.com/maps/api/js?libraries=places,drawing&loading=async&callback=nimapInitMap';
break;
default:
$map_url = '//maps.googleapis.com/maps/api/js?libraries=places,drawing&loading=async&callback=nimapInitMap';
// $map_url = '//maps.googleapis.com/maps/api/js?libraries=places,markers,drawing&v=quarterly®ion=VN&language=VN&callback=nimapInitMap';
}
// Set the API Key
$api_key = $atts['general_api_key'];
if ( $api_key ) {
$map_url .= '&key=' . $api_key;
}
// Add the callback
// $map_cb_func = isset( $atts['lib_callback'] ) ? $atts['lib_callback'] : 'nimap_cb_map';
// $map_url .= '&callback=' . $map_cb_func;
// Set the map language
$map_country = null;
if ( isset( $atts['map_language'] ) && $atts['map_language'] ) {
$map_country = $atts['map_language'];
} else {
$map_country = $atts['map_language'] ? $atts['map_language'] : 'en_US';
}
// When we have a country
// if ( $map_country ) {
// $map_url .= '&language=' . $map_country;
// }
// Set the map region
$map_region = null;
if ( isset( $atts['map_region'] ) ) {
$map_region = $atts['map_region'];
}
if ( $map_region ) {
$map_url .= '®ion=' . $map_region;
}
// Register the Google Maps
wp_register_script( 'nimap_google_maps', $map_url, array( 'jquery' ), NIMAP_VERSION, true );
// Enqueue the Google Maps
wp_enqueue_script( 'nimap_google_maps' );
// $this->initBorlabsCookies();
//custom dynamic
// $dynamic_lib = '';
// wp_add_inline_script( 'nimap_google_maps', $dynamic_lib, 'before' );
}
public static function mapStyle( $layout_code, $custom_map_style = false ) {
/// Get the map configuration
switch ( $layout_code ) {
//
case '':
case '-1':
case 'default':
case '0':
return '';
break;
case 'ultra-light-with-labels':
return '[{"featureType":"water","elementType":"geometry","stylers":[{"color":"#e9e9e9"},{"lightness":17}]},{"featureType":"landscape","elementType":"geometry","stylers":[{"color":"#f5f5f5"},{"lightness":20}]},{"featureType":"road.highway","elementType":"geometry.fill","stylers":[{"color":"#ffffff"},{"lightness":17}]},{"featureType":"road.highway","elementType":"geometry.stroke","stylers":[{"color":"#ffffff"},{"lightness":29},{"weight":0.2}]},{"featureType":"road.arterial","elementType":"geometry","stylers":[{"color":"#ffffff"},{"lightness":18}]},{"featureType":"road.local","elementType":"geometry","stylers":[{"color":"#ffffff"},{"lightness":16}]},{"featureType":"poi","elementType":"geometry","stylers":[{"color":"#f5f5f5"},{"lightness":21}]},{"featureType":"poi.park","elementType":"geometry","stylers":[{"color":"#dedede"},{"lightness":21}]},{"elementType":"labels.text.stroke","stylers":[{"visibility":"on"},{"color":"#ffffff"},{"lightness":16}]},{"elementType":"labels.text.fill","stylers":[{"saturation":36},{"color":"#333333"},{"lightness":40}]},{"elementType":"labels.icon","stylers":[{"visibility":"off"}]},{"featureType":"transit","elementType":"geometry","stylers":[{"color":"#f2f2f2"},{"lightness":19}]},{"featureType":"administrative","elementType":"geometry.fill","stylers":[{"color":"#fefefe"},{"lightness":20}]},{"featureType":"administrative","elementType":"geometry.stroke","stylers":[{"color":"#fefefe"},{"lightness":17},{"weight":1.2}]}]';
break;
case 'subtle-grayscale':
return '[{"featureType":"administrative","elementType":"all","stylers":[{"saturation":"-100"}]},{"featureType":"administrative.province","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"landscape","elementType":"all","stylers":[{"saturation":-100},{"lightness":65},{"visibility":"on"}]},{"featureType":"poi","elementType":"all","stylers":[{"saturation":-100},{"lightness":"50"},{"visibility":"simplified"}]},{"featureType":"road","elementType":"all","stylers":[{"saturation":"-100"}]},{"featureType":"road.highway","elementType":"all","stylers":[{"visibility":"simplified"}]},{"featureType":"road.arterial","elementType":"all","stylers":[{"lightness":"30"}]},{"featureType":"road.local","elementType":"all","stylers":[{"lightness":"40"}]},{"featureType":"transit","elementType":"all","stylers":[{"saturation":-100},{"visibility":"simplified"}]},{"featureType":"water","elementType":"geometry","stylers":[{"hue":"#ffff00"},{"lightness":-25},{"saturation":-97}]},{"featureType":"water","elementType":"labels","stylers":[{"lightness":-25},{"saturation":-100}]}]';
break;
case 'shades-of-grey':
return '[{"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}]}]';
break;
case 'blue-water':
return '[{"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"}]}]';
break;
case 'wy':
return '[{"featureType":"all","elementType":"geometry.fill","stylers":[{"weight":"2.00"}]},{"featureType":"all","elementType":"geometry.stroke","stylers":[{"color":"#9c9c9c"}]},{"featureType":"all","elementType":"labels.text","stylers":[{"visibility":"on"}]},{"featureType":"landscape","elementType":"all","stylers":[{"color":"#f2f2f2"}]},{"featureType":"landscape","elementType":"geometry.fill","stylers":[{"color":"#ffffff"}]},{"featureType":"landscape.man_made","elementType":"geometry.fill","stylers":[{"color":"#ffffff"}]},{"featureType":"poi","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"road","elementType":"all","stylers":[{"saturation":-100},{"lightness":45}]},{"featureType":"road","elementType":"geometry.fill","stylers":[{"color":"#eeeeee"}]},{"featureType":"road","elementType":"labels.text.fill","stylers":[{"color":"#7b7b7b"}]},{"featureType":"road","elementType":"labels.text.stroke","stylers":[{"color":"#ffffff"}]},{"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"}]},{"featureType":"water","elementType":"geometry.fill","stylers":[{"color":"#c8d7d4"}]},{"featureType":"water","elementType":"labels.text.fill","stylers":[{"color":"#070707"}]},{"featureType":"water","elementType":"labels.text.stroke","stylers":[{"color":"#ffffff"}]}]';
break;
case 'vintage-old-golden-brown':
return '[{"featureType":"all","elementType":"all","stylers":[{"color":"#ff7000"},{"lightness":"69"},{"saturation":"100"},{"weight":"1.17"},{"gamma":"2.04"}]},{"featureType":"all","elementType":"geometry","stylers":[{"color":"#cb8536"}]},{"featureType":"all","elementType":"labels","stylers":[{"color":"#ffb471"},{"lightness":"66"},{"saturation":"100"}]},{"featureType":"all","elementType":"labels.text.fill","stylers":[{"gamma":0.01},{"lightness":20}]},{"featureType":"all","elementType":"labels.text.stroke","stylers":[{"saturation":-31},{"lightness":-33},{"weight":2},{"gamma":0.8}]},{"featureType":"all","elementType":"labels.icon","stylers":[{"visibility":"off"}]},{"featureType":"landscape","elementType":"all","stylers":[{"lightness":"-8"},{"gamma":"0.98"},{"weight":"2.45"},{"saturation":"26"}]},{"featureType":"landscape","elementType":"geometry","stylers":[{"lightness":30},{"saturation":30}]},{"featureType":"poi","elementType":"geometry","stylers":[{"saturation":20}]},{"featureType":"poi.park","elementType":"geometry","stylers":[{"lightness":20},{"saturation":-20}]},{"featureType":"road","elementType":"geometry","stylers":[{"lightness":10},{"saturation":-30}]},{"featureType":"road","elementType":"geometry.stroke","stylers":[{"saturation":25},{"lightness":25}]},{"featureType":"water","elementType":"all","stylers":[{"lightness":-20},{"color":"#ecc080"}]}]';
break;
case 'black-and-white':
return '[{"featureType":"road","elementType":"labels","stylers":[{"visibility":"on"}]},{"featureType":"poi","stylers":[{"visibility":"off"}]},{"featureType":"administrative","stylers":[{"visibility":"off"}]},{"featureType":"road","elementType":"geometry.fill","stylers":[{"color":"#000000"},{"weight":1}]},{"featureType":"road","elementType":"geometry.stroke","stylers":[{"color":"#000000"},{"weight":0.8}]},{"featureType":"landscape","stylers":[{"color":"#ffffff"}]},{"featureType":"water","stylers":[{"visibility":"off"}]},{"featureType":"transit","stylers":[{"visibility":"off"}]},{"elementType":"labels","stylers":[{"visibility":"off"}]},{"elementType":"labels.text","stylers":[{"visibility":"on"}]},{"elementType":"labels.text.stroke","stylers":[{"color":"#ffffff"}]},{"elementType":"labels.text.fill","stylers":[{"color":"#000000"}]},{"elementType":"labels.icon","stylers":[{"visibility":"on"}]}]';
break;
case 'light-dream':
return '[{"featureType":"landscape","stylers":[{"hue":"#FFBB00"},{"saturation":43.400000000000006},{"lightness":37.599999999999994},{"gamma":1}]},{"featureType":"road.highway","stylers":[{"hue":"#FFC200"},{"saturation":-61.8},{"lightness":45.599999999999994},{"gamma":1}]},{"featureType":"road.arterial","stylers":[{"hue":"#FF0300"},{"saturation":-100},{"lightness":51.19999999999999},{"gamma":1}]},{"featureType":"road.local","stylers":[{"hue":"#FF0300"},{"saturation":-100},{"lightness":52},{"gamma":1}]},{"featureType":"water","stylers":[{"hue":"#0078FF"},{"saturation":-13.200000000000003},{"lightness":2.4000000000000057},{"gamma":1}]},{"featureType":"poi","stylers":[{"hue":"#00FF6A"},{"saturation":-1.0989010989011234},{"lightness":11.200000000000017},{"gamma":1}]}]';
break;
case 'blue-essence':
return '[{"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"}]}]';
break;
//unsaturated browns
case 'pale-dawn':
return '[{"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"}]}]';
break;
case 'unsaturated-browns':
return '[{"elementType":"geometry","stylers":[{"hue":"#ff4400"},{"saturation":-68},{"lightness":-4},{"gamma":0.72}]},{"featureType":"road","elementType":"labels.icon"},{"featureType":"landscape.man_made","elementType":"geometry","stylers":[{"hue":"#0077ff"},{"gamma":3.1}]},{"featureType":"water","stylers":[{"hue":"#00ccff"},{"gamma":0.44},{"saturation":-33}]},{"featureType":"poi.park","stylers":[{"hue":"#44ff00"},{"saturation":-23}]},{"featureType":"water","elementType":"labels.text.fill","stylers":[{"hue":"#007fff"},{"gamma":0.77},{"saturation":65},{"lightness":99}]},{"featureType":"water","elementType":"labels.text.stroke","stylers":[{"gamma":0.11},{"weight":5.6},{"saturation":99},{"hue":"#0091ff"},{"lightness":-86}]},{"featureType":"transit.line","elementType":"geometry","stylers":[{"lightness":-48},{"hue":"#ff5e00"},{"gamma":1.2},{"saturation":-23}]},{"featureType":"transit","elementType":"labels.text.stroke","stylers":[{"saturation":-64},{"hue":"#ff9100"},{"lightness":16},{"gamma":0.47},{"weight":2.7}]}]';
break;
case 'midnight-commander':
return '[{"featureType":"all","elementType":"labels.text.fill","stylers":[{"color":"#ffffff"}]},{"featureType":"all","elementType":"labels.text.stroke","stylers":[{"color":"#000000"},{"lightness":13}]},{"featureType":"administrative","elementType":"geometry.fill","stylers":[{"color":"#000000"}]},{"featureType":"administrative","elementType":"geometry.stroke","stylers":[{"color":"#144b53"},{"lightness":14},{"weight":1.4}]},{"featureType":"landscape","elementType":"all","stylers":[{"color":"#08304b"}]},{"featureType":"poi","elementType":"geometry","stylers":[{"color":"#0c4152"},{"lightness":5}]},{"featureType":"road.highway","elementType":"geometry.fill","stylers":[{"color":"#000000"}]},{"featureType":"road.highway","elementType":"geometry.stroke","stylers":[{"color":"#0b434f"},{"lightness":25}]},{"featureType":"road.arterial","elementType":"geometry.fill","stylers":[{"color":"#000000"}]},{"featureType":"road.arterial","elementType":"geometry.stroke","stylers":[{"color":"#0b3d51"},{"lightness":16}]},{"featureType":"road.local","elementType":"geometry","stylers":[{"color":"#000000"}]},{"featureType":"transit","elementType":"all","stylers":[{"color":"#146474"}]},{"featureType":"water","elementType":"all","stylers":[{"color":"#021019"}]}]';
break;
case 'light-monochrome':
return '[{"featureType":"administrative.locality","elementType":"all","stylers":[{"hue":"#2c2e33"},{"saturation":7},{"lightness":19},{"visibility":"on"}]},{"featureType":"landscape","elementType":"all","stylers":[{"hue":"#ffffff"},{"saturation":-100},{"lightness":100},{"visibility":"simplified"}]},{"featureType":"poi","elementType":"all","stylers":[{"hue":"#ffffff"},{"saturation":-100},{"lightness":100},{"visibility":"off"}]},{"featureType":"road","elementType":"geometry","stylers":[{"hue":"#bbc0c4"},{"saturation":-93},{"lightness":31},{"visibility":"simplified"}]},{"featureType":"road","elementType":"labels","stylers":[{"hue":"#bbc0c4"},{"saturation":-93},{"lightness":31},{"visibility":"on"}]},{"featureType":"road.arterial","elementType":"labels","stylers":[{"hue":"#bbc0c4"},{"saturation":-93},{"lightness":-2},{"visibility":"simplified"}]},{"featureType":"road.local","elementType":"geometry","stylers":[{"hue":"#e9ebed"},{"saturation":-90},{"lightness":-8},{"visibility":"simplified"}]},{"featureType":"transit","elementType":"all","stylers":[{"hue":"#e9ebed"},{"saturation":10},{"lightness":69},{"visibility":"on"}]},{"featureType":"water","elementType":"all","stylers":[{"hue":"#e9ebed"},{"saturation":-78},{"lightness":67},{"visibility":"simplified"}]}]';
break;
case 'light-gray':
return '[{"featureType":"water","elementType":"geometry.fill","stylers":[{"color":"#d3d3d3"}]},{"featureType":"transit","stylers":[{"color":"#808080"},{"visibility":"off"}]},{"featureType":"road.highway","elementType":"geometry.stroke","stylers":[{"visibility":"on"},{"color":"#b3b3b3"}]},{"featureType":"road.highway","elementType":"geometry.fill","stylers":[{"color":"#ffffff"}]},{"featureType":"road.local","elementType":"geometry.fill","stylers":[{"visibility":"on"},{"color":"#ffffff"},{"weight":1.8}]},{"featureType":"road.local","elementType":"geometry.stroke","stylers":[{"color":"#d7d7d7"}]},{"featureType":"poi","elementType":"geometry.fill","stylers":[{"visibility":"on"},{"color":"#ebebeb"}]},{"featureType":"administrative","elementType":"geometry","stylers":[{"color":"#a7a7a7"}]},{"featureType":"road.arterial","elementType":"geometry.fill","stylers":[{"color":"#ffffff"}]},{"featureType":"road.arterial","elementType":"geometry.fill","stylers":[{"color":"#ffffff"}]},{"featureType":"landscape","elementType":"geometry.fill","stylers":[{"visibility":"on"},{"color":"#efefef"}]},{"featureType":"road","elementType":"labels.text.fill","stylers":[{"color":"#696969"}]},{"featureType":"administrative","elementType":"labels.text.fill","stylers":[{"visibility":"on"},{"color":"#737373"}]},{"featureType":"poi","elementType":"labels.icon","stylers":[{"visibility":"off"}]},{"featureType":"poi","elementType":"labels","stylers":[{"visibility":"off"}]},{"featureType":"road.arterial","elementType":"geometry.stroke","stylers":[{"color":"#d6d6d6"}]},{"featureType":"road","elementType":"labels.icon","stylers":[{"visibility":"off"}]},{},{"featureType":"poi","elementType":"geometry.fill","stylers":[{"color":"#dadada"}]}]';
break;
case 'custom':
if ( $custom_map_style ) {
return $custom_map_style;
}
break;
default:
return '[{"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"}]}]';
break;
}
return '';
}
public function get_template( $template_name, $args = array(), $template_path = '', $default_path = '' ) {
if ( ! empty( $args ) && is_array( $args ) ) {
extract( $args );
}
if ( empty( $template_path ) ) {
$template_path = $default_path;
}
$located = $template_path . $template_name;
if ( ! file_exists( $located ) ) {
return;
}
include( $located );
}
public function get_local_file_contents( $file_path, $file_name = '' ) {
ob_start();
load_template( $file_path );
$contents = ob_get_clean();
return $contents;
}
public static function expanded_allowed_tags() {
$my_allowed = wp_kses_allowed_html( 'post' );
$my_allowed['svg'] = array(
'xmlns' => array(),
'xml:space' => array(),
'width' => array(),
'height' => array(),
'style' => array(),
'viewBox' => array(),
'viewbox' => array(),
'xmlns:xlink' => array(),
);
$my_allowed['g'] = array(
'class' => array(),
'id' => array(),
'style' => array(),
);
$my_allowed['path'] = array(
'class' => array(),
'id' => array(),
'style' => array(),
'fill' => array(),
'fill-opacity' => array(),
'd' => array(),
);
$my_allowed['select'] = array(
'class' => array(),
'id' => array(),
'name' => array(),
'value' => array(),
'type' => array(),
'data-attribute_name' => array(),
'data-show_option_none' => array(),
);
$my_allowed['option'] = array(
'selected' => array(),
'value' => array(),
);
$my_allowed['form'] = array(
'class' => array(),
'id' => array(),
'name' => array(),
'action' => array(),
'method' => array(),
'enctype' => array(),
'data' => array(),
'data-product_id' => array(),
'data-product_variations' => array(),
);
$my_allowed['input'] = array(
'class' => array(),
'id' => array(),
'name' => array(),
'value' => array(),
'type' => array(),
'step' => array(),
'min' => array(),
'max' => array(),
'title' => array(),
'size' => array(),
'placeholder' => array(),
'inputmode' => array(),
);
// $my_allowed['video'] = array(
// 'class' => array(),
// 'id' => array(),
// 'name' => array(),
// 'value' => array(),
// 'src' => array(),
// 'preload' => array(),
// 'controls' => array(),
// );
$my_allowed['source'] = array(
'class' => array(),
'id' => array(),
'name' => array(),
'value' => array(),
'src' => array(),
'type' => array(),
);
$my_allowed['script'] = array(
'class' => array(),
'id' => array(),
'name' => array(),
'value' => array(),
'src' => array(),
);
$my_allowed['iframe'] = array(
'class' => array(),
'id' => array(),
'name' => array(),
'value' => array(),
'src' => array(),
'loading' => array(),
'title' => array(),
'frameborder' => array(),
'allowfullscreen' => array(),
);
return $my_allowed;
}
}
}
if ( ! function_exists( 'villatheme_include_folder' ) ) {
function villatheme_include_folder( $path, $prefix = '', $ext = array( 'php' ) ) {
/*Include all files in payment folder*/
if ( ! is_array( $ext ) ) {
$ext = explode( ',', $ext );
$ext = array_map( 'trim', $ext );
}
$sfiles = scandir( $path );
foreach ( $sfiles as $sfile ) {
if ( $sfile != '.' && $sfile != '..' ) {
if ( is_file( $path . "/" . $sfile ) ) {
$ext_file = pathinfo( $path . "/" . $sfile );
$file_name = $ext_file['filename'];
if ( $ext_file['extension'] ) {
if ( in_array( $ext_file['extension'], $ext ) ) {
$class = preg_replace( '/\W/i', '_', $prefix . ucfirst( $file_name ) );
if ( ! class_exists( $class ) ) {
require_once $path . $sfile;
if ( class_exists( $class ) ) {
new $class();
}
}
}
}
}
}
}
}
}
if ( ! function_exists( 'villatheme_json_decode' ) ) {
function villatheme_json_decode( $json, $assoc = true, $depth = 512, $options = 2 ) {
if ( function_exists( 'mb_convert_encoding' ) ) {
$json = mb_convert_encoding( $json, 'UTF-8', 'UTF-8' );
}
if ( ! is_string( $json ) ) {
return $json;
}
return json_decode( $json, $assoc, $depth, $options );
}
}
if ( ! function_exists( 'villatheme_json_encode' ) ) {
function villatheme_json_encode( $value, $options = 256, $depth = 512 ) {
return wp_json_encode( $value, $options, $depth );
}
}
if ( ! function_exists( 'villatheme_sanitize_fields' ) ) {
function villatheme_sanitize_fields( $data ) {
if ( is_array( $data ) ) {
return array_map( 'villatheme_sanitize_fields', $data );
} else {
return is_scalar( $data ) ? sanitize_text_field( wp_unslash( $data ) ) : $data;
}
}
}
if ( ! function_exists( 'villatheme_sanitize_kses' ) ) {
function villatheme_sanitize_kses( $data ) {
if ( is_array( $data ) ) {
return array_map( 'villatheme_sanitize_kses', $data );
} else {
return is_scalar( $data ) ? wp_kses_post( wp_unslash( $data ) ) : $data;
}
}
}
if ( ! function_exists( 'nimap_sanitize_customizer' ) ) {
function nimap_sanitize_customizer( $data ) {
$data = villatheme_json_decode( wp_unslash( $data ) );
return villatheme_sanitize_kses( $data );
}
}
if ( ! function_exists( 'nimap_custom_product_tab_default' ) ) {
function nimap_custom_product_tab_default( $key, $product_tab ) {
}
}
if ( ! function_exists( 'nimap_sanitize_customizer' ) ) {
function nimap_sanitize_customizer( $data ) {
$data = villatheme_json_decode( wp_unslash( $data ) );
return villatheme_sanitize_kses( $data );
}
}
if ( ! function_exists( 'nimap_multiple_selected' ) ) {
function nimap_multiple_selected( $value, $choice ) {
if ( is_array( $choice ) ) {
return in_array( $value, $choice ) ? 'selected="selected"' : '';
} else {
return selected( $choice, $value, false );
}
}
}