• Resolved Luca

    (@luca170376)


    Hi, when the plugin is active the google map map (even if I close the consent banner) is no longer displayed unless I refresh the page. I tried going into “integration” and disabling google maps from services and whitelisting the contact page url. Can anyone help me, thanks.

Viewing 15 replies - 1 through 15 (of 16 total)
  • Plugin Author Rogier Lankhorst

    (@rogierlankhorst)

    Hi @luca170376 can you share the url where you have this issue so we can take a look?

    Thread Starter Luca

    (@luca170376)

    Yes @rogierlankhorst here the link https://www.2cserviceseregno.it/contatti

    after the contact form there is the map but as u can see it’s not visible. the map is visible as soon as i deactivate the plugin.

    Plugin Contributor jarnovos

    (@jarnovos)

    Hello @luca170376,

    Could you try replacing the divi.php file on your site, located in the folder /wp-content/plugins/complianz-gdpr/integrations/plugins/, with the updated version attached below? I expect that it should solve the issue.

    /complianz-gdpr/integrations/plugins/divi.php

    Kind regards, Jarno

    Thread Starter Luca

    (@luca170376)

    hello @jarnovos thanx a lot but the link u gave me doesnt work, no file to dowload. Let me know. ciao Luca

    Plugin Contributor jarnovos

    (@jarnovos)

    Hi @luca170376,

    Seems to work fine for me when I click it. You can try the following link instead, though:

    https://gist.githubusercontent.com/jarno-vos/7d509b1ff1d33c8b72235ebb08dd3c4c/raw/929dc4f490096a276c512502aab593136617d89d/divi.php

    Thread Starter Luca

    (@luca170376)

    hello @jarnovos It just open a browser page with the text and not a file to download

    this is the text with the code:

    <?php
    defined( 'ABSPATH' ) or die( "you do not have access to this page!" );
    
    //ensure it's only loaded once, because of theme and plugin possibility
    if ( !function_exists('cmplz_divi_map_script')) {
    	if ( !defined('CMPLZ_GOOGLE_MAPS_INTEGRATION_ACTIVE') ) define('CMPLZ_GOOGLE_MAPS_INTEGRATION_ACTIVE', true);
    
    	add_filter( 'cmplz_known_script_tags', 'cmplz_divi_map_script' );
    	function cmplz_divi_map_script( $tags ) {
    		$tags[] = array(
    			'name' => 'google-maps',
    			'category' => 'marketing',
    			'placeholder' => 'google-maps',
    			'urls' => array(
    				'maps.googleapis.com',
    				'cmplz_divi_init_map'
    			),
    			'enable_placeholder' => '1',
    			'placeholder_class' => 'et_pb_map',
    			'enable_dependency' => '1',
    			'dependency' => [
    				//'wait-for-this-script' => 'script-that-should-wait'
    					'maps.googleapis.com' => 'cmplz_divi_init_map',
    			],
    		);
    		return $tags;
    	}
    
    	/**
    	 */
    
    	function cmplz_divi_whitelist($tags){
    		$tags[] = 'et_animation_data';
    		$tags[] = 'cmplz_divi_init_map';
    		$tags[] = 'Divi/core/admin/js/recaptcha.js';
    		return $tags;
    	}
    	add_filter( 'cmplz_whitelisted_script_tags', 'cmplz_divi_whitelist');
    
    	/**
    	 * Add services to the list of detected items, so it will get set as default, and will be added to the notice about it
    	 *
    	 * @param $services
    	 *
    	 * @return array
    	 */
    
    	function cmplz_divi_map_detected_services( $services ) {
    		if ( ! in_array( 'google-maps', $services ) ) {
    			$services[] = 'google-maps';
    		}
    		return $services;
    	}
    	add_filter( 'cmplz_detected_services', 'cmplz_divi_map_detected_services' );
    
    	/**
    	 * Initialize recaptcha
    	 *
    	 */
    
    	function cmplz_divi_init_recaptcha() {
    		if ( !cmplz_uses_thirdparty('google-recaptcha') ){
    			return;
    		}
    		ob_start();
    		?>
    		<script>
    			document.addEventListener("cmplz_run_after_all_scripts", function (e) {
    				if (e.detail==='marketing' ){
    					cmplz_divi_init_recaptcha();
    				}
    			});
    
    			function cmplz_divi_init_recaptcha() {
    				if ('undefined' === typeof window.jQuery || 'undefined' === typeof window.etCore ) {
    					console.log("jquery or map divi function not found yet, set timeout ");
    					setTimeout(cmplz_divi_init_recaptcha, 500);
    				} else {
    					console.log("init recaptcha");
    					window.etCore.api.spam.recaptcha.init();
    				}
    			}
    
    		</script>
    		<?php
    		$script = ob_get_clean();
    		$script = str_replace(array('<script>', '</script>'), '', $script);
    		wp_add_inline_script( 'cmplz-cookiebanner', $script );
    	}
    	add_action( 'wp_enqueue_scripts', 'cmplz_divi_init_recaptcha',PHP_INT_MAX );
    
    	/**
    	 * Init Google Maps
    	 *
    	 * @return void
    	 */
    	function cmplz_divi_init_maps() {
    		if ( !cmplz_uses_thirdparty('google-maps') ) {
    			return;
    		}
    
    		ob_start();
    		?>
    		<script>
    			document.addEventListener("cmplz_run_after_all_scripts", function (e) {
    				if (e.detail==='marketing' ){
    					cmplz_divi_init_map();
    				}
    			});
    
    			function cmplz_divi_init_map() {
    				if ('undefined' === typeof window.jQuery || 'undefined' === typeof window.et_pb_map_init ) {
    					console.log("jquery or map divi function not found yet, set timeout ");
    					setTimeout(cmplz_divi_init_map, 500);
    				} else {
    					console.log("Divi function detected, try init");
    					let map_container = jQuery(".et_pb_map_container");
    					map_container.each(function () {
    						console.log("interate et_pb_map_init over each map object");
    						console.log(this);
    						window.et_pb_map_init(jQuery(this));
    					})
    				}
    			}
    
    		</script>
    		<?php
    		$script = ob_get_clean();
    		$script = str_replace(array('<script>', '</script>'), '', $script);
    		wp_add_inline_script( 'cmplz-cookiebanner', $script );
    	}
    	add_action( 'wp_enqueue_scripts', 'cmplz_divi_init_maps',PHP_INT_MAX );
    }

    Thread Starter Luca

    (@luca170376)

    @jarnovos or u mean i must copy and past this code in the file u told me?

    Plugin Contributor jarnovos

    (@jarnovos)

    Hello @luca170376,

    To save the file, you have to right-click the link and select “Save as”.

    Then save the file as divi.php and upload it to the folder /wp-content/plugins/complianz-gdpr/integrations/plugins/ on your website.

    Or indeed replace the content of your current divi.php file with the content from the link, which would be the same thing.

    Kind regards, Jarno

    Thread Starter Luca

    (@luca170376)

    @jarnovos I uploaded and replaced that file but still not working

    https://www.2cserviceseregno.it/contatti/

    now when u click on accept the cookie banner the map disapear

    • This reply was modified 1 year, 8 months ago by Luca.
    Plugin Contributor jarnovos

    (@jarnovos)

    Hi @luca170376,

    I think it does work already, as when I visit your site using the below link, the Map is now correctly loaded after accepting: https://www.2cserviceseregno.it/contatti/?nocache

    Most-likely you will have to perform a “Clear/Purge All” action in your caching/optimization plugins for the changes to be reflected on the website.

    Kind regards, Jarno

    Thread Starter Luca

    (@luca170376)

    @jarnovos thanx a lot, i cleaned all the cache and now i can see the maps, Thanx again for the support, have a super day

    ciao Luca

    Plugin Contributor jarnovos

    (@jarnovos)

    Hi @luca170376,

    That’s great, thanks a lot for confirming the solution. Hope you have a nice day yourself!

    Kind regards, Jarno

    Hi @jarnovos,

    I have the same problem, I used your solution but it doesn’t solve the problem, I have WordPress 6.1.1, Divi 4.20 and Complianz 6.4.2, I can’t tell you how the problem came because I updated and configured Complianz at the same time.

    At the moment the solution I found was to deactivate the Cookie Blocker and so I can see the map without deactivating the plugin completely, I have more websites with divi in different versions, I can check something if you ask me.

    At the moment I have only detected the failure in the latter that came online today, when updating and configuring the last things was when I detected the failure.

    All the best

    Thread Starter Luca

    (@luca170376)

    tekwarr?yes at the beginning i did the same as u but now with that file it works, have u tried to deactivate the plugin deleting all the setting before, then u reinstall that, change the file and then u start to set the plugin again. Remember to delete all the cache.

    Plugin Contributor jarnovos

    (@jarnovos)

    Hi @tekwarr,

    If the provided solution didn’t work for your situation, the issue could be slightly different in your case.

    If you open a new thread on these forums and share your URL, or directly message us at support(at)complianz.io, we can have a look at your implementation as well.

    Kind regards, Jarno

Viewing 15 replies - 1 through 15 (of 16 total)
  • The topic ‘Google map problem’ is closed to new replies.