Cookie Notice by dFactory - Version 2.2.0

Version Description

  • New: Option to hide banner for logged in users (Compliance only)
Download this release

Release Info

Developer dfactory
Plugin Icon 128x128 Cookie Notice by dFactory
Version 2.2.0
Comparing to
See all releases

Code changes from version 2.1.5 to 2.2.0

cookie-notice.php CHANGED
@@ -2,7 +2,7 @@
2
  /*
3
  Plugin Name: Cookie Notice & Compliance for GDPR / CCPA
4
  Description: Cookie Notice allows you to you elegantly inform users that your site uses cookies and helps you comply with GDPR, CCPA and other data privacy laws.
5
- Version: 2.1.5
6
  Author: Hu-manity.co
7
  Author URI: https://hu-manity.co/
8
  Plugin URI: https://hu-manity.co/
@@ -29,7 +29,7 @@ if ( ! defined( 'ABSPATH' ) )
29
  * Cookie Notice class.
30
  *
31
  * @class Cookie_Notice
32
- * @version 2.1.5
33
  */
34
  class Cookie_Notice {
35
 
@@ -43,9 +43,9 @@ class Cookie_Notice {
43
  'app_id' => '',
44
  'app_key' => '',
45
  'app_blocking' => true,
 
46
  'position' => 'bottom',
47
  'message_text' => '',
48
- 'css_style' => 'bootstrap',
49
  'css_class' => '',
50
  'accept_text' => '',
51
  'refuse_text' => '',
@@ -68,6 +68,7 @@ class Cookie_Notice {
68
  'on_click' => false,
69
  'colors' => array(
70
  'text' => '#fff',
 
71
  'bar' => '#32323a',
72
  'bar_opacity' => 100
73
  ),
@@ -81,12 +82,13 @@ class Cookie_Notice {
81
  'script_placement' => 'header',
82
  'translate' => true,
83
  'deactivation_delete' => false,
84
- 'update_version' => 4,
85
  'update_notice' => true,
86
  'update_delay_date' => 0
87
  ),
88
- 'version' => '2.1.5'
89
  );
 
90
 
91
  private static $_instance;
92
 
@@ -151,6 +153,9 @@ class Cookie_Notice {
151
  add_action( 'init', array( $this, 'wpsc_add_cookie' ) );
152
  add_action( 'admin_init', array( $this, 'update_notice' ) );
153
  add_action( 'wp_ajax_cn_dismiss_notice', array( $this, 'ajax_dismiss_admin_notice' ) );
 
 
 
154
 
155
  // filters
156
  add_filter( 'plugin_action_links', array( $this, 'plugin_action_links' ), 10, 2 );
@@ -223,7 +228,7 @@ class Cookie_Notice {
223
  if ( defined( 'DOING_AJAX' ) && DOING_AJAX )
224
  return;
225
 
226
- $current_update = 5;
227
 
228
  // get current database version
229
  $current_db_version = get_option( 'cookie_notice_version', '1.0.0' );
@@ -236,10 +241,18 @@ class Cookie_Notice {
236
 
237
  // update plugin version
238
  update_option( 'cookie_notice_version', $this->defaults['version'], false );
239
-
240
- // show welcome, if no compliance only
241
- if ( empty( $this->status ) )
242
- set_transient( 'cn_show_welcome', 1 );
 
 
 
 
 
 
 
 
243
  }
244
  }
245
 
@@ -268,7 +281,7 @@ class Cookie_Notice {
268
  public function display_notice() {
269
  foreach( $this->notices as $notice ) {
270
  echo '
271
- <div id="cn-admin-notice" class="cn-notice ' . $notice['status'] . '">
272
  ' . ( ! empty( $notice['container'] ) ? '<' . $notice['container'] . ' class="cn-notice-container">' : '' ) . '
273
  ' . $notice['html'] . '
274
  ' . ( ! empty( $notice['container'] ) ? '</' . $notice['container'] . ' class="cn-notice-container">' : '' ) . '
@@ -372,9 +385,9 @@ class Cookie_Notice {
372
  $args['class'] = esc_attr( $args['class'] );
373
 
374
  if ( Cookie_Notice()->get_status() === 'active' )
375
- $shortcode = '<a href="#" class="cn-revoke-cookie cn-button cn-revoke-inline' . ( $options['css_style'] !== 'none' ? ' ' . $options['css_style'] : '' ) . ( $args['class'] !== '' ? ' ' . $args['class'] : '' ) . '" title="' . esc_html( $args['title'] ) . '" data-hu-action="notice-revoke">' . esc_html( $args['title'] ) . '</a>';
376
  else
377
- $shortcode = '<a href="#" class="cn-revoke-cookie cn-button cn-revoke-inline' . ( $options['css_style'] !== 'none' ? ' ' . $options['css_style'] : '' ) . ( $args['class'] !== '' ? ' ' . $args['class'] : '' ) . '" title="' . esc_html( $args['title'] ) . '">' . esc_html( $args['title'] ) . '</a>';
378
 
379
  return $shortcode;
380
  }
@@ -466,6 +479,50 @@ class Cookie_Notice {
466
  else
467
  do_action( 'wpsc_delete_cookie', 'cookie_notice_accepted' );
468
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
469
 
470
  /**
471
  * Add links to settings page.
@@ -477,12 +534,125 @@ class Cookie_Notice {
477
  public function plugin_action_links( $links, $file ) {
478
  if ( ! current_user_can( apply_filters( 'cn_manage_cookie_notice_cap', 'manage_options' ) ) )
479
  return $links;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
480
 
481
- if ( $file == plugin_basename( __FILE__ ) )
482
- array_unshift( $links, sprintf( '<a href="%s">%s</a>', esc_url( admin_url( 'admin.php?page=cookie-notice' ) ), __( 'Settings', 'cookie-notice' ) ) );
 
 
 
 
 
483
 
484
  return $links;
485
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
486
 
487
  /**
488
  * Get allowed script blocking HTML.
2
  /*
3
  Plugin Name: Cookie Notice & Compliance for GDPR / CCPA
4
  Description: Cookie Notice allows you to you elegantly inform users that your site uses cookies and helps you comply with GDPR, CCPA and other data privacy laws.
5
+ Version: 2.2.0
6
  Author: Hu-manity.co
7
  Author URI: https://hu-manity.co/
8
  Plugin URI: https://hu-manity.co/
29
  * Cookie Notice class.
30
  *
31
  * @class Cookie_Notice
32
+ * @version 2.2.0
33
  */
34
  class Cookie_Notice {
35
 
43
  'app_id' => '',
44
  'app_key' => '',
45
  'app_blocking' => true,
46
+ 'hide_banner' => false,
47
  'position' => 'bottom',
48
  'message_text' => '',
 
49
  'css_class' => '',
50
  'accept_text' => '',
51
  'refuse_text' => '',
68
  'on_click' => false,
69
  'colors' => array(
70
  'text' => '#fff',
71
+ 'button' => '#00a99d',
72
  'bar' => '#32323a',
73
  'bar_opacity' => 100
74
  ),
82
  'script_placement' => 'header',
83
  'translate' => true,
84
  'deactivation_delete' => false,
85
+ 'update_version' => 5,
86
  'update_notice' => true,
87
  'update_delay_date' => 0
88
  ),
89
+ 'version' => '2.2.0'
90
  );
91
+ private $deactivaion_url = '';
92
 
93
  private static $_instance;
94
 
153
  add_action( 'init', array( $this, 'wpsc_add_cookie' ) );
154
  add_action( 'admin_init', array( $this, 'update_notice' ) );
155
  add_action( 'wp_ajax_cn_dismiss_notice', array( $this, 'ajax_dismiss_admin_notice' ) );
156
+ add_action( 'admin_footer', array( $this, 'deactivate_plugin_template' ) );
157
+ add_action( 'wp_ajax_cn-deactivate-plugin', array( $this, 'deactivate_plugin' ) );
158
+ add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
159
 
160
  // filters
161
  add_filter( 'plugin_action_links', array( $this, 'plugin_action_links' ), 10, 2 );
228
  if ( defined( 'DOING_AJAX' ) && DOING_AJAX )
229
  return;
230
 
231
+ $current_update = 6;
232
 
233
  // get current database version
234
  $current_db_version = get_option( 'cookie_notice_version', '1.0.0' );
241
 
242
  // update plugin version
243
  update_option( 'cookie_notice_version', $this->defaults['version'], false );
244
+ }
245
+
246
+ // if visiting settings, mark notice as read
247
+ if ( ! empty( $_GET['page'] ) && $_GET['page'] === 'cookie-notice' && ! empty( $_GET['welcome'] ) ) {
248
+ $this->options['general'] = wp_parse_args( array( 'update_notice' => true ), $this->options['general'] );
249
+ update_option( 'cookie_notice_options', $this->options['general'] );
250
+ }
251
+
252
+ // show notice, if no compliance only
253
+ if ( $this->options['general']['update_notice'] === true && empty( $this->status ) ) {
254
+ // set_transient( 'cn_show_welcome', 1 );
255
+ $this->add_notice( '<div class="cn-notice-text"><h2>' . __( 'Make sure your website complies with the latest cookie consent laws', 'cookie-notice' ) . '</h2><p>' . __( 'Run compliance check to learn if your website complies with the lastes consent record storage and cookie blocking requirements.', 'cookie-notice' ) . '</p><p class="cn-notice-actions"><a href="' . admin_url( 'admin.php' ) . '?page=cookie-notice&welcome=1' . '" class="button button-primary">' . __( 'Run Compliance Check', 'cookie-notice' ) . '</a> <a href="#" class="button-link cn-notice-dismiss">' . __( 'Dismiss Notice', 'cookie-notice' ) . '</a></p></div>', '', 'div' );
256
  }
257
  }
258
 
281
  public function display_notice() {
282
  foreach( $this->notices as $notice ) {
283
  echo '
284
+ <div id="cn-admin-notice" class="cn-notice notice notice-info ' . $notice['status'] . '">
285
  ' . ( ! empty( $notice['container'] ) ? '<' . $notice['container'] . ' class="cn-notice-container">' : '' ) . '
286
  ' . $notice['html'] . '
287
  ' . ( ! empty( $notice['container'] ) ? '</' . $notice['container'] . ' class="cn-notice-container">' : '' ) . '
385
  $args['class'] = esc_attr( $args['class'] );
386
 
387
  if ( Cookie_Notice()->get_status() === 'active' )
388
+ $shortcode = '<a href="#" class="cn-revoke-cookie cn-button-inline cn-revoke-inline' . ( $args['class'] !== '' ? ' ' . $args['class'] : '' ) . '" title="' . esc_html( $args['title'] ) . '" data-hu-action="cookies-notice-revoke">' . esc_html( $args['title'] ) . '</a>';
389
  else
390
+ $shortcode = '<a href="#" class="cn-revoke-cookie cn-button-inline cn-revoke-inline' . ( $args['class'] !== '' ? ' ' . $args['class'] : '' ) . '" title="' . esc_html( $args['title'] ) . '">' . esc_html( $args['title'] ) . '</a>';
391
 
392
  return $shortcode;
393
  }
479
  else
480
  do_action( 'wpsc_delete_cookie', 'cookie_notice_accepted' );
481
  }
482
+
483
+ /**
484
+ * Enqueue admin scripts and styles.
485
+ *
486
+ * @param string $page
487
+ * @return void
488
+ */
489
+ public function admin_enqueue_scripts( $page ) {
490
+ // plugins?
491
+ if ( $page === 'plugins.php' ) {
492
+ add_thickbox();
493
+
494
+ wp_enqueue_script( 'cookie-notice-admin-plugins', plugins_url( '/js/admin-plugins.js', __FILE__ ), array( 'jquery' ), $this->defaults['version'] );
495
+
496
+ wp_enqueue_style( 'cookie-notice-admin-plugins', plugins_url( '/css/admin-plugins.css', __FILE__ ), array(), $this->defaults['version'] );
497
+
498
+ wp_localize_script(
499
+ 'cookie-notice-admin-plugins',
500
+ 'cnArgsPlugins',
501
+ array(
502
+ 'deactivate' => __( 'Cookie Notice & Compliance - Deactivation survey', 'cookie-notice' ),
503
+ 'nonce' => wp_create_nonce( 'cn-deactivate-plugin' )
504
+ )
505
+ );
506
+ }
507
+
508
+ // load notice, if no compliance only
509
+ if ( $this->options['general']['update_notice'] === true && empty( $this->status ) ) {
510
+ wp_enqueue_script(
511
+ 'cookie-notice-admin-notice', plugins_url( '/js/admin-notice.js', __FILE__ ), array( 'jquery' ), Cookie_Notice()->defaults['version']
512
+ );
513
+
514
+ wp_localize_script(
515
+ 'cookie-notice-admin-notice', 'cnArgsNotice', array(
516
+ 'ajaxURL' => admin_url( 'admin-ajax.php' ),
517
+ 'nonce' => wp_create_nonce( 'cn_dismiss_notice' ),
518
+ )
519
+ );
520
+
521
+ wp_enqueue_style(
522
+ 'cookie-notice-admin-notice', plugins_url( '/css/admin-notice.css', __FILE__ ), array(), Cookie_Notice()->defaults['version']
523
+ );
524
+ }
525
+ }
526
 
527
  /**
528
  * Add links to settings page.
534
  public function plugin_action_links( $links, $file ) {
535
  if ( ! current_user_can( apply_filters( 'cn_manage_cookie_notice_cap', 'manage_options' ) ) )
536
  return $links;
537
+
538
+ static $plugin;
539
+
540
+ $plugin = plugin_basename( __FILE__ );
541
+
542
+ if ( $file == $plugin ) {
543
+ if ( ! empty( $links['deactivate'] ) ) {
544
+ // link already contains class attribute?
545
+ if ( preg_match( '/<a.*?class=(\'|")(.*?)(\'|").*?>/is', $links['deactivate'], $result ) === 1 )
546
+ $links['deactivate'] = preg_replace( '/(<a.*?class=(?:\'|").*?)((?:\'|").*?>)/s', '$1 cn-deactivate-plugin-modal$2', $links['deactivate'] );
547
+ else
548
+ $links['deactivate'] = preg_replace( '/(<a.*?)>/s', '$1 class="cn-deactivate-plugin-modal">', $links['deactivate'] );
549
+
550
+ // link already contains href attribute?
551
+ if ( preg_match( '/<a.*?href=(\'|")(.*?)(\'|").*?>/is', $links['deactivate'], $result ) === 1 ) {
552
+ if ( ! empty( $result[2] ) )
553
+ $this->deactivaion_url = $result[2];
554
+ }
555
+ }
556
 
557
+ // put settings link at start
558
+ array_unshift( $links, sprintf( '<a href="%s">%s</a>', admin_url( 'admin.php' ) . '?page=cookie-notice', __( 'Settings', 'cookie-notice' ) ) );
559
+
560
+ // add add-ons link
561
+ if ( empty( $this->status ) )
562
+ $links[] = sprintf( '<a href="%s" style="color: #20C19E; font-weight: bold;">%s</a>', admin_url( 'admin.php' ) . '?page=cookie-notice&welcome=1', __( 'Free Upgrade', 'cookie-notice' ) );
563
+ }
564
 
565
  return $links;
566
  }
567
+
568
+ /**
569
+ * Deactivation modal HTML template.
570
+ *
571
+ * @return void
572
+ */
573
+ public function deactivate_plugin_template() {
574
+ global $pagenow;
575
+
576
+ // display only for plugins page
577
+ if ( $pagenow !== 'plugins.php' )
578
+ return;
579
+
580
+ echo '
581
+ <div id="cn-deactivation-modal" style="display: none;">
582
+ <div id="cn-deactivation-container">
583
+ <div id="cn-deactivation-body">
584
+ <div class="cn-deactivation-options">
585
+ <p><em>' . __( "We're sorry to see you go. Could you please tell us what happened?", 'cookie-notice' ) . '</em></p>
586
+ <ul>';
587
+
588
+ foreach ( array(
589
+ '1' => __( "I couldn't figure out how to make it work.", 'cookie-notice' ),
590
+ '2' => __( 'I found another plugin to use for the same task.', 'cookie-notice' ),
591
+ '3' => __( 'The Cookie Compliance banner is too big.', 'cookie-notice' ),
592
+ '4' => __( 'The Cookie Compliance consent choices (Silver, Gold, Platinum) are confusing.', 'cookie-notice' ),
593
+ '5' => __( 'The Cookie Compliance default settings are too strict.', 'cookie-notice' ),
594
+ '6' => __( 'The web application user interface is not clear to me.', 'cookie-notice' ),
595
+ '7' => __( "Support isn't timely.", 'cookie-notice' ),
596
+ '8' => __( 'Other', 'cookie-notice' )
597
+ ) as $option => $text ) {
598
+ echo '
599
+ <li><label><input type="radio" name="cn_deactivation_option" value="' . $option . '" ' . checked( '8', $option, false ) . ' />' . esc_html( $text ) . '</label></li>';
600
+ }
601
+
602
+ echo '
603
+ </ul>
604
+ </div>
605
+ <div class="cn-deactivation-textarea">
606
+ <textarea name="cn_deactivation_other"></textarea>
607
+ </div>
608
+ </div>
609
+ <div id="cn-deactivation-footer">
610
+ <a href="" class="button cn-deactivate-plugin-cancel">' . __( 'Cancel', 'cookie-notice' ) . '</a>
611
+ <a href="' . $this->deactivaion_url . '" class="button button-secondary cn-deactivate-plugin-simple">' . __( 'Deactivate', 'cookie-notice' ) . '</a>
612
+ <a href="' . $this->deactivaion_url . '" class="button button-primary right cn-deactivate-plugin-data">' . __( 'Deactivate & Submit', 'cookie-notice' ) . '</a>
613
+ <span class="spinner"></span>
614
+ </div>
615
+ </div>
616
+ </div>';
617
+ }
618
+
619
+ /**
620
+ * Send data about deactivation of the plugin.
621
+ *
622
+ * @return void
623
+ */
624
+ public function deactivate_plugin() {
625
+ // check permissions
626
+ if ( ! current_user_can( 'install_plugins' ) || wp_verify_nonce( $_POST['nonce'], 'cn-deactivate-plugin' ) === false )
627
+ return;
628
+
629
+ if ( isset( $_POST['option_id'] ) ) {
630
+ $option_id = (int) $_POST['option_id'];
631
+ $other = esc_html( $_POST['other'] );
632
+
633
+ // avoid fake submissions
634
+ if ( $option_id == 8 && $other == '' )
635
+ wp_send_json_success();
636
+
637
+ wp_remote_post(
638
+ 'https://hu-manity.co/wp-json/api/v1/forms/', array(
639
+ 'timeout' => 15,
640
+ 'blocking' => true,
641
+ 'headers' => array(),
642
+ 'body' => array(
643
+ 'id' => 1,
644
+ 'option' => $option_id,
645
+ 'other' => $other,
646
+ 'referrer' => get_site_url()
647
+ )
648
+ )
649
+ );
650
+
651
+ wp_send_json_success();
652
+ }
653
+
654
+ wp_send_json_error();
655
+ }
656
 
657
  /**
658
  * Get allowed script blocking HTML.
css/admin-notice.css CHANGED
@@ -3,17 +3,28 @@
3
  }
4
 
5
  .cn-notice .cn-notice-container {
 
6
  display: flex;
 
7
  align-items: center;
8
  }
9
 
 
 
 
 
10
  .cn-notice .cn-notice-actions .button {
11
  display: inline-block;
12
- margin: 2px 0;
13
  }
14
 
15
- .cn-notice .cn-notice-text h3 {
16
  margin-top: 0;
 
 
 
 
 
17
  }
18
 
19
  .cn-notice .cn-notice-text strong {
@@ -22,4 +33,16 @@
22
 
23
  .cn-notice .cn-notice-icon svg path {
24
  fill: #666 !important;
 
 
 
 
 
 
 
 
 
 
 
 
25
  }
3
  }
4
 
5
  .cn-notice .cn-notice-container {
6
+ padding: 1em;
7
  display: flex;
8
+ justify-content: space-between;
9
  align-items: center;
10
  }
11
 
12
+ .cn-notice .cn-notice-actions {
13
+ margin-bottom: 0;
14
+ }
15
+
16
  .cn-notice .cn-notice-actions .button {
17
  display: inline-block;
18
+ margin: 0.5em 0 0;
19
  }
20
 
21
+ .cn-notice .cn-notice-text h2 {
22
  margin-top: 0;
23
+ margin-bottom: 0.5em;
24
+ }
25
+
26
+ .cn-notice .cn-notice-dismiss {
27
+ margin-left: 1em;
28
  }
29
 
30
  .cn-notice .cn-notice-text strong {
33
 
34
  .cn-notice .cn-notice-icon svg path {
35
  fill: #666 !important;
36
+ }
37
+
38
+ @media only screen and (max-width: 960px) {
39
+ .cn-notice .cn-notice-container {
40
+ flex-direction: column;
41
+ align-items: initial;
42
+ }
43
+
44
+ .cn-notice .cn-notice-container .cn-notice-text {
45
+ order: 1;
46
+ padding-top: 1em;
47
+ }
48
  }
css/admin-notice.min.css DELETED
@@ -1 +0,0 @@
1
- #cn-admin-notice.cn-notice{border-left-color:#00a99d}.cn-notice .cn-notice-container{display:flex;align-items:center}.cn-notice .cn-notice-actions .button{display:inline-block;margin:2px 0}.cn-notice .cn-notice-text h3{margin-top:0}.cn-notice .cn-notice-text strong{color:#000}.cn-notice .cn-notice-icon svg path{fill:#666!important}
 
css/admin-plugins.css ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .cn-deactivation-modal {
2
+ max-height: 500px;
3
+ overflow: hidden;
4
+ top: 50% !important;
5
+ transform: translateY(-50%);
6
+ }
7
+ .cn-deactivation-modal #TB_title {
8
+ padding: 13px 16px;
9
+ background: #f3f3f3;
10
+ }
11
+ .cn-deactivation-modal #TB_title > div {
12
+ padding: 0;
13
+ color: #000;
14
+ }
15
+ .cn-deactivation-modal #TB_ajaxContent {
16
+ width: auto !important;
17
+ height: calc(100% - 112px) !important;
18
+ padding: 0;
19
+ }
20
+ .cn-deactivation-options p:first-child {
21
+ margin-top: 0;
22
+ }
23
+ .cn-deactivation-buttons .spinner {
24
+ float: none;
25
+ /* text-align: right; */
26
+ }
27
+ #cn-deactivation-container {
28
+ width: 100%;
29
+ }
30
+ #cn-deactivation-container textarea {
31
+ width: 100%;
32
+ min-height: 100px;
33
+ }
34
+ #cn-deactivation-body {
35
+ padding: 13px 16px;
36
+ }
37
+ #cn-deactivation-footer {
38
+ padding: 13px 16px;
39
+ position: absolute;
40
+ right: 0;
41
+ bottom: 0;
42
+ left: 0;
43
+ border-top: 1px solid #ddd;
44
+ background: #f3f3f3;
45
+ }
css/admin-welcome.css CHANGED
@@ -918,6 +918,11 @@
918
  transition: none;
919
  }
920
 
 
 
 
 
 
921
  .cn-welcome-wrap form input[type="text"],
922
  .cn-welcome-wrap form input[type="password"],
923
  .cn-welcome-wrap form select {
@@ -1817,7 +1822,7 @@
1817
  }
1818
 
1819
  .cn-modal .modaal-inner-wrapper {
1820
- padding: 0 20px;
1821
  }
1822
 
1823
  .modaal-overlay {
918
  transition: none;
919
  }
920
 
921
+ .cn-welcome-wrap form input[type="checkbox"] b,
922
+ .cn-welcome-wrap form input[type="radio"] b {
923
+ font-weight: 700;
924
+ }
925
+
926
  .cn-welcome-wrap form input[type="text"],
927
  .cn-welcome-wrap form input[type="password"],
928
  .cn-welcome-wrap form select {
1822
  }
1823
 
1824
  .cn-modal .modaal-inner-wrapper {
1825
+ padding: 30px 30px 0;
1826
  }
1827
 
1828
  .modaal-overlay {
css/front.css CHANGED
@@ -91,7 +91,7 @@
91
  height: 15px;
92
  width: 2px;
93
  top: 3px;
94
- background-color: #fff;
95
  }
96
  .cn-close-icon:before {
97
  transform: rotate(45deg);
@@ -107,15 +107,13 @@
107
  #cookie-notice .cn-button {
108
  margin: 0 0 0 10px;
109
  }
110
-
111
- .cn-button.wp-default,
112
- .cn-button.bootstrap {
113
  font-family: -apple-system,BlinkMacSystemFont,Arial,Roboto,"Helvetica Neue",sans-serif;
114
  font-weight: normal;
115
  font-size: 13px;
116
  letter-spacing: 0.25px;
117
  line-height: 20px;
118
- margin: 0;
119
  text-align: center;
120
  text-transform: none;
121
  display: inline-block;
@@ -132,28 +130,7 @@
132
  text-decoration: none;
133
  padding: 8.5px 10px;
134
  line-height: 1;
135
- }
136
-
137
- .cn-button.wp-default:hover,
138
- .cn-button.bootstrap:hover {
139
- box-shadow: inset 0 0 0 99999px rgba(0,0,0,0.05);
140
- text-decoration: none;
141
- }
142
-
143
- .cn-button.wp-default {
144
- color: #fff;
145
- background: #fbb03b;
146
- }
147
-
148
- .cn-button.wp-default:hover {
149
- }
150
-
151
- .cn-button.bootstrap {
152
- color: #fff;
153
- background: #20C19E;
154
- }
155
-
156
- .cn-button.bootstrap:hover {
157
  }
158
 
159
  .cn-text-container {
91
  height: 15px;
92
  width: 2px;
93
  top: 3px;
94
+ background-color: rgba(128,128,128,1);
95
  }
96
  .cn-close-icon:before {
97
  transform: rotate(45deg);
107
  #cookie-notice .cn-button {
108
  margin: 0 0 0 10px;
109
  }
110
+ #cookie-notice .cn-button:not(.cn-button-custom) {
 
 
111
  font-family: -apple-system,BlinkMacSystemFont,Arial,Roboto,"Helvetica Neue",sans-serif;
112
  font-weight: normal;
113
  font-size: 13px;
114
  letter-spacing: 0.25px;
115
  line-height: 20px;
116
+ margin: 0 0 0 10px;
117
  text-align: center;
118
  text-transform: none;
119
  display: inline-block;
130
  text-decoration: none;
131
  padding: 8.5px 10px;
132
  line-height: 1;
133
+ color: inherit;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
134
  }
135
 
136
  .cn-text-container {
css/front.min.css CHANGED
@@ -1 +1 @@
1
- #cookie-notice{position:fixed;min-width:100%;height:auto;z-index:100000;font-size:13px;letter-spacing:0;line-height:20px;left:0;text-align:center;font-weight:400;font-family:-apple-system,BlinkMacSystemFont,Arial,Roboto,"Helvetica Neue",sans-serif}#cookie-notice,#cookie-notice *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#cookie-notice.cn-animated{-webkit-animation-duration:0.5s!important;animation-duration:0.5s!important;-webkit-animation-fill-mode:both;animation-fill-mode:both}#cookie-notice.cn-animated.cn-effect-none{-webkit-animation-duration:0.001s!important;animation-duration:0.001s!important}#cookie-notice .cookie-notice-container{display:block}#cookie-notice.cookie-notice-hidden .cookie-notice-container{display:none}#cookie-notice .cookie-revoke-container{display:block}#cookie-notice.cookie-revoke-hidden .cookie-revoke-container{display:none}.cn-position-top{top:0}.cn-position-bottom{bottom:0}.cookie-notice-container{padding:15px 30px;text-align:center;width:100%;z-index:2}.cookie-revoke-container{padding:15px 30px;width:100%;z-index:1}.cn-close-icon{position:absolute;right:15px;top:50%;margin-top:-10px;width:15px;height:15px;opacity:.5;padding:10px;outline:none}.cn-close-icon:hover{opacity:1}.cn-close-icon:before,.cn-close-icon:after{position:absolute;content:' ';height:15px;width:2px;top:3px;background-color:#fff}.cn-close-icon:before{transform:rotate(45deg)}.cn-close-icon:after{transform:rotate(-45deg)}#cookie-notice .cn-revoke-cookie{margin:0}#cookie-notice .cn-button{margin:0 0 0 10px}.cn-button.wp-default,.cn-button.bootstrap{font-family:-apple-system,BlinkMacSystemFont,Arial,Roboto,"Helvetica Neue",sans-serif;font-weight:400;font-size:13px;letter-spacing:.25px;line-height:20px;margin:0;text-align:center;text-transform:none;display:inline-block;cursor:pointer;touch-action:manipulation;white-space:nowrap;outline:none;box-shadow:none;text-shadow:none;border:none;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;text-decoration:none;padding:8.5px 10px;line-height:1}.cn-button.wp-default:hover,.cn-button.bootstrap:hover{box-shadow:inset 0 0 0 99999px rgba(0,0,0,.05);text-decoration:none}.cn-button.wp-default{color:#fff;background:#fbb03b}.cn-button.bootstrap{color:#fff;background:#20C19E}.cn-text-container{margin:0 0 6px 0}.cn-text-container,.cn-buttons-container{display:inline-block}#cookie-notice.cookie-notice-visible.cn-effect-none,#cookie-notice.cookie-revoke-visible.cn-effect-none{-webkit-animation-name:fadeIn;animation-name:fadeIn}#cookie-notice.cn-effect-none{-webkit-animation-name:fadeOut;animation-name:fadeOut}#cookie-notice.cookie-notice-visible.cn-effect-fade,#cookie-notice.cookie-revoke-visible.cn-effect-fade{-webkit-animation-name:fadeIn;animation-name:fadeIn}#cookie-notice.cn-effect-fade{-webkit-animation-name:fadeOut;animation-name:fadeOut}#cookie-notice.cookie-notice-visible.cn-effect-slide,#cookie-notice.cookie-revoke-visible.cn-effect-slide{-webkit-animation-name:slideInUp;animation-name:slideInUp}#cookie-notice.cn-effect-slide{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}#cookie-notice.cookie-notice-visible.cn-position-top.cn-effect-slide,#cookie-notice.cookie-revoke-visible.cn-position-top.cn-effect-slide{-webkit-animation-name:slideInDown;animation-name:slideInDown}#cookie-notice.cn-position-top.cn-effect-slide{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@-webkit-keyframes fadeOut{from{opacity:1}to{opacity:0}}@keyframes fadeOut{from{opacity:1}to{opacity:0}}@-webkit-keyframes slideInUp{from{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes slideInUp{from{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@-webkit-keyframes slideOutDown{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes slideOutDown{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@-webkit-keyframes slideInDown{from{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes slideInDown{from{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@-webkit-keyframes slideOutUp{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@media all and (max-width:900px){.cookie-notice-container #cn-notice-text{display:block}.cookie-notice-container #cn-notice-buttons{display:block}#cookie-notice .cn-button{margin:0 5px 5px 5px}}@media all and (max-width:480px){.cookie-notice-container,.cookie-revoke-container{padding:15px 25px}}
1
+ #cookie-notice{position:fixed;min-width:100%;height:auto;z-index:100000;font-size:13px;letter-spacing:0;line-height:20px;left:0;text-align:center;font-weight:400;font-family:-apple-system,BlinkMacSystemFont,Arial,Roboto,"Helvetica Neue",sans-serif}#cookie-notice,#cookie-notice *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#cookie-notice.cn-animated{-webkit-animation-duration:.5s!important;animation-duration:.5s!important;-webkit-animation-fill-mode:both;animation-fill-mode:both}#cookie-notice.cn-animated.cn-effect-none{-webkit-animation-duration:1ms!important;animation-duration:1ms!important}#cookie-notice .cookie-notice-container{display:block}#cookie-notice.cookie-notice-hidden .cookie-notice-container{display:none}#cookie-notice .cookie-revoke-container{display:block}#cookie-notice.cookie-revoke-hidden .cookie-revoke-container{display:none}.cn-position-top{top:0}.cn-position-bottom{bottom:0}.cookie-notice-container{padding:15px 30px;text-align:center;width:100%;z-index:2}.cookie-revoke-container{padding:15px 30px;width:100%;z-index:1}.cn-close-icon{position:absolute;right:15px;top:50%;margin-top:-10px;width:15px;height:15px;opacity:.5;padding:10px;outline:0}.cn-close-icon:hover{opacity:1}.cn-close-icon:after,.cn-close-icon:before{position:absolute;content:' ';height:15px;width:2px;top:3px;background-color:grey}.cn-close-icon:before{transform:rotate(45deg)}.cn-close-icon:after{transform:rotate(-45deg)}#cookie-notice .cn-revoke-cookie{margin:0}#cookie-notice .cn-button{margin:0 0 0 10px}#cookie-notice .cn-button:not(.cn-button-custom){font-family:-apple-system,BlinkMacSystemFont,Arial,Roboto,"Helvetica Neue",sans-serif;font-weight:400;font-size:13px;letter-spacing:.25px;line-height:20px;margin:0 0 0 10px;text-align:center;text-transform:none;display:inline-block;cursor:pointer;touch-action:manipulation;white-space:nowrap;outline:0;box-shadow:none;text-shadow:none;border:none;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;text-decoration:none;padding:8.5px 10px;line-height:1;color:inherit}.cn-text-container{margin:0 0 6px 0}.cn-buttons-container,.cn-text-container{display:inline-block}#cookie-notice.cookie-notice-visible.cn-effect-none,#cookie-notice.cookie-revoke-visible.cn-effect-none{-webkit-animation-name:fadeIn;animation-name:fadeIn}#cookie-notice.cn-effect-none{-webkit-animation-name:fadeOut;animation-name:fadeOut}#cookie-notice.cookie-notice-visible.cn-effect-fade,#cookie-notice.cookie-revoke-visible.cn-effect-fade{-webkit-animation-name:fadeIn;animation-name:fadeIn}#cookie-notice.cn-effect-fade{-webkit-animation-name:fadeOut;animation-name:fadeOut}#cookie-notice.cookie-notice-visible.cn-effect-slide,#cookie-notice.cookie-revoke-visible.cn-effect-slide{-webkit-animation-name:slideInUp;animation-name:slideInUp}#cookie-notice.cn-effect-slide{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}#cookie-notice.cookie-notice-visible.cn-position-top.cn-effect-slide,#cookie-notice.cookie-revoke-visible.cn-position-top.cn-effect-slide{-webkit-animation-name:slideInDown;animation-name:slideInDown}#cookie-notice.cn-position-top.cn-effect-slide{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@-webkit-keyframes fadeOut{from{opacity:1}to{opacity:0}}@keyframes fadeOut{from{opacity:1}to{opacity:0}}@-webkit-keyframes slideInUp{from{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes slideInUp{from{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@-webkit-keyframes slideOutDown{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes slideOutDown{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@-webkit-keyframes slideInDown{from{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes slideInDown{from{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@-webkit-keyframes slideOutUp{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@media all and (max-width:900px){.cookie-notice-container #cn-notice-text{display:block}.cookie-notice-container #cn-notice-buttons{display:block}#cookie-notice .cn-button{margin:0 5px 5px 5px}}@media all and (max-width:480px){.cookie-notice-container,.cookie-revoke-container{padding:15px 25px}}
includes/frontend.php CHANGED
@@ -11,13 +11,13 @@ if ( ! defined( 'ABSPATH' ) )
11
  class Cookie_Notice_Frontend {
12
  private $widget_url = '';
13
  private $is_bot = false;
 
14
 
15
  public function __construct() {
16
  // actions
17
  add_action( 'init', array( $this, 'init' ) );
18
 
19
  $this->widget_url = '//cdn.hu-manity.co/hu-banner.min.js';
20
- $this->app_url = 'https://app.hu-manity.co';
21
  }
22
 
23
  /**
@@ -28,20 +28,23 @@ class Cookie_Notice_Frontend {
28
  if ( isset( $_GET['hu_purge_cache'] ) )
29
  $this->purge_cache();
30
 
31
- // check preview mode
32
  $this->preview_mode = isset( $_GET['cn_preview_mode'] );
33
 
34
- // whether to count robots
35
  $this->is_bot = Cookie_Notice()->bot_detect->is_crawler();
 
 
 
36
 
37
  global $pagenow;
38
 
39
  // bail if in preview mode or it's a bot request
40
- if ( ! $this->preview_mode && ! $this->is_bot && ! ( is_admin() && $pagenow === 'widgets.php' && isset( $_GET['legacy-widget-preview'] ) ) ) {
41
  // init cookie compliance
42
  if ( Cookie_Notice()->get_status() === 'active' ) {
43
- add_action( 'send_headers', array( $this, 'add_cors_http_header' ) );
44
- add_action( 'wp_head', array( $this, 'wp_head_scripts' ), 0 );
45
  // init cookie notice
46
  } else {
47
  // actions
@@ -60,7 +63,7 @@ class Cookie_Notice_Frontend {
60
  /**
61
  * Add CORS header for API requests and purge cache.
62
  */
63
- public function add_cors_http_header() {
64
  header( "Access-Control-Allow-Origin: $this->app_url" );
65
  header( 'Access-Control-Allow-Methods: GET' );
66
  }
@@ -70,7 +73,7 @@ class Cookie_Notice_Frontend {
70
  *
71
  * @return void
72
  */
73
- public function wp_head_scripts() {
74
  // get site language
75
  $locale = get_locale();
76
  $locale_code = explode( '_', $locale );
@@ -79,18 +82,21 @@ class Cookie_Notice_Frontend {
79
  if ( in_array( $locale_code, array( 'nb', 'nn' ) ) )
80
  $locale_code = 'no';
81
 
82
- $options = array(
83
  'appID' => Cookie_Notice()->options['general']['app_id'],
84
  'currentLanguage' => $locale_code[0],
85
  'blocking' => (bool) ( ! is_user_logged_in() ? Cookie_Notice()->options['general']['app_blocking'] : false )
86
- );
87
-
88
- echo '
 
89
  <!-- Hu Banner -->
90
  <script type="text/javascript">
91
  var huOptions = ' . json_encode( $options ) . ';
92
  </script>
93
  <script type="text/javascript" src="' . $this->widget_url . '"></script>';
 
 
94
  }
95
 
96
  /**
@@ -125,7 +131,6 @@ class Cookie_Notice_Frontend {
125
  // get cookie container args
126
  $options = apply_filters( 'cn_cookie_notice_args', array(
127
  'position' => Cookie_Notice()->options['general']['position'],
128
- 'css_style' => Cookie_Notice()->options['general']['css_style'],
129
  'css_class' => Cookie_Notice()->options['general']['css_class'],
130
  'button_class' => 'cn-button',
131
  'colors' => Cookie_Notice()->options['general']['colors'],
@@ -163,15 +168,15 @@ class Cookie_Notice_Frontend {
163
  <div id="cookie-notice" role="dialog" class="cookie-notice-hidden cookie-revoke-hidden cn-position-' . esc_attr( $options['position'] ) . '" aria-label="' . esc_attr( $options['aria_label'] ) . '" style="background-color: rgba(' . implode( ',', Cookie_Notice()->hex2rgb( $options['colors']['bar'] ) ) . ',' . ( (int) $options['colors']['bar_opacity'] ) * 0.01 . ');">'
164
  . '<div class="cookie-notice-container" style="color: ' . esc_attr( $options['colors']['text'] ) . ';">'
165
  . '<span id="cn-notice-text" class="cn-text-container">'. $options['message_text'] . '</span>'
166
- . '<span id="cn-notice-buttons" class="cn-buttons-container"><a href="#" id="cn-accept-cookie" data-cookie-set="accept" class="cn-set-cookie ' . $options['button_class'] . ( $options['css_style'] !== 'none' ? ' ' . $options['css_style'] : '' ) . ( $options['css_class'] !== '' ? ' ' . $options['css_class'] : '' ) . '" aria-label="' . esc_attr( $options['accept_text'] ) . '">' . esc_html( $options['accept_text'] ) . '</a>'
167
- . ( $options['refuse_opt'] === true ? '<a href="#" id="cn-refuse-cookie" data-cookie-set="refuse" class="cn-set-cookie ' . $options['button_class'] . ( $options['css_style'] !== 'none' ? ' ' . $options['css_style'] : '' ) . ( $options['css_class'] !== '' ? ' ' . $options['css_class'] : '' ) . '" aria-label="' . esc_attr( $options['refuse_text'] ) . '">' . esc_html( $options['refuse_text'] ) . '</a>' : '' )
168
- . ( $options['see_more'] === true && $options['link_position'] === 'banner' ? '<a href="' . ( $options['see_more_opt']['link_type'] === 'custom' ? esc_url( $options['see_more_opt']['link'] ) : get_permalink( $options['see_more_opt']['id'] ) ) . '" target="' . esc_attr( $options['link_target'] ) . '" id="cn-more-info" class="cn-more-info ' . $options['button_class'] . ( $options['css_style'] !== 'none' ? ' ' . $options['css_style'] : '' ) . ( $options['css_class'] !== '' ? ' ' . $options['css_class'] : '' ) . '" aria-label="' . esc_attr( $options['see_more_opt']['text'] ) . '">' . esc_html( $options['see_more_opt']['text'] ) . '</a>' : '' )
169
  . '</span><a href="javascript:void(0);" id="cn-close-notice" data-cookie-set="accept" class="cn-close-icon" aria-label="' . esc_attr( $options['accept_text'] ) . '"></a>'
170
  . '</div>
171
  ' . ( $options['refuse_opt'] === true && $options['revoke_cookies'] == true ?
172
  '<div class="cookie-revoke-container" style="color: ' . esc_attr( $options['colors']['text'] ) . ';">'
173
  . ( ! empty( $options['revoke_message_text'] ) ? '<span id="cn-revoke-text" class="cn-text-container">' . $options['revoke_message_text'] . '</span>' : '' )
174
- . '<span id="cn-revoke-buttons" class="cn-buttons-container"><a href="#" class="cn-revoke-cookie ' . $options['button_class'] . ( $options['css_style'] !== 'none' ? ' ' . $options['css_style'] : '' ) . ( $options['css_class'] !== '' ? ' ' . $options['css_class'] : '' ) . '" aria-label="' . esc_attr( $options['revoke_text'] ) . '">' . esc_html( $options['revoke_text'] ) . '</a></span>
175
  </div>' : '' ) . '
176
  </div>
177
  <!-- / Cookie Notice plugin -->';
11
  class Cookie_Notice_Frontend {
12
  private $widget_url = '';
13
  private $is_bot = false;
14
+ private $hide_banner = false;
15
 
16
  public function __construct() {
17
  // actions
18
  add_action( 'init', array( $this, 'init' ) );
19
 
20
  $this->widget_url = '//cdn.hu-manity.co/hu-banner.min.js';
 
21
  }
22
 
23
  /**
28
  if ( isset( $_GET['hu_purge_cache'] ) )
29
  $this->purge_cache();
30
 
31
+ // is it preview mode?
32
  $this->preview_mode = isset( $_GET['cn_preview_mode'] );
33
 
34
+ // is it a bot?
35
  $this->is_bot = Cookie_Notice()->bot_detect->is_crawler();
36
+
37
+ // is user logged in and hiding the banner is enabled
38
+ $this->hide_banner = is_user_logged_in() && Cookie_Notice()->options['general']['hide_banner'] === true;
39
 
40
  global $pagenow;
41
 
42
  // bail if in preview mode or it's a bot request
43
+ if ( ! $this->preview_mode && ! $this->is_bot && ! $this->hide_banner && ! ( is_admin() && $pagenow === 'widgets.php' && isset( $_GET['legacy-widget-preview'] ) ) ) {
44
  // init cookie compliance
45
  if ( Cookie_Notice()->get_status() === 'active' ) {
46
+ add_action( 'send_headers', array( $this, 'add_compliance_http_header' ) );
47
+ add_action( 'wp_head', array( $this, 'add_cookie_compliance' ), 0 );
48
  // init cookie notice
49
  } else {
50
  // actions
63
  /**
64
  * Add CORS header for API requests and purge cache.
65
  */
66
+ public function add_compliance_http_header() {
67
  header( "Access-Control-Allow-Origin: $this->app_url" );
68
  header( 'Access-Control-Allow-Methods: GET' );
69
  }
73
  *
74
  * @return void
75
  */
76
+ public function add_cookie_compliance() {
77
  // get site language
78
  $locale = get_locale();
79
  $locale_code = explode( '_', $locale );
82
  if ( in_array( $locale_code, array( 'nb', 'nn' ) ) )
83
  $locale_code = 'no';
84
 
85
+ $options = apply_filters( 'cn_cookie_compliance_args', array(
86
  'appID' => Cookie_Notice()->options['general']['app_id'],
87
  'currentLanguage' => $locale_code[0],
88
  'blocking' => (bool) ( ! is_user_logged_in() ? Cookie_Notice()->options['general']['app_blocking'] : false )
89
+ ) );
90
+
91
+ // message output
92
+ $output = '
93
  <!-- Hu Banner -->
94
  <script type="text/javascript">
95
  var huOptions = ' . json_encode( $options ) . ';
96
  </script>
97
  <script type="text/javascript" src="' . $this->widget_url . '"></script>';
98
+
99
+ echo apply_filters( 'cn_cookie_compliance_output', $output, $options );
100
  }
101
 
102
  /**
131
  // get cookie container args
132
  $options = apply_filters( 'cn_cookie_notice_args', array(
133
  'position' => Cookie_Notice()->options['general']['position'],
 
134
  'css_class' => Cookie_Notice()->options['general']['css_class'],
135
  'button_class' => 'cn-button',
136
  'colors' => Cookie_Notice()->options['general']['colors'],
168
  <div id="cookie-notice" role="dialog" class="cookie-notice-hidden cookie-revoke-hidden cn-position-' . esc_attr( $options['position'] ) . '" aria-label="' . esc_attr( $options['aria_label'] ) . '" style="background-color: rgba(' . implode( ',', Cookie_Notice()->hex2rgb( $options['colors']['bar'] ) ) . ',' . ( (int) $options['colors']['bar_opacity'] ) * 0.01 . ');">'
169
  . '<div class="cookie-notice-container" style="color: ' . esc_attr( $options['colors']['text'] ) . ';">'
170
  . '<span id="cn-notice-text" class="cn-text-container">'. $options['message_text'] . '</span>'
171
+ . '<span id="cn-notice-buttons" class="cn-buttons-container"><a href="#" id="cn-accept-cookie" data-cookie-set="accept" class="cn-set-cookie ' . $options['button_class'] . ( $options['css_class'] !== '' ? ' cn-button-custom ' . $options['css_class'] : '' ) . '" aria-label="' . esc_attr( $options['accept_text'] ) . '"' . ( $options['css_class'] == '' ? ' style="background-color: ' . esc_attr( $options['colors']['button'] ) . '"' : '' ) . '>' . esc_html( $options['accept_text'] ) . '</a>'
172
+ . ( $options['refuse_opt'] === true ? '<a href="#" id="cn-refuse-cookie" data-cookie-set="refuse" class="cn-set-cookie ' . $options['button_class'] . ( $options['css_class'] !== '' ? ' cn-button-custom ' . $options['css_class'] : '' ) . '" aria-label="' . esc_attr( $options['refuse_text'] ) . '"' . ( $options['css_class'] == '' ? ' style="background-color: ' . esc_attr( $options['colors']['button'] ) . '"' : '' ) . '>' . esc_html( $options['refuse_text'] ) . '</a>' : '' )
173
+ . ( $options['see_more'] === true && $options['link_position'] === 'banner' ? '<a href="' . ( $options['see_more_opt']['link_type'] === 'custom' ? esc_url( $options['see_more_opt']['link'] ) : get_permalink( $options['see_more_opt']['id'] ) ) . '" target="' . esc_attr( $options['link_target'] ) . '" id="cn-more-info" class="cn-more-info ' . $options['button_class'] . ( $options['css_class'] !== '' ? ' cn-button-custom ' . $options['css_class'] : '' ) . '" aria-label="' . esc_attr( $options['see_more_opt']['text'] ) . '"' . ( $options['css_class'] == '' ? ' style="background-color: ' . esc_attr( $options['colors']['button'] ) . '"' : '' ) . '>' . esc_html( $options['see_more_opt']['text'] ) . '</a>' : '' )
174
  . '</span><a href="javascript:void(0);" id="cn-close-notice" data-cookie-set="accept" class="cn-close-icon" aria-label="' . esc_attr( $options['accept_text'] ) . '"></a>'
175
  . '</div>
176
  ' . ( $options['refuse_opt'] === true && $options['revoke_cookies'] == true ?
177
  '<div class="cookie-revoke-container" style="color: ' . esc_attr( $options['colors']['text'] ) . ';">'
178
  . ( ! empty( $options['revoke_message_text'] ) ? '<span id="cn-revoke-text" class="cn-text-container">' . $options['revoke_message_text'] . '</span>' : '' )
179
+ . '<span id="cn-revoke-buttons" class="cn-buttons-container"><a href="#" class="cn-revoke-cookie ' . $options['button_class'] . ( $options['css_class'] !== '' ? ' cn-button-custom ' . $options['css_class'] : '' ) . '" aria-label="' . esc_attr( $options['revoke_text'] ) . '"' . ( $options['css_class'] == '' ? ' style="background-color: ' . esc_attr( $options['colors']['button'] ) . '"' : '' ) . '>' . esc_html( $options['revoke_text'] ) . '</a></span>
180
  </div>' : '' ) . '
181
  </div>
182
  <!-- / Cookie Notice plugin -->';
includes/settings.php CHANGED
@@ -24,8 +24,8 @@ class Cookie_Notice_Settings {
24
  public $notices = array();
25
  public $script_placements = array();
26
  public $countries = array();
27
- public $cookie_messages = array();
28
- public $preferences_messages = array();
29
 
30
  public function __construct() {
31
  // actions
@@ -77,6 +77,7 @@ class Cookie_Notice_Settings {
77
 
78
  $this->colors = array(
79
  'text' => __( 'Text color', 'cookie-notice' ),
 
80
  'bar' => __( 'Bar color', 'cookie-notice' ),
81
  );
82
 
@@ -105,280 +106,43 @@ class Cookie_Notice_Settings {
105
  'footer' => __( 'Footer', 'cookie-notice' ),
106
  );
107
 
108
- $this->cookie_messages = array(
109
- 0 => __( 'Cookies are small files that are stored on your browser. We use cookies and similar technologies to ensure our website works properly.', 'cookie-notice' ),
110
- 1 => __( 'Cookies are small files that are stored on your browser. We use cookies and similar technologies to ensure our website works properly, and to personalize your browsing experience.', 'cookie-notice' ),
111
- 2 => __( 'Cookies are small files that are stored on your browser. We use cookies and similar technologies to ensure our website works properly, personalize your browsing experience, and analyze how you use our website. For these reasons, we may share your site usage data with our analytics partners.', 'cookie-notice' ),
112
- 3 => __( 'Cookies are small files that are stored on your browser. We use cookies and similar technologies to ensure our website works properly, personalize your browsing experience, analyze how you use our website, and deliver relevant ads to you. For these reasons, we may share your site usage data with our social media, advertising and analytics partners.', 'cookie-notice' ) );
113
-
114
- $this->preferences_messages = array (
115
- 0 => __( 'You can choose whether or not you want to consent to our use of cookies through the options below.', 'cookie-notice' ),
116
- 1 => __( 'You can choose whether or not you want to consent to our use of cookies through the options below. You can customise the use of cookies, and change your settings at any time.', 'cookie-notice' )
 
 
 
 
 
 
 
117
  );
118
 
119
- $text_strings = array(
120
- 'acceptBtnText' => __( 'Accept', 'cookie-notice' ),
121
- 'rejectBtnText' => __( 'Reject', 'cookie-notice' ),
122
- 'revokeBtnText' => __( 'Revoke Cookies', 'cookie-notice' ),
 
123
  'privacyBtnText' => __( 'Privacy policy', 'cookie-notice' ),
124
  'dontSellBtnText' => __( 'Do Not Sell', 'cookie-notice' ),
125
  'customizeBtnText' => __( 'Preferences', 'cookie-notice' ),
126
- 'headingText' => __( "We're Promoting Privacy", 'cookie-notice' ),
127
- 'bodyText' => $this->cookie_messages[0],
128
- 'privacyBodyText' => __( 'You can learn more about how we use cookies by visiting our privacy policy page.', 'cookie-notice' ),
129
- 'dontSellBodyText' => __( 'California residents can also exercise their personal information rights through the Do Not Sell My Personal Information page.', 'cookie-notice' ),
130
- 'preferencesHeadingText' => __( 'Cookie Preferences', 'cookie-notice' ),
131
- 'preferencesBodyText' => __( 'Use the toggles to customize your cookie consent. Learn more about the purpose of each cookie and the companies behind them through the information and links below.', 'cookie-notice' )
132
- );
133
-
134
- /*
135
- $this->countries = array(
136
- 'AF' => __( 'Afghanistan', 'cookie-notice' ),
137
- 'AX' => __( '&#197;land Islands', 'cookie-notice' ),
138
- 'AL' => __( 'Albania', 'cookie-notice' ),
139
- 'DZ' => __( 'Algeria', 'cookie-notice' ),
140
- 'AD' => __( 'Andorra', 'cookie-notice' ),
141
- 'AO' => __( 'Angola', 'cookie-notice' ),
142
- 'AI' => __( 'Anguilla', 'cookie-notice' ),
143
- 'AQ' => __( 'Antarctica', 'cookie-notice' ),
144
- 'AG' => __( 'Antigua and Barbuda', 'cookie-notice' ),
145
- 'AR' => __( 'Argentina', 'cookie-notice' ),
146
- 'AM' => __( 'Armenia', 'cookie-notice' ),
147
- 'AW' => __( 'Aruba', 'cookie-notice' ),
148
- 'AU' => __( 'Australia', 'cookie-notice' ),
149
- 'AT' => __( 'Austria', 'cookie-notice' ),
150
- 'AZ' => __( 'Azerbaijan', 'cookie-notice' ),
151
- 'BS' => __( 'Bahamas', 'cookie-notice' ),
152
- 'BH' => __( 'Bahrain', 'cookie-notice' ),
153
- 'BD' => __( 'Bangladesh', 'cookie-notice' ),
154
- 'BB' => __( 'Barbados', 'cookie-notice' ),
155
- 'BY' => __( 'Belarus', 'cookie-notice' ),
156
- 'BE' => __( 'Belgium', 'cookie-notice' ),
157
- 'PW' => __( 'Belau', 'cookie-notice' ),
158
- 'BZ' => __( 'Belize', 'cookie-notice' ),
159
- 'BJ' => __( 'Benin', 'cookie-notice' ),
160
- 'BM' => __( 'Bermuda', 'cookie-notice' ),
161
- 'BT' => __( 'Bhutan', 'cookie-notice' ),
162
- 'BO' => __( 'Bolivia', 'cookie-notice' ),
163
- 'BQ' => __( 'Bonaire, Saint Eustatius and Saba', 'cookie-notice' ),
164
- 'BA' => __( 'Bosnia and Herzegovina', 'cookie-notice' ),
165
- 'BW' => __( 'Botswana', 'cookie-notice' ),
166
- 'BV' => __( 'Bouvet Island', 'cookie-notice' ),
167
- 'BR' => __( 'Brazil', 'cookie-notice' ),
168
- 'IO' => __( 'British Indian Ocean Territory', 'cookie-notice' ),
169
- 'VG' => __( 'British Virgin Islands', 'cookie-notice' ),
170
- 'BN' => __( 'Brunei', 'cookie-notice' ),
171
- 'BG' => __( 'Bulgaria', 'cookie-notice' ),
172
- 'BF' => __( 'Burkina Faso', 'cookie-notice' ),
173
- 'BI' => __( 'Burundi', 'cookie-notice' ),
174
- 'KH' => __( 'Cambodia', 'cookie-notice' ),
175
- 'CM' => __( 'Cameroon', 'cookie-notice' ),
176
- 'CA' => __( 'Canada', 'cookie-notice' ),
177
- 'CV' => __( 'Cape Verde', 'cookie-notice' ),
178
- 'KY' => __( 'Cayman Islands', 'cookie-notice' ),
179
- 'CF' => __( 'Central African Republic', 'cookie-notice' ),
180
- 'TD' => __( 'Chad', 'cookie-notice' ),
181
- 'CL' => __( 'Chile', 'cookie-notice' ),
182
- 'CN' => __( 'China', 'cookie-notice' ),
183
- 'CX' => __( 'Christmas Island', 'cookie-notice' ),
184
- 'CC' => __( 'Cocos (Keeling) Islands', 'cookie-notice' ),
185
- 'CO' => __( 'Colombia', 'cookie-notice' ),
186
- 'KM' => __( 'Comoros', 'cookie-notice' ),
187
- 'CG' => __( 'Congo (Brazzaville)', 'cookie-notice' ),
188
- 'CD' => __( 'Congo (Kinshasa)', 'cookie-notice' ),
189
- 'CK' => __( 'Cook Islands', 'cookie-notice' ),
190
- 'CR' => __( 'Costa Rica', 'cookie-notice' ),
191
- 'HR' => __( 'Croatia', 'cookie-notice' ),
192
- 'CU' => __( 'Cuba', 'cookie-notice' ),
193
- 'CW' => __( 'Cura&Ccedil;ao', 'cookie-notice' ),
194
- 'CY' => __( 'Cyprus', 'cookie-notice' ),
195
- 'CZ' => __( 'Czech Republic', 'cookie-notice' ),
196
- 'DK' => __( 'Denmark', 'cookie-notice' ),
197
- 'DJ' => __( 'Djibouti', 'cookie-notice' ),
198
- 'DM' => __( 'Dominica', 'cookie-notice' ),
199
- 'DO' => __( 'Dominican Republic', 'cookie-notice' ),
200
- 'EC' => __( 'Ecuador', 'cookie-notice' ),
201
- 'EG' => __( 'Egypt', 'cookie-notice' ),
202
- 'SV' => __( 'El Salvador', 'cookie-notice' ),
203
- 'GQ' => __( 'Equatorial Guinea', 'cookie-notice' ),
204
- 'ER' => __( 'Eritrea', 'cookie-notice' ),
205
- 'EE' => __( 'Estonia', 'cookie-notice' ),
206
- 'ET' => __( 'Ethiopia', 'cookie-notice' ),
207
- 'FK' => __( 'Falkland Islands', 'cookie-notice' ),
208
- 'FO' => __( 'Faroe Islands', 'cookie-notice' ),
209
- 'FJ' => __( 'Fiji', 'cookie-notice' ),
210
- 'FI' => __( 'Finland', 'cookie-notice' ),
211
- 'FR' => __( 'France', 'cookie-notice' ),
212
- 'GF' => __( 'French Guiana', 'cookie-notice' ),
213
- 'PF' => __( 'French Polynesia', 'cookie-notice' ),
214
- 'TF' => __( 'French Southern Territories', 'cookie-notice' ),
215
- 'GA' => __( 'Gabon', 'cookie-notice' ),
216
- 'GM' => __( 'Gambia', 'cookie-notice' ),
217
- 'GE' => __( 'Georgia', 'cookie-notice' ),
218
- 'DE' => __( 'Germany', 'cookie-notice' ),
219
- 'GH' => __( 'Ghana', 'cookie-notice' ),
220
- 'GI' => __( 'Gibraltar', 'cookie-notice' ),
221
- 'GR' => __( 'Greece', 'cookie-notice' ),
222
- 'GL' => __( 'Greenland', 'cookie-notice' ),
223
- 'GD' => __( 'Grenada', 'cookie-notice' ),
224
- 'GP' => __( 'Guadeloupe', 'cookie-notice' ),
225
- 'GT' => __( 'Guatemala', 'cookie-notice' ),
226
- 'GG' => __( 'Guernsey', 'cookie-notice' ),
227
- 'GN' => __( 'Guinea', 'cookie-notice' ),
228
- 'GW' => __( 'Guinea-Bissau', 'cookie-notice' ),
229
- 'GY' => __( 'Guyana', 'cookie-notice' ),
230
- 'HT' => __( 'Haiti', 'cookie-notice' ),
231
- 'HM' => __( 'Heard Island and McDonald Islands', 'cookie-notice' ),
232
- 'HN' => __( 'Honduras', 'cookie-notice' ),
233
- 'HK' => __( 'Hong Kong', 'cookie-notice' ),
234
- 'HU' => __( 'Hungary', 'cookie-notice' ),
235
- 'IS' => __( 'Iceland', 'cookie-notice' ),
236
- 'IN' => __( 'India', 'cookie-notice' ),
237
- 'ID' => __( 'Indonesia', 'cookie-notice' ),
238
- 'IR' => __( 'Iran', 'cookie-notice' ),
239
- 'IQ' => __( 'Iraq', 'cookie-notice' ),
240
- 'IE' => __( 'Republic of Ireland', 'cookie-notice' ),
241
- 'IM' => __( 'Isle of Man', 'cookie-notice' ),
242
- 'IL' => __( 'Israel', 'cookie-notice' ),
243
- 'IT' => __( 'Italy', 'cookie-notice' ),
244
- 'CI' => __( 'Ivory Coast', 'cookie-notice' ),
245
- 'JM' => __( 'Jamaica', 'cookie-notice' ),
246
- 'JP' => __( 'Japan', 'cookie-notice' ),
247
- 'JE' => __( 'Jersey', 'cookie-notice' ),
248
- 'JO' => __( 'Jordan', 'cookie-notice' ),
249
- 'KZ' => __( 'Kazakhstan', 'cookie-notice' ),
250
- 'KE' => __( 'Kenya', 'cookie-notice' ),
251
- 'KI' => __( 'Kiribati', 'cookie-notice' ),
252
- 'KW' => __( 'Kuwait', 'cookie-notice' ),
253
- 'KG' => __( 'Kyrgyzstan', 'cookie-notice' ),
254
- 'LA' => __( 'Laos', 'cookie-notice' ),
255
- 'LV' => __( 'Latvia', 'cookie-notice' ),
256
- 'LB' => __( 'Lebanon', 'cookie-notice' ),
257
- 'LS' => __( 'Lesotho', 'cookie-notice' ),
258
- 'LR' => __( 'Liberia', 'cookie-notice' ),
259
- 'LY' => __( 'Libya', 'cookie-notice' ),
260
- 'LI' => __( 'Liechtenstein', 'cookie-notice' ),
261
- 'LT' => __( 'Lithuania', 'cookie-notice' ),
262
- 'LU' => __( 'Luxembourg', 'cookie-notice' ),
263
- 'MO' => __( 'Macao S.A.R., China', 'cookie-notice' ),
264
- 'MK' => __( 'Macedonia', 'cookie-notice' ),
265
- 'MG' => __( 'Madagascar', 'cookie-notice' ),
266
- 'MW' => __( 'Malawi', 'cookie-notice' ),
267
- 'MY' => __( 'Malaysia', 'cookie-notice' ),
268
- 'MV' => __( 'Maldives', 'cookie-notice' ),
269
- 'ML' => __( 'Mali', 'cookie-notice' ),
270
- 'MT' => __( 'Malta', 'cookie-notice' ),
271
- 'MH' => __( 'Marshall Islands', 'cookie-notice' ),
272
- 'MQ' => __( 'Martinique', 'cookie-notice' ),
273
- 'MR' => __( 'Mauritania', 'cookie-notice' ),
274
- 'MU' => __( 'Mauritius', 'cookie-notice' ),
275
- 'YT' => __( 'Mayotte', 'cookie-notice' ),
276
- 'MX' => __( 'Mexico', 'cookie-notice' ),
277
- 'FM' => __( 'Micronesia', 'cookie-notice' ),
278
- 'MD' => __( 'Moldova', 'cookie-notice' ),
279
- 'MC' => __( 'Monaco', 'cookie-notice' ),
280
- 'MN' => __( 'Mongolia', 'cookie-notice' ),
281
- 'ME' => __( 'Montenegro', 'cookie-notice' ),
282
- 'MS' => __( 'Montserrat', 'cookie-notice' ),
283
- 'MA' => __( 'Morocco', 'cookie-notice' ),
284
- 'MZ' => __( 'Mozambique', 'cookie-notice' ),
285
- 'MM' => __( 'Myanmar', 'cookie-notice' ),
286
- 'NA' => __( 'Namibia', 'cookie-notice' ),
287
- 'NR' => __( 'Nauru', 'cookie-notice' ),
288
- 'NP' => __( 'Nepal', 'cookie-notice' ),
289
- 'NL' => __( 'Netherlands', 'cookie-notice' ),
290
- 'AN' => __( 'Netherlands Antilles', 'cookie-notice' ),
291
- 'NC' => __( 'New Caledonia', 'cookie-notice' ),
292
- 'NZ' => __( 'New Zealand', 'cookie-notice' ),
293
- 'NI' => __( 'Nicaragua', 'cookie-notice' ),
294
- 'NE' => __( 'Niger', 'cookie-notice' ),
295
- 'NG' => __( 'Nigeria', 'cookie-notice' ),
296
- 'NU' => __( 'Niue', 'cookie-notice' ),
297
- 'NF' => __( 'Norfolk Island', 'cookie-notice' ),
298
- 'KP' => __( 'North Korea', 'cookie-notice' ),
299
- 'NO' => __( 'Norway', 'cookie-notice' ),
300
- 'OM' => __( 'Oman', 'cookie-notice' ),
301
- 'PK' => __( 'Pakistan', 'cookie-notice' ),
302
- 'PS' => __( 'Palestinian Territory', 'cookie-notice' ),
303
- 'PA' => __( 'Panama', 'cookie-notice' ),
304
- 'PG' => __( 'Papua New Guinea', 'cookie-notice' ),
305
- 'PY' => __( 'Paraguay', 'cookie-notice' ),
306
- 'PE' => __( 'Peru', 'cookie-notice' ),
307
- 'PH' => __( 'Philippines', 'cookie-notice' ),
308
- 'PN' => __( 'Pitcairn', 'cookie-notice' ),
309
- 'PL' => __( 'Poland', 'cookie-notice' ),
310
- 'PT' => __( 'Portugal', 'cookie-notice' ),
311
- 'QA' => __( 'Qatar', 'cookie-notice' ),
312
- 'RE' => __( 'Reunion', 'cookie-notice' ),
313
- 'RO' => __( 'Romania', 'cookie-notice' ),
314
- 'RU' => __( 'Russia', 'cookie-notice' ),
315
- 'RW' => __( 'Rwanda', 'cookie-notice' ),
316
- 'BL' => __( 'Saint Barth&eacute;lemy', 'cookie-notice' ),
317
- 'SH' => __( 'Saint Helena', 'cookie-notice' ),
318
- 'KN' => __( 'Saint Kitts and Nevis', 'cookie-notice' ),
319
- 'LC' => __( 'Saint Lucia', 'cookie-notice' ),
320
- 'MF' => __( 'Saint Martin (French part)', 'cookie-notice' ),
321
- 'SX' => __( 'Saint Martin (Dutch part)', 'cookie-notice' ),
322
- 'PM' => __( 'Saint Pierre and Miquelon', 'cookie-notice' ),
323
- 'VC' => __( 'Saint Vincent and the Grenadines', 'cookie-notice' ),
324
- 'SM' => __( 'San Marino', 'cookie-notice' ),
325
- 'ST' => __( 'S&atilde;o Tom&eacute; and Pr&iacute;ncipe', 'cookie-notice' ),
326
- 'SA' => __( 'Saudi Arabia', 'cookie-notice' ),
327
- 'SN' => __( 'Senegal', 'cookie-notice' ),
328
- 'RS' => __( 'Serbia', 'cookie-notice' ),
329
- 'SC' => __( 'Seychelles', 'cookie-notice' ),
330
- 'SL' => __( 'Sierra Leone', 'cookie-notice' ),
331
- 'SG' => __( 'Singapore', 'cookie-notice' ),
332
- 'SK' => __( 'Slovakia', 'cookie-notice' ),
333
- 'SI' => __( 'Slovenia', 'cookie-notice' ),
334
- 'SB' => __( 'Solomon Islands', 'cookie-notice' ),
335
- 'SO' => __( 'Somalia', 'cookie-notice' ),
336
- 'ZA' => __( 'South Africa', 'cookie-notice' ),
337
- 'GS' => __( 'South Georgia/Sandwich Islands', 'cookie-notice' ),
338
- 'KR' => __( 'South Korea', 'cookie-notice' ),
339
- 'SS' => __( 'South Sudan', 'cookie-notice' ),
340
- 'ES' => __( 'Spain', 'cookie-notice' ),
341
- 'LK' => __( 'Sri Lanka', 'cookie-notice' ),
342
- 'SD' => __( 'Sudan', 'cookie-notice' ),
343
- 'SR' => __( 'Suriname', 'cookie-notice' ),
344
- 'SJ' => __( 'Svalbard and Jan Mayen', 'cookie-notice' ),
345
- 'SZ' => __( 'Swaziland', 'cookie-notice' ),
346
- 'SE' => __( 'Sweden', 'cookie-notice' ),
347
- 'CH' => __( 'Switzerland', 'cookie-notice' ),
348
- 'SY' => __( 'Syria', 'cookie-notice' ),
349
- 'TW' => __( 'Taiwan', 'cookie-notice' ),
350
- 'TJ' => __( 'Tajikistan', 'cookie-notice' ),
351
- 'TZ' => __( 'Tanzania', 'cookie-notice' ),
352
- 'TH' => __( 'Thailand', 'cookie-notice' ),
353
- 'TL' => __( 'Timor-Leste', 'cookie-notice' ),
354
- 'TG' => __( 'Togo', 'cookie-notice' ),
355
- 'TK' => __( 'Tokelau', 'cookie-notice' ),
356
- 'TO' => __( 'Tonga', 'cookie-notice' ),
357
- 'TT' => __( 'Trinidad and Tobago', 'cookie-notice' ),
358
- 'TN' => __( 'Tunisia', 'cookie-notice' ),
359
- 'TR' => __( 'Turkey', 'cookie-notice' ),
360
- 'TM' => __( 'Turkmenistan', 'cookie-notice' ),
361
- 'TC' => __( 'Turks and Caicos Islands', 'cookie-notice' ),
362
- 'TV' => __( 'Tuvalu', 'cookie-notice' ),
363
- 'UG' => __( 'Uganda', 'cookie-notice' ),
364
- 'UA' => __( 'Ukraine', 'cookie-notice' ),
365
- 'AE' => __( 'United Arab Emirates', 'cookie-notice' ),
366
- 'GB' => __( 'United Kingdom', 'cookie-notice' ),
367
- 'US' => __( 'United States', 'cookie-notice' ),
368
- 'UY' => __( 'Uruguay', 'cookie-notice' ),
369
- 'UZ' => __( 'Uzbekistan', 'cookie-notice' ),
370
- 'VU' => __( 'Vanuatu', 'cookie-notice' ),
371
- 'VA' => __( 'Vatican', 'cookie-notice' ),
372
- 'VE' => __( 'Venezuela', 'cookie-notice' ),
373
- 'VN' => __( 'Vietnam', 'cookie-notice' ),
374
- 'WF' => __( 'Wallis and Futuna', 'cookie-notice' ),
375
- 'EH' => __( 'Western Sahara', 'cookie-notice' ),
376
- 'WS' => __( 'Western Samoa', 'cookie-notice' ),
377
- 'YE' => __( 'Yemen', 'cookie-notice' ),
378
- 'ZM' => __( 'Zambia', 'cookie-notice' ),
379
- 'ZW' => __( 'Zimbabwe', 'cookie-notice' )
380
  );
381
- */
382
 
383
  // set default text strings
384
  Cookie_Notice()->defaults['general']['message_text'] = __( 'We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.', 'cookie-notice' );
@@ -490,6 +254,7 @@ class Cookie_Notice_Settings {
490
 
491
  add_settings_section( 'cookie_notice_configuration', __( 'Miscellaneous Settings', 'cookie-notice' ), array( $this, 'cn_section_configuration' ), 'cookie_notice_options' );
492
  add_settings_field( 'cn_app_blocking', __( 'Autoblocking', 'cookie-notice' ), array( $this, 'cn_app_blocking' ), 'cookie_notice_options', 'cookie_notice_configuration' );
 
493
  add_settings_field( 'cn_app_purge_cache', __( 'Cache', 'cookie-notice' ), array( $this, 'cn_app_purge_cache' ), 'cookie_notice_options', 'cookie_notice_configuration' );
494
  add_settings_field( 'cn_script_placement', __( 'Script placement', 'cookie-notice' ), array( $this, 'cn_script_placement' ), 'cookie_notice_options', 'cookie_notice_configuration' );
495
  add_settings_field( 'cn_deactivation_delete', __( 'Deactivation', 'cookie-notice' ), array( $this, 'cn_deactivation_delete' ), 'cookie_notice_options', 'cookie_notice_configuration' );
@@ -520,9 +285,8 @@ class Cookie_Notice_Settings {
520
  add_settings_section( 'cookie_notice_design', __( 'Notice Design', 'cookie-notice' ), array( $this, 'cn_section_design' ), 'cookie_notice_options' );
521
  add_settings_field( 'cn_position', __( 'Position', 'cookie-notice' ), array( $this, 'cn_position' ), 'cookie_notice_options', 'cookie_notice_design' );
522
  add_settings_field( 'cn_hide_effect', __( 'Animation', 'cookie-notice' ), array( $this, 'cn_hide_effect' ), 'cookie_notice_options', 'cookie_notice_design' );
523
- add_settings_field( 'cn_css_style', __( 'Button style', 'cookie-notice' ), array( $this, 'cn_css_style' ), 'cookie_notice_options', 'cookie_notice_design' );
524
- add_settings_field( 'cn_css_class', __( 'Button class', 'cookie-notice' ), array( $this, 'cn_css_class' ), 'cookie_notice_options', 'cookie_notice_design' );
525
  add_settings_field( 'cn_colors', __( 'Colors', 'cookie-notice' ), array( $this, 'cn_colors' ), 'cookie_notice_options', 'cookie_notice_design' );
 
526
  }
527
  }
528
 
@@ -622,7 +386,7 @@ class Cookie_Notice_Settings {
622
  <p class="description">' . __( "In case you're experiencing issues with your site disable that feature temporarily.", 'cookie-notice' ) . '</p>
623
  </fieldset>';
624
  }
625
-
626
  /**
627
  * App ID option.
628
  */
@@ -635,6 +399,16 @@ class Cookie_Notice_Settings {
635
  <p class="description">' . __( 'Click the Purge Cache button to refresh the app configuration.', 'cookie-notice' ) . '</p>
636
  </div>';
637
  }
 
 
 
 
 
 
 
 
 
 
638
 
639
  /**
640
  * App Key option.
@@ -962,27 +736,6 @@ class Cookie_Notice_Settings {
962
  </fieldset>';
963
  }
964
 
965
- /**
966
- * CSS style option.
967
- */
968
- public function cn_css_style() {
969
- echo '
970
- <fieldset>
971
- <div id="cn_css_style">';
972
-
973
- foreach ( $this->styles as $value => $label ) {
974
- $value = esc_attr( $value );
975
-
976
- echo '
977
- <label><input id="cn_css_style-' . $value . '" type="radio" name="cookie_notice_options[css_style]" value="' . $value . '" ' . checked( $value, Cookie_Notice()->options['general']['css_style'], false ) . ' />' . esc_html( $label ) . '</label>';
978
- }
979
-
980
- echo '
981
- <p class="description">' . __( 'Select the buttons style.', 'cookie-notice' ) . '</p>
982
- </div>
983
- </fieldset>';
984
- }
985
-
986
  /**
987
  * CSS style option.
988
  */
@@ -1055,11 +808,15 @@ class Cookie_Notice_Settings {
1055
  // app blocking
1056
  $input['app_blocking'] = (bool) isset( $input['app_blocking'] );
1057
 
 
 
 
1058
  // position
1059
  $input['position'] = sanitize_text_field( isset( $input['position'] ) && in_array( $input['position'], array_keys( $this->positions ) ) ? $input['position'] : $cn->defaults['general']['position'] );
1060
 
1061
  // colors
1062
  $input['colors']['text'] = sanitize_text_field( isset( $input['colors']['text'] ) && $input['colors']['text'] !== '' && preg_match( '/^#[a-f0-9]{6}$/', $input['colors']['text'] ) === 1 ? $input['colors']['text'] : $cn->defaults['general']['colors']['text'] );
 
1063
  $input['colors']['bar'] = sanitize_text_field( isset( $input['colors']['bar'] ) && $input['colors']['bar'] !== '' && preg_match( '/^#[a-f0-9]{6}$/', $input['colors']['bar'] ) === 1 ? $input['colors']['bar'] : $cn->defaults['general']['colors']['bar'] );
1064
  $input['colors']['bar_opacity'] = absint( isset( $input['colors']['bar_opacity'] ) && $input['colors']['bar_opacity'] >= 50 ? $input['colors']['bar_opacity'] : $cn->defaults['general']['colors']['bar_opacity'] );
1065
 
@@ -1082,9 +839,6 @@ class Cookie_Notice_Settings {
1082
  // head refuse code
1083
  $input['refuse_code_head'] = wp_kses( isset( $input['refuse_code_head'] ) && $input['refuse_code_head'] !== '' ? $input['refuse_code_head'] : $cn->defaults['general']['refuse_code_head'], $allowed_html );
1084
 
1085
- // css button style
1086
- $input['css_style'] = sanitize_text_field( isset( $input['css_style'] ) && in_array( $input['css_style'], array_keys( $this->styles ) ) ? $input['css_style'] : $cn->defaults['general']['css_style'] );
1087
-
1088
  // css button class
1089
  $input['css_class'] = sanitize_text_field( isset( $input['css_class'] ) ? $input['css_class'] : $cn->defaults['general']['css_class'] );
1090
 
@@ -1179,23 +933,22 @@ class Cookie_Notice_Settings {
1179
  * Load scripts and styles - admin.
1180
  */
1181
  public function admin_enqueue_scripts( $page ) {
1182
- if ( $page !== 'toplevel_page_cookie-notice' )
1183
- return;
1184
-
1185
- wp_enqueue_script(
1186
- 'cookie-notice-admin', plugins_url( '../js/admin' . ( ! ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '.min' : '' ) . '.js', __FILE__ ), array( 'jquery', 'wp-color-picker' ), Cookie_Notice()->defaults['version']
1187
- );
1188
-
1189
- wp_localize_script(
1190
- 'cookie-notice-admin', 'cnArgs', array(
1191
- 'ajaxURL' => admin_url( 'admin-ajax.php' ),
1192
- 'nonce' => wp_create_nonce( 'cn-purge-cache' ),
1193
- 'resetToDefaults' => __( 'Are you sure you want to reset these settings to defaults?', 'cookie-notice' )
1194
- )
1195
- );
1196
-
1197
- wp_enqueue_style( 'wp-color-picker' );
1198
- wp_enqueue_style( 'cookie-notice-admin', plugins_url( '../css/admin' . ( ! ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '.min' : '' ) . '.css', __FILE__ ) );
1199
  }
1200
 
1201
  /**
24
  public $notices = array();
25
  public $script_placements = array();
26
  public $countries = array();
27
+ public $level_names = array();
28
+ public $text_strings = array();
29
 
30
  public function __construct() {
31
  // actions
77
 
78
  $this->colors = array(
79
  'text' => __( 'Text color', 'cookie-notice' ),
80
+ 'button' => __( 'Button color', 'cookie-notice' ),
81
  'bar' => __( 'Bar color', 'cookie-notice' ),
82
  );
83
 
106
  'footer' => __( 'Footer', 'cookie-notice' ),
107
  );
108
 
109
+ $this->level_names = array(
110
+ 1 => array(
111
+ 1 => __( 'Silver', 'cookie-notice' ),
112
+ 2 => __( 'Gold', 'cookie-notice' ),
113
+ 3 => __( 'Platinum', 'cookie-notice' )
114
+ ),
115
+ 2 => array(
116
+ 1 => __( 'Private', 'cookie-notice' ),
117
+ 2 => __( 'Balanced', 'cookie-notice' ),
118
+ 3 => __( 'Personalized', 'cookie-notice' )
119
+ ),
120
+ 3 => array(
121
+ 1 => __( 'Reject All', 'cookie-notice' ),
122
+ 2 => __( 'Accept Some', 'cookie-notice' ),
123
+ 3 => __( 'Accept All', 'cookie-notice' )
124
+ )
125
  );
126
 
127
+ $this->text_strings = array(
128
+ 'saveBtnText' => __( 'Save my preferences', 'cookie-notice' ),
129
+ // 'acceptBtnText' => __( 'Accept', 'cookie-notice' ),
130
+ // 'rejectBtnText' => __( 'Reject', 'cookie-notice' ),
131
+ // 'revokeBtnText' => __( 'Revoke Cookies', 'cookie-notice' ),
132
  'privacyBtnText' => __( 'Privacy policy', 'cookie-notice' ),
133
  'dontSellBtnText' => __( 'Do Not Sell', 'cookie-notice' ),
134
  'customizeBtnText' => __( 'Preferences', 'cookie-notice' ),
135
+ 'headingText' => __( "We believe your data is your property and support your right to privacy and transparency.", 'cookie-notice' ),
136
+ 'bodyText' => __( "Select a Data Access Level and Duration to choose how we use and share your data.", 'cookie-notice' ),
137
+ 'levelBodyText_1' => __( 'Highest level of privacy. Data accessed for necessary site operations only. Data shared with 3rd parties to ensure the site is secure and works on your device.', 'cookie-notice' ),
138
+ 'levelBodyText_2' => __( 'Balanced experience. Data accessed for content personalisation and site optimisation. Data shared with 3rd parties may be used to track and store your preferences for this site.', 'cookie-notice' ),
139
+ 'levelBodyText_3' => __( 'Highest level of personalisation. Data accessed to make ads and media more relevant. Data shared with 3rd parties may be use to track you on this site and other sites you visit.', 'cookie-notice' ),
140
+ 'levelNameText_1' => $this->level_names[1][1],
141
+ 'levelNameText_2' => $this->level_names[1][2],
142
+ 'levelNameText_3' => $this->level_names[1][3],
143
+ 'monthText' => __( 'month', 'cookie-notice' ),
144
+ 'monthsText' => __( 'months', 'cookie-notice' )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
145
  );
 
146
 
147
  // set default text strings
148
  Cookie_Notice()->defaults['general']['message_text'] = __( 'We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.', 'cookie-notice' );
254
 
255
  add_settings_section( 'cookie_notice_configuration', __( 'Miscellaneous Settings', 'cookie-notice' ), array( $this, 'cn_section_configuration' ), 'cookie_notice_options' );
256
  add_settings_field( 'cn_app_blocking', __( 'Autoblocking', 'cookie-notice' ), array( $this, 'cn_app_blocking' ), 'cookie_notice_options', 'cookie_notice_configuration' );
257
+ add_settings_field( 'cn_hide_banner', __( 'Hide for logged in', 'cookie-notice' ), array( $this, 'cn_hide_banner' ), 'cookie_notice_options', 'cookie_notice_configuration' );
258
  add_settings_field( 'cn_app_purge_cache', __( 'Cache', 'cookie-notice' ), array( $this, 'cn_app_purge_cache' ), 'cookie_notice_options', 'cookie_notice_configuration' );
259
  add_settings_field( 'cn_script_placement', __( 'Script placement', 'cookie-notice' ), array( $this, 'cn_script_placement' ), 'cookie_notice_options', 'cookie_notice_configuration' );
260
  add_settings_field( 'cn_deactivation_delete', __( 'Deactivation', 'cookie-notice' ), array( $this, 'cn_deactivation_delete' ), 'cookie_notice_options', 'cookie_notice_configuration' );
285
  add_settings_section( 'cookie_notice_design', __( 'Notice Design', 'cookie-notice' ), array( $this, 'cn_section_design' ), 'cookie_notice_options' );
286
  add_settings_field( 'cn_position', __( 'Position', 'cookie-notice' ), array( $this, 'cn_position' ), 'cookie_notice_options', 'cookie_notice_design' );
287
  add_settings_field( 'cn_hide_effect', __( 'Animation', 'cookie-notice' ), array( $this, 'cn_hide_effect' ), 'cookie_notice_options', 'cookie_notice_design' );
 
 
288
  add_settings_field( 'cn_colors', __( 'Colors', 'cookie-notice' ), array( $this, 'cn_colors' ), 'cookie_notice_options', 'cookie_notice_design' );
289
+ add_settings_field( 'cn_css_class', __( 'Button class', 'cookie-notice' ), array( $this, 'cn_css_class' ), 'cookie_notice_options', 'cookie_notice_design' );
290
  }
291
  }
292
 
386
  <p class="description">' . __( "In case you're experiencing issues with your site disable that feature temporarily.", 'cookie-notice' ) . '</p>
387
  </fieldset>';
388
  }
389
+
390
  /**
391
  * App ID option.
392
  */
399
  <p class="description">' . __( 'Click the Purge Cache button to refresh the app configuration.', 'cookie-notice' ) . '</p>
400
  </div>';
401
  }
402
+
403
+ /**
404
+ * Hide banner.
405
+ */
406
+ public function cn_hide_banner() {
407
+ echo '
408
+ <fieldset>
409
+ <label for="cn_hide_banner"><input id="cn_hide_banner" type="checkbox" name="cookie_notice_options[hide_banner]" value="1" ' . checked( true, Cookie_Notice()->options['general']['hide_banner'], false ) . ' />' . __( 'Enable to hide the consent banner for logged in users.', 'cookie-notice' ) . '</label>
410
+ </fieldset>';
411
+ }
412
 
413
  /**
414
  * App Key option.
736
  </fieldset>';
737
  }
738
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
739
  /**
740
  * CSS style option.
741
  */
808
  // app blocking
809
  $input['app_blocking'] = (bool) isset( $input['app_blocking'] );
810
 
811
+ // hide banner
812
+ $input['hide_banner'] = (bool) isset( $input['hide_banner'] );
813
+
814
  // position
815
  $input['position'] = sanitize_text_field( isset( $input['position'] ) && in_array( $input['position'], array_keys( $this->positions ) ) ? $input['position'] : $cn->defaults['general']['position'] );
816
 
817
  // colors
818
  $input['colors']['text'] = sanitize_text_field( isset( $input['colors']['text'] ) && $input['colors']['text'] !== '' && preg_match( '/^#[a-f0-9]{6}$/', $input['colors']['text'] ) === 1 ? $input['colors']['text'] : $cn->defaults['general']['colors']['text'] );
819
+ $input['colors']['button'] = sanitize_text_field( isset( $input['colors']['button'] ) && $input['colors']['button'] !== '' && preg_match( '/^#[a-f0-9]{6}$/', $input['colors']['button'] ) === 1 ? $input['colors']['button'] : $cn->defaults['general']['colors']['button'] );
820
  $input['colors']['bar'] = sanitize_text_field( isset( $input['colors']['bar'] ) && $input['colors']['bar'] !== '' && preg_match( '/^#[a-f0-9]{6}$/', $input['colors']['bar'] ) === 1 ? $input['colors']['bar'] : $cn->defaults['general']['colors']['bar'] );
821
  $input['colors']['bar_opacity'] = absint( isset( $input['colors']['bar_opacity'] ) && $input['colors']['bar_opacity'] >= 50 ? $input['colors']['bar_opacity'] : $cn->defaults['general']['colors']['bar_opacity'] );
822
 
839
  // head refuse code
840
  $input['refuse_code_head'] = wp_kses( isset( $input['refuse_code_head'] ) && $input['refuse_code_head'] !== '' ? $input['refuse_code_head'] : $cn->defaults['general']['refuse_code_head'], $allowed_html );
841
 
 
 
 
842
  // css button class
843
  $input['css_class'] = sanitize_text_field( isset( $input['css_class'] ) ? $input['css_class'] : $cn->defaults['general']['css_class'] );
844
 
933
  * Load scripts and styles - admin.
934
  */
935
  public function admin_enqueue_scripts( $page ) {
936
+ if ( $page === 'toplevel_page_cookie-notice' ) {
937
+ wp_enqueue_script(
938
+ 'cookie-notice-admin', plugins_url( '../js/admin' . ( ! ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '.min' : '' ) . '.js', __FILE__ ), array( 'jquery', 'wp-color-picker' ), Cookie_Notice()->defaults['version']
939
+ );
940
+
941
+ wp_localize_script(
942
+ 'cookie-notice-admin', 'cnArgs', array(
943
+ 'ajaxURL' => admin_url( 'admin-ajax.php' ),
944
+ 'nonce' => wp_create_nonce( 'cn-purge-cache' ),
945
+ 'resetToDefaults' => __( 'Are you sure you want to reset these settings to defaults?', 'cookie-notice' )
946
+ )
947
+ );
948
+
949
+ wp_enqueue_style( 'wp-color-picker' );
950
+ wp_enqueue_style( 'cookie-notice-admin', plugins_url( '../css/admin' . ( ! ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '.min' : '' ) . '.css', __FILE__ ) );
951
+ }
 
952
  }
953
 
954
  /**
includes/welcome-api.php CHANGED
@@ -49,6 +49,10 @@ class Cookie_Notice_Welcome_API {
49
 
50
  if ( ! $request )
51
  return false;
 
 
 
 
52
 
53
  // get app token data
54
  $data_token = get_transient( 'cookie_notice_app_token' );
@@ -256,7 +260,7 @@ class Cookie_Notice_Welcome_API {
256
  delete_transient( 'cookie_notice_compliance_cache' );
257
 
258
  // get options
259
- // $app_config = get_transient( 'cookie_notice_app_config' );
260
 
261
  // create quick config
262
  $params = ! empty( $app_config ) && is_array( $app_config ) ? $app_config : array();
@@ -278,6 +282,7 @@ class Cookie_Notice_Welcome_API {
278
  $params['AppID'] = $app_id;
279
  // @todo When mutliple default languages are supported
280
  $params['DefaultLanguage'] = 'en';
 
281
 
282
  $response = $this->request( 'quick_config', $params );
283
 
@@ -451,13 +456,14 @@ class Cookie_Notice_Welcome_API {
451
  // create quick config
452
  $params = array(
453
  'AppID' => $app_exists->AppID,
454
- 'DefaultLanguage' => 'en'
 
455
  );
456
 
457
  $response = $this->request( 'quick_config', $params );
458
 
459
  if ( $response->status === 200 ) {
460
- // notify publish app
461
  $params = array(
462
  'AppID' => $app_exists->AppID
463
  );
@@ -513,134 +519,145 @@ class Cookie_Notice_Welcome_API {
513
  'cn_color_heading',
514
  'cn_color_button_text',
515
  'cn_laws',
516
- 'cn_purposes'
 
 
517
  );
518
 
519
  $options = array();
520
 
521
  // loop through potential config form fields
522
  foreach ( $fields as $field ) {
523
- if ( isset( $_POST[$field] ) ) {
524
- switch ( $field ) {
525
- case 'cn_position':
526
- // sanitize position
527
- $position = sanitize_key( $_POST[$field] );
528
-
529
- // valid position?
530
- if ( in_array( $position, array( 'bottom', 'top', 'left', 'right', 'center' ), true ) )
531
- $options['design']['position'] = $position;
532
- else
533
- $options['design']['position'] = 'bottom';
534
- break;
535
-
536
- case 'cn_color_primary':
537
- // sanitize color
538
- $color = sanitize_hex_color( $_POST[$field] );
539
-
540
- // valid color?
541
- if ( empty( $color ) )
542
- $options['design']['primaryColor'] = '#20c19e';
543
- else
544
- $options['design']['primaryColor'] = $color;
545
- break;
546
-
547
- case 'cn_color_background':
548
- // sanitize color
549
- $color = sanitize_hex_color( $_POST[$field] );
550
-
551
- // valid color?
552
- if ( empty( $color ) )
553
- $options['design']['bannerColor'] = '#ffffff';
554
- else
555
- $options['design']['bannerColor'] = $color;
556
- break;
557
-
558
- case 'cn_color_border':
559
- // sanitize color
560
- $color = sanitize_hex_color( $_POST[$field] );
561
-
562
- // valid color?
563
- if ( empty( $color ) )
564
- $options['design']['borderColor'] = '#5e6a74';
565
- else
566
- $options['design']['borderColor'] = $color;
567
- break;
568
-
569
- case 'cn_color_text':
570
- // sanitize color
571
- $color = sanitize_hex_color( $_POST[$field] );
572
-
573
- // valid color?
574
- if ( empty( $color ) )
575
- $options['design']['textColor'] = '#434f58';
576
- else
577
- $options['design']['textColor'] = $color;
578
- break;
579
-
580
- case 'cn_color_heading':
581
- // sanitize color
582
- $color = sanitize_hex_color( $_POST[$field] );
583
-
584
- // valid color?
585
- if ( empty( $color ) )
586
- $options['design']['headingColor'] = '#434f58';
587
- else
588
- $options['design']['headingColor'] = $color;
589
- break;
590
-
591
- case 'cn_color_button_text':
592
- // sanitize color
593
- $color = sanitize_hex_color( $_POST[$field] );
594
-
595
- // valid color?
596
- if ( empty( $color ) )
597
- $options['design']['headingColor'] = '#ffffff';
598
- else
599
- $options['design']['headingColor'] = $color;
600
- break;
601
-
602
- case 'cn_laws':
603
- $new_options = array();
604
-
605
- // any data?
606
- if ( is_array( $_POST[$field] ) && ! empty( $_POST[$field] ) ) {
607
- $options['laws'] = array_map( 'sanitize_text_field', $_POST[$field] );
608
-
609
- foreach ( $options['laws'] as $law ) {
610
- if ( in_array( $law, array( 'gdpr', 'ccpa' ), true ) )
611
- $new_options[$law] = true;
612
- }
613
  }
 
614
 
615
- $options['laws'] = $new_options;
616
-
617
- // GDPR
618
- if ( array_key_exists( 'gdpr', $options['laws'] ) )
619
- $options['config']['privacyPolicyLink'] = true;
620
- else
621
- $options['config']['privacyPolicyLink'] = false;
622
-
623
- // CCPA
624
- if ( array_key_exists( 'ccpa', $options['laws'] ) )
625
- $options['config']['dontSellLink'] = true;
626
- else
627
- $options['config']['dontSellLink'] = false;
628
- break;
629
-
630
- case 'cn_purposes':
631
- // sanitize purposes
632
- $purposes = (int) $_POST[$field];
633
-
634
- // get messages
635
- $messages = Cookie_Notice()->settings->cookie_messages;
636
-
637
- // valid purposes?
638
- if ( array_key_exists( $purposes, $messages ) )
639
- $options['text']['bodyText'] = $messages[$purposes];
640
- else
641
- $options['text']['bodyText'] = reset( $messages );
642
- break;
643
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
644
  }
645
  }
646
 
49
 
50
  if ( ! $request )
51
  return false;
52
+
53
+ // get site language
54
+ $locale = get_locale();
55
+ $locale_code = explode( '_', $locale );
56
 
57
  // get app token data
58
  $data_token = get_transient( 'cookie_notice_app_token' );
260
  delete_transient( 'cookie_notice_compliance_cache' );
261
 
262
  // get options
263
+ $app_config = get_transient( 'cookie_notice_app_config' );
264
 
265
  // create quick config
266
  $params = ! empty( $app_config ) && is_array( $app_config ) ? $app_config : array();
282
  $params['AppID'] = $app_id;
283
  // @todo When mutliple default languages are supported
284
  $params['DefaultLanguage'] = 'en';
285
+ // $params['CurrentLanguage'] = $locale_code[0];
286
 
287
  $response = $this->request( 'quick_config', $params );
288
 
456
  // create quick config
457
  $params = array(
458
  'AppID' => $app_exists->AppID,
459
+ 'DefaultLanguage' => 'en',
460
+ // 'CurrentLanguage' => $locale_code[0]
461
  );
462
 
463
  $response = $this->request( 'quick_config', $params );
464
 
465
  if ( $response->status === 200 ) {
466
+ // @todo notify publish app
467
  $params = array(
468
  'AppID' => $app_exists->AppID
469
  );
519
  'cn_color_heading',
520
  'cn_color_button_text',
521
  'cn_laws',
522
+ 'cn_naming',
523
+ 'cn_privacy_paper',
524
+ 'cn_privacy_contact',
525
  );
526
 
527
  $options = array();
528
 
529
  // loop through potential config form fields
530
  foreach ( $fields as $field ) {
531
+ switch ( $field ) {
532
+ case 'cn_position':
533
+ // sanitize position
534
+ $position = isset( $_POST[$field] ) ? sanitize_key( $_POST[$field] ) : '';
535
+
536
+ // valid position?
537
+ if ( in_array( $position, array( 'bottom', 'top', 'left', 'right', 'center' ), true ) )
538
+ $options['design']['position'] = $position;
539
+ break;
540
+
541
+ case 'cn_color_primary':
542
+ // sanitize color
543
+ $color = isset( $_POST[$field] ) ? sanitize_hex_color( $_POST[$field] ) : '';
544
+
545
+ // valid color?
546
+ if ( empty( $color ) )
547
+ $options['design']['primaryColor'] = '#20c19e';
548
+ break;
549
+
550
+ case 'cn_color_background':
551
+ // sanitize color
552
+ $color = isset( $_POST[$field] ) ? sanitize_hex_color( $_POST[$field] ) : '';
553
+
554
+ // valid color?
555
+ if ( empty( $color ) )
556
+ $options['design']['bannerColor'] = '#ffffff';
557
+ break;
558
+
559
+ case 'cn_color_border':
560
+ // sanitize color
561
+ $color = isset( $_POST[$field] ) ? sanitize_hex_color( $_POST[$field] ) : '';
562
+
563
+ // valid color?
564
+ if ( empty( $color ) )
565
+ $options['design']['borderColor'] = '#5e6a74';
566
+ break;
567
+
568
+ case 'cn_color_text':
569
+ // sanitize color
570
+ $color = isset( $_POST[$field] ) ? sanitize_hex_color( $_POST[$field] ) : '';
571
+
572
+ // valid color?
573
+ if ( empty( $color ) )
574
+ $options['design']['textColor'] = '#434f58';
575
+ break;
576
+
577
+ case 'cn_color_heading':
578
+ // sanitize color
579
+ $color = isset( $_POST[$field] ) ? sanitize_hex_color( $_POST[$field] ) : '';
580
+
581
+ // valid color?
582
+ if ( empty( $color ) )
583
+ $options['design']['headingColor'] = '#434f58';
584
+ break;
585
+
586
+ case 'cn_color_button_text':
587
+ // sanitize color
588
+ $color = isset( $_POST[$field] ) ? sanitize_hex_color( $_POST[$field] ) : '';
589
+
590
+ // valid color?
591
+ if ( empty( $color ) )
592
+ $options['design']['btnTextColor'] = '#ffffff';
593
+ break;
594
+
595
+ case 'cn_laws':
596
+ $new_options = array();
597
+
598
+ // any data?
599
+ if ( is_array( $_POST[$field] ) && ! empty( $_POST[$field] ) ) {
600
+ $options['laws'] = array_map( 'sanitize_text_field', $_POST[$field] );
601
+
602
+ foreach ( $options['laws'] as $law ) {
603
+ if ( in_array( $law, array( 'gdpr', 'ccpa' ), true ) )
604
+ $new_options[$law] = true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
605
  }
606
+ }
607
 
608
+ $options['laws'] = $new_options;
609
+
610
+ // GDPR
611
+ if ( array_key_exists( 'gdpr', $options['laws'] ) )
612
+ $options['config']['privacyPolicyLink'] = true;
613
+ else
614
+ $options['config']['privacyPolicyLink'] = false;
615
+
616
+ // CCPA
617
+ if ( array_key_exists( 'ccpa', $options['laws'] ) )
618
+ $options['config']['dontSellLink'] = true;
619
+ else
620
+ $options['config']['dontSellLink'] = false;
621
+ break;
622
+
623
+ case 'cn_naming':
624
+ $naming = isset( $_POST[$field] ) ? (int) $_POST[$field] : 1;
625
+ $naming = in_array( $naming, array( 1, 2, 3 ) ) ? $naming : 1;
626
+
627
+ // English only for now
628
+ $level_names = array(
629
+ 1 => array(
630
+ 1 => 'Silver',
631
+ 2 => 'Gold',
632
+ 3 => 'Platinum'
633
+ ),
634
+ 2 => array(
635
+ 1 => 'Private',
636
+ 2 => 'Balanced',
637
+ 3 => 'Personalized'
638
+ ),
639
+ 3 => array(
640
+ 1 => 'Reject All',
641
+ 2 => 'Accept Some',
642
+ 3 => 'Accept All'
643
+ )
644
+ );
645
+
646
+ $options['text'] = array(
647
+ 'levelNameText_1' => $level_names[$naming][1],
648
+ 'levelNameText_2' => $level_names[$naming][2],
649
+ 'levelNameText_3' => $level_names[$naming][3]
650
+ );
651
+
652
+ break;
653
+
654
+ case 'cn_privacy_paper':
655
+ $options['config']['privacyPaper'] = false; // isset( $_POST[$field] );
656
+ break;
657
+
658
+ case 'cn_privacy_contact':
659
+ $options['config']['privacyContact'] = false;// isset( $_POST[$field] );
660
+ break;
661
  }
662
  }
663
 
includes/welcome-frontend.php CHANGED
@@ -62,8 +62,8 @@ class Cookie_Notice_Welcome_Frontend {
62
  array(
63
  'previewMode' => $this->preview_mode,
64
  'allowedURLs' => $this->get_allowed_urls(),
65
- 'cookieMessage' => Cookie_Notice()->settings->cookie_messages,
66
- 'preferencesMessage' => Cookie_Notice()->settings->preferences_messages
67
  )
68
  );
69
  }
@@ -87,7 +87,12 @@ class Cookie_Notice_Welcome_Frontend {
87
  public function wp_head_scripts() {
88
  $options = array(
89
  'currentLanguage' => 'en',
90
- 'previewMode' => true
 
 
 
 
 
91
  );
92
 
93
  echo '
62
  array(
63
  'previewMode' => $this->preview_mode,
64
  'allowedURLs' => $this->get_allowed_urls(),
65
+ 'levelNames' => Cookie_Notice()->settings->level_names,
66
+ 'textStrings' => Cookie_Notice()->settings->text_strings
67
  )
68
  );
69
  }
87
  public function wp_head_scripts() {
88
  $options = array(
89
  'currentLanguage' => 'en',
90
+ 'previewMode' => true,
91
+ 'debugMode' => true,
92
+ 'config' => array(
93
+ 'privacyPaper' => true,
94
+ 'privacyContact' => true
95
+ )
96
  );
97
 
98
  echo '
includes/welcome.php CHANGED
@@ -179,58 +179,12 @@ class Cookie_Notice_Welcome {
179
  <p>' . __( 'It is the first solution to offer <b>intentional consent</b>, a new consent framework that incorporates the latest guidelines from over 100+ countries, and emerging standards from leading international organizations like the IEEE.', 'cookie-notice' ) . '</p>
180
  <p>' . __( 'Cookie Notice includes <b>seamless integration</b> with Cookie Compliance to help your site comply with the latest updates to existing consent laws and provide a beautiful, multi-level experience to engage visitors in data privacy decisions.', 'cookie-notice' ) . '</p>
181
  </div>';
182
- /*
183
- <div class="cn-lead">
184
- <p>' . __( 'Rules and regulations around cookie consent are <b>becoming more strict</b>, and enforcement of violations is rapidly increasing. So far in 2021, companies have paid fines totaling over €18M.', 'cookie-notice' ) . '</p>
185
- <p>' . __( 'If your website collects visitor data and does not (1) <b>Autoblock</b> cookies, (2) enable visitors to consent by <b>Cookie Category</b>, and/or (3) store <b>Proof-of-Consent</b>, your business is at risk.', 'cookie-notice' ) . '</p>
186
- <p>' . sprintf( __( 'Cookie Notice %s includes integration with <b>Cookie Compliance&trade;</b> web application that will help your site meet minimum viable compliance based on updates to existing laws (GDPR, CCPA) and introduction of new laws (ePrivacy, PECR).', 'cookie-notice' ), Cookie_Notice()->defaults['version'] ) . '</p>
187
- </div>
188
- */
189
  $html .= '
190
  <div class="cn-buttons">
191
- <button type="button" class="cn-btn cn-btn-lg cn-screen-button" data-screen="3"><span class="cn-spinner"></span>' . __( 'Sign up to Cookie Compliance', 'cookie-notice' ) . '</button><br />
192
  <button type="button" class="cn-btn cn-btn-lg cn-btn-transparent cn-skip-button">' . __( 'Skip for now', 'cookie-notice' ) . '</button>
193
  </div>
194
  ';
195
- /*
196
- $html .= '
197
- <div class="cn-hero-image">
198
- <div class="cn-flex-item">
199
- <div class="cn-logo-container">
200
- <img src="' . plugins_url( '../img/cookie-notice-logo-dark.png', __FILE__ ) . '">
201
- <span class="cn-badge">' . __( 'WP Plugin', 'cookie-notice' ) . '</span>
202
- </div>
203
- <img src="' . plugins_url( '../img/screen-notice.png', __FILE__ ) . '" alt="Cookie Notice dashboard" />
204
- <ul>
205
- <li><span>' . __( 'Customizable notice message', 'cookie-notice' ) . '</span></li>
206
- <li><span>' . __( 'Consent on click, scroll or close', 'cookie-notice' ) . '</span></li>
207
- <li><span>' . __( 'Multiple cookie expiry options', 'cookie-notice' ) . '</span></li>
208
- <li><span>' . __( 'Link to Privacy Policy page', 'cookie-notice' ) . '</span></li>
209
- </ul>
210
- </div>
211
- <div class="cn-flex-item">
212
- <img src="//cno0-53eb.kxcdn.com/screen-plus.png" alt="Cookie Notice + Compliance" />
213
- </div>
214
- <div class="cn-flex-item">
215
- <div class="cn-logo-container">
216
- <img src="' . plugins_url( '../img/cookie-compliance-logo-dark.png', __FILE__ ) . '">
217
- <span class="cn-badge">' . __( 'Web App', 'cookie-notice' ) . '</span>
218
- </div>
219
- <img src="' . plugins_url( '../img/screen-compliance.png', __FILE__ ) . '"alt="Cookie Compliance dashboard" />
220
- <ul>
221
- <li><span>' . __( 'Customizable <b>GDPR & CCPA</b> notice templates', 'cookie-notice' ) . '</span></li>
222
- <li><span>' . __( '<b>Consent Analytics</b> Dashboard', 'cookie-notice' ) . '</span></li>
223
- <li><span>' . __( 'Cookie <b>Autoblocking</b> (complies with GDPR Art.7)', 'cookie-notice' ) . '</span></li>
224
- <li><span>' . __( '<b>Cookie Categories</b> (complies with GDPR Art.32)', 'cookie-notice' ) . '</span></li>
225
- <li><span>' . __( '<b>Proof-of-Consent</b> Storage (complies with GDPR Art.30)', 'cookie-notice' ) . '</span></li>
226
- <li><span>' . __( "Link to <b>'Do Not Sell'</b> page (supports CCPA Sec.1798)", 'cookie-notice' ) . '</span></li>
227
- <li><span>' . __( 'Enhanced design controls and options', 'cookie-notice' ) . '</span></li>
228
- <li><span>' . __( 'Multiple new banner positions', 'cookie-notice' ) . '</span></li>
229
- <li><span>' . __( 'Custom language localization', 'cookie-notice' ) . '</span></li>
230
- </ul>
231
- </div>
232
- </div>
233
- */
234
 
235
  $html .= '
236
  </div>
@@ -474,27 +428,22 @@ class Cookie_Notice_Welcome {
474
  <label for="cn_laws_ccpa"><input id="cn_laws_ccpa" type="checkbox" name="cn_laws" value="ccpa" title="' . __( 'CCPA', 'cookie-notice' ) . '"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACcAAAAwCAYAAACScGMWAAACPElEQVRYheXYvXHbMBTAcY7AEbSA79Smskp30QiqkyLaQPQE8Qb2BtEG4QZil3Ry5ZZaAO/vAqANIwSJD1LmXXD3ToVE8sf3hEcQRVEUBXADfE+Mu2LOAVSkj/q/xj0sGVcvEgeUGTAvDlgBP4CD+Vyl4HaZuNa9WRH5JSK4oZT6CZQxuN+ZOBzYqQ9mxSkYmAuzcUqpyoE0InIUkWcng1UoLresWFlrOwCwczLa2EAispczWzvcxs5YzzXWDm4bistpwk1RfCypr2yppc3BVUvDXYAtsO7OsSRcbY5bAbfArYicrYu36Ob7Fj297wx8Ncf7JwewScGJSD3S00LjOJa9p0/E1SHlDQWm4rqmHI+LAKbgGsx/y23IMbiQVUos7g2G04yjcOYEObga2InIxQNrc3FjK2MvDtP7DOQYAIvGlcBzYub+WRKNwOJw5oRDvW8Ih4icImDxOHNiX3nHcF0GDwGwZJyvvCG4aZuwB9i31lsMbu/DAXsD9IZS6kEpVQ0FoQvPHlxfaU/jR15peGbuGf3mlhqHKYF95c0dj1MCY5ZV1wUy/uT4dOB2BtykwDmyNw0QOM6EyweS9547L/AKOID7VNwcLcUdf1Jxa3T27MjaDOoZL0m4AXRJ3uZ3Pg69p9fy/pxssVYW6GdxbrvJwjXoUnZh40oTFXrT53q4EXiNtYltkCkTaDoc71v734B9z/ex7WdSXHfxzcBvYsbfKXHlECwAd0H/JZ7MjX6ZDBcy0DPYBmyHbugVe8KbbhsHbZ0AAAAASUVORK5CYII=" width="24" height="24"><span>' . __( 'CCPA', 'cookie-notice' ) . '</span></label>
475
  </div>
476
  </div>
477
- <div id="cn_purposes" class="cn-field cn-field-checkbox">
478
- <label>' . __( 'Select the type of of services your website is using', 'cookie-notice' ) . ':</label>
479
- <div class="cn-checkbox-wrapper">
480
- <label for="cn_purposes_functional"><input id="cn_purposes_functional" type="checkbox" name="cn_purposes" value="1" checked><span>' . __( 'I use personalization services on my site​', 'cookie-notice' ) . '</span></label>
481
- <label for="cn_purposes_analytics"><input id="cn_purposes_analytics" type="checkbox" name="cn_purposes" value="2"><span>' . __( 'I collect and analyse information about my website’s traffic', 'cookie-notice' ) . '</span></label>
482
- <label for="cn_purposes_marketing"><input id="cn_purposes_marketing" type="checkbox" name="cn_purposes" value="3"><span>' . __( 'I run targeted ads on my site using, for example, Google Adsense​', 'cookie-notice' ) . '</span></label>
483
- </div>
484
- </div>
485
- <div class="cn-field cn-field-checkbox">
486
- <label class="cn-asterix">' . __( 'Enable Cookie Categories (complies with GDPR Art.32)', 'cookie-notice' ) . '</label>
487
- <div class="cn-checkbox-wrapper">
488
- <label for="cn_customize_consent"><input id="cn_customize_consent" type="checkbox" name="cn_customize_consent" value="1" checked><span>' . __( 'Give your visitors the ability to customize their consent based on cookie purpose categories.', 'cookie-notice' ) . '</span></label>
489
  </div>
490
  </div>
491
  <div class="cn-field cn-field-checkbox">
492
- <label class="cn-asterix">' . __( 'Enable Autoblocking (complies with GDPR Art.7)', 'cookie-notice' ) . '</label>
493
  <div class="cn-checkbox-wrapper">
494
- <label for="cn_autoblocking"><input id="cn_customize_consent" type="checkbox" name="cn_autoblocking" value="1" checked><span>' . __( 'Automatically block 3rd party scripts before user consent.', 'cookie-notice' ) . '</span></label>
 
495
  </div>
496
  </div>
497
- <div class="cn-small">* ' . __( 'available in Cookie Compliance&trade; only', 'cookie-notice' ) . '</div>
498
  </div>
499
  </div>
500
  <div class="cn-accordion-item cn-form-container cn-collapsed" tabindex="-1">
@@ -506,23 +455,23 @@ class Cookie_Notice_Welcome {
506
  <div class="cn-radio-image-wrapper">
507
  <label for="cn_position_bottom"><input id="cn_position_bottom" type="radio" name="cn_position" value="bottom" title="' . __( 'Bottom', 'cookie-notice' ) . '" checked><img src="' . plugins_url( '../img/layout-bottom.png', __FILE__ ) . '" width="24" height="24"></label>
508
  <label for="cn_position_top"><input id="cn_position_top" type="radio" name="cn_position" value="top" title="' . __( 'Top', 'cookie-notice' ) . '"><img src="' . plugins_url( '../img/layout-top.png', __FILE__ ) . '" width="24" height="24"></label>
509
- <label for="cn_position_left" class="cn-asterix"><input id="cn_position_left" type="radio" name="cn_position" value="left" title="' . __( 'Left', 'cookie-notice' ) . '"><img src="' . plugins_url( '../img/layout-left.png', __FILE__ ) . '" width="24" height="24"></label>
510
- <label for="cn_position_right" class="cn-asterix"><input id="cn_position_right" type="radio" name="cn_position" value="right" title="' . __( 'Right', 'cookie-notice' ) . '"><img src="' . plugins_url( '../img/layout-right.png', __FILE__ ) . '" width="24" height="24"></label>
511
- <label for="cn_position_center" class="cn-asterix"><input id="cn_position_center" type="radio" name="cn_position" value="center" title="' . __( 'Center', 'cookie-notice' ) . '"><img src="' . plugins_url( '../img/layout-center.png', __FILE__ ) . '" width="24" height="24"></label>
512
  </div>
513
  </div>
514
  <div class="cn-field cn-fieldset">
515
  <label>' . __( 'Adjust the banner color scheme', 'cookie-notice' ) . '​:</label>
516
  <div class="cn-checkbox-wrapper cn-color-picker-wrapper">
517
  <label for="cn_color_primary"><input id="cn_color_primary" class="cn-color-picker" type="checkbox" name="cn_color_primary" value="#20c19e"><span>' . __( 'Color of the buttons and interactive elements.', 'cookie-notice' ) . '</span></label>
518
- <label for="cn_color_background"><input id="cn_color_background" class="cn-color-picker" type="checkbox" name="cn_color_background" value="#32323a"><span>' . __( 'Color of the banner background.', 'cookie-notice' ) . '</span></label>
519
- <label for="cn_color_border"><input id="cn_color_border" class="cn-color-picker" type="checkbox" name="cn_color_border" value="#86858b"><span class="cn-asterix">' . __( 'Color of the borders and inactive elements.', 'cookie-notice' ) . '</span></label>
520
- <label for="cn_color_text"><input id="cn_color_text" class="cn-color-picker" type="checkbox" name="cn_color_text" value="#ffffff"><span class="cn-asterix">' . __( 'Color of the body text.', 'cookie-notice' ) . '</span></label>
521
- <label for="cn_color_heading"><input id="cn_color_heading" class="cn-color-picker" type="checkbox" name="cn_color_heading" value="#86858b"><span class="cn-asterix">' . __( 'Color of the heading text.', 'cookie-notice' ) . '</span></label>
522
  <label for="cn_color_button_text"><input id="cn_color_button_text" class="cn-color-picker" type="checkbox" name="cn_color_button_text" value="#ffffff"><span class="cn-asterix">' . __( 'Color of the button text.', 'cookie-notice' ) . '</span></label>
523
  </div>
524
  </div>
525
- <div class="cn-small">* ' . __( 'available in Cookie Compliance&trade; only', 'cookie-notice' ) . '</div>
526
  </div>
527
  </div>
528
  </div>
179
  <p>' . __( 'It is the first solution to offer <b>intentional consent</b>, a new consent framework that incorporates the latest guidelines from over 100+ countries, and emerging standards from leading international organizations like the IEEE.', 'cookie-notice' ) . '</p>
180
  <p>' . __( 'Cookie Notice includes <b>seamless integration</b> with Cookie Compliance to help your site comply with the latest updates to existing consent laws and provide a beautiful, multi-level experience to engage visitors in data privacy decisions.', 'cookie-notice' ) . '</p>
181
  </div>';
 
 
 
 
 
 
 
182
  $html .= '
183
  <div class="cn-buttons">
184
+ <button type="button" class="cn-btn cn-btn-lg cn-screen-button" data-screen="2"><span class="cn-spinner"></span>' . __( 'Sign up to Cookie Compliance', 'cookie-notice' ) . '</button><br />
185
  <button type="button" class="cn-btn cn-btn-lg cn-btn-transparent cn-skip-button">' . __( 'Skip for now', 'cookie-notice' ) . '</button>
186
  </div>
187
  ';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
188
 
189
  $html .= '
190
  </div>
428
  <label for="cn_laws_ccpa"><input id="cn_laws_ccpa" type="checkbox" name="cn_laws" value="ccpa" title="' . __( 'CCPA', 'cookie-notice' ) . '"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACcAAAAwCAYAAACScGMWAAACPElEQVRYheXYvXHbMBTAcY7AEbSA79Smskp30QiqkyLaQPQE8Qb2BtEG4QZil3Ry5ZZaAO/vAqANIwSJD1LmXXD3ToVE8sf3hEcQRVEUBXADfE+Mu2LOAVSkj/q/xj0sGVcvEgeUGTAvDlgBP4CD+Vyl4HaZuNa9WRH5JSK4oZT6CZQxuN+ZOBzYqQ9mxSkYmAuzcUqpyoE0InIUkWcng1UoLresWFlrOwCwczLa2EAispczWzvcxs5YzzXWDm4bistpwk1RfCypr2yppc3BVUvDXYAtsO7OsSRcbY5bAbfArYicrYu36Ob7Fj297wx8Ncf7JwewScGJSD3S00LjOJa9p0/E1SHlDQWm4rqmHI+LAKbgGsx/y23IMbiQVUos7g2G04yjcOYEObga2InIxQNrc3FjK2MvDtP7DOQYAIvGlcBzYub+WRKNwOJw5oRDvW8Ih4icImDxOHNiX3nHcF0GDwGwZJyvvCG4aZuwB9i31lsMbu/DAXsD9IZS6kEpVQ0FoQvPHlxfaU/jR15peGbuGf3mlhqHKYF95c0dj1MCY5ZV1wUy/uT4dOB2BtykwDmyNw0QOM6EyweS9547L/AKOID7VNwcLcUdf1Jxa3T27MjaDOoZL0m4AXRJ3uZ3Pg69p9fy/pxssVYW6GdxbrvJwjXoUnZh40oTFXrT53q4EXiNtYltkCkTaDoc71v734B9z/ex7WdSXHfxzcBvYsbfKXHlECwAd0H/JZ7MjX6ZDBcy0DPYBmyHbugVe8KbbhsHbZ0AAAAASUVORK5CYII=" width="24" height="24"><span>' . __( 'CCPA', 'cookie-notice' ) . '</span></label>
429
  </div>
430
  </div>
431
+ <div id="cn_naming" class="cn-field cn-field-radio">
432
+ <label class="cn-asterix">' . __( 'Select a naming style for the consent choices', 'cookie-notice' ) . ':</label>
433
+ <div class="cn-radio-wrapper">
434
+ <label for="cn_naming_1"><input id="cn_naming_1" type="radio" name="cn_naming" value="1" checked><span>' . __( 'Silver, Gold, Platinum (Default)​', 'cookie-notice' ) . '</span></label>
435
+ <label for="cn_naming_2"><input id="cn_naming_2" type="radio" name="cn_naming" value="2"><span>' . __( 'Private, Balanced, Personalized', 'cookie-notice' ) . '</span></label>
436
+ <label for="cn_naming_3"><input id="cn_naming_3" type="radio" name="cn_naming" value="3"><span>' . __( 'Reject All, Accept Some, Accept All​', 'cookie-notice' ) . '</span></label>
 
 
 
 
 
 
437
  </div>
438
  </div>
439
  <div class="cn-field cn-field-checkbox">
440
+ <label>' . __( 'Select additional information to include in the banner:', 'cookie-notice' ) . '</label>
441
  <div class="cn-checkbox-wrapper">
442
+ <label for="cn_privacy_paper"><input id="cn_privacy_paper" type="checkbox" name="cn_privacy_paper" value="1"><span>' . __( 'Display <b>Privacy Paper</b> to provide helpful data privacy and consent information to visitors.', 'cookie-notice' ) . '</span></label>
443
+ <label for="cn_privacy_contact"><input id="cn_privacy_contact" type="checkbox" name="cn_privacy_contact" value="1"><span>' . __( 'Display <b>Privacy Contact</b> to provide Data Controller contact information and links to external data privacy resources.', 'cookie-notice' ) . '</span></label>
444
  </div>
445
  </div>
446
+ <div class="cn-small">* ' . __( 'available for Cookie Compliance&trade; Pro plans only', 'cookie-notice' ) . '</div>
447
  </div>
448
  </div>
449
  <div class="cn-accordion-item cn-form-container cn-collapsed" tabindex="-1">
455
  <div class="cn-radio-image-wrapper">
456
  <label for="cn_position_bottom"><input id="cn_position_bottom" type="radio" name="cn_position" value="bottom" title="' . __( 'Bottom', 'cookie-notice' ) . '" checked><img src="' . plugins_url( '../img/layout-bottom.png', __FILE__ ) . '" width="24" height="24"></label>
457
  <label for="cn_position_top"><input id="cn_position_top" type="radio" name="cn_position" value="top" title="' . __( 'Top', 'cookie-notice' ) . '"><img src="' . plugins_url( '../img/layout-top.png', __FILE__ ) . '" width="24" height="24"></label>
458
+ <label for="cn_position_left"><input id="cn_position_left" type="radio" name="cn_position" value="left" title="' . __( 'Left', 'cookie-notice' ) . '"><img src="' . plugins_url( '../img/layout-left.png', __FILE__ ) . '" width="24" height="24"></label>
459
+ <label for="cn_position_right"><input id="cn_position_right" type="radio" name="cn_position" value="right" title="' . __( 'Right', 'cookie-notice' ) . '"><img src="' . plugins_url( '../img/layout-right.png', __FILE__ ) . '" width="24" height="24"></label>
460
+ <label for="cn_position_center"><input id="cn_position_center" type="radio" name="cn_position" value="center" title="' . __( 'Center', 'cookie-notice' ) . '"><img src="' . plugins_url( '../img/layout-center.png', __FILE__ ) . '" width="24" height="24"></label>
461
  </div>
462
  </div>
463
  <div class="cn-field cn-fieldset">
464
  <label>' . __( 'Adjust the banner color scheme', 'cookie-notice' ) . '​:</label>
465
  <div class="cn-checkbox-wrapper cn-color-picker-wrapper">
466
  <label for="cn_color_primary"><input id="cn_color_primary" class="cn-color-picker" type="checkbox" name="cn_color_primary" value="#20c19e"><span>' . __( 'Color of the buttons and interactive elements.', 'cookie-notice' ) . '</span></label>
467
+ <label for="cn_color_background"><input id="cn_color_background" class="cn-color-picker" type="checkbox" name="cn_color_background" value="#ffffff"><span>' . __( 'Color of the banner background.', 'cookie-notice' ) . '</span></label>
468
+ <label for="cn_color_text"><input id="cn_color_text" class="cn-color-picker" type="checkbox" name="cn_color_text" value="#434f58"><span>' . __( 'Color of the body text.', 'cookie-notice' ) . '</span></label>
469
+ <label for="cn_color_border"><input id="cn_color_border" class="cn-color-picker" type="checkbox" name="cn_color_border" value="#5e6a74"><span class="cn-asterix">' . __( 'Color of the borders and inactive elements.', 'cookie-notice' ) . '</span></label>
470
+ <label for="cn_color_heading"><input id="cn_color_heading" class="cn-color-picker" type="checkbox" name="cn_color_heading" value="#434f58"><span class="cn-asterix">' . __( 'Color of the heading text.', 'cookie-notice' ) . '</span></label>
471
  <label for="cn_color_button_text"><input id="cn_color_button_text" class="cn-color-picker" type="checkbox" name="cn_color_button_text" value="#ffffff"><span class="cn-asterix">' . __( 'Color of the button text.', 'cookie-notice' ) . '</span></label>
472
  </div>
473
  </div>
474
+ <div class="cn-small">* ' . __( 'available for Cookie Compliance&trade; Pro plans only', 'cookie-notice' ) . '</div>
475
  </div>
476
  </div>
477
  </div>
js/admin-notice.js CHANGED
@@ -2,8 +2,8 @@
2
 
3
  // ready event
4
  $( function() {
5
- // Save dismiss state
6
- $( '.cn-notice.is-dismissible' ).on( 'click', '.notice-dismiss, .cn-notice-dismiss', function( e ) {
7
  if ( $( e.currentTarget ).hasClass( 'cn-approve' ) )
8
  var notice_action = 'approve';
9
  else if ( $( e.currentTarget ).hasClass( 'cn-delay' ) )
@@ -12,7 +12,7 @@
12
  var notice_action = 'dismiss';
13
 
14
  $.ajax( {
15
- url: cnArgsNotice.ajaxUrl,
16
  type: 'POST',
17
  dataType: 'json',
18
  data: {
2
 
3
  // ready event
4
  $( function() {
5
+ // Save dismiss state // .is-dismissible
6
+ $( '.cn-notice' ).on( 'click', '.notice-dismiss, .cn-notice-dismiss', function( e ) {
7
  if ( $( e.currentTarget ).hasClass( 'cn-approve' ) )
8
  var notice_action = 'approve';
9
  else if ( $( e.currentTarget ).hasClass( 'cn-delay' ) )
12
  var notice_action = 'dismiss';
13
 
14
  $.ajax( {
15
+ url: cnArgsNotice.ajaxURL,
16
  type: 'POST',
17
  dataType: 'json',
18
  data: {
js/admin-notice.min.js DELETED
@@ -1 +0,0 @@
1
- !function(s){s(document).ready(function(){s(".cn-notice.is-dismissible").on("click",".notice-dismiss, .cn-notice-dismiss",function(e){if(s(e.currentTarget).hasClass("cn-approve"))var n="approve";else if(s(e.currentTarget).hasClass("cn-delay"))n="delay";else n="dismiss";s.ajax({url:cnArgsNotice.ajaxUrl,type:"POST",dataType:"json",data:{action:"cn_dismiss_notice",notice_action:n,nonce:cnArgsNotice.nonce}}),s(e.delegateTarget).slideUp("fast")})})}(jQuery);
 
js/admin-plugins.js ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ( function( $ ) {
2
+
3
+ // ready event
4
+ $( function() {
5
+ // cancel deactivation
6
+ $( document ).on( 'click', '.cn-deactivate-plugin-cancel', function( e ) {
7
+ tb_remove();
8
+
9
+ return false;
10
+ } );
11
+
12
+ // simple deactivation
13
+ $( document ).on( 'click', '.cn-deactivate-plugin-simple', function( e ) {
14
+ // display spinner
15
+ $( '#cn-deactivation-footer .spinner' ).addClass( 'is-active' );
16
+ } );
17
+
18
+ // deactivation with sending data
19
+ $( document ).on( 'click', '.cn-deactivate-plugin-data', function( e ) {
20
+ var spinner = $( '#cn-deactivation-footer .spinner' ),
21
+ url = $( this ).attr( 'href' );
22
+
23
+ // display spinner
24
+ spinner.addClass( 'is-active' );
25
+
26
+ // submit data
27
+ $.post( ajaxurl, {
28
+ action: 'cn-deactivate-plugin',
29
+ option_id: $( 'input[name="cn_deactivation_option"]:checked' ).val(),
30
+ other: $( 'textarea[name="cn_deactivation_other"]' ).val(),
31
+ nonce: cnArgsPlugins.nonce
32
+ } ).done( function( response ) {
33
+ // deactivate plugin
34
+ window.location.href = url;
35
+ } ).fail( function() {
36
+ // deactivate plugin
37
+ window.location.href = url;
38
+ } );
39
+
40
+ return false;
41
+ } );
42
+
43
+ // click on deactivation link
44
+ $( document ).on( 'click', '.cn-deactivate-plugin-modal', function( e ) {
45
+ var modalBox = $( '#cn-deactivation-container' ).closest( '#TB_window' );
46
+
47
+ tb_show( cnArgsPlugins.deactivate, '#TB_inline?inlineId=cn-deactivation-modal&modal=false' );
48
+
49
+ if ( modalBox.length > 0 ) {
50
+ $( modalBox ).addClass( 'cn-deactivation-modal' );
51
+ $( modalBox ).find( '#TB_closeWindowButton' ).on( 'blur' );
52
+ }
53
+
54
+ return false;
55
+ } );
56
+
57
+ // change radio
58
+ $( document ).on( 'change', 'input[name="cn_deactivation_option"]', function( e ) {
59
+ if ( $( this ).val() === '6' )
60
+ $( '.cn-deactivation-textarea textarea' ).prop( 'disabled', false );
61
+ else
62
+ $( '.cn-deactivation-textarea textarea' ).prop( 'disabled', true );
63
+ } );
64
+ } );
65
+
66
+ } )( jQuery );
js/admin-welcome.js CHANGED
@@ -1,17 +1,17 @@
1
- ( function( $ ) {
2
 
3
  // ready event
4
- $( function() {
5
  var btClient = false;
6
  var btCreditCardsInitialized = false;
7
  var btPayPalInitialized = false;
8
 
9
- var btInit = function() {
10
  var result = btInitToken();
11
 
12
  if ( result !== false && btCreditCardsInitialized === false ) {
13
  // AJAX was successful
14
- result.done( function( response ) {
15
  // token received
16
  try {
17
  // parse response
@@ -23,18 +23,18 @@
23
  } );
24
 
25
  btInitPaymentMethod( 'credit_card' );
26
- // token failed
27
- } catch( e ) {
28
  btGatewayFail( 'btInit catch' );
29
  }
30
- // AJAX failed
31
- } ).fail( function() {
32
  btGatewayFail( 'btInit AJAX failed' );
33
  } );
34
  }
35
  }
36
 
37
- var btInitToken = function() {
38
  // payment screen?
39
  var payment = $( '.cn-sidebar form[data-action="payment"]' );
40
 
@@ -59,7 +59,7 @@
59
  return false;
60
  }
61
 
62
- var btInitPaymentMethod = function( type ) {
63
  // console.log( 'btInitPaymentMethod' );
64
 
65
  if ( btClient !== false ) {
@@ -76,9 +76,9 @@
76
  btGatewayFail( 'btInitPaymentMethod btClient is false' );
77
  }
78
 
79
- var btCreditCardsInit = function( clientInstance ) {
80
  // console.log( 'btCreditCardsInit' );
81
-
82
  return braintree.hostedFields.create( {
83
  client: clientInstance,
84
  styles: {
@@ -111,16 +111,16 @@
111
  } );
112
  }
113
 
114
- var btHostedFieldsInstance = function( hostedFieldsInstance ) {
115
  // console.log( 'btHostedFieldsInstance' );
116
-
117
  btCreditCardsInitialized = true;
118
 
119
  var form = $( 'form.cn-form[data-action="payment"]' );
120
 
121
  form.removeClass( 'cn-form-disabled' );
122
 
123
- form.on( 'submit', function() {
124
  if ( form.hasClass( 'cn-payment-in-progress' ) )
125
  return false;
126
 
@@ -134,8 +134,8 @@
134
  var state = hostedFieldsInstance.getState();
135
 
136
  // check hosted fields
137
- Object.keys( state.fields ).forEach( function( field ) {
138
- if ( ! state.fields[field].isValid ) {
139
  $( state.fields[field].container ).addClass( 'braintree-hosted-fields-invalid' );
140
 
141
  invalidForm = true;
@@ -143,7 +143,7 @@
143
  } );
144
 
145
  if ( invalidForm ) {
146
- setTimeout( function() {
147
  cnDisplayError( cnWelcomeArgs.invalidFields, form );
148
 
149
  // spin the spinner, if exists
@@ -154,7 +154,7 @@
154
  return false;
155
  }
156
 
157
- hostedFieldsInstance.tokenize( function( err, payload ) {
158
  if ( err ) {
159
  cnDisplayError( cnWelcomeArgs.error );
160
 
@@ -171,33 +171,33 @@
171
  } );
172
  }
173
 
174
- var btPaypalCheckoutInit = function( clientInstance ) {
175
  // console.log( 'btPaypalCheckoutInit' );
176
-
177
  return braintree.paypalCheckout.create( {
178
  client: clientInstance
179
  } );
180
  }
181
 
182
- var btPaypalCheckoutSDK = function( paypalCheckoutInstance ) {
183
  // console.log( 'btPaypalCheckoutSDK' );
184
-
185
  return paypalCheckoutInstance.loadPayPalSDK( {
186
  vault: true,
187
  intent: 'tokenize'
188
  } );
189
  }
190
 
191
- var btPaypalCheckoutInstance = function( paypalCheckoutInstance ) {
192
  // console.log( 'btPaypalCheckoutInstance' );
193
-
194
  var form = $( 'form.cn-form[data-action="payment"]' );
195
 
196
  return paypal.Buttons( {
197
  fundingSource: paypal.FUNDING.PAYPAL,
198
- createBillingAgreement: function() {
199
  // console.log( 'createBillingAgreement' );
200
-
201
  form.addClass( 'cn-form-disabled' );
202
 
203
  return paypalCheckoutInstance.createPayment( {
@@ -206,41 +206,41 @@
206
  currency: 'EUR'
207
  } );
208
  },
209
- onApprove: function( data, actions ) {
210
  // console.log( 'onApprove' );
211
-
212
- return paypalCheckoutInstance.tokenizePayment( data ).then( function( payload ) {
213
  form.addClass( 'cn-payment-in-progress' );
214
  form.find( 'input[name="payment_nonce"]' ).val( payload.nonce );
215
-
216
  // console.log( 'onApprove inside' );
217
  // console.log( $( '#cn_submit_paid' ).find( '.cn-screen-button[data-screen="4"]' ) );
218
-
219
  $( '#cn_submit_paid' ).find( '.cn-screen-button[data-screen="4"]' ).trigger( 'click' );
220
  } );
221
  },
222
- onCancel: function( data ) {
223
  // console.log( 'onCancel' );
224
-
225
  form.removeClass( 'cn-form-disabled' );
226
  },
227
- onError: function( err ) {
228
  // console.log( 'onError' );
229
-
230
  form.removeClass( 'cn-form-disabled' );
231
  }
232
  } ).render( '#cn_paypal_button' );
233
  }
234
 
235
- var btPaypalCheckoutButton = function() {
236
  // console.log( 'btPaypalCheckoutButton' );
237
-
238
  btPayPalInitialized = true;
239
 
240
  $( 'form.cn-form[data-action="payment"]' ).removeClass( 'cn-form-disabled' );
241
  }
242
 
243
- var btGatewayFail = function( error ) {
244
  // console.log( 'btGatewayFail' );
245
 
246
  if ( typeof error !== 'undefined' )
@@ -249,17 +249,17 @@
249
  cnDisplayError( cnWelcomeArgs.error );
250
  }
251
 
252
- var cnDisplayError = function( message, form ) {
253
  if ( typeof form === 'undefined' )
254
  form = $( 'form.cn-form[data-action="payment"]' );
255
 
256
  form.find( '.cn-form-feedback' ).html( '<p class="cn-error">' + message + '</p>' ).removeClass( 'cn-hidden' );
257
  }
258
 
259
- var cnWelcomeScreen = function( e ) {
260
  var screen = $( e.target ).data( 'screen' );
261
- var steps = [1,2,3,4];
262
- var sidebars = ['login', 'register', 'configure', 'payment'];
263
 
264
  // continue with screen loading
265
  var requestData = {
@@ -286,11 +286,11 @@
286
  type: 'POST',
287
  dataType: 'html',
288
  data: requestData
289
- } ).done( function( response ) {
290
  $( container ).replaceWith( response );
291
- } ).fail( function( jqXHR, textStatus, errorThrown ) {
292
  //
293
- } ).always( function( response ) {
294
  // remove spinner
295
  $( container ).removeClass( 'cn-loading' );
296
 
@@ -299,11 +299,11 @@
299
 
300
  $( document ).trigger( event );
301
  } );
302
-
303
  return this;
304
  };
305
 
306
- var cnWelcomeForm = function( form ) {
307
  var formAction = $( form[0] ).data( 'action' );
308
  var formResult = null;
309
  var formData = {
@@ -318,13 +318,13 @@
318
  formData.request = formAction;
319
 
320
  // convert form data to object
321
- $( form[0] ).serializeArray().map( function( x ) {
322
  // exception for checkboxes
323
  if ( x.name === 'cn_laws' ) {
324
- var arrayVal = typeof formData[x.name] !== 'undefined' ? formData[x.name] : [];
325
-
326
  arrayVal.push( x.value );
327
-
328
  formData[x.name] = arrayVal;
329
  } else {
330
  formData[x.name] = x.value;
@@ -339,10 +339,10 @@
339
  } );
340
 
341
  return formResult;
342
- };
343
 
344
  // handle screen loading
345
- $( document ).on( 'click', '.cn-screen-button', function( e ) {
346
  var form = $( e.target ).closest( 'form' );
347
  var result = false;
348
 
@@ -354,18 +354,18 @@
354
  if ( form.length === 0 )
355
  return cnWelcomeScreen( e );
356
 
357
- var formData = {};
358
  var formDataset = $( form[0] ).data();
359
  var formAction = formDataset.hasOwnProperty( 'action' ) ? formDataset.action : '';
360
 
361
  // get form data
362
- $( form[0] ).serializeArray().map( function( x ) {
363
  // exception for checkboxes
364
  if ( x.name === 'cn_laws' ) {
365
- var arrayVal = typeof formData[x.name] !== 'undefined' ? formData[x.name] : [];
366
-
367
  arrayVal.push( x.value );
368
-
369
  formData[x.name] = arrayVal;
370
  } else {
371
  formData[x.name] = x.value;
@@ -397,18 +397,18 @@
397
  // get form and process it
398
  result = cnWelcomeForm( form );
399
 
400
- result.done( function( response ) {
401
  // error
402
  if ( response.hasOwnProperty( 'error' ) ) {
403
  cnDisplayError( response.error, $( form[0] ) );
404
 
405
  return false;
406
- // message
407
  } else if ( response.hasOwnProperty( 'message' ) ) {
408
  cnDisplayError( response.message, $( form[0] ) );
409
 
410
  return false;
411
- // all good
412
  } else {
413
  switch ( formAction ) {
414
  // logged in, go to success or billing
@@ -441,7 +441,7 @@
441
  }
442
  } );
443
 
444
- result.always( function( response ) {
445
  if ( $( e.target ).find( '.cn-spinner' ).length )
446
  $( e.target ).find( '.cn-spinner' ).removeClass( 'spin' );
447
 
@@ -456,18 +456,18 @@
456
  } );
457
 
458
  //
459
- $( document ).on( 'screen-loaded', function() {
460
- var configureFields = $( '#cn-form-configure' ).serializeArray() || [];
461
  var frame = window.frames[ 'cn_iframe_id' ];
462
 
463
  if ( configureFields.length > 0 ) {
464
- $( configureFields ).each( function( index, field ) {
465
  } );
466
  }
467
  } );
468
 
469
  // change payment method
470
- $( document ).on( 'change', 'input[name="method"]', function() {
471
  var input = $( this );
472
 
473
  $( '#cn_payment_method_credit_card, #cn_payment_method_paypal' ).toggle();
@@ -479,7 +479,7 @@
479
  } );
480
 
481
  //
482
- $( document ).on( 'click', '.cn-accordion > .cn-accordion-item .cn-accordion-button', function() {
483
  var accordionItem = $( this ).closest( '.cn-accordion-item' );
484
  var activeItem = $( this ).closest( '.cn-accordion' ).find( '.cn-accordion-item:not(.cn-collapsed)' );
485
 
@@ -490,90 +490,104 @@
490
 
491
  return false;
492
  } );
493
-
494
  // live preview
495
- $( document ).on( 'change', 'input[name="cn_position"]', function() {
496
  var val = $( this ).val();
497
  var frame = window.frames['cn_iframe_id'];
498
 
499
  frame.contentWindow.postMessage( { call: 'position', value: val } );
500
  } );
501
 
502
- $( document ).on( 'change', 'input[name="cn_purposes"]', function() {
503
- var val = [];
504
-
505
- $( 'input[name="cn_purposes"]:checked' ).each( function() {
506
  val.push( $( this ).val() );
507
  } );
508
-
509
  var frame = window.frames['cn_iframe_id'];
510
 
511
- frame.contentWindow.postMessage( { call: 'purposes', value: val } );
512
  } );
513
 
514
- $( document ).on( 'change', 'input[name="cn_laws"]', function() {
515
- var val = [];
516
-
517
- $( 'input[name="cn_laws"]:checked' ).each( function() {
518
  val.push( $( this ).val() );
519
  } );
520
-
521
  var frame = window.frames['cn_iframe_id'];
522
 
523
- frame.contentWindow.postMessage( { call: 'laws', value: val } );
524
  } );
525
 
526
- $( document ).on( 'change', 'input[name="cn_color_primary"]', function() {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
527
  var val = $( this ).val();
528
  var frame = window.frames['cn_iframe_id'];
529
 
530
  frame.contentWindow.postMessage( { call: 'color_primary', value: val } );
531
  } );
532
-
533
- $( document ).on( 'change', 'input[name="cn_color_background"]', function() {
534
  var val = $( this ).val();
535
  var frame = window.frames['cn_iframe_id'];
536
 
537
  frame.contentWindow.postMessage( { call: 'color_background', value: val } );
538
  } );
539
-
540
- $( document ).on( 'change', 'input[name="cn_color_border"]', function() {
541
  var val = $( this ).val();
542
  var frame = window.frames['cn_iframe_id'];
543
 
544
  frame.contentWindow.postMessage( { call: 'color_border', value: val } );
545
  } );
546
-
547
- $( document ).on( 'change', 'input[name="cn_color_text"]', function() {
548
  var val = $( this ).val();
549
  var frame = window.frames['cn_iframe_id'];
550
 
551
  frame.contentWindow.postMessage( { call: 'color_text', value: val } );
552
  } );
553
-
554
- $( document ).on( 'change', 'input[name="cn_color_heading"]', function() {
555
  var val = $( this ).val();
556
  var frame = window.frames['cn_iframe_id'];
557
 
558
  frame.contentWindow.postMessage( { call: 'color_heading', value: val } );
559
  } );
560
-
561
- $( document ).on( 'change', 'input[name="cn_color_button_text"]', function() {
562
  var val = $( this ).val();
563
  var frame = window.frames['cn_iframe_id'];
564
 
565
  frame.contentWindow.postMessage( { call: 'color_button_text', value: val } );
566
  } );
567
-
568
  // plan selection
569
- $( document ).on( 'change', 'input[name="plan"]', function() {
570
  var availablePlans = [ 'free', 'monthly', 'yearly' ];
571
-
572
  var input = $( this ),
573
  inputVal = input.val();
574
-
575
  inputVal = availablePlans.indexOf( inputVal ) != -1 ? inputVal : 'free';
576
-
577
  if ( inputVal === 'free' ) {
578
  $( '#cn_submit_free' ).removeClass( 'cn-hidden' );
579
  $( '#cn_submit_paid' ).addClass( 'cn-hidden' );
@@ -582,23 +596,23 @@
582
  $( '#cn_submit_paid' ).removeClass( 'cn-hidden' );
583
  }
584
 
585
- $( document ).find( '.cn-pricing-item input[value="' + inputVal + '"' ).prop('checked', true);
586
  } );
587
-
588
  // highlight form
589
- $( document ).on( 'click', 'input[name="cn_pricing_plan"]', function() {
590
  $( '.cn-accordion .cn-accordion-item:first-child:not(.cn-collapsed)' ).focus();
591
  } );
592
-
593
  // select plan
594
- $( document ).on( 'change', 'input[name="cn_pricing_plan"]', function() {
595
  var availablePlans = [ 'free', 'monthly', 'yearly' ];
596
-
597
  var input = $( this ),
598
  inputVal = input.val();
599
-
600
  inputVal = availablePlans.indexOf( inputVal ) != -1 ? inputVal : 'free';
601
-
602
  if ( inputVal === 'free' ) {
603
  $( '#cn_submit_free' ).removeClass( 'cn-hidden' );
604
  $( '#cn_submit_paid' ).addClass( 'cn-hidden' );
@@ -607,66 +621,66 @@
607
  $( '#cn_submit_paid' ).removeClass( 'cn-hidden' );
608
  }
609
 
610
- $( document ).find( '#cn_field_plan_' + inputVal ).prop('checked', true);
611
-
612
-
613
  } );
614
 
615
  // color picker
616
  initSpectrum();
617
-
618
  // init welcome modal
619
  if ( cnWelcomeArgs.initModal == true )
620
  initModal();
621
 
622
  } );
623
 
624
- $( document ).on( 'ajaxComplete', function() {
625
  // color picker
626
  initSpectrum();
627
  } );
628
 
629
  function initSpectrum() {
630
- $( '.cn-color-picker' ).spectrum( {
631
  showInput: true,
632
  showInitial: true,
633
  allowEmpty: false,
634
  showAlpha: false
635
  } );
636
  }
637
-
638
  function initModal() {
639
  var progressbar,
640
  timerId,
641
  modal = $( "#cn-modal-trigger" );
642
-
643
  if ( modal ) {
644
-
645
  $( "#cn-modal-trigger" ).modaal( {
646
  content_source: cnWelcomeArgs.ajaxURL + '?action=cn_welcome_screen' + '&nonce=' + cnWelcomeArgs.nonce + '&screen=1',
647
  type: 'ajax',
648
  width: 1600,
649
  custom_class: 'cn-modal',
650
  // is_locked: true
651
- ajax_success: function() {
652
  progressbar = $( document ).find( '.cn-progressbar' );
653
 
654
  if ( progressbar ) {
655
- timerId = initProgressBar( progressbar );
656
  }
657
  },
658
- before_close: function() {
659
  clearInterval( timerId );
660
 
661
  var currentStep = $( '.cn-welcome-wrap' );
662
-
663
  // reload if on success screen
664
  if ( currentStep.length > 0 ) {
665
  if ( $( currentStep[0] ).hasClass( 'cn-welcome-step-4' ) === true )
666
  window.location.reload( true );
667
  }
668
  },
669
- after_close: function() {
670
  progressbar = $( document ).find( '.cn-progressbar' );
671
 
672
  $( progressbar ).progressbar( "destroy" );
@@ -674,37 +688,37 @@
674
  } );
675
 
676
  $( modal ).trigger( 'click' );
677
-
678
- $( document ).on( 'click', '.cn-skip-button', function( e ) {
679
  $( '#modaal-close' ).trigger( 'click' );
680
  } );
681
  }
682
  }
683
-
684
  function initProgressBar( progressbar ) {
685
  var progressbarObj,
686
  progressLabel = $( document ).find( '.cn-progress-label' ),
687
  complianceResults = $( document ).find( '.cn-compliance-results' ),
688
  currentProgress = 0,
689
  timerId;
690
-
691
  if ( progressbar ) {
692
-
693
- $( document ).on( 'click', '.cn-screen-button', function( e ) {
694
  e.preventDefault();
695
 
696
  // console.log( e );
697
 
698
  clearInterval( timerId );
699
  } );
700
-
701
  $( progressbar ).progressbar( {
702
  value: 5,
703
  max: 100,
704
  create: function ( event, ui ) {
705
  // console.log( event );
706
 
707
- timerId = setInterval( function() {
708
  // increment progress bar
709
  currentProgress += 5;
710
 
@@ -775,26 +789,53 @@
775
  // $( progressbar ).progressbar( "destroy" );
776
  }
777
  } );
778
-
779
  progressbarObj = $( progressbar ).progressbar( "instance" );
780
-
781
  return timerId;
782
  }
783
  }
784
-
785
- $( document ).on( 'click', '.cn-run-upgrade, .cn-run-welcome', function( e ) {
786
  e.preventDefault();
787
-
788
  // console.log( e );
789
-
790
  // modal
791
  initModal();
792
  } );
793
-
794
- $( document ).on( 'click', '.cn-sign-up', function( e ) {
795
- e.preventDefault();
 
 
796
 
 
 
 
 
 
 
 
 
 
797
  $( '.cn-screen-button' ).trigger( 'click' );
798
  } );
799
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
800
  } )( jQuery );
1
+ ( function ( $ ) {
2
 
3
  // ready event
4
+ $( function () {
5
  var btClient = false;
6
  var btCreditCardsInitialized = false;
7
  var btPayPalInitialized = false;
8
 
9
+ var btInit = function () {
10
  var result = btInitToken();
11
 
12
  if ( result !== false && btCreditCardsInitialized === false ) {
13
  // AJAX was successful
14
+ result.done( function ( response ) {
15
  // token received
16
  try {
17
  // parse response
23
  } );
24
 
25
  btInitPaymentMethod( 'credit_card' );
26
+ // token failed
27
+ } catch ( e ) {
28
  btGatewayFail( 'btInit catch' );
29
  }
30
+ // AJAX failed
31
+ } ).fail( function () {
32
  btGatewayFail( 'btInit AJAX failed' );
33
  } );
34
  }
35
  }
36
 
37
+ var btInitToken = function () {
38
  // payment screen?
39
  var payment = $( '.cn-sidebar form[data-action="payment"]' );
40
 
59
  return false;
60
  }
61
 
62
+ var btInitPaymentMethod = function ( type ) {
63
  // console.log( 'btInitPaymentMethod' );
64
 
65
  if ( btClient !== false ) {
76
  btGatewayFail( 'btInitPaymentMethod btClient is false' );
77
  }
78
 
79
+ var btCreditCardsInit = function ( clientInstance ) {
80
  // console.log( 'btCreditCardsInit' );
81
+
82
  return braintree.hostedFields.create( {
83
  client: clientInstance,
84
  styles: {
111
  } );
112
  }
113
 
114
+ var btHostedFieldsInstance = function ( hostedFieldsInstance ) {
115
  // console.log( 'btHostedFieldsInstance' );
116
+
117
  btCreditCardsInitialized = true;
118
 
119
  var form = $( 'form.cn-form[data-action="payment"]' );
120
 
121
  form.removeClass( 'cn-form-disabled' );
122
 
123
+ form.on( 'submit', function () {
124
  if ( form.hasClass( 'cn-payment-in-progress' ) )
125
  return false;
126
 
134
  var state = hostedFieldsInstance.getState();
135
 
136
  // check hosted fields
137
+ Object.keys( state.fields ).forEach( function ( field ) {
138
+ if ( !state.fields[field].isValid ) {
139
  $( state.fields[field].container ).addClass( 'braintree-hosted-fields-invalid' );
140
 
141
  invalidForm = true;
143
  } );
144
 
145
  if ( invalidForm ) {
146
+ setTimeout( function () {
147
  cnDisplayError( cnWelcomeArgs.invalidFields, form );
148
 
149
  // spin the spinner, if exists
154
  return false;
155
  }
156
 
157
+ hostedFieldsInstance.tokenize( function ( err, payload ) {
158
  if ( err ) {
159
  cnDisplayError( cnWelcomeArgs.error );
160
 
171
  } );
172
  }
173
 
174
+ var btPaypalCheckoutInit = function ( clientInstance ) {
175
  // console.log( 'btPaypalCheckoutInit' );
176
+
177
  return braintree.paypalCheckout.create( {
178
  client: clientInstance
179
  } );
180
  }
181
 
182
+ var btPaypalCheckoutSDK = function ( paypalCheckoutInstance ) {
183
  // console.log( 'btPaypalCheckoutSDK' );
184
+
185
  return paypalCheckoutInstance.loadPayPalSDK( {
186
  vault: true,
187
  intent: 'tokenize'
188
  } );
189
  }
190
 
191
+ var btPaypalCheckoutInstance = function ( paypalCheckoutInstance ) {
192
  // console.log( 'btPaypalCheckoutInstance' );
193
+
194
  var form = $( 'form.cn-form[data-action="payment"]' );
195
 
196
  return paypal.Buttons( {
197
  fundingSource: paypal.FUNDING.PAYPAL,
198
+ createBillingAgreement: function () {
199
  // console.log( 'createBillingAgreement' );
200
+
201
  form.addClass( 'cn-form-disabled' );
202
 
203
  return paypalCheckoutInstance.createPayment( {
206
  currency: 'EUR'
207
  } );
208
  },
209
+ onApprove: function ( data, actions ) {
210
  // console.log( 'onApprove' );
211
+
212
+ return paypalCheckoutInstance.tokenizePayment( data ).then( function ( payload ) {
213
  form.addClass( 'cn-payment-in-progress' );
214
  form.find( 'input[name="payment_nonce"]' ).val( payload.nonce );
215
+
216
  // console.log( 'onApprove inside' );
217
  // console.log( $( '#cn_submit_paid' ).find( '.cn-screen-button[data-screen="4"]' ) );
218
+
219
  $( '#cn_submit_paid' ).find( '.cn-screen-button[data-screen="4"]' ).trigger( 'click' );
220
  } );
221
  },
222
+ onCancel: function ( data ) {
223
  // console.log( 'onCancel' );
224
+
225
  form.removeClass( 'cn-form-disabled' );
226
  },
227
+ onError: function ( err ) {
228
  // console.log( 'onError' );
229
+
230
  form.removeClass( 'cn-form-disabled' );
231
  }
232
  } ).render( '#cn_paypal_button' );
233
  }
234
 
235
+ var btPaypalCheckoutButton = function () {
236
  // console.log( 'btPaypalCheckoutButton' );
237
+
238
  btPayPalInitialized = true;
239
 
240
  $( 'form.cn-form[data-action="payment"]' ).removeClass( 'cn-form-disabled' );
241
  }
242
 
243
+ var btGatewayFail = function ( error ) {
244
  // console.log( 'btGatewayFail' );
245
 
246
  if ( typeof error !== 'undefined' )
249
  cnDisplayError( cnWelcomeArgs.error );
250
  }
251
 
252
+ var cnDisplayError = function ( message, form ) {
253
  if ( typeof form === 'undefined' )
254
  form = $( 'form.cn-form[data-action="payment"]' );
255
 
256
  form.find( '.cn-form-feedback' ).html( '<p class="cn-error">' + message + '</p>' ).removeClass( 'cn-hidden' );
257
  }
258
 
259
+ var cnWelcomeScreen = function ( e ) {
260
  var screen = $( e.target ).data( 'screen' );
261
+ var steps = [ 1, 2, 3, 4 ];
262
+ var sidebars = [ 'login', 'register', 'configure', 'payment' ];
263
 
264
  // continue with screen loading
265
  var requestData = {
286
  type: 'POST',
287
  dataType: 'html',
288
  data: requestData
289
+ } ).done( function ( response ) {
290
  $( container ).replaceWith( response );
291
+ } ).fail( function ( jqXHR, textStatus, errorThrown ) {
292
  //
293
+ } ).always( function ( response ) {
294
  // remove spinner
295
  $( container ).removeClass( 'cn-loading' );
296
 
299
 
300
  $( document ).trigger( event );
301
  } );
302
+
303
  return this;
304
  };
305
 
306
+ var cnWelcomeForm = function ( form ) {
307
  var formAction = $( form[0] ).data( 'action' );
308
  var formResult = null;
309
  var formData = {
318
  formData.request = formAction;
319
 
320
  // convert form data to object
321
+ $( form[0] ).serializeArray().map( function ( x ) {
322
  // exception for checkboxes
323
  if ( x.name === 'cn_laws' ) {
324
+ var arrayVal = typeof formData[x.name] !== 'undefined' ? formData[x.name] : [ ];
325
+
326
  arrayVal.push( x.value );
327
+
328
  formData[x.name] = arrayVal;
329
  } else {
330
  formData[x.name] = x.value;
339
  } );
340
 
341
  return formResult;
342
+ };
343
 
344
  // handle screen loading
345
+ $( document ).on( 'click', '.cn-screen-button', function ( e ) {
346
  var form = $( e.target ).closest( 'form' );
347
  var result = false;
348
 
354
  if ( form.length === 0 )
355
  return cnWelcomeScreen( e );
356
 
357
+ var formData = { };
358
  var formDataset = $( form[0] ).data();
359
  var formAction = formDataset.hasOwnProperty( 'action' ) ? formDataset.action : '';
360
 
361
  // get form data
362
+ $( form[0] ).serializeArray().map( function ( x ) {
363
  // exception for checkboxes
364
  if ( x.name === 'cn_laws' ) {
365
+ var arrayVal = typeof formData[x.name] !== 'undefined' ? formData[x.name] : [ ];
366
+
367
  arrayVal.push( x.value );
368
+
369
  formData[x.name] = arrayVal;
370
  } else {
371
  formData[x.name] = x.value;
397
  // get form and process it
398
  result = cnWelcomeForm( form );
399
 
400
+ result.done( function ( response ) {
401
  // error
402
  if ( response.hasOwnProperty( 'error' ) ) {
403
  cnDisplayError( response.error, $( form[0] ) );
404
 
405
  return false;
406
+ // message
407
  } else if ( response.hasOwnProperty( 'message' ) ) {
408
  cnDisplayError( response.message, $( form[0] ) );
409
 
410
  return false;
411
+ // all good
412
  } else {
413
  switch ( formAction ) {
414
  // logged in, go to success or billing
441
  }
442
  } );
443
 
444
+ result.always( function ( response ) {
445
  if ( $( e.target ).find( '.cn-spinner' ).length )
446
  $( e.target ).find( '.cn-spinner' ).removeClass( 'spin' );
447
 
456
  } );
457
 
458
  //
459
+ $( document ).on( 'screen-loaded', function () {
460
+ var configureFields = $( '#cn-form-configure' ).serializeArray() || [ ];
461
  var frame = window.frames[ 'cn_iframe_id' ];
462
 
463
  if ( configureFields.length > 0 ) {
464
+ $( configureFields ).each( function ( index, field ) {
465
  } );
466
  }
467
  } );
468
 
469
  // change payment method
470
+ $( document ).on( 'change', 'input[name="method"]', function () {
471
  var input = $( this );
472
 
473
  $( '#cn_payment_method_credit_card, #cn_payment_method_paypal' ).toggle();
479
  } );
480
 
481
  //
482
+ $( document ).on( 'click', '.cn-accordion > .cn-accordion-item .cn-accordion-button', function () {
483
  var accordionItem = $( this ).closest( '.cn-accordion-item' );
484
  var activeItem = $( this ).closest( '.cn-accordion' ).find( '.cn-accordion-item:not(.cn-collapsed)' );
485
 
490
 
491
  return false;
492
  } );
493
+
494
  // live preview
495
+ $( document ).on( 'change', 'input[name="cn_position"]', function () {
496
  var val = $( this ).val();
497
  var frame = window.frames['cn_iframe_id'];
498
 
499
  frame.contentWindow.postMessage( { call: 'position', value: val } );
500
  } );
501
 
502
+ $( document ).on( 'change', 'input[name="cn_laws"]', function () {
503
+ var val = [ ];
504
+
505
+ $( 'input[name="cn_laws"]:checked' ).each( function () {
506
  val.push( $( this ).val() );
507
  } );
508
+
509
  var frame = window.frames['cn_iframe_id'];
510
 
511
+ frame.contentWindow.postMessage( { call: 'laws', value: val } );
512
  } );
513
 
514
+ $( document ).on( 'change', 'input[name="cn_naming"]', function () {
515
+ var val = [ ];
516
+
517
+ $( 'input[name="cn_naming"]:checked' ).each( function () {
518
  val.push( $( this ).val() );
519
  } );
520
+
521
  var frame = window.frames['cn_iframe_id'];
522
 
523
+ frame.contentWindow.postMessage( { call: 'naming', value: val } );
524
  } );
525
 
526
+ $( document ).on( 'change', 'input[name="cn_privacy_paper"]', function () {
527
+ var val = $( this ).prop( 'checked' );
528
+ var frame = window.frames['cn_iframe_id'];
529
+
530
+ frame.contentWindow.postMessage( { call: 'privacy_paper', value: val } );
531
+ } );
532
+
533
+ $( document ).on( 'change', 'input[name="cn_privacy_contact"]', function () {
534
+ var val = $( this ).prop( 'checked' );
535
+ var frame = window.frames['cn_iframe_id'];
536
+
537
+ frame.contentWindow.postMessage( { call: 'privacy_contact', value: val } );
538
+ } );
539
+
540
+ $( document ).on( 'change', 'input[name="cn_color_primary"]', function () {
541
  var val = $( this ).val();
542
  var frame = window.frames['cn_iframe_id'];
543
 
544
  frame.contentWindow.postMessage( { call: 'color_primary', value: val } );
545
  } );
546
+
547
+ $( document ).on( 'change', 'input[name="cn_color_background"]', function () {
548
  var val = $( this ).val();
549
  var frame = window.frames['cn_iframe_id'];
550
 
551
  frame.contentWindow.postMessage( { call: 'color_background', value: val } );
552
  } );
553
+
554
+ $( document ).on( 'change', 'input[name="cn_color_border"]', function () {
555
  var val = $( this ).val();
556
  var frame = window.frames['cn_iframe_id'];
557
 
558
  frame.contentWindow.postMessage( { call: 'color_border', value: val } );
559
  } );
560
+
561
+ $( document ).on( 'change', 'input[name="cn_color_text"]', function () {
562
  var val = $( this ).val();
563
  var frame = window.frames['cn_iframe_id'];
564
 
565
  frame.contentWindow.postMessage( { call: 'color_text', value: val } );
566
  } );
567
+
568
+ $( document ).on( 'change', 'input[name="cn_color_heading"]', function () {
569
  var val = $( this ).val();
570
  var frame = window.frames['cn_iframe_id'];
571
 
572
  frame.contentWindow.postMessage( { call: 'color_heading', value: val } );
573
  } );
574
+
575
+ $( document ).on( 'change', 'input[name="cn_color_button_text"]', function () {
576
  var val = $( this ).val();
577
  var frame = window.frames['cn_iframe_id'];
578
 
579
  frame.contentWindow.postMessage( { call: 'color_button_text', value: val } );
580
  } );
581
+
582
  // plan selection
583
+ $( document ).on( 'change', 'input[name="plan"]', function () {
584
  var availablePlans = [ 'free', 'monthly', 'yearly' ];
585
+
586
  var input = $( this ),
587
  inputVal = input.val();
588
+
589
  inputVal = availablePlans.indexOf( inputVal ) != -1 ? inputVal : 'free';
590
+
591
  if ( inputVal === 'free' ) {
592
  $( '#cn_submit_free' ).removeClass( 'cn-hidden' );
593
  $( '#cn_submit_paid' ).addClass( 'cn-hidden' );
596
  $( '#cn_submit_paid' ).removeClass( 'cn-hidden' );
597
  }
598
 
599
+ $( document ).find( '.cn-pricing-item input[value="' + inputVal + '"' ).prop( 'checked', true );
600
  } );
601
+
602
  // highlight form
603
+ $( document ).on( 'click', 'input[name="cn_pricing_plan"]', function () {
604
  $( '.cn-accordion .cn-accordion-item:first-child:not(.cn-collapsed)' ).focus();
605
  } );
606
+
607
  // select plan
608
+ $( document ).on( 'change', 'input[name="cn_pricing_plan"]', function () {
609
  var availablePlans = [ 'free', 'monthly', 'yearly' ];
610
+
611
  var input = $( this ),
612
  inputVal = input.val();
613
+
614
  inputVal = availablePlans.indexOf( inputVal ) != -1 ? inputVal : 'free';
615
+
616
  if ( inputVal === 'free' ) {
617
  $( '#cn_submit_free' ).removeClass( 'cn-hidden' );
618
  $( '#cn_submit_paid' ).addClass( 'cn-hidden' );
621
  $( '#cn_submit_paid' ).removeClass( 'cn-hidden' );
622
  }
623
 
624
+ $( document ).find( '#cn_field_plan_' + inputVal ).prop( 'checked', true );
625
+
626
+
627
  } );
628
 
629
  // color picker
630
  initSpectrum();
631
+
632
  // init welcome modal
633
  if ( cnWelcomeArgs.initModal == true )
634
  initModal();
635
 
636
  } );
637
 
638
+ $( document ).on( 'ajaxComplete', function () {
639
  // color picker
640
  initSpectrum();
641
  } );
642
 
643
  function initSpectrum() {
644
+ $( '.cn-color-picker' ).spectrum( {
645
  showInput: true,
646
  showInitial: true,
647
  allowEmpty: false,
648
  showAlpha: false
649
  } );
650
  }
651
+
652
  function initModal() {
653
  var progressbar,
654
  timerId,
655
  modal = $( "#cn-modal-trigger" );
656
+
657
  if ( modal ) {
658
+
659
  $( "#cn-modal-trigger" ).modaal( {
660
  content_source: cnWelcomeArgs.ajaxURL + '?action=cn_welcome_screen' + '&nonce=' + cnWelcomeArgs.nonce + '&screen=1',
661
  type: 'ajax',
662
  width: 1600,
663
  custom_class: 'cn-modal',
664
  // is_locked: true
665
+ ajax_success: function () {
666
  progressbar = $( document ).find( '.cn-progressbar' );
667
 
668
  if ( progressbar ) {
669
+ timerId = initProgressBar( progressbar );
670
  }
671
  },
672
+ before_close: function () {
673
  clearInterval( timerId );
674
 
675
  var currentStep = $( '.cn-welcome-wrap' );
676
+
677
  // reload if on success screen
678
  if ( currentStep.length > 0 ) {
679
  if ( $( currentStep[0] ).hasClass( 'cn-welcome-step-4' ) === true )
680
  window.location.reload( true );
681
  }
682
  },
683
+ after_close: function () {
684
  progressbar = $( document ).find( '.cn-progressbar' );
685
 
686
  $( progressbar ).progressbar( "destroy" );
688
  } );
689
 
690
  $( modal ).trigger( 'click' );
691
+
692
+ $( document ).on( 'click', '.cn-skip-button', function ( e ) {
693
  $( '#modaal-close' ).trigger( 'click' );
694
  } );
695
  }
696
  }
697
+
698
  function initProgressBar( progressbar ) {
699
  var progressbarObj,
700
  progressLabel = $( document ).find( '.cn-progress-label' ),
701
  complianceResults = $( document ).find( '.cn-compliance-results' ),
702
  currentProgress = 0,
703
  timerId;
704
+
705
  if ( progressbar ) {
706
+
707
+ $( document ).on( 'click', '.cn-screen-button', function ( e ) {
708
  e.preventDefault();
709
 
710
  // console.log( e );
711
 
712
  clearInterval( timerId );
713
  } );
714
+
715
  $( progressbar ).progressbar( {
716
  value: 5,
717
  max: 100,
718
  create: function ( event, ui ) {
719
  // console.log( event );
720
 
721
+ timerId = setInterval( function () {
722
  // increment progress bar
723
  currentProgress += 5;
724
 
789
  // $( progressbar ).progressbar( "destroy" );
790
  }
791
  } );
792
+
793
  progressbarObj = $( progressbar ).progressbar( "instance" );
794
+
795
  return timerId;
796
  }
797
  }
798
+
799
+ $( document ).on( 'click', '.cn-run-upgrade, .cn-run-welcome', function ( e ) {
800
  e.preventDefault();
801
+
802
  // console.log( e );
803
+
804
  // modal
805
  initModal();
806
  } );
807
+
808
+ $( document ).ready( function () {
809
+ var welcome = false;
810
+
811
+ welcome = cnGetUrlParam( 'welcome' );
812
 
813
+ if ( welcome ) {
814
+ // modal
815
+ initModal();
816
+ }
817
+ } );
818
+
819
+ $( document ).on( 'click', '.cn-sign-up', function ( e ) {
820
+ e.preventDefault();
821
+
822
  $( '.cn-screen-button' ).trigger( 'click' );
823
  } );
824
 
825
+ var cnGetUrlParam = function cnGetUrlParam( parameter ) {
826
+ var pageURL = window.location.search.substring( 1 ),
827
+ urlVars = pageURL.split( '&' ),
828
+ parameterName,
829
+ i;
830
+
831
+ for ( i = 0; i < urlVars.length; i++ ) {
832
+ parameterName = urlVars[i].split( '=' );
833
+
834
+ if ( parameterName[0] === parameter ) {
835
+ return typeof parameterName[1] === undefined ? true : decodeURIComponent( parameterName[1] );
836
+ }
837
+ }
838
+ return false;
839
+ };
840
+
841
  } )( jQuery );
js/front-welcome.js CHANGED
@@ -2,10 +2,24 @@
2
 
3
  // ready event
4
  $( function() {
 
 
 
 
 
 
 
 
5
  // listen for the reload
6
  document.addEventListener( 'reload.hu', function( e ) {
7
- var customOptions = { config: { dontSellLink: true, privacyPolicyLink: true } };
8
-
 
 
 
 
 
 
9
  // set widget options
10
  hu.setOptions( customOptions );
11
  } );
@@ -13,28 +27,74 @@
13
  // listen for the display
14
  document.addEventListener( 'display.hu', function( e ) {
15
  var val = [],
16
- container = $( '#hu' ),
17
- customOptions = { config: {} };
18
-
19
- $( parent.document ).find( 'input[name="cn_laws"]:checked' ).each( function() {
 
 
 
20
  val.push( $( this ).val() );
21
  } );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
 
23
  if ( $.inArray( 'ccpa', val ) !== -1 ) {
24
- $( container ).find( '#hu-notice-dontsell-container' ).css( 'display', 'block' );
 
 
 
 
 
 
25
 
26
  $.extend( customOptions.config, { dontSellLink: true } );
27
  } else {
28
- $( container ).find( '#hu-notice-dontsell-container' ).css( 'display', 'none' );
 
 
 
 
 
 
 
 
29
 
30
  $.extend( customOptions.config, { dontSellLink: false } );
31
  }
 
32
  if ( $.inArray( 'gdpr', val ) !== -1 ) {
33
- $( container ).find( '#hu-notice-privacy-container' ).css( 'display', 'block' );
 
 
 
 
 
 
34
 
35
  $.extend( customOptions.config, { privacyPolicyLink: true } );
36
  } else {
37
- $( container ).find( '#hu-notice-privacy-container' ).css( 'display', 'none' );
 
 
 
 
 
 
 
 
38
 
39
  $.extend( customOptions.config, { privacyPolicyLink: false } );
40
  }
@@ -43,8 +103,6 @@
43
 
44
  // set widget options
45
  hu.setOptions( customOptions );
46
-
47
- // console.log( hu.options );
48
  } );
49
 
50
  // listen for the parent
@@ -66,53 +124,118 @@
66
  option = event.data.call,
67
  customOptions = {},
68
  customTexts = {};
 
 
69
 
70
  switch ( option ) {
 
71
  case 'position':
72
  $( container ).removeClass( 'hu-position-bottom hu-position-top hu-position-left hu-position-right hu-position-center' );
73
  $( container ).addClass( 'hu-position-' + event.data.value );
74
 
75
  customOptions = { design: { position: event.data.value } }
76
  break;
77
- case 'purposes':
78
- // get last array item
79
- var last = event.data.value.slice( -1 )[0],
80
- message = cnFrontWelcome.cookieMessage[0];
81
-
82
- if ( typeof last !== 'undefined' ) {
83
- message = cnFrontWelcome.cookieMessage[parseInt( last )];
84
- }
85
 
86
- message += ' ' + cnFrontWelcome.preferencesMessage[0];
87
-
88
- customTexts = { bodyText: message }
 
 
 
 
 
 
 
 
 
 
89
 
90
- $( container ).find( '#hu-notice-message-container .hu-text-body' ).text( message );
 
 
 
 
 
91
  break;
 
92
  case 'laws':
93
  customOptions.config = {}
94
 
95
  if ( $.inArray( 'ccpa', event.data.value ) !== -1 ) {
96
- $( container ).find( '#hu-notice-dontsell-container' ).css( 'display', 'block' );
97
-
 
 
 
 
 
 
98
  $.extend( customOptions.config, { dontSellLink: true } );
99
  } else {
100
- $( container ).find( '#hu-notice-dontsell-container' ).css( 'display', 'none' );
101
-
 
 
 
 
 
 
 
 
102
  $.extend( customOptions.config, { dontSellLink: false } );
103
  }
 
104
  if ( $.inArray( 'gdpr', event.data.value ) !== -1 ) {
105
- $( container ).find( '#hu-notice-privacy-container' ).css( 'display', 'block' );
106
-
 
 
 
 
 
 
107
  $.extend( customOptions.config, { privacyPolicyLink: true } );
108
  } else {
109
- $( container ).find( '#hu-notice-privacy-container' ).css( 'display', 'none' );
110
-
 
 
 
 
 
 
 
 
111
  $.extend( customOptions.config, { privacyPolicyLink: false } );
112
  }
113
 
114
  // console.log( customOptions );
115
  break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
116
  case 'color_primary':
117
  var iframeContents = $( iframe ).contents()[0];
118
  iframeContents.documentElement.style.setProperty( '--hu-primaryColor', event.data.value );
2
 
3
  // ready event
4
  $( function() {
5
+ var cnHiddenElements = {};
6
+
7
+ // listen for the load
8
+ document.addEventListener( 'load.hu', function( e ) {
9
+ // set widget text strings
10
+ hu.setTexts( cnFrontWelcome.textStrings );
11
+ } );
12
+
13
  // listen for the reload
14
  document.addEventListener( 'reload.hu', function( e ) {
15
+ var container = $( '#hu' );
16
+ var customOptions = { config: {
17
+ dontSellLink: true,
18
+ privacyPolicyLink: true,
19
+ privacyPaper: true,
20
+ privacyContact: true
21
+ } };
22
+
23
  // set widget options
24
  hu.setOptions( customOptions );
25
  } );
27
  // listen for the display
28
  document.addEventListener( 'display.hu', function( e ) {
29
  var val = [],
30
+ container = $( '#hu' );
31
+
32
+ var customOptions = { config: {
33
+ // make it empty
34
+ } };
35
+
36
+ $( parent.document ).find( 'input[name="cn_laws"]:checked' ).each( function() {
37
  val.push( $( this ).val() );
38
  } );
39
+
40
+ // hide paper and contact
41
+ if ( $( parent.document ).find( 'input[name="cn_privacy_paper"]' ).prop( 'checked' ) === true ) {
42
+ $( container ).find( '#hu-cookies-paper' ).show();
43
+
44
+ } else {
45
+ $( container ).find( '#hu-cookies-paper' ).hide();
46
+ }
47
+
48
+ if ( $( parent.document ).find( 'input[name="cn_privacy_contact"]' ).prop( 'checked' ) === true ) {
49
+ $( container ).find( '#hu-cookies-contact' ).show();
50
+ } else {
51
+ $( container ).find( '#hu-cookies-contact' ).hide();
52
+ }
53
 
54
  if ( $.inArray( 'ccpa', val ) !== -1 ) {
55
+ var htmlElement = $( $( container ).find( '#hu-cookies-notice-dontsell-btn' ) );
56
+
57
+ if ( htmlElement.length === 0 ) {
58
+ $( '#hu-policy-links' ).append( cnHiddenElements.ccpa );
59
+
60
+ delete cnHiddenElements.ccpa;
61
+ }
62
 
63
  $.extend( customOptions.config, { dontSellLink: true } );
64
  } else {
65
+ var htmlElement = $( $( container ).find( '#hu-cookies-notice-dontsell-btn' ) );
66
+
67
+ // add to hidden elements
68
+ if ( htmlElement ) {
69
+ cnHiddenElements['ccpa'] = htmlElement;
70
+
71
+ // remove el
72
+ $( htmlElement ).remove();
73
+ }
74
 
75
  $.extend( customOptions.config, { dontSellLink: false } );
76
  }
77
+
78
  if ( $.inArray( 'gdpr', val ) !== -1 ) {
79
+ var htmlElement = $( $( container ).find( '#hu-cookies-notice-privacy-btn' ) );
80
+
81
+ if ( htmlElement.length === 0 ) {
82
+ $( '#hu-policy-links' ).prepend( cnHiddenElements.gdpr );
83
+
84
+ delete cnHiddenElements.gdpr;
85
+ }
86
 
87
  $.extend( customOptions.config, { privacyPolicyLink: true } );
88
  } else {
89
+ var htmlElement = $( $( container ).find( '#hu-cookies-notice-privacy-btn' ) );
90
+
91
+ // add to hidden elements
92
+ if ( htmlElement ) {
93
+ cnHiddenElements['gdpr'] = htmlElement;
94
+
95
+ // remove el
96
+ $( htmlElement ).remove();
97
+ }
98
 
99
  $.extend( customOptions.config, { privacyPolicyLink: false } );
100
  }
103
 
104
  // set widget options
105
  hu.setOptions( customOptions );
 
 
106
  } );
107
 
108
  // listen for the parent
124
  option = event.data.call,
125
  customOptions = {},
126
  customTexts = {};
127
+
128
+ // console.log( option );
129
 
130
  switch ( option ) {
131
+
132
  case 'position':
133
  $( container ).removeClass( 'hu-position-bottom hu-position-top hu-position-left hu-position-right hu-position-center' );
134
  $( container ).addClass( 'hu-position-' + event.data.value );
135
 
136
  customOptions = { design: { position: event.data.value } }
137
  break;
 
 
 
 
 
 
 
 
138
 
139
+ case 'naming':
140
+ var level1 = $( '.hu-cookies-notice-consent-choices-1' ),
141
+ level2 = $( '.hu-cookies-notice-consent-choices-2' ),
142
+ level3 = $( '.hu-cookies-notice-consent-choices-3' );
143
+
144
+ var text1 = cnFrontWelcome.levelNames[event.data.value][1],
145
+ text2 = cnFrontWelcome.levelNames[event.data.value][2],
146
+ text3 = cnFrontWelcome.levelNames[event.data.value][3];
147
+
148
+ // apply text to dom elements
149
+ $( level1 ).find( '.hu-toggle-label' ).text( text1 );
150
+ $( level2 ).find( '.hu-toggle-label' ).text( text2 );
151
+ $( level3 ).find( '.hu-toggle-label' ).text( text3 );
152
 
153
+ // apply text to text strings
154
+ customTexts = {
155
+ levelNameText_1: text1,
156
+ levelNameText_2: text2,
157
+ levelNameText_3: text3
158
+ }
159
  break;
160
+
161
  case 'laws':
162
  customOptions.config = {}
163
 
164
  if ( $.inArray( 'ccpa', event.data.value ) !== -1 ) {
165
+ var htmlElement = $( container ).find( '#hu-cookies-notice-dontsell-btn' );
166
+
167
+ if ( htmlElement.length === 0 ) {
168
+ $( '#hu-policy-links' ).append( cnHiddenElements.ccpa );
169
+
170
+ delete cnHiddenElements.ccpa;
171
+ }
172
+
173
  $.extend( customOptions.config, { dontSellLink: true } );
174
  } else {
175
+ var htmlElement = $( container ).find( '#hu-cookies-notice-dontsell-btn' );
176
+
177
+ // add to hidden elements
178
+ if ( htmlElement && ! cnHiddenElements.hasOwnProperty( 'ccpa' ) ) {
179
+ cnHiddenElements['ccpa'] = htmlElement;
180
+
181
+ // remove el
182
+ $( htmlElement ).remove();
183
+ }
184
+
185
  $.extend( customOptions.config, { dontSellLink: false } );
186
  }
187
+
188
  if ( $.inArray( 'gdpr', event.data.value ) !== -1 ) {
189
+ var htmlElement = $( container ).find( '#hu-cookies-notice-privacy-btn' );
190
+
191
+ if ( htmlElement.length === 0 ) {
192
+ $( '#hu-policy-links' ).prepend( cnHiddenElements.gdpr );
193
+
194
+ delete cnHiddenElements.gdpr;
195
+ }
196
+
197
  $.extend( customOptions.config, { privacyPolicyLink: true } );
198
  } else {
199
+ var htmlElement = $( container ).find( '#hu-cookies-notice-privacy-btn' );
200
+
201
+ // add to hidden elements
202
+ if ( htmlElement && ! cnHiddenElements.hasOwnProperty( 'gdpr' ) ) {
203
+ cnHiddenElements['gdpr'] = htmlElement;
204
+
205
+ // remove el
206
+ $( htmlElement ).remove();
207
+ }
208
+
209
  $.extend( customOptions.config, { privacyPolicyLink: false } );
210
  }
211
 
212
  // console.log( customOptions );
213
  break;
214
+
215
+ case 'privacy_paper':
216
+ var value = event.data.value === true;
217
+ var htmlElement = $( container ).find( '#hu-cookies-paper' );
218
+
219
+ if ( value )
220
+ $( htmlElement ).show();
221
+ else
222
+ $( htmlElement ).hide();
223
+
224
+ $.extend( customOptions.config, { privacyPaper: value } );
225
+ break;
226
+
227
+ case 'privacy_contact':
228
+ var value = event.data.value === true;
229
+ var htmlElement = $( container ).find( '#hu-cookies-contact');
230
+
231
+ if ( value )
232
+ $( htmlElement ).show();
233
+ else
234
+ $( htmlElement ).hide();
235
+
236
+ $.extend( customOptions.config, { privacyContact: value } );
237
+ break;
238
+
239
  case 'color_primary':
240
  var iframeContents = $( iframe ).contents()[0];
241
  iframeContents.documentElement.style.setProperty( '--hu-primaryColor', event.data.value );
languages/cookie-notice.pot CHANGED
@@ -2,7 +2,7 @@
2
  msgid ""
3
  msgstr ""
4
  "Project-Id-Version: Cookie Notice\n"
5
- "POT-Creation-Date: 2021-07-10 10:27+0200\n"
6
  "PO-Revision-Date: 2015-03-24 11:30+0100\n"
7
  "Last-Translator: Bartosz Arendt <info@dfactory.eu>\n"
8
  "Language-Team: dFactory <info@dfactory.eu>\n"
@@ -16,19 +16,91 @@ msgstr ""
16
  "X-Poedit-SourceCharset: UTF-8\n"
17
  "X-Poedit-SearchPath-0: ..\n"
18
 
19
- #: ../cookie-notice.php:475
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  msgid "Settings"
21
  msgstr ""
22
 
23
- #: ../includes/settings.php:48 ../includes/welcome.php:511
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  msgid "Top"
25
  msgstr ""
26
 
27
- #: ../includes/settings.php:49 ../includes/welcome.php:510
28
  msgid "Bottom"
29
  msgstr ""
30
 
31
- #: ../includes/settings.php:53 ../includes/settings.php:98
32
  msgid "None"
33
  msgstr ""
34
 
@@ -60,7 +132,7 @@ msgstr ""
60
  msgid "Banner"
61
  msgstr ""
62
 
63
- #: ../includes/settings.php:75 ../includes/settings.php:505
64
  msgid "Message"
65
  msgstr ""
66
 
@@ -69,501 +141,513 @@ msgid "Text color"
69
  msgstr ""
70
 
71
  #: ../includes/settings.php:80
 
 
 
 
72
  msgid "Bar color"
73
  msgstr ""
74
 
75
- #: ../includes/settings.php:86
76
  msgid "An hour"
77
  msgstr ""
78
 
79
- #: ../includes/settings.php:87
80
  msgid "1 day"
81
  msgstr ""
82
 
83
- #: ../includes/settings.php:88
84
  msgid "1 week"
85
  msgstr ""
86
 
87
- #: ../includes/settings.php:89
88
  msgid "1 month"
89
  msgstr ""
90
 
91
- #: ../includes/settings.php:90
92
  msgid "3 months"
93
  msgstr ""
94
 
95
- #: ../includes/settings.php:91
96
  msgid "6 months"
97
  msgstr ""
98
 
99
- #: ../includes/settings.php:92
100
  msgid "1 year"
101
  msgstr ""
102
 
103
- #: ../includes/settings.php:93
104
  msgid "infinity"
105
  msgstr ""
106
 
107
- #: ../includes/settings.php:99
108
  msgid "Fade"
109
  msgstr ""
110
 
111
- #: ../includes/settings.php:100
112
  msgid "Slide"
113
  msgstr ""
114
 
115
- #: ../includes/settings.php:104
116
  msgid "Header"
117
  msgstr ""
118
 
119
- #: ../includes/settings.php:105
120
  msgid "Footer"
121
  msgstr ""
122
 
123
- #: ../includes/settings.php:109
124
- msgid "Cookies are small files that are stored on your browser. We use cookies and similar technologies to ensure our website works properly."
125
- msgstr ""
126
-
127
- #: ../includes/settings.php:110
128
- msgid "Cookies are small files that are stored on your browser. We use cookies and similar technologies to ensure our website works properly, and to personalize your browsing experience."
129
- msgstr ""
130
-
131
  #: ../includes/settings.php:111
132
- msgid "Cookies are small files that are stored on your browser. We use cookies and similar technologies to ensure our website works properly, personalize your browsing experience, and analyze how you use our website. For these reasons, we may share your site usage data with our analytics partners."
133
  msgstr ""
134
 
135
  #: ../includes/settings.php:112
136
- msgid "Cookies are small files that are stored on your browser. We use cookies and similar technologies to ensure our website works properly, personalize your browsing experience, analyze how you use our website, and deliver relevant ads to you. For these reasons, we may share your site usage data with our social media, advertising and analytics partners."
137
  msgstr ""
138
 
139
- #: ../includes/settings.php:115
140
- msgid "You can choose whether or not you want to consent to our use of cookies through the options below."
141
  msgstr ""
142
 
143
  #: ../includes/settings.php:116
144
- msgid "You can choose whether or not you want to consent to our use of cookies through the options below. You can customise the use of cookies, and change your settings at any time."
145
  msgstr ""
146
 
147
- #: ../includes/settings.php:120
148
- msgid "Accept"
 
 
 
 
149
  msgstr ""
150
 
151
  #: ../includes/settings.php:121
152
- msgid "Reject"
153
  msgstr ""
154
 
155
  #: ../includes/settings.php:122
156
- msgid "Revoke Cookies"
 
 
 
 
157
  msgstr ""
158
 
159
- #: ../includes/settings.php:123 ../includes/settings.php:389
160
- #: ../includes/settings.php:507
 
 
 
 
161
  msgid "Privacy policy"
162
  msgstr ""
163
 
164
- #: ../includes/settings.php:124
165
  msgid "Do Not Sell"
166
  msgstr ""
167
 
168
- #: ../includes/settings.php:125
169
  msgid "Preferences"
170
  msgstr ""
171
 
172
- #: ../includes/settings.php:126
173
- msgid "We're Promoting Privacy"
174
  msgstr ""
175
 
176
- #: ../includes/settings.php:128
177
- msgid "You can learn more about how we use cookies by visiting our privacy policy page."
178
  msgstr ""
179
 
180
- #: ../includes/settings.php:129
181
- msgid "California residents can also exercise their personal information rights through the Do Not Sell My Personal Information page."
182
  msgstr ""
183
 
184
- #: ../includes/settings.php:130
185
- msgid "Cookie Preferences"
186
  msgstr ""
187
 
188
- #: ../includes/settings.php:131
189
- msgid "Use the toggles to customize your cookie consent. Learn more about the purpose of each cookie and the companies behind them through the information and links below."
190
  msgstr ""
191
 
192
- #: ../includes/settings.php:384
 
 
 
 
 
 
 
 
193
  msgid "We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it."
194
  msgstr ""
195
 
196
- #: ../includes/settings.php:385
197
  msgid "Ok"
198
  msgstr ""
199
 
200
- #: ../includes/settings.php:386
201
  msgid "No"
202
  msgstr ""
203
 
204
- #: ../includes/settings.php:387
205
  msgid "You can revoke your consent any time using the Revoke consent button."
206
  msgstr ""
207
 
208
- #: ../includes/settings.php:388 ../includes/settings.php:509
209
  msgid "Revoke consent"
210
  msgstr ""
211
 
212
- #: ../includes/settings.php:424 ../includes/welcome.php:429
213
  msgid "Cookie Notice"
214
  msgstr ""
215
 
216
- #: ../includes/settings.php:424
217
  msgid "Cookies"
218
  msgstr ""
219
 
220
- #: ../includes/settings.php:435
221
  msgid "Cookie Notice & Compliance for GDPR/CCPA"
222
  msgstr ""
223
 
224
- #: ../includes/settings.php:444
225
  msgid "Promote the privacy of your website visitors without affecting how you do your business."
226
  msgstr ""
227
 
228
- #: ../includes/settings.php:447 ../includes/welcome.php:171
229
- #: ../includes/welcome.php:260
230
  msgid "The next generation of Cookie Notice"
231
  msgstr ""
232
 
233
- #: ../includes/settings.php:449
234
  msgid "A free web application to help you deliver better consent experiences and comply with GDPR, CCPA and other data privacy laws more effectively."
235
  msgstr ""
236
 
237
- #: ../includes/settings.php:452
238
- msgid "Free Upgrade"
239
- msgstr ""
240
-
241
- #: ../includes/settings.php:468
242
  msgid "Reset to defaults"
243
  msgstr ""
244
 
245
- #: ../includes/settings.php:486 ../includes/settings.php:499
246
  msgid "Compliance Settings"
247
  msgstr ""
248
 
249
- #: ../includes/settings.php:487 ../includes/settings.php:500
250
  msgid "Compliance status"
251
  msgstr ""
252
 
253
- #: ../includes/settings.php:488 ../includes/settings.php:501
254
  msgid "App ID"
255
  msgstr ""
256
 
257
- #: ../includes/settings.php:489 ../includes/settings.php:502
258
  msgid "App Key"
259
  msgstr ""
260
 
261
- #: ../includes/settings.php:491
262
  msgid "Miscellaneous Settings"
263
  msgstr ""
264
 
265
- #: ../includes/settings.php:492 ../includes/settings.php:548
266
- #: ../includes/settings.php:563 ../includes/settings.php:578
267
- #: ../includes/welcome.php:430
268
  msgid "Autoblocking"
269
  msgstr ""
270
 
271
- #: ../includes/settings.php:493
 
 
 
 
272
  msgid "Cache"
273
  msgstr ""
274
 
275
- #: ../includes/settings.php:494 ../includes/settings.php:516
276
  msgid "Script placement"
277
  msgstr ""
278
 
279
- #: ../includes/settings.php:495 ../includes/settings.php:517
280
  msgid "Deactivation"
281
  msgstr ""
282
 
283
- #: ../includes/settings.php:504
284
  msgid "Notice Settings"
285
  msgstr ""
286
 
287
- #: ../includes/settings.php:506
288
  msgid "Button text"
289
  msgstr ""
290
 
291
- #: ../includes/settings.php:508
292
  msgid "Refuse consent"
293
  msgstr ""
294
 
295
- #: ../includes/settings.php:510
296
  msgid "Script blocking"
297
  msgstr ""
298
 
299
- #: ../includes/settings.php:511
300
  msgid "Reloading"
301
  msgstr ""
302
 
303
- #: ../includes/settings.php:512
304
  msgid "On scroll"
305
  msgstr ""
306
 
307
- #: ../includes/settings.php:513
308
  msgid "On click"
309
  msgstr ""
310
 
311
- #: ../includes/settings.php:514
312
  msgid "Accepted expiry"
313
  msgstr ""
314
 
315
- #: ../includes/settings.php:515
316
  msgid "Rejected expiry"
317
  msgstr ""
318
 
319
- #: ../includes/settings.php:520
320
  msgid "Notice Design"
321
  msgstr ""
322
 
323
- #: ../includes/settings.php:521
324
  msgid "Position"
325
  msgstr ""
326
 
327
- #: ../includes/settings.php:522
328
  msgid "Animation"
329
  msgstr ""
330
 
331
- #: ../includes/settings.php:523
332
- msgid "Button style"
333
  msgstr ""
334
 
335
- #: ../includes/settings.php:524
336
  msgid "Button class"
337
  msgstr ""
338
 
339
- #: ../includes/settings.php:525
340
- msgid "Colors"
341
- msgstr ""
342
-
343
- #: ../includes/settings.php:547 ../includes/settings.php:562
344
- #: ../includes/settings.php:577
345
  msgid "Notice"
346
  msgstr ""
347
 
348
- #: ../includes/settings.php:547 ../includes/settings.php:548
349
- #: ../includes/settings.php:549 ../includes/settings.php:550
350
- #: ../includes/settings.php:562 ../includes/settings.php:577
351
  msgid "Active"
352
  msgstr ""
353
 
354
- #: ../includes/settings.php:549 ../includes/settings.php:564
355
- #: ../includes/settings.php:579 ../includes/welcome.php:431
356
  msgid "Cookie Categories"
357
  msgstr ""
358
 
359
- #: ../includes/settings.php:550 ../includes/settings.php:565
360
- #: ../includes/settings.php:580 ../includes/welcome.php:432
361
  msgid "Proof-of-Consent"
362
  msgstr ""
363
 
364
- #: ../includes/settings.php:553
365
  msgid "Log in & Configure"
366
  msgstr ""
367
 
368
- #: ../includes/settings.php:554
369
  msgid "Log into the Cookie Compliance&trade; web application and configure your Privacy Experience."
370
  msgstr ""
371
 
372
- #: ../includes/settings.php:563 ../includes/settings.php:564
373
- #: ../includes/settings.php:565
374
  msgid "Pending"
375
  msgstr ""
376
 
377
- #: ../includes/settings.php:568
378
  msgid "Log in & configure"
379
  msgstr ""
380
 
381
- #: ../includes/settings.php:569
382
  msgid "Log into the Cookie Compliance&trade; web application and complete the setup process."
383
  msgstr ""
384
 
385
- #: ../includes/settings.php:578 ../includes/settings.php:579
386
- #: ../includes/settings.php:580
387
  msgid "Inactive"
388
  msgstr ""
389
 
390
- #: ../includes/settings.php:583
391
  msgid "Add Compliance features"
392
  msgstr ""
393
 
394
- #: ../includes/settings.php:584
395
  msgid "Sign up to Cookie Compliance&trade; and add GDPR, CCPA and other international data privacy laws compliance features."
396
  msgstr ""
397
 
398
- #: ../includes/settings.php:599
399
  msgid "Enter your Cookie Compliance&trade; application ID."
400
  msgstr ""
401
 
402
- #: ../includes/settings.php:611
403
  msgid "Enter your Cookie Compliance&trade; application secret key."
404
  msgstr ""
405
 
406
- #: ../includes/settings.php:621
407
  msgid "Enable to automatically block 3rd party scripts before user consent."
408
  msgstr ""
409
 
410
- #: ../includes/settings.php:622
411
  msgid "In case you're experiencing issues with your site disable that feature temporarily."
412
  msgstr ""
413
 
414
- #: ../includes/settings.php:633
415
  msgid "Purge Cache"
416
  msgstr ""
417
 
418
- #: ../includes/settings.php:635
419
  msgid "Click the Purge Cache button to refresh the app configuration."
420
  msgstr ""
421
 
422
- #: ../includes/settings.php:646
 
 
 
 
423
  msgid "Enter the cookie notice message."
424
  msgstr ""
425
 
426
- #: ../includes/settings.php:657
427
  msgid "The text of the option to accept the notice and make it disappear."
428
  msgstr ""
429
 
430
- #: ../includes/settings.php:667
431
  msgid "Enable to give to the user the possibility to refuse third party non functional cookies."
432
  msgstr ""
433
 
434
- #: ../includes/settings.php:671
435
  msgid "The text of the button to refuse the consent."
436
  msgstr ""
437
 
438
- #: ../includes/settings.php:689
439
  msgid "Head"
440
  msgstr ""
441
 
442
- #: ../includes/settings.php:690
443
  msgid "Body"
444
  msgstr ""
445
 
446
- #: ../includes/settings.php:693
447
  msgid "The code to be used in your site header, before the closing head tag."
448
  msgstr ""
449
 
450
- #: ../includes/settings.php:697
451
  msgid "The code to be used in your site footer, before the closing body tag."
452
  msgstr ""
453
 
454
- #: ../includes/settings.php:701
455
  msgid "Enter non functional cookies Javascript code here (for e.g. Google Analitycs) to be used after the notice is accepted."
456
  msgstr ""
457
 
458
- #: ../includes/settings.php:701
459
  msgid "To get the user consent status use the <code>cn_cookies_accepted()</code> function."
460
  msgstr ""
461
 
462
- #: ../includes/settings.php:712
463
  msgid "Enable to give to the user the possibility to revoke their consent <i>(requires \"Refuse consent\" option enabled)</i>."
464
  msgstr ""
465
 
466
- #: ../includes/settings.php:715
467
  msgid "Enter the revoke message."
468
  msgstr ""
469
 
470
- #: ../includes/settings.php:717
471
  msgid "The text of the button to revoke the consent."
472
  msgstr ""
473
 
474
- #: ../includes/settings.php:725
475
  msgid "Select the method for displaying the revoke button - automatic (in the banner) or manual using <code>[cookies_revoke]</code> shortcode."
476
  msgstr ""
477
 
478
- #: ../includes/settings.php:736
479
  msgid "Enable to reload the page after the notice is accepted."
480
  msgstr ""
481
 
482
- #: ../includes/settings.php:759
483
  msgid "Enable privacy policy link."
484
  msgstr ""
485
 
486
- #: ../includes/settings.php:762
487
  msgid "The text of the privacy policy button."
488
  msgstr ""
489
 
490
- #: ../includes/settings.php:774
491
  msgid "Select where to redirect user for more information."
492
  msgstr ""
493
 
494
- #: ../includes/settings.php:777
495
  msgid "-- select page --"
496
  msgstr ""
497
 
498
- #: ../includes/settings.php:788
499
  msgid "Select from one of your site's pages."
500
  msgstr ""
501
 
502
- #: ../includes/settings.php:794
503
  msgid "Synchronize with WordPress Privacy Policy page."
504
  msgstr ""
505
 
506
- #: ../includes/settings.php:801
507
  msgid "Enter the full URL starting with http(s)://"
508
  msgstr ""
509
 
510
- #: ../includes/settings.php:844
511
  msgid "The amount of time that the cookie should be stored for when user accepts the notice."
512
  msgstr ""
513
 
514
- #: ../includes/settings.php:867
515
  msgid "The amount of time that the cookie should be stored for when the user doesn't accept the notice."
516
  msgstr ""
517
 
518
- #: ../includes/settings.php:885
519
  msgid "Select where all the plugin scripts should be placed."
520
  msgstr ""
521
 
522
- #: ../includes/settings.php:905
523
  msgid "Select location for the notice."
524
  msgstr ""
525
 
526
- #: ../includes/settings.php:926
527
  msgid "Select the animation style."
528
  msgstr ""
529
 
530
- #: ../includes/settings.php:937
531
  msgid "Enable to accept the notice when user scrolls."
532
  msgstr ""
533
 
534
- #: ../includes/settings.php:940
535
  msgid "Number of pixels user has to scroll to accept the notice and make it disappear."
536
  msgstr ""
537
 
538
- #: ../includes/settings.php:951
539
  msgid "Enable to accept the notice on any click on the page."
540
  msgstr ""
541
 
542
- #: ../includes/settings.php:961
543
  msgid "Enable if you want all plugin data to be deleted on deactivation."
544
  msgstr ""
545
 
546
- #: ../includes/settings.php:981
547
- msgid "Select the buttons style."
548
- msgstr ""
549
-
550
- #: ../includes/settings.php:994
551
  msgid "Enter additional button CSS classes separated by spaces."
552
  msgstr ""
553
 
554
- #: ../includes/settings.php:1018
555
  msgid "Bar opacity"
556
  msgstr ""
557
 
558
- #: ../includes/settings.php:1159
559
  msgid "Settings saved."
560
  msgstr ""
561
 
562
- #: ../includes/settings.php:1166
563
  msgid "Settings restored to defaults."
564
  msgstr ""
565
 
566
- #: ../includes/settings.php:1193
567
  msgid "Are you sure you want to reset these settings to defaults?"
568
  msgstr ""
569
 
@@ -574,18 +658,18 @@ msgstr ""
574
  msgid "You do not have permission to access this page."
575
  msgstr ""
576
 
577
- #: ../includes/welcome-api.php:71 ../includes/welcome-api.php:208
578
- #: ../includes/welcome-api.php:247 ../includes/welcome-api.php:369
579
- #: ../includes/welcome-api.php:443 ../includes/welcome-api.php:758
580
  #: ../includes/welcome.php:49
581
  msgid "Unexpected error occurred. Please try again later."
582
  msgstr ""
583
 
584
- #: ../includes/welcome-api.php:87
585
  msgid "Empty plan or payment method data."
586
  msgstr ""
587
 
588
- #: ../includes/welcome-api.php:118
589
  msgid "Unable to create customer data."
590
  msgstr ""
591
 
@@ -593,11 +677,11 @@ msgstr ""
593
  msgid "Please accept the Terms of Service to proceed."
594
  msgstr ""
595
 
596
- #: ../includes/welcome-api.php:155 ../includes/welcome-api.php:340
597
  msgid "Email is not allowed to be empty."
598
  msgstr ""
599
 
600
- #: ../includes/welcome-api.php:160 ../includes/welcome-api.php:345
601
  msgid "Password is not allowed to be empty."
602
  msgstr ""
603
 
@@ -637,389 +721,381 @@ msgstr ""
637
  msgid "Cookie Notice includes <b>seamless integration</b> with Cookie Compliance to help your site comply with the latest updates to existing consent laws and provide a beautiful, multi-level experience to engage visitors in data privacy decisions."
638
  msgstr ""
639
 
640
- #: ../includes/welcome.php:191
641
  msgid "Sign up to Cookie Compliance"
642
  msgstr ""
643
 
644
- #: ../includes/welcome.php:192
645
  msgid "Skip for now"
646
  msgstr ""
647
 
648
- #: ../includes/welcome.php:262
649
  msgid "Take a proactive approach to data protection and consent laws by signing up for Cookie Compliance account. Then select a limited Basic Plan for free or get one of the Professional Plans for unlimited visits, consent storage, languages and customizations."
650
  msgstr ""
651
 
652
- #: ../includes/welcome.php:306
653
  msgid "Compliance Plans"
654
  msgstr ""
655
 
656
- #: ../includes/welcome.php:312 ../includes/welcome.php:603
657
- #: ../includes/welcome.php:705
658
  msgid "Basic"
659
  msgstr ""
660
 
661
- #: ../includes/welcome.php:313
662
  msgid "Free"
663
  msgstr ""
664
 
665
- #: ../includes/welcome.php:316 ../includes/welcome.php:336
666
- #: ../includes/welcome.php:357
667
  msgid "GDPR, CCPA, ePrivacy, PECR compliance"
668
  msgstr ""
669
 
670
- #: ../includes/welcome.php:317 ../includes/welcome.php:337
671
- #: ../includes/welcome.php:358
672
  msgid "Consent Analytics Dashboard"
673
  msgstr ""
674
 
675
- #: ../includes/welcome.php:318
676
- msgid "<b>10,000</b> visits"
677
  msgstr ""
678
 
679
- #: ../includes/welcome.php:319
680
  msgid "<b>30 days</b> consent storage"
681
  msgstr ""
682
 
683
- #: ../includes/welcome.php:320
684
  msgid "<b>1 additional</b> language"
685
  msgstr ""
686
 
687
- #: ../includes/welcome.php:321
688
  msgid "<b>Basic</b> Support"
689
  msgstr ""
690
 
691
- #: ../includes/welcome.php:324 ../includes/welcome.php:344
692
- #: ../includes/welcome.php:365 ../includes/welcome.php:597
693
- #: ../includes/welcome.php:699
694
  msgid "Select Plan"
695
  msgstr ""
696
 
697
- #: ../includes/welcome.php:332
698
  msgid "Professional Monthly"
699
  msgstr ""
700
 
701
- #: ../includes/welcome.php:333
702
- msgid "month"
703
- msgstr ""
704
-
705
- #: ../includes/welcome.php:338 ../includes/welcome.php:359
706
  msgid "<b>Unlimited</b> visits"
707
  msgstr ""
708
 
709
- #: ../includes/welcome.php:339 ../includes/welcome.php:360
710
  msgid "<b>Lifetime</b> consent storage"
711
  msgstr ""
712
 
713
- #: ../includes/welcome.php:340 ../includes/welcome.php:361
714
  msgid "<b>Unlimited</b> languages"
715
  msgstr ""
716
 
717
- #: ../includes/welcome.php:341
718
  msgid "<b>Regular</b> Support"
719
  msgstr ""
720
 
721
- #: ../includes/welcome.php:352
722
  msgid "Professional Yearly"
723
  msgstr ""
724
 
725
- #: ../includes/welcome.php:353
726
  msgid "year"
727
  msgstr ""
728
 
729
- #: ../includes/welcome.php:354
730
  msgid "Best Value"
731
  msgstr ""
732
 
733
- #: ../includes/welcome.php:362
734
  msgid "<b>Premium</b> Support"
735
  msgstr ""
736
 
737
- #: ../includes/welcome.php:371
738
  msgid "I don’t want to create an account now"
739
  msgstr ""
740
 
741
- #: ../includes/welcome.php:387
742
  msgid "Congratulations"
743
  msgstr ""
744
 
745
- #: ../includes/welcome.php:388
746
  msgid "You are now promoting privacy with Hu-manity.co"
747
  msgstr ""
748
 
749
- #: ../includes/welcome.php:390
750
  msgid "Log in to your Cookie Compliance&trade; account and continue configuring your Privacy Experience."
751
  msgstr ""
752
 
753
- #: ../includes/welcome.php:393
754
  msgid "Go to Application"
755
  msgstr ""
756
 
757
- #: ../includes/welcome.php:419
758
  msgid "Compliance check"
759
  msgstr ""
760
 
761
- #: ../includes/welcome.php:420
762
  msgid "This is a Compliance Check to determine your site’s compliance with updated data processing and consent rules under GDPR, CCPA and other international data privacy laws."
763
  msgstr ""
764
 
765
- #: ../includes/welcome.php:422
766
  msgid "Site URL"
767
  msgstr ""
768
 
769
- #: ../includes/welcome.php:423
770
  msgid "Site Name"
771
  msgstr ""
772
 
773
- #: ../includes/welcome.php:426
774
  msgid "Checking..."
775
  msgstr ""
776
 
777
- #: ../includes/welcome.php:429
778
  msgid "Notifies visitors that site uses cookies."
779
  msgstr ""
780
 
781
- #: ../includes/welcome.php:430
782
  msgid "Non-essential cookies blocked until consent is registered."
783
  msgstr ""
784
 
785
- #: ../includes/welcome.php:431
786
  msgid "Separate consent requested per purpose of use."
787
  msgstr ""
788
 
789
- #: ../includes/welcome.php:432
790
  msgid "Proof-of-consent stored in secure audit format."
791
  msgstr ""
792
 
793
- #: ../includes/welcome.php:448
794
  msgid "Live Setup"
795
  msgstr ""
796
 
797
- #: ../includes/welcome.php:449
798
  msgid "Configure your Cookie Notice & Compliance design and compliance features through the options below. Click Apply Setup to save the configuration and go to selecting your preferred cookie solution."
799
  msgstr ""
800
 
801
- #: ../includes/welcome.php:453
802
  msgid "Banner Compliance"
803
  msgstr ""
804
 
805
- #: ../includes/welcome.php:474
806
  msgid "Select the laws that apply to your business"
807
  msgstr ""
808
 
809
- #: ../includes/welcome.php:476
810
  msgid "GDPR"
811
  msgstr ""
812
 
813
- #: ../includes/welcome.php:477
814
  msgid "CCPA"
815
  msgstr ""
816
 
817
- #: ../includes/welcome.php:481
818
- msgid "Select the type of of services your website is using"
819
- msgstr ""
820
-
821
- #: ../includes/welcome.php:483
822
- msgid "I use personalization services on my site​"
823
  msgstr ""
824
 
825
- #: ../includes/welcome.php:484
826
- msgid "I collect and analyse information about my website’s traffic"
827
  msgstr ""
828
 
829
- #: ../includes/welcome.php:485
830
- msgid "I run targeted ads on my site using, for example, Google Adsense​"
831
  msgstr ""
832
 
833
- #: ../includes/welcome.php:489
834
- msgid "Enable Cookie Categories (complies with GDPR Art.32)"
835
  msgstr ""
836
 
837
- #: ../includes/welcome.php:491
838
- msgid "Give your visitors the ability to customize their consent based on cookie purpose categories."
839
  msgstr ""
840
 
841
- #: ../includes/welcome.php:495
842
- msgid "Enable Autoblocking (complies with GDPR Art.7)"
843
  msgstr ""
844
 
845
- #: ../includes/welcome.php:497
846
- msgid "Automatically block 3rd party scripts before user consent."
847
  msgstr ""
848
 
849
- #: ../includes/welcome.php:500 ../includes/welcome.php:528
850
- msgid "available in Cookie Compliance&trade; only"
851
  msgstr ""
852
 
853
- #: ../includes/welcome.php:504
854
  msgid "Banner Design"
855
  msgstr ""
856
 
857
- #: ../includes/welcome.php:508
858
  msgid "Select your preferred display position"
859
  msgstr ""
860
 
861
- #: ../includes/welcome.php:512
862
  msgid "Left"
863
  msgstr ""
864
 
865
- #: ../includes/welcome.php:513
866
  msgid "Right"
867
  msgstr ""
868
 
869
- #: ../includes/welcome.php:514
870
  msgid "Center"
871
  msgstr ""
872
 
873
- #: ../includes/welcome.php:518
874
  msgid "Adjust the banner color scheme"
875
  msgstr ""
876
 
877
- #: ../includes/welcome.php:520
878
  msgid "Color of the buttons and interactive elements."
879
  msgstr ""
880
 
881
- #: ../includes/welcome.php:521
882
  msgid "Color of the banner background."
883
  msgstr ""
884
 
885
- #: ../includes/welcome.php:522
886
- msgid "Color of the borders and inactive elements."
887
  msgstr ""
888
 
889
- #: ../includes/welcome.php:523
890
- msgid "Color of the body text."
891
  msgstr ""
892
 
893
- #: ../includes/welcome.php:524
894
  msgid "Color of the heading text."
895
  msgstr ""
896
 
897
- #: ../includes/welcome.php:525
898
  msgid "Color of the button text."
899
  msgstr ""
900
 
901
- #: ../includes/welcome.php:533
902
  msgid "Apply Setup"
903
  msgstr ""
904
 
905
- #: ../includes/welcome.php:551
906
  msgid "Compliance account"
907
  msgstr ""
908
 
909
- #: ../includes/welcome.php:553
910
  msgid "Create a Cookie Compliance&trade; account and select your preferred plan."
911
  msgstr ""
912
 
913
- #: ../includes/welcome.php:557
914
  msgid "Create Account"
915
  msgstr ""
916
 
917
- #: ../includes/welcome.php:562 ../includes/welcome.php:672
918
  msgid "Email address"
919
  msgstr ""
920
 
921
- #: ../includes/welcome.php:565 ../includes/welcome.php:675
922
  msgid "Password"
923
  msgstr ""
924
 
925
- #: ../includes/welcome.php:568
926
  msgid "Confirm Password"
927
  msgstr ""
928
 
929
- #: ../includes/welcome.php:572
930
  #, php-format
931
  msgid "I have read and agree to the <a href=\"%s\" target=\"_blank\">Terms of Service"
932
  msgstr ""
933
 
934
- #: ../includes/welcome.php:576
935
  msgid "Sign Up"
936
  msgstr ""
937
 
938
- #: ../includes/welcome.php:590
939
  msgid "Already have an account?"
940
  msgstr ""
941
 
942
- #: ../includes/welcome.php:590 ../includes/welcome.php:678
943
  msgid "Sign in"
944
  msgstr ""
945
 
946
- #: ../includes/welcome.php:604 ../includes/welcome.php:706
947
  msgid "<b>Professional</b> Monthly"
948
  msgstr ""
949
 
950
- #: ../includes/welcome.php:604 ../includes/welcome.php:706
951
  msgid "/mo"
952
  msgstr ""
953
 
954
- #: ../includes/welcome.php:605 ../includes/welcome.php:707
955
  msgid "<b>Professional</b> Yearly"
956
  msgstr ""
957
 
958
- #: ../includes/welcome.php:605 ../includes/welcome.php:707
959
  msgid "/yr"
960
  msgstr ""
961
 
962
- #: ../includes/welcome.php:609 ../includes/welcome.php:711
963
  msgid "Confirm"
964
  msgstr ""
965
 
966
- #: ../includes/welcome.php:613 ../includes/welcome.php:715
967
  msgid "Payment Method"
968
  msgstr ""
969
 
970
- #: ../includes/welcome.php:615 ../includes/welcome.php:717
971
  msgid "Credit Card"
972
  msgstr ""
973
 
974
- #: ../includes/welcome.php:616 ../includes/welcome.php:718
975
  msgid "PayPal"
976
  msgstr ""
977
 
978
- #: ../includes/welcome.php:622 ../includes/welcome.php:724
979
  msgid "Card Number"
980
  msgstr ""
981
 
982
- #: ../includes/welcome.php:626 ../includes/welcome.php:728
983
  msgid "Expiration Date"
984
  msgstr ""
985
 
986
- #: ../includes/welcome.php:630 ../includes/welcome.php:732
987
  msgid "CVC/CVV"
988
  msgstr ""
989
 
990
- #: ../includes/welcome.php:634 ../includes/welcome.php:736
991
  msgid "Submit"
992
  msgstr ""
993
 
994
- #: ../includes/welcome.php:661
995
  msgid "Compliance Sign in"
996
  msgstr ""
997
 
998
- #: ../includes/welcome.php:663
999
  msgid "Sign in to your existing Cookie Compliance&trade; account and select your preferred plan."
1000
  msgstr ""
1001
 
1002
- #: ../includes/welcome.php:667
1003
  msgid "Account Login"
1004
  msgstr ""
1005
 
1006
- #: ../includes/welcome.php:692
1007
  msgid "Don't have an account yet?"
1008
  msgstr ""
1009
 
1010
- #: ../includes/welcome.php:692
1011
  msgid "Sign up"
1012
  msgstr ""
1013
 
1014
- #: ../includes/welcome.php:761
1015
  msgid "Success!"
1016
  msgstr ""
1017
 
1018
- #: ../includes/welcome.php:762
1019
  msgid "You have successfully upgraded your website to Cookie Compliance&trade;"
1020
  msgstr ""
1021
 
1022
- #: ../includes/welcome.php:762
1023
  #, php-format
1024
  msgid "Go to Cookie Compliance&trade; application now. Or access it anytime from your <a href=\"%s\">Cookie Notice settings page</a>."
1025
  msgstr ""
2
  msgid ""
3
  msgstr ""
4
  "Project-Id-Version: Cookie Notice\n"
5
+ "POT-Creation-Date: 2021-11-26 13:36+0100\n"
6
  "PO-Revision-Date: 2015-03-24 11:30+0100\n"
7
  "Last-Translator: Bartosz Arendt <info@dfactory.eu>\n"
8
  "Language-Team: dFactory <info@dfactory.eu>\n"
16
  "X-Poedit-SourceCharset: UTF-8\n"
17
  "X-Poedit-SearchPath-0: ..\n"
18
 
19
+ #: ../cookie-notice.php:255
20
+ msgid "Make sure your website complies with the latest cookie consent laws"
21
+ msgstr ""
22
+
23
+ #: ../cookie-notice.php:255
24
+ msgid "Run compliance check to learn if your website complies with the lastes consent record storage and cookie blocking requirements."
25
+ msgstr ""
26
+
27
+ #: ../cookie-notice.php:255
28
+ msgid "Run Compliance Check"
29
+ msgstr ""
30
+
31
+ #: ../cookie-notice.php:255
32
+ msgid "Dismiss Notice"
33
+ msgstr ""
34
+
35
+ #: ../cookie-notice.php:502
36
+ msgid "Cookie Notice & Compliance - Deactivation survey"
37
+ msgstr ""
38
+
39
+ #: ../cookie-notice.php:558
40
  msgid "Settings"
41
  msgstr ""
42
 
43
+ #: ../cookie-notice.php:562 ../includes/settings.php:216
44
+ msgid "Free Upgrade"
45
+ msgstr ""
46
+
47
+ #: ../cookie-notice.php:585
48
+ msgid "We're sorry to see you go. Could you please tell us what happened?"
49
+ msgstr ""
50
+
51
+ #: ../cookie-notice.php:589
52
+ msgid "I couldn't figure out how to make it work."
53
+ msgstr ""
54
+
55
+ #: ../cookie-notice.php:590
56
+ msgid "I found another plugin to use for the same task."
57
+ msgstr ""
58
+
59
+ #: ../cookie-notice.php:591
60
+ msgid "The Cookie Compliance banner is too big."
61
+ msgstr ""
62
+
63
+ #: ../cookie-notice.php:592
64
+ msgid "The Cookie Compliance consent choices (Silver, Gold, Platinum) are confusing."
65
+ msgstr ""
66
+
67
+ #: ../cookie-notice.php:593
68
+ msgid "The Cookie Compliance default settings are too strict."
69
+ msgstr ""
70
+
71
+ #: ../cookie-notice.php:594
72
+ msgid "The web application user interface is not clear to me."
73
+ msgstr ""
74
+
75
+ #: ../cookie-notice.php:595
76
+ msgid "Support isn't timely."
77
+ msgstr ""
78
+
79
+ #: ../cookie-notice.php:596
80
+ msgid "Other"
81
+ msgstr ""
82
+
83
+ #: ../cookie-notice.php:610
84
+ msgid "Cancel"
85
+ msgstr ""
86
+
87
+ #: ../cookie-notice.php:611
88
+ msgid "Deactivate"
89
+ msgstr ""
90
+
91
+ #: ../cookie-notice.php:612
92
+ msgid "Deactivate & Submit"
93
+ msgstr ""
94
+
95
+ #: ../includes/settings.php:48 ../includes/welcome.php:457
96
  msgid "Top"
97
  msgstr ""
98
 
99
+ #: ../includes/settings.php:49 ../includes/welcome.php:456
100
  msgid "Bottom"
101
  msgstr ""
102
 
103
+ #: ../includes/settings.php:53 ../includes/settings.php:99
104
  msgid "None"
105
  msgstr ""
106
 
132
  msgid "Banner"
133
  msgstr ""
134
 
135
+ #: ../includes/settings.php:75 ../includes/settings.php:270
136
  msgid "Message"
137
  msgstr ""
138
 
141
  msgstr ""
142
 
143
  #: ../includes/settings.php:80
144
+ msgid "Button color"
145
+ msgstr ""
146
+
147
+ #: ../includes/settings.php:81
148
  msgid "Bar color"
149
  msgstr ""
150
 
151
+ #: ../includes/settings.php:87
152
  msgid "An hour"
153
  msgstr ""
154
 
155
+ #: ../includes/settings.php:88
156
  msgid "1 day"
157
  msgstr ""
158
 
159
+ #: ../includes/settings.php:89
160
  msgid "1 week"
161
  msgstr ""
162
 
163
+ #: ../includes/settings.php:90
164
  msgid "1 month"
165
  msgstr ""
166
 
167
+ #: ../includes/settings.php:91
168
  msgid "3 months"
169
  msgstr ""
170
 
171
+ #: ../includes/settings.php:92
172
  msgid "6 months"
173
  msgstr ""
174
 
175
+ #: ../includes/settings.php:93
176
  msgid "1 year"
177
  msgstr ""
178
 
179
+ #: ../includes/settings.php:94
180
  msgid "infinity"
181
  msgstr ""
182
 
183
+ #: ../includes/settings.php:100
184
  msgid "Fade"
185
  msgstr ""
186
 
187
+ #: ../includes/settings.php:101
188
  msgid "Slide"
189
  msgstr ""
190
 
191
+ #: ../includes/settings.php:105
192
  msgid "Header"
193
  msgstr ""
194
 
195
+ #: ../includes/settings.php:106
196
  msgid "Footer"
197
  msgstr ""
198
 
 
 
 
 
 
 
 
 
199
  #: ../includes/settings.php:111
200
+ msgid "Silver"
201
  msgstr ""
202
 
203
  #: ../includes/settings.php:112
204
+ msgid "Gold"
205
  msgstr ""
206
 
207
+ #: ../includes/settings.php:113
208
+ msgid "Platinum"
209
  msgstr ""
210
 
211
  #: ../includes/settings.php:116
212
+ msgid "Private"
213
  msgstr ""
214
 
215
+ #: ../includes/settings.php:117
216
+ msgid "Balanced"
217
+ msgstr ""
218
+
219
+ #: ../includes/settings.php:118
220
+ msgid "Personalized"
221
  msgstr ""
222
 
223
  #: ../includes/settings.php:121
224
+ msgid "Reject All"
225
  msgstr ""
226
 
227
  #: ../includes/settings.php:122
228
+ msgid "Accept Some"
229
+ msgstr ""
230
+
231
+ #: ../includes/settings.php:123
232
+ msgid "Accept All"
233
  msgstr ""
234
 
235
+ #: ../includes/settings.php:128
236
+ msgid "Save my preferences"
237
+ msgstr ""
238
+
239
+ #: ../includes/settings.php:132 ../includes/settings.php:153
240
+ #: ../includes/settings.php:272
241
  msgid "Privacy policy"
242
  msgstr ""
243
 
244
+ #: ../includes/settings.php:133
245
  msgid "Do Not Sell"
246
  msgstr ""
247
 
248
+ #: ../includes/settings.php:134
249
  msgid "Preferences"
250
  msgstr ""
251
 
252
+ #: ../includes/settings.php:135
253
+ msgid "We believe your data is your property and support your right to privacy and transparency."
254
  msgstr ""
255
 
256
+ #: ../includes/settings.php:136
257
+ msgid "Select a Data Access Level and Duration to choose how we use and share your data."
258
  msgstr ""
259
 
260
+ #: ../includes/settings.php:137
261
+ msgid "Highest level of privacy. Data accessed for necessary site operations only. Data shared with 3rd parties to ensure the site is secure and works on your device."
262
  msgstr ""
263
 
264
+ #: ../includes/settings.php:138
265
+ msgid "Balanced experience. Data accessed for content personalisation and site optimisation. Data shared with 3rd parties may be used to track and store your preferences for this site."
266
  msgstr ""
267
 
268
+ #: ../includes/settings.php:139
269
+ msgid "Highest level of personalisation. Data accessed to make ads and media more relevant. Data shared with 3rd parties may be use to track you on this site and other sites you visit."
270
  msgstr ""
271
 
272
+ #: ../includes/settings.php:143 ../includes/welcome.php:285
273
+ msgid "month"
274
+ msgstr ""
275
+
276
+ #: ../includes/settings.php:144
277
+ msgid "months"
278
+ msgstr ""
279
+
280
+ #: ../includes/settings.php:148
281
  msgid "We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it."
282
  msgstr ""
283
 
284
+ #: ../includes/settings.php:149
285
  msgid "Ok"
286
  msgstr ""
287
 
288
+ #: ../includes/settings.php:150
289
  msgid "No"
290
  msgstr ""
291
 
292
+ #: ../includes/settings.php:151
293
  msgid "You can revoke your consent any time using the Revoke consent button."
294
  msgstr ""
295
 
296
+ #: ../includes/settings.php:152 ../includes/settings.php:274
297
  msgid "Revoke consent"
298
  msgstr ""
299
 
300
+ #: ../includes/settings.php:188 ../includes/welcome.php:380
301
  msgid "Cookie Notice"
302
  msgstr ""
303
 
304
+ #: ../includes/settings.php:188
305
  msgid "Cookies"
306
  msgstr ""
307
 
308
+ #: ../includes/settings.php:199
309
  msgid "Cookie Notice & Compliance for GDPR/CCPA"
310
  msgstr ""
311
 
312
+ #: ../includes/settings.php:208
313
  msgid "Promote the privacy of your website visitors without affecting how you do your business."
314
  msgstr ""
315
 
316
+ #: ../includes/settings.php:211 ../includes/welcome.php:171
317
+ #: ../includes/welcome.php:212
318
  msgid "The next generation of Cookie Notice"
319
  msgstr ""
320
 
321
+ #: ../includes/settings.php:213
322
  msgid "A free web application to help you deliver better consent experiences and comply with GDPR, CCPA and other data privacy laws more effectively."
323
  msgstr ""
324
 
325
+ #: ../includes/settings.php:232
 
 
 
 
326
  msgid "Reset to defaults"
327
  msgstr ""
328
 
329
+ #: ../includes/settings.php:250 ../includes/settings.php:264
330
  msgid "Compliance Settings"
331
  msgstr ""
332
 
333
+ #: ../includes/settings.php:251 ../includes/settings.php:265
334
  msgid "Compliance status"
335
  msgstr ""
336
 
337
+ #: ../includes/settings.php:252 ../includes/settings.php:266
338
  msgid "App ID"
339
  msgstr ""
340
 
341
+ #: ../includes/settings.php:253 ../includes/settings.php:267
342
  msgid "App Key"
343
  msgstr ""
344
 
345
+ #: ../includes/settings.php:255
346
  msgid "Miscellaneous Settings"
347
  msgstr ""
348
 
349
+ #: ../includes/settings.php:256 ../includes/settings.php:312
350
+ #: ../includes/settings.php:327 ../includes/settings.php:342
351
+ #: ../includes/welcome.php:381
352
  msgid "Autoblocking"
353
  msgstr ""
354
 
355
+ #: ../includes/settings.php:257
356
+ msgid "Hide for logged in"
357
+ msgstr ""
358
+
359
+ #: ../includes/settings.php:258
360
  msgid "Cache"
361
  msgstr ""
362
 
363
+ #: ../includes/settings.php:259 ../includes/settings.php:281
364
  msgid "Script placement"
365
  msgstr ""
366
 
367
+ #: ../includes/settings.php:260 ../includes/settings.php:282
368
  msgid "Deactivation"
369
  msgstr ""
370
 
371
+ #: ../includes/settings.php:269
372
  msgid "Notice Settings"
373
  msgstr ""
374
 
375
+ #: ../includes/settings.php:271
376
  msgid "Button text"
377
  msgstr ""
378
 
379
+ #: ../includes/settings.php:273
380
  msgid "Refuse consent"
381
  msgstr ""
382
 
383
+ #: ../includes/settings.php:275
384
  msgid "Script blocking"
385
  msgstr ""
386
 
387
+ #: ../includes/settings.php:276
388
  msgid "Reloading"
389
  msgstr ""
390
 
391
+ #: ../includes/settings.php:277
392
  msgid "On scroll"
393
  msgstr ""
394
 
395
+ #: ../includes/settings.php:278
396
  msgid "On click"
397
  msgstr ""
398
 
399
+ #: ../includes/settings.php:279
400
  msgid "Accepted expiry"
401
  msgstr ""
402
 
403
+ #: ../includes/settings.php:280
404
  msgid "Rejected expiry"
405
  msgstr ""
406
 
407
+ #: ../includes/settings.php:285
408
  msgid "Notice Design"
409
  msgstr ""
410
 
411
+ #: ../includes/settings.php:286
412
  msgid "Position"
413
  msgstr ""
414
 
415
+ #: ../includes/settings.php:287
416
  msgid "Animation"
417
  msgstr ""
418
 
419
+ #: ../includes/settings.php:288
420
+ msgid "Colors"
421
  msgstr ""
422
 
423
+ #: ../includes/settings.php:289
424
  msgid "Button class"
425
  msgstr ""
426
 
427
+ #: ../includes/settings.php:311 ../includes/settings.php:326
428
+ #: ../includes/settings.php:341
 
 
 
 
429
  msgid "Notice"
430
  msgstr ""
431
 
432
+ #: ../includes/settings.php:311 ../includes/settings.php:312
433
+ #: ../includes/settings.php:313 ../includes/settings.php:314
434
+ #: ../includes/settings.php:326 ../includes/settings.php:341
435
  msgid "Active"
436
  msgstr ""
437
 
438
+ #: ../includes/settings.php:313 ../includes/settings.php:328
439
+ #: ../includes/settings.php:343 ../includes/welcome.php:382
440
  msgid "Cookie Categories"
441
  msgstr ""
442
 
443
+ #: ../includes/settings.php:314 ../includes/settings.php:329
444
+ #: ../includes/settings.php:344 ../includes/welcome.php:383
445
  msgid "Proof-of-Consent"
446
  msgstr ""
447
 
448
+ #: ../includes/settings.php:317
449
  msgid "Log in & Configure"
450
  msgstr ""
451
 
452
+ #: ../includes/settings.php:318
453
  msgid "Log into the Cookie Compliance&trade; web application and configure your Privacy Experience."
454
  msgstr ""
455
 
456
+ #: ../includes/settings.php:327 ../includes/settings.php:328
457
+ #: ../includes/settings.php:329
458
  msgid "Pending"
459
  msgstr ""
460
 
461
+ #: ../includes/settings.php:332
462
  msgid "Log in & configure"
463
  msgstr ""
464
 
465
+ #: ../includes/settings.php:333
466
  msgid "Log into the Cookie Compliance&trade; web application and complete the setup process."
467
  msgstr ""
468
 
469
+ #: ../includes/settings.php:342 ../includes/settings.php:343
470
+ #: ../includes/settings.php:344
471
  msgid "Inactive"
472
  msgstr ""
473
 
474
+ #: ../includes/settings.php:347
475
  msgid "Add Compliance features"
476
  msgstr ""
477
 
478
+ #: ../includes/settings.php:348
479
  msgid "Sign up to Cookie Compliance&trade; and add GDPR, CCPA and other international data privacy laws compliance features."
480
  msgstr ""
481
 
482
+ #: ../includes/settings.php:363
483
  msgid "Enter your Cookie Compliance&trade; application ID."
484
  msgstr ""
485
 
486
+ #: ../includes/settings.php:375
487
  msgid "Enter your Cookie Compliance&trade; application secret key."
488
  msgstr ""
489
 
490
+ #: ../includes/settings.php:385
491
  msgid "Enable to automatically block 3rd party scripts before user consent."
492
  msgstr ""
493
 
494
+ #: ../includes/settings.php:386
495
  msgid "In case you're experiencing issues with your site disable that feature temporarily."
496
  msgstr ""
497
 
498
+ #: ../includes/settings.php:397
499
  msgid "Purge Cache"
500
  msgstr ""
501
 
502
+ #: ../includes/settings.php:399
503
  msgid "Click the Purge Cache button to refresh the app configuration."
504
  msgstr ""
505
 
506
+ #: ../includes/settings.php:409
507
+ msgid "Enable to hide the consent banner for logged in users."
508
+ msgstr ""
509
+
510
+ #: ../includes/settings.php:420
511
  msgid "Enter the cookie notice message."
512
  msgstr ""
513
 
514
+ #: ../includes/settings.php:431
515
  msgid "The text of the option to accept the notice and make it disappear."
516
  msgstr ""
517
 
518
+ #: ../includes/settings.php:441
519
  msgid "Enable to give to the user the possibility to refuse third party non functional cookies."
520
  msgstr ""
521
 
522
+ #: ../includes/settings.php:445
523
  msgid "The text of the button to refuse the consent."
524
  msgstr ""
525
 
526
+ #: ../includes/settings.php:463
527
  msgid "Head"
528
  msgstr ""
529
 
530
+ #: ../includes/settings.php:464
531
  msgid "Body"
532
  msgstr ""
533
 
534
+ #: ../includes/settings.php:467
535
  msgid "The code to be used in your site header, before the closing head tag."
536
  msgstr ""
537
 
538
+ #: ../includes/settings.php:471
539
  msgid "The code to be used in your site footer, before the closing body tag."
540
  msgstr ""
541
 
542
+ #: ../includes/settings.php:475
543
  msgid "Enter non functional cookies Javascript code here (for e.g. Google Analitycs) to be used after the notice is accepted."
544
  msgstr ""
545
 
546
+ #: ../includes/settings.php:475
547
  msgid "To get the user consent status use the <code>cn_cookies_accepted()</code> function."
548
  msgstr ""
549
 
550
+ #: ../includes/settings.php:486
551
  msgid "Enable to give to the user the possibility to revoke their consent <i>(requires \"Refuse consent\" option enabled)</i>."
552
  msgstr ""
553
 
554
+ #: ../includes/settings.php:489
555
  msgid "Enter the revoke message."
556
  msgstr ""
557
 
558
+ #: ../includes/settings.php:491
559
  msgid "The text of the button to revoke the consent."
560
  msgstr ""
561
 
562
+ #: ../includes/settings.php:499
563
  msgid "Select the method for displaying the revoke button - automatic (in the banner) or manual using <code>[cookies_revoke]</code> shortcode."
564
  msgstr ""
565
 
566
+ #: ../includes/settings.php:510
567
  msgid "Enable to reload the page after the notice is accepted."
568
  msgstr ""
569
 
570
+ #: ../includes/settings.php:533
571
  msgid "Enable privacy policy link."
572
  msgstr ""
573
 
574
+ #: ../includes/settings.php:536
575
  msgid "The text of the privacy policy button."
576
  msgstr ""
577
 
578
+ #: ../includes/settings.php:548
579
  msgid "Select where to redirect user for more information."
580
  msgstr ""
581
 
582
+ #: ../includes/settings.php:551
583
  msgid "-- select page --"
584
  msgstr ""
585
 
586
+ #: ../includes/settings.php:562
587
  msgid "Select from one of your site's pages."
588
  msgstr ""
589
 
590
+ #: ../includes/settings.php:568
591
  msgid "Synchronize with WordPress Privacy Policy page."
592
  msgstr ""
593
 
594
+ #: ../includes/settings.php:575
595
  msgid "Enter the full URL starting with http(s)://"
596
  msgstr ""
597
 
598
+ #: ../includes/settings.php:618
599
  msgid "The amount of time that the cookie should be stored for when user accepts the notice."
600
  msgstr ""
601
 
602
+ #: ../includes/settings.php:641
603
  msgid "The amount of time that the cookie should be stored for when the user doesn't accept the notice."
604
  msgstr ""
605
 
606
+ #: ../includes/settings.php:659
607
  msgid "Select where all the plugin scripts should be placed."
608
  msgstr ""
609
 
610
+ #: ../includes/settings.php:679
611
  msgid "Select location for the notice."
612
  msgstr ""
613
 
614
+ #: ../includes/settings.php:700
615
  msgid "Select the animation style."
616
  msgstr ""
617
 
618
+ #: ../includes/settings.php:711
619
  msgid "Enable to accept the notice when user scrolls."
620
  msgstr ""
621
 
622
+ #: ../includes/settings.php:714
623
  msgid "Number of pixels user has to scroll to accept the notice and make it disappear."
624
  msgstr ""
625
 
626
+ #: ../includes/settings.php:725
627
  msgid "Enable to accept the notice on any click on the page."
628
  msgstr ""
629
 
630
+ #: ../includes/settings.php:735
631
  msgid "Enable if you want all plugin data to be deleted on deactivation."
632
  msgstr ""
633
 
634
+ #: ../includes/settings.php:747
 
 
 
 
635
  msgid "Enter additional button CSS classes separated by spaces."
636
  msgstr ""
637
 
638
+ #: ../includes/settings.php:771
639
  msgid "Bar opacity"
640
  msgstr ""
641
 
642
+ #: ../includes/settings.php:913
643
  msgid "Settings saved."
644
  msgstr ""
645
 
646
+ #: ../includes/settings.php:920
647
  msgid "Settings restored to defaults."
648
  msgstr ""
649
 
650
+ #: ../includes/settings.php:945
651
  msgid "Are you sure you want to reset these settings to defaults?"
652
  msgstr ""
653
 
658
  msgid "You do not have permission to access this page."
659
  msgstr ""
660
 
661
+ #: ../includes/welcome-api.php:75 ../includes/welcome-api.php:208
662
+ #: ../includes/welcome-api.php:247 ../includes/welcome-api.php:370
663
+ #: ../includes/welcome-api.php:444 ../includes/welcome-api.php:841
664
  #: ../includes/welcome.php:49
665
  msgid "Unexpected error occurred. Please try again later."
666
  msgstr ""
667
 
668
+ #: ../includes/welcome-api.php:91
669
  msgid "Empty plan or payment method data."
670
  msgstr ""
671
 
672
+ #: ../includes/welcome-api.php:120
673
  msgid "Unable to create customer data."
674
  msgstr ""
675
 
677
  msgid "Please accept the Terms of Service to proceed."
678
  msgstr ""
679
 
680
+ #: ../includes/welcome-api.php:155 ../includes/welcome-api.php:341
681
  msgid "Email is not allowed to be empty."
682
  msgstr ""
683
 
684
+ #: ../includes/welcome-api.php:160 ../includes/welcome-api.php:346
685
  msgid "Password is not allowed to be empty."
686
  msgstr ""
687
 
721
  msgid "Cookie Notice includes <b>seamless integration</b> with Cookie Compliance to help your site comply with the latest updates to existing consent laws and provide a beautiful, multi-level experience to engage visitors in data privacy decisions."
722
  msgstr ""
723
 
724
+ #: ../includes/welcome.php:184
725
  msgid "Sign up to Cookie Compliance"
726
  msgstr ""
727
 
728
+ #: ../includes/welcome.php:185
729
  msgid "Skip for now"
730
  msgstr ""
731
 
732
+ #: ../includes/welcome.php:214
733
  msgid "Take a proactive approach to data protection and consent laws by signing up for Cookie Compliance account. Then select a limited Basic Plan for free or get one of the Professional Plans for unlimited visits, consent storage, languages and customizations."
734
  msgstr ""
735
 
736
+ #: ../includes/welcome.php:258
737
  msgid "Compliance Plans"
738
  msgstr ""
739
 
740
+ #: ../includes/welcome.php:264 ../includes/welcome.php:549
741
+ #: ../includes/welcome.php:651
742
  msgid "Basic"
743
  msgstr ""
744
 
745
+ #: ../includes/welcome.php:265
746
  msgid "Free"
747
  msgstr ""
748
 
749
+ #: ../includes/welcome.php:268 ../includes/welcome.php:288
750
+ #: ../includes/welcome.php:309
751
  msgid "GDPR, CCPA, ePrivacy, PECR compliance"
752
  msgstr ""
753
 
754
+ #: ../includes/welcome.php:269 ../includes/welcome.php:289
755
+ #: ../includes/welcome.php:310
756
  msgid "Consent Analytics Dashboard"
757
  msgstr ""
758
 
759
+ #: ../includes/welcome.php:270
760
+ msgid "<b>1,000</b> visits / month"
761
  msgstr ""
762
 
763
+ #: ../includes/welcome.php:271
764
  msgid "<b>30 days</b> consent storage"
765
  msgstr ""
766
 
767
+ #: ../includes/welcome.php:272
768
  msgid "<b>1 additional</b> language"
769
  msgstr ""
770
 
771
+ #: ../includes/welcome.php:273
772
  msgid "<b>Basic</b> Support"
773
  msgstr ""
774
 
775
+ #: ../includes/welcome.php:276 ../includes/welcome.php:296
776
+ #: ../includes/welcome.php:317 ../includes/welcome.php:543
777
+ #: ../includes/welcome.php:645
778
  msgid "Select Plan"
779
  msgstr ""
780
 
781
+ #: ../includes/welcome.php:284
782
  msgid "Professional Monthly"
783
  msgstr ""
784
 
785
+ #: ../includes/welcome.php:290 ../includes/welcome.php:311
 
 
 
 
786
  msgid "<b>Unlimited</b> visits"
787
  msgstr ""
788
 
789
+ #: ../includes/welcome.php:291 ../includes/welcome.php:312
790
  msgid "<b>Lifetime</b> consent storage"
791
  msgstr ""
792
 
793
+ #: ../includes/welcome.php:292 ../includes/welcome.php:313
794
  msgid "<b>Unlimited</b> languages"
795
  msgstr ""
796
 
797
+ #: ../includes/welcome.php:293
798
  msgid "<b>Regular</b> Support"
799
  msgstr ""
800
 
801
+ #: ../includes/welcome.php:304
802
  msgid "Professional Yearly"
803
  msgstr ""
804
 
805
+ #: ../includes/welcome.php:305
806
  msgid "year"
807
  msgstr ""
808
 
809
+ #: ../includes/welcome.php:306
810
  msgid "Best Value"
811
  msgstr ""
812
 
813
+ #: ../includes/welcome.php:314
814
  msgid "<b>Premium</b> Support"
815
  msgstr ""
816
 
817
+ #: ../includes/welcome.php:323
818
  msgid "I don’t want to create an account now"
819
  msgstr ""
820
 
821
+ #: ../includes/welcome.php:339
822
  msgid "Congratulations"
823
  msgstr ""
824
 
825
+ #: ../includes/welcome.php:340
826
  msgid "You are now promoting privacy with Hu-manity.co"
827
  msgstr ""
828
 
829
+ #: ../includes/welcome.php:342
830
  msgid "Log in to your Cookie Compliance&trade; account and continue configuring your Privacy Experience."
831
  msgstr ""
832
 
833
+ #: ../includes/welcome.php:345
834
  msgid "Go to Application"
835
  msgstr ""
836
 
837
+ #: ../includes/welcome.php:370
838
  msgid "Compliance check"
839
  msgstr ""
840
 
841
+ #: ../includes/welcome.php:371
842
  msgid "This is a Compliance Check to determine your site’s compliance with updated data processing and consent rules under GDPR, CCPA and other international data privacy laws."
843
  msgstr ""
844
 
845
+ #: ../includes/welcome.php:373
846
  msgid "Site URL"
847
  msgstr ""
848
 
849
+ #: ../includes/welcome.php:374
850
  msgid "Site Name"
851
  msgstr ""
852
 
853
+ #: ../includes/welcome.php:377
854
  msgid "Checking..."
855
  msgstr ""
856
 
857
+ #: ../includes/welcome.php:380
858
  msgid "Notifies visitors that site uses cookies."
859
  msgstr ""
860
 
861
+ #: ../includes/welcome.php:381
862
  msgid "Non-essential cookies blocked until consent is registered."
863
  msgstr ""
864
 
865
+ #: ../includes/welcome.php:382
866
  msgid "Separate consent requested per purpose of use."
867
  msgstr ""
868
 
869
+ #: ../includes/welcome.php:383
870
  msgid "Proof-of-consent stored in secure audit format."
871
  msgstr ""
872
 
873
+ #: ../includes/welcome.php:399
874
  msgid "Live Setup"
875
  msgstr ""
876
 
877
+ #: ../includes/welcome.php:400
878
  msgid "Configure your Cookie Notice & Compliance design and compliance features through the options below. Click Apply Setup to save the configuration and go to selecting your preferred cookie solution."
879
  msgstr ""
880
 
881
+ #: ../includes/welcome.php:404
882
  msgid "Banner Compliance"
883
  msgstr ""
884
 
885
+ #: ../includes/welcome.php:425
886
  msgid "Select the laws that apply to your business"
887
  msgstr ""
888
 
889
+ #: ../includes/welcome.php:427
890
  msgid "GDPR"
891
  msgstr ""
892
 
893
+ #: ../includes/welcome.php:428
894
  msgid "CCPA"
895
  msgstr ""
896
 
897
+ #: ../includes/welcome.php:432
898
+ msgid "Select a naming style for the consent choices"
 
 
 
 
899
  msgstr ""
900
 
901
+ #: ../includes/welcome.php:434
902
+ msgid "Silver, Gold, Platinum (Default)​"
903
  msgstr ""
904
 
905
+ #: ../includes/welcome.php:435
906
+ msgid "Private, Balanced, Personalized"
907
  msgstr ""
908
 
909
+ #: ../includes/welcome.php:436
910
+ msgid "Reject All, Accept Some, Accept All​"
911
  msgstr ""
912
 
913
+ #: ../includes/welcome.php:440
914
+ msgid "Select additional information to include in the banner:"
915
  msgstr ""
916
 
917
+ #: ../includes/welcome.php:442
918
+ msgid "Display <b>Privacy Paper</b> to provide helpful data privacy and consent information to visitors."
919
  msgstr ""
920
 
921
+ #: ../includes/welcome.php:443
922
+ msgid "Display <b>Privacy Contact</b> to provide Data Controller contact information and links to external data privacy resources."
923
  msgstr ""
924
 
925
+ #: ../includes/welcome.php:446 ../includes/welcome.php:474
926
+ msgid "available for Cookie Compliance&trade; Pro plans only"
927
  msgstr ""
928
 
929
+ #: ../includes/welcome.php:450
930
  msgid "Banner Design"
931
  msgstr ""
932
 
933
+ #: ../includes/welcome.php:454
934
  msgid "Select your preferred display position"
935
  msgstr ""
936
 
937
+ #: ../includes/welcome.php:458
938
  msgid "Left"
939
  msgstr ""
940
 
941
+ #: ../includes/welcome.php:459
942
  msgid "Right"
943
  msgstr ""
944
 
945
+ #: ../includes/welcome.php:460
946
  msgid "Center"
947
  msgstr ""
948
 
949
+ #: ../includes/welcome.php:464
950
  msgid "Adjust the banner color scheme"
951
  msgstr ""
952
 
953
+ #: ../includes/welcome.php:466
954
  msgid "Color of the buttons and interactive elements."
955
  msgstr ""
956
 
957
+ #: ../includes/welcome.php:467
958
  msgid "Color of the banner background."
959
  msgstr ""
960
 
961
+ #: ../includes/welcome.php:468
962
+ msgid "Color of the body text."
963
  msgstr ""
964
 
965
+ #: ../includes/welcome.php:469
966
+ msgid "Color of the borders and inactive elements."
967
  msgstr ""
968
 
969
+ #: ../includes/welcome.php:470
970
  msgid "Color of the heading text."
971
  msgstr ""
972
 
973
+ #: ../includes/welcome.php:471
974
  msgid "Color of the button text."
975
  msgstr ""
976
 
977
+ #: ../includes/welcome.php:479
978
  msgid "Apply Setup"
979
  msgstr ""
980
 
981
+ #: ../includes/welcome.php:497
982
  msgid "Compliance account"
983
  msgstr ""
984
 
985
+ #: ../includes/welcome.php:499
986
  msgid "Create a Cookie Compliance&trade; account and select your preferred plan."
987
  msgstr ""
988
 
989
+ #: ../includes/welcome.php:503
990
  msgid "Create Account"
991
  msgstr ""
992
 
993
+ #: ../includes/welcome.php:508 ../includes/welcome.php:618
994
  msgid "Email address"
995
  msgstr ""
996
 
997
+ #: ../includes/welcome.php:511 ../includes/welcome.php:621
998
  msgid "Password"
999
  msgstr ""
1000
 
1001
+ #: ../includes/welcome.php:514
1002
  msgid "Confirm Password"
1003
  msgstr ""
1004
 
1005
+ #: ../includes/welcome.php:518
1006
  #, php-format
1007
  msgid "I have read and agree to the <a href=\"%s\" target=\"_blank\">Terms of Service"
1008
  msgstr ""
1009
 
1010
+ #: ../includes/welcome.php:522
1011
  msgid "Sign Up"
1012
  msgstr ""
1013
 
1014
+ #: ../includes/welcome.php:536
1015
  msgid "Already have an account?"
1016
  msgstr ""
1017
 
1018
+ #: ../includes/welcome.php:536 ../includes/welcome.php:624
1019
  msgid "Sign in"
1020
  msgstr ""
1021
 
1022
+ #: ../includes/welcome.php:550 ../includes/welcome.php:652
1023
  msgid "<b>Professional</b> Monthly"
1024
  msgstr ""
1025
 
1026
+ #: ../includes/welcome.php:550 ../includes/welcome.php:652
1027
  msgid "/mo"
1028
  msgstr ""
1029
 
1030
+ #: ../includes/welcome.php:551 ../includes/welcome.php:653
1031
  msgid "<b>Professional</b> Yearly"
1032
  msgstr ""
1033
 
1034
+ #: ../includes/welcome.php:551 ../includes/welcome.php:653
1035
  msgid "/yr"
1036
  msgstr ""
1037
 
1038
+ #: ../includes/welcome.php:555 ../includes/welcome.php:657
1039
  msgid "Confirm"
1040
  msgstr ""
1041
 
1042
+ #: ../includes/welcome.php:559 ../includes/welcome.php:661
1043
  msgid "Payment Method"
1044
  msgstr ""
1045
 
1046
+ #: ../includes/welcome.php:561 ../includes/welcome.php:663
1047
  msgid "Credit Card"
1048
  msgstr ""
1049
 
1050
+ #: ../includes/welcome.php:562 ../includes/welcome.php:664
1051
  msgid "PayPal"
1052
  msgstr ""
1053
 
1054
+ #: ../includes/welcome.php:568 ../includes/welcome.php:670
1055
  msgid "Card Number"
1056
  msgstr ""
1057
 
1058
+ #: ../includes/welcome.php:572 ../includes/welcome.php:674
1059
  msgid "Expiration Date"
1060
  msgstr ""
1061
 
1062
+ #: ../includes/welcome.php:576 ../includes/welcome.php:678
1063
  msgid "CVC/CVV"
1064
  msgstr ""
1065
 
1066
+ #: ../includes/welcome.php:580 ../includes/welcome.php:682
1067
  msgid "Submit"
1068
  msgstr ""
1069
 
1070
+ #: ../includes/welcome.php:607
1071
  msgid "Compliance Sign in"
1072
  msgstr ""
1073
 
1074
+ #: ../includes/welcome.php:609
1075
  msgid "Sign in to your existing Cookie Compliance&trade; account and select your preferred plan."
1076
  msgstr ""
1077
 
1078
+ #: ../includes/welcome.php:613
1079
  msgid "Account Login"
1080
  msgstr ""
1081
 
1082
+ #: ../includes/welcome.php:638
1083
  msgid "Don't have an account yet?"
1084
  msgstr ""
1085
 
1086
+ #: ../includes/welcome.php:638
1087
  msgid "Sign up"
1088
  msgstr ""
1089
 
1090
+ #: ../includes/welcome.php:707
1091
  msgid "Success!"
1092
  msgstr ""
1093
 
1094
+ #: ../includes/welcome.php:708
1095
  msgid "You have successfully upgraded your website to Cookie Compliance&trade;"
1096
  msgstr ""
1097
 
1098
+ #: ../includes/welcome.php:708
1099
  #, php-format
1100
  msgid "Go to Cookie Compliance&trade; application now. Or access it anytime from your <a href=\"%s\">Cookie Notice settings page</a>."
1101
  msgstr ""
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: humanityco
3
  Tags: gdpr, ccpa, cookies, consent, compliance
4
  Requires at least: 4.3
5
  Requires PHP: 5.3
6
- Tested up to: 5.8.1
7
- Stable tag: 2.1.5
8
  License: MIT License
9
  License URI: http://opensource.org/licenses/MIT
10
 
@@ -118,6 +118,9 @@ Yes! The plugin + web appliaction version includes technical compliance features
118
 
119
  == Changelog ==
120
 
 
 
 
121
  = 2.1.5 =
122
  * Tweak: Additional sanitization applied
123
 
@@ -394,5 +397,5 @@ Initial release
394
 
395
  == Upgrade Notice ==
396
 
397
- = 2.1.5 =
398
- * Tweak: Additional sanitization applied
3
  Tags: gdpr, ccpa, cookies, consent, compliance
4
  Requires at least: 4.3
5
  Requires PHP: 5.3
6
+ Tested up to: 5.8.2
7
+ Stable tag: 2.2.0
8
  License: MIT License
9
  License URI: http://opensource.org/licenses/MIT
10
 
118
 
119
  == Changelog ==
120
 
121
+ = 2.2.0 =
122
+ * New: Option to hide banner for logged in users (Compliance only)
123
+
124
  = 2.1.5 =
125
  * Tweak: Additional sanitization applied
126
 
397
 
398
  == Upgrade Notice ==
399
 
400
+ = 2.2.0 =
401
+ * New: Option to hide banner for logged in users (Compliance only)