| Server IP : 146.59.209.152 / Your IP : 216.73.216.46 Web Server : Apache System : Linux webm005.cluster131.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64 User : infrafs ( 43850) PHP Version : 8.2.29 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/infrafs/www/wp-content/plugins/wp-store-locator/inc/ |
Upload File : |
<?php
/**
* WPSL / Borlabs Cookie class
*
* @author Tijmen Smit
* @since 2.2.22
*/
if ( !defined( 'ABSPATH' ) ) exit;
if ( !class_exists( 'WPSL_Borlabs_Cookie' ) ) {
class WPSL_Borlabs_Cookie {
/**
* Class constructor
*/
public function __construct() {
if ( !is_admin() ) {
if (defined('BORLABS_COOKIE_VERSION') && version_compare(BORLABS_COOKIE_VERSION, '2.0', '>=')) {
add_filter( 'borlabsCookie/contentBlocker/modify/content/wpstorelocator', array( $this, 'update_content_blocker' ), 10, 2 );
} else {
add_filter( 'borlabsCookie/bct/modify_content/wpstorelocator', array( $this, 'update_content_blocker_backwards_compatibility' ), 10, 2 );
}
}
}
/**
* Check if the 'wpstorelocator' blocked content type exists.
* If this is not the case, then we create it.
*
* @since 2.2.22
* @return void
*/
public function maybe_enable_bct() {
$wpsl_bct_data = BorlabsCookieHelper()->getBlockedContentTypeDataByTypeId( 'wpstorelocator' );
if ( !$wpsl_bct_data ) {
$this->enable();
}
}
/**
* Add support for the delayed loading of the
* Google Maps library in the Borlabs Cookies plugin
* by adding a 'wpstorelocator' blocked content type.
*
* @since 2.2.22
* @return void
*/
public function enable() {
/**
* First, we delete old Blocked Content Types with the id wpstorelocator.
* If the id doesn't exist, nothing happens.
*
* Doing so ensures that both plugins work as intended.
*/
BorlabsCookieHelper()->deleteBlockedContentType( 'wpstorelocator' );
// Add new Blocked Content Type wpstorelocator - if the BCT exists nothing happens
BorlabsCookieHelper()->addBlockedContentType(
'wpstorelocator',
'WP Store Locator',
'',
[],
'<div class="borlabs-cookie-bct bc-bct-iframe bc-bct-google-maps">
<p class="bc-thumbnail"><img src="%%thumbnail%%" alt="%%name%%"></p>
<div class="bc-text">
<p>' . _x( 'To protect your personal data, your connection to Google Maps has been blocked.<br>Click on <strong>Load map</strong> to unblock Google Maps.<br>By loading the map you accept the privacy policy of Google.<br>More information about Google\'s privacy policy can be found here <a href="https://policies.google.com/privacy?hl=en&gl=en" target="_blank" rel="nofollow">Google - Privacy & Terms</a> . ', 'Borlabs Cookie', 'wpsl' ) . '</p>
<p><label><input type="checkbox" name="unblockAll" value="1" checked> ' . _x( 'Do not block Google Maps in the future anymore.', 'Borlabs Cookie', 'wpsl' ) . '</label>
<a role="button" data-borlabs-cookie-unblock>' . _x( 'Load map', 'Borlabs Cookie', 'wpsl' ) . '</a></p>
</div>
</div>',
'',
'',
[
'responsiveIframe' => false,
],
true,
true
);
}
/**
* Remove the 'wpstorelocator' blocked content type
* from the Borlabs Cookie plugin.
*
* @since 2.2.22
*/
public function disable() {
if ( function_exists('BorlabsCookieHelper' ) ) {
BorlabsCookieHelper()->deleteBlockedContentType( 'wpstorelocator' );
}
}
/**
* modifyWPStoreLocatorContentBlockerBackwardsCompatibility function.
*
* @since 2.2.233
* @param mixed $id
* @param mixed $content
* @return void
*/
public function update_content_blocker_backwards_compatibility( $id, $content ) {
return $this->update_content_blocker($content);
}
/**
* modifyWPStoreLocatorContentBlocker function.
*
* @since 2.2.22
* @param mixed $content
* @param mixed $atts
* @return void
*/
public function update_content_blocker( $content, $atts = [] ) {
// Get settings of the Blocked Content Type
$wpsl_data = BorlabsCookieHelper()->getBlockedContentTypeDataByTypeId( 'wpstorelocator' );
// Workaround, fixed in newer versions of Borlabs Cookie
if ( !isset($wpsl_data['settings']['unblockAll'] ) ) {
$wpsl_data['settings']['unblockAll'] = false;
}
BorlabsCookieHelper()->updateBlockedContentTypeJavaScript(
'wpstorelocator',
'var myScriptTag = document.createElement("script"); myScriptTag.type = "text/javascript"; myScriptTag.src = "https://maps.google.com/maps/api/js' . wpsl_get_gmap_api_params( "browser_key" ) .'";jQuery("body").append(myScriptTag);',
'initWpslMap();',
$wpsl_data['settings']
);
// Default thumbnail
$thumbnail = BORLABS_COOKIE_PLUGIN_URL.'images/bct-google-maps.png';
// Get the title which was maybe set via title-attribute in a shortcode
$title = BorlabsCookieHelper()->getCurrentTitleOfBlockedContentType();
// If no title was set use the Blocked Content Type name as title
if ( empty( $title ) ) {
$title = $wpsl_data['name'];
}
// Replace text variables
if (!empty($atts)) {
foreach ($atts as $key => $value) {
$wpsl_data['previewHTML'] = str_replace('%%'.$key.'%%', $value, $wpsl_data['previewHTML']);
}
}
$wpsl_data['previewHTML'] = str_replace(
[
'%%name%%',
'%%thumbnail%%',
'%%privacy_policy_url%%',
],
[
$title,
$thumbnail,
$wpsl_data['privacyPolicyURL'],
],
$wpsl_data['previewHTML']
);
/* Return the HTML that displays the information, that the original content was blocked */
return $wpsl_data['previewHTML'];
}
}
new WPSL_Borlabs_Cookie();
}