wpmudev-sls
2/18/2018 - 6:54 PM

Modify the market content of Google Map Pro plugin

Modify the market content of Google Map Pro plugin

<?php

/**
* Plugin Name: Google Map Market Content Modify
* Plugin URI: https://premium.wpmudev.org/
* Description: Modify the market content of Google Map Pro plugin
* Author: Ariful Islam @ WPMUDEV
* Author URI: https://premium.wpmudev.org/profile/itsarifulislam
* License: GPLv2 or later
*/


if ( ! defined( 'ABSPATH' ) ) {
	exit;
}


if ( ! class_exists( 'GoogleMapMarkerContentModify' ) ) {

	class GoogleMapMarkerContentModify {

		private static $_instance = null;

		public static function get_instance() {

			if( is_null( self::$_instance ) ) {
				self::$_instance = new GoogleMapMarkerContentModify();
			}

			return self::$_instance;

		}


		private function __construct() {

			// Init Market Content Modify
			add_filter('agm-create-tag', array( $this, 'agm_modify_tag' ), 10, 1);

			// Init Market Content Styling
			add_action('wp_head', array( $this, 'agm_apply_style' ));
			
		}


		public function agm_modify_tag( $map ) {

			foreach ( $map['markers'] as $key => $marker ) {
				
				preg_match_all('#\bhttps?://[^,\s()<>]+(?:\([\w\d]+\)|([^,[:punct:]\s]|/))#', $marker['body'], $match);
				
				if ( $match && $match[0] ) {

					$post_slug 		= $match[0][0];
					$post_id 		= url_to_postid( $post_slug );
					$thumbnail 		= get_the_post_thumbnail_url( $post_id, $map['image_size'] );
					$marker['body'] 	= "<a href='{$post_slug}'><img src='{$thumbnail}' /><p>{$marker['title']}</p></a>";
					$marker['title'] 	= "";
					$map['markers'][$key] 	= $marker;

				}

			}

			return $map;

		}


		public function agm_apply_style() {

			if ( is_admin() ) return;

		    ?>
				<style>

					/*Hide inner logo*/
					.agm_mh_info_icon {
						display: none;
					}

					/*Hide inner direction link*/
					.agm_mh_marker_item_directions {
						display: none;
					}

					/* Start inner content styling */
					.agm_mh_info_body a {
						position: relative;
						display: block;
					}

					.agm_mh_info_body a p {
						position: absolute;
						bottom: 0;
						left: 0;
						margin-bottom: 0;
						color: #fff;
						padding: 7px;
						font-weight: bold;
						z-index: 2;
						font-size: 14px;
					}

					.agm_mh_info_body a:after {
						content: "";
						width: 100%;
						height: 100%;
						background: rgba(0, 0, 0, 0.15);
						top: 0;
						left: 0;
						position: absolute;
					}
					/* End inner content styling */

				</style>
		    <?php

		}

	}


	function render_google_map_marker_content_modify(){

		$GLOBALS['GoogleMapMarkerContentModify'] = GoogleMapMarkerContentModify::get_instance();

	}

	add_action( 'plugins_loaded', 'render_google_map_marker_content_modify' );

}