HEX
Server: Apache/2.4.65 (Debian)
System: Linux web6 5.10.0-36-amd64 #1 SMP Debian 5.10.244-1 (2025-09-29) x86_64
User: innocamp (1028)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /home/unimil/public_html/wp-content/plugins/qode-listing/modules/maps/map-classes.php
<?php
namespace QodeListing\Maps;
class MapGlobalVars{

	private $id;
	private $type;
	private $query;
	private $init_multiple_map;
	private $multiple_vars;

	public function __construct($type, $id = '', $query = '' ,$init_multiple_map = false) {

		$this->type = $type;
		$this->id = $id;
		$this->query = $query;
		$this->init_multiple_map = $init_multiple_map;
		$this->multiple_vars['addresses'] = array();

		if($this->type === 'single'){
			add_action('wp_enqueue_scripts', array($this, 'generateSingleGlobalVar'), 20);
		}
		if($this->type === 'multiple'){
			$this->setMultipleVars();

			if($this->init_multiple_map){
				add_action('wp_footer', array($this, 'setMultipleGlobalVars'));
			}
		}
	}

	public function generateSingleGlobalVar(){

		$single_map_variables = array();

		if($this->id !== ''){
			$single_map_variables['currentListing'] = $this->generateListingMapParams($this->id);
		}

		$single_map_variables = apply_filters('qode_listing_filter_js_single_map_variables', $single_map_variables);

		wp_localize_script('default', 'qodeSingleMapVars', array(
			'single' => $single_map_variables
		));

	}

	public function setMultipleGlobalVars(){

		$multiple_map_variables = $this->getMultipleVars();

		wp_localize_script('default', 'qodeMultipleMapVars', array(
			'multiple' => $multiple_map_variables
		));

	}

	public function setMultipleVars(){

		if($this->query !== ''){
			if($this->query->have_posts()){
				while($this->query->have_posts()){
					$this->query->the_post();
					$this->multiple_vars['addresses'][] = $this->generateListingMapParams(get_the_ID());
				}
			}
		}

	}

	public function getMultipleVars(){
		return $this->multiple_vars;
	}

	private function generateListingMapParams($listing_item_id){

		$listing_map_params = array();

		//get listing image
		$image_id = get_post_thumbnail_id( $listing_item_id );
		$image = wp_get_attachment_image_src( $image_id );

		//Get item type
		$listing_types = wp_get_post_terms($listing_item_id, 'job_listing_type');

		$listing_type_id = false;
		if(is_array($listing_types) && count($listing_types)){
			$listing_type_id = $listing_types[0]->term_id;
		}

		//take marker pin
		$marker_pin_icon = $marker_pin_icon_pack = '';

		$categories = wp_get_post_terms($listing_item_id, 'job_listing_category');

		if(is_array($categories) && count($categories)){

			$marker_pin_icon_pack = get_term_meta( $categories[0]->term_id, 'icon_pack', true );
			//take category icon
			if($marker_pin_icon_pack !== ''){

				$param = qode_icon_collections()->getIconCollectionParamNameByKey($marker_pin_icon_pack);
				$marker_pin_icon = get_term_meta( $categories[0]->term_id, $param, true );

			}

		}

		$marker_pin = '';
		if($marker_pin_icon !== '' && $marker_pin_icon_pack !== ''){
			$marker_pin = qode_icon_collections()->getIconHTML( $marker_pin_icon, $marker_pin_icon_pack );
		}

		//get address params
		$address_array = qode_listing_get_address_params($listing_item_id);

		//Get item location
		if($address_array['address'] === '' && $address_array['address_lat'] === '' && $address_array['address_long'] === ''){
			$listing_map_params['location'] = null;
		}else{
			$listing_map_params['location'] = array(
				'address' => $address_array['address'],
				'latitude' => $address_array['address_lat'],
				'longitude' => $address_array['address_long']
			);
		}


		$listing_map_params['title'] = get_the_title($listing_item_id);

        if (isset($listing_type_id) && $listing_type_id) {
            $listing_post = get_post($listing_type_id);
            $listing_item_type_name = null;
            if ($listing_post && $listing_post !== null) {
                $listing_item_type_name = $listing_type_id !== '' ? get_post($listing_type_id)->post_name : null;
            }
            $listing_map_params['listingType'] = $listing_item_type_name;
        }

		$listing_map_params['markerPin'] = $marker_pin;
		$listing_map_params['featuredImage'] = $image;
		$listing_map_params['itemUrl'] = get_the_permalink($listing_item_id);

		return $listing_map_params;

	}

}