Version Description
- Fix: Safari unrecognized expression on CSS wildcards
Download this release
Release Info
Developer | dfactory |
Plugin | iubenda Cookie Solution for GDPR |
Version | 2.0.3 |
Comparing to | |
See all releases |
Code changes from version 2.1.3.1 to 2.0.3
- css/admin.css +3 -18
- includes/amp.php +0 -347
- includes/forms.php +3 -3
- includes/settings.php +40 -196
- iubenda-cookie-class/README.md +0 -7
- iubenda-cookie-class/iubenda.class.php +171 -427
- iubenda_cookie_solution.php +93 -287
- js/admin.js +7 -62
- js/frontend.js +1 -1
- languages/iubenda-cookie-law-solution-it_IT.mo +0 -0
- languages/iubenda-cookie-law-solution-it_IT.po +257 -393
- languages/iubenda-cookie-law-solution.pot +103 -196
- readme.txt +5 -19
- templates/amp.html +0 -37
css/admin.css
CHANGED
@@ -42,12 +42,6 @@
|
|
42 |
#iub_parser_engine_container > div:not(:last-child) {
|
43 |
margin-bottom: 10px;
|
44 |
}
|
45 |
-
#iub_amp_options_container {
|
46 |
-
margin-top: 10px;
|
47 |
-
}
|
48 |
-
#iub_amp_options_container > div:not(:last-child) {
|
49 |
-
margin-bottom: 10px;
|
50 |
-
}
|
51 |
#iubenda-tabs .contextual-help-wrap {
|
52 |
overflow: auto;
|
53 |
margin: 0;
|
@@ -68,18 +62,9 @@
|
|
68 |
#iubenda-tabs .help-tab-content {
|
69 |
margin-right: 0;
|
70 |
}
|
71 |
-
#iubenda-tabs .help-tab-content
|
72 |
-
|
73 |
-
|
74 |
-
#iubenda-tabs .help-tab-content .custom-script-field, #iubenda-tabs .help-tab-content .custom-iframe-field {
|
75 |
-
padding-bottom: 10px;
|
76 |
-
}
|
77 |
-
#iubenda-tabs .help-tab-content .custom-script-field input, #iubenda-tabs .help-tab-content .custom-iframe-field input {
|
78 |
-
vertical-align: middle;
|
79 |
-
}
|
80 |
-
#tab-panel-scripts, #tab-panel-iframes {
|
81 |
-
margin-top: 16px;
|
82 |
-
margin-bottom: 18px;
|
83 |
}
|
84 |
#iubenda-tabs .postbox-container .widefat {
|
85 |
border: none;
|
42 |
#iub_parser_engine_container > div:not(:last-child) {
|
43 |
margin-bottom: 10px;
|
44 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
#iubenda-tabs .contextual-help-wrap {
|
46 |
overflow: auto;
|
47 |
margin: 0;
|
62 |
#iubenda-tabs .help-tab-content {
|
63 |
margin-right: 0;
|
64 |
}
|
65 |
+
#iubenda-tabs .help-tab-content textarea {
|
66 |
+
margin-top: 18px;
|
67 |
+
width: 100%;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
}
|
69 |
#iubenda-tabs .postbox-container .widefat {
|
70 |
border: none;
|
includes/amp.php
DELETED
@@ -1,347 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
// exit if accessed directly
|
3 |
-
if ( ! defined( 'ABSPATH' ) )
|
4 |
-
exit;
|
5 |
-
|
6 |
-
/**
|
7 |
-
* iubenda_AMP class.
|
8 |
-
*
|
9 |
-
* @class iubenda_AMP
|
10 |
-
*/
|
11 |
-
class iubenda_AMP {
|
12 |
-
|
13 |
-
/**
|
14 |
-
* Class constructor.
|
15 |
-
*/
|
16 |
-
public function __construct() {
|
17 |
-
// actions
|
18 |
-
add_action( 'wp_head', array( $this, 'wp_head_amp' ), 100 );
|
19 |
-
add_action( 'wp_footer', array( $this, 'wp_footer_amp' ), 100 );
|
20 |
-
add_action( 'amp_post_template_css', array( $this, 'amp_post_template_css' ), 100 );
|
21 |
-
add_action( 'amp_post_template_footer', array( $this, 'wp_footer_amp' ), 100 );
|
22 |
-
add_action( 'amp_post_template_footer', array( $this, 'fix_analytics_amp_for_wp' ), 1 );
|
23 |
-
|
24 |
-
// filters
|
25 |
-
add_filter( 'amp_post_template_data', array( $this, 'amp_post_template_data' ), 100 );
|
26 |
-
add_filter( 'amp_analytics_entries', array( $this, 'fix_analytics_wp_amp' ), 10 );
|
27 |
-
}
|
28 |
-
|
29 |
-
/**
|
30 |
-
* Add scripts and CSS to WP AMP plugin.
|
31 |
-
*
|
32 |
-
* @return mixed
|
33 |
-
*/
|
34 |
-
public function wp_head_amp() {
|
35 |
-
if ( iubenda()->options['cs']['amp_support'] === false )
|
36 |
-
return;
|
37 |
-
|
38 |
-
if ( function_exists( 'is_amp_endpoint' ) && is_amp_endpoint() && ! function_exists( 'ampforwp_is_amp_endpoint' ) ) {
|
39 |
-
echo '
|
40 |
-
<script async custom-element="amp-consent" src="https://cdn.ampproject.org/v0/amp-consent-latest.js"></script>
|
41 |
-
<script async custom-element="amp-iframe" src="https://cdn.ampproject.org/v0/amp-iframe-latest.js"></script>';
|
42 |
-
/* optional geo support
|
43 |
-
echo '
|
44 |
-
<script async custom-element="amp-geo" src="https://cdn.ampproject.org/v0/amp-geo-0.1.js"></script>';
|
45 |
-
*/
|
46 |
-
// CSS style
|
47 |
-
echo '
|
48 |
-
<style amp-custom>
|
49 |
-
.popupOverlay {
|
50 |
-
position:fixed;
|
51 |
-
top: 0;
|
52 |
-
bottom: 0;
|
53 |
-
left: 0;
|
54 |
-
right: 0;
|
55 |
-
}
|
56 |
-
amp-iframe {
|
57 |
-
margin: 0;
|
58 |
-
}
|
59 |
-
amp-consent.amp-active {
|
60 |
-
position:fixed;
|
61 |
-
top: 0;
|
62 |
-
bottom: 0;
|
63 |
-
left: 0;
|
64 |
-
right: 0;
|
65 |
-
}
|
66 |
-
</style>';
|
67 |
-
}
|
68 |
-
}
|
69 |
-
|
70 |
-
/**
|
71 |
-
* Add AMP consent HTML to footer.
|
72 |
-
*
|
73 |
-
* @return mixed
|
74 |
-
*/
|
75 |
-
public function wp_footer_amp() {
|
76 |
-
if ( iubenda()->options['cs']['amp_support'] === false )
|
77 |
-
return;
|
78 |
-
|
79 |
-
if ( function_exists( 'is_amp_endpoint' ) && is_amp_endpoint() || ( function_exists( 'ampforwp_is_amp_endpoint' ) && ampforwp_is_amp_endpoint() ) ) {
|
80 |
-
|
81 |
-
$configuration = iubenda()->parse_configuration();
|
82 |
-
|
83 |
-
if ( empty( $configuration ) )
|
84 |
-
return;
|
85 |
-
|
86 |
-
// local file
|
87 |
-
if ( iubenda()->options['cs']['amp_source'] === 'local' ) {
|
88 |
-
$template_url = $this->get_amp_template_url();
|
89 |
-
// remote file
|
90 |
-
} else {
|
91 |
-
$template_url = esc_url( iubenda()->options['cs']['amp_template'] );
|
92 |
-
}
|
93 |
-
|
94 |
-
if ( empty( $template_url ) )
|
95 |
-
return;
|
96 |
-
|
97 |
-
echo '
|
98 |
-
<amp-consent id="myUserConsent" layout="nodisplay">
|
99 |
-
<script type="application/json">
|
100 |
-
{
|
101 |
-
"consentInstanceId": "consent' . $configuration['siteId'] . '",
|
102 |
-
"consentRequired": true,
|
103 |
-
"promptUI": "myConsentFlow"
|
104 |
-
}
|
105 |
-
</script>
|
106 |
-
<div id="myConsentFlow" class="popupOverlay">
|
107 |
-
<amp-iframe
|
108 |
-
layout="fill"
|
109 |
-
sandbox="allow-scripts allow-same-origin allow-popups allow-popups-to-escape-sandbox"
|
110 |
-
src="' . esc_url( $template_url ) . '">
|
111 |
-
<div placeholder>' . __( 'Loading', 'iubenda' ) . '</div>
|
112 |
-
</amp-iframe>
|
113 |
-
</div>
|
114 |
-
</amp-consent>';
|
115 |
-
}
|
116 |
-
}
|
117 |
-
|
118 |
-
/**
|
119 |
-
* Add scripts to AMP for WP plugin.
|
120 |
-
*
|
121 |
-
* @return mixed
|
122 |
-
*/
|
123 |
-
public function amp_post_template_data( $data ) {
|
124 |
-
if ( iubenda()->options['cs']['amp_support'] === false )
|
125 |
-
return $data;
|
126 |
-
|
127 |
-
if ( function_exists( 'ampforwp_is_amp_endpoint' ) && ampforwp_is_amp_endpoint() ) {
|
128 |
-
$data['amp_component_scripts'] = array_merge( $data['amp_component_scripts'],
|
129 |
-
array( 'amp-consent' => 'https://cdn.ampproject.org/v0/amp-consent-latest.js' )
|
130 |
-
);
|
131 |
-
$data['amp_component_scripts'] = array_merge( $data['amp_component_scripts'],
|
132 |
-
array( 'amp-iframe' => 'https://cdn.ampproject.org/v0/amp-iframe-latest.js' )
|
133 |
-
);
|
134 |
-
}
|
135 |
-
|
136 |
-
return $data;
|
137 |
-
}
|
138 |
-
|
139 |
-
/**
|
140 |
-
* Add CSS to AMP for WP plugin.
|
141 |
-
*
|
142 |
-
* @return mixed
|
143 |
-
*/
|
144 |
-
public function amp_post_template_css( $data ) {
|
145 |
-
if ( iubenda()->options['cs']['amp_support'] === false )
|
146 |
-
return;
|
147 |
-
|
148 |
-
if ( function_exists( 'ampforwp_is_amp_endpoint' ) && ampforwp_is_amp_endpoint() ) {
|
149 |
-
?>
|
150 |
-
.popupOverlay {
|
151 |
-
position:fixed;
|
152 |
-
top: 0;
|
153 |
-
bottom: 0;
|
154 |
-
left: 0;
|
155 |
-
right: 0;
|
156 |
-
}
|
157 |
-
amp-iframe {
|
158 |
-
margin: 0;
|
159 |
-
}
|
160 |
-
amp-consent.amp-active {
|
161 |
-
position:fixed;
|
162 |
-
top: 0;
|
163 |
-
bottom: 0;
|
164 |
-
left: 0;
|
165 |
-
right: 0;
|
166 |
-
}
|
167 |
-
<?php
|
168 |
-
}
|
169 |
-
}
|
170 |
-
|
171 |
-
/**
|
172 |
-
* Block analytics in AMP for WP plugin.
|
173 |
-
*
|
174 |
-
* @return mixed
|
175 |
-
*/
|
176 |
-
public function fix_analytics_amp_for_wp( $data ) {
|
177 |
-
if ( iubenda()->options['cs']['amp_support'] === false )
|
178 |
-
return $data;
|
179 |
-
|
180 |
-
global $redux_builder_amp;
|
181 |
-
|
182 |
-
if ( $redux_builder_amp == null ) {
|
183 |
-
$redux_builder_amp = get_option( 'redux_builder_amp', true );
|
184 |
-
}
|
185 |
-
|
186 |
-
// trick to block the analytics using global $redux_builder_amp variable
|
187 |
-
if ( ! iubendaParser::consent_given() )
|
188 |
-
$redux_builder_amp = true;
|
189 |
-
|
190 |
-
return $data;
|
191 |
-
}
|
192 |
-
|
193 |
-
/**
|
194 |
-
* Block analytics in WP AMP plugin.
|
195 |
-
*
|
196 |
-
* @return mixed
|
197 |
-
*/
|
198 |
-
public function fix_analytics_wp_amp( $analytics_entries ) {
|
199 |
-
if ( iubenda()->options['cs']['amp_support'] === false )
|
200 |
-
return $analytics_entries;
|
201 |
-
|
202 |
-
// block the analytics using the entries filter hook
|
203 |
-
if ( ! iubendaParser::consent_given() && ! empty( $analytics_entries ) && is_array( $analytics_entries ) ) {
|
204 |
-
foreach ( $analytics_entries as $id => $entry ) {
|
205 |
-
$entry['attributes'] = ! empty( $entry['attributes'] ) ? $entry['attributes'] : array();
|
206 |
-
|
207 |
-
$analytics_entries[$id]['attributes'] = array_merge( array( 'data-block-on-consent' => '_till_accepted' ), $entry['attributes'] );
|
208 |
-
}
|
209 |
-
}
|
210 |
-
|
211 |
-
return $analytics_entries;
|
212 |
-
}
|
213 |
-
|
214 |
-
/**
|
215 |
-
* Prepare HTML iframe template for the AMP.
|
216 |
-
*
|
217 |
-
* @return mixed
|
218 |
-
*/
|
219 |
-
public function prepare_amp_template() {
|
220 |
-
$html = '';
|
221 |
-
$configuration_raw = iubenda()->parse_configuration( false );
|
222 |
-
|
223 |
-
if ( ! empty( $configuration_raw ) ) {
|
224 |
-
// encode array
|
225 |
-
$configuration = json_encode( $configuration_raw );
|
226 |
-
// remove quotes
|
227 |
-
$configuration = preg_replace( '/"([a-zA-Z]+[a-zA-Z0-9]*)":/', '$1:', $configuration );
|
228 |
-
// replace brackets
|
229 |
-
$configuration = str_replace( array( '{', '}' ), '', $configuration );
|
230 |
-
|
231 |
-
$html .= '<!DOCTYPE html>
|
232 |
-
<html lang="' . $configuration_raw['lang'] . '">
|
233 |
-
<head>
|
234 |
-
<meta charset="UTF-8">
|
235 |
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
236 |
-
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
237 |
-
<title>AMP Cookie Consent</title>
|
238 |
-
<script type="text/javascript">
|
239 |
-
var _iub = _iub || [];
|
240 |
-
_iub.csConfiguration = {
|
241 |
-
';
|
242 |
-
// print configuration
|
243 |
-
$html .= $configuration . ',';
|
244 |
-
$html .= '
|
245 |
-
banner: {
|
246 |
-
position: \'float-bottom-center\',
|
247 |
-
acceptButtonDisplay: true,
|
248 |
-
customizeButtonDisplay: true,
|
249 |
-
rejectButtonDisplay: true,
|
250 |
-
backgroundOverlay: true
|
251 |
-
},
|
252 |
-
callback: {
|
253 |
-
onPreferenceExpressed: function(preference) {
|
254 |
-
var consentAction = \'reject\';
|
255 |
-
if (preference && preference.consent) {
|
256 |
-
consentAction = \'accept\';
|
257 |
-
}
|
258 |
-
console.log(\'send consent-response\', consentAction);
|
259 |
-
window.parent.postMessage({
|
260 |
-
type: \'consent-response\',
|
261 |
-
action: consentAction
|
262 |
-
}, \'*\');
|
263 |
-
}
|
264 |
-
}
|
265 |
-
};
|
266 |
-
</script>
|
267 |
-
<script async src="https://cdn.iubenda.com/cs/beta/iubenda_cs.js"></script>
|
268 |
-
</head>
|
269 |
-
<body></body>
|
270 |
-
</html>';
|
271 |
-
}
|
272 |
-
|
273 |
-
return $html;
|
274 |
-
}
|
275 |
-
|
276 |
-
/**
|
277 |
-
* Get local file template url;
|
278 |
-
*
|
279 |
-
* @return string
|
280 |
-
*/
|
281 |
-
public function get_amp_template_url() {
|
282 |
-
// get basic site host and template file data
|
283 |
-
$template_url = '';
|
284 |
-
$file_url = IUBENDA_PLUGIN_URL . '/templates/amp.html';
|
285 |
-
// $file_url = 'https://cdn.iubenda.com/cs/test/cs-for-amp.html'; // debug only
|
286 |
-
$parsed_site = parse_url( home_url() );
|
287 |
-
$parsed_file = parse_url( $file_url );
|
288 |
-
$site_host = $parsed_site['host'] !== 'localhost' ? iubenda()->domain( $parsed_site['host'] ) : 'localhost';
|
289 |
-
$file_host = $parsed_file['host'] !== 'localhost' ? iubenda()->domain( $parsed_file['host'] ) : 'localhost';
|
290 |
-
$is_localhost = (bool) ( $site_host == 'localhost' );
|
291 |
-
$is_subdomain = ! $is_localhost ? (bool) ( $parsed_file['host'] !== $file_host ) : false;
|
292 |
-
|
293 |
-
// check if file host and server host match
|
294 |
-
// if not, we're good to go
|
295 |
-
if ( $site_host !== $file_host ) {
|
296 |
-
$template_url = $file_url;
|
297 |
-
// if are located on same host do additional tweaks
|
298 |
-
} else {
|
299 |
-
// all ok if we're on different subdomains
|
300 |
-
if ( $parsed_site['host'] !== $parsed_file['host'] )
|
301 |
-
$template_url = $file_url;
|
302 |
-
// same hosts, let's tweak the http/https
|
303 |
-
else {
|
304 |
-
$has_www = strpos( $parsed_file['host'], 'www.' ) === 0;
|
305 |
-
|
306 |
-
// add or remove www from url string to make iframe url pass AMP validation
|
307 |
-
$tweaked_host = ! $is_localhost && ! $is_subdomain ? ( ! $has_www ? 'www.' . $parsed_file['host'] : preg_replace( '/^www\./i', '', $parsed_file['host'] ) ) : $parsed_file['host'];
|
308 |
-
|
309 |
-
// generate new url
|
310 |
-
$tweaked_url = $parsed_file['scheme'] . '://' . $tweaked_host . ( isset( $parsed_file['port'] ) ? ':' . $parsed_file['port'] : '' ) . $parsed_file['path'] . ( ! empty( $parsed_file['query'] ) ? '?' . $parsed_file['query'] : '' );
|
311 |
-
|
312 |
-
// check if file url is valid
|
313 |
-
if ( $tweaked_url ) {
|
314 |
-
$template_url = $tweaked_url;
|
315 |
-
}
|
316 |
-
}
|
317 |
-
}
|
318 |
-
|
319 |
-
return $template_url;
|
320 |
-
}
|
321 |
-
|
322 |
-
/**
|
323 |
-
* Generate HTML iframe template for the AMP.
|
324 |
-
*
|
325 |
-
* @return mixed
|
326 |
-
*/
|
327 |
-
public function generate_amp_template() {
|
328 |
-
$template_file = IUBENDA_PLUGIN_PATH . DIRECTORY_SEPARATOR . 'templates' . DIRECTORY_SEPARATOR . 'amp.html';
|
329 |
-
$html = $this->prepare_amp_template();
|
330 |
-
|
331 |
-
// bail if the template was not created properly
|
332 |
-
if ( empty( $html ) )
|
333 |
-
return false;
|
334 |
-
|
335 |
-
// bail if the file is writable
|
336 |
-
if ( ! is_writable( $template_file ) )
|
337 |
-
return false;
|
338 |
-
|
339 |
-
// write the file
|
340 |
-
$fh = fopen( $template_file, 'w' );
|
341 |
-
fwrite( $fh, $html );
|
342 |
-
fclose( $fh );
|
343 |
-
|
344 |
-
return true;
|
345 |
-
}
|
346 |
-
|
347 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/forms.php
CHANGED
@@ -339,7 +339,7 @@ class iubenda_Forms {
|
|
339 |
$args = wp_parse_args( $args, $defaults );
|
340 |
|
341 |
// sanitize args
|
342 |
-
$args['ID'] = ! empty( $args['ID'] ) ?
|
343 |
$args['status'] = ! empty( $args['status'] ) && in_array( $args['status'], array_keys( $this->statuses ) ) ? $args['status'] : 'publish';
|
344 |
$args['object_type'] = 'post';
|
345 |
$args['object_id'] = ! empty( $args['object_id'] ) ? (int) $args['object_id'] : 0;
|
@@ -371,8 +371,8 @@ class iubenda_Forms {
|
|
371 |
if ( ! $args['form_source'] || ! $args['form_fields'] )
|
372 |
return false;
|
373 |
|
374 |
-
$post =
|
375 |
-
$update =
|
376 |
|
377 |
// insert new form
|
378 |
if ( ! $update ) {
|
339 |
$args = wp_parse_args( $args, $defaults );
|
340 |
|
341 |
// sanitize args
|
342 |
+
$args['ID'] = ! empty( $args['ID'] ) ? (int) $args['ID'] : 0;
|
343 |
$args['status'] = ! empty( $args['status'] ) && in_array( $args['status'], array_keys( $this->statuses ) ) ? $args['status'] : 'publish';
|
344 |
$args['object_type'] = 'post';
|
345 |
$args['object_id'] = ! empty( $args['object_id'] ) ? (int) $args['object_id'] : 0;
|
371 |
if ( ! $args['form_source'] || ! $args['form_fields'] )
|
372 |
return false;
|
373 |
|
374 |
+
$post = get_post( (int) $args['ID'] );
|
375 |
+
$update = ! $post ? false : true;
|
376 |
|
377 |
// insert new form
|
378 |
if ( ! $update ) {
|
includes/settings.php
CHANGED
@@ -22,7 +22,7 @@ class iubenda_Settings {
|
|
22 |
add_action( 'admin_init', array( $this, 'register_options' ) );
|
23 |
add_action( 'admin_init', array( $this, 'update_plugin' ), 9 );
|
24 |
add_action( 'admin_init', array( $this, 'admin_page_redirect' ), 20 );
|
25 |
-
add_action( 'admin_init', array( $this, 'process_actions' )
|
26 |
add_action( 'admin_menu', array( $this, 'admin_menu_options' ) );
|
27 |
add_action( 'admin_notices', array( $this, 'settings_errors' ) );
|
28 |
add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
|
@@ -45,7 +45,7 @@ class iubenda_Settings {
|
|
45 |
'full_name' => __( 'string', 'iubenda' ),
|
46 |
// 'verified' => __( 'boolean', 'iubenda' ),
|
47 |
);
|
48 |
-
|
49 |
$this->legal_notices = array(
|
50 |
'privacy_policy',
|
51 |
'cookie_policy',
|
@@ -67,15 +67,6 @@ class iubenda_Settings {
|
|
67 |
)
|
68 |
);
|
69 |
|
70 |
-
$this->tag_types = array(
|
71 |
-
0 => __( 'Not set', 'iubenda' ),
|
72 |
-
1 => __( 'Strictly necessary', 'iubenda' ),
|
73 |
-
2 => __( 'Basic interactions & functionalities', 'iubenda' ),
|
74 |
-
3 => __( 'Experience enhancement', 'iubenda' ),
|
75 |
-
4 => __( 'Analytics', 'iubenda' ),
|
76 |
-
5 => __( 'Targeting & Advertising', 'iubenda' )
|
77 |
-
);
|
78 |
-
|
79 |
$links = array(
|
80 |
'en' => array(
|
81 |
'iab' => 'https://www.iubenda.com/en/help/7440-enable-preference-management-iab-framework',
|
@@ -127,7 +118,6 @@ class iubenda_Settings {
|
|
127 |
add_settings_field( 'iub_output_feed', __( 'RSS feed', 'iubenda' ), array( $this, 'iub_output_feed' ), 'iubenda_cookie_law_solution', 'iubenda_cookie_law_solution' );
|
128 |
add_settings_field( 'iub_output_post', __( 'POST requests', 'iubenda' ), array( $this, 'iub_output_post' ), 'iubenda_cookie_law_solution', 'iubenda_cookie_law_solution' );
|
129 |
add_settings_field( 'iub_menu_position', __( 'Menu position', 'iubenda' ), array( $this, 'iub_menu_position' ), 'iubenda_cookie_law_solution', 'iubenda_cookie_law_solution' );
|
130 |
-
add_settings_field( 'iub_amp_support', __( 'Google AMP', 'iubenda' ), array( $this, 'iub_amp_support' ), 'iubenda_cookie_law_solution', 'iubenda_cookie_law_solution' );
|
131 |
add_settings_field( 'iub_deactivation', __( 'Deactivation', 'iubenda' ), array( $this, 'iub_deactivation' ), 'iubenda_cookie_law_solution', 'iubenda_cookie_law_solution' );
|
132 |
|
133 |
// forms list
|
@@ -351,15 +341,6 @@ class iubenda_Settings {
|
|
351 |
}
|
352 |
|
353 |
$tab_key = ! empty( $_GET['tab'] ) ? esc_attr( $_GET['tab'] ) : 'cs';
|
354 |
-
|
355 |
-
// get redirect url
|
356 |
-
if ( iubenda()->options['cs']['menu_position'] === 'submenu' && $pagenow === 'admin.php' ) {
|
357 |
-
// sub menu
|
358 |
-
$redirect_to = admin_url( 'options-general.php?page=iubenda&tab=' . $tab_key );
|
359 |
-
} else {
|
360 |
-
// top menu
|
361 |
-
$redirect_to = admin_url( 'admin.php?page=iubenda&tab=' . $tab_key );
|
362 |
-
}
|
363 |
?>
|
364 |
<div class="wrap">
|
365 |
|
@@ -401,26 +382,6 @@ class iubenda_Settings {
|
|
401 |
</div>
|
402 |
|
403 |
<?php
|
404 |
-
// add per-purpose notice
|
405 |
-
if ( $tab_key === 'cs' && iubenda()->options['cs']['skip_parsing'] ) {
|
406 |
-
$iubenda_code = '';
|
407 |
-
|
408 |
-
if ( iubenda()->multilang === true && defined( 'ICL_LANGUAGE_CODE' ) && isset( iubenda()->options['cs']['code_' . ICL_LANGUAGE_CODE] ) ) {
|
409 |
-
$iubenda_code = iubenda()->options['cs']['code_' . ICL_LANGUAGE_CODE];
|
410 |
-
|
411 |
-
// no code for current language, use default
|
412 |
-
if ( ! $iubenda_code )
|
413 |
-
$iubenda_code = iubenda()->options['cs']['code_default'];
|
414 |
-
} else
|
415 |
-
$iubenda_code = iubenda()->options['cs']['code_default'];
|
416 |
-
|
417 |
-
$per_purpose_enabled = preg_match( '/(?:"|\')perPurposeConsent(?:"|\')\: *(?:"|\'*)true(?:"|\'*)/', $iubenda_code );
|
418 |
-
$reject_enabled = preg_match( '/(?:"|\')rejectButtonDisplay(?:"|\')\: *(?:"|\'*)true(?:"|\'*)/', $iubenda_code );
|
419 |
-
|
420 |
-
if ( $per_purpose_enabled || $reject_enabled )
|
421 |
-
$this->add_notice( 'iub_per_purpose_enabled', sprintf( __( 'If you are using per-purpose script blocking or Reject option please disable the "Leave scripts untouched on the page if the user has already given consent" option. <a href="%s" target="_self">Disable now</a>', 'iubenda' ), esc_url( add_query_arg( 'action', 'disable_skip_parsing', $redirect_to ) ) ), 'notice' );
|
422 |
-
}
|
423 |
-
|
424 |
// render custom notices
|
425 |
$this->print_notices();
|
426 |
?>
|
@@ -553,63 +514,18 @@ class iubenda_Settings {
|
|
553 |
</div>
|
554 |
<div id="contextual-help-tabs-wrap-2" class="contextual-help-tabs-wrap">
|
555 |
<div id="tab-panel-scripts" class="help-tab-content active">
|
556 |
-
<
|
557 |
-
<
|
558 |
-
<input type="text" class="regular-text" value="" name="iubenda_cookie_law_solution[custom_scripts][script][]" placeholder="' . __( 'Enter custom script', 'iubenda' ) . '" /> ' . $this->render_tag_types( 'script', 0 ) . ' <a href="#" class="remove-custom-script-field button-secondary" title="' . __( 'Remove', 'iubenda' ) . '">-</a>
|
559 |
-
</div>';
|
560 |
-
|
561 |
-
if ( ! empty( iubenda()->options['cs']['custom_scripts'] ) ) {
|
562 |
-
foreach ( iubenda()->options['cs']['custom_scripts'] as $script => $type ) {
|
563 |
-
echo '
|
564 |
-
<div class="custom-script-field">
|
565 |
-
<input type="text" class="regular-text" value="' . esc_attr( $script ) . '" name="iubenda_cookie_law_solution[custom_scripts][script][]" placeholder="' . __( 'Enter custom script', 'iubenda' ) . '" /> ' . $this->render_tag_types( 'script', $type ) . ' <a href="#" class="remove-custom-script-field button-secondary" title="' . __( 'Remove', 'iubenda' ) . '">-</a>
|
566 |
-
</div>';
|
567 |
-
}
|
568 |
-
}
|
569 |
-
|
570 |
-
echo '
|
571 |
-
<a href="#" class="add-custom-script-field button-secondary">Add New Script</a>
|
572 |
</div>
|
573 |
<div id="tab-panel-iframes" class="help-tab-content">
|
574 |
-
<
|
575 |
-
<
|
576 |
-
<input type="text" class="regular-text" value="" name="iubenda_cookie_law_solution[custom_iframes][iframe][]" placeholder="' . __( 'Enter custom iframe', 'iubenda' ) . '" /> ' . $this->render_tag_types( 'iframe', 0 ) . ' <a href="#" class="remove-custom-iframe-field button-secondary" title="' . __( 'Remove', 'iubenda' ) . '">-</a>
|
577 |
-
</div>';
|
578 |
-
|
579 |
-
if ( ! empty( iubenda()->options['cs']['custom_iframes'] ) ) {
|
580 |
-
foreach ( iubenda()->options['cs']['custom_iframes'] as $iframe => $type ) {
|
581 |
-
echo '
|
582 |
-
<div class="custom-iframe-field">
|
583 |
-
<input type="text" class="regular-text" value="' . esc_attr( $iframe ) . '" name="iubenda_cookie_law_solution[custom_iframes][iframe][]" placeholder="' . __( 'Enter custom iframe', 'iubenda' ) . '" /> ' . $this->render_tag_types( 'iframe', $type ) . ' <a href="#" class="remove-custom-iframe-field button-secondary" title="' . __( 'Remove', 'iubenda' ) . '">-</a>
|
584 |
-
</div>';
|
585 |
-
}
|
586 |
-
}
|
587 |
-
|
588 |
-
echo '
|
589 |
-
<a href="#" class="add-custom-iframe-field button-secondary">Add New Iframe</a>
|
590 |
</div>
|
591 |
</div>
|
592 |
</div>
|
593 |
</div>';
|
594 |
}
|
595 |
|
596 |
-
/**
|
597 |
-
* Prepare tag types select.
|
598 |
-
*
|
599 |
-
* @param string $type
|
600 |
-
* @param int $selected
|
601 |
-
* @return string
|
602 |
-
*/
|
603 |
-
function render_tag_types( $type, $selected ) {
|
604 |
-
$html = '<select name="iubenda_cookie_law_solution[custom_' . $type . 's][type][]">';
|
605 |
-
|
606 |
-
foreach ( $this->tag_types as $tag_id => $tag_name ) {
|
607 |
-
$html .= '<option value="' . esc_attr( $tag_id ) . '" ' . selected( $selected, $tag_id, false ) . '>' . esc_html( $tag_name ) . '</option>';
|
608 |
-
}
|
609 |
-
|
610 |
-
return $html . '</select>';
|
611 |
-
}
|
612 |
-
|
613 |
/**
|
614 |
* Parsing option.
|
615 |
*
|
@@ -628,7 +544,7 @@ class iubenda_Settings {
|
|
628 |
</div>
|
629 |
<div>
|
630 |
<label><input id="iub_skip_parsing" type="checkbox" name="iubenda_cookie_law_solution[skip_parsing]" value="1" ' . checked( true, (bool) iubenda()->options['cs']['skip_parsing'], false ) . '/>' . __( 'Leave scripts untouched on the page if the user has already given consent', 'iubenda' ) . '</label>
|
631 |
-
<p class="description">(' . __( "improves performance, highly recommended, to be deactivated only if your site uses a caching system
|
632 |
</div>
|
633 |
</div>
|
634 |
</div>';
|
@@ -683,41 +599,6 @@ class iubenda_Settings {
|
|
683 |
<p class="description">' . __( 'Select whether to display iubenda in a top admin menu or the Settings submenu.', 'iubenda' ) . '</p>
|
684 |
</div>';
|
685 |
}
|
686 |
-
|
687 |
-
/**
|
688 |
-
* Google AMP support option.
|
689 |
-
*
|
690 |
-
* @return mixed
|
691 |
-
*/
|
692 |
-
public function iub_amp_support() {
|
693 |
-
echo '
|
694 |
-
<div id="iub_amp_support_container">
|
695 |
-
<label><input id="iub_amp_support" type="checkbox" name="iubenda_cookie_law_solution[amp_support]" value="1" ' . checked( true, (bool) iubenda()->options['cs']['amp_support'], false ) . '/>' . __( 'Enable Google AMP support.', 'iubenda' ) . '</label>
|
696 |
-
<p class="description">' . sprintf( __( 'This feature enables iubenda on AMP pages via the <a href="%s" target="_blank">AMP</a> and <a href="%s" target="_blank">AMP for WP</a> plugins. AMP requires a specific configuration parameters and a page hosted on your domain where the configuration is loaded from. <a href="%s" target="_blank">Learn more on iubenda and AMP</a>.', 'iubenda' ), 'https://wordpress.org/plugins/amp/', 'https://wordpress.org/plugins/accelerated-mobile-pages/', 'https://www.iubenda.com/en/help/3182-cookie-solution-amp#wordpress' ) . '</p>
|
697 |
-
<div id="iub_amp_options_container"' . ( iubenda()->options['cs']['amp_support'] === false ? ' style="display: none;"' : '' ) . '>
|
698 |
-
<div>
|
699 |
-
<label><input id="iub_amp_source-local" class="iub_amp_source" type="radio" name="iubenda_cookie_law_solution[amp_source]" value="local" ' . checked( 'local', iubenda()->options['cs']['amp_source'], false ) . ' />' . __( 'Auto-generated configuration file', 'iubenda' ) . '</label>
|
700 |
-
<label><input id="iub_amp_source-remote" class="iub_amp_source" type="radio" name="iubenda_cookie_law_solution[amp_source]" value="remote" ' . checked( 'remote', iubenda()->options['cs']['amp_source'], false ) . ' />' . __( 'Custom configuration file', 'iubenda' ) . '</label>
|
701 |
-
<p class="description">' . __( 'Select the iubenda AMP configuration file location.', 'iubenda' ) . '</p>
|
702 |
-
</div>
|
703 |
-
<div id="iub_amp_template-local"' . ( iubenda()->options['cs']['amp_source'] === 'remote' ? ' style="display: none;"' : '' ) . '>';
|
704 |
-
if ( iubenda()->options['cs']['amp_template_done'] === false ) {
|
705 |
-
echo '
|
706 |
-
<p class="description">' . __( 'No file available. Save changes to generate iubenda AMP configuration file.', 'iubenda' ) . '</p>';
|
707 |
-
} else {
|
708 |
-
echo '
|
709 |
-
<a href="' . iubenda()->AMP->get_amp_template_url() . '" target="_blank">' . iubenda()->AMP->get_amp_template_url() . '</a>';
|
710 |
-
}
|
711 |
-
echo '
|
712 |
-
</div>
|
713 |
-
<div id="iub_amp_template-remote"' . ( iubenda()->options['cs']['amp_source'] === 'local' ? ' style="display: none;"' : '' ) . '>
|
714 |
-
<label><input id="iub_amp_template" type="text" class="regular-text" name="iubenda_cookie_law_solution[amp_template]" value="' . esc_url( iubenda()->options['cs']['amp_template'] ) . '" /></label>
|
715 |
-
<p class="description">' . __( 'If you\'re experiencing issues with AMP setup download the generated iubenda AMP configuration file, upload it to any SSL server and paste the file link to the field above.', 'iubenda' ) . '</p>
|
716 |
-
</div>
|
717 |
-
<p class="description">' . sprintf( __( 'Seeing the AMP cookie notice when testing from Google but not when visiting your AMP pages directly? <a href="%s" target="_blank">Learn how to fix it</a>.', 'iubenda' ), 'https://www.iubenda.com/en/help/3182-cookie-solution-amp#amp-domain' ) . '</p>
|
718 |
-
</div>
|
719 |
-
</div>';
|
720 |
-
}
|
721 |
|
722 |
/**
|
723 |
* Deactivation option.
|
@@ -1146,14 +1027,7 @@ class iubenda_Settings {
|
|
1146 |
$input['output_feed'] = (bool) isset( $input['output_feed'] );
|
1147 |
$input['output_post'] = (bool) isset( $input['output_post'] );
|
1148 |
$input['menu_position'] = isset( $input['menu_position'] ) && in_array( $input['menu_position'], array( 'topmenu', 'submenu' ) ) ? $input['menu_position'] : iubenda()->defaults['cs']['menu_position'];
|
1149 |
-
$input['amp_support'] = (bool) isset( $input['amp_support'] );
|
1150 |
$input['deactivation'] = (bool) isset( $input['deactivation'] );
|
1151 |
-
|
1152 |
-
// generate amp template file
|
1153 |
-
if ( isset( $input['amp_support'] ) ) {
|
1154 |
-
$input['amp_template_done'] = (bool) iubenda()->AMP->generate_amp_template();
|
1155 |
-
$input['amp_template'] = esc_url( $input['amp_template'] );
|
1156 |
-
}
|
1157 |
|
1158 |
// multilang support
|
1159 |
if ( iubenda()->multilang && ! empty( iubenda()->languages ) ) {
|
@@ -1169,38 +1043,24 @@ class iubenda_Settings {
|
|
1169 |
$input['code_default'] = ! empty( $input['code_default'] ) ? iubenda()->parse_code( $input['code_default'] ) : '';
|
1170 |
|
1171 |
// scripts
|
1172 |
-
if (
|
1173 |
-
$
|
1174 |
-
|
1175 |
-
// first field is template
|
1176 |
-
if ( count( $input['custom_scripts']['script'] ) > 1 ) {
|
1177 |
-
foreach ( $input['custom_scripts']['script'] as $number => $script ) {
|
1178 |
-
$trimmed = trim( $script );
|
1179 |
|
1180 |
-
|
1181 |
-
|
1182 |
-
|
1183 |
-
|
1184 |
-
|
1185 |
-
$input['custom_scripts'] = $scripts;
|
1186 |
} else
|
1187 |
$input['custom_scripts'] = array();
|
1188 |
|
1189 |
// iframes
|
1190 |
-
if (
|
1191 |
-
$
|
1192 |
-
|
1193 |
-
// first field is template
|
1194 |
-
if ( count( $input['custom_iframes']['iframe'] ) > 1 ) {
|
1195 |
-
foreach ( $input['custom_iframes']['iframe'] as $number => $iframe ) {
|
1196 |
-
$trimmed = trim( $iframe );
|
1197 |
|
1198 |
-
|
1199 |
-
|
1200 |
-
|
1201 |
-
|
1202 |
-
|
1203 |
-
$input['custom_iframes'] = $iframes;
|
1204 |
} else
|
1205 |
$input['custom_iframes'] = array();
|
1206 |
|
@@ -1259,22 +1119,13 @@ class iubenda_Settings {
|
|
1259 |
|
1260 |
if ( ! $page )
|
1261 |
return;
|
1262 |
-
|
1263 |
-
// get redirect url
|
1264 |
-
if ( iubenda()->options['cs']['menu_position'] === 'submenu' && $pagenow === 'admin.php' ) {
|
1265 |
-
// sub menu
|
1266 |
-
$redirect_to = admin_url( 'options-general.php?page=iubenda&tab=' . $tab_key );
|
1267 |
-
} else {
|
1268 |
-
// top menu
|
1269 |
-
$redirect_to = admin_url( 'admin.php?page=iubenda&tab=' . $tab_key );
|
1270 |
-
}
|
1271 |
|
1272 |
// add comments cookie option notice
|
1273 |
if ( $tab_key != 'cs' && ! empty( iubenda()->options['cons']['public_api_key'] ) ) {
|
1274 |
$cookies_enabled = get_option( 'show_comments_cookies_opt_in' );
|
1275 |
|
1276 |
if ( ! $cookies_enabled ) {
|
1277 |
-
|
1278 |
}
|
1279 |
}
|
1280 |
|
@@ -1286,15 +1137,23 @@ class iubenda_Settings {
|
|
1286 |
|
1287 |
// new forms notice
|
1288 |
if ( ! empty( $result['new'] ) )
|
1289 |
-
|
1290 |
|
1291 |
// forms changed notice
|
1292 |
if ( ! empty( $result['updated'] ) )
|
1293 |
-
|
1294 |
|
1295 |
// no changes notice
|
1296 |
if ( empty( $result['new'] ) && empty( $result['updated'] ) )
|
1297 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1298 |
|
1299 |
// make sure it's current host location
|
1300 |
wp_safe_redirect( $redirect_to );
|
@@ -1354,7 +1213,7 @@ class iubenda_Settings {
|
|
1354 |
|
1355 |
// bail if empty fields
|
1356 |
if ( empty( $subject ) || empty( $preferences ) ) {
|
1357 |
-
|
1358 |
return;
|
1359 |
}
|
1360 |
|
@@ -1378,13 +1237,13 @@ class iubenda_Settings {
|
|
1378 |
if ( $result ) {
|
1379 |
// form save, inform about form status update
|
1380 |
if ( empty( $form->form_subject ) && empty( $form->form_preferences ) ) {
|
1381 |
-
|
1382 |
// form update
|
1383 |
} else {
|
1384 |
-
|
1385 |
}
|
1386 |
} else {
|
1387 |
-
|
1388 |
}
|
1389 |
|
1390 |
break;
|
@@ -1401,30 +1260,15 @@ class iubenda_Settings {
|
|
1401 |
$result = iubenda()->forms->delete_form( $id );
|
1402 |
|
1403 |
if ( $result )
|
1404 |
-
|
1405 |
else
|
1406 |
-
|
|
|
|
|
1407 |
|
1408 |
// make sure it's current host location
|
1409 |
wp_safe_redirect( $redirect_to );
|
1410 |
-
|
1411 |
-
|
1412 |
-
break;
|
1413 |
-
|
1414 |
-
case 'disable_skip_parsing' :
|
1415 |
-
|
1416 |
-
// disable skip parsing option
|
1417 |
-
$options = iubenda()->options['cs'];
|
1418 |
-
$options['skip_parsing'] = false;
|
1419 |
-
|
1420 |
-
update_option( 'iubenda_cookie_law_solution', $options );
|
1421 |
-
|
1422 |
-
$this->add_notice( 'iub_settings_updated', __( 'Settings saved.', 'iubenda' ), 'success' );
|
1423 |
-
|
1424 |
-
// make sure it's current host location
|
1425 |
-
wp_safe_redirect( $redirect_to );
|
1426 |
-
exit;
|
1427 |
-
|
1428 |
break;
|
1429 |
|
1430 |
default :
|
22 |
add_action( 'admin_init', array( $this, 'register_options' ) );
|
23 |
add_action( 'admin_init', array( $this, 'update_plugin' ), 9 );
|
24 |
add_action( 'admin_init', array( $this, 'admin_page_redirect' ), 20 );
|
25 |
+
add_action( 'admin_init', array( $this, 'process_actions' ) );
|
26 |
add_action( 'admin_menu', array( $this, 'admin_menu_options' ) );
|
27 |
add_action( 'admin_notices', array( $this, 'settings_errors' ) );
|
28 |
add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
|
45 |
'full_name' => __( 'string', 'iubenda' ),
|
46 |
// 'verified' => __( 'boolean', 'iubenda' ),
|
47 |
);
|
48 |
+
|
49 |
$this->legal_notices = array(
|
50 |
'privacy_policy',
|
51 |
'cookie_policy',
|
67 |
)
|
68 |
);
|
69 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
70 |
$links = array(
|
71 |
'en' => array(
|
72 |
'iab' => 'https://www.iubenda.com/en/help/7440-enable-preference-management-iab-framework',
|
118 |
add_settings_field( 'iub_output_feed', __( 'RSS feed', 'iubenda' ), array( $this, 'iub_output_feed' ), 'iubenda_cookie_law_solution', 'iubenda_cookie_law_solution' );
|
119 |
add_settings_field( 'iub_output_post', __( 'POST requests', 'iubenda' ), array( $this, 'iub_output_post' ), 'iubenda_cookie_law_solution', 'iubenda_cookie_law_solution' );
|
120 |
add_settings_field( 'iub_menu_position', __( 'Menu position', 'iubenda' ), array( $this, 'iub_menu_position' ), 'iubenda_cookie_law_solution', 'iubenda_cookie_law_solution' );
|
|
|
121 |
add_settings_field( 'iub_deactivation', __( 'Deactivation', 'iubenda' ), array( $this, 'iub_deactivation' ), 'iubenda_cookie_law_solution', 'iubenda_cookie_law_solution' );
|
122 |
|
123 |
// forms list
|
341 |
}
|
342 |
|
343 |
$tab_key = ! empty( $_GET['tab'] ) ? esc_attr( $_GET['tab'] ) : 'cs';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
344 |
?>
|
345 |
<div class="wrap">
|
346 |
|
382 |
</div>
|
383 |
|
384 |
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
385 |
// render custom notices
|
386 |
$this->print_notices();
|
387 |
?>
|
514 |
</div>
|
515 |
<div id="contextual-help-tabs-wrap-2" class="contextual-help-tabs-wrap">
|
516 |
<div id="tab-panel-scripts" class="help-tab-content active">
|
517 |
+
<textarea name="iubenda_cookie_law_solution[custom_scripts]" class="large-text" cols="50" rows="10">' . esc_textarea( implode( "\n", iubenda()->options['cs']['custom_scripts'] ) ) . '</textarea>
|
518 |
+
<p class="description">' . __( 'Enter the list of custom scripts you’d like to block here (one per line)', 'iubenda' ) . '</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
519 |
</div>
|
520 |
<div id="tab-panel-iframes" class="help-tab-content">
|
521 |
+
<textarea name="iubenda_cookie_law_solution[custom_iframes]" class="large-text" cols="50" rows="10">' . esc_textarea( implode( "\n", iubenda()->options['cs']['custom_iframes'] ) ) . '</textarea>
|
522 |
+
<p class="description">' . __( 'Enter the list of custom iframes you’d like to block here (one per line). ', 'iubenda' ) . '</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
523 |
</div>
|
524 |
</div>
|
525 |
</div>
|
526 |
</div>';
|
527 |
}
|
528 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
529 |
/**
|
530 |
* Parsing option.
|
531 |
*
|
544 |
</div>
|
545 |
<div>
|
546 |
<label><input id="iub_skip_parsing" type="checkbox" name="iubenda_cookie_law_solution[skip_parsing]" value="1" ' . checked( true, (bool) iubenda()->options['cs']['skip_parsing'], false ) . '/>' . __( 'Leave scripts untouched on the page if the user has already given consent', 'iubenda' ) . '</label>
|
547 |
+
<p class="description">(' . __( "improves performance, highly recommended, to be deactivated only if your site uses a caching system", 'iubenda' ) . ')</p>
|
548 |
</div>
|
549 |
</div>
|
550 |
</div>';
|
599 |
<p class="description">' . __( 'Select whether to display iubenda in a top admin menu or the Settings submenu.', 'iubenda' ) . '</p>
|
600 |
</div>';
|
601 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
602 |
|
603 |
/**
|
604 |
* Deactivation option.
|
1027 |
$input['output_feed'] = (bool) isset( $input['output_feed'] );
|
1028 |
$input['output_post'] = (bool) isset( $input['output_post'] );
|
1029 |
$input['menu_position'] = isset( $input['menu_position'] ) && in_array( $input['menu_position'], array( 'topmenu', 'submenu' ) ) ? $input['menu_position'] : iubenda()->defaults['cs']['menu_position'];
|
|
|
1030 |
$input['deactivation'] = (bool) isset( $input['deactivation'] );
|
|
|
|
|
|
|
|
|
|
|
|
|
1031 |
|
1032 |
// multilang support
|
1033 |
if ( iubenda()->multilang && ! empty( iubenda()->languages ) ) {
|
1043 |
$input['code_default'] = ! empty( $input['code_default'] ) ? iubenda()->parse_code( $input['code_default'] ) : '';
|
1044 |
|
1045 |
// scripts
|
1046 |
+
if ( isset( $input['custom_scripts'] ) ) {
|
1047 |
+
$input['custom_scripts'] = trim( $input['custom_scripts'] );
|
|
|
|
|
|
|
|
|
|
|
1048 |
|
1049 |
+
if ( ! empty( $input['custom_scripts'] ) )
|
1050 |
+
$input['custom_scripts'] = array_map( 'trim', explode( "\n", str_replace( "\r", '', $input['custom_scripts'] ) ) );
|
1051 |
+
else
|
1052 |
+
$input['custom_scripts'] = array();
|
|
|
|
|
1053 |
} else
|
1054 |
$input['custom_scripts'] = array();
|
1055 |
|
1056 |
// iframes
|
1057 |
+
if ( isset( $input['custom_iframes'] ) ) {
|
1058 |
+
$input['custom_iframes'] = trim( $input['custom_iframes'] );
|
|
|
|
|
|
|
|
|
|
|
1059 |
|
1060 |
+
if ( ! empty( $input['custom_iframes'] ) )
|
1061 |
+
$input['custom_iframes'] = array_map( 'trim', explode( "\n", str_replace( "\r", '', $input['custom_iframes'] ) ) );
|
1062 |
+
else
|
1063 |
+
$input['custom_iframes'] = array();
|
|
|
|
|
1064 |
} else
|
1065 |
$input['custom_iframes'] = array();
|
1066 |
|
1119 |
|
1120 |
if ( ! $page )
|
1121 |
return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1122 |
|
1123 |
// add comments cookie option notice
|
1124 |
if ( $tab_key != 'cs' && ! empty( iubenda()->options['cons']['public_api_key'] ) ) {
|
1125 |
$cookies_enabled = get_option( 'show_comments_cookies_opt_in' );
|
1126 |
|
1127 |
if ( ! $cookies_enabled ) {
|
1128 |
+
iubenda()->settings->add_notice( 'iub_comment_cookies_disabled', sprintf( __( 'Please enable comments cookies opt-in checkbox in the <a href="%s" target="_blank">Discussion settings</a>.', 'iubenda' ), esc_url( admin_url( 'options-discussion.php' ) ) ), 'notice' );
|
1129 |
}
|
1130 |
}
|
1131 |
|
1137 |
|
1138 |
// new forms notice
|
1139 |
if ( ! empty( $result['new'] ) )
|
1140 |
+
iubenda()->settings->add_notice( 'iub_autodetect_success', sprintf( _n( '%d form detected successfully.', '%d forms detected successfully.', count( $result['new'] ), 'iubenda' ), $result ), 'success' );
|
1141 |
|
1142 |
// forms changed notice
|
1143 |
if ( ! empty( $result['updated'] ) )
|
1144 |
+
iubenda()->settings->add_notice( 'iub_autodetect_success', sprintf( _n( '%d form change detected.', '%d form changes detected.', count( $result['updated'] ), 'iubenda' ), $result ), 'success' );
|
1145 |
|
1146 |
// no changes notice
|
1147 |
if ( empty( $result['new'] ) && empty( $result['updated'] ) )
|
1148 |
+
iubenda()->settings->add_notice( 'iub_autodetect_success', __( 'No forms or form changes detected.', 'iubenda' ), 'error' );
|
1149 |
+
|
1150 |
+
if ( iubenda()->options['cs']['menu_position'] === 'submenu' && $pagenow === 'admin.php' ) {
|
1151 |
+
// sub menu
|
1152 |
+
$redirect_to = admin_url( 'options-general.php?page=iubenda&tab=cons' );
|
1153 |
+
} else {
|
1154 |
+
// top menu
|
1155 |
+
$redirect_to = admin_url( 'admin.php?page=iubenda&tab=cons' );
|
1156 |
+
}
|
1157 |
|
1158 |
// make sure it's current host location
|
1159 |
wp_safe_redirect( $redirect_to );
|
1213 |
|
1214 |
// bail if empty fields
|
1215 |
if ( empty( $subject ) || empty( $preferences ) ) {
|
1216 |
+
iubenda()->settings->add_notice( 'iub_form_fields_missing', __( 'Form saving failed. Please fill the Subject and Preferences fields.', 'iubenda' ), 'error' );
|
1217 |
return;
|
1218 |
}
|
1219 |
|
1237 |
if ( $result ) {
|
1238 |
// form save, inform about form status update
|
1239 |
if ( empty( $form->form_subject ) && empty( $form->form_preferences ) ) {
|
1240 |
+
iubenda()->settings->add_notice( 'iub_form_saved', __( 'Form saved successfully - form status changed to Mapped.', 'iubenda' ), 'success' );
|
1241 |
// form update
|
1242 |
} else {
|
1243 |
+
iubenda()->settings->add_notice( 'iub_form_updated', __( 'Form updated successfully.', 'iubenda' ), 'success' );
|
1244 |
}
|
1245 |
} else {
|
1246 |
+
iubenda()->settings->add_notice( 'iub_form_failed', __( 'Form saving failed.', 'iubenda' ), 'error' );
|
1247 |
}
|
1248 |
|
1249 |
break;
|
1260 |
$result = iubenda()->forms->delete_form( $id );
|
1261 |
|
1262 |
if ( $result )
|
1263 |
+
iubenda()->settings->add_notice( 'iub_form_deleted', __( 'Form deleted successfully.', 'iubenda' ), 'success' );
|
1264 |
else
|
1265 |
+
iubenda()->settings->add_notice( 'iub_form_delete_failed', __( 'Form delete failed.', 'iubenda' ), 'error' );
|
1266 |
+
|
1267 |
+
$redirect_to = admin_url( 'admin.php?page=iubenda&tab=cons' );
|
1268 |
|
1269 |
// make sure it's current host location
|
1270 |
wp_safe_redirect( $redirect_to );
|
1271 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1272 |
break;
|
1273 |
|
1274 |
default :
|
iubenda-cookie-class/README.md
CHANGED
@@ -98,13 +98,6 @@ These operations take place in accordance with the rules explained in [this guid
|
|
98 |
|
99 |
## Changelog
|
100 |
|
101 |
-
##### 4.1.0
|
102 |
-
* New: Google AMP support
|
103 |
-
|
104 |
-
##### 4.0.0
|
105 |
-
* New: Per-purpose script blocking support
|
106 |
-
* New: Reject button support
|
107 |
-
|
108 |
##### 3.4.0
|
109 |
* New: Introducing wildcard support for scripts and iframes
|
110 |
|
98 |
|
99 |
## Changelog
|
100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
101 |
##### 3.4.0
|
102 |
* New: Introducing wildcard support for scripts and iframes
|
103 |
|
iubenda-cookie-class/iubenda.class.php
CHANGED
@@ -3,9 +3,9 @@
|
|
3 |
* iubenda.class.php
|
4 |
*
|
5 |
* @author iubenda s.r.l
|
6 |
-
* @copyright 2018-
|
7 |
* @license GNU/GPL
|
8 |
-
* @version 4.
|
9 |
* @deprecated
|
10 |
*
|
11 |
* This program is free software: you can redistribute it and/or modify
|
@@ -27,117 +27,118 @@ class iubendaParser {
|
|
27 |
// variables
|
28 |
const IUB_REGEX_PATTERN = '/<!--\s*IUB_COOKIE_POLICY_START\s*-->(.*?)<!--\s*IUB_COOKIE_POLICY_END\s*-->/s';
|
29 |
const IUB_REGEX_PATTERN_2 = '/<!--\s*IUB-COOKIE-BLOCK-START\s*-->(.*?)<!--\s*IUB-COOKIE-BLOCK-END\s*-->/s';
|
30 |
-
const IUB_REGEX_PURPOSE_PATTERN = '/<!--\s*IUB-COOKIE-BLOCK-START-PURPOSE-(\d+)\s*-->(.*?)<!--\s*IUB-COOKIE-BLOCK-END-PURPOSE-\d+\s*-->/s';
|
31 |
const IUB_REGEX_SKIP_PATTERN = '/<!--\s*IUB-COOKIE-BLOCK-SKIP-START\s*-->(.*?)<!--\s*IUB-COOKIE-BLOCK-SKIP-END\s*-->/s';
|
32 |
|
33 |
// scripts
|
34 |
-
public $auto_script_tags = array(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
|
36 |
// iframes
|
37 |
-
public $auto_iframe_tags = array(
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
'paypalobjects.com/js/external/api.js',
|
59 |
-
'paypalobjects.com/api/checkout.js'
|
60 |
-
),
|
61 |
-
// Experience enhancement
|
62 |
-
3 => array(
|
63 |
-
'apis.google.com/js/plusone.js',
|
64 |
-
'apis.google.com/js/client/plusone.js',
|
65 |
-
'apis.google.com/js/platform.js',
|
66 |
-
'www.youtube.com/iframe_api',
|
67 |
-
'youtu.be',
|
68 |
-
'platform.twitter.com/widgets.js',
|
69 |
-
'instawidget.net/js/instawidget.js',
|
70 |
-
'disqus.com/embed.js',
|
71 |
-
'platform.linkedin.com/in.js',
|
72 |
-
'pinterest.com/js/pinit.js',
|
73 |
-
'codepen.io',
|
74 |
-
'bat.bing.com'
|
75 |
-
),
|
76 |
-
// Analytics
|
77 |
-
4 => array(
|
78 |
-
'sharethis.com/button/buttons.js',
|
79 |
-
'addthis.com/js/',
|
80 |
-
'scorecardresearch.com/beacon.js',
|
81 |
-
'neodatagroup.com',
|
82 |
-
'lp4.io',
|
83 |
-
'cdn.optimizely.com/js/',
|
84 |
-
'cdn.segment.io/analytics.js',
|
85 |
-
'cdn.segment.com/analytics.js',
|
86 |
-
'i.kissmetrics.com/i.js',
|
87 |
-
'cdn.mxpnl.com',
|
88 |
-
'rum-static.pingdom.net/prum.min.js'
|
89 |
-
),
|
90 |
-
// Targeting & Advertising
|
91 |
-
5 => array(
|
92 |
-
'googlesyndication.com/pagead/js/adsbygoogle.js',
|
93 |
-
'googlesyndication.com/pagead/show_ads.js',
|
94 |
-
'googleadservices.com/pagead/conversion.js',
|
95 |
-
'www.googletagmanager.com/gtag/js',
|
96 |
-
'window.adsbygoogle',
|
97 |
-
'static.ads-twitter.com',
|
98 |
-
'connect.facebook.net',
|
99 |
-
'static.criteo.net/js/',
|
100 |
-
'adagionet.com/uploads/js/sipra.js',
|
101 |
-
'cdn-wx.rainbowtgx.com/rtgx.js',
|
102 |
-
'outbrain.js',
|
103 |
-
's.adroll.com',
|
104 |
-
'scdn.cxense.com'
|
105 |
-
)
|
106 |
-
);
|
107 |
-
|
108 |
-
// per-purpose iframes
|
109 |
-
public $iframe_tags = array(
|
110 |
-
// Strictly necessary
|
111 |
-
1 => array(),
|
112 |
-
// Basic interactions & functionalities
|
113 |
-
2 => array(
|
114 |
-
'googletagmanager.com/ns.html'
|
115 |
-
),
|
116 |
-
// Experience enhancement
|
117 |
-
3 => array(
|
118 |
-
'apis.google.com',
|
119 |
-
'maps.google.it/maps',
|
120 |
-
'maps.google.com/maps',
|
121 |
-
'www.google.com/maps/embed',
|
122 |
-
'youtube.com',
|
123 |
-
'platform.twitter.com',
|
124 |
-
'player.vimeo.com',
|
125 |
-
'www.facebook.com/plugins/like.php',
|
126 |
-
'www.facebook.com/*/plugins/like.php',
|
127 |
-
'www.facebook.com/plugins/likebox.php',
|
128 |
-
'www.facebook.com/*/plugins/likebox.php'
|
129 |
-
),
|
130 |
-
// Analytics
|
131 |
-
4 => array(),
|
132 |
-
// Targeting & Advertising
|
133 |
-
5 => array(
|
134 |
-
'window.adsbygoogle',
|
135 |
-
'4wnet.com'
|
136 |
-
)
|
137 |
);
|
138 |
|
139 |
private $type = 'page';
|
140 |
-
private $amp = false;
|
141 |
public $iub_comments_detected = array();
|
142 |
public $skipped_comments_detected = array();
|
143 |
public $iframes_skipped = array();
|
@@ -161,11 +162,18 @@ class iubendaParser {
|
|
161 |
* @param array $args
|
162 |
*/
|
163 |
public function __construct( $content_page = '', $args = array() ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
164 |
// valid type?
|
165 |
$this->type = ! empty( $args['type'] ) && in_array( $args['type'], array( 'page', 'faster' ), true ) ? $args['type'] : 'page';
|
166 |
-
|
167 |
-
// amp support>
|
168 |
-
$this->amp = (bool) ( isset( $args['amp'] ) && $args['amp'] === true );
|
169 |
|
170 |
// load Simple HTML DOM if needed
|
171 |
if ( ! function_exists( 'file_get_html' ) || ! function_exists( 'str_get_html' ) )
|
@@ -174,49 +182,6 @@ class iubendaParser {
|
|
174 |
// set content
|
175 |
$this->original_content_page = $content_page;
|
176 |
$this->content_page = $content_page;
|
177 |
-
|
178 |
-
// get purposes
|
179 |
-
$this->purposes = self::get_purposes();
|
180 |
-
|
181 |
-
// check for additional scripts
|
182 |
-
if ( ! empty( $args['scripts'] ) && is_array( $args['scripts'] ) ) {
|
183 |
-
// array is not multidimensional, backward compatibility, so block it
|
184 |
-
if ( ! is_array( reset( $args['scripts'] ) ) ) {
|
185 |
-
$this->auto_script_tags = array_merge( $this->auto_script_tags, $args['scripts'] );
|
186 |
-
// array is multidimensional, assign per purpose
|
187 |
-
} else {
|
188 |
-
// block unassigned script
|
189 |
-
if ( array_key_exists( 0, $args['scripts'] ) ) {
|
190 |
-
$this->auto_script_tags = array_merge( $this->auto_script_tags, $args['scripts'][0] );
|
191 |
-
unset( $args['scripts'][0] );
|
192 |
-
}
|
193 |
-
|
194 |
-
$this->script_tags = $this->array_merge_custom( $this->script_tags, $args['scripts'] );
|
195 |
-
}
|
196 |
-
}
|
197 |
-
|
198 |
-
// check for additional iframes
|
199 |
-
if ( ! empty( $args['iframes'] ) && is_array( $args['iframes'] ) ) {
|
200 |
-
// array is not multidimensional, backward compatibility, so assign block it
|
201 |
-
if ( ! is_array( reset( $args['iframes'] ) ) ) {
|
202 |
-
$this->auto_iframe_tags = array_merge( $this->auto_iframe_tags, $args['iframes'] );
|
203 |
-
// array is multidimensional, assign per purpose
|
204 |
-
} else {
|
205 |
-
// block unassigned script
|
206 |
-
if ( array_key_exists( 0, $args['iframes'] ) ) {
|
207 |
-
$this->auto_iframe_tags = array_merge( $this->auto_iframe_tags, $args['iframes'][0] );
|
208 |
-
unset( $args['iframes'][0] );
|
209 |
-
}
|
210 |
-
|
211 |
-
$this->iframe_tags = $this->array_merge_custom( $this->iframe_tags, $args['iframes'] );
|
212 |
-
}
|
213 |
-
}
|
214 |
-
|
215 |
-
// get script tags to block
|
216 |
-
$this->auto_script_tags = array_unique( self::get_script_tags() );
|
217 |
-
|
218 |
-
// get iframes tags to block
|
219 |
-
$this->auto_iframe_tags = array_unique( self::get_iframe_tags() );
|
220 |
}
|
221 |
|
222 |
/**
|
@@ -234,123 +199,45 @@ class iubendaParser {
|
|
234 |
* @return boolean
|
235 |
*/
|
236 |
static function consent_given() {
|
237 |
-
$consent_given = false;
|
238 |
-
|
239 |
foreach ( $_COOKIE as $key => $value ) {
|
240 |
-
|
241 |
-
|
242 |
-
if ( $found !== false ) {
|
243 |
-
$consent_data = json_decode( stripslashes( $value ), true );
|
244 |
-
|
245 |
-
// read cookie value if given
|
246 |
-
if ( isset( $consent_data['consent'] ) && $consent_data['consent'] == true )
|
247 |
-
$consent_given = true;
|
248 |
-
|
249 |
-
// read purposes if given
|
250 |
-
if ( ! empty( $consent_data['purposes'] ) && is_array( $consent_data['purposes'] ) ) {
|
251 |
-
// all purposes accepted, consent given
|
252 |
-
if ( ! in_array( false, $consent_data['purposes'] ) )
|
253 |
-
$consent_given = true;
|
254 |
-
}
|
255 |
-
}
|
256 |
}
|
257 |
|
258 |
-
return
|
259 |
}
|
260 |
|
261 |
/**
|
262 |
-
*
|
263 |
-
*
|
264 |
-
* @return array
|
265 |
-
*/
|
266 |
-
static function get_purposes() {
|
267 |
-
$purposes = array();
|
268 |
-
|
269 |
-
if ( ! empty( $_COOKIE ) ) {
|
270 |
-
foreach ( $_COOKIE as $key => $value ) {
|
271 |
-
$found = self::strpos_array( $key, array( '_iub_cs-s', '_iub_cs' ) );
|
272 |
-
|
273 |
-
if ( $found !== false ) {
|
274 |
-
$consent_data = json_decode( $value, true );
|
275 |
-
|
276 |
-
// read purposes if given
|
277 |
-
if ( ! empty( $consent_data['purposes'] ) && is_array( $consent_data['purposes'] ) )
|
278 |
-
$purposes = $consent_data['purposes'];
|
279 |
-
}
|
280 |
-
}
|
281 |
-
}
|
282 |
-
|
283 |
-
return $purposes;
|
284 |
-
}
|
285 |
-
|
286 |
-
/**
|
287 |
-
* Get script tags to be blocked.
|
288 |
-
*
|
289 |
-
* @return array
|
290 |
-
*/
|
291 |
-
private function get_script_tags() {
|
292 |
-
$tags = $this->auto_script_tags;
|
293 |
-
|
294 |
-
foreach ( $this->script_tags as $purpose_id => $tags_list ) {
|
295 |
-
// empty tags list, go to another
|
296 |
-
if ( empty( $tags_list ) )
|
297 |
-
continue;
|
298 |
-
|
299 |
-
// purposes available, filter per purpose
|
300 |
-
if ( ! empty( $this->purposes ) ) {
|
301 |
-
// don't block scripts unavailable in the user purposes
|
302 |
-
// if ( array_key_exists( $purpose_id, $this->purposes ) && $this->purposes[$purpose_id] == false ) {
|
303 |
-
|
304 |
-
// block scripts unavailable in the user purposes
|
305 |
-
if ( ! isset( $this->purposes[$purpose_id] ) || $this->purposes[$purpose_id] == false ) {
|
306 |
-
foreach ( $tags_list as $tag ) {
|
307 |
-
$tags[] = $tag;
|
308 |
-
}
|
309 |
-
}
|
310 |
-
// no purposes yet, just add all scripts
|
311 |
-
} else {
|
312 |
-
foreach ( $tags_list as $tag ) {
|
313 |
-
$tags[] = $tag;
|
314 |
-
}
|
315 |
-
}
|
316 |
-
}
|
317 |
-
|
318 |
-
return $tags;
|
319 |
-
}
|
320 |
-
|
321 |
-
/**
|
322 |
-
* Get iframe tags to be blocked.
|
323 |
*
|
324 |
-
* @
|
|
|
|
|
325 |
*/
|
326 |
-
|
327 |
-
$
|
|
|
328 |
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
//
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
// no purposes yet, just add all scripts
|
346 |
-
} else {
|
347 |
-
foreach ( $tags_list as $tag ) {
|
348 |
-
$tags[] = $tag;
|
349 |
-
}
|
350 |
}
|
351 |
}
|
352 |
-
|
353 |
-
return
|
354 |
}
|
355 |
|
356 |
/**
|
@@ -359,7 +246,7 @@ class iubendaParser {
|
|
359 |
* @param mixed $content
|
360 |
* @return mixed
|
361 |
*/
|
362 |
-
public function create_tags( $content
|
363 |
$elements = $content->find( "*" );
|
364 |
$js = '';
|
365 |
|
@@ -371,13 +258,6 @@ class iubendaParser {
|
|
371 |
|
372 |
switch ( $e->tag ) {
|
373 |
case 'script':
|
374 |
-
if ( $args['pattern'] === 'IUB_REGEX_PURPOSE_PATTERN' )
|
375 |
-
$e->{'data-iub-purposes'} = $args['number'];
|
376 |
-
|
377 |
-
// AMP support
|
378 |
-
if ( $this->amp )
|
379 |
-
$e->{'data-block-on-consent'} = '_till_accepted';
|
380 |
-
|
381 |
$class = $e->class;
|
382 |
$e->class = $class . ' ' . $this->iub_class;
|
383 |
$e->type = 'text/plain';
|
@@ -385,13 +265,6 @@ class iubendaParser {
|
|
385 |
break;
|
386 |
|
387 |
case 'iframe':
|
388 |
-
if ( $args['pattern'] === 'IUB_REGEX_PURPOSE_PATTERN' )
|
389 |
-
$e->{'data-iub-purposes'} = $args['number'];
|
390 |
-
|
391 |
-
// AMP support
|
392 |
-
if ( $this->amp )
|
393 |
-
$e->{'data-block-on-consent'} = '_till_accepted';
|
394 |
-
|
395 |
$new_src = $this->iub_empty;
|
396 |
$class = $e->class;
|
397 |
$e->suppressedsrc = $e->src;
|
@@ -401,7 +274,7 @@ class iubendaParser {
|
|
401 |
break;
|
402 |
|
403 |
default:
|
404 |
-
$js
|
405 |
break;
|
406 |
}
|
407 |
}
|
@@ -428,6 +301,11 @@ class iubendaParser {
|
|
428 |
|
429 |
switch ( $element->tag ) {
|
430 |
case 'script':
|
|
|
|
|
|
|
|
|
|
|
431 |
case 'iframe':
|
432 |
$class = trim( $element->class );
|
433 |
$element->class = ( $class !== '' ? $class . ' ' : '' ) . $this->iub_class_skip;
|
@@ -453,18 +331,15 @@ class iubendaParser {
|
|
453 |
public function parse_scripts() {
|
454 |
switch ( $this->type ) {
|
455 |
case 'page':
|
456 |
-
|
457 |
-
$html = str_get_html( $this->content_page, true, true, false );
|
458 |
|
459 |
if ( is_object( $html ) ) {
|
460 |
-
// get scripts
|
461 |
$scripts = $html->find( 'script' );
|
462 |
|
463 |
if ( is_array( $scripts ) ) {
|
464 |
$count = count( $scripts );
|
465 |
$class_skip = $this->iub_class_skip;
|
466 |
|
467 |
-
// loop through scripts
|
468 |
for ( $j = 0; $j < $count; $j ++ ) {
|
469 |
$s = $scripts[$j];
|
470 |
$script_class = trim( $s->class );
|
@@ -485,10 +360,8 @@ class iubendaParser {
|
|
485 |
|
486 |
if ( ! empty( $s->innertext ) ) {
|
487 |
$this->scripts_inline_detected[] = $s->innertext;
|
488 |
-
|
489 |
-
$found = self::strpos_array( $s->innertext, $this->auto_script_tags );
|
490 |
|
491 |
-
if ( $
|
492 |
$class = $s->class;
|
493 |
$s->class = $class . ' ' . $this->iub_class_inline;
|
494 |
$s->type = 'text/plain';
|
@@ -499,21 +372,11 @@ class iubendaParser {
|
|
499 |
|
500 |
if ( $src ) {
|
501 |
$this->scripts_detected[] = $src;
|
502 |
-
|
503 |
-
$found = self::strpos_array( $src, $this->auto_script_tags );
|
504 |
|
505 |
-
if ( $
|
506 |
$class = $s->class;
|
507 |
$s->class = $class . ' ' . $this->iub_class;
|
508 |
$s->type = 'text/plain';
|
509 |
-
|
510 |
-
// add data-iub-purposes attribute
|
511 |
-
$s->{'data-iub-purposes'} = $this->recursive_array_search( $found, $this->script_tags );
|
512 |
-
|
513 |
-
// AMP support
|
514 |
-
if ( $this->amp )
|
515 |
-
$s->{'data-block-on-consent'} = '_till_accepted';
|
516 |
-
|
517 |
$this->scripts_converted[] = $src;
|
518 |
}
|
519 |
}
|
@@ -660,30 +523,16 @@ class iubendaParser {
|
|
660 |
// add inline script as detected
|
661 |
if ( ! empty( $script->nodeValue ) )
|
662 |
$this->scripts_inline_detected[] = $script->nodeValue;
|
663 |
-
|
664 |
-
$found = self::strpos_array( $src, $script_tags );
|
665 |
-
$found_inline = self::strpos_array( $script->nodeValue, $script_tags );
|
666 |
|
667 |
-
if ( $
|
668 |
$script->setAttribute( 'type', 'text/plain' );
|
669 |
$script->setAttribute( 'class', $script->getAttribute( 'class' ) . ' ' . $class );
|
670 |
-
|
671 |
-
// add data-iub-purposes attribute
|
672 |
-
$script->setAttribute( 'data-iub-purposes', $this->recursive_array_search( $found, $this->script_tags ) );
|
673 |
-
|
674 |
-
// AMP support
|
675 |
-
if ( $this->amp )
|
676 |
-
$script->setAttribute( 'data-block-on-consent', '_till_accepted' );
|
677 |
|
678 |
// add script as converted
|
679 |
$this->scripts_converted[] = $src;
|
680 |
-
} elseif ( $
|
681 |
$script->setAttribute( 'type', 'text/plain' );
|
682 |
$script->setAttribute( 'class', $script->getAttribute( 'class' ) . ' ' . $class_inline );
|
683 |
-
|
684 |
-
// AMP support
|
685 |
-
if ( $this->amp )
|
686 |
-
$script->setAttribute( 'data-block-on-consent', '_till_accepted' );
|
687 |
|
688 |
// add inline script as converted
|
689 |
$this->scripts_inline_converted[] = $script->nodeValue;
|
@@ -711,7 +560,7 @@ class iubendaParser {
|
|
711 |
public function parse_iframes() {
|
712 |
switch ( $this->type ) {
|
713 |
case 'page':
|
714 |
-
$html = str_get_html( $this->content_page, true, true, false );
|
715 |
|
716 |
if ( is_object( $html ) ) {
|
717 |
$iframes = $html->find( 'iframe' );
|
@@ -738,21 +587,11 @@ class iubendaParser {
|
|
738 |
$src = $i->src;
|
739 |
$this->iframes_detected[] = $src;
|
740 |
|
741 |
-
|
742 |
-
|
743 |
-
if ( $found !== false ) {
|
744 |
$class = $i->class;
|
745 |
$i->suppressedsrc = $src;
|
746 |
$i->src = $this->iub_empty;
|
747 |
$i->class = $class . ' ' . $this->iub_class;
|
748 |
-
|
749 |
-
// add data-iub-purposes attribute
|
750 |
-
$i->{'data-iub-purposes'} = $this->recursive_array_search( $found, $this->iframe_tags );
|
751 |
-
|
752 |
-
// AMP support
|
753 |
-
if ( $this->amp )
|
754 |
-
$i->{'data-block-on-consent'} = '_till_accepted';
|
755 |
-
|
756 |
$this->iframes_converted[] = $src;
|
757 |
}
|
758 |
}
|
@@ -803,20 +642,11 @@ class iubendaParser {
|
|
803 |
|
804 |
// add iframe as detected
|
805 |
$this->iframes_detected[] = $src;
|
806 |
-
|
807 |
-
$found = self::strpos_array( $src, $iframe_tags );
|
808 |
|
809 |
-
if ( $
|
810 |
$iframe->setAttribute( 'src', $empty );
|
811 |
$iframe->setAttribute( 'suppressedsrc', $src );
|
812 |
$iframe->setAttribute( 'class', $iframe_class . ' ' . $class );
|
813 |
-
|
814 |
-
// per purpose, add data-iub-purposes attribute
|
815 |
-
$iframe->setAttribute( 'data-iub-purposes', $this->recursive_array_search( $found, $this->iframe_tags ) );
|
816 |
-
|
817 |
-
// AMP support
|
818 |
-
if ( $this->amp )
|
819 |
-
$iframe->setAttribute( 'data-block-on-consent', '_till_accepted' );
|
820 |
|
821 |
// add iframe as converted
|
822 |
$this->iframes_converted[] = $src;
|
@@ -855,7 +685,7 @@ class iubendaParser {
|
|
855 |
// get HTML dom from string
|
856 |
$html = str_get_html( $scripts[1][$j], true, true, false );
|
857 |
|
858 |
-
// skip scripts and iframes inside
|
859 |
$js_scripts[] = $this->skip_tags( $html );
|
860 |
}
|
861 |
|
@@ -866,40 +696,26 @@ class iubendaParser {
|
|
866 |
unset( $scripts );
|
867 |
|
868 |
// block
|
869 |
-
foreach ( array( 'IUB_REGEX_PATTERN', 'IUB_REGEX_PATTERN_2'
|
870 |
preg_match_all( constant( 'self::' . $pattern ), $this->content_page, $scripts );
|
871 |
|
872 |
-
$chunks = array();
|
873 |
-
$args = array(
|
874 |
-
'pattern' => $pattern
|
875 |
-
);
|
876 |
-
|
877 |
-
if ( $pattern === 'IUB_REGEX_PURPOSE_PATTERN' ) {
|
878 |
-
$numbers = $scripts[1];
|
879 |
-
$chunks = $scripts[2];
|
880 |
-
} else
|
881 |
-
$chunks = $scripts[1];
|
882 |
-
|
883 |
// found any content?
|
884 |
-
if ( is_array( $
|
885 |
-
$count = count( $
|
886 |
$js_scripts = array();
|
887 |
|
888 |
for ( $j = 0; $j < $count; $j++ ) {
|
889 |
-
$this->iub_comments_detected[] = $
|
890 |
|
891 |
// get HTML dom from string
|
892 |
-
$html = str_get_html( $
|
893 |
-
|
894 |
-
if ( $pattern === 'IUB_REGEX_PURPOSE_PATTERN' )
|
895 |
-
$args['number'] = $numbers[$j];
|
896 |
|
897 |
// convert scripts, iframes and other code inside IUBENDAs comment in text/plain to not generate cookies
|
898 |
-
$js_scripts[] = $this->create_tags( $html
|
899 |
}
|
900 |
|
901 |
-
if ( ( is_array( $
|
902 |
-
$this->content_page = strtr( $this->content_page, array_combine( $
|
903 |
}
|
904 |
}
|
905 |
}
|
@@ -937,88 +753,16 @@ class iubendaParser {
|
|
937 |
<script>
|
938 |
var iCallback = function(){};
|
939 |
|
940 |
-
if (
|
941 |
-
if (
|
942 |
iCallback = _iub.csConfiguration.callback.onConsentGiven;
|
943 |
|
944 |
_iub.csConfiguration.callback.onConsentGiven = function() {
|
945 |
iCallback();
|
946 |
|
947 |
-
jQuery(
|
948 |
};
|
949 |
};
|
950 |
</script>";
|
951 |
}
|
952 |
-
|
953 |
-
/**
|
954 |
-
* Static, utility function: strpos for array wilth wildcard support
|
955 |
-
*
|
956 |
-
* @param type $haystack
|
957 |
-
* @param type $needle
|
958 |
-
* @return boolean
|
959 |
-
*/
|
960 |
-
static function strpos_array( $haystack, $needle ) {
|
961 |
-
if ( empty( $haystack ) || empty( $needle ) )
|
962 |
-
return false;
|
963 |
-
|
964 |
-
$needle = ! is_array( $needle ) ? array( $needle ) : $needle;
|
965 |
-
|
966 |
-
foreach ( $needle as $need ) {
|
967 |
-
// wildcard?
|
968 |
-
if ( strpos( $need, '/*/' ) !== false ) {
|
969 |
-
// strtok - removes query string
|
970 |
-
// str_replace - removes double slashes // from url
|
971 |
-
// preg_replace - removes http or https from url
|
972 |
-
$haystack = strtok( str_replace( '//', '', preg_replace( "(^https?://)", "", $haystack ) ), '?' );
|
973 |
-
|
974 |
-
if ( fnmatch( $need, $haystack ) !== false )
|
975 |
-
return $need;
|
976 |
-
// regular
|
977 |
-
} else {
|
978 |
-
if ( strpos( $haystack, $need ) !== false )
|
979 |
-
return $need;
|
980 |
-
}
|
981 |
-
}
|
982 |
-
|
983 |
-
return false;
|
984 |
-
}
|
985 |
-
|
986 |
-
/**
|
987 |
-
* Custom array merge helper function.
|
988 |
-
*
|
989 |
-
* @return array
|
990 |
-
*/
|
991 |
-
public function array_merge_custom( $builtin, $data ) {
|
992 |
-
foreach ( $data as $type => $array ) {
|
993 |
-
// if ( $type === 0 )
|
994 |
-
// continue;
|
995 |
-
|
996 |
-
foreach ( $array as $block ) {
|
997 |
-
$builtin[$type][] = $block;
|
998 |
-
}
|
999 |
-
|
1000 |
-
$builtin[$type] = array_unique( $builtin[$type] );
|
1001 |
-
}
|
1002 |
-
|
1003 |
-
return $builtin;
|
1004 |
-
}
|
1005 |
-
|
1006 |
-
/**
|
1007 |
-
* Array search helper function.
|
1008 |
-
*
|
1009 |
-
* @param type $needle
|
1010 |
-
* @param type $haystack
|
1011 |
-
* @return boolean
|
1012 |
-
*/
|
1013 |
-
public function recursive_array_search( $needle, $haystack ) {
|
1014 |
-
foreach ( $haystack as $key => $value ) {
|
1015 |
-
$current_key = $key;
|
1016 |
-
if ( $needle === $value OR ( is_array( $value ) &&
|
1017 |
-
$this->recursive_array_search( $needle, $value ) !== false) ) {
|
1018 |
-
return $current_key;
|
1019 |
-
}
|
1020 |
-
}
|
1021 |
-
return false;
|
1022 |
-
}
|
1023 |
-
|
1024 |
}
|
3 |
* iubenda.class.php
|
4 |
*
|
5 |
* @author iubenda s.r.l
|
6 |
+
* @copyright 2018-2019, iubenda s.r.l
|
7 |
* @license GNU/GPL
|
8 |
+
* @version 3.4.0
|
9 |
* @deprecated
|
10 |
*
|
11 |
* This program is free software: you can redistribute it and/or modify
|
27 |
// variables
|
28 |
const IUB_REGEX_PATTERN = '/<!--\s*IUB_COOKIE_POLICY_START\s*-->(.*?)<!--\s*IUB_COOKIE_POLICY_END\s*-->/s';
|
29 |
const IUB_REGEX_PATTERN_2 = '/<!--\s*IUB-COOKIE-BLOCK-START\s*-->(.*?)<!--\s*IUB-COOKIE-BLOCK-END\s*-->/s';
|
|
|
30 |
const IUB_REGEX_SKIP_PATTERN = '/<!--\s*IUB-COOKIE-BLOCK-SKIP-START\s*-->(.*?)<!--\s*IUB-COOKIE-BLOCK-SKIP-END\s*-->/s';
|
31 |
|
32 |
// scripts
|
33 |
+
public $auto_script_tags = array(
|
34 |
+
// google
|
35 |
+
'apis.google.com/js/plusone.js',
|
36 |
+
'apis.google.com/js/client/plusone.js',
|
37 |
+
'apis.google.com/js/platform.js',
|
38 |
+
'apis.google.com/js/api.js', // oauth
|
39 |
+
'cse.google.com/cse.js', // site search
|
40 |
+
'googlesyndication.com/pagead/js/adsbygoogle.js',
|
41 |
+
'googlesyndication.com/pagead/show_ads.js',
|
42 |
+
'googleadservices.com/pagead/conversion.js',
|
43 |
+
'googletagmanager.com/gtm.js',
|
44 |
+
'www.googletagmanager.com/gtag/js',
|
45 |
+
'google.com/recaptcha/',
|
46 |
+
'www.youtube.com/iframe_api',
|
47 |
+
'youtu.be',
|
48 |
+
'window.adsbygoogle',
|
49 |
+
// twitter
|
50 |
+
'platform.twitter.com/widgets.js',
|
51 |
+
'static.ads-twitter.com',
|
52 |
+
// facebook
|
53 |
+
'connect.facebook.net',
|
54 |
+
// instagram
|
55 |
+
'instawidget.net/js/instawidget.js',
|
56 |
+
// sharethis
|
57 |
+
'sharethis.com/button/buttons.js',
|
58 |
+
// addthis
|
59 |
+
'addthis.com/js/',
|
60 |
+
// disqus
|
61 |
+
'disqus.com/embed.js',
|
62 |
+
// linkedin
|
63 |
+
'platform.linkedin.com/in.js',
|
64 |
+
// scorecardresearch
|
65 |
+
'scorecardresearch.com/beacon.js',
|
66 |
+
// neodata
|
67 |
+
'neodatagroup.com',
|
68 |
+
// criteo
|
69 |
+
'static.criteo.net/js/',
|
70 |
+
// adagio
|
71 |
+
'adagionet.com/uploads/js/sipra.js',
|
72 |
+
// rainbowtgx
|
73 |
+
'cdn-wx.rainbowtgx.com/rtgx.js',
|
74 |
+
// pinterest
|
75 |
+
'pinterest.com/js/pinit.js',
|
76 |
+
// linkpulse
|
77 |
+
'lp4.io',
|
78 |
+
// optimizely
|
79 |
+
'cdn.optimizely.com/js/',
|
80 |
+
// getsatisfaction
|
81 |
+
'loader.engage.gsfn.us/loader.js',
|
82 |
+
// outbrain
|
83 |
+
'outbrain.js',
|
84 |
+
// headway
|
85 |
+
'headwayapp.co/widget.js',
|
86 |
+
// codepen
|
87 |
+
'codepen.io',
|
88 |
+
// freshchat
|
89 |
+
'wchat.freshchat.com',
|
90 |
+
// uservoice
|
91 |
+
'widget.uservoice.com',
|
92 |
+
'UserVoice.push',
|
93 |
+
// adroll
|
94 |
+
's.adroll.com',
|
95 |
+
// olark
|
96 |
+
'static.olark.com/jsclient/loader0.js',
|
97 |
+
// cxense
|
98 |
+
'scdn.cxense.com',
|
99 |
+
// segment
|
100 |
+
'cdn.segment.io/analytics.js',
|
101 |
+
'cdn.segment.com/analytics.js',
|
102 |
+
// kissmetrics
|
103 |
+
'i.kissmetrics.com/i.js',
|
104 |
+
// mixpanel
|
105 |
+
'cdn.mxpnl.com',
|
106 |
+
// pingdom
|
107 |
+
'rum-static.pingdom.net/prum.min.js',
|
108 |
+
// bing
|
109 |
+
'bat.bing.com',
|
110 |
+
// elevio
|
111 |
+
'cdn.elev.io',
|
112 |
+
// paypal
|
113 |
+
'paypalobjects.com/js/external/api.js', // paypal login
|
114 |
+
'paypalobjects.com/api/checkout.js', // paypal checkout
|
115 |
+
);
|
116 |
|
117 |
// iframes
|
118 |
+
public $auto_iframe_tags = array(
|
119 |
+
// google
|
120 |
+
'apis.google.com',
|
121 |
+
'maps.google.it/maps',
|
122 |
+
'maps.google.com/maps',
|
123 |
+
'www.google.com/maps/embed',
|
124 |
+
'googletagmanager.com/ns.html',
|
125 |
+
'window.adsbygoogle',
|
126 |
+
// youtube
|
127 |
+
'youtube.com',
|
128 |
+
// twitter
|
129 |
+
'platform.twitter.com',
|
130 |
+
// facebook
|
131 |
+
'www.facebook.com/plugins/like.php',
|
132 |
+
'www.facebook.com/*/plugins/like.php',
|
133 |
+
'www.facebook.com/plugins/likebox.php',
|
134 |
+
'www.facebook.com/*/plugins/likebox.php',
|
135 |
+
// vimeo
|
136 |
+
'player.vimeo.com',
|
137 |
+
// 4w
|
138 |
+
'4wnet.com'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
139 |
);
|
140 |
|
141 |
private $type = 'page';
|
|
|
142 |
public $iub_comments_detected = array();
|
143 |
public $skipped_comments_detected = array();
|
144 |
public $iframes_skipped = array();
|
162 |
* @param array $args
|
163 |
*/
|
164 |
public function __construct( $content_page = '', $args = array() ) {
|
165 |
+
// check scripts
|
166 |
+
if ( ! empty( $args['scripts'] ) && is_array( $args['scripts'] ) ) {
|
167 |
+
$this->auto_script_tags = array_unique( array_merge( $this->auto_script_tags, $args['scripts'] ) );
|
168 |
+
}
|
169 |
+
|
170 |
+
// check iframes
|
171 |
+
if ( ! empty( $args['iframes'] ) && is_array( $args['iframes'] ) ) {
|
172 |
+
$this->auto_iframe_tags = array_unique( array_merge( $this->auto_iframe_tags, $args['iframes'] ) );
|
173 |
+
}
|
174 |
+
|
175 |
// valid type?
|
176 |
$this->type = ! empty( $args['type'] ) && in_array( $args['type'], array( 'page', 'faster' ), true ) ? $args['type'] : 'page';
|
|
|
|
|
|
|
177 |
|
178 |
// load Simple HTML DOM if needed
|
179 |
if ( ! function_exists( 'file_get_html' ) || ! function_exists( 'str_get_html' ) )
|
182 |
// set content
|
183 |
$this->original_content_page = $content_page;
|
184 |
$this->content_page = $content_page;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
185 |
}
|
186 |
|
187 |
/**
|
199 |
* @return boolean
|
200 |
*/
|
201 |
static function consent_given() {
|
|
|
|
|
202 |
foreach ( $_COOKIE as $key => $value ) {
|
203 |
+
if ( self::strpos_array( $key, array( '_iub_cs-s', '_iub_cs' ) ) )
|
204 |
+
return true;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
205 |
}
|
206 |
|
207 |
+
return false;
|
208 |
}
|
209 |
|
210 |
/**
|
211 |
+
* Static, utility function: strpos for array wilth wildcard support
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
212 |
*
|
213 |
+
* @param type $haystack
|
214 |
+
* @param type $needle
|
215 |
+
* @return boolean
|
216 |
*/
|
217 |
+
static function strpos_array( $haystack, $needle ) {
|
218 |
+
if ( empty( $haystack ) || empty( $needle ) )
|
219 |
+
return false;
|
220 |
|
221 |
+
$needle = ! is_array( $needle ) ? array( $needle ) : $needle;
|
222 |
+
|
223 |
+
foreach ( $needle as $need ) {
|
224 |
+
// wildcard?
|
225 |
+
if ( strpos( $need, '/*/' ) !== false ) {
|
226 |
+
// strtok - removes query string
|
227 |
+
// str_replace - removes double slashes // from url
|
228 |
+
// preg_replace - removes http or https from url
|
229 |
+
$haystack = strtok( str_replace( '//', '', preg_replace( "(^https?://)", "", $haystack ) ), '?' );
|
230 |
+
|
231 |
+
if ( fnmatch( $need, $haystack ) !== false )
|
232 |
+
return true;
|
233 |
+
// regular
|
234 |
+
} else {
|
235 |
+
if ( strpos( $haystack, $need ) !== false )
|
236 |
+
return true;
|
|
|
|
|
|
|
|
|
|
|
237 |
}
|
238 |
}
|
239 |
+
|
240 |
+
return false;
|
241 |
}
|
242 |
|
243 |
/**
|
246 |
* @param mixed $content
|
247 |
* @return mixed
|
248 |
*/
|
249 |
+
public function create_tags( $content ) {
|
250 |
$elements = $content->find( "*" );
|
251 |
$js = '';
|
252 |
|
258 |
|
259 |
switch ( $e->tag ) {
|
260 |
case 'script':
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
261 |
$class = $e->class;
|
262 |
$e->class = $class . ' ' . $this->iub_class;
|
263 |
$e->type = 'text/plain';
|
265 |
break;
|
266 |
|
267 |
case 'iframe':
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
268 |
$new_src = $this->iub_empty;
|
269 |
$class = $e->class;
|
270 |
$e->suppressedsrc = $e->src;
|
274 |
break;
|
275 |
|
276 |
default:
|
277 |
+
$js = $e->outertext;
|
278 |
break;
|
279 |
}
|
280 |
}
|
301 |
|
302 |
switch ( $element->tag ) {
|
303 |
case 'script':
|
304 |
+
$class = trim( $element->class );
|
305 |
+
$element->class = ( $class !== '' ? $class . ' ' : '' ) . $this->iub_class_skip;
|
306 |
+
$js .= $element->outertext;
|
307 |
+
break;
|
308 |
+
|
309 |
case 'iframe':
|
310 |
$class = trim( $element->class );
|
311 |
$element->class = ( $class !== '' ? $class . ' ' : '' ) . $this->iub_class_skip;
|
331 |
public function parse_scripts() {
|
332 |
switch ( $this->type ) {
|
333 |
case 'page':
|
334 |
+
$html = str_get_html( $this->content_page, $lowercase = true, $force_tags_closed = true, $strip = false );
|
|
|
335 |
|
336 |
if ( is_object( $html ) ) {
|
|
|
337 |
$scripts = $html->find( 'script' );
|
338 |
|
339 |
if ( is_array( $scripts ) ) {
|
340 |
$count = count( $scripts );
|
341 |
$class_skip = $this->iub_class_skip;
|
342 |
|
|
|
343 |
for ( $j = 0; $j < $count; $j ++ ) {
|
344 |
$s = $scripts[$j];
|
345 |
$script_class = trim( $s->class );
|
360 |
|
361 |
if ( ! empty( $s->innertext ) ) {
|
362 |
$this->scripts_inline_detected[] = $s->innertext;
|
|
|
|
|
363 |
|
364 |
+
if ( self::strpos_array( $s->innertext, $this->auto_script_tags ) !== false ) {
|
365 |
$class = $s->class;
|
366 |
$s->class = $class . ' ' . $this->iub_class_inline;
|
367 |
$s->type = 'text/plain';
|
372 |
|
373 |
if ( $src ) {
|
374 |
$this->scripts_detected[] = $src;
|
|
|
|
|
375 |
|
376 |
+
if ( self::strpos_array( $src, $this->auto_script_tags ) !== false ) {
|
377 |
$class = $s->class;
|
378 |
$s->class = $class . ' ' . $this->iub_class;
|
379 |
$s->type = 'text/plain';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
380 |
$this->scripts_converted[] = $src;
|
381 |
}
|
382 |
}
|
523 |
// add inline script as detected
|
524 |
if ( ! empty( $script->nodeValue ) )
|
525 |
$this->scripts_inline_detected[] = $script->nodeValue;
|
|
|
|
|
|
|
526 |
|
527 |
+
if ( self::strpos_array( $src, $script_tags ) ) {
|
528 |
$script->setAttribute( 'type', 'text/plain' );
|
529 |
$script->setAttribute( 'class', $script->getAttribute( 'class' ) . ' ' . $class );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
530 |
|
531 |
// add script as converted
|
532 |
$this->scripts_converted[] = $src;
|
533 |
+
} elseif ( self::strpos_array( $script->nodeValue, $script_tags ) ) {
|
534 |
$script->setAttribute( 'type', 'text/plain' );
|
535 |
$script->setAttribute( 'class', $script->getAttribute( 'class' ) . ' ' . $class_inline );
|
|
|
|
|
|
|
|
|
536 |
|
537 |
// add inline script as converted
|
538 |
$this->scripts_inline_converted[] = $script->nodeValue;
|
560 |
public function parse_iframes() {
|
561 |
switch ( $this->type ) {
|
562 |
case 'page':
|
563 |
+
$html = str_get_html( $this->content_page, $lowercase = true, $force_tags_closed = true, $strip = false );
|
564 |
|
565 |
if ( is_object( $html ) ) {
|
566 |
$iframes = $html->find( 'iframe' );
|
587 |
$src = $i->src;
|
588 |
$this->iframes_detected[] = $src;
|
589 |
|
590 |
+
if ( self::strpos_array( $src, $this->auto_iframe_tags ) !== false ) {
|
|
|
|
|
591 |
$class = $i->class;
|
592 |
$i->suppressedsrc = $src;
|
593 |
$i->src = $this->iub_empty;
|
594 |
$i->class = $class . ' ' . $this->iub_class;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
595 |
$this->iframes_converted[] = $src;
|
596 |
}
|
597 |
}
|
642 |
|
643 |
// add iframe as detected
|
644 |
$this->iframes_detected[] = $src;
|
|
|
|
|
645 |
|
646 |
+
if ( self::strpos_array( $src, $iframe_tags ) ) {
|
647 |
$iframe->setAttribute( 'src', $empty );
|
648 |
$iframe->setAttribute( 'suppressedsrc', $src );
|
649 |
$iframe->setAttribute( 'class', $iframe_class . ' ' . $class );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
650 |
|
651 |
// add iframe as converted
|
652 |
$this->iframes_converted[] = $src;
|
685 |
// get HTML dom from string
|
686 |
$html = str_get_html( $scripts[1][$j], true, true, false );
|
687 |
|
688 |
+
// skip scripts and iframes inside IUBENDAs comments
|
689 |
$js_scripts[] = $this->skip_tags( $html );
|
690 |
}
|
691 |
|
696 |
unset( $scripts );
|
697 |
|
698 |
// block
|
699 |
+
foreach ( array( 'IUB_REGEX_PATTERN', 'IUB_REGEX_PATTERN_2' ) as $pattern ) {
|
700 |
preg_match_all( constant( 'self::' . $pattern ), $this->content_page, $scripts );
|
701 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
702 |
// found any content?
|
703 |
+
if ( is_array( $scripts[1] ) ) {
|
704 |
+
$count = count( $scripts[1] );
|
705 |
$js_scripts = array();
|
706 |
|
707 |
for ( $j = 0; $j < $count; $j++ ) {
|
708 |
+
$this->iub_comments_detected[] = $scripts[1][$j];
|
709 |
|
710 |
// get HTML dom from string
|
711 |
+
$html = str_get_html( $scripts[1][$j], $lowercase = true, $force_tags_closed = true, $strip = false );
|
|
|
|
|
|
|
712 |
|
713 |
// convert scripts, iframes and other code inside IUBENDAs comment in text/plain to not generate cookies
|
714 |
+
$js_scripts[] = $this->create_tags( $html );
|
715 |
}
|
716 |
|
717 |
+
if ( ( is_array( $scripts[1] ) && is_array( $js_scripts ) ) && ( $count >= 1 && count( $js_scripts ) >= 1 ) )
|
718 |
+
$this->content_page = strtr( $this->content_page, array_combine( $scripts[1], $js_scripts ) );
|
719 |
}
|
720 |
}
|
721 |
}
|
753 |
<script>
|
754 |
var iCallback = function(){};
|
755 |
|
756 |
+
if ('callback' in _iub.csConfiguration) {
|
757 |
+
if ('onConsentGiven' in _iub.csConfiguration.callback)
|
758 |
iCallback = _iub.csConfiguration.callback.onConsentGiven;
|
759 |
|
760 |
_iub.csConfiguration.callback.onConsentGiven = function() {
|
761 |
iCallback();
|
762 |
|
763 |
+
jQuery('noscript._no_script_iub').each(function (a, b) { var el = jQuery(b); el.after(el.html()); });
|
764 |
};
|
765 |
};
|
766 |
</script>";
|
767 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
768 |
}
|
iubenda_cookie_solution.php
CHANGED
@@ -1,25 +1,25 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
|
14 |
-
|
15 |
-
|
16 |
|
17 |
-
|
18 |
|
19 |
-
|
20 |
|
21 |
-
|
22 |
-
|
23 |
|
24 |
// exit if accessed directly
|
25 |
if ( ! defined( 'ABSPATH' ) )
|
@@ -32,14 +32,14 @@ define( 'IUB_DEBUG', false );
|
|
32 |
* iubenda final class.
|
33 |
*
|
34 |
* @class iubenda
|
35 |
-
* @version 2.
|
36 |
*/
|
37 |
class iubenda {
|
38 |
|
39 |
private static $instance;
|
40 |
public $options = array();
|
41 |
public $defaults = array(
|
42 |
-
'cs'
|
43 |
'parse' => false, // iubenda_parse
|
44 |
'skip_parsing' => true, // skip_parsing
|
45 |
'ctype' => true, // iubenda_ctype
|
@@ -49,20 +49,16 @@ class iubenda {
|
|
49 |
'output_post' => true,
|
50 |
'code_default' => false, // iubenda-code-default,
|
51 |
'menu_position' => 'topmenu',
|
52 |
-
'amp_support' => false,
|
53 |
-
'amp_source' => 'local',
|
54 |
-
'amp_template_done' => false,
|
55 |
-
'amp_template' => '',
|
56 |
'custom_scripts' => array(),
|
57 |
'custom_iframes' => array(),
|
58 |
'deactivation' => false
|
59 |
),
|
60 |
-
'cons'
|
61 |
'public_api_key' => '',
|
62 |
)
|
63 |
);
|
64 |
public $base_url;
|
65 |
-
public $version = '2.
|
66 |
public $no_html = false;
|
67 |
public $multilang = false;
|
68 |
public $languages = array();
|
@@ -71,16 +67,12 @@ class iubenda {
|
|
71 |
/**
|
72 |
* Disable object clone.
|
73 |
*/
|
74 |
-
private function __clone() {
|
75 |
-
|
76 |
-
}
|
77 |
|
78 |
/**
|
79 |
* Disable unserializing of the class.
|
80 |
*/
|
81 |
-
private function __wakeup() {
|
82 |
-
|
83 |
-
}
|
84 |
|
85 |
/**
|
86 |
* Main plugin instance,
|
@@ -99,7 +91,6 @@ class iubenda {
|
|
99 |
|
100 |
self::$instance->includes();
|
101 |
|
102 |
-
self::$instance->AMP = new iubenda_AMP();
|
103 |
self::$instance->forms = new iubenda_Forms();
|
104 |
self::$instance->settings = new iubenda_Settings();
|
105 |
}
|
@@ -120,37 +111,14 @@ class iubenda {
|
|
120 |
|
121 |
$this->base_url = esc_url_raw( add_query_arg( 'page', 'iubenda', admin_url( $this->options['cs']['menu_position'] === 'submenu' ? 'options-general.php' : 'admin.php' ) ) );
|
122 |
|
123 |
-
// check old custom scripts
|
124 |
-
if ( ! empty( $this->options['cs']['custom_scripts'] ) && is_array( $this->options['cs']['custom_scripts'] ) && ! is_int( reset( $this->options['cs']['custom_scripts'] ) ) ) {
|
125 |
-
$data = array();
|
126 |
-
|
127 |
-
foreach ( $this->options['cs']['custom_scripts'] as $script ) {
|
128 |
-
$data[$script] = 0;
|
129 |
-
}
|
130 |
-
|
131 |
-
$this->options['cs']['custom_scripts'] = $data;
|
132 |
-
}
|
133 |
-
|
134 |
-
// check old custom iframes
|
135 |
-
if ( ! empty( $this->options['cs']['custom_iframes'] ) && is_array( $this->options['cs']['custom_iframes'] ) && ! is_int( reset( $this->options['cs']['custom_iframes'] ) ) ) {
|
136 |
-
$data = array();
|
137 |
-
|
138 |
-
foreach ( $this->options['cs']['custom_iframes'] as $iframe ) {
|
139 |
-
$data[$iframe] = 0;
|
140 |
-
}
|
141 |
-
|
142 |
-
$this->options['cs']['custom_iframes'] = $data;
|
143 |
-
}
|
144 |
-
|
145 |
// actions
|
146 |
add_action( 'after_setup_theme', array( $this, 'register_shortcode' ) );
|
147 |
add_action( 'wp_head', array( $this, 'wp_head_cs' ), 0 );
|
148 |
add_action( 'wp_head', array( $this, 'wp_head_cons' ), 1 );
|
|
|
149 |
add_action( 'template_redirect', array( $this, 'output_start' ), 0 );
|
150 |
add_action( 'shutdown', array( $this, 'output_end' ), 100 );
|
151 |
add_action( 'template_redirect', array( $this, 'disable_jetpack_tracking' ) );
|
152 |
-
add_action( 'admin_init', array( $this, 'maybe_do_upgrade' ) );
|
153 |
-
add_action( 'upgrader_process_complete', array( $this, 'upgrade' ), 10, 2 );
|
154 |
}
|
155 |
|
156 |
/**
|
@@ -172,7 +140,6 @@ class iubenda {
|
|
172 |
private function includes() {
|
173 |
include_once( IUBENDA_PLUGIN_PATH . 'includes/settings.php' );
|
174 |
include_once( IUBENDA_PLUGIN_PATH . 'includes/forms.php' );
|
175 |
-
include_once( IUBENDA_PLUGIN_PATH . 'includes/amp.php' );
|
176 |
}
|
177 |
|
178 |
/**
|
@@ -199,7 +166,7 @@ class iubenda {
|
|
199 |
// get default language
|
200 |
$this->lang_default = pll_default_language();
|
201 |
|
202 |
-
|
203 |
} elseif ( is_plugin_active( 'sitepress-multilingual-cms/sitepress.php' ) && class_exists( 'SitePress' ) ) {
|
204 |
$this->multilang = true;
|
205 |
|
@@ -227,8 +194,6 @@ class iubenda {
|
|
227 |
* @return void
|
228 |
*/
|
229 |
public function activation() {
|
230 |
-
set_transient( 'iub_activation_completed', 1, 3600 );
|
231 |
-
|
232 |
add_option( 'iubenda_cookie_law_solution', $this->options['cs'], '', 'no' );
|
233 |
add_option( 'iubenda_cookie_law_solution', $this->options['cons'], '', 'no' );
|
234 |
add_option( 'iubenda_cookie_law_version', $this->version, '', 'no' );
|
@@ -248,27 +213,6 @@ class iubenda {
|
|
248 |
}
|
249 |
}
|
250 |
|
251 |
-
/**
|
252 |
-
* Plugin upgrae.
|
253 |
-
*
|
254 |
-
* @return void
|
255 |
-
*/
|
256 |
-
public function upgrade( $upgrader_object, $option ) {
|
257 |
-
// the path to our plugin's main file
|
258 |
-
$our_plugin = plugin_basename( __FILE__ );
|
259 |
-
|
260 |
-
// if an update has taken place and the updated type is plugins and the plugins element exists
|
261 |
-
if ( $options['action'] == 'update' && $options['type'] == 'plugin' && isset( $options['plugins'] ) ) {
|
262 |
-
// iterate through the plugins being updated and check if ours is there
|
263 |
-
foreach ( $options['plugins'] as $plugin ) {
|
264 |
-
if ( $plugin == $our_plugin ) {
|
265 |
-
// set a transient to record that our plugin has just been updated
|
266 |
-
set_transient( 'iub_upgrade_completed', 1, 3600 );
|
267 |
-
}
|
268 |
-
}
|
269 |
-
}
|
270 |
-
}
|
271 |
-
|
272 |
/**
|
273 |
* Load textdomain.
|
274 |
*
|
@@ -317,7 +261,6 @@ class iubenda {
|
|
317 |
* @return mixed
|
318 |
*/
|
319 |
public function wp_head_cs() {
|
320 |
-
|
321 |
// check content type
|
322 |
if ( (bool) $this->options['cs']['ctype'] == true ) {
|
323 |
$iub_headers = headers_list();
|
@@ -339,7 +282,7 @@ class iubenda {
|
|
339 |
return;
|
340 |
|
341 |
// initial head output
|
342 |
-
$iubenda_code =
|
343 |
|
344 |
if ( $this->multilang === true && defined( 'ICL_LANGUAGE_CODE' ) && isset( $this->options['cs']['code_' . ICL_LANGUAGE_CODE] ) ) {
|
345 |
$iubenda_code .= $this->options['cs']['code_' . ICL_LANGUAGE_CODE];
|
@@ -386,9 +329,9 @@ class iubenda {
|
|
386 |
if ( ! empty( $this->options['cons']['public_api_key'] ) ) {
|
387 |
|
388 |
$parameters = apply_filters( 'iubenda_cons_init_parameters', array(
|
389 |
-
'log_level'
|
390 |
-
'logger'
|
391 |
-
'send_from_local'
|
392 |
) );
|
393 |
|
394 |
echo '<!-- Library initialization -->
|
@@ -412,6 +355,38 @@ class iubenda {
|
|
412 |
}
|
413 |
}
|
414 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
415 |
/**
|
416 |
* Initialize html output.
|
417 |
*
|
@@ -440,9 +415,13 @@ class iubenda {
|
|
440 |
*/
|
441 |
public function output_callback( $output ) {
|
442 |
// check whether to run parser or not
|
|
|
443 |
// bail on ajax, xmlrpc or iub_no_parse request
|
444 |
if (
|
445 |
-
|
|
|
|
|
|
|
446 |
)
|
447 |
return $output;
|
448 |
|
@@ -477,41 +456,27 @@ class iubenda {
|
|
477 |
|
478 |
// google recaptcha v3 compatibility
|
479 |
if ( class_exists( 'WPCF7' ) && (int) WPCF7::get_option( 'iqfix_recaptcha' ) === 0 && ! iubendaParser::consent_given() )
|
480 |
-
$this->options['cs']['custom_scripts'][
|
481 |
|
482 |
// Jetpack compatibility
|
483 |
if ( class_exists( 'Jetpack' ) )
|
484 |
-
$this->options['cs']['custom_scripts']['stats.wp.com'
|
485 |
|
486 |
$startime = microtime( true );
|
487 |
$output = apply_filters( 'iubenda_initial_output', $output );
|
488 |
|
489 |
-
// prepare scripts and iframes
|
490 |
-
$scripts = $this->prepare_custom_data( $this->options['cs']['custom_scripts'] );
|
491 |
-
$iframes = $this->prepare_custom_data( $this->options['cs']['custom_iframes'] );
|
492 |
-
|
493 |
// experimental class
|
494 |
if ( $this->options['cs']['parser_engine'] == 'new' ) {
|
495 |
-
$iubenda = new iubendaParser( mb_convert_encoding( $output, 'HTML-ENTITIES', 'UTF-8' ), array(
|
496 |
-
'type' => 'faster',
|
497 |
-
'amp' => $this->options['cs']['amp_support'],
|
498 |
-
'scripts' => $scripts,
|
499 |
-
'iframes' => $iframes
|
500 |
-
) );
|
501 |
|
502 |
// render output
|
503 |
$output = $iubenda->parse();
|
504 |
|
505 |
// append signature
|
506 |
$output .= '<!-- Parsed with iubenda experimental class in ' . round( microtime( true ) - $startime, 4 ) . ' sec. -->';
|
507 |
-
|
508 |
} else {
|
509 |
-
$iubenda = new iubendaParser( $output, array(
|
510 |
-
'type' => 'page',
|
511 |
-
'amp' => $this->options['cs']['amp_support'],
|
512 |
-
'scripts' => $scripts,
|
513 |
-
'iframes' => $iframes
|
514 |
-
) );
|
515 |
|
516 |
// render output
|
517 |
$output = $iubenda->parse();
|
@@ -523,25 +488,6 @@ class iubenda {
|
|
523 |
return apply_filters( 'iubenda_final_output', $output );
|
524 |
}
|
525 |
|
526 |
-
/**
|
527 |
-
* Prepare scripts/iframes.
|
528 |
-
*
|
529 |
-
* @param array $data
|
530 |
-
* @return array
|
531 |
-
*/
|
532 |
-
public function prepare_custom_data( $data ) {
|
533 |
-
$newdata = array();
|
534 |
-
|
535 |
-
foreach ( $data as $script => $type ) {
|
536 |
-
if ( ! array_key_exists( $type, $newdata ) )
|
537 |
-
$newdata[$type] = array();
|
538 |
-
|
539 |
-
$newdata[$type][] = $script;
|
540 |
-
}
|
541 |
-
|
542 |
-
return $newdata;
|
543 |
-
}
|
544 |
-
|
545 |
/**
|
546 |
* Parse iubenda code.
|
547 |
*
|
@@ -586,11 +532,12 @@ class iubenda {
|
|
586 |
if ( ! class_exists( 'Jetpack' ) )
|
587 |
return;
|
588 |
|
589 |
-
|
590 |
-
if ( !
|
591 |
return;
|
592 |
|
593 |
// if ( is_feed() || is_robots() || is_trackback() || is_preview() || jetpack_is_dnt_enabled() )
|
|
|
594 |
// bail if skripts blocking disabled
|
595 |
if ( ! $this->options['cs']['parse'] )
|
596 |
return;
|
@@ -603,148 +550,6 @@ class iubenda {
|
|
603 |
remove_action( 'wp_footer', 'stats_footer', 101 );
|
604 |
}
|
605 |
|
606 |
-
/**
|
607 |
-
* Perform actions on plugin installation/upgrade.
|
608 |
-
*
|
609 |
-
* @return void
|
610 |
-
*/
|
611 |
-
public function maybe_do_upgrade() {
|
612 |
-
|
613 |
-
// bail if no activation or upgrade transient is set
|
614 |
-
if ( ! get_transient( 'iub_upgrade_completed' ) && ! get_transient( 'iub_activation_completed' ) )
|
615 |
-
return;
|
616 |
-
|
617 |
-
// delete the activation transient
|
618 |
-
delete_transient( 'iub_activation_completed' );
|
619 |
-
// delete the upgrade transient
|
620 |
-
delete_transient( 'iub_upgrade_completed' );
|
621 |
-
|
622 |
-
// bail if activating from network, or bulk, or within an iFrame
|
623 |
-
if ( is_network_admin() || isset( $_GET['activate-multi'] ) || defined( 'IFRAME_REQUEST' ) )
|
624 |
-
return;
|
625 |
-
|
626 |
-
// generate AMP template file if AMP plugins available
|
627 |
-
if ( function_exists( 'is_amp_endpoint' ) || function_exists( 'ampforwp_is_amp_endpoint' ) ) {
|
628 |
-
iubenda()->AMP->generate_amp_template();
|
629 |
-
}
|
630 |
-
}
|
631 |
-
|
632 |
-
/**
|
633 |
-
* Get configuration data parsed from iubenda code
|
634 |
-
*
|
635 |
-
* @return array
|
636 |
-
*/
|
637 |
-
public function parse_configuration( $mode = true ) {
|
638 |
-
$mode = ! empty( $mode ) ? 'full' : 'basic';
|
639 |
-
$data = array();
|
640 |
-
|
641 |
-
// get iubenda code
|
642 |
-
$iubenda_code = '';
|
643 |
-
|
644 |
-
if ( $this->multilang === true && defined( 'ICL_LANGUAGE_CODE' ) && isset( $this->options['cs']['code_' . ICL_LANGUAGE_CODE] ) ) {
|
645 |
-
$iubenda_code .= $this->options['cs']['code_' . ICL_LANGUAGE_CODE];
|
646 |
-
|
647 |
-
// no code for current language, use default
|
648 |
-
if ( ! $iubenda_code )
|
649 |
-
$iubenda_code .= $this->options['cs']['code_default'];
|
650 |
-
} else {
|
651 |
-
$iubenda_code .= $this->options['cs']['code_default'];
|
652 |
-
}
|
653 |
-
|
654 |
-
// get site data
|
655 |
-
if ( ! empty( $iubenda_code ) ) {
|
656 |
-
$parsed_code = $this->parse_code( $iubenda_code, true );
|
657 |
-
|
658 |
-
// strip tags
|
659 |
-
$parsed_code = wp_kses( $parsed_code, array() );
|
660 |
-
|
661 |
-
// get configuration
|
662 |
-
preg_match( '/_iub.csConfiguration *= *{(.*?)\};/', $parsed_code, $matches );
|
663 |
-
|
664 |
-
if ( ! empty( $matches[1] ) )
|
665 |
-
$parsed_code = '{' . $matches[1] . '}';
|
666 |
-
|
667 |
-
// decode
|
668 |
-
$decoded = json_decode( $parsed_code, true );
|
669 |
-
|
670 |
-
if ( ! empty( $decoded ) && is_array( $decoded ) ) {
|
671 |
-
$data = $decoded;
|
672 |
-
|
673 |
-
// basic mode
|
674 |
-
if ( $mode === 'basic' ) {
|
675 |
-
if ( isset( $data['banner'] ) )
|
676 |
-
unset( $data['banner'] );
|
677 |
-
if ( isset( $data['callback'] ) )
|
678 |
-
unset( $data['callback'] );
|
679 |
-
if ( isset( $data['perPurposeConsent'] ) )
|
680 |
-
unset( $data['perPurposeConsent'] );
|
681 |
-
}
|
682 |
-
}
|
683 |
-
}
|
684 |
-
|
685 |
-
return $data;
|
686 |
-
}
|
687 |
-
|
688 |
-
/**
|
689 |
-
* Domain info helper function.
|
690 |
-
*
|
691 |
-
* @param type $domainb
|
692 |
-
* @return type
|
693 |
-
*/
|
694 |
-
public function domain( $domainb ) {
|
695 |
-
$bits = explode( '/', $domainb );
|
696 |
-
if ( $bits[0] == 'http:' || $bits[0] == 'https:' ) {
|
697 |
-
$domainb = $bits[2];
|
698 |
-
} else {
|
699 |
-
$domainb = $bits[0];
|
700 |
-
}
|
701 |
-
unset( $bits );
|
702 |
-
$bits = explode( '.', $domainb );
|
703 |
-
$idz = 0;
|
704 |
-
while ( isset( $bits[$idz] ) ) {
|
705 |
-
$idz += 1;
|
706 |
-
}
|
707 |
-
$idz -= 3;
|
708 |
-
$idy = 0;
|
709 |
-
while ( $idy < $idz ) {
|
710 |
-
unset( $bits[$idy] );
|
711 |
-
$idy += 1;
|
712 |
-
}
|
713 |
-
$part = array();
|
714 |
-
foreach ( $bits AS $bit ) {
|
715 |
-
$part[] = $bit;
|
716 |
-
}
|
717 |
-
unset( $bit );
|
718 |
-
unset( $bits );
|
719 |
-
unset( $domainb );
|
720 |
-
$domainb = '';
|
721 |
-
|
722 |
-
if ( strlen( $part[1] ) > 3 ) {
|
723 |
-
unset( $part[0] );
|
724 |
-
}
|
725 |
-
foreach ( $part AS $bit ) {
|
726 |
-
$domainb .= $bit . '.';
|
727 |
-
}
|
728 |
-
unset( $bit );
|
729 |
-
|
730 |
-
return preg_replace( '/(.*)\./', '$1', $domainb );
|
731 |
-
}
|
732 |
-
|
733 |
-
/**
|
734 |
-
* Check if file exists helper function.
|
735 |
-
*
|
736 |
-
* @param type $file
|
737 |
-
*/
|
738 |
-
public function file_exists( $file ) {
|
739 |
-
$file_headers = @get_headers( $file );
|
740 |
-
|
741 |
-
if ( ! $file_headers || $file_headers[0] == 'HTTP/1.1 404 Not Found' ) {
|
742 |
-
$exists = false;
|
743 |
-
} else {
|
744 |
-
$exists = true;
|
745 |
-
}
|
746 |
-
}
|
747 |
-
|
748 |
/**
|
749 |
* Get allowed iubenda script HTML.
|
750 |
*
|
@@ -755,28 +560,29 @@ class iubenda {
|
|
755 |
remove_filter( 'pre_kses', array( 'Filter_Embedded_HTML_Objects', 'filter' ), 11 );
|
756 |
|
757 |
$html = array_merge(
|
758 |
-
|
759 |
-
|
760 |
-
'
|
761 |
-
|
762 |
-
|
763 |
-
|
764 |
-
|
765 |
-
|
766 |
-
|
767 |
-
'
|
768 |
-
|
769 |
-
|
770 |
-
'
|
771 |
-
|
772 |
-
|
773 |
-
|
774 |
-
|
|
|
|
|
775 |
)
|
776 |
-
)
|
777 |
);
|
778 |
|
779 |
-
return apply_filters(
|
780 |
}
|
781 |
|
782 |
}
|
1 |
<?php
|
2 |
/*
|
3 |
+
Plugin Name: Cookie and Consent Solution for the GDPR & ePrivacy
|
4 |
+
Plugin URI: https://www.iubenda.com
|
5 |
+
Description: An All-in-One approach developed by iubenda, which includes functionalities of two powerful solutions that help to make your website GDPR and ePrivacy compliant.
|
6 |
+
Version: 2.0.3
|
7 |
+
Author: iubenda
|
8 |
+
Author URI: https://www.iubenda.com
|
9 |
+
License: MIT License
|
10 |
+
License URI: http://opensource.org/licenses/MIT
|
11 |
+
Text Domain: iubenda
|
12 |
+
Domain Path: /languages
|
13 |
|
14 |
+
Cookie and Consent Solution for the GDPR & ePrivacy
|
15 |
+
Copyright (C) 2018-2019, iubenda s.r.l
|
16 |
|
17 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
18 |
|
19 |
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
20 |
|
21 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22 |
+
*/
|
23 |
|
24 |
// exit if accessed directly
|
25 |
if ( ! defined( 'ABSPATH' ) )
|
32 |
* iubenda final class.
|
33 |
*
|
34 |
* @class iubenda
|
35 |
+
* @version 2.0.3
|
36 |
*/
|
37 |
class iubenda {
|
38 |
|
39 |
private static $instance;
|
40 |
public $options = array();
|
41 |
public $defaults = array(
|
42 |
+
'cs' => array(
|
43 |
'parse' => false, // iubenda_parse
|
44 |
'skip_parsing' => true, // skip_parsing
|
45 |
'ctype' => true, // iubenda_ctype
|
49 |
'output_post' => true,
|
50 |
'code_default' => false, // iubenda-code-default,
|
51 |
'menu_position' => 'topmenu',
|
|
|
|
|
|
|
|
|
52 |
'custom_scripts' => array(),
|
53 |
'custom_iframes' => array(),
|
54 |
'deactivation' => false
|
55 |
),
|
56 |
+
'cons' => array(
|
57 |
'public_api_key' => '',
|
58 |
)
|
59 |
);
|
60 |
public $base_url;
|
61 |
+
public $version = '2.0.3';
|
62 |
public $no_html = false;
|
63 |
public $multilang = false;
|
64 |
public $languages = array();
|
67 |
/**
|
68 |
* Disable object clone.
|
69 |
*/
|
70 |
+
private function __clone() {}
|
|
|
|
|
71 |
|
72 |
/**
|
73 |
* Disable unserializing of the class.
|
74 |
*/
|
75 |
+
private function __wakeup() {}
|
|
|
|
|
76 |
|
77 |
/**
|
78 |
* Main plugin instance,
|
91 |
|
92 |
self::$instance->includes();
|
93 |
|
|
|
94 |
self::$instance->forms = new iubenda_Forms();
|
95 |
self::$instance->settings = new iubenda_Settings();
|
96 |
}
|
111 |
|
112 |
$this->base_url = esc_url_raw( add_query_arg( 'page', 'iubenda', admin_url( $this->options['cs']['menu_position'] === 'submenu' ? 'options-general.php' : 'admin.php' ) ) );
|
113 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
114 |
// actions
|
115 |
add_action( 'after_setup_theme', array( $this, 'register_shortcode' ) );
|
116 |
add_action( 'wp_head', array( $this, 'wp_head_cs' ), 0 );
|
117 |
add_action( 'wp_head', array( $this, 'wp_head_cons' ), 1 );
|
118 |
+
// add_action( 'wp_footer', array( $this, 'wp_footer_cons' ), 1 );
|
119 |
add_action( 'template_redirect', array( $this, 'output_start' ), 0 );
|
120 |
add_action( 'shutdown', array( $this, 'output_end' ), 100 );
|
121 |
add_action( 'template_redirect', array( $this, 'disable_jetpack_tracking' ) );
|
|
|
|
|
122 |
}
|
123 |
|
124 |
/**
|
140 |
private function includes() {
|
141 |
include_once( IUBENDA_PLUGIN_PATH . 'includes/settings.php' );
|
142 |
include_once( IUBENDA_PLUGIN_PATH . 'includes/forms.php' );
|
|
|
143 |
}
|
144 |
|
145 |
/**
|
166 |
// get default language
|
167 |
$this->lang_default = pll_default_language();
|
168 |
|
169 |
+
// WPML support
|
170 |
} elseif ( is_plugin_active( 'sitepress-multilingual-cms/sitepress.php' ) && class_exists( 'SitePress' ) ) {
|
171 |
$this->multilang = true;
|
172 |
|
194 |
* @return void
|
195 |
*/
|
196 |
public function activation() {
|
|
|
|
|
197 |
add_option( 'iubenda_cookie_law_solution', $this->options['cs'], '', 'no' );
|
198 |
add_option( 'iubenda_cookie_law_solution', $this->options['cons'], '', 'no' );
|
199 |
add_option( 'iubenda_cookie_law_version', $this->version, '', 'no' );
|
213 |
}
|
214 |
}
|
215 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
216 |
/**
|
217 |
* Load textdomain.
|
218 |
*
|
261 |
* @return mixed
|
262 |
*/
|
263 |
public function wp_head_cs() {
|
|
|
264 |
// check content type
|
265 |
if ( (bool) $this->options['cs']['ctype'] == true ) {
|
266 |
$iub_headers = headers_list();
|
282 |
return;
|
283 |
|
284 |
// initial head output
|
285 |
+
$iubenda_code = "";
|
286 |
|
287 |
if ( $this->multilang === true && defined( 'ICL_LANGUAGE_CODE' ) && isset( $this->options['cs']['code_' . ICL_LANGUAGE_CODE] ) ) {
|
288 |
$iubenda_code .= $this->options['cs']['code_' . ICL_LANGUAGE_CODE];
|
329 |
if ( ! empty( $this->options['cons']['public_api_key'] ) ) {
|
330 |
|
331 |
$parameters = apply_filters( 'iubenda_cons_init_parameters', array(
|
332 |
+
'log_level' => 'error',
|
333 |
+
'logger' => 'console',
|
334 |
+
'send_from_local' => true
|
335 |
) );
|
336 |
|
337 |
echo '<!-- Library initialization -->
|
355 |
}
|
356 |
}
|
357 |
|
358 |
+
/**
|
359 |
+
* Add wp_head consent solution content.
|
360 |
+
*
|
361 |
+
* @return mixed
|
362 |
+
*/
|
363 |
+
public function wp_footer_cons() {
|
364 |
+
if ( ! empty( $this->options['cons']['public_api_key'] ) ) {
|
365 |
+
echo '<script type="text/javascript">
|
366 |
+
console.log( document.getElementById( "wpcf7-f136-p87-o1" ).getElementsByClassName( "wpcf7-form" )[0] );
|
367 |
+
console.log( document.getElementById( "wpcf7-f136-p87-o1" ).getElementsByClassName( "wpcf7-submit" )[0] );
|
368 |
+
|
369 |
+
_iub.cons_instructions.push( [ "load", {
|
370 |
+
submitElement: document.getElementById( "wpcf7-f136-p87-o1" ).getElementsByClassName( "wpcf7-submit" )[0],
|
371 |
+
form: {
|
372 |
+
selector: document.getElementById( "wpcf7-f136-p87-o1" ).getElementsByClassName( "wpcf7-form" )[0],
|
373 |
+
map: {
|
374 |
+
subject: {
|
375 |
+
first_name: "your-name",
|
376 |
+
last_name: "your-name",
|
377 |
+
email: "your-email"
|
378 |
+
},
|
379 |
+
preferences: {
|
380 |
+
acceptance: "acceptance"
|
381 |
+
}
|
382 |
+
}
|
383 |
+
}
|
384 |
+
} ]
|
385 |
+
);
|
386 |
+
</script>';
|
387 |
+
}
|
388 |
+
}
|
389 |
+
|
390 |
/**
|
391 |
* Initialize html output.
|
392 |
*
|
415 |
*/
|
416 |
public function output_callback( $output ) {
|
417 |
// check whether to run parser or not
|
418 |
+
|
419 |
// bail on ajax, xmlrpc or iub_no_parse request
|
420 |
if (
|
421 |
+
( defined( 'XMLRPC_REQUEST' ) && XMLRPC_REQUEST )
|
422 |
+
|| ( defined( 'DOING_AJAX' ) && DOING_AJAX )
|
423 |
+
|| isset( $_SERVER["HTTP_X_REQUESTED_WITH"] )
|
424 |
+
|| isset( $_GET['iub_no_parse'] )
|
425 |
)
|
426 |
return $output;
|
427 |
|
456 |
|
457 |
// google recaptcha v3 compatibility
|
458 |
if ( class_exists( 'WPCF7' ) && (int) WPCF7::get_option( 'iqfix_recaptcha' ) === 0 && ! iubendaParser::consent_given() )
|
459 |
+
$this->options['cs']['custom_scripts'][] = 'grecaptcha';
|
460 |
|
461 |
// Jetpack compatibility
|
462 |
if ( class_exists( 'Jetpack' ) )
|
463 |
+
$this->options['cs']['custom_scripts'][] = 'stats.wp.com';
|
464 |
|
465 |
$startime = microtime( true );
|
466 |
$output = apply_filters( 'iubenda_initial_output', $output );
|
467 |
|
|
|
|
|
|
|
|
|
468 |
// experimental class
|
469 |
if ( $this->options['cs']['parser_engine'] == 'new' ) {
|
470 |
+
$iubenda = new iubendaParser( mb_convert_encoding( $output, 'HTML-ENTITIES', 'UTF-8' ), array( 'type' => 'faster', 'scripts' => $this->options['cs']['custom_scripts'], 'iframes' => $this->options['cs']['custom_iframes'] ) );
|
|
|
|
|
|
|
|
|
|
|
471 |
|
472 |
// render output
|
473 |
$output = $iubenda->parse();
|
474 |
|
475 |
// append signature
|
476 |
$output .= '<!-- Parsed with iubenda experimental class in ' . round( microtime( true ) - $startime, 4 ) . ' sec. -->';
|
477 |
+
// default class
|
478 |
} else {
|
479 |
+
$iubenda = new iubendaParser( $output, array( 'type' => 'page', 'scripts' => $this->options['cs']['custom_scripts'], 'iframes' => $this->options['cs']['custom_iframes'] ) );
|
|
|
|
|
|
|
|
|
|
|
480 |
|
481 |
// render output
|
482 |
$output = $iubenda->parse();
|
488 |
return apply_filters( 'iubenda_final_output', $output );
|
489 |
}
|
490 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
491 |
/**
|
492 |
* Parse iubenda code.
|
493 |
*
|
532 |
if ( ! class_exists( 'Jetpack' ) )
|
533 |
return;
|
534 |
|
535 |
+
// disable if it's not AMP cached request
|
536 |
+
if ( ! Jetpack_AMP_Support::is_amp_request() )
|
537 |
return;
|
538 |
|
539 |
// if ( is_feed() || is_robots() || is_trackback() || is_preview() || jetpack_is_dnt_enabled() )
|
540 |
+
|
541 |
// bail if skripts blocking disabled
|
542 |
if ( ! $this->options['cs']['parse'] )
|
543 |
return;
|
550 |
remove_action( 'wp_footer', 'stats_footer', 101 );
|
551 |
}
|
552 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
553 |
/**
|
554 |
* Get allowed iubenda script HTML.
|
555 |
*
|
560 |
remove_filter( 'pre_kses', array( 'Filter_Embedded_HTML_Objects', 'filter' ), 11 );
|
561 |
|
562 |
$html = array_merge(
|
563 |
+
wp_kses_allowed_html( 'post' ),
|
564 |
+
array(
|
565 |
+
'script' => array(
|
566 |
+
'type' => array(),
|
567 |
+
'src' => array(),
|
568 |
+
'charset' => array(),
|
569 |
+
'async' => array()
|
570 |
+
),
|
571 |
+
'noscript' => array(),
|
572 |
+
'style' => array(
|
573 |
+
'type' => array()
|
574 |
+
),
|
575 |
+
'iframe' => array(
|
576 |
+
'src' => array(),
|
577 |
+
'height' => array(),
|
578 |
+
'width' => array(),
|
579 |
+
'frameborder' => array(),
|
580 |
+
'allowfullscreen' => array()
|
581 |
+
)
|
582 |
)
|
|
|
583 |
);
|
584 |
|
585 |
+
return apply_filters( 'iub_code_allowed_html', $html );
|
586 |
}
|
587 |
|
588 |
}
|
js/admin.js
CHANGED
@@ -1,10 +1,13 @@
|
|
1 |
( function ( $ ) {
|
2 |
|
3 |
$( document ).ready( function () {
|
|
|
4 |
// parse args
|
5 |
var args = $.parseJSON( iubAdminArgs );
|
|
|
|
|
6 |
|
7 |
-
//
|
8 |
$( '#iub_parse' ).change( function () {
|
9 |
if ( $( this ).is( ':checked' ) ) {
|
10 |
$( '#iub_parser_engine_container' ).slideDown( 'fast' );
|
@@ -12,30 +15,6 @@
|
|
12 |
$( '#iub_parser_engine_container' ).slideUp( 'fast' );
|
13 |
}
|
14 |
} );
|
15 |
-
|
16 |
-
// amp options
|
17 |
-
$( '#iub_amp_support' ).change( function () {
|
18 |
-
if ( $( this ).is( ':checked' ) ) {
|
19 |
-
$( '#iub_amp_options_container' ).slideDown( 'fast' );
|
20 |
-
} else {
|
21 |
-
$( '#iub_amp_options_container' ).slideUp( 'fast' );
|
22 |
-
}
|
23 |
-
} );
|
24 |
-
|
25 |
-
// amp options
|
26 |
-
$( 'input.iub_amp_source' ).change( function () {
|
27 |
-
var value = $( 'input.iub_amp_source:checked' ).val();
|
28 |
-
|
29 |
-
if ( value === 'remote' ) {
|
30 |
-
$( '#iub_amp_template-local' ).fadeOut( 'fast', function () {
|
31 |
-
$( '#iub_amp_template-remote' ).fadeIn( 'fast' );
|
32 |
-
} );
|
33 |
-
} else {
|
34 |
-
$( '#iub_amp_template-remote' ).fadeOut( 'fast', function () {
|
35 |
-
$( '#iub_amp_template-local' ).fadeIn( 'fast' );
|
36 |
-
} );
|
37 |
-
}
|
38 |
-
} );
|
39 |
|
40 |
// move notices
|
41 |
var errors = $( '.settings-error' ).detach();
|
@@ -76,7 +55,7 @@
|
|
76 |
|
77 |
$( '#postbox-container-2' ).change();
|
78 |
|
79 |
-
|
80 |
html = html.replace( /__PREFERENCE_ID__/g, preferencesID++ );
|
81 |
|
82 |
$( '.preferences-table .add-preferences-field' ).closest( 'tr' ).before( '<tr class="preferences-field options-field" style="display: none;">' + html + '</tr>' );
|
@@ -108,7 +87,7 @@
|
|
108 |
|
109 |
$( '#postbox-container-2' ).change();
|
110 |
|
111 |
-
|
112 |
html = html.replace( /__EXCLUDE_ID__/g, excludeID++ );
|
113 |
|
114 |
$( '.exclude-table .add-exclude-field' ).closest( 'tr' ).before( '<tr class="exclude-field options-field" style="display: none;">' + html + '</tr>' );
|
@@ -138,7 +117,7 @@
|
|
138 |
|
139 |
$( '#postbox-container-2' ).change();
|
140 |
|
141 |
-
|
142 |
html = html.replace( /__LEGAL_NOTICE_ID__/g, legalNoticesID++ );
|
143 |
|
144 |
console.log( html );
|
@@ -160,41 +139,7 @@
|
|
160 |
$( this ).remove();
|
161 |
} );
|
162 |
} );
|
163 |
-
|
164 |
-
// add new script field
|
165 |
-
$( document ).on( 'click', '.add-custom-script-field', function( e ) {
|
166 |
-
e.preventDefault();
|
167 |
-
|
168 |
-
$( this ).before( '<div class="custom-script-field" style="display: none;">' + $( '#custom-script-field-template' ).html() + '</div>' );
|
169 |
-
$( '#tab-panel-scripts' ).find( '.custom-script-field' ).last().fadeIn( 300 );
|
170 |
-
} );
|
171 |
-
|
172 |
-
// remove custom script field
|
173 |
-
$( document ).on( 'click', '.remove-custom-script-field', function( e ) {
|
174 |
-
e.preventDefault();
|
175 |
-
|
176 |
-
$( this ).closest( '.custom-script-field' ).fadeOut( 300, function() {
|
177 |
-
$( this ).remove();
|
178 |
-
} );
|
179 |
-
} );
|
180 |
-
|
181 |
-
// add new iframe field
|
182 |
-
$( document ).on( 'click', '.add-custom-iframe-field', function( e ) {
|
183 |
-
e.preventDefault();
|
184 |
-
|
185 |
-
$( this ).before( '<div class="custom-iframe-field" style="display: none;">' + $( '#custom-iframe-field-template' ).html() + '</div>' );
|
186 |
-
$( '#tab-panel-iframes' ).find( '.custom-iframe-field' ).last().fadeIn( 300 );
|
187 |
-
} );
|
188 |
|
189 |
-
// remove custom iframe field
|
190 |
-
$( document ).on( 'click', '.remove-custom-iframe-field', function( e ) {
|
191 |
-
e.preventDefault();
|
192 |
-
|
193 |
-
$( this ).closest( '.custom-iframe-field' ).fadeOut( 300, function() {
|
194 |
-
$( this ).remove();
|
195 |
-
} );
|
196 |
-
} );
|
197 |
-
|
198 |
// Remove template fields on save
|
199 |
$( document ).on( 'click', '#publish', function () {
|
200 |
$( '#preferences-field-template' ).remove();
|
1 |
( function ( $ ) {
|
2 |
|
3 |
$( document ).ready( function () {
|
4 |
+
|
5 |
// parse args
|
6 |
var args = $.parseJSON( iubAdminArgs );
|
7 |
+
|
8 |
+
// console.log( args );
|
9 |
|
10 |
+
// read more option
|
11 |
$( '#iub_parse' ).change( function () {
|
12 |
if ( $( this ).is( ':checked' ) ) {
|
13 |
$( '#iub_parser_engine_container' ).slideDown( 'fast' );
|
15 |
$( '#iub_parser_engine_container' ).slideUp( 'fast' );
|
16 |
}
|
17 |
} );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
|
19 |
// move notices
|
20 |
var errors = $( '.settings-error' ).detach();
|
55 |
|
56 |
$( '#postbox-container-2' ).change();
|
57 |
|
58 |
+
html = $( '#preferences-field-template' ).html();
|
59 |
html = html.replace( /__PREFERENCE_ID__/g, preferencesID++ );
|
60 |
|
61 |
$( '.preferences-table .add-preferences-field' ).closest( 'tr' ).before( '<tr class="preferences-field options-field" style="display: none;">' + html + '</tr>' );
|
87 |
|
88 |
$( '#postbox-container-2' ).change();
|
89 |
|
90 |
+
html = $( '#exclude-field-template' ).html();
|
91 |
html = html.replace( /__EXCLUDE_ID__/g, excludeID++ );
|
92 |
|
93 |
$( '.exclude-table .add-exclude-field' ).closest( 'tr' ).before( '<tr class="exclude-field options-field" style="display: none;">' + html + '</tr>' );
|
117 |
|
118 |
$( '#postbox-container-2' ).change();
|
119 |
|
120 |
+
html = $( '#legal_notices-field-template' ).html();
|
121 |
html = html.replace( /__LEGAL_NOTICE_ID__/g, legalNoticesID++ );
|
122 |
|
123 |
console.log( html );
|
139 |
$( this ).remove();
|
140 |
} );
|
141 |
} );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
142 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
143 |
// Remove template fields on save
|
144 |
$( document ).on( 'click', '#publish', function () {
|
145 |
$( '#preferences-field-template' ).remove();
|
js/frontend.js
CHANGED
@@ -137,7 +137,7 @@
|
|
137 |
formArgs.consent.legal_notices = form.consent.legal_notices;
|
138 |
}
|
139 |
|
140 |
-
console.log( formArgs );
|
141 |
|
142 |
// build form consent data
|
143 |
_iub.cons_instructions.push( [ 'load', formArgs ] );
|
137 |
formArgs.consent.legal_notices = form.consent.legal_notices;
|
138 |
}
|
139 |
|
140 |
+
// console.log( formArgs );
|
141 |
|
142 |
// build form consent data
|
143 |
_iub.cons_instructions.push( [ 'load', formArgs ] );
|
languages/iubenda-cookie-law-solution-it_IT.mo
CHANGED
Binary file
|
languages/iubenda-cookie-law-solution-it_IT.po
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: Iubenda Cookie Solution\n"
|
4 |
-
"POT-Creation-Date:
|
5 |
-
"PO-Revision-Date:
|
6 |
"Last-Translator: \n"
|
7 |
"Language-Team: \n"
|
8 |
"Language: it\n"
|
@@ -25,9 +25,7 @@ msgid "Form ID"
|
|
25 |
msgstr "ID del form"
|
26 |
|
27 |
#: includes/forms-list-table.php:94
|
28 |
-
|
29 |
-
#| msgid "Source"
|
30 |
-
msgid "Form Source"
|
31 |
msgstr "Fonte"
|
32 |
|
33 |
#: includes/forms-list-table.php:95
|
@@ -62,7 +60,7 @@ msgstr "Tutte le fonti"
|
|
62 |
msgid "No forms found."
|
63 |
msgstr "Nessun form trovato."
|
64 |
|
65 |
-
#: includes/forms.php:149 includes/settings.php:
|
66 |
msgid "Forms"
|
67 |
msgstr "Form"
|
68 |
|
@@ -71,14 +69,17 @@ msgid "Form"
|
|
71 |
msgstr "Form"
|
72 |
|
73 |
#: includes/forms.php:566 includes/forms.php:580
|
|
|
74 |
msgid "First name"
|
75 |
msgstr "Nome"
|
76 |
|
77 |
#: includes/forms.php:572 includes/forms.php:592
|
|
|
78 |
msgid "Last name"
|
79 |
msgstr "Cognome"
|
80 |
|
81 |
#: includes/forms.php:586
|
|
|
82 |
msgid "Middle name"
|
83 |
msgstr "Secondo nome"
|
84 |
|
@@ -87,338 +88,253 @@ msgstr "Secondo nome"
|
|
87 |
msgid "string"
|
88 |
msgstr "stringa"
|
89 |
|
90 |
-
#: includes/settings.php:57 includes/settings.php:
|
91 |
msgid "Cookie Solution"
|
92 |
msgstr "Cookie Solution"
|
93 |
|
94 |
-
#: includes/settings.php:63 includes/settings.php:
|
95 |
msgid "Consent Solution"
|
96 |
msgstr "Consent Solution"
|
97 |
|
98 |
-
#: includes/settings.php:
|
99 |
-
msgid "Not set"
|
100 |
-
msgstr ""
|
101 |
-
|
102 |
-
#: includes/settings.php:72
|
103 |
-
msgid "Strictly necessary"
|
104 |
-
msgstr ""
|
105 |
-
|
106 |
-
#: includes/settings.php:73
|
107 |
-
msgid "Basic interactions & functionalities"
|
108 |
-
msgstr ""
|
109 |
-
|
110 |
-
#: includes/settings.php:74
|
111 |
-
#, fuzzy
|
112 |
-
#| msgid "Experimental (enhances performance)"
|
113 |
-
msgid "Experience enhancement"
|
114 |
-
msgstr "Sperimentale (performance migliorata)"
|
115 |
-
|
116 |
-
#: includes/settings.php:75
|
117 |
-
msgid "Analytics"
|
118 |
-
msgstr ""
|
119 |
-
|
120 |
-
#: includes/settings.php:76
|
121 |
-
msgid "Targeting & Advertising"
|
122 |
-
msgstr ""
|
123 |
-
|
124 |
-
#: includes/settings.php:123
|
125 |
msgid "Code"
|
126 |
msgstr "Codice"
|
127 |
|
128 |
-
#: includes/settings.php:
|
129 |
#, fuzzy
|
130 |
#| msgid "Scripts blocking"
|
131 |
msgid "Script blocking"
|
132 |
msgstr "Blocco preventivo dei codici"
|
133 |
|
134 |
-
#: includes/settings.php:
|
135 |
msgid "Custom scripts"
|
136 |
msgstr "Script personalizzati"
|
137 |
|
138 |
-
#: includes/settings.php:
|
139 |
msgid "Content type"
|
140 |
msgstr "Tipo di contenuto"
|
141 |
|
142 |
-
#: includes/settings.php:
|
143 |
msgid "RSS feed"
|
144 |
msgstr "Feed RSS"
|
145 |
|
146 |
-
#: includes/settings.php:
|
147 |
msgid "POST requests"
|
148 |
msgstr "Richieste POST"
|
149 |
|
150 |
-
#: includes/settings.php:
|
151 |
msgid "Menu position"
|
152 |
msgstr "Posizione menu"
|
153 |
|
154 |
-
#: includes/settings.php:
|
155 |
-
msgid "Google AMP"
|
156 |
-
msgstr ""
|
157 |
-
|
158 |
-
#: includes/settings.php:131
|
159 |
msgid "Deactivation"
|
160 |
msgstr "Disattivazione"
|
161 |
|
162 |
-
#: includes/settings.php:
|
163 |
-
|
164 |
-
#| msgid "Public API Key"
|
165 |
-
msgid "Public Api Key"
|
166 |
msgstr "Chiave API pubblica"
|
167 |
|
168 |
-
#: includes/settings.php:
|
169 |
msgid "Field Mapping"
|
170 |
msgstr "Mapping dei campi"
|
171 |
|
172 |
-
#: includes/settings.php:
|
173 |
msgid "Are you sure you want to delete this form?"
|
174 |
msgstr "Sei sicuro di voler eliminare questo form?"
|
175 |
|
176 |
-
#: includes/settings.php:
|
177 |
msgid "You don't have permission to access this page."
|
178 |
msgstr "Non disponi dell'autorizzazione per accedere a questa pagina."
|
179 |
|
180 |
-
#: includes/settings.php:
|
181 |
#, fuzzy
|
182 |
#| msgid ""
|
183 |
-
#| "This plugin is the easiest and most comprehensive way to adapt your "
|
184 |
-
#| "
|
185 |
-
#| "
|
186 |
-
#| "
|
187 |
-
#| "
|
188 |
-
#| "
|
189 |
-
#| "
|
190 |
msgid ""
|
191 |
-
"This plugin is the easiest and most comprehensive way to adapt your "
|
192 |
-
"
|
193 |
-
"
|
194 |
-
"
|
195 |
-
"
|
196 |
-
"
|
197 |
-
"
|
198 |
msgstr ""
|
199 |
"Questo plugin è il modo più semplice e completo per adeguare il tuo sito "
|
200 |
-
"WordPress alla Direttiva ePrivacy (Cookie Law). Alla prima visita "
|
201 |
-
"
|
202 |
-
"
|
203 |
-
"
|
204 |
-
"
|
205 |
-
"riattivazione senza il refresh della pagina."
|
206 |
-
|
207 |
-
#: includes/settings.php:379
|
208 |
-
msgid ""
|
209 |
-
"Does the Cookie Solution support IAB’s Transparency and Consent Framework?"
|
210 |
-
msgstr ""
|
211 |
-
"La Cookie Solution supporta il Transparency e Consent Framework di IAB?"
|
212 |
|
213 |
-
#: includes/settings.php:
|
|
|
|
|
|
|
|
|
214 |
#, fuzzy, php-format
|
215 |
#| msgid ""
|
216 |
-
#| "Visit our <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">plugin "
|
217 |
-
#| "
|
218 |
msgid ""
|
219 |
"Yes it does. You can read more about it <a href=\"%s\" class=\"iubenda-url\" "
|
220 |
"target=\"_blank\">here.</a>"
|
221 |
msgstr ""
|
222 |
-
"Sì. Visita <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">questa "
|
223 |
-
"
|
224 |
|
225 |
-
#: includes/settings.php:
|
226 |
-
|
227 |
-
#| msgid "Would you like to know more about the Cookie Law?"
|
228 |
-
msgid "Would you like to know more about the cookie law?"
|
229 |
msgstr "Vuoi saperne di più sulla Cookie Law?"
|
230 |
|
231 |
-
#: includes/settings.php:
|
232 |
-
#,
|
233 |
-
#| msgid ""
|
234 |
-
#| "Read our <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">complete "
|
235 |
-
#| "guide to the Cookie Law</a>."
|
236 |
msgid ""
|
237 |
-
"Read our <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">complete "
|
238 |
-
"
|
239 |
msgstr ""
|
240 |
"Leggi la nostra <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">guida "
|
241 |
"completa alla Cookie Law</a>."
|
242 |
|
243 |
-
#: includes/settings.php:
|
244 |
msgid "What is the full functionality of the plugin?"
|
245 |
msgstr "Quali sono le funzionalità del plugin?"
|
246 |
|
247 |
-
#: includes/settings.php:
|
248 |
-
#,
|
249 |
-
#| msgid ""
|
250 |
-
#| "Visit our <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">plugin "
|
251 |
-
#| "page</a>."
|
252 |
msgid ""
|
253 |
-
"Visit our <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">plugin page
|
254 |
-
"</a>"
|
255 |
msgstr ""
|
256 |
"Visita la <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">pagina "
|
257 |
"dedicata</a> al plugin."
|
258 |
|
259 |
-
#: includes/settings.php:
|
260 |
msgid "Enter the iubenda code for the Cookie Solution below."
|
261 |
msgstr "Inserisci qui sotto il codice di iubenda per la Cookie Solution."
|
262 |
|
263 |
-
#: includes/settings.php:
|
264 |
#, php-format
|
265 |
msgid ""
|
266 |
-
"In order to run the plugin, you need to enter the iubenda code that "
|
267 |
-
"
|
268 |
-
"
|
269 |
-
"
|
270 |
msgstr ""
|
271 |
"Per far funzionare il plugin, è necessario inserire nel form sottostante il "
|
272 |
-
"codice di iubenda che attiva il cookie banner e la cookie policy. Questo "
|
273 |
-
"
|
274 |
-
"
|
275 |
-
"guida</a>."
|
276 |
|
277 |
-
#: includes/settings.php:
|
278 |
-
#, fuzzy
|
279 |
-
#| msgid ""
|
280 |
-
#| "Maintaining comprehensive records of consent is a vital part of privacy "
|
281 |
-
#| "compliance in general but is specifically required under the GDPR. These "
|
282 |
-
#| "records should include a way of identifying the user, store proof of "
|
283 |
-
#| "consent, record of the consenting action, and the legal documents "
|
284 |
-
#| "available to the user at the time of consent, among other things. You can "
|
285 |
-
#| "read about the <a href=\"https://www.iubenda.com/en/help/5428#records-of-"
|
286 |
-
#| "consent\" target=\"_blank\">full requirements here</a>."
|
287 |
msgid ""
|
288 |
"Maintaining comprehensive records of consent is a vital part of privacy "
|
289 |
-
"compliance in general but is specifically required under the GDPR. These "
|
290 |
-
"
|
291 |
-
"
|
292 |
-
"
|
293 |
-
"
|
294 |
-
"
|
295 |
-
msgstr ""
|
296 |
-
"Oltre ad essere un elemento vitale per il rispetto della privacy in "
|
297 |
-
"
|
298 |
-
"
|
299 |
-
"
|
300 |
-
"
|
301 |
-
"
|
302 |
-
"
|
303 |
-
|
304 |
-
|
305 |
-
#: includes/settings.php:420
|
306 |
#, php-format
|
307 |
msgid ""
|
308 |
-
"
|
309 |
-
"
|
310 |
-
"
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
"
|
317 |
-
"
|
318 |
-
"
|
319 |
-
"href=\"%s\" target=\"_blank\">
|
320 |
-
"
|
321 |
-
"
|
322 |
-
"
|
323 |
-
|
324 |
-
|
325 |
-
"riduce drasticamente la necessità di interventi diretti sul codice del sito. "
|
326 |
-
"Prevede un cookie banner completamente personalizzabile, genera una cookie "
|
327 |
-
"policy che <a href=\"%s\" target=\"_blank\">rispecchia i servizi in uso dal "
|
328 |
-
"tuo sito web</a> e gestisce il consenso ai cookie (incluso il blocco "
|
329 |
-
"automatico dei widget e dei cookie di terza parte più diffusi) in modo da "
|
330 |
-
"permetterti di rispettare il GDPR e la Direttiva ePrivacy."
|
331 |
-
|
332 |
-
#: includes/settings.php:442
|
333 |
msgid ""
|
334 |
-
"Maintaining valid records of consent is a vital part of privacy compliance "
|
335 |
-
"
|
336 |
-
"
|
337 |
-
"
|
338 |
-
"
|
339 |
-
"
|
340 |
-
"
|
341 |
-
"
|
342 |
-
"
|
343 |
-
"
|
344 |
-
msgstr ""
|
345 |
-
"Il mantenimento di un valido registro dei consensi è un elemento vitale per "
|
346 |
-
"
|
347 |
-
"
|
348 |
-
"
|
349 |
-
"
|
350 |
-
"
|
351 |
-
"
|
352 |
-
"
|
353 |
-
"
|
354 |
-
"
|
355 |
-
"
|
356 |
-
|
357 |
-
#: includes/settings.php:
|
358 |
msgid "Reset to defaults"
|
359 |
msgstr "Ripristina le impostazioni di default"
|
360 |
|
361 |
-
#: includes/settings.php:
|
362 |
msgid "Need support for this plugin?"
|
363 |
msgstr "Serve aiuto per questo plugin?"
|
364 |
|
365 |
-
#: includes/settings.php:
|
366 |
#, php-format
|
367 |
msgid ""
|
368 |
-
"Visit our <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">support "
|
369 |
-
"
|
370 |
msgstr ""
|
371 |
-
"Visita il nostro <a href=\"%s\" class=\"iubenda-url\" target=\"_blank"
|
372 |
-
"
|
373 |
|
374 |
-
#: includes/settings.php:
|
375 |
#, php-format
|
376 |
msgid "Enter the iubenda code for %s."
|
377 |
msgstr "Inserisci il codice di iubenda per %s."
|
378 |
|
379 |
-
#: includes/settings.php:
|
380 |
msgid "Enter the iubenda code."
|
381 |
msgstr "Inserisci il codice di iubenda."
|
382 |
|
383 |
-
#: includes/settings.php:
|
384 |
#, fuzzy
|
385 |
#| msgid "Enter a list of custom scripts (one per line)."
|
386 |
-
msgid ""
|
387 |
-
"Provide a list of custom scripts you’d like to block and assign their "
|
388 |
-
"purpose."
|
389 |
msgstr "Elenca gli script personalizzati (uno per riga)."
|
390 |
|
391 |
-
#: includes/settings.php:
|
392 |
-
#, fuzzy
|
393 |
-
#| msgid "Custom scripts"
|
394 |
-
msgid "Enter custom script"
|
395 |
-
msgstr "Script personalizzati"
|
396 |
-
|
397 |
-
#: includes/settings.php:557 includes/settings.php:564
|
398 |
-
#: includes/settings.php:575 includes/settings.php:582
|
399 |
-
#: includes/settings.php:939 includes/settings.php:966
|
400 |
-
#: includes/settings.php:1007 includes/settings.php:1035
|
401 |
-
#: includes/settings.php:1086 includes/settings.php:1102
|
402 |
-
msgid "Remove"
|
403 |
-
msgstr "Elimina"
|
404 |
-
|
405 |
-
#: includes/settings.php:573
|
406 |
#, fuzzy
|
407 |
#| msgid "Enter a list of custom iframes (one per line)."
|
408 |
-
msgid ""
|
409 |
-
"Provide a list of custom iframes you’d like to block and assign their "
|
410 |
-
"purpose. "
|
411 |
msgstr "Elenca gli iframe personalizzati (uno per riga)."
|
412 |
|
413 |
-
#: includes/settings.php:
|
414 |
-
msgid "Enter custom iframe"
|
415 |
-
msgstr ""
|
416 |
-
|
417 |
-
#: includes/settings.php:620
|
418 |
msgid "Automatically block scripts detected by the plugin."
|
419 |
msgstr "Blocca automaticamente gli script rilevati dal plugin."
|
420 |
|
421 |
-
#: includes/settings.php:
|
422 |
#, php-format
|
423 |
msgid ""
|
424 |
"see <a href=\"%s\" target=\"_blank\">our documentation</a> for the list of "
|
@@ -427,344 +343,289 @@ msgstr ""
|
|
427 |
"visita <a href=\"%s\" target=\"_blank\">la nostra documentazione</a> per la "
|
428 |
"lista degli script rilevati automaticamente dal plugin."
|
429 |
|
430 |
-
#: includes/settings.php:
|
431 |
msgid "Primary"
|
432 |
msgstr "Primario"
|
433 |
|
434 |
-
#: includes/settings.php:
|
435 |
msgid "Secondary"
|
436 |
msgstr "Secondario"
|
437 |
|
438 |
-
#: includes/settings.php:
|
439 |
msgid "Select parsing engine."
|
440 |
msgstr "Seleziona il motore di parsing."
|
441 |
|
442 |
-
#: includes/settings.php:
|
443 |
-
msgid ""
|
444 |
-
"Leave scripts untouched on the page if the user has already given consent"
|
445 |
msgstr ""
|
446 |
-
"Lascia gli script intatti sulla pagina se l'utente ha già prestato il "
|
447 |
-
"consenso"
|
448 |
|
449 |
-
#: includes/settings.php:
|
450 |
-
#, fuzzy
|
451 |
-
#| msgid ""
|
452 |
-
#| "improves performance, highly recommended, to be deactivated only if your "
|
453 |
-
#| "site uses a caching system"
|
454 |
msgid ""
|
455 |
-
"improves performance, highly recommended, to be deactivated only if your "
|
456 |
-
"
|
457 |
msgstr ""
|
458 |
-
"migliora le prestazioni, altamente consigliato, da disattivare solo qualora "
|
459 |
-
"
|
460 |
|
461 |
-
#: includes/settings.php:
|
462 |
msgid ""
|
463 |
-
"Restrict the plugin to run only for requests that have \"Content-type: "
|
464 |
-
"
|
465 |
msgstr ""
|
466 |
-
"Restringi l'esecuzione del plugin alle sole richieste che presentano "
|
467 |
-
"
|
468 |
|
469 |
-
#: includes/settings.php:
|
470 |
msgid "Do not run the plugin inside the RSS feed (recommended)"
|
471 |
msgstr "Non eseguire il plugin all'interno dei Feed RSS (consigliato)"
|
472 |
|
473 |
-
#: includes/settings.php:
|
474 |
#, fuzzy
|
475 |
#| msgid "Do not run the plugin inside the RSS feed (recommended)"
|
476 |
msgid "Do not run the plugin on POST requests (recommended)"
|
477 |
msgstr "Non eseguire il plugin per richieste POST (consigliato)"
|
478 |
|
479 |
-
#: includes/settings.php:
|
480 |
msgid "Top menu"
|
481 |
msgstr "Menu principale"
|
482 |
|
483 |
-
#: includes/settings.php:
|
484 |
msgid "Submenu"
|
485 |
msgstr "Sottomenu"
|
486 |
|
487 |
-
#: includes/settings.php:
|
488 |
msgid ""
|
489 |
-
"Select whether to display iubenda in a top admin menu or the Settings "
|
490 |
-
"submenu."
|
491 |
-
msgstr ""
|
492 |
-
"Scegli se visualizzare iubenda in una voce di menu principale del pannello "
|
493 |
-
"admin o in un sottomenu della scheda Impostazioni."
|
494 |
-
|
495 |
-
#: includes/settings.php:694
|
496 |
-
msgid "Enable Google AMP caching compatibility."
|
497 |
msgstr ""
|
|
|
|
|
498 |
|
499 |
-
#: includes/settings.php:
|
500 |
-
#, php-format
|
501 |
-
msgid ""
|
502 |
-
"This plugin provides compatibility with Google AMP through <a href=\"%s\" "
|
503 |
-
"target=\"_blank\">AMP</a> and <a href=\"%s\" target=\"_blank\">AMP for WP</"
|
504 |
-
"a> WordPress plugins."
|
505 |
-
msgstr ""
|
506 |
-
|
507 |
-
#: includes/settings.php:698
|
508 |
-
msgid "Local file"
|
509 |
-
msgstr ""
|
510 |
-
|
511 |
-
#: includes/settings.php:699
|
512 |
-
msgid "Remote file"
|
513 |
-
msgstr ""
|
514 |
-
|
515 |
-
#: includes/settings.php:700
|
516 |
-
msgid "Select the iubenda AMP configuration file location."
|
517 |
-
msgstr ""
|
518 |
-
|
519 |
-
#: includes/settings.php:705
|
520 |
-
msgid ""
|
521 |
-
"No file available. Save changes to generate iubenda AMP configuration file."
|
522 |
-
msgstr ""
|
523 |
-
|
524 |
-
#: includes/settings.php:709
|
525 |
-
msgid "Autogenerated iubenda AMP configuration file."
|
526 |
-
msgstr ""
|
527 |
-
|
528 |
-
#: includes/settings.php:715
|
529 |
-
msgid ""
|
530 |
-
"If you're experiencing issues with AMP setup download the generated iubenda "
|
531 |
-
"AMP configuration file, upload it to any SSL server and paste the file link "
|
532 |
-
"to the field above."
|
533 |
-
msgstr ""
|
534 |
-
|
535 |
-
#: includes/settings.php:729
|
536 |
msgid "Delete all plugin data upon deactivation?"
|
537 |
-
msgstr ""
|
538 |
-
"Vuoi eliminare tutti i dati del plugin al momento della disattivazione?"
|
539 |
|
540 |
-
#: includes/settings.php:
|
541 |
msgid "Enter your iubenda Javascript library public API key."
|
542 |
-
msgstr ""
|
543 |
-
"Inserisci la chiave API pubblica per la libreria JavaScript di iubenda."
|
544 |
|
545 |
-
#: includes/settings.php:
|
546 |
msgid ""
|
547 |
-
"This section lists the forms available for field mapping. The plugin "
|
548 |
-
"
|
549 |
-
"
|
550 |
msgstr ""
|
551 |
"Questa sezione elenca i form disponibili al mapping. Al momento il plugin "
|
552 |
-
"supporta e rileva: Commenti WordPress, Contact Form 7, WooCommerce Checkout "
|
553 |
-
"
|
554 |
|
555 |
-
#: includes/settings.php:
|
556 |
#, php-format
|
557 |
msgid "%s form title."
|
558 |
msgstr "%s nome del form."
|
559 |
|
560 |
-
#: includes/settings.php:
|
561 |
msgid "Unknown"
|
562 |
msgstr "Sconosciuto"
|
563 |
|
564 |
-
#: includes/settings.php:
|
565 |
msgid "Available form fields:"
|
566 |
msgstr "Campi disponibili:"
|
567 |
|
568 |
-
#: includes/settings.php:
|
569 |
msgid "Publish"
|
570 |
msgstr "Pubblica"
|
571 |
|
572 |
-
#: includes/settings.php:
|
573 |
msgid "Status"
|
574 |
msgstr "Stato"
|
575 |
|
576 |
-
#: includes/settings.php:
|
577 |
msgid "Cancel"
|
578 |
msgstr "Annulla"
|
579 |
|
580 |
-
#: includes/settings.php:
|
581 |
msgid "Save"
|
582 |
msgstr "Salva"
|
583 |
|
584 |
-
#: includes/settings.php:
|
585 |
msgid "Map fields"
|
586 |
msgstr "Mappa i campi"
|
587 |
|
588 |
-
#: includes/settings.php:
|
589 |
msgid "Subject fields"
|
590 |
msgstr "Utente"
|
591 |
|
592 |
-
#: includes/settings.php:
|
593 |
-
#, fuzzy
|
594 |
-
#| msgid ""
|
595 |
-
#| "Subject fields allow you to store a series of identifying values about "
|
596 |
-
#| "your individual subjects/users. Please map the subject field with the "
|
597 |
-
#| "corresponding form fields where applicable."
|
598 |
msgid ""
|
599 |
"Subject fields allow you to store a series of identifying values about your "
|
600 |
-
"individual subjects/users. Please map the subject
|
601 |
-
"
|
602 |
msgstr ""
|
603 |
"Questi campi ti permettono di memorizzare una serie di valori identificativi "
|
604 |
-
"dell'utente. Associa gli attributi dell'utente ai corrispondenti campi del "
|
605 |
-
"
|
606 |
|
607 |
-
#: includes/settings.php:
|
608 |
msgid "Subject field"
|
609 |
msgstr "Attributo"
|
610 |
|
611 |
-
#: includes/settings.php:
|
612 |
msgid "Form field"
|
613 |
msgstr "Campo del form"
|
614 |
|
615 |
-
#: includes/settings.php:
|
616 |
msgid "Autogenerated"
|
617 |
msgstr "Generato automaticamente"
|
618 |
|
619 |
-
#: includes/settings.php:
|
620 |
msgid "None"
|
621 |
msgstr "Nessuno"
|
622 |
|
623 |
-
#: includes/settings.php:
|
624 |
msgid "Preferences fields"
|
625 |
msgstr "Preferenze"
|
626 |
|
627 |
-
#: includes/settings.php:
|
628 |
msgid ""
|
629 |
-
"Preferences fields allow you to store a record of the various opt-ins points "
|
630 |
-
"
|
631 |
-
"
|
632 |
-
"
|
633 |
msgstr ""
|
634 |
-
"Questi campi ti permettono di memorizzare a cosa l'utente ha prestato il "
|
635 |
-
"
|
636 |
-
"
|
637 |
|
638 |
-
#: includes/settings.php:
|
639 |
msgid "Preferences field"
|
640 |
msgstr "Campo delle preferenze"
|
641 |
|
642 |
-
#: includes/settings.php:
|
643 |
-
#: includes/settings.php:
|
644 |
-
#: includes/settings.php:1102
|
645 |
msgid "Enter field name"
|
646 |
msgstr "Aggiungi il nome di un campo"
|
647 |
|
648 |
-
#: includes/settings.php:
|
|
|
|
|
|
|
|
|
|
|
649 |
msgid "Add New Preference"
|
650 |
msgstr "Aggiungi nuova preferenza"
|
651 |
|
652 |
-
#: includes/settings.php:
|
653 |
msgid "Exclude fields"
|
654 |
msgstr "Esclusioni"
|
655 |
|
656 |
-
#: includes/settings.php:
|
657 |
msgid ""
|
658 |
"Exclude fields allow you to create a list of fields that you would like to "
|
659 |
-
"exclude from your Consent Solution recorded proofs (for e.g. password or "
|
660 |
-
"
|
661 |
msgstr ""
|
662 |
"Qui puoi creare una lista dei campi che desideri escludere dalle prove del "
|
663 |
-
"consenso memorizzate dalla Consent Solution (ad es. password o altri campi "
|
664 |
-
"
|
665 |
|
666 |
-
#: includes/settings.php:
|
667 |
msgid "Exclude field"
|
668 |
msgstr "Campi esclusi"
|
669 |
|
670 |
-
#: includes/settings.php:
|
671 |
msgid "Add New Exclude"
|
672 |
msgstr "Aggiungi una nuova esclusione"
|
673 |
|
674 |
-
#: includes/settings.php:
|
675 |
msgid "Legal Notices"
|
676 |
msgstr "Note legali"
|
677 |
|
678 |
-
#: includes/settings.php:
|
679 |
msgid "Legal documents"
|
680 |
msgstr "Documenti legali"
|
681 |
|
682 |
-
#: includes/settings.php:
|
683 |
msgid ""
|
684 |
"In general, it’s important that you declare which legal documents are being "
|
685 |
-
"agreed upon when each consent is collected. However, if you use iubenda for "
|
686 |
-
"
|
687 |
-
"
|
688 |
msgstr ""
|
689 |
-
"In generale, è importante dichiarare quali documenti legali vengono "
|
690 |
-
"
|
691 |
-
"
|
692 |
|
693 |
-
#: includes/settings.php:
|
694 |
msgid "Identifier"
|
695 |
msgstr "Identificatore"
|
696 |
|
697 |
-
#: includes/settings.php:
|
698 |
msgid "Please select each legal document available on your site."
|
699 |
msgstr "Seleziona tutti i documenti legali presenti sul tuo sito."
|
700 |
|
701 |
-
#: includes/settings.php:
|
702 |
msgid "Alternatively, you may add your own custom document identifiers."
|
703 |
msgstr "In alternativa, puoi aggiungere degli identificatori personalizzati."
|
704 |
|
705 |
-
#: includes/settings.php:
|
706 |
msgid "Add New Document"
|
707 |
msgstr "Aggiungi un nuovo documento"
|
708 |
|
709 |
-
#: includes/settings.php:
|
710 |
-
#: includes/settings.php:1421
|
711 |
msgid "Settings saved."
|
712 |
msgstr "Impostazioni salvate."
|
713 |
|
714 |
-
#: includes/settings.php:
|
715 |
msgid "Settings restored to defaults."
|
716 |
msgstr "Impostazioni di default ripristinate."
|
717 |
|
718 |
-
#: includes/settings.php:
|
719 |
#, php-format
|
720 |
msgid ""
|
721 |
"Please enable comments cookies opt-in checkbox in the <a href=\"%s\" target="
|
722 |
"\"_blank\">Discussion settings</a>."
|
723 |
msgstr ""
|
724 |
"Abilita per i commenti la possibilità di attivare o disattivare la "
|
725 |
-
"memorizzazione dei dati personali in un cookie. Per farlo, vai su <a href
|
726 |
-
"
|
727 |
|
728 |
-
#: includes/settings.php:
|
729 |
msgid "No forms or form changes detected."
|
730 |
msgstr "Nessun form o modifica rilevati."
|
731 |
|
732 |
-
#: includes/settings.php:
|
733 |
msgid "Form saving failed. Please fill the Subject and Preferences fields."
|
734 |
msgstr "Salvataggio del form fallito. Compila i campi Utente e Preferenze."
|
735 |
|
736 |
-
#: includes/settings.php:
|
737 |
#, fuzzy
|
738 |
#| msgid "Settings applied successfully"
|
739 |
msgid "Form saved successfully - form status changed to Mapped."
|
740 |
msgstr "Form salvato con successo - Stato aggiornato a Mappato."
|
741 |
|
742 |
-
#: includes/settings.php:
|
743 |
msgid "Form updated successfully."
|
744 |
msgstr "Form aggiornato con successo."
|
745 |
|
746 |
-
#: includes/settings.php:
|
747 |
msgid "Form saving failed."
|
748 |
msgstr "Salvataggio del form fallito."
|
749 |
|
750 |
-
#: includes/settings.php:
|
751 |
#, fuzzy
|
752 |
#| msgid "Settings applied successfully"
|
753 |
msgid "Form deleted successfully."
|
754 |
msgstr "Form eliminato con successo."
|
755 |
|
756 |
-
#: includes/settings.php:
|
757 |
msgid "Form delete failed."
|
758 |
msgstr "Eliminazione del form fallita."
|
759 |
|
760 |
-
#: includes/settings.php:
|
761 |
msgid "Dismiss this notice."
|
762 |
msgstr "Chiudi questo avviso."
|
763 |
|
764 |
-
#: iubenda_cookie_solution.php:688
|
765 |
-
msgid "Loading"
|
766 |
-
msgstr ""
|
767 |
-
|
768 |
#, fuzzy
|
769 |
#~| msgid "Settings applied successfully"
|
770 |
#~ msgid "Forms detected successfully."
|
@@ -804,8 +665,8 @@ msgstr ""
|
|
804 |
#~ msgstr "Effettua il blocco automatico degli script rilevati dal plugin"
|
805 |
|
806 |
#~ msgid ""
|
807 |
-
#~ "see <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">our "
|
808 |
-
#~ "
|
809 |
#~ msgstr ""
|
810 |
#~ "consulta la <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">nostra "
|
811 |
#~ "documentazione</a> per la lista di script rilevati."
|
@@ -813,6 +674,9 @@ msgstr ""
|
|
813 |
#~ msgid "Parsing engine"
|
814 |
#~ msgstr "Parsing engine"
|
815 |
|
|
|
|
|
|
|
816 |
#~ msgid ""
|
817 |
#~ "Leaves scripts untouched on the page if the user has already given consent"
|
818 |
#~ msgstr ""
|
@@ -822,11 +686,11 @@ msgstr ""
|
|
822 |
#~ msgstr "Applica ottimizzazioni speciali in caso di errori con l'output"
|
823 |
|
824 |
#~ msgid ""
|
825 |
-
#~ "only select this option if you had performance problems or if you notice "
|
826 |
-
#~ "
|
827 |
#~ msgstr ""
|
828 |
-
#~ "attiva questa opzione solo qualora avessi problemi di performance o "
|
829 |
-
#~ "
|
830 |
|
831 |
#~ msgid "Parsed with iubenda experimental class in %s sec."
|
832 |
#~ msgstr "Parsed with iubenda experimental class in %s sec."
|
@@ -835,8 +699,8 @@ msgstr ""
|
|
835 |
#~ msgstr "Parsed with iubenda default class in %s sec."
|
836 |
|
837 |
#~ msgid ""
|
838 |
-
#~ "see <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">our "
|
839 |
-
#~ "
|
840 |
#~ msgstr ""
|
841 |
#~ "consulta la <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">nostra "
|
842 |
#~ "documentazione</a> per la lista di script rilevati."
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: Iubenda Cookie Solution\n"
|
4 |
+
"POT-Creation-Date: 2019-11-12 15:08+0100\n"
|
5 |
+
"PO-Revision-Date: 2019-11-14 12:07+0100\n"
|
6 |
"Last-Translator: \n"
|
7 |
"Language-Team: \n"
|
8 |
"Language: it\n"
|
25 |
msgstr "ID del form"
|
26 |
|
27 |
#: includes/forms-list-table.php:94
|
28 |
+
msgid "Source"
|
|
|
|
|
29 |
msgstr "Fonte"
|
30 |
|
31 |
#: includes/forms-list-table.php:95
|
60 |
msgid "No forms found."
|
61 |
msgstr "Nessun form trovato."
|
62 |
|
63 |
+
#: includes/forms.php:149 includes/settings.php:126
|
64 |
msgid "Forms"
|
65 |
msgstr "Form"
|
66 |
|
69 |
msgstr "Form"
|
70 |
|
71 |
#: includes/forms.php:566 includes/forms.php:580
|
72 |
+
#, php-format
|
73 |
msgid "First name"
|
74 |
msgstr "Nome"
|
75 |
|
76 |
#: includes/forms.php:572 includes/forms.php:592
|
77 |
+
#, php-format
|
78 |
msgid "Last name"
|
79 |
msgstr "Cognome"
|
80 |
|
81 |
#: includes/forms.php:586
|
82 |
+
#, php-format
|
83 |
msgid "Middle name"
|
84 |
msgstr "Secondo nome"
|
85 |
|
88 |
msgid "string"
|
89 |
msgstr "stringa"
|
90 |
|
91 |
+
#: includes/settings.php:57 includes/settings.php:171
|
92 |
msgid "Cookie Solution"
|
93 |
msgstr "Cookie Solution"
|
94 |
|
95 |
+
#: includes/settings.php:63 includes/settings.php:172
|
96 |
msgid "Consent Solution"
|
97 |
msgstr "Consent Solution"
|
98 |
|
99 |
+
#: includes/settings.php:114
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
100 |
msgid "Code"
|
101 |
msgstr "Codice"
|
102 |
|
103 |
+
#: includes/settings.php:115
|
104 |
#, fuzzy
|
105 |
#| msgid "Scripts blocking"
|
106 |
msgid "Script blocking"
|
107 |
msgstr "Blocco preventivo dei codici"
|
108 |
|
109 |
+
#: includes/settings.php:116
|
110 |
msgid "Custom scripts"
|
111 |
msgstr "Script personalizzati"
|
112 |
|
113 |
+
#: includes/settings.php:117
|
114 |
msgid "Content type"
|
115 |
msgstr "Tipo di contenuto"
|
116 |
|
117 |
+
#: includes/settings.php:118
|
118 |
msgid "RSS feed"
|
119 |
msgstr "Feed RSS"
|
120 |
|
121 |
+
#: includes/settings.php:119
|
122 |
msgid "POST requests"
|
123 |
msgstr "Richieste POST"
|
124 |
|
125 |
+
#: includes/settings.php:120
|
126 |
msgid "Menu position"
|
127 |
msgstr "Posizione menu"
|
128 |
|
129 |
+
#: includes/settings.php:121
|
|
|
|
|
|
|
|
|
130 |
msgid "Deactivation"
|
131 |
msgstr "Disattivazione"
|
132 |
|
133 |
+
#: includes/settings.php:127
|
134 |
+
msgid "Public API Key"
|
|
|
|
|
135 |
msgstr "Chiave API pubblica"
|
136 |
|
137 |
+
#: includes/settings.php:130 includes/settings.php:134
|
138 |
msgid "Field Mapping"
|
139 |
msgstr "Mapping dei campi"
|
140 |
|
141 |
+
#: includes/settings.php:192
|
142 |
msgid "Are you sure you want to delete this form?"
|
143 |
msgstr "Sei sicuro di voler eliminare questo form?"
|
144 |
|
145 |
+
#: includes/settings.php:340
|
146 |
msgid "You don't have permission to access this page."
|
147 |
msgstr "Non disponi dell'autorizzazione per accedere a questa pagina."
|
148 |
|
149 |
+
#: includes/settings.php:357
|
150 |
#, fuzzy
|
151 |
#| msgid ""
|
152 |
+
#| "This plugin is the easiest and most comprehensive way to adapt your WordPress "
|
153 |
+
#| "site to the European cookie law. Upon your user's first visit, the plugin "
|
154 |
+
#| "will take care of collecting their consent, of blocking the most popular "
|
155 |
+
#| "among the scripts that install cookies and subsequently reactivate these "
|
156 |
+
#| "scripts as soon as consent is provided. The basic settings include obtaining "
|
157 |
+
#| "consent by a simple scroll action (the most effective method) and script "
|
158 |
+
#| "reactivation without refreshing the page."
|
159 |
msgid ""
|
160 |
+
"This plugin is the easiest and most comprehensive way to adapt your WordPress "
|
161 |
+
"site to the ePrivacy (EU Cookie Law). Upon your users’ first visit, the plugin "
|
162 |
+
"will take care of collecting their consent, blocking the most popular cookie-"
|
163 |
+
"scripts and subsequently reactivating these scripts as soon as consent is "
|
164 |
+
"provided. The basic settings include obtaining consent by a simple scroll action "
|
165 |
+
"(the most effective method) and script reactivation without refreshing the page "
|
166 |
+
"(asynchronous script reactivation)."
|
167 |
msgstr ""
|
168 |
"Questo plugin è il modo più semplice e completo per adeguare il tuo sito "
|
169 |
+
"WordPress alla Direttiva ePrivacy (Cookie Law). Alla prima visita dell'utente il "
|
170 |
+
"plugin si occuperà di raccoglierne il consenso, bloccare gli script più popolari "
|
171 |
+
"che installano cookie e riattivarli non appena il consenso viene fornito. Le "
|
172 |
+
"impostazioni di base includono la raccolta del consenso tramite il semplice "
|
173 |
+
"scroll (il metodo più efficace) e la riattivazione senza il refresh della pagina."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
174 |
|
175 |
+
#: includes/settings.php:360
|
176 |
+
msgid "Does the Cookie Solution support IAB’s Transparency and Consent Framework?"
|
177 |
+
msgstr "La Cookie Solution supporta il Transparency e Consent Framework di IAB?"
|
178 |
+
|
179 |
+
#: includes/settings.php:361
|
180 |
#, fuzzy, php-format
|
181 |
#| msgid ""
|
182 |
+
#| "Visit our <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">plugin page."
|
183 |
+
#| "</a>"
|
184 |
msgid ""
|
185 |
"Yes it does. You can read more about it <a href=\"%s\" class=\"iubenda-url\" "
|
186 |
"target=\"_blank\">here.</a>"
|
187 |
msgstr ""
|
188 |
+
"Sì. Visita <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">questa pagina</"
|
189 |
+
"a> per maggiori dettagli."
|
190 |
|
191 |
+
#: includes/settings.php:364
|
192 |
+
msgid "Would you like to know more about the Cookie Law?"
|
|
|
|
|
193 |
msgstr "Vuoi saperne di più sulla Cookie Law?"
|
194 |
|
195 |
+
#: includes/settings.php:365
|
196 |
+
#, php-format
|
|
|
|
|
|
|
197 |
msgid ""
|
198 |
+
"Read our <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">complete guide "
|
199 |
+
"to the Cookie Law</a>."
|
200 |
msgstr ""
|
201 |
"Leggi la nostra <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">guida "
|
202 |
"completa alla Cookie Law</a>."
|
203 |
|
204 |
+
#: includes/settings.php:368
|
205 |
msgid "What is the full functionality of the plugin?"
|
206 |
msgstr "Quali sono le funzionalità del plugin?"
|
207 |
|
208 |
+
#: includes/settings.php:369
|
209 |
+
#, php-format
|
|
|
|
|
|
|
210 |
msgid ""
|
211 |
+
"Visit our <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">plugin page</a>."
|
|
|
212 |
msgstr ""
|
213 |
"Visita la <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">pagina "
|
214 |
"dedicata</a> al plugin."
|
215 |
|
216 |
+
#: includes/settings.php:372
|
217 |
msgid "Enter the iubenda code for the Cookie Solution below."
|
218 |
msgstr "Inserisci qui sotto il codice di iubenda per la Cookie Solution."
|
219 |
|
220 |
+
#: includes/settings.php:373
|
221 |
#, php-format
|
222 |
msgid ""
|
223 |
+
"In order to run the plugin, you need to enter the iubenda code that activates "
|
224 |
+
"the cookie law banner and the cookie policy in the form below. This code can be "
|
225 |
+
"generated on www.iubenda.com, following <a href=\"%s\" class=\"iubenda-url\" "
|
226 |
+
"target=\"_blank\">this guide.</a>"
|
227 |
msgstr ""
|
228 |
"Per far funzionare il plugin, è necessario inserire nel form sottostante il "
|
229 |
+
"codice di iubenda che attiva il cookie banner e la cookie policy. Questo codice "
|
230 |
+
"può essere generato su www.iubenda.com seguendo le istruzioni contenute in <a "
|
231 |
+
"href=\"%s\" class=\"iubenda-url\" target=\"_blank\">questa guida</a>."
|
|
|
232 |
|
233 |
+
#: includes/settings.php:378
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
234 |
msgid ""
|
235 |
"Maintaining comprehensive records of consent is a vital part of privacy "
|
236 |
+
"compliance in general but is specifically required under the GDPR. These records "
|
237 |
+
"should include a way of identifying the user, store proof of consent, record of "
|
238 |
+
"the consenting action, and the legal documents available to the user at the time "
|
239 |
+
"of consent, among other things. You can read about the <a href=\"https://www."
|
240 |
+
"iubenda.com/en/help/5428#records-of-consent\" target=\"_blank\">full "
|
241 |
+
"requirements here</a>."
|
242 |
+
msgstr ""
|
243 |
+
"Oltre ad essere un elemento vitale per il rispetto della privacy in generale, il "
|
244 |
+
"mantenimento di un registro dei consensi è specificamente richiesto dal GDPR. "
|
245 |
+
"Tra le altre cose, tale registro dovrebbe includere un modo per identificare "
|
246 |
+
"l'utente, la prova del consenso, la registrazione dell'azione di consenso e i "
|
247 |
+
"documenti legali messi a disposizione dell'utente al momento del consenso. <a "
|
248 |
+
"href=\"https://www.iubenda.com/it/help/5424#registro-consensi\" target=\"_blank"
|
249 |
+
"\">Trovi tutti i requisiti qui</a>."
|
250 |
+
|
251 |
+
#: includes/settings.php:402
|
|
|
252 |
#, php-format
|
253 |
msgid ""
|
254 |
+
"This plugin drastically reduces the need for direct interventions in the code of "
|
255 |
+
"the site by integrating with iubenda’s Cookie Solution. It provides a fully "
|
256 |
+
"customizable cookie banner, dynamically generates a cookie policy <a href=\"%s\" "
|
257 |
+
"target=\"_blank\">to match the services in use on your site</a>, and, fully "
|
258 |
+
"manages cookie-related consent – including the blocking of the most common "
|
259 |
+
"widgets and third-party cookies before consent is received – in order to comply "
|
260 |
+
"with the GDPR and ePrivacy."
|
261 |
+
msgstr ""
|
262 |
+
"Grazie all'integrazione con la Cookie Solution di iubenda, questo plugin riduce "
|
263 |
+
"drasticamente la necessità di interventi diretti sul codice del sito. Prevede un "
|
264 |
+
"cookie banner completamente personalizzabile, genera una cookie policy che <a "
|
265 |
+
"href=\"%s\" target=\"_blank\">rispecchia i servizi in uso dal tuo sito web</a> e "
|
266 |
+
"gestisce il consenso ai cookie (incluso il blocco automatico dei widget e dei "
|
267 |
+
"cookie di terza parte più diffusi) in modo da permetterti di rispettare il GDPR "
|
268 |
+
"e la Direttiva ePrivacy."
|
269 |
+
|
270 |
+
#: includes/settings.php:404
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
271 |
msgid ""
|
272 |
+
"Maintaining valid records of consent is a vital part of privacy compliance in "
|
273 |
+
"general, and it is specifically required under the GDPR. These records should "
|
274 |
+
"include a userid, timestamp, consent proof, record of the consenting action, and "
|
275 |
+
"the legal documents available to the user at the time of consent, among other "
|
276 |
+
"things. This plugin is THE most complete solution for recording, sorting and "
|
277 |
+
"maintaining GDPR records of consent*. The plugin also boasts built-in "
|
278 |
+
"compatibility with WordPress comment form, Contact Form 7 and WP Forms plugins "
|
279 |
+
"for your convenience, but can be manually integrated with any type of web-form "
|
280 |
+
"and can even store consent proofs for consents collected offline (e.g in-store "
|
281 |
+
"sign-ups) via WP media upload."
|
282 |
+
msgstr ""
|
283 |
+
"Il mantenimento di un valido registro dei consensi è un elemento vitale per il "
|
284 |
+
"rispetto della privacy, ed è specificamente richiesto dal GDPR. Tra le altre "
|
285 |
+
"cose, questo registro dovrebbe includere l'identificativo dell'utente, il "
|
286 |
+
"timestamp, la prova del consenso, la registrazione dell'azione di consenso e i "
|
287 |
+
"documenti legali messi a disposizione dell'utente nel momento in cui il consenso "
|
288 |
+
"è stato acquisito. Questo plugin è la soluzione più completa per la creazione e "
|
289 |
+
"la gestione di un registro dei consensi*. Il plugin è compatibile con il modulo "
|
290 |
+
"dei commenti WordPress e i plugin Contact Form 7 e WP Forms, può essere "
|
291 |
+
"integrato manualmente con qualsiasi form e può memorizzare la prova del consenso "
|
292 |
+
"anche per i consensi raccolti offline (ad esempio, le iscrizioni in-store) "
|
293 |
+
"tramite l'upload dei media WP."
|
294 |
+
|
295 |
+
#: includes/settings.php:422
|
296 |
msgid "Reset to defaults"
|
297 |
msgstr "Ripristina le impostazioni di default"
|
298 |
|
299 |
+
#: includes/settings.php:434
|
300 |
msgid "Need support for this plugin?"
|
301 |
msgstr "Serve aiuto per questo plugin?"
|
302 |
|
303 |
+
#: includes/settings.php:435
|
304 |
#, php-format
|
305 |
msgid ""
|
306 |
+
"Visit our <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">support forum.</"
|
307 |
+
"a>"
|
308 |
msgstr ""
|
309 |
+
"Visita il nostro <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">forum di "
|
310 |
+
"supporto</a>"
|
311 |
|
312 |
+
#: includes/settings.php:479
|
313 |
#, php-format
|
314 |
msgid "Enter the iubenda code for %s."
|
315 |
msgstr "Inserisci il codice di iubenda per %s."
|
316 |
|
317 |
+
#: includes/settings.php:490
|
318 |
msgid "Enter the iubenda code."
|
319 |
msgstr "Inserisci il codice di iubenda."
|
320 |
|
321 |
+
#: includes/settings.php:518
|
322 |
#, fuzzy
|
323 |
#| msgid "Enter a list of custom scripts (one per line)."
|
324 |
+
msgid "Enter the list of custom scripts you’d like to block here (one per line)"
|
|
|
|
|
325 |
msgstr "Elenca gli script personalizzati (uno per riga)."
|
326 |
|
327 |
+
#: includes/settings.php:522
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
328 |
#, fuzzy
|
329 |
#| msgid "Enter a list of custom iframes (one per line)."
|
330 |
+
msgid "Enter the list of custom iframes you’d like to block here (one per line)."
|
|
|
|
|
331 |
msgstr "Elenca gli iframe personalizzati (uno per riga)."
|
332 |
|
333 |
+
#: includes/settings.php:537
|
|
|
|
|
|
|
|
|
334 |
msgid "Automatically block scripts detected by the plugin."
|
335 |
msgstr "Blocca automaticamente gli script rilevati dal plugin."
|
336 |
|
337 |
+
#: includes/settings.php:538
|
338 |
#, php-format
|
339 |
msgid ""
|
340 |
"see <a href=\"%s\" target=\"_blank\">our documentation</a> for the list of "
|
343 |
"visita <a href=\"%s\" target=\"_blank\">la nostra documentazione</a> per la "
|
344 |
"lista degli script rilevati automaticamente dal plugin."
|
345 |
|
346 |
+
#: includes/settings.php:541
|
347 |
msgid "Primary"
|
348 |
msgstr "Primario"
|
349 |
|
350 |
+
#: includes/settings.php:542
|
351 |
msgid "Secondary"
|
352 |
msgstr "Secondario"
|
353 |
|
354 |
+
#: includes/settings.php:543
|
355 |
msgid "Select parsing engine."
|
356 |
msgstr "Seleziona il motore di parsing."
|
357 |
|
358 |
+
#: includes/settings.php:546
|
359 |
+
msgid "Leave scripts untouched on the page if the user has already given consent"
|
|
|
360 |
msgstr ""
|
361 |
+
"Lascia gli script intatti sulla pagina se l'utente ha già prestato il consenso"
|
|
|
362 |
|
363 |
+
#: includes/settings.php:547
|
|
|
|
|
|
|
|
|
364 |
msgid ""
|
365 |
+
"improves performance, highly recommended, to be deactivated only if your site "
|
366 |
+
"uses a caching system"
|
367 |
msgstr ""
|
368 |
+
"migliora le prestazioni, altamente consigliato, da disattivare solo qualora il "
|
369 |
+
"tuo sito utilizzi un sistema di cache"
|
370 |
|
371 |
+
#: includes/settings.php:561
|
372 |
msgid ""
|
373 |
+
"Restrict the plugin to run only for requests that have \"Content-type: text / "
|
374 |
+
"html\" (recommended)"
|
375 |
msgstr ""
|
376 |
+
"Restringi l'esecuzione del plugin alle sole richieste che presentano \"Content-"
|
377 |
+
"type: text/html\" (consigliato)"
|
378 |
|
379 |
+
#: includes/settings.php:573
|
380 |
msgid "Do not run the plugin inside the RSS feed (recommended)"
|
381 |
msgstr "Non eseguire il plugin all'interno dei Feed RSS (consigliato)"
|
382 |
|
383 |
+
#: includes/settings.php:585
|
384 |
#, fuzzy
|
385 |
#| msgid "Do not run the plugin inside the RSS feed (recommended)"
|
386 |
msgid "Do not run the plugin on POST requests (recommended)"
|
387 |
msgstr "Non eseguire il plugin per richieste POST (consigliato)"
|
388 |
|
389 |
+
#: includes/settings.php:597
|
390 |
msgid "Top menu"
|
391 |
msgstr "Menu principale"
|
392 |
|
393 |
+
#: includes/settings.php:598
|
394 |
msgid "Submenu"
|
395 |
msgstr "Sottomenu"
|
396 |
|
397 |
+
#: includes/settings.php:599
|
398 |
msgid ""
|
399 |
+
"Select whether to display iubenda in a top admin menu or the Settings submenu."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
400 |
msgstr ""
|
401 |
+
"Scegli se visualizzare iubenda in una voce di menu principale del pannello admin "
|
402 |
+
"o in un sottomenu della scheda Impostazioni."
|
403 |
|
404 |
+
#: includes/settings.php:611
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
405 |
msgid "Delete all plugin data upon deactivation?"
|
406 |
+
msgstr "Vuoi eliminare tutti i dati del plugin al momento della disattivazione?"
|
|
|
407 |
|
408 |
+
#: includes/settings.php:624
|
409 |
msgid "Enter your iubenda Javascript library public API key."
|
410 |
+
msgstr "Inserisci la chiave API pubblica per la libreria JavaScript di iubenda."
|
|
|
411 |
|
412 |
+
#: includes/settings.php:640
|
413 |
msgid ""
|
414 |
+
"This section lists the forms available for field mapping. The plugin currently "
|
415 |
+
"supports & detects: WordPress Comment, Contact Form 7, WooCommerce Checkout and "
|
416 |
+
"WP Forms."
|
417 |
msgstr ""
|
418 |
"Questa sezione elenca i form disponibili al mapping. Al momento il plugin "
|
419 |
+
"supporta e rileva: Commenti WordPress, Contact Form 7, WooCommerce Checkout e WP "
|
420 |
+
"Forms."
|
421 |
|
422 |
+
#: includes/settings.php:701
|
423 |
#, php-format
|
424 |
msgid "%s form title."
|
425 |
msgstr "%s nome del form."
|
426 |
|
427 |
+
#: includes/settings.php:701
|
428 |
msgid "Unknown"
|
429 |
msgstr "Sconosciuto"
|
430 |
|
431 |
+
#: includes/settings.php:703
|
432 |
msgid "Available form fields:"
|
433 |
msgstr "Campi disponibili:"
|
434 |
|
435 |
+
#: includes/settings.php:709
|
436 |
msgid "Publish"
|
437 |
msgstr "Pubblica"
|
438 |
|
439 |
+
#: includes/settings.php:714
|
440 |
msgid "Status"
|
441 |
msgstr "Stato"
|
442 |
|
443 |
+
#: includes/settings.php:727
|
444 |
msgid "Cancel"
|
445 |
msgstr "Annulla"
|
446 |
|
447 |
+
#: includes/settings.php:732
|
448 |
msgid "Save"
|
449 |
msgstr "Salva"
|
450 |
|
451 |
+
#: includes/settings.php:745
|
452 |
msgid "Map fields"
|
453 |
msgstr "Mappa i campi"
|
454 |
|
455 |
+
#: includes/settings.php:751
|
456 |
msgid "Subject fields"
|
457 |
msgstr "Utente"
|
458 |
|
459 |
+
#: includes/settings.php:752
|
|
|
|
|
|
|
|
|
|
|
460 |
msgid ""
|
461 |
"Subject fields allow you to store a series of identifying values about your "
|
462 |
+
"individual subjects/users. Please map the subject field with the corresponding "
|
463 |
+
"form fields where applicable."
|
464 |
msgstr ""
|
465 |
"Questi campi ti permettono di memorizzare una serie di valori identificativi "
|
466 |
+
"dell'utente. Associa gli attributi dell'utente ai corrispondenti campi del form "
|
467 |
+
"(quando applicabile)."
|
468 |
|
469 |
+
#: includes/settings.php:757
|
470 |
msgid "Subject field"
|
471 |
msgstr "Attributo"
|
472 |
|
473 |
+
#: includes/settings.php:758 includes/settings.php:802
|
474 |
msgid "Form field"
|
475 |
msgstr "Campo del form"
|
476 |
|
477 |
+
#: includes/settings.php:764
|
478 |
msgid "Autogenerated"
|
479 |
msgstr "Generato automaticamente"
|
480 |
|
481 |
+
#: includes/settings.php:764
|
482 |
msgid "None"
|
483 |
msgstr "Nessuno"
|
484 |
|
485 |
+
#: includes/settings.php:795
|
486 |
msgid "Preferences fields"
|
487 |
msgstr "Preferenze"
|
488 |
|
489 |
+
#: includes/settings.php:796
|
490 |
msgid ""
|
491 |
+
"Preferences fields allow you to store a record of the various opt-ins points at "
|
492 |
+
"which the user has agreed or given consent, such as fields for agreeing to terms "
|
493 |
+
"and conditions, newsletter, profiling, etc. *Please create at least one "
|
494 |
+
"preference field."
|
495 |
msgstr ""
|
496 |
+
"Questi campi ti permettono di memorizzare a cosa l'utente ha prestato il proprio "
|
497 |
+
"consenso, come ad esempio i termini e condizioni, la newsletter la profilazione, "
|
498 |
+
"ecc. *Si prega di creare almeno un campo."
|
499 |
|
500 |
+
#: includes/settings.php:801
|
501 |
msgid "Preferences field"
|
502 |
msgstr "Campo delle preferenze"
|
503 |
|
504 |
+
#: includes/settings.php:807 includes/settings.php:833 includes/settings.php:958
|
505 |
+
#: includes/settings.php:968 includes/settings.php:984
|
|
|
506 |
msgid "Enter field name"
|
507 |
msgstr "Aggiungi il nome di un campo"
|
508 |
|
509 |
+
#: includes/settings.php:821 includes/settings.php:848 includes/settings.php:889
|
510 |
+
#: includes/settings.php:917 includes/settings.php:968 includes/settings.php:984
|
511 |
+
msgid "Remove"
|
512 |
+
msgstr "Elimina"
|
513 |
+
|
514 |
+
#: includes/settings.php:857
|
515 |
msgid "Add New Preference"
|
516 |
msgstr "Aggiungi nuova preferenza"
|
517 |
|
518 |
+
#: includes/settings.php:864
|
519 |
msgid "Exclude fields"
|
520 |
msgstr "Esclusioni"
|
521 |
|
522 |
+
#: includes/settings.php:865
|
523 |
msgid ""
|
524 |
"Exclude fields allow you to create a list of fields that you would like to "
|
525 |
+
"exclude from your Consent Solution recorded proofs (for e.g. password or other "
|
526 |
+
"fields not related to the consent)."
|
527 |
msgstr ""
|
528 |
"Qui puoi creare una lista dei campi che desideri escludere dalle prove del "
|
529 |
+
"consenso memorizzate dalla Consent Solution (ad es. password o altri campi non "
|
530 |
+
"correlati)."
|
531 |
|
532 |
+
#: includes/settings.php:870
|
533 |
msgid "Exclude field"
|
534 |
msgstr "Campi esclusi"
|
535 |
|
536 |
+
#: includes/settings.php:927
|
537 |
msgid "Add New Exclude"
|
538 |
msgstr "Aggiungi una nuova esclusione"
|
539 |
|
540 |
+
#: includes/settings.php:937
|
541 |
msgid "Legal Notices"
|
542 |
msgstr "Note legali"
|
543 |
|
544 |
+
#: includes/settings.php:943
|
545 |
msgid "Legal documents"
|
546 |
msgstr "Documenti legali"
|
547 |
|
548 |
+
#: includes/settings.php:944
|
549 |
msgid ""
|
550 |
"In general, it’s important that you declare which legal documents are being "
|
551 |
+
"agreed upon when each consent is collected. However, if you use iubenda for your "
|
552 |
+
"legal documents, it is *required* that you identify the documents by selecting "
|
553 |
+
"them here."
|
554 |
msgstr ""
|
555 |
+
"In generale, è importante dichiarare quali documenti legali vengono accettati al "
|
556 |
+
"momento del conferimento del consenso. Se usi iubenda per le tue informative, "
|
557 |
+
"*devi* identificare tali documenti selezionandoli qui."
|
558 |
|
559 |
+
#: includes/settings.php:949
|
560 |
msgid "Identifier"
|
561 |
msgstr "Identificatore"
|
562 |
|
563 |
+
#: includes/settings.php:958
|
564 |
msgid "Please select each legal document available on your site."
|
565 |
msgstr "Seleziona tutti i documenti legali presenti sul tuo sito."
|
566 |
|
567 |
+
#: includes/settings.php:974
|
568 |
msgid "Alternatively, you may add your own custom document identifiers."
|
569 |
msgstr "In alternativa, puoi aggiungere degli identificatori personalizzati."
|
570 |
|
571 |
+
#: includes/settings.php:993
|
572 |
msgid "Add New Document"
|
573 |
msgstr "Aggiungi un nuovo documento"
|
574 |
|
575 |
+
#: includes/settings.php:1067 includes/settings.php:1099
|
|
|
576 |
msgid "Settings saved."
|
577 |
msgstr "Impostazioni salvate."
|
578 |
|
579 |
+
#: includes/settings.php:1079 includes/settings.php:1104
|
580 |
msgid "Settings restored to defaults."
|
581 |
msgstr "Impostazioni di default ripristinate."
|
582 |
|
583 |
+
#: includes/settings.php:1128
|
584 |
#, php-format
|
585 |
msgid ""
|
586 |
"Please enable comments cookies opt-in checkbox in the <a href=\"%s\" target="
|
587 |
"\"_blank\">Discussion settings</a>."
|
588 |
msgstr ""
|
589 |
"Abilita per i commenti la possibilità di attivare o disattivare la "
|
590 |
+
"memorizzazione dei dati personali in un cookie. Per farlo, vai su <a href=\"%s\" "
|
591 |
+
"target=\"_blank\">Impostazioni discussione</a>."
|
592 |
|
593 |
+
#: includes/settings.php:1148
|
594 |
msgid "No forms or form changes detected."
|
595 |
msgstr "Nessun form o modifica rilevati."
|
596 |
|
597 |
+
#: includes/settings.php:1216
|
598 |
msgid "Form saving failed. Please fill the Subject and Preferences fields."
|
599 |
msgstr "Salvataggio del form fallito. Compila i campi Utente e Preferenze."
|
600 |
|
601 |
+
#: includes/settings.php:1240
|
602 |
#, fuzzy
|
603 |
#| msgid "Settings applied successfully"
|
604 |
msgid "Form saved successfully - form status changed to Mapped."
|
605 |
msgstr "Form salvato con successo - Stato aggiornato a Mappato."
|
606 |
|
607 |
+
#: includes/settings.php:1243
|
608 |
msgid "Form updated successfully."
|
609 |
msgstr "Form aggiornato con successo."
|
610 |
|
611 |
+
#: includes/settings.php:1246
|
612 |
msgid "Form saving failed."
|
613 |
msgstr "Salvataggio del form fallito."
|
614 |
|
615 |
+
#: includes/settings.php:1263
|
616 |
#, fuzzy
|
617 |
#| msgid "Settings applied successfully"
|
618 |
msgid "Form deleted successfully."
|
619 |
msgstr "Form eliminato con successo."
|
620 |
|
621 |
+
#: includes/settings.php:1265
|
622 |
msgid "Form delete failed."
|
623 |
msgstr "Eliminazione del form fallita."
|
624 |
|
625 |
+
#: includes/settings.php:1325
|
626 |
msgid "Dismiss this notice."
|
627 |
msgstr "Chiudi questo avviso."
|
628 |
|
|
|
|
|
|
|
|
|
629 |
#, fuzzy
|
630 |
#~| msgid "Settings applied successfully"
|
631 |
#~ msgid "Forms detected successfully."
|
665 |
#~ msgstr "Effettua il blocco automatico degli script rilevati dal plugin"
|
666 |
|
667 |
#~ msgid ""
|
668 |
+
#~ "see <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">our documentation</"
|
669 |
+
#~ "a> for the list of detected scripts."
|
670 |
#~ msgstr ""
|
671 |
#~ "consulta la <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">nostra "
|
672 |
#~ "documentazione</a> per la lista di script rilevati."
|
674 |
#~ msgid "Parsing engine"
|
675 |
#~ msgstr "Parsing engine"
|
676 |
|
677 |
+
#~ msgid "Experimental (enhances performance)"
|
678 |
+
#~ msgstr "Sperimentale (performance migliorata)"
|
679 |
+
|
680 |
#~ msgid ""
|
681 |
#~ "Leaves scripts untouched on the page if the user has already given consent"
|
682 |
#~ msgstr ""
|
686 |
#~ msgstr "Applica ottimizzazioni speciali in caso di errori con l'output"
|
687 |
|
688 |
#~ msgid ""
|
689 |
+
#~ "only select this option if you had performance problems or if you notice that "
|
690 |
+
#~ "the blocking of code is run several times"
|
691 |
#~ msgstr ""
|
692 |
+
#~ "attiva questa opzione solo qualora avessi problemi di performance o notassi "
|
693 |
+
#~ "che il blocco dei codici viene applicato più volte"
|
694 |
|
695 |
#~ msgid "Parsed with iubenda experimental class in %s sec."
|
696 |
#~ msgstr "Parsed with iubenda experimental class in %s sec."
|
699 |
#~ msgstr "Parsed with iubenda default class in %s sec."
|
700 |
|
701 |
#~ msgid ""
|
702 |
+
#~ "see <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">our documentation</"
|
703 |
+
#~ "a> for the list of detected scripts this guide."
|
704 |
#~ msgstr ""
|
705 |
#~ "consulta la <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">nostra "
|
706 |
#~ "documentazione</a> per la lista di script rilevati."
|
languages/iubenda-cookie-law-solution.pot
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
msgid ""
|
3 |
msgstr ""
|
4 |
"Project-Id-Version: Iubenda Cookie Solution\n"
|
5 |
-
"POT-Creation-Date:
|
6 |
"PO-Revision-Date: 2015-08-12 10:36+0200\n"
|
7 |
"Last-Translator: \n"
|
8 |
"Language-Team: \n"
|
@@ -60,7 +60,7 @@ msgstr ""
|
|
60 |
msgid "No forms found."
|
61 |
msgstr ""
|
62 |
|
63 |
-
#: includes/forms.php:149 includes/settings.php:
|
64 |
msgid "Forms"
|
65 |
msgstr ""
|
66 |
|
@@ -85,91 +85,63 @@ msgstr ""
|
|
85 |
msgid "string"
|
86 |
msgstr ""
|
87 |
|
88 |
-
#: includes/settings.php:57 includes/settings.php:
|
89 |
msgid "Cookie Solution"
|
90 |
msgstr ""
|
91 |
|
92 |
-
#: includes/settings.php:63 includes/settings.php:
|
93 |
msgid "Consent Solution"
|
94 |
msgstr ""
|
95 |
|
96 |
-
#: includes/settings.php:
|
97 |
-
msgid "Not set"
|
98 |
-
msgstr ""
|
99 |
-
|
100 |
-
#: includes/settings.php:72
|
101 |
-
msgid "Strictly necessary"
|
102 |
-
msgstr ""
|
103 |
-
|
104 |
-
#: includes/settings.php:73
|
105 |
-
msgid "Basic interactions & functionalities"
|
106 |
-
msgstr ""
|
107 |
-
|
108 |
-
#: includes/settings.php:74
|
109 |
-
msgid "Experience enhancement"
|
110 |
-
msgstr ""
|
111 |
-
|
112 |
-
#: includes/settings.php:75
|
113 |
-
msgid "Analytics"
|
114 |
-
msgstr ""
|
115 |
-
|
116 |
-
#: includes/settings.php:76
|
117 |
-
msgid "Targeting & Advertising"
|
118 |
-
msgstr ""
|
119 |
-
|
120 |
-
#: includes/settings.php:123
|
121 |
msgid "Code"
|
122 |
msgstr ""
|
123 |
|
124 |
-
#: includes/settings.php:
|
125 |
msgid "Script blocking"
|
126 |
msgstr ""
|
127 |
|
128 |
-
#: includes/settings.php:
|
129 |
msgid "Custom scripts"
|
130 |
msgstr ""
|
131 |
|
132 |
-
#: includes/settings.php:
|
133 |
msgid "Content type"
|
134 |
msgstr ""
|
135 |
|
136 |
-
#: includes/settings.php:
|
137 |
msgid "RSS feed"
|
138 |
msgstr ""
|
139 |
|
140 |
-
#: includes/settings.php:
|
141 |
msgid "POST requests"
|
142 |
msgstr ""
|
143 |
|
144 |
-
#: includes/settings.php:
|
145 |
msgid "Menu position"
|
146 |
msgstr ""
|
147 |
|
148 |
-
#: includes/settings.php:
|
149 |
-
msgid "Google AMP"
|
150 |
-
msgstr ""
|
151 |
-
|
152 |
-
#: includes/settings.php:131
|
153 |
msgid "Deactivation"
|
154 |
msgstr ""
|
155 |
|
156 |
-
#: includes/settings.php:
|
157 |
msgid "Public Api Key"
|
158 |
msgstr ""
|
159 |
|
160 |
-
#: includes/settings.php:
|
161 |
msgid "Field Mapping"
|
162 |
msgstr ""
|
163 |
|
164 |
-
#: includes/settings.php:
|
165 |
msgid "Are you sure you want to delete this form?"
|
166 |
msgstr ""
|
167 |
|
168 |
-
#: includes/settings.php:
|
169 |
msgid "You don't have permission to access this page."
|
170 |
msgstr ""
|
171 |
|
172 |
-
#: includes/settings.php:
|
173 |
msgid ""
|
174 |
"This plugin is the easiest and most comprehensive way to adapt your "
|
175 |
"WordPress site to the ePrivacy (EU Cookie Law). Upon your users’ first "
|
@@ -180,45 +152,45 @@ msgid ""
|
|
180 |
"reactivation without refreshing the page (asynchronous script reactivation)."
|
181 |
msgstr ""
|
182 |
|
183 |
-
#: includes/settings.php:
|
184 |
msgid ""
|
185 |
"Does the Cookie Solution support IAB’s Transparency and Consent Framework?"
|
186 |
msgstr ""
|
187 |
|
188 |
-
#: includes/settings.php:
|
189 |
#, php-format
|
190 |
msgid ""
|
191 |
"Yes it does. You can read more about it <a href=\"%s\" class=\"iubenda-url"
|
192 |
"\" target=\"_blank\">here.</a>"
|
193 |
msgstr ""
|
194 |
|
195 |
-
#: includes/settings.php:
|
196 |
msgid "Would you like to know more about the cookie law?"
|
197 |
msgstr ""
|
198 |
|
199 |
-
#: includes/settings.php:
|
200 |
#, php-format
|
201 |
msgid ""
|
202 |
"Read our <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">complete "
|
203 |
"guide to the cookie law.</a>"
|
204 |
msgstr ""
|
205 |
|
206 |
-
#: includes/settings.php:
|
207 |
msgid "What is the full functionality of the plugin?"
|
208 |
msgstr ""
|
209 |
|
210 |
-
#: includes/settings.php:
|
211 |
#, php-format
|
212 |
msgid ""
|
213 |
"Visit our <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">plugin "
|
214 |
"page.</a>"
|
215 |
msgstr ""
|
216 |
|
217 |
-
#: includes/settings.php:
|
218 |
msgid "Enter the iubenda code for the Cookie Solution below."
|
219 |
msgstr ""
|
220 |
|
221 |
-
#: includes/settings.php:
|
222 |
#, php-format
|
223 |
msgid ""
|
224 |
"In order to run the plugin, you need to enter the iubenda code that "
|
@@ -227,7 +199,7 @@ msgid ""
|
|
227 |
"class=\"iubenda-url\" target=\"_blank\">this guide.</a>"
|
228 |
msgstr ""
|
229 |
|
230 |
-
#: includes/settings.php:
|
231 |
msgid ""
|
232 |
"Maintaining comprehensive records of consent is a vital part of privacy "
|
233 |
"compliance in general but is specifically required under the GDPR. These "
|
@@ -238,15 +210,7 @@ msgid ""
|
|
238 |
"consent\" target=\"_blank\">full requirements here</a>."
|
239 |
msgstr ""
|
240 |
|
241 |
-
#: includes/settings.php:
|
242 |
-
#, php-format
|
243 |
-
msgid ""
|
244 |
-
"If you are using per-purpose script blocking please disable the \"Leave "
|
245 |
-
"scripts untouched on the page if the user has already given consent\" "
|
246 |
-
"option. <a href=\"%s\" target=\"_self\">Disable now</a>"
|
247 |
-
msgstr ""
|
248 |
-
|
249 |
-
#: includes/settings.php:440
|
250 |
#, php-format
|
251 |
msgid ""
|
252 |
"This plugin drastically reduces the need for direct interventions in the "
|
@@ -258,7 +222,7 @@ msgid ""
|
|
258 |
"– in order to comply with the GDPR and ePrivacy."
|
259 |
msgstr ""
|
260 |
|
261 |
-
#: includes/settings.php:
|
262 |
msgid ""
|
263 |
"Maintaining valid records of consent is a vital part of privacy compliance "
|
264 |
"in general, and it is specifically required under the GDPR. These records "
|
@@ -272,240 +236,182 @@ msgid ""
|
|
272 |
"consents collected offline (e.g in-store sign-ups) via WP media upload."
|
273 |
msgstr ""
|
274 |
|
275 |
-
#: includes/settings.php:
|
276 |
msgid "Reset to defaults"
|
277 |
msgstr ""
|
278 |
|
279 |
-
#: includes/settings.php:
|
280 |
msgid "Need support for this plugin?"
|
281 |
msgstr ""
|
282 |
|
283 |
-
#: includes/settings.php:
|
284 |
#, php-format
|
285 |
msgid ""
|
286 |
"Visit our <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">support "
|
287 |
"forum.</a>"
|
288 |
msgstr ""
|
289 |
|
290 |
-
#: includes/settings.php:
|
291 |
#, php-format
|
292 |
msgid "Enter the iubenda code for %s."
|
293 |
msgstr ""
|
294 |
|
295 |
-
#: includes/settings.php:
|
296 |
msgid "Enter the iubenda code."
|
297 |
msgstr ""
|
298 |
|
299 |
-
#: includes/settings.php:
|
300 |
msgid ""
|
301 |
-
"
|
302 |
-
"purpose."
|
303 |
-
msgstr ""
|
304 |
-
|
305 |
-
#: includes/settings.php:557 includes/settings.php:564
|
306 |
-
msgid "Enter custom script"
|
307 |
msgstr ""
|
308 |
|
309 |
-
#: includes/settings.php:
|
310 |
-
#: includes/settings.php:575 includes/settings.php:582
|
311 |
-
#: includes/settings.php:939 includes/settings.php:966
|
312 |
-
#: includes/settings.php:1007 includes/settings.php:1035
|
313 |
-
#: includes/settings.php:1086 includes/settings.php:1102
|
314 |
-
msgid "Remove"
|
315 |
-
msgstr ""
|
316 |
-
|
317 |
-
#: includes/settings.php:573
|
318 |
msgid ""
|
319 |
-
"
|
320 |
-
"purpose. "
|
321 |
msgstr ""
|
322 |
|
323 |
-
#: includes/settings.php:
|
324 |
-
msgid "Enter custom iframe"
|
325 |
-
msgstr ""
|
326 |
-
|
327 |
-
#: includes/settings.php:620
|
328 |
msgid "Automatically block scripts detected by the plugin."
|
329 |
msgstr ""
|
330 |
|
331 |
-
#: includes/settings.php:
|
332 |
#, php-format
|
333 |
msgid ""
|
334 |
"see <a href=\"%s\" target=\"_blank\">our documentation</a> for the list of "
|
335 |
"detected scripts."
|
336 |
msgstr ""
|
337 |
|
338 |
-
#: includes/settings.php:
|
339 |
msgid "Primary"
|
340 |
msgstr ""
|
341 |
|
342 |
-
#: includes/settings.php:
|
343 |
msgid "Secondary"
|
344 |
msgstr ""
|
345 |
|
346 |
-
#: includes/settings.php:
|
347 |
msgid "Select parsing engine."
|
348 |
msgstr ""
|
349 |
|
350 |
-
#: includes/settings.php:
|
351 |
msgid ""
|
352 |
"Leave scripts untouched on the page if the user has already given consent"
|
353 |
msgstr ""
|
354 |
|
355 |
-
#: includes/settings.php:
|
356 |
msgid ""
|
357 |
"improves performance, highly recommended, to be deactivated only if your "
|
358 |
-
"site uses a caching system
|
359 |
msgstr ""
|
360 |
|
361 |
-
#: includes/settings.php:
|
362 |
msgid ""
|
363 |
"Restrict the plugin to run only for requests that have \"Content-type: "
|
364 |
"text / html\" (recommended)"
|
365 |
msgstr ""
|
366 |
|
367 |
-
#: includes/settings.php:
|
368 |
msgid "Do not run the plugin inside the RSS feed (recommended)"
|
369 |
msgstr ""
|
370 |
|
371 |
-
#: includes/settings.php:
|
372 |
msgid "Do not run the plugin on POST requests (recommended)"
|
373 |
msgstr ""
|
374 |
|
375 |
-
#: includes/settings.php:
|
376 |
msgid "Top menu"
|
377 |
msgstr ""
|
378 |
|
379 |
-
#: includes/settings.php:
|
380 |
msgid "Submenu"
|
381 |
msgstr ""
|
382 |
|
383 |
-
#: includes/settings.php:
|
384 |
msgid ""
|
385 |
"Select whether to display iubenda in a top admin menu or the Settings "
|
386 |
"submenu."
|
387 |
msgstr ""
|
388 |
|
389 |
-
#: includes/settings.php:
|
390 |
-
msgid "Enable Google AMP caching compatibility."
|
391 |
-
msgstr ""
|
392 |
-
|
393 |
-
#: includes/settings.php:695
|
394 |
-
#, php-format
|
395 |
-
msgid ""
|
396 |
-
"This plugin provides compatibility with Google AMP through <a href=\"%s\" "
|
397 |
-
"target=\"_blank\">AMP</a> and <a href=\"%s\" target=\"_blank\">AMP for WP</"
|
398 |
-
"a> WordPress plugins."
|
399 |
-
msgstr ""
|
400 |
-
|
401 |
-
#: includes/settings.php:698
|
402 |
-
msgid "Local file"
|
403 |
-
msgstr ""
|
404 |
-
|
405 |
-
#: includes/settings.php:699
|
406 |
-
msgid "Remote file"
|
407 |
-
msgstr ""
|
408 |
-
|
409 |
-
#: includes/settings.php:700
|
410 |
-
msgid "Select the iubenda AMP configuration file location."
|
411 |
-
msgstr ""
|
412 |
-
|
413 |
-
#: includes/settings.php:705
|
414 |
-
msgid ""
|
415 |
-
"No file available. Save changes to generate iubenda AMP configuration file."
|
416 |
-
msgstr ""
|
417 |
-
|
418 |
-
#: includes/settings.php:709
|
419 |
-
msgid "Autogenerated iubenda AMP configuration file."
|
420 |
-
msgstr ""
|
421 |
-
|
422 |
-
#: includes/settings.php:715
|
423 |
-
msgid ""
|
424 |
-
"If you're experiencing issues with AMP setup download the generated iubenda "
|
425 |
-
"AMP configuration file, upload it to any SSL server and paste the file link "
|
426 |
-
"to the field above."
|
427 |
-
msgstr ""
|
428 |
-
|
429 |
-
#: includes/settings.php:729
|
430 |
msgid "Delete all plugin data upon deactivation?"
|
431 |
msgstr ""
|
432 |
|
433 |
-
#: includes/settings.php:
|
434 |
msgid "Enter your iubenda Javascript library public API key."
|
435 |
msgstr ""
|
436 |
|
437 |
-
#: includes/settings.php:
|
438 |
msgid ""
|
439 |
"This section lists the forms available for field mapping. The plugin "
|
440 |
"currently supports & detects: WordPress Comment, Contact Form 7, "
|
441 |
"WooCommerce Checkout and WP Forms."
|
442 |
msgstr ""
|
443 |
|
444 |
-
#: includes/settings.php:
|
445 |
#, php-format
|
446 |
msgid "%s form title."
|
447 |
msgstr ""
|
448 |
|
449 |
-
#: includes/settings.php:
|
450 |
msgid "Unknown"
|
451 |
msgstr ""
|
452 |
|
453 |
-
#: includes/settings.php:
|
454 |
msgid "Available form fields:"
|
455 |
msgstr ""
|
456 |
|
457 |
-
#: includes/settings.php:
|
458 |
msgid "Publish"
|
459 |
msgstr ""
|
460 |
|
461 |
-
#: includes/settings.php:
|
462 |
msgid "Status"
|
463 |
msgstr ""
|
464 |
|
465 |
-
#: includes/settings.php:
|
466 |
msgid "Cancel"
|
467 |
msgstr ""
|
468 |
|
469 |
-
#: includes/settings.php:
|
470 |
msgid "Save"
|
471 |
msgstr ""
|
472 |
|
473 |
-
#: includes/settings.php:
|
474 |
msgid "Map fields"
|
475 |
msgstr ""
|
476 |
|
477 |
-
#: includes/settings.php:
|
478 |
msgid "Subject fields"
|
479 |
msgstr ""
|
480 |
|
481 |
-
#: includes/settings.php:
|
482 |
msgid ""
|
483 |
"Subject fields allow you to store a series of identifying values about your "
|
484 |
"individual subjects/users. Please map the subject field with the "
|
485 |
"corresponding form fields where applicable."
|
486 |
msgstr ""
|
487 |
|
488 |
-
#: includes/settings.php:
|
489 |
msgid "Subject field"
|
490 |
msgstr ""
|
491 |
|
492 |
-
#: includes/settings.php:
|
493 |
msgid "Form field"
|
494 |
msgstr ""
|
495 |
|
496 |
-
#: includes/settings.php:
|
497 |
msgid "Autogenerated"
|
498 |
msgstr ""
|
499 |
|
500 |
-
#: includes/settings.php:
|
501 |
msgid "None"
|
502 |
msgstr ""
|
503 |
|
504 |
-
#: includes/settings.php:
|
505 |
msgid "Preferences fields"
|
506 |
msgstr ""
|
507 |
|
508 |
-
#: includes/settings.php:
|
509 |
msgid ""
|
510 |
"Preferences fields allow you to store a record of the various opt-ins "
|
511 |
"points at which the user has agreed or given consent, such as fields for "
|
@@ -513,48 +419,54 @@ msgid ""
|
|
513 |
"create at least one preference field."
|
514 |
msgstr ""
|
515 |
|
516 |
-
#: includes/settings.php:
|
517 |
msgid "Preferences field"
|
518 |
msgstr ""
|
519 |
|
520 |
-
#: includes/settings.php:
|
521 |
-
#: includes/settings.php:
|
522 |
-
#: includes/settings.php:
|
523 |
msgid "Enter field name"
|
524 |
msgstr ""
|
525 |
|
526 |
-
#: includes/settings.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
527 |
msgid "Add New Preference"
|
528 |
msgstr ""
|
529 |
|
530 |
-
#: includes/settings.php:
|
531 |
msgid "Exclude fields"
|
532 |
msgstr ""
|
533 |
|
534 |
-
#: includes/settings.php:
|
535 |
msgid ""
|
536 |
"Exclude fields allow you to create a list of fields that you would like to "
|
537 |
"exclude from your Consent Solution recorded proofs (for e.g. password or "
|
538 |
"other fields not related to the consent)."
|
539 |
msgstr ""
|
540 |
|
541 |
-
#: includes/settings.php:
|
542 |
msgid "Exclude field"
|
543 |
msgstr ""
|
544 |
|
545 |
-
#: includes/settings.php:
|
546 |
msgid "Add New Exclude"
|
547 |
msgstr ""
|
548 |
|
549 |
-
#: includes/settings.php:
|
550 |
msgid "Legal Notices"
|
551 |
msgstr ""
|
552 |
|
553 |
-
#: includes/settings.php:
|
554 |
msgid "Legal documents"
|
555 |
msgstr ""
|
556 |
|
557 |
-
#: includes/settings.php:
|
558 |
msgid ""
|
559 |
"In general, it’s important that you declare which legal documents are being "
|
560 |
"agreed upon when each consent is collected. However, if you use iubenda for "
|
@@ -562,70 +474,65 @@ msgid ""
|
|
562 |
"selecting them here."
|
563 |
msgstr ""
|
564 |
|
565 |
-
#: includes/settings.php:
|
566 |
msgid "Identifier"
|
567 |
msgstr ""
|
568 |
|
569 |
-
#: includes/settings.php:
|
570 |
msgid "Please select each legal document available on your site."
|
571 |
msgstr ""
|
572 |
|
573 |
-
#: includes/settings.php:
|
574 |
msgid "Alternatively, you may add your own custom document identifiers."
|
575 |
msgstr ""
|
576 |
|
577 |
-
#: includes/settings.php:
|
578 |
msgid "Add New Document"
|
579 |
msgstr ""
|
580 |
|
581 |
-
#: includes/settings.php:
|
582 |
-
#: includes/settings.php:1421
|
583 |
msgid "Settings saved."
|
584 |
msgstr ""
|
585 |
|
586 |
-
#: includes/settings.php:
|
587 |
msgid "Settings restored to defaults."
|
588 |
msgstr ""
|
589 |
|
590 |
-
#: includes/settings.php:
|
591 |
#, php-format
|
592 |
msgid ""
|
593 |
"Please enable comments cookies opt-in checkbox in the <a href=\"%s\" target="
|
594 |
"\"_blank\">Discussion settings</a>."
|
595 |
msgstr ""
|
596 |
|
597 |
-
#: includes/settings.php:
|
598 |
msgid "No forms or form changes detected."
|
599 |
msgstr ""
|
600 |
|
601 |
-
#: includes/settings.php:
|
602 |
msgid "Form saving failed. Please fill the Subject and Preferences fields."
|
603 |
msgstr ""
|
604 |
|
605 |
-
#: includes/settings.php:
|
606 |
msgid "Form saved successfully - form status changed to Mapped."
|
607 |
msgstr ""
|
608 |
|
609 |
-
#: includes/settings.php:
|
610 |
msgid "Form updated successfully."
|
611 |
msgstr ""
|
612 |
|
613 |
-
#: includes/settings.php:
|
614 |
msgid "Form saving failed."
|
615 |
msgstr ""
|
616 |
|
617 |
-
#: includes/settings.php:
|
618 |
msgid "Form deleted successfully."
|
619 |
msgstr ""
|
620 |
|
621 |
-
#: includes/settings.php:
|
622 |
msgid "Form delete failed."
|
623 |
msgstr ""
|
624 |
|
625 |
-
#: includes/settings.php:
|
626 |
msgid "Dismiss this notice."
|
627 |
msgstr ""
|
628 |
-
|
629 |
-
#: iubenda_cookie_solution.php:688
|
630 |
-
msgid "Loading"
|
631 |
-
msgstr ""
|
2 |
msgid ""
|
3 |
msgstr ""
|
4 |
"Project-Id-Version: Iubenda Cookie Solution\n"
|
5 |
+
"POT-Creation-Date: 2019-11-14 10:52+0100\n"
|
6 |
"PO-Revision-Date: 2015-08-12 10:36+0200\n"
|
7 |
"Last-Translator: \n"
|
8 |
"Language-Team: \n"
|
60 |
msgid "No forms found."
|
61 |
msgstr ""
|
62 |
|
63 |
+
#: includes/forms.php:149 includes/settings.php:126
|
64 |
msgid "Forms"
|
65 |
msgstr ""
|
66 |
|
85 |
msgid "string"
|
86 |
msgstr ""
|
87 |
|
88 |
+
#: includes/settings.php:57 includes/settings.php:171
|
89 |
msgid "Cookie Solution"
|
90 |
msgstr ""
|
91 |
|
92 |
+
#: includes/settings.php:63 includes/settings.php:172
|
93 |
msgid "Consent Solution"
|
94 |
msgstr ""
|
95 |
|
96 |
+
#: includes/settings.php:114
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
97 |
msgid "Code"
|
98 |
msgstr ""
|
99 |
|
100 |
+
#: includes/settings.php:115
|
101 |
msgid "Script blocking"
|
102 |
msgstr ""
|
103 |
|
104 |
+
#: includes/settings.php:116
|
105 |
msgid "Custom scripts"
|
106 |
msgstr ""
|
107 |
|
108 |
+
#: includes/settings.php:117
|
109 |
msgid "Content type"
|
110 |
msgstr ""
|
111 |
|
112 |
+
#: includes/settings.php:118
|
113 |
msgid "RSS feed"
|
114 |
msgstr ""
|
115 |
|
116 |
+
#: includes/settings.php:119
|
117 |
msgid "POST requests"
|
118 |
msgstr ""
|
119 |
|
120 |
+
#: includes/settings.php:120
|
121 |
msgid "Menu position"
|
122 |
msgstr ""
|
123 |
|
124 |
+
#: includes/settings.php:121
|
|
|
|
|
|
|
|
|
125 |
msgid "Deactivation"
|
126 |
msgstr ""
|
127 |
|
128 |
+
#: includes/settings.php:127
|
129 |
msgid "Public Api Key"
|
130 |
msgstr ""
|
131 |
|
132 |
+
#: includes/settings.php:130 includes/settings.php:134
|
133 |
msgid "Field Mapping"
|
134 |
msgstr ""
|
135 |
|
136 |
+
#: includes/settings.php:192
|
137 |
msgid "Are you sure you want to delete this form?"
|
138 |
msgstr ""
|
139 |
|
140 |
+
#: includes/settings.php:340
|
141 |
msgid "You don't have permission to access this page."
|
142 |
msgstr ""
|
143 |
|
144 |
+
#: includes/settings.php:357
|
145 |
msgid ""
|
146 |
"This plugin is the easiest and most comprehensive way to adapt your "
|
147 |
"WordPress site to the ePrivacy (EU Cookie Law). Upon your users’ first "
|
152 |
"reactivation without refreshing the page (asynchronous script reactivation)."
|
153 |
msgstr ""
|
154 |
|
155 |
+
#: includes/settings.php:360
|
156 |
msgid ""
|
157 |
"Does the Cookie Solution support IAB’s Transparency and Consent Framework?"
|
158 |
msgstr ""
|
159 |
|
160 |
+
#: includes/settings.php:361
|
161 |
#, php-format
|
162 |
msgid ""
|
163 |
"Yes it does. You can read more about it <a href=\"%s\" class=\"iubenda-url"
|
164 |
"\" target=\"_blank\">here.</a>"
|
165 |
msgstr ""
|
166 |
|
167 |
+
#: includes/settings.php:364
|
168 |
msgid "Would you like to know more about the cookie law?"
|
169 |
msgstr ""
|
170 |
|
171 |
+
#: includes/settings.php:365
|
172 |
#, php-format
|
173 |
msgid ""
|
174 |
"Read our <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">complete "
|
175 |
"guide to the cookie law.</a>"
|
176 |
msgstr ""
|
177 |
|
178 |
+
#: includes/settings.php:368
|
179 |
msgid "What is the full functionality of the plugin?"
|
180 |
msgstr ""
|
181 |
|
182 |
+
#: includes/settings.php:369
|
183 |
#, php-format
|
184 |
msgid ""
|
185 |
"Visit our <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">plugin "
|
186 |
"page.</a>"
|
187 |
msgstr ""
|
188 |
|
189 |
+
#: includes/settings.php:372
|
190 |
msgid "Enter the iubenda code for the Cookie Solution below."
|
191 |
msgstr ""
|
192 |
|
193 |
+
#: includes/settings.php:373
|
194 |
#, php-format
|
195 |
msgid ""
|
196 |
"In order to run the plugin, you need to enter the iubenda code that "
|
199 |
"class=\"iubenda-url\" target=\"_blank\">this guide.</a>"
|
200 |
msgstr ""
|
201 |
|
202 |
+
#: includes/settings.php:378
|
203 |
msgid ""
|
204 |
"Maintaining comprehensive records of consent is a vital part of privacy "
|
205 |
"compliance in general but is specifically required under the GDPR. These "
|
210 |
"consent\" target=\"_blank\">full requirements here</a>."
|
211 |
msgstr ""
|
212 |
|
213 |
+
#: includes/settings.php:402
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
214 |
#, php-format
|
215 |
msgid ""
|
216 |
"This plugin drastically reduces the need for direct interventions in the "
|
222 |
"– in order to comply with the GDPR and ePrivacy."
|
223 |
msgstr ""
|
224 |
|
225 |
+
#: includes/settings.php:404
|
226 |
msgid ""
|
227 |
"Maintaining valid records of consent is a vital part of privacy compliance "
|
228 |
"in general, and it is specifically required under the GDPR. These records "
|
236 |
"consents collected offline (e.g in-store sign-ups) via WP media upload."
|
237 |
msgstr ""
|
238 |
|
239 |
+
#: includes/settings.php:422
|
240 |
msgid "Reset to defaults"
|
241 |
msgstr ""
|
242 |
|
243 |
+
#: includes/settings.php:434
|
244 |
msgid "Need support for this plugin?"
|
245 |
msgstr ""
|
246 |
|
247 |
+
#: includes/settings.php:435
|
248 |
#, php-format
|
249 |
msgid ""
|
250 |
"Visit our <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">support "
|
251 |
"forum.</a>"
|
252 |
msgstr ""
|
253 |
|
254 |
+
#: includes/settings.php:479
|
255 |
#, php-format
|
256 |
msgid "Enter the iubenda code for %s."
|
257 |
msgstr ""
|
258 |
|
259 |
+
#: includes/settings.php:490
|
260 |
msgid "Enter the iubenda code."
|
261 |
msgstr ""
|
262 |
|
263 |
+
#: includes/settings.php:518
|
264 |
msgid ""
|
265 |
+
"Enter the list of custom scripts you’d like to block here (one per line)"
|
|
|
|
|
|
|
|
|
|
|
266 |
msgstr ""
|
267 |
|
268 |
+
#: includes/settings.php:522
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
269 |
msgid ""
|
270 |
+
"Enter the list of custom iframes you’d like to block here (one per line). "
|
|
|
271 |
msgstr ""
|
272 |
|
273 |
+
#: includes/settings.php:537
|
|
|
|
|
|
|
|
|
274 |
msgid "Automatically block scripts detected by the plugin."
|
275 |
msgstr ""
|
276 |
|
277 |
+
#: includes/settings.php:538
|
278 |
#, php-format
|
279 |
msgid ""
|
280 |
"see <a href=\"%s\" target=\"_blank\">our documentation</a> for the list of "
|
281 |
"detected scripts."
|
282 |
msgstr ""
|
283 |
|
284 |
+
#: includes/settings.php:541
|
285 |
msgid "Primary"
|
286 |
msgstr ""
|
287 |
|
288 |
+
#: includes/settings.php:542
|
289 |
msgid "Secondary"
|
290 |
msgstr ""
|
291 |
|
292 |
+
#: includes/settings.php:543
|
293 |
msgid "Select parsing engine."
|
294 |
msgstr ""
|
295 |
|
296 |
+
#: includes/settings.php:546
|
297 |
msgid ""
|
298 |
"Leave scripts untouched on the page if the user has already given consent"
|
299 |
msgstr ""
|
300 |
|
301 |
+
#: includes/settings.php:547
|
302 |
msgid ""
|
303 |
"improves performance, highly recommended, to be deactivated only if your "
|
304 |
+
"site uses a caching system"
|
305 |
msgstr ""
|
306 |
|
307 |
+
#: includes/settings.php:561
|
308 |
msgid ""
|
309 |
"Restrict the plugin to run only for requests that have \"Content-type: "
|
310 |
"text / html\" (recommended)"
|
311 |
msgstr ""
|
312 |
|
313 |
+
#: includes/settings.php:573
|
314 |
msgid "Do not run the plugin inside the RSS feed (recommended)"
|
315 |
msgstr ""
|
316 |
|
317 |
+
#: includes/settings.php:585
|
318 |
msgid "Do not run the plugin on POST requests (recommended)"
|
319 |
msgstr ""
|
320 |
|
321 |
+
#: includes/settings.php:597
|
322 |
msgid "Top menu"
|
323 |
msgstr ""
|
324 |
|
325 |
+
#: includes/settings.php:598
|
326 |
msgid "Submenu"
|
327 |
msgstr ""
|
328 |
|
329 |
+
#: includes/settings.php:599
|
330 |
msgid ""
|
331 |
"Select whether to display iubenda in a top admin menu or the Settings "
|
332 |
"submenu."
|
333 |
msgstr ""
|
334 |
|
335 |
+
#: includes/settings.php:611
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
336 |
msgid "Delete all plugin data upon deactivation?"
|
337 |
msgstr ""
|
338 |
|
339 |
+
#: includes/settings.php:624
|
340 |
msgid "Enter your iubenda Javascript library public API key."
|
341 |
msgstr ""
|
342 |
|
343 |
+
#: includes/settings.php:640
|
344 |
msgid ""
|
345 |
"This section lists the forms available for field mapping. The plugin "
|
346 |
"currently supports & detects: WordPress Comment, Contact Form 7, "
|
347 |
"WooCommerce Checkout and WP Forms."
|
348 |
msgstr ""
|
349 |
|
350 |
+
#: includes/settings.php:701
|
351 |
#, php-format
|
352 |
msgid "%s form title."
|
353 |
msgstr ""
|
354 |
|
355 |
+
#: includes/settings.php:701
|
356 |
msgid "Unknown"
|
357 |
msgstr ""
|
358 |
|
359 |
+
#: includes/settings.php:703
|
360 |
msgid "Available form fields:"
|
361 |
msgstr ""
|
362 |
|
363 |
+
#: includes/settings.php:709
|
364 |
msgid "Publish"
|
365 |
msgstr ""
|
366 |
|
367 |
+
#: includes/settings.php:714
|
368 |
msgid "Status"
|
369 |
msgstr ""
|
370 |
|
371 |
+
#: includes/settings.php:727
|
372 |
msgid "Cancel"
|
373 |
msgstr ""
|
374 |
|
375 |
+
#: includes/settings.php:732
|
376 |
msgid "Save"
|
377 |
msgstr ""
|
378 |
|
379 |
+
#: includes/settings.php:745
|
380 |
msgid "Map fields"
|
381 |
msgstr ""
|
382 |
|
383 |
+
#: includes/settings.php:751
|
384 |
msgid "Subject fields"
|
385 |
msgstr ""
|
386 |
|
387 |
+
#: includes/settings.php:752
|
388 |
msgid ""
|
389 |
"Subject fields allow you to store a series of identifying values about your "
|
390 |
"individual subjects/users. Please map the subject field with the "
|
391 |
"corresponding form fields where applicable."
|
392 |
msgstr ""
|
393 |
|
394 |
+
#: includes/settings.php:757
|
395 |
msgid "Subject field"
|
396 |
msgstr ""
|
397 |
|
398 |
+
#: includes/settings.php:758 includes/settings.php:802
|
399 |
msgid "Form field"
|
400 |
msgstr ""
|
401 |
|
402 |
+
#: includes/settings.php:764
|
403 |
msgid "Autogenerated"
|
404 |
msgstr ""
|
405 |
|
406 |
+
#: includes/settings.php:764
|
407 |
msgid "None"
|
408 |
msgstr ""
|
409 |
|
410 |
+
#: includes/settings.php:795
|
411 |
msgid "Preferences fields"
|
412 |
msgstr ""
|
413 |
|
414 |
+
#: includes/settings.php:796
|
415 |
msgid ""
|
416 |
"Preferences fields allow you to store a record of the various opt-ins "
|
417 |
"points at which the user has agreed or given consent, such as fields for "
|
419 |
"create at least one preference field."
|
420 |
msgstr ""
|
421 |
|
422 |
+
#: includes/settings.php:801
|
423 |
msgid "Preferences field"
|
424 |
msgstr ""
|
425 |
|
426 |
+
#: includes/settings.php:807 includes/settings.php:833
|
427 |
+
#: includes/settings.php:958 includes/settings.php:968
|
428 |
+
#: includes/settings.php:984
|
429 |
msgid "Enter field name"
|
430 |
msgstr ""
|
431 |
|
432 |
+
#: includes/settings.php:821 includes/settings.php:848
|
433 |
+
#: includes/settings.php:889 includes/settings.php:917
|
434 |
+
#: includes/settings.php:968 includes/settings.php:984
|
435 |
+
msgid "Remove"
|
436 |
+
msgstr ""
|
437 |
+
|
438 |
+
#: includes/settings.php:857
|
439 |
msgid "Add New Preference"
|
440 |
msgstr ""
|
441 |
|
442 |
+
#: includes/settings.php:864
|
443 |
msgid "Exclude fields"
|
444 |
msgstr ""
|
445 |
|
446 |
+
#: includes/settings.php:865
|
447 |
msgid ""
|
448 |
"Exclude fields allow you to create a list of fields that you would like to "
|
449 |
"exclude from your Consent Solution recorded proofs (for e.g. password or "
|
450 |
"other fields not related to the consent)."
|
451 |
msgstr ""
|
452 |
|
453 |
+
#: includes/settings.php:870
|
454 |
msgid "Exclude field"
|
455 |
msgstr ""
|
456 |
|
457 |
+
#: includes/settings.php:927
|
458 |
msgid "Add New Exclude"
|
459 |
msgstr ""
|
460 |
|
461 |
+
#: includes/settings.php:937
|
462 |
msgid "Legal Notices"
|
463 |
msgstr ""
|
464 |
|
465 |
+
#: includes/settings.php:943
|
466 |
msgid "Legal documents"
|
467 |
msgstr ""
|
468 |
|
469 |
+
#: includes/settings.php:944
|
470 |
msgid ""
|
471 |
"In general, it’s important that you declare which legal documents are being "
|
472 |
"agreed upon when each consent is collected. However, if you use iubenda for "
|
474 |
"selecting them here."
|
475 |
msgstr ""
|
476 |
|
477 |
+
#: includes/settings.php:949
|
478 |
msgid "Identifier"
|
479 |
msgstr ""
|
480 |
|
481 |
+
#: includes/settings.php:958
|
482 |
msgid "Please select each legal document available on your site."
|
483 |
msgstr ""
|
484 |
|
485 |
+
#: includes/settings.php:974
|
486 |
msgid "Alternatively, you may add your own custom document identifiers."
|
487 |
msgstr ""
|
488 |
|
489 |
+
#: includes/settings.php:993
|
490 |
msgid "Add New Document"
|
491 |
msgstr ""
|
492 |
|
493 |
+
#: includes/settings.php:1067 includes/settings.php:1099
|
|
|
494 |
msgid "Settings saved."
|
495 |
msgstr ""
|
496 |
|
497 |
+
#: includes/settings.php:1079 includes/settings.php:1104
|
498 |
msgid "Settings restored to defaults."
|
499 |
msgstr ""
|
500 |
|
501 |
+
#: includes/settings.php:1128
|
502 |
#, php-format
|
503 |
msgid ""
|
504 |
"Please enable comments cookies opt-in checkbox in the <a href=\"%s\" target="
|
505 |
"\"_blank\">Discussion settings</a>."
|
506 |
msgstr ""
|
507 |
|
508 |
+
#: includes/settings.php:1148
|
509 |
msgid "No forms or form changes detected."
|
510 |
msgstr ""
|
511 |
|
512 |
+
#: includes/settings.php:1216
|
513 |
msgid "Form saving failed. Please fill the Subject and Preferences fields."
|
514 |
msgstr ""
|
515 |
|
516 |
+
#: includes/settings.php:1240
|
517 |
msgid "Form saved successfully - form status changed to Mapped."
|
518 |
msgstr ""
|
519 |
|
520 |
+
#: includes/settings.php:1243
|
521 |
msgid "Form updated successfully."
|
522 |
msgstr ""
|
523 |
|
524 |
+
#: includes/settings.php:1246
|
525 |
msgid "Form saving failed."
|
526 |
msgstr ""
|
527 |
|
528 |
+
#: includes/settings.php:1263
|
529 |
msgid "Form deleted successfully."
|
530 |
msgstr ""
|
531 |
|
532 |
+
#: includes/settings.php:1265
|
533 |
msgid "Form delete failed."
|
534 |
msgstr ""
|
535 |
|
536 |
+
#: includes/settings.php:1325
|
537 |
msgid "Dismiss this notice."
|
538 |
msgstr ""
|
|
|
|
|
|
|
|
readme.txt
CHANGED
@@ -1,11 +1,11 @@
|
|
1 |
-
===
|
2 |
Contributors: iubenda
|
3 |
Donate link:
|
4 |
Tags: cookies, cookie law, cookie policy, cookie banner, privacy policy, cookie consent, privacy, gdpr, eprivacy
|
5 |
Requires at least: 4.0
|
6 |
Requires PHP: 5.2.4
|
7 |
Tested up to: 5.3.2
|
8 |
-
Stable tag: 2.0.
|
9 |
License: MIT License
|
10 |
License URI: http://opensource.org/licenses/MIT
|
11 |
|
@@ -134,23 +134,9 @@ We will be very happy to receive feedback here: [Uservoice forum](http://support
|
|
134 |
|
135 |
== Changelog ==
|
136 |
|
137 |
-
= 2.
|
138 |
-
* Fix: Fix missing amp.php file in the SVN repo
|
139 |
-
|
140 |
-
= 2.1.3-beta =
|
141 |
-
* Tweak: Block tracking code from WP AMP plugins
|
142 |
-
|
143 |
-
= 2.1.2-beta =
|
144 |
-
* New: Google AMP compatibility option
|
145 |
-
|
146 |
-
= 2.1.1-beta =
|
147 |
-
* Tweak: Improved regular expression on per-purpose feature detection
|
148 |
* Fix: Safari unrecognized expression on CSS wildcards
|
149 |
|
150 |
-
= 2.1.0-beta =
|
151 |
-
* New: Per-purpose script blocking support
|
152 |
-
* New: "Reject" button support
|
153 |
-
|
154 |
= 2.0.2 =
|
155 |
* Fix: initialize iubenda CS on POST requests not working
|
156 |
* Tweak: iubenda generic menu icon switched to iubenda logo
|
@@ -394,5 +380,5 @@ We will be very happy to receive feedback here: [Uservoice forum](http://support
|
|
394 |
|
395 |
== Upgrade Notice ==
|
396 |
|
397 |
-
= 2.
|
398 |
-
*
|
1 |
+
=== Cookie and Consent Solution for the GDPR & ePrivacy ===
|
2 |
Contributors: iubenda
|
3 |
Donate link:
|
4 |
Tags: cookies, cookie law, cookie policy, cookie banner, privacy policy, cookie consent, privacy, gdpr, eprivacy
|
5 |
Requires at least: 4.0
|
6 |
Requires PHP: 5.2.4
|
7 |
Tested up to: 5.3.2
|
8 |
+
Stable tag: 2.0.3
|
9 |
License: MIT License
|
10 |
License URI: http://opensource.org/licenses/MIT
|
11 |
|
134 |
|
135 |
== Changelog ==
|
136 |
|
137 |
+
= 2.0.3 =
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
138 |
* Fix: Safari unrecognized expression on CSS wildcards
|
139 |
|
|
|
|
|
|
|
|
|
140 |
= 2.0.2 =
|
141 |
* Fix: initialize iubenda CS on POST requests not working
|
142 |
* Tweak: iubenda generic menu icon switched to iubenda logo
|
380 |
|
381 |
== Upgrade Notice ==
|
382 |
|
383 |
+
= 2.0.3 =
|
384 |
+
* Fix: Safari unrecognized expression on CSS wildcards
|
templates/amp.html
DELETED
@@ -1,37 +0,0 @@
|
|
1 |
-
<!DOCTYPE html>
|
2 |
-
<html lang="en">
|
3 |
-
<head>
|
4 |
-
<meta charset="UTF-8">
|
5 |
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6 |
-
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
7 |
-
<title>AMP Cookie Consent</title>
|
8 |
-
<script type="text/javascript">
|
9 |
-
var _iub = _iub || [];
|
10 |
-
_iub.csConfiguration = {
|
11 |
-
cookiePolicyInOtherWindow:true,reloadOnConsent:false,consentOnScroll:false,consentOnButton:false,lang:"en",siteId:825619,cookiePolicyId:8134524,
|
12 |
-
banner: {
|
13 |
-
position: 'float-bottom-center',
|
14 |
-
acceptButtonDisplay: true,
|
15 |
-
customizeButtonDisplay: true,
|
16 |
-
rejectButtonDisplay: true,
|
17 |
-
backgroundOverlay: true
|
18 |
-
},
|
19 |
-
callback: {
|
20 |
-
onPreferenceExpressed: function(preference) {
|
21 |
-
var consentAction = 'reject';
|
22 |
-
if (preference && preference.consent) {
|
23 |
-
consentAction = 'accept';
|
24 |
-
}
|
25 |
-
console.log('send consent-response', consentAction);
|
26 |
-
window.parent.postMessage({
|
27 |
-
type: 'consent-response',
|
28 |
-
action: consentAction
|
29 |
-
}, '*');
|
30 |
-
}
|
31 |
-
}
|
32 |
-
};
|
33 |
-
</script>
|
34 |
-
<script async src="https://cdn.iubenda.com/cs/beta/iubenda_cs.js"></script>
|
35 |
-
</head>
|
36 |
-
<body></body>
|
37 |
-
</html>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|