Cookie Notice by dFactory - Version 2.3.0

Version Description

  • New: Compliance Multi-license pricing options
  • Tweak: WordPress 6.0 compatibility
Download this release

Release Info

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

Code changes from version 2.2.3 to 2.3.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.2.3
6
  Author: Hu-manity.co
7
  Author URI: https://hu-manity.co/
8
  Plugin URI: https://hu-manity.co/
@@ -86,7 +86,7 @@ class Cookie_Notice {
86
  'update_notice' => true,
87
  'update_delay_date' => 0
88
  ),
89
- 'version' => '2.2.3'
90
  );
91
  private $deactivaion_url = '';
92
 
@@ -738,9 +738,11 @@ class Cookie_Notice {
738
  * @return array
739
  */
740
  public function check_legacy_params( $options, $params ) {
741
- foreach ( $params as $param ) {
742
- if ( array_key_exists( $param, $options ) && ! is_bool( $options[$param] ) )
743
- $options[$param] = $options[$param] === 'yes';
 
 
744
  }
745
 
746
  return $options;
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.3.0
6
  Author: Hu-manity.co
7
  Author URI: https://hu-manity.co/
8
  Plugin URI: https://hu-manity.co/
86
  'update_notice' => true,
87
  'update_delay_date' => 0
88
  ),
89
+ 'version' => '2.3.0'
90
  );
91
  private $deactivaion_url = '';
92
 
738
  * @return array
739
  */
740
  public function check_legacy_params( $options, $params ) {
741
+ if ( is_array( $options ) ) {
742
+ foreach ( $params as $param ) {
743
+ if ( array_key_exists( $param, $options ) && ! is_bool( $options[$param] ) )
744
+ $options[$param] = $options[$param] === 'yes';
745
+ }
746
  }
747
 
748
  return $options;
css/admin-welcome.css CHANGED
@@ -297,6 +297,18 @@
297
  margin-right: 5px;
298
  }
299
 
 
 
 
 
 
 
 
 
 
 
 
 
300
  .cn-welcome-wrap.cn-welcome-step-2 .cn-content {
301
  background-size: cover;
302
  }
@@ -442,8 +454,43 @@
442
  color: #20C19E;
443
  }
444
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
445
  .cn-welcome-wrap .cn-pricing-select {
446
  margin-top: 1.5em;
 
447
  }
448
 
449
  .cn-welcome-wrap .cn-pricing-table {
@@ -500,31 +547,31 @@
500
  padding: 2em 1.5em;
501
  }
502
 
503
- .cn-welcome-wrap .cn-pricing-table input#cn_pricing_plan_free + .cn-pricing-info .cn-plan-price {
504
  color: #515151;
505
  font-size: 1.25em;
506
  line-height: 1.5em;
507
  }
508
 
509
- .cn-welcome-wrap .cn-pricing-table input#cn_pricing_plan_yearly + .cn-pricing-info h4 {
510
- color: #FF9E0D;
511
  }
512
 
513
- .cn-welcome-wrap .cn-pricing-table input#cn_pricing_plan_yearly + .cn-pricing-info .cn-pricing-body p:last-child b,
514
- .cn-welcome-wrap .cn-pricing-table input#cn_pricing_plan_yearly + .cn-pricing-info .cn-pricing-body p:last-child .cn-icon,
515
- .cn-welcome-wrap .cn-pricing-table input#cn_pricing_plan_yearly + .cn-pricing-info .cn-pricing-body p:last-child .cn-icon:after {
516
  color: #FF9E0D;
517
  border-color: #FF9E0D;
518
  }
519
 
520
- .cn-welcome-wrap .cn-pricing-table input#cn_pricing_plan_yearly + .cn-pricing-info .cn-plan-promo {
521
  color: #fff;
522
- background: #20C19E;
523
  position: absolute;
524
  left: 50%;
525
  top: 0;
526
  font-weight: bold;
527
- font-size: 1.1em;
528
  line-height: 1.1em;
529
  text-transform: uppercase;
530
  display: inline-block;
@@ -551,7 +598,7 @@
551
  margin: 1em 0;
552
  }
553
 
554
- .cn-welcome-wrap .cn-plan-pricing {
555
  display: block;
556
  font-size: 1.5em;
557
  color: #515151;
@@ -569,6 +616,24 @@
569
  font-weight: normal;
570
  }
571
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
572
  .cn-welcome-wrap .cn-billing-wrapper {
573
  font-weight: normal;
574
  }
@@ -913,6 +978,14 @@
913
  transition: border-color 0.2s;
914
  }
915
 
 
 
 
 
 
 
 
 
916
  .cn-welcome-wrap form input[type="checkbox"],
917
  .cn-welcome-wrap form input[type="radio"] {
918
  transition: none;
@@ -975,30 +1048,30 @@
975
  margin-right: 0;
976
  }
977
 
978
- .cn-welcome-wrap form .cn-checkbox-wrapper input,
979
- .cn-welcome-wrap form .cn-radio-wrapper input {
980
  position: absolute;
981
  margin: 2px 0;
982
  }
983
 
984
- .cn-welcome-wrap form .cn-checkbox-wrapper input:focus,
985
- .cn-welcome-wrap form .cn-radio-wrapper input:focus {
986
  border-color: #86868F;
987
  }
988
 
989
- .cn-welcome-wrap form .cn-checkbox-wrapper input:checked,
990
- .cn-welcome-wrap form .cn-radio-wrapper input:checked {
991
  background: none;
992
  border-color: #20C19E;
993
  }
994
 
995
- .cn-welcome-wrap form .cn-checkbox-wrapper input:checked,
996
- .cn-welcome-wrap form .cn-radio-wrapper input:checked {
997
  background: none;
998
  border-color: #20C19E;
999
  }
1000
 
1001
- .cn-welcome-wrap form .cn-checkbox-wrapper input:checked::before {
1002
  font-family: dashicons;
1003
  line-height: 1;
1004
  font-weight: 400;
@@ -1039,7 +1112,7 @@
1039
  content: '';
1040
  }
1041
 
1042
- .cn-welcome-wrap form .cn-radio-wrapper label input:checked::before {
1043
  text-align: center;
1044
  display: block;
1045
  position: absolute;
@@ -1053,13 +1126,13 @@
1053
  background: #20C19E;
1054
  }
1055
 
1056
- .cn-welcome-wrap form .cn-checkbox-wrapper label > span,
1057
- .cn-welcome-wrap form .cn-radio-wrapper label > span {
1058
  margin-left: 2em;
1059
  display: block;
1060
  }
1061
 
1062
- .cn-welcome-wrap form .cn-field-checkbox > label.cn-asterix::after {
1063
  content: '*';
1064
  right: 0;
1065
  top: 0;
@@ -1068,8 +1141,8 @@
1068
  display: inline-block;
1069
  }
1070
 
1071
- .cn-welcome-wrap form .cn-checkbox-wrapper label > span.cn-asterix::after,
1072
- .cn-welcome-wrap form .cn-radio-wrapper label > span.cn-asterix::after {
1073
  content: '*';
1074
  right: 0;
1075
  top: 0;
@@ -1174,21 +1247,11 @@
1174
  background-color: rgba(32,193,158,0);
1175
  }
1176
 
1177
- /*
1178
- .cn-welcome-wrap form .cn-plan-wrapper label input {
1179
- top: 50%;
1180
- margin: -8px 0 0;
1181
- width: 20px;
1182
- height: 20px;
1183
  }
1184
 
1185
- .cn-welcome-wrap form .cn-plan-wrapper label input:checked::before {
1186
- width: 20px;
1187
- height: 20px;
1188
- line-height: 20px;
1189
- }
1190
- */
1191
-
1192
  .cn-welcome-wrap form .cn-plan-wrapper input:checked + span .cn-plan-overlay {
1193
  border-color: #20C19E;
1194
  background-color: rgba(32,193,158,.1);
@@ -1217,6 +1280,7 @@
1217
  display: inline-block;
1218
  font-size: 1.1em;
1219
  float: right;
 
1220
  }
1221
 
1222
  .cn-welcome-wrap form .cn-price-off {
297
  margin-right: 5px;
298
  }
299
 
300
+ .cn-welcome-wrap .cn-pricing-type .cn-badge {
301
+ font-size: 14px;
302
+ font-weight: bold;
303
+ color: #fff;
304
+ background: #20c19e;
305
+ padding: 2.5px 7.5px;
306
+ }
307
+
308
+ .cn-welcome-wrap .cn-pricing-type div:first-child {
309
+ border-right: 1px solid #ccc;
310
+ }
311
+
312
  .cn-welcome-wrap.cn-welcome-step-2 .cn-content {
313
  background-size: cover;
314
  }
454
  color: #20C19E;
455
  }
456
 
457
+ .cn-welcome-wrap .cn-pricing-type {
458
+ margin-top: 1em;
459
+ font-size: 1.2em;
460
+ display: flex;
461
+ justify-content: space-evenly;
462
+ align-items: baseline;
463
+ text-align: left;
464
+ }
465
+
466
+ .cn-welcome-wrap .cn-pricing-type > div {
467
+ flex: 1;
468
+ padding: 0 1em;
469
+ }
470
+
471
+ .cn-welcome-wrap .cn-pricing-type > div:nth-child(1) {
472
+ text-align: right;
473
+ }
474
+
475
+ .cn-welcome-wrap .cn-pricing-type label {
476
+ padding: 0;
477
+ margin: 0;
478
+ text-align: left;
479
+ position: relative;
480
+ display: inline-block;
481
+ }
482
+
483
+ .cn-welcome-wrap .cn-pricing-type label .cn-pricing-toggle {
484
+ margin-left: 1.5em;
485
+ }
486
+
487
+ .cn-welcome-wrap #cn-pricing-plans {
488
+ margin-top: 1em;
489
+ }
490
+
491
  .cn-welcome-wrap .cn-pricing-select {
492
  margin-top: 1.5em;
493
+ margin-bottom: 1.5em;
494
  }
495
 
496
  .cn-welcome-wrap .cn-pricing-table {
547
  padding: 2em 1.5em;
548
  }
549
 
550
+ .cn-welcome-wrap .cn-pricing-table input#cn-pricing-plan-free + .cn-pricing-info .cn-plan-price {
551
  color: #515151;
552
  font-size: 1.25em;
553
  line-height: 1.5em;
554
  }
555
 
556
+ .cn-welcome-wrap .cn-pricing-table input#cn-pricing-plan-pro + .cn-pricing-info {
557
+ background-color: rgba(32,193,158,0.05);
558
  }
559
 
560
+ .cn-welcome-wrap .cn-pricing-table input#cn-pricing-plan-pro + .cn-pricing-info .cn-pricing-body p:last-child b,
561
+ .cn-welcome-wrap .cn-pricing-table input#cn-pricing-plan-pro + .cn-pricing-info .cn-pricing-body p:last-child .cn-icon,
562
+ .cn-welcome-wrap .cn-pricing-table input#cn-pricing-plan-pro + .cn-pricing-info .cn-pricing-body p:last-child .cn-icon:after {
563
  color: #FF9E0D;
564
  border-color: #FF9E0D;
565
  }
566
 
567
+ .cn-welcome-wrap .cn-pricing-table input#cn-pricing-plan-pro + .cn-pricing-info .cn-plan-promo {
568
  color: #fff;
569
+ background: #FF9E0D;
570
  position: absolute;
571
  left: 50%;
572
  top: 0;
573
  font-weight: bold;
574
+ font-size: 14px;
575
  line-height: 1.1em;
576
  text-transform: uppercase;
577
  display: inline-block;
598
  margin: 1em 0;
599
  }
600
 
601
+ .cn-welcome-wrap .cn-pricing-table .cn-plan-pricing {
602
  display: block;
603
  font-size: 1.5em;
604
  color: #515151;
616
  font-weight: normal;
617
  }
618
 
619
+ .cn-welcome-wrap .cn-select-wrapper select {
620
+ background: #fff;
621
+ border: 1px solid #ccc;
622
+ color: #191e23;
623
+ border-radius: 25px;
624
+ padding: 5px 10px;
625
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
626
+ background-repeat: no-repeat;
627
+ background-position: right 10px center;
628
+ background-size: 16px 12px;
629
+ }
630
+
631
+ .cn-welcome-wrap .cn-select-wrapper select:hover,
632
+ .cn-welcome-wrap .cn-select-wrapper select:focus {
633
+ color: inherit;
634
+ box-shadow: none;
635
+ }
636
+
637
  .cn-welcome-wrap .cn-billing-wrapper {
638
  font-weight: normal;
639
  }
978
  transition: border-color 0.2s;
979
  }
980
 
981
+ .cn-welcome-wrap form select#cn-subscription-select option {
982
+ color: #35353f;
983
+ }
984
+
985
+ .cn-welcome-wrap form select#cn-subscription-select option:disabled {
986
+ background: #666;
987
+ }
988
+
989
  .cn-welcome-wrap form input[type="checkbox"],
990
  .cn-welcome-wrap form input[type="radio"] {
991
  transition: none;
1048
  margin-right: 0;
1049
  }
1050
 
1051
+ .cn-welcome-wrap .cn-checkbox-wrapper input,
1052
+ .cn-welcome-wrap .cn-radio-wrapper input {
1053
  position: absolute;
1054
  margin: 2px 0;
1055
  }
1056
 
1057
+ .cn-welcome-wrap .cn-checkbox-wrapper input:focus,
1058
+ .cn-welcome-wrap .cn-radio-wrapper input:focus {
1059
  border-color: #86868F;
1060
  }
1061
 
1062
+ .cn-welcome-wrap .cn-checkbox-wrapper input:checked,
1063
+ .cn-welcome-wrap .cn-radio-wrapper input:checked {
1064
  background: none;
1065
  border-color: #20C19E;
1066
  }
1067
 
1068
+ .cn-welcome-wrap .cn-checkbox-wrapper input:checked,
1069
+ .cn-welcome-wrap .cn-radio-wrapper input:checked {
1070
  background: none;
1071
  border-color: #20C19E;
1072
  }
1073
 
1074
+ .cn-welcome-wrap .cn-checkbox-wrapper input:checked::before {
1075
  font-family: dashicons;
1076
  line-height: 1;
1077
  font-weight: 400;
1112
  content: '';
1113
  }
1114
 
1115
+ .cn-welcome-wrap .cn-radio-wrapper label input:checked::before {
1116
  text-align: center;
1117
  display: block;
1118
  position: absolute;
1126
  background: #20C19E;
1127
  }
1128
 
1129
+ .cn-welcome-wrap .cn-checkbox-wrapper label > span,
1130
+ .cn-welcome-wrap .cn-radio-wrapper label > span {
1131
  margin-left: 2em;
1132
  display: block;
1133
  }
1134
 
1135
+ .cn-welcome-wrap .cn-field-checkbox > label.cn-asterix::after {
1136
  content: '*';
1137
  right: 0;
1138
  top: 0;
1141
  display: inline-block;
1142
  }
1143
 
1144
+ .cn-welcome-wrap .cn-checkbox-wrapper label > span.cn-asterix::after,
1145
+ .cn-welcome-wrap .cn-radio-wrapper label > span.cn-asterix::after {
1146
  content: '*';
1147
  right: 0;
1148
  top: 0;
1247
  background-color: rgba(32,193,158,0);
1248
  }
1249
 
1250
+ .cn-welcome-wrap form .cn-plan-wrapper .cn-disabled {
1251
+ pointer-events: none;
1252
+ opacity: 0.3;
 
 
 
1253
  }
1254
 
 
 
 
 
 
 
 
1255
  .cn-welcome-wrap form .cn-plan-wrapper input:checked + span .cn-plan-overlay {
1256
  border-color: #20C19E;
1257
  background-color: rgba(32,193,158,.1);
1280
  display: inline-block;
1281
  font-size: 1.1em;
1282
  float: right;
1283
+ color: #ccc;
1284
  }
1285
 
1286
  .cn-welcome-wrap form .cn-price-off {
css/admin.css CHANGED
@@ -1,203 +1,213 @@
1
- /* Cookie Notice settings */
2
- .cookie-notice-sidebar {
3
- float: right;
4
- width: 280px;
5
- margin: 20px -300px 20px 20px;
6
- position: relative;
7
  }
8
-
9
- .cookie-notice-sidebar .inner {
10
- padding: 1.33em;
11
- }
12
-
13
- .cookie-notice-sidebar > div:not(:last-child) {
14
- margin-bottom: 3em;
15
- }
16
-
17
- .cookie-notice-sidebar .inner img {
18
- max-width: 80%;
19
- height: auto;
20
- display: block;
21
- margin: 20px auto;
22
- }
23
-
24
- .cookie-notice-credits {
25
- background: #fff;
26
- box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.05);
27
- }
28
-
29
- .cookie-notice-credits .inner {
30
- text-align: center;
31
- margin: 0;
32
- }
33
-
34
- .button.cn-button {
35
- background-color: #20c19e;
36
- border-color: #20c19e;
37
- }
38
-
39
- .button.cn-button:hover,
40
- .button.cn-button:active,
41
- .button.cn-button:focus {
42
- background-color: #1ca98a;
43
- border-color: #1ca98a;
44
- }
45
-
46
- .button.cn-button:focus {
47
- box-shadow: 0 0 0 1px #fff, 0 0 0 3px #20c19e;
48
- }
49
-
50
- .cookie-notice-settings .cookie-notice-credits h2 {
51
- border: none;
52
- padding-bottom: 0;
53
- }
54
-
55
- .cookie-notice-credits h3 {
56
- font-size: 14px;
57
- line-height: 1.4;
58
- margin: 0;
59
- padding: 0.66em 1.33em;
60
- ;
61
- border-bottom: 1px solid #eee;
62
- }
63
-
64
- .cookie-notice-settings .df-credits form {
65
- min-width: 260px;
66
- margin-bottom: 1em;
67
- }
68
-
69
- .cookie-notice-settings .df-credits form input {
70
- margin: 0;
71
- padding: 0;
72
- }
73
-
74
- .cookie-notice-settings {
75
- margin-right: 300px;
76
- }
77
-
78
- .cookie-notice-settings hr, .df-credits hr {
79
- border: solid #eee;
80
- border-width: 1px 0 0;
81
- clear: both;
82
- height: 0;
83
- }
84
-
85
- .cookie-notice-settings form {
86
- float: left;
87
- min-width: 463px;
88
- width: 100%;
89
- }
90
-
91
- .cookie-notice-settings form h2 {
92
- margin: 1.5em 0;
93
- padding-bottom: 1em;
94
- border-bottom: 1px solid #ccc;
95
- }
96
-
97
- .cookie-notice-settings .ui-button {
98
- margin-bottom: 5px;
99
- }
100
-
101
- .cookie-notice-settings .description {
102
- font-size: 13px;
103
- margin-bottom: 8px;
104
- }
105
-
106
- .cookie-notice-settings .description strong {
107
- color: #444;
108
- }
109
-
110
- #cn_colors label {
111
- min-width: 10em;
112
- display: inline-block;
113
  }
114
-
115
- #cn_colors div {
116
- vertical-align: middle;
117
  }
118
-
119
- #cn_refuse_code .nav-tab-wrapper {
120
- padding-top: 0;
 
 
121
  }
122
-
123
- #cn_refuse_code .refuse-code-tab {
124
- display: none;
125
  }
126
-
127
- #cn_refuse_code .refuse-code-tab.active {
128
- display: block;
129
  }
130
-
131
- #cn_refuse_code .refuse-code-tab .description {
132
- margin-top: 10px;
133
  }
134
-
135
- .cn_compliance_status {
136
- margin-right: 15px;
137
  }
138
-
139
- #cn_app_status .cn_compliance_status label {
140
- margin-left: 5px !important;
141
  }
142
-
143
- #cn_app_status {
144
- margin-bottom: 30px;
145
  }
146
-
147
- #cn_app_status label {
148
- text-transform: uppercase;
149
- font-weight: bold;
150
- position: relative;
151
- color: #999;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
152
  }
153
-
154
- #cn_app_status label.cn-active {
155
- color: #1ca98a;
156
  }
157
-
158
- #cn_app_status label.cn-active:before {
159
- background-color: #1ca98a;
160
- box-shadow: 0 0 0 2px #1ca98a;
161
  }
162
-
163
- #cn_app_status label.cn-inactive {
164
- color: red;
165
  }
166
-
167
- #cn_app_status label.cn-inactive:before {
168
- background-color: red;
169
- box-shadow: 0 0 0 2px red;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
170
  }
171
-
172
  #cn_app_status label:before{
173
- background-color: #999;
174
- width: 10px;
175
- height: 10px;
176
- border-radius: 10px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
177
  content: '';
178
  display: inline-block;
179
- vertical-align: middle;
180
- margin-right: 10px;
181
- box-shadow: 0 0 0 2px #999;
182
- border: 2px solid #fff;
183
  position: relative;
184
- top: -2px;
185
- }
186
-
187
- #cn_colors_bar_opacity_range {
188
- vertical-align: middle;
189
- margin-right: 10px;
190
- }
191
-
192
- /* All Mobile Sizes (devices and browser) */
193
- @media only screen and (max-width: 959px) {
194
- .cookie-notice-sidebar {
195
- width: 100%;
196
- float: none;
197
- margin: 20px 0;
 
 
 
 
 
 
 
 
 
 
 
 
198
  }
199
-
200
- .cookie-notice-settings {
201
- margin-right: 0;
202
  }
203
- }
1
+ .cookie-notice-sidebar{
2
+ float:right;
3
+ width:280px;
4
+ margin:20px -300px 20px 20px;
5
+ position:relative
 
6
  }
7
+ .cookie-notice-sidebar .inner{
8
+ padding:1.33em
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  }
10
+ .cookie-notice-sidebar>div:not(:last-child){
11
+ margin-bottom:3em
 
12
  }
13
+ .cookie-notice-sidebar .inner img{
14
+ max-width:80%;
15
+ height:auto;
16
+ display:block;
17
+ margin:20px auto
18
  }
19
+ .cookie-notice-credits{
20
+ background:#fff;
21
+ box-shadow:0 0 0 1px rgba(0,0,0,.05)
22
  }
23
+ .cookie-notice-credits .inner{
24
+ text-align:center;
25
+ margin:0
26
  }
27
+ .button.cn-button{
28
+ background-color:#20c19e;
29
+ border-color:#20c19e
30
  }
31
+ .button.cn-button:active,.button.cn-button:focus,.button.cn-button:hover{
32
+ background-color:#1ca98a;
33
+ border-color:#1ca98a
34
  }
35
+ .button.cn-button:focus{
36
+ box-shadow:0 0 0 1px #fff,0 0 0 3px #20c19e
 
37
  }
38
+ .cookie-notice-settings .cookie-notice-credits h2{
39
+ border:none;
40
+ padding-bottom:0
41
  }
42
+ .cookie-notice-credits h3{
43
+ font-size:14px;
44
+ line-height:1.4;
45
+ margin:0;
46
+ padding:.66em 1.33em;
47
+ border-bottom:1px solid #eee
48
+ }
49
+ .cookie-notice-settings .df-credits form{
50
+ min-width:260px;
51
+ margin-bottom:1em
52
+ }
53
+ .cookie-notice-settings .df-credits form input{
54
+ margin:0;
55
+ padding:0
56
+ }
57
+ .cookie-notice-settings{
58
+ margin-right:300px
59
+ }
60
+ .cookie-notice-settings hr,.df-credits hr{
61
+ border:solid #eee;
62
+ border-width:1px 0 0;
63
+ clear:both;
64
+ height:0
65
+ }
66
+ .cookie-notice-settings form{
67
+ float:left;
68
+ min-width:463px;
69
+ width:100%
70
+ }
71
+ .cookie-notice-settings form h2{
72
+ margin:1.5em 0;
73
+ padding-bottom:1em;
74
+ border-bottom:1px solid #ccc
75
+ }
76
+ .cookie-notice-settings .ui-button{
77
+ margin-bottom:5px
78
+ }
79
+ .cookie-notice-settings .description{
80
+ font-size:13px;
81
+ margin-bottom:8px
82
+ }
83
+ .cookie-notice-settings .description strong{
84
+ color:#444
85
+ }
86
+ #cn_colors label{
87
+ min-width:10em;
88
+ display:inline-block
89
  }
90
+ #cn_colors div{
91
+ vertical-align:middle
 
92
  }
93
+ #cn_refuse_code .nav-tab-wrapper{
94
+ padding-top:0
 
 
95
  }
96
+ #cn_refuse_code .refuse-code-tab{
97
+ display:none
 
98
  }
99
+ #cn_refuse_code .refuse-code-tab.active{
100
+ display:block
101
+ }
102
+ #cn_refuse_code .refuse-code-tab .description{
103
+ margin-top:10px
104
+ }
105
+ .cn_compliance_status{
106
+ margin-right:15px
107
+ }
108
+ #cn_app_status .cn_compliance_status label{
109
+ margin-left:5px!important
110
+ }
111
+ #cn_app_status{
112
+ margin-bottom:30px
113
+ }
114
+ #cn_app_status label{
115
+ text-transform:uppercase;
116
+ font-weight:700;
117
+ position:relative;
118
+ color:#999
119
+ }
120
+ #cn_app_status label.cn-active{
121
+ color:#1ca98a
122
+ }
123
+ #cn_app_status label.cn-active:before{
124
+ background-color:#1ca98a;
125
+ box-shadow:0 0 0 2px #1ca98a
126
+ }
127
+ #cn_app_status label.cn-inactive{
128
+ color:red
129
+ }
130
+ #cn_app_status label.cn-inactive:before{
131
+ background-color:red;
132
+ box-shadow:0 0 0 2px red
133
  }
 
134
  #cn_app_status label:before{
135
+ background-color:#999;
136
+ width:10px;
137
+ height:10px;
138
+ border-radius:10px;
139
+ content:'';
140
+ display:inline-block;
141
+ vertical-align:middle;
142
+ margin-right:10px;
143
+ box-shadow:0 0 0 2px #999;
144
+ border:2px solid #fff;
145
+ position:relative;
146
+ top:-2px
147
+ }
148
+ #cn_colors_bar_opacity_range{
149
+ vertical-align:middle;
150
+ margin-right:10px
151
+ }
152
+ .cn-toggle-container .cn-toggle-item{
153
+ font-size:14px;
154
+ display:block;
155
+ margin-bottom:20px;
156
+ cursor:default
157
+ }
158
+ .cn-toggle-container .cn-toggle-item input{
159
+ display:none
160
+ }
161
+ .cn-toggle-container .cn-toggle-item span{
162
+ display:block
163
+ }
164
+ .cn-toggle-container .cn-toggle-item .cn-toggle-heading{
165
+ color:#2271b1;
166
+ transition-property:border,background,color;
167
+ transition-duration:.05s;
168
+ transition-timing-function:ease-in-out;
169
+ text-decoration:underline;
170
+ font-weight:600;
171
+ cursor:pointer;
172
+ position: relative;
173
+ padding-left: 20px;
174
+ }
175
+ .cn-toggle-container .cn-toggle-item .cn-toggle-heading:before {
176
+ border-style: solid;
177
+ border-width: 2px 2px 0 0;
178
  content: '';
179
  display: inline-block;
180
+ height: 6px;
181
+ width: 6px;
 
 
182
  position: relative;
183
+ top: 5px;
184
+ left: 0;
185
+ vertical-align: top;
186
+ transform: rotate(45deg);
187
+ transition: transform 0.2s;
188
+ position: absolute;
189
+ }
190
+ .cn-toggle-container .cn-toggle-item .cn-toggle-body{
191
+ overflow:hidden;
192
+ transition:max-height .3s;
193
+ max-height:0;
194
+ margin-top:10px;
195
+ cursor:default;
196
+ padding-left: 20px;
197
+ }
198
+ .cn-toggle-container .cn-toggle-item input:checked~.cn-toggle-heading:before{
199
+ transform: rotate(135deg);
200
+ }
201
+ .cn-toggle-container .cn-toggle-item input:checked~.cn-toggle-body{
202
+ max-height:100vh
203
+ }
204
+ @media only screen and (max-width:959px){
205
+ .cookie-notice-sidebar{
206
+ width:100%;
207
+ float:none;
208
+ margin:20px 0
209
  }
210
+ .cookie-notice-settings{
211
+ margin-right:0
 
212
  }
213
+ }
css/admin.min.css CHANGED
@@ -1 +1 @@
1
- .cookie-notice-sidebar{float:right;width:280px;margin:20px -300px 20px 20px;position:relative}.cookie-notice-sidebar .inner{padding:1.33em}.cookie-notice-sidebar>div:not(:last-child){margin-bottom:3em}.cookie-notice-sidebar .inner img{max-width:80%;height:auto;display:block;margin:20px auto}.cookie-notice-credits{background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.05)}.cookie-notice-credits .inner{text-align:center;margin:0}.button.cn-button{background-color:#20c19e;border-color:#20c19e}.button.cn-button:active,.button.cn-button:focus,.button.cn-button:hover{background-color:#1ca98a;border-color:#1ca98a}.button.cn-button:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #20c19e}.cookie-notice-settings .cookie-notice-credits h2{border:none;padding-bottom:0}.cookie-notice-credits h3{font-size:14px;line-height:1.4;margin:0;padding:.66em 1.33em;border-bottom:1px solid #eee}.cookie-notice-settings .df-credits form{min-width:260px;margin-bottom:1em}.cookie-notice-settings .df-credits form input{margin:0;padding:0}.cookie-notice-settings{margin-right:300px}.cookie-notice-settings hr,.df-credits hr{border:solid #eee;border-width:1px 0 0;clear:both;height:0}.cookie-notice-settings form{float:left;min-width:463px;width:100%}.cookie-notice-settings form h2{margin:1.5em 0;padding-bottom:1em;border-bottom:1px solid #ccc}.cookie-notice-settings .ui-button{margin-bottom:5px}.cookie-notice-settings .description{font-size:13px;margin-bottom:8px}.cookie-notice-settings .description strong{color:#444}#cn_colors label{min-width:10em;display:inline-block}#cn_colors div{vertical-align:middle}#cn_refuse_code .nav-tab-wrapper{padding-top:0}#cn_refuse_code .refuse-code-tab{display:none}#cn_refuse_code .refuse-code-tab.active{display:block}#cn_refuse_code .refuse-code-tab .description{margin-top:10px}.cn_compliance_status{margin-right:15px}#cn_app_status .cn_compliance_status label{margin-left:5px!important}#cn_app_status{margin-bottom:30px}#cn_app_status label{text-transform:uppercase;font-weight:700;position:relative;color:#999}#cn_app_status label.cn-active{color:#1ca98a}#cn_app_status label.cn-active:before{background-color:#1ca98a;box-shadow:0 0 0 2px #1ca98a}#cn_app_status label.cn-inactive{color:red}#cn_app_status label.cn-inactive:before{background-color:red;box-shadow:0 0 0 2px red}#cn_app_status label:before{background-color:#999;width:10px;height:10px;border-radius:10px;content:'';display:inline-block;vertical-align:middle;margin-right:10px;box-shadow:0 0 0 2px #999;border:2px solid #fff;position:relative;top:-2px}#cn_colors_bar_opacity_range{vertical-align:middle;margin-right:10px}.cn-toggle-container .cn-toggle-item{font-size:14px;display:block;margin-bottom:20px;cursor:default}.cn-toggle-container .cn-toggle-item input{display:none}.cn-toggle-container .cn-toggle-item span{display:block}.cn-toggle-container .cn-toggle-item .cn-toggle-heading{color:#2271b1;transition-property:border,background,color;transition-duration:.05s;transition-timing-function:ease-in-out;text-decoration:underline;font-weight:600;cursor:pointer}.cn-toggle-container .cn-toggle-item .cn-toggle-body{overflow:hidden;transition:max-height .3s;max-height:0;margin-top:10px;cursor:default;pointer-events:none}.cn-toggle-container .cn-toggle-item input:checked~.cn-toggle-body{max-height:100vh}@media only screen and (max-width:959px){.cookie-notice-sidebar{width:100%;float:none;margin:20px 0}.cookie-notice-settings{margin-right:0}}
1
+ .cookie-notice-sidebar{float:right;width:280px;margin:20px -300px 20px 20px;position:relative}.cookie-notice-sidebar .inner{padding:1.33em}.cookie-notice-sidebar>div:not(:last-child){margin-bottom:3em}.cookie-notice-sidebar .inner img{max-width:80%;height:auto;display:block;margin:20px auto}.cookie-notice-credits{background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.05)}.cookie-notice-credits .inner{text-align:center;margin:0}.button.cn-button{background-color:#20c19e;border-color:#20c19e}.button.cn-button:active,.button.cn-button:focus,.button.cn-button:hover{background-color:#1ca98a;border-color:#1ca98a}.button.cn-button:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #20c19e}.cookie-notice-settings .cookie-notice-credits h2{border:none;padding-bottom:0}.cookie-notice-credits h3{font-size:14px;line-height:1.4;margin:0;padding:.66em 1.33em;border-bottom:1px solid #eee}.cookie-notice-settings .df-credits form{min-width:260px;margin-bottom:1em}.cookie-notice-settings .df-credits form input{margin:0;padding:0}.cookie-notice-settings{margin-right:300px}.cookie-notice-settings hr,.df-credits hr{border:solid #eee;border-width:1px 0 0;clear:both;height:0}.cookie-notice-settings form{float:left;min-width:463px;width:100%}.cookie-notice-settings form h2{margin:1.5em 0;padding-bottom:1em;border-bottom:1px solid #ccc}.cookie-notice-settings .ui-button{margin-bottom:5px}.cookie-notice-settings .description{font-size:13px;margin-bottom:8px}.cookie-notice-settings .description strong{color:#444}#cn_colors label{min-width:10em;display:inline-block}#cn_colors div{vertical-align:middle}#cn_refuse_code .nav-tab-wrapper{padding-top:0}#cn_refuse_code .refuse-code-tab{display:none}#cn_refuse_code .refuse-code-tab.active{display:block}#cn_refuse_code .refuse-code-tab .description{margin-top:10px}.cn_compliance_status{margin-right:15px}#cn_app_status .cn_compliance_status label{margin-left:5px!important}#cn_app_status{margin-bottom:30px}#cn_app_status label{text-transform:uppercase;font-weight:700;position:relative;color:#999}#cn_app_status label.cn-active{color:#1ca98a}#cn_app_status label.cn-active:before{background-color:#1ca98a;box-shadow:0 0 0 2px #1ca98a}#cn_app_status label.cn-inactive{color:red}#cn_app_status label.cn-inactive:before{background-color:red;box-shadow:0 0 0 2px red}#cn_app_status label:before{background-color:#999;width:10px;height:10px;border-radius:10px;content:'';display:inline-block;vertical-align:middle;margin-right:10px;box-shadow:0 0 0 2px #999;border:2px solid #fff;position:relative;top:-2px}#cn_colors_bar_opacity_range{vertical-align:middle;margin-right:10px}.cn-toggle-container .cn-toggle-item{font-size:14px;display:block;margin-bottom:20px;cursor:default}.cn-toggle-container .cn-toggle-item input{display:none}.cn-toggle-container .cn-toggle-item span{display:block}.cn-toggle-container .cn-toggle-item .cn-toggle-heading{color:#2271b1;transition-property:border,background,color;transition-duration:.05s;transition-timing-function:ease-in-out;text-decoration:underline;font-weight:600;cursor:pointer;position:relative;padding-left:20px}.cn-toggle-container .cn-toggle-item .cn-toggle-heading:before{border-style:solid;border-width:2px 2px 0 0;content:'';display:inline-block;height:6px;width:6px;position:relative;top:5px;left:0;vertical-align:top;transform:rotate(45deg);transition:transform 0.2s;position:absolute}.cn-toggle-container .cn-toggle-item .cn-toggle-body{overflow:hidden;transition:max-height .3s;max-height:0;margin-top:10px;cursor:default;padding-left:20px}.cn-toggle-container .cn-toggle-item input:checked~.cn-toggle-heading:before{transform:rotate(135deg)}.cn-toggle-container .cn-toggle-item input:checked~.cn-toggle-body{max-height:100vh}@media only screen and (max-width:959px){.cookie-notice-sidebar{width:100%;float:none;margin:20px 0}.cookie-notice-settings{margin-right:0}}
includes/frontend.php CHANGED
@@ -9,16 +9,16 @@ if ( ! defined( 'ABSPATH' ) )
9
  * @class Cookie_Notice_Frontend
10
  */
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
- $this->app_url = 'https://app.hu-manity.co';
22
  }
23
 
24
  /**
9
  * @class Cookie_Notice_Frontend
10
  */
11
  class Cookie_Notice_Frontend {
 
12
  private $is_bot = false;
13
  private $hide_banner = false;
14
 
15
+ // api urls
16
+ private $widget_url = '//cdn.hu-manity.co/hu-banner.min.js';
17
+ private $app_url = 'https://app.hu-manity.co';
18
+
19
  public function __construct() {
20
  // actions
21
  add_action( 'init', array( $this, 'init' ) );
 
 
 
22
  }
23
 
24
  /**
includes/settings.php CHANGED
@@ -9,7 +9,7 @@ if ( ! defined( 'ABSPATH' ) )
9
  * @class Cookie_Notice_Settings
10
  */
11
  class Cookie_Notice_Settings {
12
- private $app_login_url = '';
13
 
14
  public $positions = array();
15
  public $styles = array();
@@ -36,8 +36,6 @@ class Cookie_Notice_Settings {
36
  add_action( 'admin_print_styles', array( $this, 'admin_print_styles' ) );
37
  add_action( 'wp_ajax_cn_purge_cache', array( $this, 'ajax_purge_cache' ) );
38
  add_action( 'admin_notices', array( $this, 'settings_errors' ) );
39
-
40
- $this->app_login_url = 'https://app.hu-manity.co/#/en/cc2/login';
41
  }
42
 
43
  /**
@@ -214,7 +212,7 @@ class Cookie_Notice_Settings {
214
  <p>' . __( 'A free web application to help you deliver better consent experiences and comply with GDPR, CCPA and other data privacy laws more effectively.', 'cookie-notice' ) . '</p>
215
  </div>
216
  <img src="//cns2-53eb.kxcdn.com/screen-dashboard-small.png">
217
- <a href="' . esc_url( admin_url( 'index.php?page=cookie-notice' ) ) . '" class="button button-primary button-hero cn-button cn-run-upgrade">' . __( 'Free Upgrade', 'cookie-notice' ) . '</a>';
218
  }
219
 
220
  echo '
@@ -242,6 +240,11 @@ class Cookie_Notice_Settings {
242
  <span class="cn-toggle-heading">' . __( 'Is Cookie Compliance free?', 'cookie-notice' ) . '</span>
243
  <span class="cn-toggle-body">' . __( 'Yes, but with limits. Cookie Compliance includes both free and paid plans to choose from depending on your needs and your website monthly traffic.', 'cookie-notice' ) . '</span>
244
  </label>
 
 
 
 
 
245
  </div>
246
  </div>';
247
  }
9
  * @class Cookie_Notice_Settings
10
  */
11
  class Cookie_Notice_Settings {
12
+ private $app_login_url = 'https://app.hu-manity.co/#/en/cc2/login';
13
 
14
  public $positions = array();
15
  public $styles = array();
36
  add_action( 'admin_print_styles', array( $this, 'admin_print_styles' ) );
37
  add_action( 'wp_ajax_cn_purge_cache', array( $this, 'ajax_purge_cache' ) );
38
  add_action( 'admin_notices', array( $this, 'settings_errors' ) );
 
 
39
  }
40
 
41
  /**
212
  <p>' . __( 'A free web application to help you deliver better consent experiences and comply with GDPR, CCPA and other data privacy laws more effectively.', 'cookie-notice' ) . '</p>
213
  </div>
214
  <img src="//cns2-53eb.kxcdn.com/screen-dashboard-small.png">
215
+ <a href="https://cookie-compliance.co/" class="button button-primary button-hero cn-button" target="_blank">' . __( 'Learn more', 'cookie-notice' ) . '</a>';
216
  }
217
 
218
  echo '
240
  <span class="cn-toggle-heading">' . __( 'Is Cookie Compliance free?', 'cookie-notice' ) . '</span>
241
  <span class="cn-toggle-body">' . __( 'Yes, but with limits. Cookie Compliance includes both free and paid plans to choose from depending on your needs and your website monthly traffic.', 'cookie-notice' ) . '</span>
242
  </label>
243
+ <label for="cn-faq-4" class="cn-toggle-item">
244
+ <input id="cn-faq-4" type="checkbox" />
245
+ <span class="cn-toggle-heading">' . __( 'Where can I find pricing options?', 'cookie-notice' ) . '</span>
246
+ <span class="cn-toggle-body">' . __( 'You can learn more about the features and pricing by visiting the Cookie Compliance website here:', 'cookie-notice' ) . ' <a href="https://cookie-compliance.co/" target="_blank">https://cookie-compliance.co/</a></span>
247
+ </label>
248
  </div>
249
  </div>';
250
  }
includes/welcome-api.php CHANGED
@@ -45,7 +45,7 @@ class Cookie_Notice_Welcome_API {
45
  if ( ( $_POST['request'] === 'payment' && ! empty( $_POST['cn_payment_nonce'] ) && ! wp_verify_nonce( $_POST['cn_payment_nonce'], 'cn_api_payment' ) ) || ( ! empty( $_POST['cn_nonce'] ) && ! wp_verify_nonce( $_POST['cn_nonce'], 'cn_api_' . $_POST['request'] ) ) )
46
  wp_die( __( 'You do not have permission to access this page.', 'cookie-notice' ) );
47
 
48
- $request = in_array( $_POST['request'], array( 'register', 'login', 'configure', 'select_plan', 'payment', 'get_bt_init_token' ), true ) ? $_POST['request'] : '';
49
  $errors = array();
50
  $response = false;
51
 
@@ -65,6 +65,26 @@ class Cookie_Notice_Welcome_API {
65
  $params = array();
66
 
67
  switch ($request) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
  case 'get_bt_init_token':
69
  $result = $this->request( 'get_token' );
70
 
@@ -83,9 +103,18 @@ class Cookie_Notice_Welcome_API {
83
  }
84
 
85
  // validate plan and payment method
86
- $plan = in_array( $_POST['plan'], array( 'monthly', 'yearly' ), true ) ? $_POST['plan'] : false;
87
- $plan = ! empty( $plan ) ? 'compliance_' . $plan . '_notrial' : false;
 
 
 
 
 
 
 
 
88
 
 
89
  $method = in_array( $_POST['method'], array( 'credit_card', 'paypal' ), true ) ? $_POST['method'] : false;
90
 
91
  // valid plan and payment method?
@@ -94,7 +123,12 @@ class Cookie_Notice_Welcome_API {
94
  break;
95
  }
96
 
97
- $result = $this->request( 'get_customer', array( 'AppID' => $app_id ) );
 
 
 
 
 
98
 
99
  // user found?
100
  if ( ! empty( $result->id ) ) {
@@ -106,6 +140,7 @@ class Cookie_Notice_Welcome_API {
106
  array(
107
  'AppID' => $app_id,
108
  'AdminID' => $admin_id, // remove later - AdminID from API response
 
109
  'paymentMethodNonce' => sanitize_text_field( $_POST['payment_nonce'] )
110
  )
111
  );
@@ -123,13 +158,68 @@ class Cookie_Notice_Welcome_API {
123
  break;
124
  }
125
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
126
  // @todo: check if subscribtion exists
127
  $subscription = $this->request(
128
  'create_subscription',
129
  array(
130
  'AppID' => $app_id,
131
  'PlanId' => $plan,
132
- 'paymentMethodToken' => $customer->paymentMethods[0]->token
133
  )
134
  );
135
 
@@ -139,6 +229,7 @@ class Cookie_Notice_Welcome_API {
139
  break;
140
  }
141
 
 
142
  break;
143
 
144
  case 'register':
@@ -284,7 +375,7 @@ class Cookie_Notice_Welcome_API {
284
  $params['AppID'] = $app_id;
285
  // @todo When mutliple default languages are supported
286
  $params['DefaultLanguage'] = 'en';
287
-
288
  // add translations if needed
289
  if ( $locale_code[0] !== 'en' )
290
  $params['Languages'] = array( $locale_code[0] );
@@ -382,7 +473,6 @@ class Cookie_Notice_Welcome_API {
382
  // get apps and check if one for the current domain already exists
383
  $response = $this->request( 'list_apps', array() );
384
 
385
- // echo '<pre>'; print_r( $response ); echo '</pre>'; exit;
386
  // errors?
387
  if ( ! empty( $response->message ) ) {
388
  $response->error = $response->message;
@@ -449,6 +539,26 @@ class Cookie_Notice_Welcome_API {
449
  break;
450
  }
451
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
452
  // update options: app ID and secret key
453
  Cookie_Notice()->options['general'] = wp_parse_args( array( 'app_id' => $app_exists->AppID, 'app_key' => $app_exists->SecretKey ), Cookie_Notice()->options['general'] );
454
 
@@ -462,7 +572,7 @@ class Cookie_Notice_Welcome_API {
462
  'AppID' => $app_exists->AppID,
463
  'DefaultLanguage' => 'en',
464
  );
465
-
466
  // add translations if needed
467
  if ( $locale_code[0] !== 'en' )
468
  $params['Languages'] = array( $locale_code[0] );
@@ -514,6 +624,10 @@ class Cookie_Notice_Welcome_API {
514
  }
515
  }
516
 
 
 
 
 
517
  break;
518
 
519
  case 'configure':
@@ -819,7 +933,21 @@ class Cookie_Notice_Welcome_API {
819
  );
820
  break;
821
 
822
- // braintree assign subscription to the customer
 
 
 
 
 
 
 
 
 
 
 
 
 
 
823
  case 'create_subscription':
824
  $json = true;
825
  $api_url = $this->account_api_url . '/api/account/braintree/createsubscription';
@@ -832,6 +960,34 @@ class Cookie_Notice_Welcome_API {
832
  )
833
  );
834
  break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
835
  }
836
 
837
  if ( ! empty( $params ) && is_array( $params ) ) {
@@ -896,9 +1052,8 @@ class Cookie_Notice_Welcome_API {
896
  );
897
 
898
  $response = $this->request( 'get_analytics', $params );
899
-
900
- // echo '<pre>'; print_r( $response ); echo '</pre>'; exit;
901
 
 
902
  // get analytics
903
  if ( ! empty( $response->data ) ) {
904
  $result = ! empty( $response->data ) ? map_deep( (array) $response->data, 'sanitize_text_field' ) : array();
45
  if ( ( $_POST['request'] === 'payment' && ! empty( $_POST['cn_payment_nonce'] ) && ! wp_verify_nonce( $_POST['cn_payment_nonce'], 'cn_api_payment' ) ) || ( ! empty( $_POST['cn_nonce'] ) && ! wp_verify_nonce( $_POST['cn_nonce'], 'cn_api_' . $_POST['request'] ) ) )
46
  wp_die( __( 'You do not have permission to access this page.', 'cookie-notice' ) );
47
 
48
+ $request = in_array( $_POST['request'], array( 'register', 'login', 'configure', 'select_plan', 'payment', 'get_bt_init_token', 'use_license' ), true ) ? $_POST['request'] : '';
49
  $errors = array();
50
  $response = false;
51
 
65
  $params = array();
66
 
67
  switch ($request) {
68
+ case 'use_license' :
69
+ $subscriptionID = (int) $_POST['subscriptionID'];
70
+
71
+ $result = $this->request( 'assign_subscription',
72
+ array(
73
+ 'AppID' => $app_id,
74
+ 'subscriptionID' => $subscriptionID
75
+ )
76
+ );
77
+
78
+ // errors?
79
+ if ( ! empty( $result->message ) ) {
80
+ $response = array( 'error' => $result->message );
81
+ break;
82
+ } else {
83
+ $response = $result;
84
+ };
85
+
86
+ break;
87
+
88
  case 'get_bt_init_token':
89
  $result = $this->request( 'get_token' );
90
 
103
  }
104
 
105
  // validate plan and payment method
106
+ $available_plans = array(
107
+ 'compliance_monthly_notrial',
108
+ 'compliance_monthly_5',
109
+ 'compliance_monthly_10',
110
+ 'compliance_monthly_20',
111
+ 'compliance_yearly_notrial',
112
+ 'compliance_yearly_5',
113
+ 'compliance_yearly_10',
114
+ 'compliance_yearly_20'
115
+ );
116
 
117
+ $plan = in_array( $_POST['plan'], $available_plans, true ) ? $_POST['plan'] : false;
118
  $method = in_array( $_POST['method'], array( 'credit_card', 'paypal' ), true ) ? $_POST['method'] : false;
119
 
120
  // valid plan and payment method?
123
  break;
124
  }
125
 
126
+ $result = $this->request( 'get_customer',
127
+ array(
128
+ 'AppID' => $app_id,
129
+ 'PlanId' => $plan
130
+ )
131
+ );
132
 
133
  // user found?
134
  if ( ! empty( $result->id ) ) {
140
  array(
141
  'AppID' => $app_id,
142
  'AdminID' => $admin_id, // remove later - AdminID from API response
143
+ 'PlanId' => $plan,
144
  'paymentMethodNonce' => sanitize_text_field( $_POST['payment_nonce'] )
145
  )
146
  );
158
  break;
159
  }
160
 
161
+ // selected payment method
162
+ $payment_method = false;
163
+
164
+ // get payment identifier
165
+ $identifier = isset( $_POST['cn_payment_identifier'] ) ? sanitize_text_field( $_POST['cn_payment_identifier'] ) : '';
166
+
167
+ // customer available payment methods
168
+ $payment_methods = ! empty( $customer->paymentMethods ) ? $customer->paymentMethods : array();
169
+
170
+ $paypal_methods = array();
171
+ $cc_methods = array();
172
+
173
+ // try to find payment method
174
+ if ( ! empty( $payment_methods ) && is_array( $payment_methods ) ) {
175
+ foreach ( $payment_methods as $pm ) {
176
+ // paypal
177
+ if ( isset( $pm->email ) ) {
178
+ $paypal_methods[] = $pm;
179
+
180
+ if ( $pm->email === $identifier )
181
+ $payment_method = $pm;
182
+ // credit card
183
+ } else {
184
+ $cc_methods[] = $pm;
185
+
186
+ if ( isset( $pm->last4 ) && $pm->last4 === $identifier )
187
+ $payment_method = $pm;
188
+ }
189
+ }
190
+ }
191
+
192
+ // if payment method was not identified, create it
193
+ if ( ! $payment_method ) {
194
+ $result = $this->request(
195
+ 'create_payment_method',
196
+ array(
197
+ 'AppID' => $app_id,
198
+ 'paymentMethodNonce' => sanitize_text_field( $_POST['payment_nonce'] )
199
+ )
200
+ );
201
+
202
+ // payment method created successfully?
203
+ if ( ! empty( $result->success ) ) {
204
+ $payment_method = $result->paymentMethod;
205
+ } else {
206
+ $response = array( 'error' => __( 'Unable to create payment mehotd.', 'cookie-notice' ) );
207
+ break;
208
+ }
209
+ }
210
+
211
+ if ( ! isset( $payment_method->token ) ) {
212
+ $response = array( 'error' => __( 'No payment method token.', 'cookie-notice' ) );
213
+ break;
214
+ }
215
+
216
  // @todo: check if subscribtion exists
217
  $subscription = $this->request(
218
  'create_subscription',
219
  array(
220
  'AppID' => $app_id,
221
  'PlanId' => $plan,
222
+ 'paymentMethodToken' => $payment_method->token
223
  )
224
  );
225
 
229
  break;
230
  }
231
 
232
+ $response = $app_id;
233
  break;
234
 
235
  case 'register':
375
  $params['AppID'] = $app_id;
376
  // @todo When mutliple default languages are supported
377
  $params['DefaultLanguage'] = 'en';
378
+
379
  // add translations if needed
380
  if ( $locale_code[0] !== 'en' )
381
  $params['Languages'] = array( $locale_code[0] );
473
  // get apps and check if one for the current domain already exists
474
  $response = $this->request( 'list_apps', array() );
475
 
 
476
  // errors?
477
  if ( ! empty( $response->message ) ) {
478
  $response->error = $response->message;
539
  break;
540
  }
541
 
542
+ // get subscriptions
543
+ $subscriptions = array();
544
+
545
+ $params = array(
546
+ 'AppID' => $app_exists->AppID
547
+ );
548
+
549
+ $response = $this->request( 'get_subscriptions', $params );
550
+
551
+ // errors?
552
+ if ( ! empty( $response->error ) ) {
553
+ $response->error = $response->error;
554
+ break;
555
+ } else {
556
+ $subscriptions = map_deep( (array) $response->data, 'sanitize_text_field' );
557
+ }
558
+
559
+ // set subscriptions data
560
+ set_transient( 'cookie_notice_app_subscriptions', $subscriptions, 24 * HOUR_IN_SECONDS );
561
+
562
  // update options: app ID and secret key
563
  Cookie_Notice()->options['general'] = wp_parse_args( array( 'app_id' => $app_exists->AppID, 'app_key' => $app_exists->SecretKey ), Cookie_Notice()->options['general'] );
564
 
572
  'AppID' => $app_exists->AppID,
573
  'DefaultLanguage' => 'en',
574
  );
575
+
576
  // add translations if needed
577
  if ( $locale_code[0] !== 'en' )
578
  $params['Languages'] = array( $locale_code[0] );
624
  }
625
  }
626
 
627
+ // all ok, return subscriptions
628
+ $response = (object) array();
629
+ $response->subscriptions = $subscriptions;
630
+
631
  break;
632
 
633
  case 'configure':
933
  );
934
  break;
935
 
936
+ // braintree get subscriptions
937
+ case 'get_subscriptions':
938
+ $json = true;
939
+ $api_url = $this->account_api_url . '/api/account/braintree/subscriptionlists';
940
+ $api_args['method'] = 'POST';
941
+ $api_args['headers'] = array_merge(
942
+ $api_args['headers'],
943
+ array(
944
+ 'Authorization' => 'Bearer ' . $api_token,
945
+ 'Content-Type' => 'application/json; charset=utf-8'
946
+ )
947
+ );
948
+ break;
949
+
950
+ // braintree create subscription
951
  case 'create_subscription':
952
  $json = true;
953
  $api_url = $this->account_api_url . '/api/account/braintree/createsubscription';
960
  )
961
  );
962
  break;
963
+
964
+ // braintree assign subscription
965
+ case 'assign_subscription':
966
+ $json = true;
967
+ $api_url = $this->account_api_url . '/api/account/braintree/assignsubscription';
968
+ $api_args['method'] = 'POST';
969
+ $api_args['headers'] = array_merge(
970
+ $api_args['headers'],
971
+ array(
972
+ 'Authorization' => 'Bearer ' . $api_token,
973
+ 'Content-Type' => 'application/json; charset=utf-8'
974
+ )
975
+ );
976
+ break;
977
+
978
+ // braintree create subscription
979
+ case 'create_payment_method':
980
+ $json = true;
981
+ $api_url = $this->account_api_url . '/api/account/braintree/createpaymentmethod';
982
+ $api_args['method'] = 'POST';
983
+ $api_args['headers'] = array_merge(
984
+ $api_args['headers'],
985
+ array(
986
+ 'Authorization' => 'Bearer ' . $api_token,
987
+ 'Content-Type' => 'application/json; charset=utf-8'
988
+ )
989
+ );
990
+ break;
991
  }
992
 
993
  if ( ! empty( $params ) && is_array( $params ) ) {
1052
  );
1053
 
1054
  $response = $this->request( 'get_analytics', $params );
 
 
1055
 
1056
+ // echo '<pre>'; print_r( $response ); echo '</pre>'; exit;
1057
  // get analytics
1058
  if ( ! empty( $response->data ) ) {
1059
  $result = ! empty( $response->data ) ? map_deep( (array) $response->data, 'sanitize_text_field' ) : array();
includes/welcome.php CHANGED
@@ -10,20 +10,41 @@ if ( ! defined( 'ABSPATH' ) )
10
  */
11
  class Cookie_Notice_Welcome {
12
 
13
- private $app_login_url = '';
 
 
 
14
 
15
  public function __construct() {
16
  // actions
 
17
  add_action( 'admin_init', array( $this, 'welcome' ) );
18
  add_action( 'wp_ajax_cn_welcome_screen', array( $this, 'welcome_screen' ) );
19
-
20
- $this->app_login_url = 'https://app.hu-manity.co/#/en/cc2/login';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
  }
22
 
23
  /**
24
  * Load scripts and styles - admin.
25
  */
26
- public function admin_enqueue_scripts( $page ) {
27
  if ( in_array( Cookie_Notice()->get_status(), array( 'active', 'pending' ) ) )
28
  return;
29
 
@@ -49,9 +70,14 @@ class Cookie_Notice_Welcome {
49
  'error' => __( 'Unexpected error occurred. Please try again later.', 'cookie-notice' ),
50
  'statusPassed' => __( 'Passed', 'cookie-notice' ),
51
  'statusFailed' => __( 'Failed', 'cookie-notice' ),
 
 
 
 
52
  'complianceStatus' => Cookie_Notice()->get_status(),
53
  'complianceFailed' => __( '<em>Compliance Failed!</em>Your website does not achieve minimum viable compliance. <b><a href="#" class="cn-sign-up">Sign up to Cookie Compliance</a></b> to bring your site into compliance with the latest data privacy rules and regulations.', 'cookie-notice' ),
54
  'compliancePassed' => __( '<em>Compliance Passed!</em>Congratulations. Your website meets minimum viable compliance.', 'cookie-notice' ),
 
55
  'invalidFields' => __( 'Please fill all the required fields.', 'cookie-notice' )
56
  );
57
 
@@ -255,9 +281,17 @@ class Cookie_Notice_Welcome {
255
 
256
  $html .= '
257
  <h3 class="cn-pricing-select">' . __( 'Compliance Plans', 'cookie-notice' ) . ':</h3>
 
 
 
 
 
 
 
 
258
  <div class="cn-pricing-table">
259
- <label class="cn-pricing-item" for="cn_pricing_plan_free">
260
- <input id="cn_pricing_plan_free" type="radio" name="cn_pricing_plan" value="free">
261
  <div class="cn-pricing-info">
262
  <div class="cn-pricing-head">
263
  <h4>' . __( 'Basic', 'cookie-notice' ) . '</h4>
@@ -272,37 +306,25 @@ class Cookie_Notice_Welcome {
272
  <p class="cn-excluded"><span class="cn-icon"></span>' . __( '<b>Basic</b> Support', 'cookie-notice' ) . '</p>
273
  </div>
274
  <div class="cn-pricing-footer">
275
- <button type="button" class="cn-btn cn-btn-outline">' . __( 'Select Plan', 'cookie-notice' ) . '</button>
276
- </div>
277
- </div>
278
- </label>
279
- <label class="cn-pricing-item" for="cn_pricing_plan_monthly">
280
- <input id="cn_pricing_plan_monthly" type="radio" name="cn_pricing_plan" value="monthly">
281
- <div class="cn-pricing-info">
282
- <div class="cn-pricing-head">
283
- <h4>' . __( 'Professional Monthly', 'cookie-notice' ) . '</h4>
284
- <span class="cn-plan-pricing"><span class="cn-plan-price"><sup>$</sup>14.95</span> / ' . __( 'month', 'cookie-notice' ) . '</span>
285
- </div>
286
- <div class="cn-pricing-body">
287
- <p class="cn-included"><span class="cn-icon"></span>' . __( 'GDPR, CCPA, ePrivacy, PECR compliance', 'cookie-notice' ) . '</p>
288
- <p class="cn-included"><span class="cn-icon"></span>' . __( 'Consent Analytics Dashboard', 'cookie-notice' ) . '</p>
289
- <p class="cn-included"><span class="cn-icon"></span>' . __( '<b>Unlimited</b> visits', 'cookie-notice' ) . '</p>
290
- <p class="cn-included"><span class="cn-icon"></span>' . __( '<b>Lifetime</b> consent storage', 'cookie-notice' ) . '</p>
291
- <p class="cn-included"><span class="cn-icon"></span>' . __( '<b>Unlimited</b> languages', 'cookie-notice' ) . '</p>
292
- <p class="cn-included"><span class="cn-icon"></span>' . __( '<b>Regular</b> Support', 'cookie-notice' ) . '</p>
293
- </div>
294
- <div class="cn-pricing-footer">
295
- <button type="button" class="cn-btn cn-btn-outline">' . __( 'Select Plan', 'cookie-notice' ) . '</button>
296
  </div>
297
  </div>
298
  </label>
299
- <label class="cn-pricing-item" for="cn_pricing_plan_yearly">
300
- <input id="cn_pricing_plan_yearly" type="radio" name="cn_pricing_plan" value="yearly">
301
  <div class="cn-pricing-info">
302
  <div class="cn-pricing-head">
303
- <h4>' . __( 'Professional Yearly', 'cookie-notice' ) . '</h4>
304
- <span class="cn-plan-pricing"><span class="cn-plan-price"><sup>$</sup>149.50</span> / ' . __( 'year', 'cookie-notice' ) . '</span>
305
- <span class="cn-plan-promo">' . __( 'Best Value', 'cookie-notice' ) . '</span>
 
 
 
 
 
 
 
 
306
  </div>
307
  <div class="cn-pricing-body">
308
  <p class="cn-included"><span class="cn-icon"></span>' . __( 'GDPR, CCPA, ePrivacy, PECR compliance', 'cookie-notice' ) . '</p>
@@ -313,7 +335,7 @@ class Cookie_Notice_Welcome {
313
  <p class="cn-included"><span class="cn-icon"></span>' . __( '<b>Premium</b> Support', 'cookie-notice' ) . '</p>
314
  </div>
315
  <div class="cn-pricing-footer">
316
- <button type="button" class="cn-btn cn-btn-outline">' . __( 'Select Plan', 'cookie-notice' ) . '</button>
317
  </div>
318
  </div>
319
  </label>
@@ -545,15 +567,15 @@ class Cookie_Notice_Welcome {
545
  <div class="cn-form-feedback cn-hidden"></div>
546
  <div class="cn-field cn-field-radio">
547
  <div class="cn-radio-wrapper cn-plan-wrapper">
548
- <label for="cn_field_plan_free"><input id="cn_field_plan_free" type="radio" name="plan" value="free" checked><span><span class="cn-plan-description">' . __( 'Basic', 'cookie-notice' ) . '</span><span class="cn-plan-pricing"><span class="cn-plan-price">Free</span></span><span class="cn-plan-overlay"></span></span></label>
549
- <label for="cn_field_plan_monthly"><input id="cn_field_plan_monthly" type="radio" name="plan" value="monthly"><span><span class="cn-plan-description">' . __( '<b>Professional</b> Monthly', 'cookie-notice' ) . '</span><span class="cn-plan-pricing"><span class="cn-plan-price">$14.50</span>' . __( '/mo', 'cookie-notice' ) . '</span><span class="cn-plan-overlay"></span></span></label>
550
- <label for="cn_field_plan_yearly"><input id="cn_field_plan_yearly" type="radio" name="plan" value="yearly"><span><span class="cn-plan-description">' . __( '<b>Professional</b> Yearly', 'cookie-notice' ) . '</span><span class="cn-plan-pricing"><span class="cn-plan-price">$149.50</span>' . __( '/yr', 'cookie-notice' ) . '</span><span class="cn-plan-overlay"></span></span></label>
551
  </div>
552
  </div>
553
  <div class="cn-field cn-fieldset" id="cn_submit_free">
554
  <button type="submit" class="cn-btn cn-screen-button" tabindex="4" data-screen="4"><span class="cn-spinner"></span>' . __( 'Confirm', 'cookie-notice' ) . '</button>
555
  </div>
556
- <div class="cn-field cn-fieldset cn-hidden" id="cn_submit_paid">
 
557
  <div class="cn-field cn-field-radio">
558
  <label>' . __( 'Payment Method', 'cookie-notice' ) . '</label>
559
  <div class="cn-radio-wrapper cn-horizontal-wrapper">
@@ -647,15 +669,20 @@ class Cookie_Notice_Welcome {
647
  <div class="cn-form-feedback cn-hidden"></div>
648
  <div class="cn-field cn-field-radio">
649
  <div class="cn-radio-wrapper cn-plan-wrapper">
650
- <label for="cn_field_plan_free"><input id="cn_field_plan_free" type="radio" name="plan" value="free" checked><span><span class="cn-plan-description">' . __( 'Basic', 'cookie-notice' ) . '</span><span class="cn-plan-pricing"><span class="cn-plan-price">Free</span></span><span class="cn-plan-overlay"></span></span></label>
651
- <label for="cn_field_plan_monthly"><input id="cn_field_plan_monthly" type="radio" name="plan" value="monthly"><span><span class="cn-plan-description">' . __( '<b>Professional</b> Monthly', 'cookie-notice' ) . '</span><span class="cn-plan-pricing"><span class="cn-plan-price">$14.50</span>' . __( '/mo', 'cookie-notice' ) . '</span><span class="cn-plan-overlay"></span></span></label>
652
- <label for="cn_field_plan_yearly"><input id="cn_field_plan_yearly" type="radio" name="plan" value="yearly"><span><span class="cn-plan-description">' . __( '<b>Professional</b> Yearly', 'cookie-notice' ) . '</span><span class="cn-plan-pricing"><span class="cn-plan-price">$149.50</span>' . __( '/yr', 'cookie-notice' ) . '</span><span class="cn-plan-overlay"></span></span></label>
 
 
653
  </div>
654
  </div>
 
655
  <div class="cn-field cn-fieldset" id="cn_submit_free">
656
  <button type="submit" class="cn-btn cn-screen-button" tabindex="4" data-screen="4"><span class="cn-spinner"></span>' . __( 'Confirm', 'cookie-notice' ) . '</button>
657
  </div>
658
- <div class="cn-field cn-fieldset cn-hidden" id="cn_submit_paid">
 
 
659
  <div class="cn-field cn-field-radio">
660
  <label>' . __( 'Payment Method', 'cookie-notice' ) . '</label>
661
  <div class="cn-radio-wrapper cn-horizontal-wrapper">
@@ -684,6 +711,15 @@ class Cookie_Notice_Welcome {
684
  <div class="cn-fieldset" id="cn_payment_method_paypal" style="display: none;">
685
  <div id="cn_paypal_button"></div>
686
  </div>
 
 
 
 
 
 
 
 
 
687
  </div>';
688
 
689
  $html .= wp_nonce_field( 'cn_api_payment', 'cn_payment_nonce', true, false );
10
  */
11
  class Cookie_Notice_Welcome {
12
 
13
+ private $app_login_url = 'https://app.hu-manity.co/#/en/cc2/login';
14
+
15
+ private $pricing_monthly = array();
16
+ private $pricing_yearly = array();
17
 
18
  public function __construct() {
19
  // actions
20
+ add_action( 'admin_init', array( $this, 'init' ) );
21
  add_action( 'admin_init', array( $this, 'welcome' ) );
22
  add_action( 'wp_ajax_cn_welcome_screen', array( $this, 'welcome_screen' ) );
23
+ }
24
+
25
+ /**
26
+ * Init.
27
+ */
28
+ public function init() {
29
+ $this->pricing_monthly = array(
30
+ 'compliance_monthly_notrial' => '14.95',
31
+ 'compliance_monthly_5' => '29.95',
32
+ 'compliance_monthly_10' => '49.95',
33
+ 'compliance_monthly_20' => '69.95'
34
+ );
35
+
36
+ $this->pricing_yearly = array(
37
+ 'compliance_yearly_notrial' => '149.50',
38
+ 'compliance_yearly_5' => '299.50',
39
+ 'compliance_yearly_10' => '499.50',
40
+ 'compliance_yearly_20' => '699.50'
41
+ );
42
  }
43
 
44
  /**
45
  * Load scripts and styles - admin.
46
  */
47
+ public function admin_enqueue_scripts( $page ) {
48
  if ( in_array( Cookie_Notice()->get_status(), array( 'active', 'pending' ) ) )
49
  return;
50
 
70
  'error' => __( 'Unexpected error occurred. Please try again later.', 'cookie-notice' ),
71
  'statusPassed' => __( 'Passed', 'cookie-notice' ),
72
  'statusFailed' => __( 'Failed', 'cookie-notice' ),
73
+ 'paidMonth' => __( 'monthly', 'cookie-notice' ),
74
+ 'paidYear' => __( 'yearly', 'cookie-notice' ),
75
+ 'pricingMonthly' => $this->pricing_monthly,
76
+ 'pricingYearly' => $this->pricing_yearly,
77
  'complianceStatus' => Cookie_Notice()->get_status(),
78
  'complianceFailed' => __( '<em>Compliance Failed!</em>Your website does not achieve minimum viable compliance. <b><a href="#" class="cn-sign-up">Sign up to Cookie Compliance</a></b> to bring your site into compliance with the latest data privacy rules and regulations.', 'cookie-notice' ),
79
  'compliancePassed' => __( '<em>Compliance Passed!</em>Congratulations. Your website meets minimum viable compliance.', 'cookie-notice' ),
80
+ 'licensesAvailable' => __( 'available', 'cookie-notice' ),
81
  'invalidFields' => __( 'Please fill all the required fields.', 'cookie-notice' )
82
  );
83
 
281
 
282
  $html .= '
283
  <h3 class="cn-pricing-select">' . __( 'Compliance Plans', 'cookie-notice' ) . ':</h3>
284
+ <div class="cn-pricing-type cn-radio-wrapper">
285
+ <div>
286
+ <label for="pricing-type-monthly"><input id="pricing-type-monthly" type="radio" name="cn_pricing_type" value="monthly" checked><span class="cn-pricing-toggle toggle-left"><span class="cn-label">' . __( 'Monthly', 'cookie-notice' ) . '</span></span></label>
287
+ </div>
288
+ <div>
289
+ <label for="pricing-type-yearly"><input id="pricing-type-yearly" type="radio" name="cn_pricing_type" value="yearly"><span class="cn-pricing-toggle toggle-right"><span class="cn-label">' . __( 'Yearly', 'cookie-notice' ) . '<span class="cn-badge">' . __( 'Save 12%', 'cookie-notice' ) . '</span></span></span></label>
290
+ </div>
291
+ </div>
292
  <div class="cn-pricing-table">
293
+ <label class="cn-pricing-item cn-pricing-plan-free" for="cn-pricing-plan-free">
294
+ <input id="cn-pricing-plan-free" type="radio" name="cn_pricing" value="free">
295
  <div class="cn-pricing-info">
296
  <div class="cn-pricing-head">
297
  <h4>' . __( 'Basic', 'cookie-notice' ) . '</h4>
306
  <p class="cn-excluded"><span class="cn-icon"></span>' . __( '<b>Basic</b> Support', 'cookie-notice' ) . '</p>
307
  </div>
308
  <div class="cn-pricing-footer">
309
+ <button type="button" class="cn-btn cn-btn-outline">' . __( 'Start Basic', 'cookie-notice' ) . '</button>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
310
  </div>
311
  </div>
312
  </label>
313
+ <label class="cn-pricing-item cn-pricing-plan-pro" for="cn-pricing-plan-pro">
314
+ <input id="cn-pricing-plan-pro" type="radio" name="cn_pricing" value="pro">
315
  <div class="cn-pricing-info">
316
  <div class="cn-pricing-head">
317
+ <h4>' . __( 'Professional', 'cookie-notice' ) . '</h4>
318
+ <span class="cn-plan-pricing"><span class="cn-plan-price"><sup>$</sup><span class="cn-plan-amount">14.95</span></span> / <span class="cn-plan-period">' . __( 'monthly', 'cookie-notice' ) . '</span></span>
319
+ <span class="cn-plan-promo">' . __( 'Recommended', 'cookie-notice' ) . '</span>
320
+ <div class="cn-select-wrapper">
321
+ <select name="cn_pricing_plan" class="form-select" aria-label="' . __( 'Pricing options', 'df' ) . '" id="cn-pricing-plans">
322
+ <option value="compliance_monthly_notrial" data-price="' . $this->pricing_monthly['compliance_monthly_notrial'] . '">' . sprintf( _n( '%s domain license', '%s domains license', 1, 'cookie-notice' ), 1 ) . '</option>
323
+ <option value="compliance_monthly_5" data-price="' . $this->pricing_monthly['compliance_monthly_5'] . '">' . sprintf( _n( '%s domain license', '%s domains license', 5, 'cookie-notice' ), 5 ) . '</option>
324
+ <option value="compliance_monthly_10" data-price="' . $this->pricing_monthly['compliance_monthly_10'] . '">' . sprintf( _n( '%s domain license', '%s domains license', 10, 'cookie-notice' ), 10 ) . '</option>
325
+ <option value="compliance_monthly_20" data-price="' . $this->pricing_monthly['compliance_monthly_20'] . '">' . sprintf( _n( '%s domain license', '%s domains license', 20, 'cookie-notice' ), 20 ) . '</option>
326
+ </select>
327
+ </div>
328
  </div>
329
  <div class="cn-pricing-body">
330
  <p class="cn-included"><span class="cn-icon"></span>' . __( 'GDPR, CCPA, ePrivacy, PECR compliance', 'cookie-notice' ) . '</p>
335
  <p class="cn-included"><span class="cn-icon"></span>' . __( '<b>Premium</b> Support', 'cookie-notice' ) . '</p>
336
  </div>
337
  <div class="cn-pricing-footer">
338
+ <button type="button" class="cn-btn cn-btn-outline">' . __( 'Start Premium', 'cookie-notice' ) . '</button>
339
  </div>
340
  </div>
341
  </label>
567
  <div class="cn-form-feedback cn-hidden"></div>
568
  <div class="cn-field cn-field-radio">
569
  <div class="cn-radio-wrapper cn-plan-wrapper">
570
+ <label for="cn-field-plan-free" class="cn-pricing-plan-free"><input id="cn-field-plan-free" type="radio" name="plan" value="free" checked><span><span class="cn-plan-description">' . __( 'Basic', 'cookie-notice' ) . '</span><span class="cn-plan-pricing"><span class="cn-plan-price">Free</span></span><span class="cn-plan-overlay"></span></span></label>
571
+ <label for="cn-field-plan-pro" class="cn-pricing-plan-pro"><input id="cn-field-plan-pro" type="radio" name="plan" value="compliance_monthly_notrial"><span><span class="cn-plan-description">' . __( '<b>Professional</b>', 'cookie-notice' ) . ' - <span class="cn-plan-period">' . __( 'monthly', 'cookie-notice' ) . '</span></span><span class="cn-plan-pricing"><span class="cn-plan-price">$<span class="cn-plan-amount">14.95</span></span></span><span class="cn-plan-overlay"></span></span></label>
 
572
  </div>
573
  </div>
574
  <div class="cn-field cn-fieldset" id="cn_submit_free">
575
  <button type="submit" class="cn-btn cn-screen-button" tabindex="4" data-screen="4"><span class="cn-spinner"></span>' . __( 'Confirm', 'cookie-notice' ) . '</button>
576
  </div>
577
+ <div class="cn-field cn-fieldset cn-hidden" id="cn_submit_pro">
578
+ <input type="hidden" name="cn_payment_identifier" value="" />
579
  <div class="cn-field cn-field-radio">
580
  <label>' . __( 'Payment Method', 'cookie-notice' ) . '</label>
581
  <div class="cn-radio-wrapper cn-horizontal-wrapper">
669
  <div class="cn-form-feedback cn-hidden"></div>
670
  <div class="cn-field cn-field-radio">
671
  <div class="cn-radio-wrapper cn-plan-wrapper">
672
+ <label for="cn-field-plan-free" class="cn-pricing-plan-free"><input id="cn-field-plan-free" type="radio" name="plan" value="free" checked><span><span class="cn-plan-description">' . __( 'Basic', 'cookie-notice' ) . '</span><span class="cn-plan-pricing"><span class="cn-plan-price">Free</span></span><span class="cn-plan-overlay"></span></span></label>
673
+ <label for="cn-field-plan-pro" class="cn-pricing-plan-pro"><input id="cn-field-plan-pro" type="radio" name="plan" value="compliance_monthly_notrial"><span><span class="cn-plan-description">' . __( '<b>Professional</b>', 'cookie-notice' ) . ' - <span class="cn-plan-period">' . __( 'monthly', 'cookie-notice' ) . '</span></span><span class="cn-plan-pricing"><span class="cn-plan-price">$<span class="cn-plan-amount">14.95</span></span></span><span class="cn-plan-overlay"></span></span></label>
674
+ <label for="cn-field-plan-license" class="cn-pricing-plan-license cn-disabled">
675
+ <input id="cn-field-plan-license" type="radio" name="plan" value="license"><span><span class="cn-plan-description">' . __( 'Use License', 'cookie-notice' ) . '</span><span class="cn-plan-pricing"><span class="cn-plan-price"><span class="cn-plan-amount">0</span> ' . __( 'available', 'df' ) . '</span></span><span class="cn-plan-overlay"></span></span>
676
+ </label>
677
  </div>
678
  </div>
679
+
680
  <div class="cn-field cn-fieldset" id="cn_submit_free">
681
  <button type="submit" class="cn-btn cn-screen-button" tabindex="4" data-screen="4"><span class="cn-spinner"></span>' . __( 'Confirm', 'cookie-notice' ) . '</button>
682
  </div>
683
+
684
+ <div class="cn-field cn-fieldset cn-hidden" id="cn_submit_pro">
685
+ <input type="hidden" name="cn_payment_identifier" value="" />
686
  <div class="cn-field cn-field-radio">
687
  <label>' . __( 'Payment Method', 'cookie-notice' ) . '</label>
688
  <div class="cn-radio-wrapper cn-horizontal-wrapper">
711
  <div class="cn-fieldset" id="cn_payment_method_paypal" style="display: none;">
712
  <div id="cn_paypal_button"></div>
713
  </div>
714
+ </div>
715
+
716
+ <div class="cn-field cn-fieldset cn-hidden" id="cn_submit_license">
717
+ <div class="cn-field cn-field-select" id="cn-subscriptions-list">
718
+ <label for="cn-subscription-select">' . __( 'Select subscription', 'cookie-notice' ) . '​</label>
719
+ <select name="cn_subscription_id" class="form-select" aria-label="' . __( 'Licenses', 'df' ) . '" id="cn-subscription-select">
720
+ </select>
721
+ </div><br>
722
+ <button type="submit" class="cn-btn cn-screen-button" tabindex="4" data-screen="4"><span class="cn-spinner"></span>' . __( 'Confirm', 'cookie-notice' ) . '</button>
723
  </div>';
724
 
725
  $html .= wp_nonce_field( 'cn_api_payment', 'cn_payment_nonce', true, false );
js/admin-welcome.js CHANGED
@@ -36,11 +36,11 @@
36
 
37
  var btInitToken = function () {
38
  // payment screen?
39
- var payment = $( '.cn-sidebar form[data-action="payment"]' );
40
 
41
  // init braintree
42
- if ( payment.length ) {
43
- payment.addClass( 'cn-form-disabled' );
44
 
45
  if ( typeof braintree !== 'undefined' ) {
46
  return $.ajax( {
@@ -135,7 +135,7 @@
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;
@@ -155,6 +155,10 @@
155
  }
156
 
157
  hostedFieldsInstance.tokenize( function ( err, payload ) {
 
 
 
 
158
  if ( err ) {
159
  cnDisplayError( cnWelcomeArgs.error );
160
 
@@ -162,8 +166,9 @@
162
  } else {
163
  form.addClass( 'cn-payment-in-progress' );
164
  form.find( 'input[name="payment_nonce"]' ).val( payload.nonce );
 
165
 
166
- $( '#cn_submit_paid' ).find( '.cn-screen-button[data-screen="4"]' ).trigger( 'click' );
167
  }
168
  } );
169
 
@@ -210,13 +215,18 @@
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 ) {
@@ -256,10 +266,10 @@
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 = {
@@ -267,11 +277,11 @@
267
  nonce: cnWelcomeArgs.nonce
268
  };
269
 
270
- if ( $.inArray( screen, steps ) != -1 ) {
271
  var container = $( '.cn-welcome-wrap' );
272
 
273
  requestData.screen = screen;
274
- } else if ( $.inArray( screen, sidebars ) != -1 ) {
275
  var container = $( '.cn-sidebar' );
276
 
277
  requestData.screen = screen;
@@ -321,7 +331,7 @@
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
 
@@ -352,9 +362,9 @@
352
 
353
  // no form?
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
 
@@ -362,7 +372,7 @@
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
 
@@ -372,27 +382,87 @@
372
  }
373
  } );
374
 
375
- // console.log( form[0] );
376
- // console.log( formData );
377
- // console.log( formAction );
378
-
379
  // payment?
380
  if ( formAction === 'payment' ) {
381
- if ( formData.plan !== 'free' ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
382
  // only credit cards
383
  if ( $( form[0] ).find( 'input[name="payment_nonce"]' ).val() === '' ) {
384
  form.trigger( 'submit' );
385
 
386
  return false;
387
  }
388
- } else {
389
- // load screen
390
- cnWelcomeScreen( e );
391
-
392
- return false;
393
  }
 
 
394
  } else
395
  e.preventDefault();
 
 
 
 
396
 
397
  // get form and process it
398
  result = cnWelcomeForm( form );
@@ -415,6 +485,37 @@
415
  case 'login' :
416
  // register complete, go to success or billing
417
  case 'register' :
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
418
  var accountPlan = formData.hasOwnProperty( 'plan' ) ? formData.plan : 'free';
419
 
420
  // trigger payment
@@ -435,7 +536,7 @@
435
  case 'configure' :
436
  default :
437
  // load screen
438
- cnWelcomeScreen( e );
439
  break;
440
  }
441
  }
@@ -457,7 +558,7 @@
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 ) {
@@ -496,11 +597,11 @@
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() );
@@ -508,11 +609,11 @@
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() );
@@ -520,109 +621,185 @@
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' );
 
 
 
594
  } else {
595
  $( '#cn_submit_free' ).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' );
 
 
619
  } else {
620
  $( '#cn_submit_free' ).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
 
@@ -807,9 +984,9 @@
807
 
808
  $( document ).ready( function () {
809
  var welcome = false;
810
-
811
  welcome = cnGetUrlParam( 'welcome' );
812
-
813
  if ( welcome ) {
814
  // modal
815
  initModal();
@@ -828,7 +1005,7 @@
828
  parameterName,
829
  i;
830
 
831
- for ( i = 0; i < urlVars.length; i++ ) {
832
  parameterName = urlVars[i].split( '=' );
833
 
834
  if ( parameterName[0] === parameter ) {
36
 
37
  var btInitToken = function () {
38
  // payment screen?
39
+ var paymentEl = $( '.cn-sidebar form[data-action="payment"]' );
40
 
41
  // init braintree
42
+ if ( paymentEl.length ) {
43
+ paymentEl.addClass( 'cn-form-disabled' );
44
 
45
  if ( typeof braintree !== 'undefined' ) {
46
  return $.ajax( {
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;
155
  }
156
 
157
  hostedFieldsInstance.tokenize( function ( err, payload ) {
158
+
159
+ console.log( 'btHostedFieldsInstance' );
160
+ console.log( payload );
161
+
162
  if ( err ) {
163
  cnDisplayError( cnWelcomeArgs.error );
164
 
166
  } else {
167
  form.addClass( 'cn-payment-in-progress' );
168
  form.find( 'input[name="payment_nonce"]' ).val( payload.nonce );
169
+ form.find( 'input[name="cn_payment_identifier"]' ).val( payload.details.lastFour );
170
 
171
+ $( '#cn_submit_pro' ).find( '.cn-screen-button[data-screen="4"]' ).trigger( 'click' );
172
  }
173
  } );
174
 
215
  // console.log( 'onApprove' );
216
 
217
  return paypalCheckoutInstance.tokenizePayment( data ).then( function ( payload ) {
218
+
219
+ console.log( 'btPaypalCheckoutInstance' );
220
+ console.log( payload );
221
+
222
  form.addClass( 'cn-payment-in-progress' );
223
  form.find( 'input[name="payment_nonce"]' ).val( payload.nonce );
224
+ form.find( 'input[name="cn_payment_identifier"]' ).val( payload.details.email );
225
 
226
  // console.log( 'onApprove inside' );
227
+ // console.log( $( '#cn_submit_pro' ).find( '.cn-screen-button[data-screen="4"]' ) );
228
 
229
+ $( '#cn_submit_pro' ).find( '.cn-screen-button[data-screen="4"]' ).trigger( 'click' );
230
  } );
231
  },
232
  onCancel: function ( data ) {
266
  form.find( '.cn-form-feedback' ).html( '<p class="cn-error">' + message + '</p>' ).removeClass( 'cn-hidden' );
267
  }
268
 
269
+ var cnWelcomeScreen = function ( target ) {
270
+ var screen = $( target ).data( 'screen' );
271
+ var steps = [1, 2, 3, 4];
272
+ var sidebars = ['login', 'register', 'configure', 'payment'];
273
 
274
  // continue with screen loading
275
  var requestData = {
277
  nonce: cnWelcomeArgs.nonce
278
  };
279
 
280
+ if ( $.inArray( screen, steps ) != - 1 ) {
281
  var container = $( '.cn-welcome-wrap' );
282
 
283
  requestData.screen = screen;
284
+ } else if ( $.inArray( screen, sidebars ) != - 1 ) {
285
  var container = $( '.cn-sidebar' );
286
 
287
  requestData.screen = screen;
331
  $( form[0] ).serializeArray().map( function ( x ) {
332
  // exception for checkboxes
333
  if ( x.name === 'cn_laws' ) {
334
+ var arrayVal = typeof formData[x.name] !== 'undefined' ? formData[x.name] : [];
335
 
336
  arrayVal.push( x.value );
337
 
362
 
363
  // no form?
364
  if ( form.length === 0 )
365
+ return cnWelcomeScreen( e.target );
366
 
367
+ var formData = {};
368
  var formDataset = $( form[0] ).data();
369
  var formAction = formDataset.hasOwnProperty( 'action' ) ? formDataset.action : '';
370
 
372
  $( form[0] ).serializeArray().map( function ( x ) {
373
  // exception for checkboxes
374
  if ( x.name === 'cn_laws' ) {
375
+ var arrayVal = typeof formData[x.name] !== 'undefined' ? formData[x.name] : [];
376
 
377
  arrayVal.push( x.value );
378
 
382
  }
383
  } );
384
 
 
 
 
 
385
  // payment?
386
  if ( formAction === 'payment' ) {
387
+
388
+ // free
389
+ if ( formData.plan === 'free' ) {
390
+ // load screen
391
+ cnWelcomeScreen( e.target );
392
+
393
+ return false;
394
+ // licesne
395
+ } else if ( formData.plan === 'license' ) {
396
+ // payment screen?
397
+ var paymentEl = $( '.cn-sidebar form[data-action="payment"]' );
398
+
399
+ // disable form
400
+ if ( paymentEl.length )
401
+ paymentEl.addClass( 'cn-form-disabled' );
402
+
403
+ // get subscription ID
404
+ var subscriptionID = formData.hasOwnProperty( 'cn_subscription_id' ) ? parseInt( formData.cn_subscription_id ) : 0;
405
+
406
+ // assign license request
407
+ result = $.ajax( {
408
+ url: cnWelcomeArgs.ajaxURL,
409
+ type: 'POST',
410
+ dataType: 'json',
411
+ data: {
412
+ action: 'cn_api_request',
413
+ request: 'use_license',
414
+ subscriptionID: subscriptionID,
415
+ nonce: cnWelcomeArgs.nonce
416
+ }
417
+ } );
418
+
419
+ // process license
420
+ result.done( function ( response ) {
421
+ // error
422
+ if ( response.hasOwnProperty( 'error' ) ) {
423
+ cnDisplayError( response.error, $( form[0] ) );
424
+
425
+ // console.log( response.error );
426
+
427
+ return false;
428
+ // message
429
+ } else {
430
+ var targetEl = $( '#cn_submit_license' ).find( '.cn-screen-button[data-screen="4"]' );
431
+
432
+ // open next screen
433
+ cnWelcomeScreen( targetEl );
434
+
435
+ return result;
436
+ }
437
+ } );
438
+
439
+ // remove spinner
440
+ result.always( function ( response ) {
441
+ if ( $( e.target ).find( '.cn-spinner' ).length )
442
+ $( e.target ).find( '.cn-spinner' ).removeClass( 'spin' );
443
+
444
+ // enable form
445
+ if ( paymentEl.length )
446
+ paymentEl.removeClass( 'cn-form-disabled' );
447
+ } );
448
+
449
+ // pro
450
+ } else {
451
  // only credit cards
452
  if ( $( form[0] ).find( 'input[name="payment_nonce"]' ).val() === '' ) {
453
  form.trigger( 'submit' );
454
 
455
  return false;
456
  }
 
 
 
 
 
457
  }
458
+
459
+ // other forms
460
  } else
461
  e.preventDefault();
462
+
463
+ // break here on license payment
464
+ if ( formAction === 'payment' && formData.plan === 'license' )
465
+ return result;
466
 
467
  // get form and process it
468
  result = cnWelcomeForm( form );
485
  case 'login' :
486
  // register complete, go to success or billing
487
  case 'register' :
488
+
489
+ // if there are any subscriptions
490
+ if ( response.hasOwnProperty( 'subscriptions' ) ) {
491
+ var subscriptions = response.subscriptions;
492
+
493
+ if ( subscriptions.length > 0 ) {
494
+ var available = 0;
495
+
496
+ for ( i = 0; i < subscriptions.length; i ++ ) {
497
+ var subscriptionID = subscriptions[i].subscriptionid;
498
+ var licensesAvailable = parseInt( subscriptions[i].availablelicense );
499
+ var subscriptionText = subscriptions[i].VendorSubscriptionID + ' - ' + licensesAvailable + ' ' + cnWelcomeArgs.licensesAvailable;
500
+
501
+ var subscriptionOption = $( '<option value="' + subscriptionID + '">' + subscriptionText + '</option>' );
502
+
503
+ if ( licensesAvailable == 0 ) {
504
+ $( subscriptionOption ).attr( 'disabled', 'true');
505
+ }
506
+
507
+ $( '#cn-subscription-select' ).append( subscriptionOption );
508
+
509
+ available += licensesAvailable;
510
+ }
511
+
512
+ if ( available > 0 ) {
513
+ $( '.cn-pricing-plan-license' ).removeClass( 'cn-disabled' );
514
+ $( '.cn-pricing-plan-license' ).find( '.cn-plan-amount' ).text( available );
515
+ }
516
+ }
517
+ }
518
+
519
  var accountPlan = formData.hasOwnProperty( 'plan' ) ? formData.plan : 'free';
520
 
521
  // trigger payment
536
  case 'configure' :
537
  default :
538
  // load screen
539
+ cnWelcomeScreen( e.target );
540
  break;
541
  }
542
  }
558
 
559
  //
560
  $( document ).on( 'screen-loaded', function () {
561
+ var configureFields = $( '#cn-form-configure' ).serializeArray() || [];
562
  var frame = window.frames[ 'cn_iframe_id' ];
563
 
564
  if ( configureFields.length > 0 ) {
597
  var val = $( this ).val();
598
  var frame = window.frames['cn_iframe_id'];
599
 
600
+ frame.contentWindow.postMessage( {call: 'position', value: val} );
601
  } );
602
+
603
  $( document ).on( 'change', 'input[name="cn_laws"]', function () {
604
+ var val = [];
605
 
606
  $( 'input[name="cn_laws"]:checked' ).each( function () {
607
  val.push( $( this ).val() );
609
 
610
  var frame = window.frames['cn_iframe_id'];
611
 
612
+ frame.contentWindow.postMessage( {call: 'laws', value: val} );
613
  } );
614
+
615
  $( document ).on( 'change', 'input[name="cn_naming"]', function () {
616
+ var val = [];
617
 
618
  $( 'input[name="cn_naming"]:checked' ).each( function () {
619
  val.push( $( this ).val() );
621
 
622
  var frame = window.frames['cn_iframe_id'];
623
 
624
+ frame.contentWindow.postMessage( {call: 'naming', value: val} );
625
  } );
626
+
627
  $( document ).on( 'change', 'input[name="cn_privacy_paper"]', function () {
628
  var val = $( this ).prop( 'checked' );
629
  var frame = window.frames['cn_iframe_id'];
630
 
631
+ frame.contentWindow.postMessage( {call: 'privacy_paper', value: val} );
632
  } );
633
 
634
  $( document ).on( 'change', 'input[name="cn_privacy_contact"]', function () {
635
  var val = $( this ).prop( 'checked' );
636
  var frame = window.frames['cn_iframe_id'];
637
 
638
+ frame.contentWindow.postMessage( {call: 'privacy_contact', value: val} );
639
  } );
640
 
641
  $( document ).on( 'change', 'input[name="cn_color_primary"]', function () {
642
  var val = $( this ).val();
643
  var frame = window.frames['cn_iframe_id'];
644
 
645
+ frame.contentWindow.postMessage( {call: 'color_primary', value: val} );
646
  } );
647
 
648
  $( document ).on( 'change', 'input[name="cn_color_background"]', function () {
649
  var val = $( this ).val();
650
  var frame = window.frames['cn_iframe_id'];
651
 
652
+ frame.contentWindow.postMessage( {call: 'color_background', value: val} );
653
  } );
654
 
655
  $( document ).on( 'change', 'input[name="cn_color_border"]', function () {
656
  var val = $( this ).val();
657
  var frame = window.frames['cn_iframe_id'];
658
 
659
+ frame.contentWindow.postMessage( {call: 'color_border', value: val} );
660
  } );
661
 
662
  $( document ).on( 'change', 'input[name="cn_color_text"]', function () {
663
  var val = $( this ).val();
664
  var frame = window.frames['cn_iframe_id'];
665
 
666
+ frame.contentWindow.postMessage( {call: 'color_text', value: val} );
667
  } );
668
 
669
  $( document ).on( 'change', 'input[name="cn_color_heading"]', function () {
670
  var val = $( this ).val();
671
  var frame = window.frames['cn_iframe_id'];
672
 
673
+ frame.contentWindow.postMessage( {call: 'color_heading', value: val} );
674
  } );
675
 
676
  $( document ).on( 'change', 'input[name="cn_color_button_text"]', function () {
677
  var val = $( this ).val();
678
  var frame = window.frames['cn_iframe_id'];
679
 
680
+ frame.contentWindow.postMessage( {call: 'color_button_text', value: val} );
681
  } );
682
 
683
+ // handle monthly / yearly payment plan
684
+ $( document ).on( 'change', 'input[name="cn_pricing_type"]', function () {
685
+ // pricing plans
686
+ var plansMonthly = cnWelcomeArgs.pricingMonthly;
687
+ var plansYearly = cnWelcomeArgs.pricingYearly;
688
+
689
+ var pricingOptions = $( '#cn-pricing-plans option' );
690
+ var checked = $( 'input[name="cn_pricing_type"]:checked' ).val();
691
+
692
+ var names = Object.keys( checked === 'yearly' ? plansYearly : plansMonthly );
693
+ var pricing = Object.values( checked === 'yearly' ? plansYearly : plansMonthly );
694
+
695
+ if ( checked === 'yearly' ) {
696
+ $( '.cn-plan-period' ).text( cnWelcomeArgs.paidYear );
697
+ } else {
698
+ $( '.cn-plan-period' ).text( cnWelcomeArgs.paidMonth );
699
+ }
700
+
701
+ // replace options
702
+ var i = 0;
703
+
704
+ for ( var property in pricing ) {
705
+ var option = pricingOptions[i];
706
+
707
+ // console.log( option );
708
+
709
+ $( option ).val( names[i] );
710
+ $( option ).attr( 'data-price', pricing[i] );
711
+ i ++;
712
+ }
713
+
714
+ // trigger plan selection
715
+ $( 'select[name="cn_pricing_plan"]' ).trigger( 'change' );
716
+
717
+ } );
718
+
719
+ // handle pro plan selection
720
+ $( document ).on( 'change', 'select[name="cn_pricing_plan"]', function () {
721
+ var el = $( '#cn-pricing-plans' );
722
+ var selected = $( el ).find( 'option:selected' );
723
+
724
+ // update price
725
+ $( '.cn-pricing-plan-pro .cn-plan-amount' ).text( $( selected ).attr( 'data-price' ) );
726
+
727
+ var availablePlans = ['free'];
728
+
729
+ // merge with pro plans
730
+ availablePlans = availablePlans.concat( Object.keys( cnWelcomeArgs.pricingMonthly ) );
731
+ availablePlans = availablePlans.concat( Object.keys( cnWelcomeArgs.pricingYearly ) );
732
 
733
  var input = $( this ),
734
  inputVal = input.val();
735
 
736
+ inputVal = availablePlans.indexOf( inputVal ) != - 1 ? inputVal : 'free';
737
+
738
+ // console.log( inputVal );
739
 
740
  if ( inputVal === 'free' ) {
741
  $( '#cn_submit_free' ).removeClass( 'cn-hidden' );
742
+ $( '#cn_submit_pro' ).addClass( 'cn-hidden' );
743
+
744
+ $( document ).find( '#cn-field-plan-free' ).prop( 'checked', true );
745
+ $( document ).find( '#cn-pricing-plan-free' ).prop( 'checked', true );
746
  } else {
747
  $( '#cn_submit_free' ).addClass( 'cn-hidden' );
748
+ $( '#cn_submit_pro' ).removeClass( 'cn-hidden' );
749
+
750
+ $( document ).find( '#cn-field-plan-pro' ).val( inputVal ).prop( 'checked', true );
751
+ $( document ).find( '#cn-pricing-plan-pro' ).prop( 'checked', true );
752
  }
753
+ } );
754
 
755
+ // handle free / pro / license selection
756
+ $( document ).on( 'change', 'input[name="plan"]', function () {
757
+ var input = $( this ),
758
+ inputVal = input.val();
759
+
760
+ if ( inputVal === 'free' ) {
761
+ $( '#cn_submit_free' ).removeClass( 'cn-hidden' );
762
+ $( '#cn_submit_pro' ).addClass( 'cn-hidden' );
763
+ $( '#cn_submit_license' ).addClass( 'cn-hidden' );
764
+
765
+ $( document ).find( '#cn-pricing-plan-free' ).prop( 'checked', true );
766
+ } else if ( inputVal === 'license' ) {
767
+ $( '#cn_submit_free' ).addClass( 'cn-hidden' );
768
+ $( '#cn_submit_pro' ).addClass( 'cn-hidden' );
769
+ $( '#cn_submit_license' ).removeClass( 'cn-hidden' );
770
+
771
+ $( document ).find( '#cn-pricing-plan-free' ).prop( 'checked', false );
772
+ $( document ).find( '#cn-pricing-plan-pro' ).prop( 'checked', false );
773
+ } else {
774
+ $( '#cn_submit_free' ).addClass( 'cn-hidden' );
775
+ $( '#cn_submit_pro' ).removeClass( 'cn-hidden' );
776
+ $( '#cn_submit_license' ).addClass( 'cn-hidden' );
777
+
778
+ $( document ).find( '#cn-pricing-plan-pro' ).prop( 'checked', true );
779
+ }
780
  } );
781
 
782
  // highlight form
783
+ $( document ).on( 'click', 'input[name="cn_pricing"]', function () {
784
  $( '.cn-accordion .cn-accordion-item:first-child:not(.cn-collapsed)' ).focus();
785
  } );
786
 
787
+ // select plan payment
788
+ $( document ).on( 'change', 'input[name="cn_pricing"]', function () {
 
 
789
  var input = $( this ),
790
  inputVal = input.val();
791
 
 
 
792
  if ( inputVal === 'free' ) {
793
  $( '#cn_submit_free' ).removeClass( 'cn-hidden' );
794
+ $( '#cn_submit_pro' ).addClass( 'cn-hidden' );
795
+
796
+ $( document ).find( '#cn-field-plan-free' ).prop( 'checked', true );
797
  } else {
798
  $( '#cn_submit_free' ).addClass( 'cn-hidden' );
799
+ $( '#cn_submit_pro' ).removeClass( 'cn-hidden' );
 
 
 
800
 
801
+ $( document ).find( '#cn-field-plan-pro' ).prop( 'checked', true );
802
+ }
803
 
804
  } );
805
 
984
 
985
  $( document ).ready( function () {
986
  var welcome = false;
987
+
988
  welcome = cnGetUrlParam( 'welcome' );
989
+
990
  if ( welcome ) {
991
  // modal
992
  initModal();
1005
  parameterName,
1006
  i;
1007
 
1008
+ for ( i = 0; i < urlVars.length; i ++ ) {
1009
  parameterName = urlVars[i].split( '=' );
1010
 
1011
  if ( parameterName[0] === parameter ) {
languages/cookie-notice.pot CHANGED
@@ -2,7 +2,7 @@
2
  msgid ""
3
  msgstr ""
4
  "Project-Id-Version: Cookie Notice\n"
5
- "POT-Creation-Date: 2022-03-01 17:10+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"
@@ -40,7 +40,7 @@ msgstr ""
40
  msgid "Settings"
41
  msgstr ""
42
 
43
- #: ../cookie-notice.php:564 ../includes/settings.php:217
44
  msgid "Free Upgrade"
45
  msgstr ""
46
 
@@ -174,11 +174,11 @@ msgstr ""
174
  msgid "Days to go: %s"
175
  msgstr ""
176
 
177
- #: ../includes/settings.php:48 ../includes/welcome.php:456
178
  msgid "Top"
179
  msgstr ""
180
 
181
- #: ../includes/settings.php:49 ../includes/welcome.php:455
182
  msgid "Bottom"
183
  msgstr ""
184
 
@@ -214,7 +214,7 @@ msgstr ""
214
  msgid "Banner"
215
  msgstr ""
216
 
217
- #: ../includes/settings.php:75 ../includes/settings.php:298
218
  msgid "Message"
219
  msgstr ""
220
 
@@ -319,7 +319,7 @@ msgid "Save my preferences"
319
  msgstr ""
320
 
321
  #: ../includes/settings.php:132 ../includes/settings.php:153
322
- #: ../includes/settings.php:300
323
  msgid "Privacy policy"
324
  msgstr ""
325
 
@@ -351,7 +351,7 @@ msgstr ""
351
  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."
352
  msgstr ""
353
 
354
- #: ../includes/settings.php:143 ../includes/welcome.php:284
355
  msgid "month"
356
  msgstr ""
357
 
@@ -375,11 +375,11 @@ msgstr ""
375
  msgid "You can revoke your consent any time using the Revoke consent button."
376
  msgstr ""
377
 
378
- #: ../includes/settings.php:152 ../includes/settings.php:302
379
  msgid "Revoke consent"
380
  msgstr ""
381
 
382
- #: ../includes/settings.php:188 ../includes/welcome.php:379
383
  msgid "Cookie Notice"
384
  msgstr ""
385
 
@@ -395,8 +395,8 @@ msgstr ""
395
  msgid "Promote the privacy of your website visitors without affecting how you do your business."
396
  msgstr ""
397
 
398
- #: ../includes/settings.php:212 ../includes/welcome.php:170
399
- #: ../includes/welcome.php:211
400
  msgid "The next generation of Cookie Notice"
401
  msgstr ""
402
 
@@ -404,6 +404,10 @@ msgstr ""
404
  msgid "A free web application to help you deliver better consent experiences and comply with GDPR, CCPA and other data privacy laws more effectively."
405
  msgstr ""
406
 
 
 
 
 
407
  #: ../includes/settings.php:228
408
  msgid "F.A.Q."
409
  msgstr ""
@@ -432,780 +436,828 @@ msgstr ""
432
  msgid "Yes, but with limits. Cookie Compliance includes both free and paid plans to choose from depending on your needs and your website monthly traffic."
433
  msgstr ""
434
 
435
- #: ../includes/settings.php:260
 
 
 
 
 
 
 
 
436
  msgid "Reset to defaults"
437
  msgstr ""
438
 
439
- #: ../includes/settings.php:278 ../includes/settings.php:292
440
  msgid "Compliance Settings"
441
  msgstr ""
442
 
443
- #: ../includes/settings.php:279 ../includes/settings.php:293
444
  msgid "Compliance status"
445
  msgstr ""
446
 
447
- #: ../includes/settings.php:280 ../includes/settings.php:294
448
  msgid "App ID"
449
  msgstr ""
450
 
451
- #: ../includes/settings.php:281 ../includes/settings.php:295
452
  msgid "App Key"
453
  msgstr ""
454
 
455
- #: ../includes/settings.php:283
456
  msgid "Miscellaneous Settings"
457
  msgstr ""
458
 
459
- #: ../includes/settings.php:284 ../includes/settings.php:340
460
- #: ../includes/settings.php:355 ../includes/settings.php:370
461
- #: ../includes/welcome.php:380
462
  msgid "Autoblocking"
463
  msgstr ""
464
 
465
- #: ../includes/settings.php:285
466
  msgid "Hide for logged in"
467
  msgstr ""
468
 
469
- #: ../includes/settings.php:286
470
  msgid "Cache"
471
  msgstr ""
472
 
473
- #: ../includes/settings.php:287 ../includes/settings.php:309
474
  msgid "Script placement"
475
  msgstr ""
476
 
477
- #: ../includes/settings.php:288 ../includes/settings.php:310
478
  msgid "Deactivation"
479
  msgstr ""
480
 
481
- #: ../includes/settings.php:297
482
  msgid "Notice Settings"
483
  msgstr ""
484
 
485
- #: ../includes/settings.php:299
486
  msgid "Button text"
487
  msgstr ""
488
 
489
- #: ../includes/settings.php:301
490
  msgid "Refuse consent"
491
  msgstr ""
492
 
493
- #: ../includes/settings.php:303
494
  msgid "Script blocking"
495
  msgstr ""
496
 
497
- #: ../includes/settings.php:304
498
  msgid "Reloading"
499
  msgstr ""
500
 
501
- #: ../includes/settings.php:305
502
  msgid "On scroll"
503
  msgstr ""
504
 
505
- #: ../includes/settings.php:306
506
  msgid "On click"
507
  msgstr ""
508
 
509
- #: ../includes/settings.php:307
510
  msgid "Accepted expiry"
511
  msgstr ""
512
 
513
- #: ../includes/settings.php:308
514
  msgid "Rejected expiry"
515
  msgstr ""
516
 
517
- #: ../includes/settings.php:313
518
  msgid "Notice Design"
519
  msgstr ""
520
 
521
- #: ../includes/settings.php:314
522
  msgid "Position"
523
  msgstr ""
524
 
525
- #: ../includes/settings.php:315
526
  msgid "Animation"
527
  msgstr ""
528
 
529
- #: ../includes/settings.php:316
530
  msgid "Colors"
531
  msgstr ""
532
 
533
- #: ../includes/settings.php:317
534
  msgid "Button class"
535
  msgstr ""
536
 
537
- #: ../includes/settings.php:339 ../includes/settings.php:354
538
- #: ../includes/settings.php:369
539
  msgid "Notice"
540
  msgstr ""
541
 
542
- #: ../includes/settings.php:339 ../includes/settings.php:340
543
- #: ../includes/settings.php:341 ../includes/settings.php:342
544
- #: ../includes/settings.php:354 ../includes/settings.php:369
545
  msgid "Active"
546
  msgstr ""
547
 
548
- #: ../includes/settings.php:341 ../includes/settings.php:356
549
- #: ../includes/settings.php:371 ../includes/welcome.php:381
550
  msgid "Cookie Categories"
551
  msgstr ""
552
 
553
- #: ../includes/settings.php:342 ../includes/settings.php:357
554
- #: ../includes/settings.php:372 ../includes/welcome.php:382
555
  msgid "Proof-of-Consent"
556
  msgstr ""
557
 
558
- #: ../includes/settings.php:345
559
  msgid "Log in & Configure"
560
  msgstr ""
561
 
562
- #: ../includes/settings.php:346
563
  msgid "Log into the Cookie Compliance&trade; web application and configure your Privacy Experience."
564
  msgstr ""
565
 
566
- #: ../includes/settings.php:355 ../includes/settings.php:356
567
- #: ../includes/settings.php:357
568
  msgid "Pending"
569
  msgstr ""
570
 
571
- #: ../includes/settings.php:360
572
  msgid "Log in & configure"
573
  msgstr ""
574
 
575
- #: ../includes/settings.php:361
576
  msgid "Log into the Cookie Compliance&trade; web application and complete the setup process."
577
  msgstr ""
578
 
579
- #: ../includes/settings.php:370 ../includes/settings.php:371
580
- #: ../includes/settings.php:372
581
  msgid "Inactive"
582
  msgstr ""
583
 
584
- #: ../includes/settings.php:375
585
  msgid "Add Compliance features"
586
  msgstr ""
587
 
588
- #: ../includes/settings.php:376
589
  msgid "Sign up to Cookie Compliance&trade; and add GDPR, CCPA and other international data privacy laws compliance features."
590
  msgstr ""
591
 
592
- #: ../includes/settings.php:391
593
  msgid "Enter your Cookie Compliance&trade; application ID."
594
  msgstr ""
595
 
596
- #: ../includes/settings.php:403
597
  msgid "Enter your Cookie Compliance&trade; application secret key."
598
  msgstr ""
599
 
600
- #: ../includes/settings.php:413
601
  msgid "Enable to automatically block 3rd party scripts before user consent."
602
  msgstr ""
603
 
604
- #: ../includes/settings.php:414
605
  msgid "In case you're experiencing issues with your site disable that feature temporarily."
606
  msgstr ""
607
 
608
- #: ../includes/settings.php:425
609
  msgid "Purge Cache"
610
  msgstr ""
611
 
612
- #: ../includes/settings.php:427
613
  msgid "Click the Purge Cache button to refresh the app configuration."
614
  msgstr ""
615
 
616
- #: ../includes/settings.php:437
617
  msgid "Enable to hide the consent banner for logged in users."
618
  msgstr ""
619
 
620
- #: ../includes/settings.php:448
621
  msgid "Enter the cookie notice message."
622
  msgstr ""
623
 
624
- #: ../includes/settings.php:459
625
  msgid "The text of the option to accept the notice and make it disappear."
626
  msgstr ""
627
 
628
- #: ../includes/settings.php:469
629
  msgid "Enable to give to the user the possibility to refuse third party non functional cookies."
630
  msgstr ""
631
 
632
- #: ../includes/settings.php:473
633
  msgid "The text of the button to refuse the consent."
634
  msgstr ""
635
 
636
- #: ../includes/settings.php:491
637
  msgid "Head"
638
  msgstr ""
639
 
640
- #: ../includes/settings.php:492
641
  msgid "Body"
642
  msgstr ""
643
 
644
- #: ../includes/settings.php:495
645
  msgid "The code to be used in your site header, before the closing head tag."
646
  msgstr ""
647
 
648
- #: ../includes/settings.php:499
649
  msgid "The code to be used in your site footer, before the closing body tag."
650
  msgstr ""
651
 
652
- #: ../includes/settings.php:503
653
  msgid "Enter non functional cookies Javascript code here (for e.g. Google Analitycs) to be used after the notice is accepted."
654
  msgstr ""
655
 
656
- #: ../includes/settings.php:503
657
  msgid "To get the user consent status use the <code>cn_cookies_accepted()</code> function."
658
  msgstr ""
659
 
660
- #: ../includes/settings.php:514
661
  msgid "Enable to give to the user the possibility to revoke their consent <i>(requires \"Refuse consent\" option enabled)</i>."
662
  msgstr ""
663
 
664
- #: ../includes/settings.php:517
665
  msgid "Enter the revoke message."
666
  msgstr ""
667
 
668
- #: ../includes/settings.php:519
669
  msgid "The text of the button to revoke the consent."
670
  msgstr ""
671
 
672
- #: ../includes/settings.php:527
673
  msgid "Select the method for displaying the revoke button - automatic (in the banner) or manual using <code>[cookies_revoke]</code> shortcode."
674
  msgstr ""
675
 
676
- #: ../includes/settings.php:538
677
  msgid "Enable to reload the page after the notice is accepted."
678
  msgstr ""
679
 
680
- #: ../includes/settings.php:561
681
  msgid "Enable privacy policy link."
682
  msgstr ""
683
 
684
- #: ../includes/settings.php:564
685
  msgid "The text of the privacy policy button."
686
  msgstr ""
687
 
688
- #: ../includes/settings.php:576
689
  msgid "Select where to redirect user for more information."
690
  msgstr ""
691
 
692
- #: ../includes/settings.php:579
693
  msgid "-- select page --"
694
  msgstr ""
695
 
696
- #: ../includes/settings.php:590
697
  msgid "Select from one of your site's pages."
698
  msgstr ""
699
 
700
- #: ../includes/settings.php:596
701
  msgid "Synchronize with WordPress Privacy Policy page."
702
  msgstr ""
703
 
704
- #: ../includes/settings.php:603
705
  msgid "Enter the full URL starting with http(s)://"
706
  msgstr ""
707
 
708
- #: ../includes/settings.php:646
709
  msgid "The amount of time that the cookie should be stored for when user accepts the notice."
710
  msgstr ""
711
 
712
- #: ../includes/settings.php:669
713
  msgid "The amount of time that the cookie should be stored for when the user doesn't accept the notice."
714
  msgstr ""
715
 
716
- #: ../includes/settings.php:687
717
  msgid "Select where all the plugin scripts should be placed."
718
  msgstr ""
719
 
720
- #: ../includes/settings.php:707
721
  msgid "Select location for the notice."
722
  msgstr ""
723
 
724
- #: ../includes/settings.php:728
725
  msgid "Select the animation style."
726
  msgstr ""
727
 
728
- #: ../includes/settings.php:739
729
  msgid "Enable to accept the notice when user scrolls."
730
  msgstr ""
731
 
732
- #: ../includes/settings.php:742
733
  msgid "Number of pixels user has to scroll to accept the notice and make it disappear."
734
  msgstr ""
735
 
736
- #: ../includes/settings.php:753
737
  msgid "Enable to accept the notice on any click on the page."
738
  msgstr ""
739
 
740
- #: ../includes/settings.php:763
741
  msgid "Enable if you want all plugin data to be deleted on deactivation."
742
  msgstr ""
743
 
744
- #: ../includes/settings.php:775
745
  msgid "Enter additional button CSS classes separated by spaces."
746
  msgstr ""
747
 
748
- #: ../includes/settings.php:799
749
  msgid "Bar opacity"
750
  msgstr ""
751
 
752
- #: ../includes/settings.php:941
753
  msgid "Settings saved."
754
  msgstr ""
755
 
756
- #: ../includes/settings.php:948
757
  msgid "Settings restored to defaults."
758
  msgstr ""
759
 
760
- #: ../includes/settings.php:973
761
  msgid "Are you sure you want to reset these settings to defaults?"
762
  msgstr ""
763
 
764
  #: ../includes/welcome-api.php:37 ../includes/welcome-api.php:40
765
  #: ../includes/welcome-api.php:43 ../includes/welcome-api.php:46
766
- #: ../includes/welcome.php:139 ../includes/welcome.php:149
767
- #: ../includes/welcome.php:152
768
  msgid "You do not have permission to access this page."
769
  msgstr ""
770
 
771
- #: ../includes/welcome-api.php:77 ../includes/welcome-api.php:210
772
- #: ../includes/welcome-api.php:249 ../includes/welcome-api.php:375
773
- #: ../includes/welcome-api.php:448 ../includes/welcome-api.php:860
774
- #: ../includes/welcome.php:49
775
  msgid "Unexpected error occurred. Please try again later."
776
  msgstr ""
777
 
778
- #: ../includes/welcome-api.php:93
779
  msgid "Empty plan or payment method data."
780
  msgstr ""
781
 
782
- #: ../includes/welcome-api.php:122
783
  msgid "Unable to create customer data."
784
  msgstr ""
785
 
786
- #: ../includes/welcome-api.php:152
 
 
 
 
 
 
 
 
 
 
 
 
787
  msgid "Please accept the Terms of Service to proceed."
788
  msgstr ""
789
 
790
- #: ../includes/welcome-api.php:157 ../includes/welcome-api.php:346
791
  msgid "Email is not allowed to be empty."
792
  msgstr ""
793
 
794
- #: ../includes/welcome-api.php:162 ../includes/welcome-api.php:351
795
  msgid "Password is not allowed to be empty."
796
  msgstr ""
797
 
798
- #: ../includes/welcome-api.php:167
799
  msgid "Passwords do not match."
800
  msgstr ""
801
 
802
- #: ../includes/welcome.php:50
803
  msgid "Passed"
804
  msgstr ""
805
 
806
- #: ../includes/welcome.php:51
807
  msgid "Failed"
808
  msgstr ""
809
 
810
- #: ../includes/welcome.php:53
 
 
 
 
 
 
 
 
 
811
  msgid "<em>Compliance Failed!</em>Your website does not achieve minimum viable compliance. <b><a href=\"#\" class=\"cn-sign-up\">Sign up to Cookie Compliance</a></b> to bring your site into compliance with the latest data privacy rules and regulations."
812
  msgstr ""
813
 
814
- #: ../includes/welcome.php:54
815
  msgid "<em>Compliance Passed!</em>Congratulations. Your website meets minimum viable compliance."
816
  msgstr ""
817
 
818
- #: ../includes/welcome.php:55
 
 
 
 
819
  msgid "Please fill all the required fields."
820
  msgstr ""
821
 
822
- #: ../includes/welcome.php:172
823
  msgid "Cookie Compliance is a free web application that enables websites to take a proactive approach to data protection and consent laws."
824
  msgstr ""
825
 
826
- #: ../includes/welcome.php:178
827
  msgid "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."
828
  msgstr ""
829
 
830
- #: ../includes/welcome.php:179
831
  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."
832
  msgstr ""
833
 
834
- #: ../includes/welcome.php:183
835
  msgid "Sign up to Cookie Compliance"
836
  msgstr ""
837
 
838
- #: ../includes/welcome.php:184
839
  msgid "Skip for now"
840
  msgstr ""
841
 
842
- #: ../includes/welcome.php:213
843
  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."
844
  msgstr ""
845
 
846
- #: ../includes/welcome.php:257
847
  msgid "Compliance Plans"
848
  msgstr ""
849
 
850
- #: ../includes/welcome.php:263 ../includes/welcome.php:548
851
- #: ../includes/welcome.php:650
 
 
 
 
 
 
 
 
 
 
 
 
852
  msgid "Basic"
853
  msgstr ""
854
 
855
- #: ../includes/welcome.php:264
856
  msgid "Free"
857
  msgstr ""
858
 
859
- #: ../includes/welcome.php:267 ../includes/welcome.php:287
860
- #: ../includes/welcome.php:308
861
  msgid "GDPR, CCPA, ePrivacy, PECR compliance"
862
  msgstr ""
863
 
864
- #: ../includes/welcome.php:268 ../includes/welcome.php:288
865
- #: ../includes/welcome.php:309
866
  msgid "Consent Analytics Dashboard"
867
  msgstr ""
868
 
869
- #: ../includes/welcome.php:269
870
  msgid "<b>1,000</b> visits / month"
871
  msgstr ""
872
 
873
- #: ../includes/welcome.php:270
874
  msgid "<b>30 days</b> consent storage"
875
  msgstr ""
876
 
877
- #: ../includes/welcome.php:271
878
  msgid "<b>1 additional</b> language"
879
  msgstr ""
880
 
881
- #: ../includes/welcome.php:272
882
  msgid "<b>Basic</b> Support"
883
  msgstr ""
884
 
885
- #: ../includes/welcome.php:275 ../includes/welcome.php:295
886
- #: ../includes/welcome.php:316 ../includes/welcome.php:542
887
- #: ../includes/welcome.php:644
888
- msgid "Select Plan"
889
  msgstr ""
890
 
891
- #: ../includes/welcome.php:283
892
- msgid "Professional Monthly"
893
  msgstr ""
894
 
895
- #: ../includes/welcome.php:289 ../includes/welcome.php:310
896
- msgid "<b>Unlimited</b> visits"
897
  msgstr ""
898
 
899
- #: ../includes/welcome.php:290 ../includes/welcome.php:311
900
- msgid "<b>Lifetime</b> consent storage"
901
  msgstr ""
902
 
903
- #: ../includes/welcome.php:291 ../includes/welcome.php:312
904
- msgid "<b>Unlimited</b> languages"
 
 
905
  msgstr ""
906
 
907
- #: ../includes/welcome.php:292
908
- msgid "<b>Regular</b> Support"
909
  msgstr ""
910
 
911
- #: ../includes/welcome.php:303
912
- msgid "Professional Yearly"
913
  msgstr ""
914
 
915
- #: ../includes/welcome.php:304
916
- msgid "year"
917
  msgstr ""
918
 
919
- #: ../includes/welcome.php:305
920
- msgid "Best Value"
921
  msgstr ""
922
 
923
- #: ../includes/welcome.php:313
924
- msgid "<b>Premium</b> Support"
925
  msgstr ""
926
 
927
- #: ../includes/welcome.php:322
928
  msgid "I don’t want to create an account now"
929
  msgstr ""
930
 
931
- #: ../includes/welcome.php:338
932
  msgid "Congratulations"
933
  msgstr ""
934
 
935
- #: ../includes/welcome.php:339
936
  msgid "You are now promoting privacy with Hu-manity.co"
937
  msgstr ""
938
 
939
- #: ../includes/welcome.php:341
940
  msgid "Log in to your Cookie Compliance&trade; account and continue configuring your Privacy Experience."
941
  msgstr ""
942
 
943
- #: ../includes/welcome.php:344
944
  msgid "Go to Application"
945
  msgstr ""
946
 
947
- #: ../includes/welcome.php:369
948
  msgid "Compliance check"
949
  msgstr ""
950
 
951
- #: ../includes/welcome.php:370
952
  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."
953
  msgstr ""
954
 
955
- #: ../includes/welcome.php:372
956
  msgid "Site URL"
957
  msgstr ""
958
 
959
- #: ../includes/welcome.php:373
960
  msgid "Site Name"
961
  msgstr ""
962
 
963
- #: ../includes/welcome.php:376
964
  msgid "Checking..."
965
  msgstr ""
966
 
967
- #: ../includes/welcome.php:379
968
  msgid "Notifies visitors that site uses cookies."
969
  msgstr ""
970
 
971
- #: ../includes/welcome.php:380
972
  msgid "Non-essential cookies blocked until consent is registered."
973
  msgstr ""
974
 
975
- #: ../includes/welcome.php:381
976
  msgid "Separate consent requested per purpose of use."
977
  msgstr ""
978
 
979
- #: ../includes/welcome.php:382
980
  msgid "Proof-of-consent stored in secure audit format."
981
  msgstr ""
982
 
983
- #: ../includes/welcome.php:398
984
  msgid "Live Setup"
985
  msgstr ""
986
 
987
- #: ../includes/welcome.php:399
988
  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."
989
  msgstr ""
990
 
991
- #: ../includes/welcome.php:403
992
  msgid "Banner Compliance"
993
  msgstr ""
994
 
995
- #: ../includes/welcome.php:424
996
  msgid "Select the laws that apply to your business"
997
  msgstr ""
998
 
999
- #: ../includes/welcome.php:426
1000
  msgid "GDPR"
1001
  msgstr ""
1002
 
1003
- #: ../includes/welcome.php:427
1004
  msgid "CCPA"
1005
  msgstr ""
1006
 
1007
- #: ../includes/welcome.php:431
1008
  msgid "Select a naming style for the consent choices"
1009
  msgstr ""
1010
 
1011
- #: ../includes/welcome.php:433
1012
  msgid "Silver, Gold, Platinum (Default)​"
1013
  msgstr ""
1014
 
1015
- #: ../includes/welcome.php:434
1016
  msgid "Private, Balanced, Personalized"
1017
  msgstr ""
1018
 
1019
- #: ../includes/welcome.php:435
1020
  msgid "Reject All, Accept Some, Accept All​"
1021
  msgstr ""
1022
 
1023
- #: ../includes/welcome.php:439
1024
  msgid "Select additional information to include in the banner:"
1025
  msgstr ""
1026
 
1027
- #: ../includes/welcome.php:441
1028
  msgid "Display <b>Privacy Paper</b> to provide helpful data privacy and consent information to visitors."
1029
  msgstr ""
1030
 
1031
- #: ../includes/welcome.php:442
1032
  msgid "Display <b>Privacy Contact</b> to provide Data Controller contact information and links to external data privacy resources."
1033
  msgstr ""
1034
 
1035
- #: ../includes/welcome.php:445 ../includes/welcome.php:473
1036
  msgid "available for Cookie Compliance&trade; Pro plans only"
1037
  msgstr ""
1038
 
1039
- #: ../includes/welcome.php:449
1040
  msgid "Banner Design"
1041
  msgstr ""
1042
 
1043
- #: ../includes/welcome.php:453
1044
  msgid "Select your preferred display position"
1045
  msgstr ""
1046
 
1047
- #: ../includes/welcome.php:457
1048
  msgid "Left"
1049
  msgstr ""
1050
 
1051
- #: ../includes/welcome.php:458
1052
  msgid "Right"
1053
  msgstr ""
1054
 
1055
- #: ../includes/welcome.php:459
1056
  msgid "Center"
1057
  msgstr ""
1058
 
1059
- #: ../includes/welcome.php:463
1060
  msgid "Adjust the banner color scheme"
1061
  msgstr ""
1062
 
1063
- #: ../includes/welcome.php:465
1064
  msgid "Color of the buttons and interactive elements."
1065
  msgstr ""
1066
 
1067
- #: ../includes/welcome.php:466
1068
  msgid "Color of the banner background."
1069
  msgstr ""
1070
 
1071
- #: ../includes/welcome.php:467
1072
  msgid "Color of the body text."
1073
  msgstr ""
1074
 
1075
- #: ../includes/welcome.php:468
1076
  msgid "Color of the borders and inactive elements."
1077
  msgstr ""
1078
 
1079
- #: ../includes/welcome.php:469
1080
  msgid "Color of the heading text."
1081
  msgstr ""
1082
 
1083
- #: ../includes/welcome.php:470
1084
  msgid "Color of the button text."
1085
  msgstr ""
1086
 
1087
- #: ../includes/welcome.php:478
1088
  msgid "Apply Setup"
1089
  msgstr ""
1090
 
1091
- #: ../includes/welcome.php:496
1092
  msgid "Compliance account"
1093
  msgstr ""
1094
 
1095
- #: ../includes/welcome.php:498
1096
  msgid "Create a Cookie Compliance&trade; account and select your preferred plan."
1097
  msgstr ""
1098
 
1099
- #: ../includes/welcome.php:502
1100
  msgid "Create Account"
1101
  msgstr ""
1102
 
1103
- #: ../includes/welcome.php:507 ../includes/welcome.php:617
1104
  msgid "Email address"
1105
  msgstr ""
1106
 
1107
- #: ../includes/welcome.php:510 ../includes/welcome.php:620
1108
  msgid "Password"
1109
  msgstr ""
1110
 
1111
- #: ../includes/welcome.php:513
1112
  msgid "Confirm Password"
1113
  msgstr ""
1114
 
1115
- #: ../includes/welcome.php:517
1116
  #, php-format
1117
  msgid "I have read and agree to the <a href=\"%s\" target=\"_blank\">Terms of Service"
1118
  msgstr ""
1119
 
1120
- #: ../includes/welcome.php:521
1121
  msgid "Sign Up"
1122
  msgstr ""
1123
 
1124
- #: ../includes/welcome.php:535
1125
  msgid "Already have an account?"
1126
  msgstr ""
1127
 
1128
- #: ../includes/welcome.php:535 ../includes/welcome.php:623
1129
  msgid "Sign in"
1130
  msgstr ""
1131
 
1132
- #: ../includes/welcome.php:549 ../includes/welcome.php:651
1133
- msgid "<b>Professional</b> Monthly"
1134
- msgstr ""
1135
-
1136
- #: ../includes/welcome.php:549 ../includes/welcome.php:651
1137
- msgid "/mo"
1138
- msgstr ""
1139
-
1140
- #: ../includes/welcome.php:550 ../includes/welcome.php:652
1141
- msgid "<b>Professional</b> Yearly"
1142
  msgstr ""
1143
 
1144
- #: ../includes/welcome.php:550 ../includes/welcome.php:652
1145
- msgid "/yr"
1146
  msgstr ""
1147
 
1148
- #: ../includes/welcome.php:554 ../includes/welcome.php:656
 
1149
  msgid "Confirm"
1150
  msgstr ""
1151
 
1152
- #: ../includes/welcome.php:558 ../includes/welcome.php:660
1153
  msgid "Payment Method"
1154
  msgstr ""
1155
 
1156
- #: ../includes/welcome.php:560 ../includes/welcome.php:662
1157
  msgid "Credit Card"
1158
  msgstr ""
1159
 
1160
- #: ../includes/welcome.php:561 ../includes/welcome.php:663
1161
  msgid "PayPal"
1162
  msgstr ""
1163
 
1164
- #: ../includes/welcome.php:567 ../includes/welcome.php:669
1165
  msgid "Card Number"
1166
  msgstr ""
1167
 
1168
- #: ../includes/welcome.php:571 ../includes/welcome.php:673
1169
  msgid "Expiration Date"
1170
  msgstr ""
1171
 
1172
- #: ../includes/welcome.php:575 ../includes/welcome.php:677
1173
  msgid "CVC/CVV"
1174
  msgstr ""
1175
 
1176
- #: ../includes/welcome.php:579 ../includes/welcome.php:681
1177
  msgid "Submit"
1178
  msgstr ""
1179
 
1180
- #: ../includes/welcome.php:606
1181
  msgid "Compliance Sign in"
1182
  msgstr ""
1183
 
1184
- #: ../includes/welcome.php:608
1185
  msgid "Sign in to your existing Cookie Compliance&trade; account and select your preferred plan."
1186
  msgstr ""
1187
 
1188
- #: ../includes/welcome.php:612
1189
  msgid "Account Login"
1190
  msgstr ""
1191
 
1192
- #: ../includes/welcome.php:637
1193
  msgid "Don't have an account yet?"
1194
  msgstr ""
1195
 
1196
- #: ../includes/welcome.php:637
1197
  msgid "Sign up"
1198
  msgstr ""
1199
 
1200
- #: ../includes/welcome.php:706
 
 
 
 
 
 
 
 
 
 
 
 
1201
  msgid "Success!"
1202
  msgstr ""
1203
 
1204
- #: ../includes/welcome.php:707
1205
  msgid "You have successfully upgraded your website to Cookie Compliance&trade;"
1206
  msgstr ""
1207
 
1208
- #: ../includes/welcome.php:707
1209
  #, php-format
1210
  msgid "Go to Cookie Compliance&trade; application now. Or access it anytime from your <a href=\"%s\">Cookie Notice settings page</a>."
1211
  msgstr ""
2
  msgid ""
3
  msgstr ""
4
  "Project-Id-Version: Cookie Notice\n"
5
+ "POT-Creation-Date: 2022-05-31 12:24+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"
40
  msgid "Settings"
41
  msgstr ""
42
 
43
+ #: ../cookie-notice.php:564
44
  msgid "Free Upgrade"
45
  msgstr ""
46
 
174
  msgid "Days to go: %s"
175
  msgstr ""
176
 
177
+ #: ../includes/settings.php:48 ../includes/welcome.php:478
178
  msgid "Top"
179
  msgstr ""
180
 
181
+ #: ../includes/settings.php:49 ../includes/welcome.php:477
182
  msgid "Bottom"
183
  msgstr ""
184
 
214
  msgid "Banner"
215
  msgstr ""
216
 
217
+ #: ../includes/settings.php:75 ../includes/settings.php:303
218
  msgid "Message"
219
  msgstr ""
220
 
319
  msgstr ""
320
 
321
  #: ../includes/settings.php:132 ../includes/settings.php:153
322
+ #: ../includes/settings.php:305
323
  msgid "Privacy policy"
324
  msgstr ""
325
 
351
  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."
352
  msgstr ""
353
 
354
+ #: ../includes/settings.php:143
355
  msgid "month"
356
  msgstr ""
357
 
375
  msgid "You can revoke your consent any time using the Revoke consent button."
376
  msgstr ""
377
 
378
+ #: ../includes/settings.php:152 ../includes/settings.php:307
379
  msgid "Revoke consent"
380
  msgstr ""
381
 
382
+ #: ../includes/settings.php:188 ../includes/welcome.php:401
383
  msgid "Cookie Notice"
384
  msgstr ""
385
 
395
  msgid "Promote the privacy of your website visitors without affecting how you do your business."
396
  msgstr ""
397
 
398
+ #: ../includes/settings.php:212 ../includes/welcome.php:196
399
+ #: ../includes/welcome.php:237
400
  msgid "The next generation of Cookie Notice"
401
  msgstr ""
402
 
404
  msgid "A free web application to help you deliver better consent experiences and comply with GDPR, CCPA and other data privacy laws more effectively."
405
  msgstr ""
406
 
407
+ #: ../includes/settings.php:217
408
+ msgid "Learn more"
409
+ msgstr ""
410
+
411
  #: ../includes/settings.php:228
412
  msgid "F.A.Q."
413
  msgstr ""
436
  msgid "Yes, but with limits. Cookie Compliance includes both free and paid plans to choose from depending on your needs and your website monthly traffic."
437
  msgstr ""
438
 
439
+ #: ../includes/settings.php:247
440
+ msgid "Where can I find pricing options?"
441
+ msgstr ""
442
+
443
+ #: ../includes/settings.php:248
444
+ msgid "You can learn more about the features and pricing by visiting the Cookie Compliance website here:"
445
+ msgstr ""
446
+
447
+ #: ../includes/settings.php:265
448
  msgid "Reset to defaults"
449
  msgstr ""
450
 
451
+ #: ../includes/settings.php:283 ../includes/settings.php:297
452
  msgid "Compliance Settings"
453
  msgstr ""
454
 
455
+ #: ../includes/settings.php:284 ../includes/settings.php:298
456
  msgid "Compliance status"
457
  msgstr ""
458
 
459
+ #: ../includes/settings.php:285 ../includes/settings.php:299
460
  msgid "App ID"
461
  msgstr ""
462
 
463
+ #: ../includes/settings.php:286 ../includes/settings.php:300
464
  msgid "App Key"
465
  msgstr ""
466
 
467
+ #: ../includes/settings.php:288
468
  msgid "Miscellaneous Settings"
469
  msgstr ""
470
 
471
+ #: ../includes/settings.php:289 ../includes/settings.php:345
472
+ #: ../includes/settings.php:360 ../includes/settings.php:375
473
+ #: ../includes/welcome.php:402
474
  msgid "Autoblocking"
475
  msgstr ""
476
 
477
+ #: ../includes/settings.php:290
478
  msgid "Hide for logged in"
479
  msgstr ""
480
 
481
+ #: ../includes/settings.php:291
482
  msgid "Cache"
483
  msgstr ""
484
 
485
+ #: ../includes/settings.php:292 ../includes/settings.php:314
486
  msgid "Script placement"
487
  msgstr ""
488
 
489
+ #: ../includes/settings.php:293 ../includes/settings.php:315
490
  msgid "Deactivation"
491
  msgstr ""
492
 
493
+ #: ../includes/settings.php:302
494
  msgid "Notice Settings"
495
  msgstr ""
496
 
497
+ #: ../includes/settings.php:304
498
  msgid "Button text"
499
  msgstr ""
500
 
501
+ #: ../includes/settings.php:306
502
  msgid "Refuse consent"
503
  msgstr ""
504
 
505
+ #: ../includes/settings.php:308
506
  msgid "Script blocking"
507
  msgstr ""
508
 
509
+ #: ../includes/settings.php:309
510
  msgid "Reloading"
511
  msgstr ""
512
 
513
+ #: ../includes/settings.php:310
514
  msgid "On scroll"
515
  msgstr ""
516
 
517
+ #: ../includes/settings.php:311
518
  msgid "On click"
519
  msgstr ""
520
 
521
+ #: ../includes/settings.php:312
522
  msgid "Accepted expiry"
523
  msgstr ""
524
 
525
+ #: ../includes/settings.php:313
526
  msgid "Rejected expiry"
527
  msgstr ""
528
 
529
+ #: ../includes/settings.php:318
530
  msgid "Notice Design"
531
  msgstr ""
532
 
533
+ #: ../includes/settings.php:319
534
  msgid "Position"
535
  msgstr ""
536
 
537
+ #: ../includes/settings.php:320
538
  msgid "Animation"
539
  msgstr ""
540
 
541
+ #: ../includes/settings.php:321
542
  msgid "Colors"
543
  msgstr ""
544
 
545
+ #: ../includes/settings.php:322
546
  msgid "Button class"
547
  msgstr ""
548
 
549
+ #: ../includes/settings.php:344 ../includes/settings.php:359
550
+ #: ../includes/settings.php:374
551
  msgid "Notice"
552
  msgstr ""
553
 
554
+ #: ../includes/settings.php:344 ../includes/settings.php:345
555
+ #: ../includes/settings.php:346 ../includes/settings.php:347
556
+ #: ../includes/settings.php:359 ../includes/settings.php:374
557
  msgid "Active"
558
  msgstr ""
559
 
560
+ #: ../includes/settings.php:346 ../includes/settings.php:361
561
+ #: ../includes/settings.php:376 ../includes/welcome.php:403
562
  msgid "Cookie Categories"
563
  msgstr ""
564
 
565
+ #: ../includes/settings.php:347 ../includes/settings.php:362
566
+ #: ../includes/settings.php:377 ../includes/welcome.php:404
567
  msgid "Proof-of-Consent"
568
  msgstr ""
569
 
570
+ #: ../includes/settings.php:350
571
  msgid "Log in & Configure"
572
  msgstr ""
573
 
574
+ #: ../includes/settings.php:351
575
  msgid "Log into the Cookie Compliance&trade; web application and configure your Privacy Experience."
576
  msgstr ""
577
 
578
+ #: ../includes/settings.php:360 ../includes/settings.php:361
579
+ #: ../includes/settings.php:362
580
  msgid "Pending"
581
  msgstr ""
582
 
583
+ #: ../includes/settings.php:365
584
  msgid "Log in & configure"
585
  msgstr ""
586
 
587
+ #: ../includes/settings.php:366
588
  msgid "Log into the Cookie Compliance&trade; web application and complete the setup process."
589
  msgstr ""
590
 
591
+ #: ../includes/settings.php:375 ../includes/settings.php:376
592
+ #: ../includes/settings.php:377
593
  msgid "Inactive"
594
  msgstr ""
595
 
596
+ #: ../includes/settings.php:380
597
  msgid "Add Compliance features"
598
  msgstr ""
599
 
600
+ #: ../includes/settings.php:381
601
  msgid "Sign up to Cookie Compliance&trade; and add GDPR, CCPA and other international data privacy laws compliance features."
602
  msgstr ""
603
 
604
+ #: ../includes/settings.php:396
605
  msgid "Enter your Cookie Compliance&trade; application ID."
606
  msgstr ""
607
 
608
+ #: ../includes/settings.php:408
609
  msgid "Enter your Cookie Compliance&trade; application secret key."
610
  msgstr ""
611
 
612
+ #: ../includes/settings.php:418
613
  msgid "Enable to automatically block 3rd party scripts before user consent."
614
  msgstr ""
615
 
616
+ #: ../includes/settings.php:419
617
  msgid "In case you're experiencing issues with your site disable that feature temporarily."
618
  msgstr ""
619
 
620
+ #: ../includes/settings.php:430
621
  msgid "Purge Cache"
622
  msgstr ""
623
 
624
+ #: ../includes/settings.php:432
625
  msgid "Click the Purge Cache button to refresh the app configuration."
626
  msgstr ""
627
 
628
+ #: ../includes/settings.php:442
629
  msgid "Enable to hide the consent banner for logged in users."
630
  msgstr ""
631
 
632
+ #: ../includes/settings.php:453
633
  msgid "Enter the cookie notice message."
634
  msgstr ""
635
 
636
+ #: ../includes/settings.php:464
637
  msgid "The text of the option to accept the notice and make it disappear."
638
  msgstr ""
639
 
640
+ #: ../includes/settings.php:474
641
  msgid "Enable to give to the user the possibility to refuse third party non functional cookies."
642
  msgstr ""
643
 
644
+ #: ../includes/settings.php:478
645
  msgid "The text of the button to refuse the consent."
646
  msgstr ""
647
 
648
+ #: ../includes/settings.php:496
649
  msgid "Head"
650
  msgstr ""
651
 
652
+ #: ../includes/settings.php:497
653
  msgid "Body"
654
  msgstr ""
655
 
656
+ #: ../includes/settings.php:500
657
  msgid "The code to be used in your site header, before the closing head tag."
658
  msgstr ""
659
 
660
+ #: ../includes/settings.php:504
661
  msgid "The code to be used in your site footer, before the closing body tag."
662
  msgstr ""
663
 
664
+ #: ../includes/settings.php:508
665
  msgid "Enter non functional cookies Javascript code here (for e.g. Google Analitycs) to be used after the notice is accepted."
666
  msgstr ""
667
 
668
+ #: ../includes/settings.php:508
669
  msgid "To get the user consent status use the <code>cn_cookies_accepted()</code> function."
670
  msgstr ""
671
 
672
+ #: ../includes/settings.php:519
673
  msgid "Enable to give to the user the possibility to revoke their consent <i>(requires \"Refuse consent\" option enabled)</i>."
674
  msgstr ""
675
 
676
+ #: ../includes/settings.php:522
677
  msgid "Enter the revoke message."
678
  msgstr ""
679
 
680
+ #: ../includes/settings.php:524
681
  msgid "The text of the button to revoke the consent."
682
  msgstr ""
683
 
684
+ #: ../includes/settings.php:532
685
  msgid "Select the method for displaying the revoke button - automatic (in the banner) or manual using <code>[cookies_revoke]</code> shortcode."
686
  msgstr ""
687
 
688
+ #: ../includes/settings.php:543
689
  msgid "Enable to reload the page after the notice is accepted."
690
  msgstr ""
691
 
692
+ #: ../includes/settings.php:566
693
  msgid "Enable privacy policy link."
694
  msgstr ""
695
 
696
+ #: ../includes/settings.php:569
697
  msgid "The text of the privacy policy button."
698
  msgstr ""
699
 
700
+ #: ../includes/settings.php:581
701
  msgid "Select where to redirect user for more information."
702
  msgstr ""
703
 
704
+ #: ../includes/settings.php:584
705
  msgid "-- select page --"
706
  msgstr ""
707
 
708
+ #: ../includes/settings.php:595
709
  msgid "Select from one of your site's pages."
710
  msgstr ""
711
 
712
+ #: ../includes/settings.php:601
713
  msgid "Synchronize with WordPress Privacy Policy page."
714
  msgstr ""
715
 
716
+ #: ../includes/settings.php:608
717
  msgid "Enter the full URL starting with http(s)://"
718
  msgstr ""
719
 
720
+ #: ../includes/settings.php:651
721
  msgid "The amount of time that the cookie should be stored for when user accepts the notice."
722
  msgstr ""
723
 
724
+ #: ../includes/settings.php:674
725
  msgid "The amount of time that the cookie should be stored for when the user doesn't accept the notice."
726
  msgstr ""
727
 
728
+ #: ../includes/settings.php:692
729
  msgid "Select where all the plugin scripts should be placed."
730
  msgstr ""
731
 
732
+ #: ../includes/settings.php:712
733
  msgid "Select location for the notice."
734
  msgstr ""
735
 
736
+ #: ../includes/settings.php:733
737
  msgid "Select the animation style."
738
  msgstr ""
739
 
740
+ #: ../includes/settings.php:744
741
  msgid "Enable to accept the notice when user scrolls."
742
  msgstr ""
743
 
744
+ #: ../includes/settings.php:747
745
  msgid "Number of pixels user has to scroll to accept the notice and make it disappear."
746
  msgstr ""
747
 
748
+ #: ../includes/settings.php:758
749
  msgid "Enable to accept the notice on any click on the page."
750
  msgstr ""
751
 
752
+ #: ../includes/settings.php:768
753
  msgid "Enable if you want all plugin data to be deleted on deactivation."
754
  msgstr ""
755
 
756
+ #: ../includes/settings.php:780
757
  msgid "Enter additional button CSS classes separated by spaces."
758
  msgstr ""
759
 
760
+ #: ../includes/settings.php:804
761
  msgid "Bar opacity"
762
  msgstr ""
763
 
764
+ #: ../includes/settings.php:946
765
  msgid "Settings saved."
766
  msgstr ""
767
 
768
+ #: ../includes/settings.php:953
769
  msgid "Settings restored to defaults."
770
  msgstr ""
771
 
772
+ #: ../includes/settings.php:978
773
  msgid "Are you sure you want to reset these settings to defaults?"
774
  msgstr ""
775
 
776
  #: ../includes/welcome-api.php:37 ../includes/welcome-api.php:40
777
  #: ../includes/welcome-api.php:43 ../includes/welcome-api.php:46
778
+ #: ../includes/welcome.php:165 ../includes/welcome.php:175
779
+ #: ../includes/welcome.php:178
780
  msgid "You do not have permission to access this page."
781
  msgstr ""
782
 
783
+ #: ../includes/welcome-api.php:97 ../includes/welcome-api.php:298
784
+ #: ../includes/welcome-api.php:337 ../includes/welcome-api.php:463
785
+ #: ../includes/welcome-api.php:535 ../includes/welcome-api.php:1013
786
+ #: ../includes/welcome.php:70
787
  msgid "Unexpected error occurred. Please try again later."
788
  msgstr ""
789
 
790
+ #: ../includes/welcome-api.php:122
791
  msgid "Empty plan or payment method data."
792
  msgstr ""
793
 
794
+ #: ../includes/welcome-api.php:157
795
  msgid "Unable to create customer data."
796
  msgstr ""
797
 
798
+ #: ../includes/welcome-api.php:185
799
+ msgid "Unable to create payment mehotd."
800
+ msgstr ""
801
+
802
+ #: ../includes/welcome-api.php:199
803
+ msgid "Unable to get customer data."
804
+ msgstr ""
805
+
806
+ #: ../includes/welcome-api.php:210
807
+ msgid "No payment method token."
808
+ msgstr ""
809
+
810
+ #: ../includes/welcome-api.php:240
811
  msgid "Please accept the Terms of Service to proceed."
812
  msgstr ""
813
 
814
+ #: ../includes/welcome-api.php:245 ../includes/welcome-api.php:434
815
  msgid "Email is not allowed to be empty."
816
  msgstr ""
817
 
818
+ #: ../includes/welcome-api.php:250 ../includes/welcome-api.php:439
819
  msgid "Password is not allowed to be empty."
820
  msgstr ""
821
 
822
+ #: ../includes/welcome-api.php:255
823
  msgid "Passwords do not match."
824
  msgstr ""
825
 
826
+ #: ../includes/welcome.php:71
827
  msgid "Passed"
828
  msgstr ""
829
 
830
+ #: ../includes/welcome.php:72
831
  msgid "Failed"
832
  msgstr ""
833
 
834
+ #: ../includes/welcome.php:73 ../includes/welcome.php:318
835
+ #: ../includes/welcome.php:571 ../includes/welcome.php:673
836
+ msgid "monthly"
837
+ msgstr ""
838
+
839
+ #: ../includes/welcome.php:74
840
+ msgid "yearly"
841
+ msgstr ""
842
+
843
+ #: ../includes/welcome.php:78
844
  msgid "<em>Compliance Failed!</em>Your website does not achieve minimum viable compliance. <b><a href=\"#\" class=\"cn-sign-up\">Sign up to Cookie Compliance</a></b> to bring your site into compliance with the latest data privacy rules and regulations."
845
  msgstr ""
846
 
847
+ #: ../includes/welcome.php:79
848
  msgid "<em>Compliance Passed!</em>Congratulations. Your website meets minimum viable compliance."
849
  msgstr ""
850
 
851
+ #: ../includes/welcome.php:80 ../includes/welcome.php:675
852
+ msgid "available"
853
+ msgstr ""
854
+
855
+ #: ../includes/welcome.php:81
856
  msgid "Please fill all the required fields."
857
  msgstr ""
858
 
859
+ #: ../includes/welcome.php:198
860
  msgid "Cookie Compliance is a free web application that enables websites to take a proactive approach to data protection and consent laws."
861
  msgstr ""
862
 
863
+ #: ../includes/welcome.php:204
864
  msgid "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."
865
  msgstr ""
866
 
867
+ #: ../includes/welcome.php:205
868
  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."
869
  msgstr ""
870
 
871
+ #: ../includes/welcome.php:209
872
  msgid "Sign up to Cookie Compliance"
873
  msgstr ""
874
 
875
+ #: ../includes/welcome.php:210
876
  msgid "Skip for now"
877
  msgstr ""
878
 
879
+ #: ../includes/welcome.php:239
880
  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."
881
  msgstr ""
882
 
883
+ #: ../includes/welcome.php:283
884
  msgid "Compliance Plans"
885
  msgstr ""
886
 
887
+ #: ../includes/welcome.php:286
888
+ msgid "Monthly"
889
+ msgstr ""
890
+
891
+ #: ../includes/welcome.php:289
892
+ msgid "Yearly"
893
+ msgstr ""
894
+
895
+ #: ../includes/welcome.php:289
896
+ msgid "Save 12%"
897
+ msgstr ""
898
+
899
+ #: ../includes/welcome.php:297 ../includes/welcome.php:570
900
+ #: ../includes/welcome.php:672
901
  msgid "Basic"
902
  msgstr ""
903
 
904
+ #: ../includes/welcome.php:298
905
  msgid "Free"
906
  msgstr ""
907
 
908
+ #: ../includes/welcome.php:301 ../includes/welcome.php:330
 
909
  msgid "GDPR, CCPA, ePrivacy, PECR compliance"
910
  msgstr ""
911
 
912
+ #: ../includes/welcome.php:302 ../includes/welcome.php:331
 
913
  msgid "Consent Analytics Dashboard"
914
  msgstr ""
915
 
916
+ #: ../includes/welcome.php:303
917
  msgid "<b>1,000</b> visits / month"
918
  msgstr ""
919
 
920
+ #: ../includes/welcome.php:304
921
  msgid "<b>30 days</b> consent storage"
922
  msgstr ""
923
 
924
+ #: ../includes/welcome.php:305
925
  msgid "<b>1 additional</b> language"
926
  msgstr ""
927
 
928
+ #: ../includes/welcome.php:306
929
  msgid "<b>Basic</b> Support"
930
  msgstr ""
931
 
932
+ #: ../includes/welcome.php:309
933
+ msgid "Start Basic"
 
 
934
  msgstr ""
935
 
936
+ #: ../includes/welcome.php:317
937
+ msgid "Professional"
938
  msgstr ""
939
 
940
+ #: ../includes/welcome.php:319
941
+ msgid "Recommended"
942
  msgstr ""
943
 
944
+ #: ../includes/welcome.php:321
945
+ msgid "Pricing options"
946
  msgstr ""
947
 
948
+ #: ../includes/welcome.php:322 ../includes/welcome.php:323
949
+ #: ../includes/welcome.php:324 ../includes/welcome.php:325
950
+ #, php-format
951
+ msgid "%s domain license"
952
  msgstr ""
953
 
954
+ #: ../includes/welcome.php:332
955
+ msgid "<b>Unlimited</b> visits"
956
  msgstr ""
957
 
958
+ #: ../includes/welcome.php:333
959
+ msgid "<b>Lifetime</b> consent storage"
960
  msgstr ""
961
 
962
+ #: ../includes/welcome.php:334
963
+ msgid "<b>Unlimited</b> languages"
964
  msgstr ""
965
 
966
+ #: ../includes/welcome.php:335
967
+ msgid "<b>Premium</b> Support"
968
  msgstr ""
969
 
970
+ #: ../includes/welcome.php:338
971
+ msgid "Start Premium"
972
  msgstr ""
973
 
974
+ #: ../includes/welcome.php:344
975
  msgid "I don’t want to create an account now"
976
  msgstr ""
977
 
978
+ #: ../includes/welcome.php:360
979
  msgid "Congratulations"
980
  msgstr ""
981
 
982
+ #: ../includes/welcome.php:361
983
  msgid "You are now promoting privacy with Hu-manity.co"
984
  msgstr ""
985
 
986
+ #: ../includes/welcome.php:363
987
  msgid "Log in to your Cookie Compliance&trade; account and continue configuring your Privacy Experience."
988
  msgstr ""
989
 
990
+ #: ../includes/welcome.php:366
991
  msgid "Go to Application"
992
  msgstr ""
993
 
994
+ #: ../includes/welcome.php:391
995
  msgid "Compliance check"
996
  msgstr ""
997
 
998
+ #: ../includes/welcome.php:392
999
  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."
1000
  msgstr ""
1001
 
1002
+ #: ../includes/welcome.php:394
1003
  msgid "Site URL"
1004
  msgstr ""
1005
 
1006
+ #: ../includes/welcome.php:395
1007
  msgid "Site Name"
1008
  msgstr ""
1009
 
1010
+ #: ../includes/welcome.php:398
1011
  msgid "Checking..."
1012
  msgstr ""
1013
 
1014
+ #: ../includes/welcome.php:401
1015
  msgid "Notifies visitors that site uses cookies."
1016
  msgstr ""
1017
 
1018
+ #: ../includes/welcome.php:402
1019
  msgid "Non-essential cookies blocked until consent is registered."
1020
  msgstr ""
1021
 
1022
+ #: ../includes/welcome.php:403
1023
  msgid "Separate consent requested per purpose of use."
1024
  msgstr ""
1025
 
1026
+ #: ../includes/welcome.php:404
1027
  msgid "Proof-of-consent stored in secure audit format."
1028
  msgstr ""
1029
 
1030
+ #: ../includes/welcome.php:420
1031
  msgid "Live Setup"
1032
  msgstr ""
1033
 
1034
+ #: ../includes/welcome.php:421
1035
  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."
1036
  msgstr ""
1037
 
1038
+ #: ../includes/welcome.php:425
1039
  msgid "Banner Compliance"
1040
  msgstr ""
1041
 
1042
+ #: ../includes/welcome.php:446
1043
  msgid "Select the laws that apply to your business"
1044
  msgstr ""
1045
 
1046
+ #: ../includes/welcome.php:448
1047
  msgid "GDPR"
1048
  msgstr ""
1049
 
1050
+ #: ../includes/welcome.php:449
1051
  msgid "CCPA"
1052
  msgstr ""
1053
 
1054
+ #: ../includes/welcome.php:453
1055
  msgid "Select a naming style for the consent choices"
1056
  msgstr ""
1057
 
1058
+ #: ../includes/welcome.php:455
1059
  msgid "Silver, Gold, Platinum (Default)​"
1060
  msgstr ""
1061
 
1062
+ #: ../includes/welcome.php:456
1063
  msgid "Private, Balanced, Personalized"
1064
  msgstr ""
1065
 
1066
+ #: ../includes/welcome.php:457
1067
  msgid "Reject All, Accept Some, Accept All​"
1068
  msgstr ""
1069
 
1070
+ #: ../includes/welcome.php:461
1071
  msgid "Select additional information to include in the banner:"
1072
  msgstr ""
1073
 
1074
+ #: ../includes/welcome.php:463
1075
  msgid "Display <b>Privacy Paper</b> to provide helpful data privacy and consent information to visitors."
1076
  msgstr ""
1077
 
1078
+ #: ../includes/welcome.php:464
1079
  msgid "Display <b>Privacy Contact</b> to provide Data Controller contact information and links to external data privacy resources."
1080
  msgstr ""
1081
 
1082
+ #: ../includes/welcome.php:467 ../includes/welcome.php:495
1083
  msgid "available for Cookie Compliance&trade; Pro plans only"
1084
  msgstr ""
1085
 
1086
+ #: ../includes/welcome.php:471
1087
  msgid "Banner Design"
1088
  msgstr ""
1089
 
1090
+ #: ../includes/welcome.php:475
1091
  msgid "Select your preferred display position"
1092
  msgstr ""
1093
 
1094
+ #: ../includes/welcome.php:479
1095
  msgid "Left"
1096
  msgstr ""
1097
 
1098
+ #: ../includes/welcome.php:480
1099
  msgid "Right"
1100
  msgstr ""
1101
 
1102
+ #: ../includes/welcome.php:481
1103
  msgid "Center"
1104
  msgstr ""
1105
 
1106
+ #: ../includes/welcome.php:485
1107
  msgid "Adjust the banner color scheme"
1108
  msgstr ""
1109
 
1110
+ #: ../includes/welcome.php:487
1111
  msgid "Color of the buttons and interactive elements."
1112
  msgstr ""
1113
 
1114
+ #: ../includes/welcome.php:488
1115
  msgid "Color of the banner background."
1116
  msgstr ""
1117
 
1118
+ #: ../includes/welcome.php:489
1119
  msgid "Color of the body text."
1120
  msgstr ""
1121
 
1122
+ #: ../includes/welcome.php:490
1123
  msgid "Color of the borders and inactive elements."
1124
  msgstr ""
1125
 
1126
+ #: ../includes/welcome.php:491
1127
  msgid "Color of the heading text."
1128
  msgstr ""
1129
 
1130
+ #: ../includes/welcome.php:492
1131
  msgid "Color of the button text."
1132
  msgstr ""
1133
 
1134
+ #: ../includes/welcome.php:500
1135
  msgid "Apply Setup"
1136
  msgstr ""
1137
 
1138
+ #: ../includes/welcome.php:518
1139
  msgid "Compliance account"
1140
  msgstr ""
1141
 
1142
+ #: ../includes/welcome.php:520
1143
  msgid "Create a Cookie Compliance&trade; account and select your preferred plan."
1144
  msgstr ""
1145
 
1146
+ #: ../includes/welcome.php:524
1147
  msgid "Create Account"
1148
  msgstr ""
1149
 
1150
+ #: ../includes/welcome.php:529 ../includes/welcome.php:639
1151
  msgid "Email address"
1152
  msgstr ""
1153
 
1154
+ #: ../includes/welcome.php:532 ../includes/welcome.php:642
1155
  msgid "Password"
1156
  msgstr ""
1157
 
1158
+ #: ../includes/welcome.php:535
1159
  msgid "Confirm Password"
1160
  msgstr ""
1161
 
1162
+ #: ../includes/welcome.php:539
1163
  #, php-format
1164
  msgid "I have read and agree to the <a href=\"%s\" target=\"_blank\">Terms of Service"
1165
  msgstr ""
1166
 
1167
+ #: ../includes/welcome.php:543
1168
  msgid "Sign Up"
1169
  msgstr ""
1170
 
1171
+ #: ../includes/welcome.php:557
1172
  msgid "Already have an account?"
1173
  msgstr ""
1174
 
1175
+ #: ../includes/welcome.php:557 ../includes/welcome.php:645
1176
  msgid "Sign in"
1177
  msgstr ""
1178
 
1179
+ #: ../includes/welcome.php:564 ../includes/welcome.php:666
1180
+ msgid "Select Plan"
 
 
 
 
 
 
 
 
1181
  msgstr ""
1182
 
1183
+ #: ../includes/welcome.php:571 ../includes/welcome.php:673
1184
+ msgid "<b>Professional</b>"
1185
  msgstr ""
1186
 
1187
+ #: ../includes/welcome.php:575 ../includes/welcome.php:681
1188
+ #: ../includes/welcome.php:722
1189
  msgid "Confirm"
1190
  msgstr ""
1191
 
1192
+ #: ../includes/welcome.php:580 ../includes/welcome.php:687
1193
  msgid "Payment Method"
1194
  msgstr ""
1195
 
1196
+ #: ../includes/welcome.php:582 ../includes/welcome.php:689
1197
  msgid "Credit Card"
1198
  msgstr ""
1199
 
1200
+ #: ../includes/welcome.php:583 ../includes/welcome.php:690
1201
  msgid "PayPal"
1202
  msgstr ""
1203
 
1204
+ #: ../includes/welcome.php:589 ../includes/welcome.php:696
1205
  msgid "Card Number"
1206
  msgstr ""
1207
 
1208
+ #: ../includes/welcome.php:593 ../includes/welcome.php:700
1209
  msgid "Expiration Date"
1210
  msgstr ""
1211
 
1212
+ #: ../includes/welcome.php:597 ../includes/welcome.php:704
1213
  msgid "CVC/CVV"
1214
  msgstr ""
1215
 
1216
+ #: ../includes/welcome.php:601 ../includes/welcome.php:708
1217
  msgid "Submit"
1218
  msgstr ""
1219
 
1220
+ #: ../includes/welcome.php:628
1221
  msgid "Compliance Sign in"
1222
  msgstr ""
1223
 
1224
+ #: ../includes/welcome.php:630
1225
  msgid "Sign in to your existing Cookie Compliance&trade; account and select your preferred plan."
1226
  msgstr ""
1227
 
1228
+ #: ../includes/welcome.php:634
1229
  msgid "Account Login"
1230
  msgstr ""
1231
 
1232
+ #: ../includes/welcome.php:659
1233
  msgid "Don't have an account yet?"
1234
  msgstr ""
1235
 
1236
+ #: ../includes/welcome.php:659
1237
  msgid "Sign up"
1238
  msgstr ""
1239
 
1240
+ #: ../includes/welcome.php:675
1241
+ msgid "Use License"
1242
+ msgstr ""
1243
+
1244
+ #: ../includes/welcome.php:718
1245
+ msgid "Select subscription"
1246
+ msgstr ""
1247
+
1248
+ #: ../includes/welcome.php:719
1249
+ msgid "Licenses"
1250
+ msgstr ""
1251
+
1252
+ #: ../includes/welcome.php:742
1253
  msgid "Success!"
1254
  msgstr ""
1255
 
1256
+ #: ../includes/welcome.php:743
1257
  msgid "You have successfully upgraded your website to Cookie Compliance&trade;"
1258
  msgstr ""
1259
 
1260
+ #: ../includes/welcome.php:743
1261
  #, php-format
1262
  msgid "Go to Cookie Compliance&trade; application now. Or access it anytime from your <a href=\"%s\">Cookie Notice settings page</a>."
1263
  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.9.1
7
- Stable tag: 2.2.3
8
  License: MIT License
9
  License URI: http://opensource.org/licenses/MIT
10
 
@@ -121,6 +121,10 @@ Yes! The plugin + web appliaction version includes technical compliance features
121
 
122
  == Changelog ==
123
 
 
 
 
 
124
  = 2.2.3 =
125
  * Fix: Undefined notice in WP dashboard
126
  * Fix: Close icon event not firing
@@ -415,8 +419,6 @@ Initial release
415
 
416
  == Upgrade Notice ==
417
 
418
- = 2.2.3 =
419
- * Fix: Undefined notice in WP dashboard
420
- * Fix: Close icon event not firing
421
- * Tweak: Remove aria-label from the close icon
422
- * Tweak: CSS tweaks in the admin
3
  Tags: gdpr, ccpa, cookies, consent, compliance
4
  Requires at least: 4.3
5
  Requires PHP: 5.3
6
+ Tested up to: 6.0
7
+ Stable tag: 2.3.0
8
  License: MIT License
9
  License URI: http://opensource.org/licenses/MIT
10
 
121
 
122
  == Changelog ==
123
 
124
+ = 2.3.0 =
125
+ * New: Compliance Multi-license pricing options
126
+ * Tweak: WordPress 6.0 compatibility
127
+
128
  = 2.2.3 =
129
  * Fix: Undefined notice in WP dashboard
130
  * Fix: Close icon event not firing
419
 
420
  == Upgrade Notice ==
421
 
422
+ = 2.3.0 =
423
+ * New: Compliance Multi-license pricing options
424
+ * Tweak: WordPress 6.0 compatibility