PluginProbe ʕ •ᴥ•ʔ
GDPR Cookie Compliance – Cookie Banner, Cookie Consent, Cookie Notice for CCPA, EU Cookie Law / 5.0.6
GDPR Cookie Compliance – Cookie Banner, Cookie Consent, Cookie Notice for CCPA, EU Cookie Law v5.0.6
5.0.14 5.0.13 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.2.0 3.2.1 4.0.0 4.0.1 4.0.2 4.0.3 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.1.5 4.1.6 4.1.7 4.1.8 4.1.9 4.10.0 4.10.1 4.10.2 4.10.3 4.10.4 4.10.5 4.10.6 4.11.0 4.11.1 4.11.2 4.12.0 4.12.1 4.12.2 4.12.3 4.12.4 4.12.5 4.12.6 4.12.7 4.12.8 4.13.0 4.13.1 4.13.2 4.13.3 4.13.4 4.14.0 4.15.0 4.15.1 4.15.10 4.15.2 4.15.3 4.15.4 4.15.5 4.15.6 4.15.7 4.15.8 4.15.9 4.16.1 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.8 4.2.9 4.3.0 4.3.1 4.3.2 4.3.3 4.3.4 4.3.5 4.3.6 4.3.7 4.3.8 4.3.9 4.4.0 4.4.1 4.4.2 4.4.3 4.4.4 4.4.5 4.4.6 4.4.7 4.4.8 4.5.0 4.5.1 4.5.10 4.5.11 4.5.12 4.5.13 4.5.2 4.5.3 4.5.4 4.5.5 4.5.6 4.5.7 4.5.8 4.5.9 4.6.0 4.6.1 4.6.2 4.6.3 4.7.0 4.7.1 4.7.2 4.7.3 4.7.4 4.7.5 4.7.6 4.7.7 4.8.0 4.8.1 4.8.10 4.8.11 4.8.12 4.8.13 4.8.2 4.8.3 4.8.4 4.8.5 4.8.6 4.8.7 4.8.8 4.8.9 4.9.1 4.9.2 4.9.3 4.9.4 4.9.5 4.9.6 4.9.7 5.0.0 5.0.1 5.0.10 5.0.11 5.0.12 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.0.9 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.1.2
gdpr-cookie-compliance / class-gdpr-modules.php
gdpr-cookie-compliance Last commit date
assets 9 months ago controllers 9 months ago dist 9 months ago gdpr-modules 9 months ago languages 9 months ago views 9 months ago bower.json 9 months ago class-gdpr-modules-view.php 9 months ago class-gdpr-modules.php 9 months ago class-gdpr-view.php 9 months ago class-moove-gdpr-actions.php 9 months ago class-moove-gdpr-content.php 9 months ago class-moove-gdpr-options.php 9 months ago gdpr-functions.php 9 months ago gulpfile.js 9 months ago moove-gdpr.php 9 months ago package.json 9 months ago readme.txt 9 months ago
class-gdpr-modules.php
479 lines
1 <?php
2 /**
3 * GDPR_Modules File Doc Comment
4 *
5 * @category GDPR_Modules
6 * @package gdpr-cookie-compliance
7 * @author Moove Agency
8 */
9
10 if ( ! defined( 'ABSPATH' ) ) {
11 exit;
12 } // Exit if accessed directly
13
14 /**
15 * GDPR_Modules Class Doc Comment
16 *
17 * @category Class
18 * @package Moove_Modules
19 * @author Moove Agency
20 */
21 class GDPR_Modules {
22 /**
23 * GDPR Options.
24 *
25 * @var array $gdpr_options GDPR Options.
26 */
27 protected $gdpr_options;
28
29 /**
30 * Language code.
31 *
32 * @var string $wpml_lang Language code.
33 */
34 protected $wpml_lang;
35
36 /**
37 * Construct function
38 */
39 public function __construct() {
40 $gdpr_default_content = new Moove_GDPR_Content();
41 $option_name = $gdpr_default_content->moove_gdpr_get_option_name();
42 $modal_options = get_option( $option_name );
43 $wpml_lang = $gdpr_default_content->moove_gdpr_get_wpml_lang();
44 $this->gdpr_options = $modal_options;
45 $this->wpml_lang = $wpml_lang;
46 }
47
48 /**
49 * GDPR Module - Floating Button view & content
50 */
51 public function get_floating_button() {
52 $view_controller = new GDPR_Modules_View();
53 $modal_options = $this->gdpr_options;
54 $wpml_lang = $this->wpml_lang;
55 $floating_button_visibility = 'display: none;';
56 $floating_button_class = '';
57 $infobar_hidden = isset( $modal_options['moove_gdpr_infobar_visibility'] ) && 'hidden' === $modal_options['moove_gdpr_infobar_visibility'] ? true : false;
58 if ( $infobar_hidden ) :
59 $floating_button_class = 'button-visible';
60 endif;
61 $floating_button_position = apply_filters( 'gdpr_floating_button_position', false );
62 $data = new stdClass();
63 $data->options = $modal_options;
64 $data->wpml_lang = $wpml_lang;
65 $data->is_enabled = ( isset( $modal_options['moove_gdpr_floating_button_enable'] ) && 1 === intval( $modal_options['moove_gdpr_floating_button_enable'] ) ) ? true : false;
66 if ( defined( 'IFRAME_REQUEST' ) && IFRAME_REQUEST ) :
67 $data->is_enabled = false;
68 endif;
69 $data->is_enabled = apply_filters( 'gdpr_template_html_load', $data->is_enabled );
70 $data->styles = $floating_button_visibility . $floating_button_position;
71 $data->class = $floating_button_class;
72 if ( $floating_button_position ) :
73 $data->class = $floating_button_class .= ' gdpr-floating-button-custom-position';
74 endif;
75
76 $mobile_hide = ( isset( $modal_options['moove_gdpr_floating_mobile'] ) && 1 === intval( $modal_options['moove_gdpr_floating_mobile'] ) ) ? true : false;
77 if ( $mobile_hide ) :
78 $data->class = $floating_button_class .= ' gdpr-fb-hide-mobile';
79 endif;
80
81 $data->label = ( isset( $modal_options[ 'moove_gdpr_floating_button_label' . $wpml_lang ] ) && $modal_options[ 'moove_gdpr_floating_button_label' . $wpml_lang ] ) ? $modal_options[ 'moove_gdpr_floating_button_label' . $wpml_lang ] : __( 'Change cookie settings', 'gdpr-cookie-compliance' );
82 $data->label = esc_attr( $data->label );
83 return $view_controller->load( 'infobar.floating-button', $data );
84 }
85
86 /**
87 * GDPR Module - Base structure
88 */
89 public function get_modal_base() {
90 $view_controller = new GDPR_Modules_View();
91 $modal_options = $this->gdpr_options;
92 $wpml_lang = $this->wpml_lang;
93 $layout = isset( $modal_options['moove_gdpr_plugin_layout'] ) ? $modal_options['moove_gdpr_plugin_layout'] : 'v1';
94 $tab_title = isset( $modal_options[ 'moove_gdpr_privacy_overview_tab_title' . $wpml_lang ] ) && $modal_options[ 'moove_gdpr_privacy_overview_tab_title' . $wpml_lang ] ? $modal_options[ 'moove_gdpr_privacy_overview_tab_title' . $wpml_lang ] : __( 'Privacy Overview', 'gdpr-cookie-compliance' );
95 $tab_title = esc_attr( $tab_title );
96 $data = new stdClass();
97 $data->logo_position = apply_filters( 'gdpr_logo_position', 'left' );
98 $data->theme = 'moove_gdpr_modal_theme_' . $layout;
99 $modal_theme = 'moove_gdpr_modal_theme_' . $layout;
100 $data->modal_title = 'v1' === $layout ? false : $tab_title;
101 $view_type = 'v1' === $layout ? 'tabs' : 'onepage';
102 $close_button_v = true;
103
104 $gdpr_gs_buttons_order = isset( $modal_options['gdpr_gs_buttons_order'] ) ? json_decode( $modal_options['gdpr_gs_buttons_order'], true ) : array( 'enable', 'reject', 'save', 'close' );
105
106 if ( is_array( $gdpr_gs_buttons_order ) && in_array( 'close', $gdpr_gs_buttons_order ) && isset( $modal_options['moove_gdpr_cb_close_button_enable'] ) && 0 === intval( $modal_options['moove_gdpr_cb_close_button_enable'] ) ) : // phpcs:ignore
107 $close_button_v = false;
108 endif;
109 $data->show = true;
110 if ( defined( 'IFRAME_REQUEST' ) && IFRAME_REQUEST ) :
111 $data->show = false;
112 endif;
113 $data->show = apply_filters( 'gdpr_template_html_load', $data->show );
114 $data->close = $close_button_v;
115 return $view_controller->load( 'modal.modal-base-' . $view_type, $data );
116 }
117
118 /**
119 * GDPR Module - Infobar structure
120 */
121 public function get_infobar_base() {
122 $view_controller = new GDPR_Modules_View();
123 $modal_options = $this->gdpr_options;
124 $wpml_lang = $this->wpml_lang;
125 $data = new stdClass();
126 $infobar_classes = array(
127 'moove-gdpr-info-bar-hidden',
128 'moove-gdpr-align-center',
129 );
130 $modal_scheme = isset( $modal_options['moove_gdpr_colour_scheme'] ) ? ( ( 1 === intval( $modal_options['moove_gdpr_colour_scheme'] ) || 2 === intval( $modal_options['moove_gdpr_colour_scheme'] ) ) ? intval( $modal_options['moove_gdpr_colour_scheme'] ) : 1 ) : 1;
131
132 $scheme_class = 2 === $modal_scheme ? 'moove-gdpr-light-scheme' : 'moove-gdpr-dark-scheme';
133 $infobar_position = isset( $modal_options['moove_gdpr_infobar_position'] ) ? $modal_options['moove_gdpr_infobar_position'] : 'bottom';
134 $infobar_classes[] = $scheme_class;
135 $infobar_classes[] = 'gdpr_infobar_postion_' . $infobar_position;
136 $infobar_classes = apply_filters( 'gdpr_info_bar_class_extension', $infobar_classes );
137 $infobar_hidden = isset( $modal_options['moove_gdpr_infobar_visibility'] ) && 'hidden' === $modal_options['moove_gdpr_infobar_visibility'] ? true : false;
138 $data->show = $infobar_hidden ? false : true;
139 if ( defined( 'IFRAME_REQUEST' ) && IFRAME_REQUEST ) :
140 $data->show = false;
141 endif;
142
143 $data->show = apply_filters( 'gdpr_template_html_load', $data->show );
144
145 $gdpr_cb_show_mobile = isset( $modal_options['gdpr_cb_show_mobile'] ) && intval( $modal_options['gdpr_cb_show_mobile'] ) >= 0 ? intval( $modal_options['gdpr_cb_show_mobile'] ) : apply_filters( 'gdpr_hide_banner_on_mobile', 1 );
146
147 if ( 0 === $gdpr_cb_show_mobile && function_exists( 'wp_is_mobile' ) && wp_is_mobile() ) :
148 $data->show = false;
149 endif;
150
151 $data->class = implode( ' ', $infobar_classes );
152 $infobar_content = apply_filters( 'gdpr_info_bar_popup_content', $view_controller->load( 'infobar.infobar-base', $data ) );
153 return $infobar_content;
154
155 }
156
157 /**
158 * GDPR Module - Infobar Main Content
159 */
160 public function get_infobar_content() {
161 $view_controller = new GDPR_Modules_View();
162 $modal_options = $this->gdpr_options;
163 $wpml_lang = $this->wpml_lang;
164 $_content = '<p>' . esc_html__( 'We are using cookies to give you the best experience on our website.', 'gdpr-cookie-compliance' ) . '</p>';
165 $_content .= '<p>' . sprintf( esc_html__( 'You can find out more about which cookies we are using or switch them off in [%1$s]settings[/%2$s].', 'gdpr-cookie-compliance' ), 'setting', 'setting' ) . '</p>'; // phpcs:ignore
166
167 $content = isset( $modal_options[ 'moove_gdpr_info_bar_content' . $wpml_lang ] ) && $modal_options[ 'moove_gdpr_info_bar_content' . $wpml_lang ] ? $modal_options[ 'moove_gdpr_info_bar_content' . $wpml_lang ] : $_content;
168
169 $content = wp_kses_post( $content );
170
171 $tabindex = apply_filters( 'gdpr_tabindex_attribute', '', '0' );
172 $content = str_replace( '[setting]', '<button ' . $tabindex . ' aria-haspopup="true" data-href="#moove_gdpr_cookie_modal" class="change-settings-button">', $content );
173 $content = str_replace( '[/setting]', '</button>', $content );
174 $content = apply_filters( 'gdpr_info_bar_notice_content', $content );
175 $data = new stdClass();
176 $data->text_content = $content;
177 return $view_controller->load( 'infobar.infobar-content', $data );
178 }
179
180 /**
181 * GDPR Module - Infobar button & extensions
182 */
183 public function get_infobar_buttons() {
184 $view_controller = new GDPR_Modules_View();
185 $modal_options = $this->gdpr_options;
186 $wpml_lang = $this->wpml_lang;
187 $data = new stdClass();
188 $has_accept = isset( $modal_options['moove_gdpr_accept_button_enable'] ) ? ( intval( $modal_options['moove_gdpr_accept_button_enable'] ) === 1 ? true : ( ! isset( $modal_options['moove_gdpr_accept_button_enable'] ) ? true : false ) ) : true;
189 $data->has_accept = $has_accept;
190 $data->button_label = isset( $modal_options[ 'moove_gdpr_infobar_accept_button_label' . $wpml_lang ] ) && $modal_options[ 'moove_gdpr_infobar_accept_button_label' . $wpml_lang ] ? $modal_options[ 'moove_gdpr_infobar_accept_button_label' . $wpml_lang ] : __( 'Accept', 'gdpr-cookie-compliance' );
191 $data->button_label = esc_attr( $data->button_label );
192 $buttons_order = isset( $modal_options['gdpr_bs_buttons_order'] ) ? json_decode( $modal_options['gdpr_bs_buttons_order'], true ) : array( 'accept', 'reject', 'settings', 'close' );
193 $data->accept_order = in_array( 'accept', $buttons_order ) ? array_search( 'accept', $buttons_order ) : 'auto'; // phpcs:ignore
194 return $view_controller->load( 'infobar.infobar-buttons', $data );
195
196 }
197
198 /**
199 * GDPR Module - Company Logo
200 */
201 public function get_company_logo() {
202 $view_controller = new GDPR_Modules_View();
203 $modal_options = $this->gdpr_options;
204 $wpml_lang = $this->wpml_lang;
205 $data = new stdClass();
206 $data->options = $modal_options;
207 $data->wpml_lang = $wpml_lang;
208 $data->logo_url = isset( $modal_options['moove_gdpr_company_logo'] ) && $modal_options['moove_gdpr_company_logo'] ? $modal_options['moove_gdpr_company_logo'] : plugin_dir_url( __FILE__ ) . 'dist/images/gdpr-logo.png';
209 $data->logo_url = str_replace( plugin_dir_url( __FILE__ ) . 'dist/images/moove-logo.png', plugin_dir_url( __FILE__ ) . 'dist/images/gdpr-logo.png', $data->logo_url );
210 $logo_details = gdpr_get_logo_details( $data->logo_url, $modal_options );
211 $data->logo_alt = gdpr_get_logo_alt( $data->logo_url, $modal_options );
212 $data->logo_width = isset( $logo_details['width'] ) ? esc_attr( $logo_details['width'] ) : false;
213 $data->logo_height = isset( $logo_details['height'] ) ? esc_attr( $logo_details['height'] ) : false;
214 $data->logo_url = isset( $logo_details['logo_url'] ) ? esc_attr( $logo_details['logo_url'] ) : esc_attr( $data->logo_url );
215 $data->logo_url = apply_filters( 'gdpr_cc_modal_logo_url', $data->logo_url );
216 return $view_controller->load( 'modal.company-logo', $data );
217 }
218
219 /**
220 * GDPR Module - Branding Options
221 */
222 public function get_gdpr_branding() {
223 $view_controller = new GDPR_Modules_View();
224 $moove_actions_cnt = new Moove_GDPR_Actions();
225 $modal_options = $this->gdpr_options;
226 $wpml_lang = $this->wpml_lang;
227 $data = new stdClass();
228 $data->options = $modal_options;
229 $data->wpml_lang = $wpml_lang;
230 $data->text = $moove_actions_cnt->moove_gdpr_footer_branding_content();
231 $data->is_enabled = isset( $modal_options['moove_gdpr_modal_powered_by_disable'] ) && 1 === intval( $modal_options['moove_gdpr_modal_powered_by_disable'] ) ? false : true;
232 return $view_controller->load( 'modal.gdpr-branding', $data );
233 }
234
235 /**
236 * GDPR Module - Privacy Overview Content
237 */
238 public function get_section_overview() {
239 $view_controller = new GDPR_Modules_View();
240 $modal_options = $this->gdpr_options;
241 $wpml_lang = $this->wpml_lang;
242 $gdpr_default_content = new Moove_GDPR_Content();
243 $layout = isset( $modal_options['moove_gdpr_plugin_layout'] ) ? $modal_options['moove_gdpr_plugin_layout'] : 'v1';
244 $tab_title = isset( $modal_options[ 'moove_gdpr_privacy_overview_tab_title' . $wpml_lang ] ) && $modal_options[ 'moove_gdpr_privacy_overview_tab_title' . $wpml_lang ] ? $modal_options[ 'moove_gdpr_privacy_overview_tab_title' . $wpml_lang ] : __( 'Privacy Overview', 'gdpr-cookie-compliance' );
245 $tab_title = esc_attr( $tab_title );
246 $tab_content = isset( $modal_options[ 'moove_gdpr_privacy_overview_tab_content' . $wpml_lang ] ) && $modal_options[ 'moove_gdpr_privacy_overview_tab_content' . $wpml_lang ] ? $modal_options[ 'moove_gdpr_privacy_overview_tab_content' . $wpml_lang ] : $gdpr_default_content->moove_gdpr_get_privacy_overview_content();
247
248 $data = new stdClass();
249 $data->options = $modal_options;
250 $data->wpml_lang = $wpml_lang;
251 $data->tab_title = 'v1' === $layout ? $tab_title : false;
252 $data->tab_content = wp_kses_post( wpautop( $tab_content ) );
253 $data->visibility = 'v1' === $layout ? 'style="display:none"' : '';
254
255 return $view_controller->load( 'modal.content-sections.overview', $data );
256
257 }
258
259 /**
260 * GPDR Module - Strictly Necessary Cookies
261 */
262 public function get_section_strictly() {
263 $view_controller = new GDPR_Modules_View();
264 $modal_options = $this->gdpr_options;
265 $wpml_lang = $this->wpml_lang;
266 $gdpr_default_content = new Moove_GDPR_Content();
267 $layout = isset( $modal_options['moove_gdpr_plugin_layout'] ) ? $modal_options['moove_gdpr_plugin_layout'] : 'v1';
268 $tab_title = isset( $modal_options[ 'moove_gdpr_strictly_necessary_cookies_tab_title' . $wpml_lang ] ) && $modal_options[ 'moove_gdpr_strictly_necessary_cookies_tab_title' . $wpml_lang ] ? $modal_options[ 'moove_gdpr_strictly_necessary_cookies_tab_title' . $wpml_lang ] : __( 'Strictly Necessary Cookies', 'gdpr-cookie-compliance' );
269 $tab_content = isset( $modal_options[ 'moove_gdpr_strict_necessary_cookies_tab_content' . $wpml_lang ] ) && $modal_options[ 'moove_gdpr_strict_necessary_cookies_tab_content' . $wpml_lang ] ? $modal_options[ 'moove_gdpr_strict_necessary_cookies_tab_content' . $wpml_lang ] : $gdpr_default_content->moove_gdpr_get_strict_necessary_content();
270 $strictly = isset( $modal_options['moove_gdpr_strictly_necessary_cookies_functionality'] ) && intval( $modal_options['moove_gdpr_strictly_necessary_cookies_functionality'] ) ? intval( $modal_options['moove_gdpr_strictly_necessary_cookies_functionality'] ) : 1;
271 $strictly = $strictly && 3 === intval( $strictly ) ? 2 : $strictly;
272
273 $strictly_ccat_enable = isset( $modal_options['moove_gdpr_strictly_ccat_enable'] ) ? ( intval( $modal_options['moove_gdpr_strictly_ccat_enable'] ) === 1 ? true : ( ! isset( $modal_options['moove_gdpr_strictly_ccat_enable'] ) ? true : false ) ) : true;
274
275 $data = new stdClass();
276 $data->options = $modal_options;
277 $data->wpml_lang = $wpml_lang;
278 $data->tab_title = esc_attr( $tab_title );
279 $data->tab_content = wp_kses_post( wpautop( $tab_content ) );
280 $data->show = 3 !== $strictly;
281 $data->show = $strictly_ccat_enable ? $data->show : false;
282 $data->is_checked = 1 !== $strictly ? 'disabled checked="checked" ' : '';
283 if ( 4 === $strictly ) :
284 $data->is_checked = ' checked="checked" ';
285 endif;
286 $data->text_enable = isset( $modal_options[ 'moove_gdpr_modal_enabled_checkbox_label' . $wpml_lang ] ) && $modal_options[ 'moove_gdpr_modal_enabled_checkbox_label' . $wpml_lang ] ? $modal_options[ 'moove_gdpr_modal_enabled_checkbox_label' . $wpml_lang ] : __( 'Enabled', 'gdpr-cookie-compliance' );
287 $data->text_disable = isset( $modal_options[ 'moove_gdpr_modal_disabled_checkbox_label' . $wpml_lang ] ) && $modal_options[ 'moove_gdpr_modal_disabled_checkbox_label' . $wpml_lang ] ? $modal_options[ 'moove_gdpr_modal_disabled_checkbox_label' . $wpml_lang ] : __( 'Disabled', 'gdpr-cookie-compliance' );
288 $data->warning_message_top = false;
289 $data->warning_message_bottom = false;
290 $data->checkbox_state = 2 === $strictly ? 'gdpr-checkbox-disabled checkbox-selected' : '';
291 $data->visibility = 'v1' === $layout ? 'style="display:none"' : '';
292 return $view_controller->load( 'modal.content-sections.strictly', $data );
293 }
294
295 /**
296 * GDPR Module - Advanced Cookies
297 */
298 public function get_section_advanced() {
299 $view_controller = new GDPR_Modules_View();
300 $modal_options = $this->gdpr_options;
301 $wpml_lang = $this->wpml_lang;
302 $gdpr_default_content = new Moove_GDPR_Content();
303
304 $layout = isset( $modal_options['moove_gdpr_plugin_layout'] ) ? $modal_options['moove_gdpr_plugin_layout'] : 'v1';
305 $tab_title = isset( $modal_options[ 'moove_gdpr_advanced_cookies_tab_title' . $wpml_lang ] ) && $modal_options[ 'moove_gdpr_advanced_cookies_tab_title' . $wpml_lang ] ? $modal_options[ 'moove_gdpr_advanced_cookies_tab_title' . $wpml_lang ] : __( 'Marketing', 'gdpr-cookie-compliance' );
306 $tab_content = isset( $modal_options[ 'moove_gdpr_advanced_cookies_tab_content' . $wpml_lang ] ) && $modal_options[ 'moove_gdpr_advanced_cookies_tab_content' . $wpml_lang ] ? $modal_options[ 'moove_gdpr_advanced_cookies_tab_content' . $wpml_lang ] : $gdpr_default_content->moove_gdpr_get_advanced_cookies_content();
307 $strictly = isset( $modal_options['moove_gdpr_strictly_necessary_cookies_functionality'] ) && intval( $modal_options['moove_gdpr_strictly_necessary_cookies_functionality'] ) ? intval( $modal_options['moove_gdpr_strictly_necessary_cookies_functionality'] ) : 1;
308 $strictly = $strictly && 3 === intval( $strictly ) ? 2 : $strictly;
309 $data = new stdClass();
310 $data->options = $modal_options;
311 $data->wpml_lang = $wpml_lang;
312 $data->tab_title = esc_attr( $tab_title );
313 $data->tab_content = wp_kses_post( wpautop( $tab_content ) );
314 $data->show = isset( $modal_options['moove_gdpr_advanced_cookies_enable'] ) && 1 === intval( $modal_options['moove_gdpr_advanced_cookies_enable'] ) ? true : false;
315 $data->is_checked = 1 !== $strictly ? '' : 'disabled';
316 $data->fieldset = 1 !== $strictly ? 'fl-strenabled' : 'fl-disabled';
317 $data->text_enable = isset( $modal_options[ 'moove_gdpr_modal_enabled_checkbox_label' . $wpml_lang ] ) && $modal_options[ 'moove_gdpr_modal_enabled_checkbox_label' . $wpml_lang ] ? $modal_options[ 'moove_gdpr_modal_enabled_checkbox_label' . $wpml_lang ] : __( 'Enabled', 'gdpr-cookie-compliance' );
318 $data->text_enable = esc_attr( $data->text_enable );
319 $data->text_disable = isset( $modal_options[ 'moove_gdpr_modal_disabled_checkbox_label' . $wpml_lang ] ) && $modal_options[ 'moove_gdpr_modal_disabled_checkbox_label' . $wpml_lang ] ? $modal_options[ 'moove_gdpr_modal_disabled_checkbox_label' . $wpml_lang ] : __( 'Disabled', 'gdpr-cookie-compliance' );
320 $data->text_disable = esc_attr( $data->text_disable );
321 $data->warning_message = '';
322 $data->visibility = 'v1' === $layout ? 'style="display:none"' : '';
323 return $view_controller->load( 'modal.content-sections.advanced', $data );
324 }
325
326 /**
327 * GDPR Module - Third Party Cookies
328 */
329 public function get_section_third_party() {
330 $view_controller = new GDPR_Modules_View();
331 $modal_options = $this->gdpr_options;
332 $wpml_lang = $this->wpml_lang;
333 $gdpr_default_content = new Moove_GDPR_Content();
334 $layout = isset( $modal_options['moove_gdpr_plugin_layout'] ) ? $modal_options['moove_gdpr_plugin_layout'] : 'v1';
335 $tab_title = isset( $modal_options[ 'moove_gdpr_performance_cookies_tab_title' . $wpml_lang ] ) && $modal_options[ 'moove_gdpr_performance_cookies_tab_title' . $wpml_lang ] ? $modal_options[ 'moove_gdpr_performance_cookies_tab_title' . $wpml_lang ] : __( 'Analytics', 'gdpr-cookie-compliance' );
336 $tab_content = isset( $modal_options[ 'moove_gdpr_performance_cookies_tab_content' . $wpml_lang ] ) && $modal_options[ 'moove_gdpr_performance_cookies_tab_content' . $wpml_lang ] ? $modal_options[ 'moove_gdpr_performance_cookies_tab_content' . $wpml_lang ] : $gdpr_default_content->moove_gdpr_get_third_party_content();
337 $strictly = isset( $modal_options['moove_gdpr_strictly_necessary_cookies_functionality'] ) && intval( $modal_options['moove_gdpr_strictly_necessary_cookies_functionality'] ) ? intval( $modal_options['moove_gdpr_strictly_necessary_cookies_functionality'] ) : 1;
338 $strictly = $strictly && 3 === intval( $strictly ) ? 2 : $strictly;
339 $data = new stdClass();
340 $data->options = $modal_options;
341 $data->wpml_lang = $wpml_lang;
342 $data->tab_title = esc_attr( $tab_title );
343 $data->tab_content = wp_kses_post( wpautop( $tab_content ) );
344 $data->show = isset( $modal_options['moove_gdpr_third_party_cookies_enable'] ) && 1 === intval( $modal_options['moove_gdpr_third_party_cookies_enable'] ) ? true : false;
345 $data->is_checked = 1 !== $strictly ? '' : 'disabled';
346 $data->fieldset = 1 !== $strictly ? 'fl-strenabled' : 'fl-disabled';
347 $data->text_enable = isset( $modal_options[ 'moove_gdpr_modal_enabled_checkbox_label' . $wpml_lang ] ) && $modal_options[ 'moove_gdpr_modal_enabled_checkbox_label' . $wpml_lang ] ? $modal_options[ 'moove_gdpr_modal_enabled_checkbox_label' . $wpml_lang ] : __( 'Enabled', 'gdpr-cookie-compliance' );
348 $data->text_enable = esc_attr( $data->text_enable );
349 $data->text_disable = isset( $modal_options[ 'moove_gdpr_modal_disabled_checkbox_label' . $wpml_lang ] ) && $modal_options[ 'moove_gdpr_modal_disabled_checkbox_label' . $wpml_lang ] ? $modal_options[ 'moove_gdpr_modal_disabled_checkbox_label' . $wpml_lang ] : __( 'Disabled', 'gdpr-cookie-compliance' );
350 $data->text_disable = esc_attr( $data->text_disable );
351 $data->warning_message = '';
352 $data->visibility = 'v1' === $layout ? 'style="display:none"' : '';
353 return $view_controller->load( 'modal.content-sections.third_party', $data );
354 }
355
356 /**
357 * GDPR Module - Custom CSS for branding
358 */
359 public function get_branding_styles() {
360 $view_controller = new GDPR_Modules_View();
361 $modal_options = $this->gdpr_options;
362 $wpml_lang = $this->wpml_lang;
363 $font_family = false;
364 if ( isset( $modal_options['moove_gdpr_plugin_font_type'] ) ) :
365 if ( '1' === $modal_options['moove_gdpr_plugin_font_type'] ) :
366 $font_family = "'Nunito', sans-serif";
367 elseif ( '2' === $modal_options['moove_gdpr_plugin_font_type'] ) :
368 $font_family = 'inherit';
369 else :
370 $font_family = isset( $modal_options['moove_gdpr_plugin_font_family'] ) && $modal_options['moove_gdpr_plugin_font_family'] ? $modal_options['moove_gdpr_plugin_font_family'] : "'Nunito', sans-serif";
371 endif;
372 endif;
373 $font_family = $font_family ? $font_family : ( isset( $modal_options['moove_gdpr_plugin_font_family'] ) && $modal_options['moove_gdpr_plugin_font_family'] ? $modal_options['moove_gdpr_plugin_font_family'] : "'Nunito', sans-serif" );
374 $data = new stdClass();
375 $data->primary_colour = isset( $modal_options['moove_gdpr_brand_colour'] ) && $modal_options['moove_gdpr_brand_colour'] ? $modal_options['moove_gdpr_brand_colour'] : '#0C4DA2';
376 $data->secondary_colour = '#000000';
377 $data->button_bg = '#373737';
378 $data->button_hover_bg = '#000000';
379 $data->button_font = '#ffffff';
380 $data->font_family = $font_family;
381 return $view_controller->load( 'branding-styles', $data );
382
383 }
384
385 /**
386 * GDPR Module - Cookie Policy Page
387 */
388 public function get_section_cookiepolicy() {
389 $view_controller = new GDPR_Modules_View();
390 $modal_options = $this->gdpr_options;
391 $wpml_lang = $this->wpml_lang;
392 $gdpr_default_content = new Moove_GDPR_Content();
393 $layout = isset( $modal_options['moove_gdpr_plugin_layout'] ) ? $modal_options['moove_gdpr_plugin_layout'] : 'v1';
394 $tab_title = isset( $modal_options[ 'moove_gdpr_cookie_policy_tab_nav_label' . $wpml_lang ] ) && $modal_options[ 'moove_gdpr_cookie_policy_tab_nav_label' . $wpml_lang ] ? $modal_options[ 'moove_gdpr_cookie_policy_tab_nav_label' . $wpml_lang ] : __( 'Cookie Policy', 'gdpr-cookie-compliance' );
395 $tab_content = isset( $modal_options[ 'moove_gdpr_cookies_policy_tab_content' . $wpml_lang ] ) && $modal_options[ 'moove_gdpr_cookies_policy_tab_content' . $wpml_lang ] ? $modal_options[ 'moove_gdpr_cookies_policy_tab_content' . $wpml_lang ] : $gdpr_default_content->moove_gdpr_get_cookie_policy_content();
396 $data = new stdClass();
397 $data->options = $modal_options;
398 $data->wpml_lang = $wpml_lang;
399 $data->tab_title = esc_attr( $tab_title );
400 $data->tab_content = wp_kses_post( wpautop( $tab_content ) );
401 $data->show = isset( $modal_options['moove_gdpr_cookie_policy_enable'] ) && 1 === intval( $modal_options['moove_gdpr_cookie_policy_enable'] ) ? true : false;
402 $data->visibility = 'v1' === $layout ? 'style="display:none"' : '';
403 return $view_controller->load( 'modal.content-sections.cookiepolicy', $data );
404 }
405
406 /**
407 * GDPR Module - Footer Button inside the Modal
408 */
409 public function get_tab_footer_buttons() {
410 $view_controller = new GDPR_Modules_View();
411 $modal_options = $this->gdpr_options;
412 $wpml_lang = $this->wpml_lang;
413 $data = new stdClass();
414 $data->settings_v = isset( $modal_options['moove_gdpr_save_settings_button_enable'] ) ? ( intval( $modal_options['moove_gdpr_save_settings_button_enable'] ) === 1 ? true : ( ! isset( $modal_options['moove_gdpr_save_settings_button_enable'] ) ? true : false ) ) : true;
415 $data->settings_label = isset( $modal_options[ 'moove_gdpr_modal_save_button_label' . $wpml_lang ] ) && $modal_options[ 'moove_gdpr_modal_save_button_label' . $wpml_lang ] ? $modal_options[ 'moove_gdpr_modal_save_button_label' . $wpml_lang ] : __( 'Save Settings', 'gdpr-cookie-compliance' );
416 $data->settings_label = esc_attr( $data->settings_label );
417
418 $data->allow_v = isset( $modal_options['moove_gdpr_enable_all_button_enable'] ) ? ( intval( $modal_options['moove_gdpr_enable_all_button_enable'] ) === 1 ? true : ( ! isset( $modal_options['moove_gdpr_enable_all_button_enable'] ) ? true : false ) ) : true;
419 $data->allow_label = isset( $modal_options[ 'moove_gdpr_modal_allow_button_label' . $wpml_lang ] ) && $modal_options[ 'moove_gdpr_modal_allow_button_label' . $wpml_lang ] ? $modal_options[ 'moove_gdpr_modal_allow_button_label' . $wpml_lang ] : __( 'Enable All', 'gdpr-cookie-compliance' );
420 $data->allow_label = esc_attr( $data->allow_label );
421
422 $data->reject_v = isset( $modal_options['moove_gdpr_reject_all_button_enable'] ) ? ( intval( $modal_options['moove_gdpr_reject_all_button_enable'] ) === 1 ? true : ( ! isset( $modal_options['moove_gdpr_reject_all_button_enable'] ) ? false : false ) ) : false;
423 $data->reject_label = isset( $modal_options[ 'moove_gdpr_modal_reject_button_label' . $wpml_lang ] ) && $modal_options[ 'moove_gdpr_modal_reject_button_label' . $wpml_lang ] ? $modal_options[ 'moove_gdpr_modal_reject_button_label' . $wpml_lang ] : __( 'Reject All', 'gdpr-cookie-compliance' );
424 $data->reject_label = esc_attr( $data->reject_label );
425
426 $data->buttons_order = isset( $modal_options['gdpr_gs_buttons_order'] ) ? json_decode( $modal_options['gdpr_gs_buttons_order'], true ) : array( 'enable', 'reject', 'save', 'close' );
427
428 return $view_controller->load( 'modal.tab-footer-buttons', $data );
429 }
430
431 /**
432 * GDPR Module - Navigation inside the modal
433 */
434 public function get_tab_navigation() {
435 $view_controller = new GDPR_Modules_View();
436 $modal_options = $this->gdpr_options;
437 $wpml_lang = $this->wpml_lang;
438 $strictly = isset( $modal_options['moove_gdpr_strictly_necessary_cookies_functionality'] ) && intval( $modal_options['moove_gdpr_strictly_necessary_cookies_functionality'] ) ? intval( $modal_options['moove_gdpr_strictly_necessary_cookies_functionality'] ) : 1;
439 $strictly = $strictly && 3 === intval( $strictly ) ? 2 : $strictly;
440 $data = new stdClass();
441 $data->overview = new stdClass();
442 $data->strictly = new stdClass();
443 $data->advanced = new stdClass();
444 $data->third_party = new stdClass();
445 $data->cookiepolicy = new stdClass();
446
447 // OVERVIEW.
448 $data->overview->nav_label = isset( $modal_options[ 'moove_gdpr_privacy_overview_tab_title' . $wpml_lang ] ) && $modal_options[ 'moove_gdpr_privacy_overview_tab_title' . $wpml_lang ] ? $modal_options[ 'moove_gdpr_privacy_overview_tab_title' . $wpml_lang ] : __( 'Privacy Overview', 'gdpr-cookie-compliance' );
449 $data->overview->nav_label = esc_attr( $data->overview->nav_label );
450
451 // STRICTLY.
452 $strictly_ccat_enable = isset( $modal_options['moove_gdpr_strictly_ccat_enable'] ) ? ( intval( $modal_options['moove_gdpr_strictly_ccat_enable'] ) === 1 ? true : ( ! isset( $modal_options['moove_gdpr_strictly_ccat_enable'] ) ? true : false ) ) : true;
453
454 $data->strictly->show = 3 !== $strictly;
455 $data->strictly->show = $strictly_ccat_enable ? $data->strictly->show : false;
456
457 $data->strictly->nav_label = isset( $modal_options[ 'moove_gdpr_strictly_necessary_cookies_tab_title' . $wpml_lang ] ) && $modal_options[ 'moove_gdpr_strictly_necessary_cookies_tab_title' . $wpml_lang ] ? $modal_options[ 'moove_gdpr_strictly_necessary_cookies_tab_title' . $wpml_lang ] : __( 'Strictly Necessary Cookies', 'gdpr-cookie-compliance' );
458 $data->strictly->nav_label = esc_attr( $data->strictly->nav_label );
459
460 // THIRD PARTY.
461 $data->third_party->show = isset( $modal_options['moove_gdpr_third_party_cookies_enable'] ) && 1 === intval( $modal_options['moove_gdpr_third_party_cookies_enable'] ) ? true : false;
462 $data->third_party->nav_label = isset( $modal_options[ 'moove_gdpr_performance_cookies_tab_title' . $wpml_lang ] ) && $modal_options[ 'moove_gdpr_performance_cookies_tab_title' . $wpml_lang ] ? $modal_options[ 'moove_gdpr_performance_cookies_tab_title' . $wpml_lang ] : __( 'Analytics', 'gdpr-cookie-compliance' );
463 $data->third_party->nav_label = esc_attr( $data->third_party->nav_label );
464
465 // ADVANCED.
466 $data->advanced->show = isset( $modal_options['moove_gdpr_advanced_cookies_enable'] ) && 1 === intval( $modal_options['moove_gdpr_advanced_cookies_enable'] ) ? true : false;
467 $data->advanced->nav_label = isset( $modal_options[ 'moove_gdpr_advanced_cookies_tab_title' . $wpml_lang ] ) && $modal_options[ 'moove_gdpr_advanced_cookies_tab_title' . $wpml_lang ] ? $modal_options[ 'moove_gdpr_advanced_cookies_tab_title' . $wpml_lang ] : __( 'Marketing', 'gdpr-cookie-compliance' );
468 $data->advanced->nav_label = esc_attr( $data->advanced->nav_label );
469
470 // COOKIEPOLICY.
471 $data->cookiepolicy->show = isset( $modal_options['moove_gdpr_cookie_policy_enable'] ) && 1 === intval( $modal_options['moove_gdpr_cookie_policy_enable'] ) ? true : false;
472 $data->cookiepolicy->nav_label = isset( $modal_options[ 'moove_gdpr_cookie_policy_tab_nav_label' . $wpml_lang ] ) && $modal_options[ 'moove_gdpr_cookie_policy_tab_nav_label' . $wpml_lang ] ? $modal_options[ 'moove_gdpr_cookie_policy_tab_nav_label' . $wpml_lang ] : __( 'Cookie Policy', 'gdpr-cookie-compliance' );
473 $data->cookiepolicy->nav_label = esc_attr( $data->cookiepolicy->nav_label );
474
475 return $view_controller->load( 'modal.tab-navigation', $data );
476 }
477
478 }
479