PluginProbe
Cookie Consent – GDPR & CCPA Cookie Banner & Consent Manager / 0.0.3
Cookie Consent – GDPR & CCPA Cookie Banner & Consent Manager v0.0.3
0.0.11 0.0.10 0.0.9 0.0.8 0.0.7 0.0.6 trunk 0.0.1 0.0.2 0.0.3 0.0.4 0.0.5
cookiez / modules / settings / components / settings-pointer.php

settings-pointer.php in Cookie Consent – GDPR & CCPA Cookie Banner & Consent Manager 0.0.3, at modules/settings/components/settings-pointer.php

122 lines 4.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Cookiez\Modules\Settings\Components;
4
5 if ( ! defined( 'ABSPATH' ) ) {
6 exit; // Exit if accessed directly.
7 }
8
9 use Cookiez\Modules\Core\Components\Pointers;
10 use Cookiez\Modules\Settings\Module as Settings_Module;
11 use Cookiez\Classes\Utils;
12
13 /**
14 * Settings Pointer
15 */
16 class Settings_Pointer {
17 const CURRENT_POINTER_SLUG = 'cookiez-settings';
18
19 /**
20 * Print the script for the settings pointer
21 *
22 * @return void
23 */
24 public function admin_print_script() {
25 if ( ! current_user_can( 'manage_options' ) ) {
26 return;
27 }
28
29 if ( Pointers::is_dismissed( self::CURRENT_POINTER_SLUG ) ) {
30 return;
31 }
32
33 if ( Settings_Module::is_elementor_one() ) {
34 return;
35 }
36
37 if ( Utils::is_plugin_page() ) {
38 return;
39 }
40
41 wp_enqueue_script( 'wp-pointer' );
42 wp_enqueue_style( 'wp-pointer' );
43 wp_enqueue_script( 'wp-util' );
44
45 $pointer_content = sprintf(
46 '<h3>%s</h3><p>%s</p><p><a class="button button-primary cookiez-pointer-settings-link" href="%s">%s</a></p>',
47 esc_html__( 'Cookie Consent', 'cookiez' ),
48 esc_html__( 'Start configuring your cookie banner and manage user consent to improve your site compliance.', 'cookiez' ),
49 admin_url( 'admin.php?page=' . Settings_Module::SETTING_BASE_SLUG ),
50 esc_html__( 'Get Started', 'cookiez' )
51 );
52
53 $allowed_tags = [
54 'h3' => [],
55 'p' => [],
56 'a' => [
57 'class' => [],
58 'href' => [],
59 ],
60 ];
61
62 $pointer_position = [
63 'edge' => 'top',
64 'align' => 'left',
65 'at' => 'left+20 bottom',
66 'my' => is_rtl() ? 'left-200 top' : 'left top',
67 ];
68
69 ?>
70 <script>
71 const onClose = () => {
72 return wp.ajax.post( 'cookiez_pointer_dismissed', {
73 data: {
74 pointer: '<?php echo esc_js( static::CURRENT_POINTER_SLUG ); ?>',
75 },
76 nonce: '<?php echo esc_js( wp_create_nonce( 'cookiez-pointer-dismissed' ) ); ?>',
77 } );
78 }
79
80 jQuery( document ).ready( function( $ ) {
81 $( '#toplevel_page_elementor-home' ).pointer( {
82 content: '<?php echo wp_kses( $pointer_content, $allowed_tags ); ?>',
83 pointerClass: 'cookiez-settings-pointer',
84 position: <?php echo wp_json_encode( $pointer_position ); ?>,
85 show: function( event, t ) {
86 t.pointer.show().css( 'z-index', 100050 );
87 t.opened();
88 },
89 close: onClose
90 } ).pointer( 'open' );
91
92 $( '.cookiez-pointer-settings-link' ).first().on( 'click', function( e ) {
93 e.preventDefault();
94
95 $(this).attr( 'disabled', true );
96
97 onClose().promise().done(() => {
98 location = $(this).attr( 'href' );
99 });
100 })
101 } );
102 </script>
103
104 <style>
105 .cookiez-settings-pointer .wp-pointer-content h3::before {
106 background: transparent;
107 border-radius: 0;
108 background-repeat: no-repeat;
109 content: '';
110 background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeD0iMSIgeT0iMiIgd2lkdGg9IjMwIiBoZWlnaHQ9IjMwIiByeD0iNSIgZmlsbD0iI0ZBRTRGQSIvPgo8Y2lyY2xlIGN4PSIxNC41OTY4IiBjeT0iMTYuMDQ4NSIgcj0iMS4yNDk5MSIgc3Ryb2tlPSIjRUQwMUVFIiBzdHJva2Utd2lkdGg9IjAuODY4MDMxIi8+CjxjaXJjbGUgY3g9IjEyLjk5OTYiIGN5PSIyMC4wMDY3IiByPSIxLjA0MTYiIHN0cm9rZT0iI0VEMDFFRSIgc3Ryb2tlLXdpZHRoPSIwLjg2ODAzMSIvPgo8Y2lyY2xlIGN4PSIxNy43MjE2IiBjeT0iMjAuNDcxNiIgcj0iMC45MDI3MTYiIHN0cm9rZT0iI0VEMDFFRSIgc3Ryb2tlLXdpZHRoPSIwLjg2ODAzMSIvPgo8cGF0aCBkPSJNMTUuNDMwMSAxMS4yMzYxQzE1LjUzOTggMTEuMjM2MSAxNS42NDkgMTEuMjM4OCAxNS43NTc1IDExLjI0NDFDMTYuMDQwNSAxMS4yNTc4IDE2LjI2NjggMTEuNDY1MSAxNi4zODczIDExLjcyMTZDMTYuODMwOSAxMi42NjU2IDE3Ljc4OTkgMTMuMzE5MyAxOC45MDIgMTMuMzE5M0MxOS4yNTQ0IDEzLjMxOTMgMTkuNTk2NCAxMy42NjEzIDE5LjU5NjQgMTQuMDEzN0MxOS41OTY0IDE1LjMxNTcgMjAuNDkyMiAxNi40MDg1IDIxLjcwMTIgMTYuNzA5M0MyMi4wMDkgMTYuNzg1OSAyMi4yODE2IDE3LjAwNDkgMjIuMzIwNyAxNy4zMTk3QzIyLjM1NTggMTcuNjAxNiAyMi4zNzQgMTcuODg4NyAyMi4zNzQgMTguMTgwMUMyMi4zNzQgMjIuMDE1NCAxOS4yNjUyIDI1LjEyNDYgMTUuNDMwMSAyNS4xMjQ3QzExLjU5NDkgMjUuMTI0NyA4LjQ4NjA4IDIyLjAxNTQgOC40ODYwOCAxOC4xODAxQzguNDg2NDIgMTQuMzQ1IDExLjU5NTEgMTEuMjM2MSAxNS40MzAxIDExLjIzNjFaIiBzdHJva2U9IiNFRDAxRUUiIHN0cm9rZS13aWR0aD0iMS4wNDE1OSIvPgo8cmVjdCB4PSIxOS41IiB3aWR0aD0iMTIuNSIgaGVpZ2h0PSIxMi41IiByeD0iNi4yNSIgZmlsbD0iI0VEMDFFRSIvPgo8Y2lyY2xlIGN4PSIyNS43NSIgY3k9IjYuMjUiIHI9IjUuNjI1IiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMjUuNzUgMC42MjVDMjIuNjQzOSAwLjYyNSAyMC4xMjUgMy4xNDM4NyAyMC4xMjUgNi4yNUMyMC4xMjUgOS4zNTYxMiAyMi42NDM5IDExLjg3NSAyNS43NSAxMS44NzVDMjguODU2MSAxMS44NzUgMzEuMzc1IDkuMzU2MTIgMzEuMzc1IDYuMjVDMzEuMzc1IDMuMTQzODcgMjguODU2MSAwLjYyNSAyNS43NSAwLjYyNVpNMjQuMDYyNSA5LjA2MjVIMjIuOTM3NVYzLjQzNzVIMjQuMDYyNVY5LjA2MjVaTTI4LjU2MjUgOS4wNjI1SDI1LjE4NzVWNy45Mzc1SDI4LjU2MjVWOS4wNjI1Wk0yOC41NjI1IDYuODEyNUgyNS4xODc1VjUuNjg3NUgyOC41NjI1VjYuODEyNVpNMjguNTYyNSA0LjU2MjVIMjUuMTg3NVYzLjQzNzVIMjguNTYyNVY0LjU2MjVaIiBmaWxsPSIjRUQwMUVFIi8+Cjwvc3ZnPgo=");
111 }
112 </style>
113 <?php
114 }
115
116 /**
117 * @return void
118 */
119 public function __construct() {
120 add_action( 'in_admin_header', [ $this, 'admin_print_script' ] );
121 }
122 }