Version Description
Download this release
Release Info
Developer | Asif2BD |
Plugin | Disable Comments |
Version | 2.0.0 |
Comparing to | |
See all releases |
Code changes from version 1.11.0 to 2.0.0
- assets/css/notice.css +97 -0
- assets/css/style.css +2983 -0
- assets/css/sweetalert2.min.css +1 -0
- assets/disable-comments.js +0 -8
- assets/disable-comments.js.map +0 -1
- assets/img/blog/thumb-1.jpg +0 -0
- assets/img/check.png +0 -0
- assets/img/company-thumb.png +0 -0
- assets/img/finalize-thumb.png +0 -0
- assets/img/icon-logo-small.png +0 -0
- assets/img/icon-logo.png +0 -0
- assets/img/logo.png +0 -0
- assets/js/disable-comments-settings-scripts.js +278 -0
- assets/js/disable-comments.js +7 -0
- assets/js/sweetalert2.all.min.js +2 -0
- disable-comments.php +637 -184
- includes/class-plugin-usage-tracker.php +899 -0
- includes/cli.php +195 -0
- includes/settings-page.php +0 -101
- includes/tools-page.php +0 -195
- languages/disable-comments.pot +268 -127
- readme.txt +61 -28
- src/disable-comments.js +0 -5
- includes/comments-template.php → views/comments.php +0 -0
- views/partials/_delete.php +194 -0
- views/partials/_disable.php +63 -0
- views/partials/_footer.php +11 -0
- views/partials/_menu.php +10 -0
- views/partials/_sidebar.php +131 -0
- views/settings.php +34 -0
- views/setup-settings.php +76 -0
assets/css/notice.css
ADDED
@@ -0,0 +1,97 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
.disable__comment__alert {
|
3 |
+
border: 0px;
|
4 |
+
background: #fff;
|
5 |
+
display: flex;
|
6 |
+
align-items: center;
|
7 |
+
padding: 10px 20px;
|
8 |
+
margin-top: 50px;
|
9 |
+
margin-right: 20px;
|
10 |
+
}
|
11 |
+
@media (max-width: 767.98px) {
|
12 |
+
.disable__comment__alert {
|
13 |
+
display: block;
|
14 |
+
}
|
15 |
+
.disable__comment__alert .button__group {
|
16 |
+
margin-top: 20px;
|
17 |
+
}
|
18 |
+
}
|
19 |
+
.disable__comment__alert .alert__content {
|
20 |
+
display: flex;
|
21 |
+
align-items: center;
|
22 |
+
padding-right: 20px;
|
23 |
+
flex-wrap: wrap;
|
24 |
+
flex: 1;
|
25 |
+
}
|
26 |
+
@media (max-width: 767.98px) {
|
27 |
+
.disable__comment__alert .alert__content {
|
28 |
+
padding-right: 0;
|
29 |
+
}
|
30 |
+
}
|
31 |
+
@media (max-width: 575.98px) {
|
32 |
+
.disable__comment__alert .alert__content {
|
33 |
+
display: block;
|
34 |
+
}
|
35 |
+
}
|
36 |
+
.disable__comment__alert .alert__content img, .disable__comment__alert > img {
|
37 |
+
margin-right: 15px;
|
38 |
+
height: 30px;
|
39 |
+
}
|
40 |
+
@media (max-width: 575.98px) {
|
41 |
+
.disable__comment__alert .alert__content img {
|
42 |
+
margin-bottom: 10px;
|
43 |
+
}
|
44 |
+
}
|
45 |
+
.disable__comment__alert .alert__content p {
|
46 |
+
font-size: 15px;
|
47 |
+
font-weight: 500;
|
48 |
+
color: #22282d;
|
49 |
+
font-family: "DM Sans", sans-serif;
|
50 |
+
}
|
51 |
+
.disable__comment__alert .button__group {
|
52 |
+
text-align: right;
|
53 |
+
}
|
54 |
+
@media (max-width: 767.98px) {
|
55 |
+
.disable__comment__alert .button__group {
|
56 |
+
text-align: left;
|
57 |
+
}
|
58 |
+
}
|
59 |
+
.disable__comment__alert .button__group .button {
|
60 |
+
margin-right: 0;
|
61 |
+
margin-top: 5px;
|
62 |
+
margin-bottom: 5px;
|
63 |
+
color: #ffffff;
|
64 |
+
background: #05cb6b;
|
65 |
+
border: 0;
|
66 |
+
transition: all 0.3s ease 0s;
|
67 |
+
}
|
68 |
+
.disable__comment__alert .button__group .button:last-child {
|
69 |
+
background-color: #fff;
|
70 |
+
color: #808da1;
|
71 |
+
}
|
72 |
+
|
73 |
+
.disable__comment__alert .button__group .button:hover {
|
74 |
+
background: #05cb6b;
|
75 |
+
color: #ffffff;
|
76 |
+
}
|
77 |
+
.disable__comment__alert .button__group .button:not(:last-child) {
|
78 |
+
margin-right: 0;
|
79 |
+
}
|
80 |
+
.disable__comment__alert .button__group .button:not(:first-child) {
|
81 |
+
margin-left: 15px;
|
82 |
+
}
|
83 |
+
@media (max-width: 767.98px) {
|
84 |
+
.disable__comment__alert .button__group .button {
|
85 |
+
margin-right: 10px;
|
86 |
+
}
|
87 |
+
.disable__comment__alert .button__group .button:not(:last-child) {
|
88 |
+
margin-right: 10px;
|
89 |
+
}
|
90 |
+
.disable__comment__alert .button__group .button:not(:first-child) {
|
91 |
+
margin-left: 0;
|
92 |
+
}
|
93 |
+
}
|
94 |
+
|
95 |
+
.disable__comment__alert .alert__content .wpinsights-data {
|
96 |
+
font-size: 10px;
|
97 |
+
}
|
assets/css/style.css
ADDED
@@ -0,0 +1,2983 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&display=swap");
|
2 |
+
:root {
|
3 |
+
--base-gutter: 30px;
|
4 |
+
--md-gutter: 50px;
|
5 |
+
--lg-gutter: 70px;
|
6 |
+
--xl-gutter: 100px;
|
7 |
+
--base-spacer-x: 16px;
|
8 |
+
--base-spacer-y: 16px;
|
9 |
+
--b-radius-6: 25px;
|
10 |
+
}
|
11 |
+
@media (max-width: 1599.98px) {
|
12 |
+
:root {
|
13 |
+
--base-gutter: 20px;
|
14 |
+
--md-gutter: 30px;
|
15 |
+
--lg-gutter: 50px;
|
16 |
+
--xl-gutter: 70px;
|
17 |
+
}
|
18 |
+
}
|
19 |
+
@media (max-width: 1399.98px) {
|
20 |
+
:root {
|
21 |
+
--base-gutter: 20px;
|
22 |
+
--md-gutter: 30px;
|
23 |
+
--lg-gutter: 40px;
|
24 |
+
--xl-gutter: 50px;
|
25 |
+
}
|
26 |
+
}
|
27 |
+
@media (max-width: 1199.98px) {
|
28 |
+
:root {
|
29 |
+
--base-spacer-x: 10px;
|
30 |
+
--base-spacer-y: 10px;
|
31 |
+
--md-gutter: 20px;
|
32 |
+
--lg-gutter: 30px;
|
33 |
+
--xl-gutter: 40px;
|
34 |
+
}
|
35 |
+
}
|
36 |
+
@media (max-width: 991.98px) {
|
37 |
+
:root {
|
38 |
+
--base-spacer-x: 5px;
|
39 |
+
--base-spacer-y: 5px;
|
40 |
+
--md-gutter: 20px;
|
41 |
+
--lg-gutter: 30px;
|
42 |
+
--xl-gutter: 40px;
|
43 |
+
}
|
44 |
+
}
|
45 |
+
|
46 |
+
.disablecommentswrap {
|
47 |
+
font-size: 10px;
|
48 |
+
font-family: "DM Sans", sans-serif;
|
49 |
+
line-height: 1.7;
|
50 |
+
font-weight: 400;
|
51 |
+
letter-spacing: 0;
|
52 |
+
min-height: 100vh;
|
53 |
+
background: #ffffff;
|
54 |
+
color: #000000;
|
55 |
+
outline: none;
|
56 |
+
border: none;
|
57 |
+
box-sizing: border-box;
|
58 |
+
overflow: hidden;
|
59 |
+
-webkit-display: flex;
|
60 |
+
-moz-display: flex;
|
61 |
+
-ms-display: flex;
|
62 |
+
-o-display: flex;
|
63 |
+
display: flex;
|
64 |
+
-moz-flex-direction: column;
|
65 |
+
-o-flex-direction: column;
|
66 |
+
flex-direction: column;
|
67 |
+
}
|
68 |
+
.disablecommentswrap * {
|
69 |
+
box-sizing: border-box;
|
70 |
+
}
|
71 |
+
.disablecommentswrap ::selection {
|
72 |
+
color: #ffffff;
|
73 |
+
background: rgba(98, 60, 234, 0.8);
|
74 |
+
}
|
75 |
+
.disablecommentswrap ul,
|
76 |
+
.disablecommentswrap li {
|
77 |
+
list-style: none;
|
78 |
+
}
|
79 |
+
.disablecommentswrap a {
|
80 |
+
color: initial;
|
81 |
+
transition: all 0.3s linear;
|
82 |
+
text-decoration: none;
|
83 |
+
display: inline-block;
|
84 |
+
}
|
85 |
+
.disablecommentswrap label {
|
86 |
+
margin-bottom: 0;
|
87 |
+
}
|
88 |
+
.disablecommentswrap .button {
|
89 |
+
vertical-align: middle;
|
90 |
+
font-family: "DM Sans", sans-serif;
|
91 |
+
font-weight: 500;
|
92 |
+
}
|
93 |
+
.disablecommentswrap .button:hover, .disablecommentswrap .button:focus {
|
94 |
+
outline: none;
|
95 |
+
}
|
96 |
+
.disablecommentswrap .button:not(:disabled) {
|
97 |
+
cursor: pointer;
|
98 |
+
}
|
99 |
+
.disablecommentswrap h1,
|
100 |
+
.disablecommentswrap h2,
|
101 |
+
.disablecommentswrap h3,
|
102 |
+
.disablecommentswrap h4,
|
103 |
+
.disablecommentswrap h5,
|
104 |
+
.disablecommentswrap h6,
|
105 |
+
.disablecommentswrap p {
|
106 |
+
margin: 0;
|
107 |
+
padding: 0;
|
108 |
+
}
|
109 |
+
.disablecommentswrap h1,
|
110 |
+
.disablecommentswrap h2,
|
111 |
+
.disablecommentswrap h3,
|
112 |
+
.disablecommentswrap h4,
|
113 |
+
.disablecommentswrap h5,
|
114 |
+
.disablecommentswrap h6 {
|
115 |
+
font-family: "DM Sans", sans-serif;
|
116 |
+
font-weight: 700;
|
117 |
+
line-height: 1.3;
|
118 |
+
margin-top: 0;
|
119 |
+
margin-bottom: 0;
|
120 |
+
color: inherit;
|
121 |
+
}
|
122 |
+
.disablecommentswrap h1 a,
|
123 |
+
.disablecommentswrap h2 a,
|
124 |
+
.disablecommentswrap h3 a,
|
125 |
+
.disablecommentswrap h4 a,
|
126 |
+
.disablecommentswrap h5 a,
|
127 |
+
.disablecommentswrap h6 a {
|
128 |
+
color: inherit;
|
129 |
+
}
|
130 |
+
.disablecommentswrap h1 a:hover,
|
131 |
+
.disablecommentswrap h2 a:hover,
|
132 |
+
.disablecommentswrap h3 a:hover,
|
133 |
+
.disablecommentswrap h4 a:hover,
|
134 |
+
.disablecommentswrap h5 a:hover,
|
135 |
+
.disablecommentswrap h6 a:hover {
|
136 |
+
color: inherit;
|
137 |
+
}
|
138 |
+
.disablecommentswrap ul,
|
139 |
+
.disablecommentswrap ol {
|
140 |
+
margin-bottom: 0;
|
141 |
+
}
|
142 |
+
.disablecommentswrap img,
|
143 |
+
.disablecommentswrap video {
|
144 |
+
max-width: 100%;
|
145 |
+
}
|
146 |
+
|
147 |
+
.pt50 {
|
148 |
+
padding-top: 50px;
|
149 |
+
}
|
150 |
+
|
151 |
+
.pb50 {
|
152 |
+
padding-bottom: 50px;
|
153 |
+
}
|
154 |
+
|
155 |
+
.pt70 {
|
156 |
+
padding-top: 70px;
|
157 |
+
}
|
158 |
+
|
159 |
+
.pb70 {
|
160 |
+
padding-bottom: 70px;
|
161 |
+
}
|
162 |
+
|
163 |
+
.pt110 {
|
164 |
+
padding-top: 110px;
|
165 |
+
}
|
166 |
+
|
167 |
+
.pb110 {
|
168 |
+
padding-bottom: 110px;
|
169 |
+
}
|
170 |
+
|
171 |
+
.pt120 {
|
172 |
+
padding-top: 120px;
|
173 |
+
}
|
174 |
+
|
175 |
+
.pb120 {
|
176 |
+
padding-bottom: 120px;
|
177 |
+
}
|
178 |
+
|
179 |
+
.pt150 {
|
180 |
+
padding-top: 150px;
|
181 |
+
}
|
182 |
+
|
183 |
+
.pb150 {
|
184 |
+
padding-bottom: 150px;
|
185 |
+
}
|
186 |
+
|
187 |
+
.pt200 {
|
188 |
+
padding-top: 200px;
|
189 |
+
}
|
190 |
+
|
191 |
+
.pb200 {
|
192 |
+
padding-bottom: 200px;
|
193 |
+
}
|
194 |
+
|
195 |
+
.pt300 {
|
196 |
+
padding-top: 300px;
|
197 |
+
}
|
198 |
+
|
199 |
+
.pb300 {
|
200 |
+
padding-bottom: 300px;
|
201 |
+
}
|
202 |
+
|
203 |
+
.mt20 {
|
204 |
+
margin-top: 20px;
|
205 |
+
}
|
206 |
+
|
207 |
+
.mb20 {
|
208 |
+
margin-bottom: 20px;
|
209 |
+
}
|
210 |
+
|
211 |
+
.mt30 {
|
212 |
+
margin-top: 30px;
|
213 |
+
}
|
214 |
+
|
215 |
+
.mb30 {
|
216 |
+
margin-bottom: 30px;
|
217 |
+
}
|
218 |
+
|
219 |
+
.mt50 {
|
220 |
+
margin-top: 50px;
|
221 |
+
}
|
222 |
+
|
223 |
+
.mb50 {
|
224 |
+
margin-bottom: 50px;
|
225 |
+
}
|
226 |
+
|
227 |
+
.mt70 {
|
228 |
+
margin-top: 70px;
|
229 |
+
}
|
230 |
+
|
231 |
+
.mb70 {
|
232 |
+
margin-bottom: 70px;
|
233 |
+
}
|
234 |
+
|
235 |
+
.mt80 {
|
236 |
+
margin-top: 80px;
|
237 |
+
}
|
238 |
+
|
239 |
+
.mb80 {
|
240 |
+
margin-bottom: 80px;
|
241 |
+
}
|
242 |
+
|
243 |
+
.mt100 {
|
244 |
+
margin-top: 100px;
|
245 |
+
}
|
246 |
+
|
247 |
+
.mb100 {
|
248 |
+
margin-bottom: 100px;
|
249 |
+
}
|
250 |
+
|
251 |
+
.color__primary {
|
252 |
+
color: #623cea !important;
|
253 |
+
}
|
254 |
+
|
255 |
+
a.color__primary:hover, a.color__primary:focus {
|
256 |
+
color: #4218db;
|
257 |
+
box-shadow: none;
|
258 |
+
}
|
259 |
+
|
260 |
+
.color__secondary {
|
261 |
+
color: #fa7d51 !important;
|
262 |
+
}
|
263 |
+
|
264 |
+
a.color__secondary:hover, a.color__secondary:focus {
|
265 |
+
color: #f9581f;
|
266 |
+
box-shadow: none;
|
267 |
+
}
|
268 |
+
|
269 |
+
.color__success {
|
270 |
+
color: #05cb6b !important;
|
271 |
+
}
|
272 |
+
|
273 |
+
a.color__success:hover, a.color__success:focus {
|
274 |
+
color: #049951;
|
275 |
+
box-shadow: none;
|
276 |
+
}
|
277 |
+
|
278 |
+
.color__danger {
|
279 |
+
color: #e0061a !important;
|
280 |
+
}
|
281 |
+
|
282 |
+
a.color__danger:hover, a.color__danger:focus {
|
283 |
+
color: #ae0514;
|
284 |
+
box-shadow: none;
|
285 |
+
}
|
286 |
+
|
287 |
+
.color__info {
|
288 |
+
color: #00b2fc !important;
|
289 |
+
}
|
290 |
+
|
291 |
+
a.color__info:hover, a.color__info:focus {
|
292 |
+
color: #008ec9;
|
293 |
+
box-shadow: none;
|
294 |
+
}
|
295 |
+
|
296 |
+
.color__dark {
|
297 |
+
color: #22282d !important;
|
298 |
+
}
|
299 |
+
|
300 |
+
a.color__dark:hover, a.color__dark:focus {
|
301 |
+
color: #0c0e10;
|
302 |
+
box-shadow: none;
|
303 |
+
}
|
304 |
+
|
305 |
+
.color__white {
|
306 |
+
color: #ffffff !important;
|
307 |
+
}
|
308 |
+
|
309 |
+
a.color__white:hover, a.color__white:focus {
|
310 |
+
color: #e6e6e6;
|
311 |
+
box-shadow: none;
|
312 |
+
}
|
313 |
+
|
314 |
+
.color__black {
|
315 |
+
color: #000000 !important;
|
316 |
+
}
|
317 |
+
|
318 |
+
.color__grey {
|
319 |
+
color: #f4f6fc !important;
|
320 |
+
}
|
321 |
+
|
322 |
+
a.color__grey:hover, a.color__grey:focus {
|
323 |
+
color: #ccd5f1;
|
324 |
+
box-shadow: none;
|
325 |
+
}
|
326 |
+
|
327 |
+
.color__grey2 {
|
328 |
+
color: #808da1 !important;
|
329 |
+
}
|
330 |
+
|
331 |
+
a.color__grey2:hover, a.color__grey2:focus {
|
332 |
+
color: #657389;
|
333 |
+
box-shadow: none;
|
334 |
+
}
|
335 |
+
|
336 |
+
.color__twitter {
|
337 |
+
color: #1da1f2 !important;
|
338 |
+
}
|
339 |
+
|
340 |
+
a.color__twitter:hover, a.color__twitter:focus {
|
341 |
+
color: #0c85d0;
|
342 |
+
box-shadow: none;
|
343 |
+
}
|
344 |
+
|
345 |
+
.color__linkedin {
|
346 |
+
color: #0077b5 !important;
|
347 |
+
}
|
348 |
+
|
349 |
+
a.color__linkedin:hover, a.color__linkedin:focus {
|
350 |
+
color: #005582;
|
351 |
+
box-shadow: none;
|
352 |
+
}
|
353 |
+
|
354 |
+
.color__instagram {
|
355 |
+
color: #e1306c !important;
|
356 |
+
}
|
357 |
+
|
358 |
+
a.color__instagram:hover, a.color__instagram:focus {
|
359 |
+
color: #c21c54;
|
360 |
+
box-shadow: none;
|
361 |
+
}
|
362 |
+
|
363 |
+
.background__primary {
|
364 |
+
background-color: #623cea !important;
|
365 |
+
}
|
366 |
+
|
367 |
+
.background__secondary {
|
368 |
+
background-color: #fa7d51 !important;
|
369 |
+
}
|
370 |
+
|
371 |
+
.background__success {
|
372 |
+
background-color: #05cb6b !important;
|
373 |
+
}
|
374 |
+
|
375 |
+
.background__danger {
|
376 |
+
background-color: #e0061a !important;
|
377 |
+
}
|
378 |
+
|
379 |
+
.background__info {
|
380 |
+
background-color: #00b2fc !important;
|
381 |
+
}
|
382 |
+
|
383 |
+
.background__dark {
|
384 |
+
background-color: #22282d !important;
|
385 |
+
}
|
386 |
+
|
387 |
+
.background__white {
|
388 |
+
background-color: #ffffff !important;
|
389 |
+
}
|
390 |
+
|
391 |
+
.background__black {
|
392 |
+
background-color: #000000 !important;
|
393 |
+
}
|
394 |
+
|
395 |
+
.background__grey {
|
396 |
+
background-color: #f4f6fc !important;
|
397 |
+
}
|
398 |
+
|
399 |
+
.background__grey2 {
|
400 |
+
background-color: #808da1 !important;
|
401 |
+
}
|
402 |
+
|
403 |
+
.background__twitter {
|
404 |
+
background-color: #1da1f2 !important;
|
405 |
+
}
|
406 |
+
|
407 |
+
.background__linkedin {
|
408 |
+
background-color: #0077b5 !important;
|
409 |
+
}
|
410 |
+
|
411 |
+
.background__instagram {
|
412 |
+
background-color: #e1306c !important;
|
413 |
+
}
|
414 |
+
|
415 |
+
.gradient__primary {
|
416 |
+
background-image: linear-gradient(180deg, rgba(98, 60, 234, 0.3), rgba(98, 60, 234, 0.05));
|
417 |
+
color: #623cea;
|
418 |
+
}
|
419 |
+
|
420 |
+
.gradient__secondary {
|
421 |
+
background-image: linear-gradient(180deg, rgba(250, 125, 81, 0.3), rgba(250, 125, 81, 0.05));
|
422 |
+
color: #fa7d51;
|
423 |
+
}
|
424 |
+
|
425 |
+
.gradient__success {
|
426 |
+
background-image: linear-gradient(180deg, rgba(5, 203, 107, 0.3), rgba(5, 203, 107, 0.05));
|
427 |
+
color: #05cb6b;
|
428 |
+
}
|
429 |
+
|
430 |
+
.gradient__danger {
|
431 |
+
background-image: linear-gradient(180deg, rgba(224, 6, 26, 0.3), rgba(224, 6, 26, 0.05));
|
432 |
+
color: #e0061a;
|
433 |
+
}
|
434 |
+
|
435 |
+
.gradient__info {
|
436 |
+
background-image: linear-gradient(180deg, rgba(0, 178, 252, 0.3), rgba(0, 178, 252, 0.05));
|
437 |
+
color: #00b2fc;
|
438 |
+
}
|
439 |
+
|
440 |
+
.gradient__dark {
|
441 |
+
background-image: linear-gradient(180deg, rgba(34, 40, 45, 0.3), rgba(34, 40, 45, 0.05));
|
442 |
+
color: #22282d;
|
443 |
+
}
|
444 |
+
|
445 |
+
.gradient__white {
|
446 |
+
background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.05));
|
447 |
+
color: #ffffff;
|
448 |
+
}
|
449 |
+
|
450 |
+
.gradient__black {
|
451 |
+
background-image: linear-gradient(180deg, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.05));
|
452 |
+
color: #000000;
|
453 |
+
}
|
454 |
+
|
455 |
+
.gradient__grey {
|
456 |
+
background-image: linear-gradient(180deg, rgba(244, 246, 252, 0.3), rgba(244, 246, 252, 0.05));
|
457 |
+
color: #f4f6fc;
|
458 |
+
}
|
459 |
+
|
460 |
+
.gradient__grey2 {
|
461 |
+
background-image: linear-gradient(180deg, rgba(128, 141, 161, 0.3), rgba(128, 141, 161, 0.05));
|
462 |
+
color: #808da1;
|
463 |
+
}
|
464 |
+
|
465 |
+
.gradient__twitter {
|
466 |
+
background-image: linear-gradient(180deg, rgba(29, 161, 242, 0.3), rgba(29, 161, 242, 0.05));
|
467 |
+
color: #1da1f2;
|
468 |
+
}
|
469 |
+
|
470 |
+
.gradient__linkedin {
|
471 |
+
background-image: linear-gradient(180deg, rgba(0, 119, 181, 0.3), rgba(0, 119, 181, 0.05));
|
472 |
+
color: #0077b5;
|
473 |
+
}
|
474 |
+
|
475 |
+
.gradient__instagram {
|
476 |
+
background-image: linear-gradient(180deg, rgba(225, 48, 108, 0.3), rgba(225, 48, 108, 0.05));
|
477 |
+
color: #e1306c;
|
478 |
+
}
|
479 |
+
|
480 |
+
.cloud__info__card__icon__primary {
|
481 |
+
background-image: linear-gradient(180deg, rgba(98, 60, 234, 0.3), rgba(98, 60, 234, 0.05));
|
482 |
+
color: #623cea;
|
483 |
+
}
|
484 |
+
|
485 |
+
.cloud__info__card__icon__secondary {
|
486 |
+
background-image: linear-gradient(180deg, rgba(250, 125, 81, 0.3), rgba(250, 125, 81, 0.05));
|
487 |
+
color: #fa7d51;
|
488 |
+
}
|
489 |
+
|
490 |
+
.cloud__info__card__icon__success {
|
491 |
+
background-image: linear-gradient(180deg, rgba(5, 203, 107, 0.3), rgba(5, 203, 107, 0.05));
|
492 |
+
color: #05cb6b;
|
493 |
+
}
|
494 |
+
|
495 |
+
.cloud__info__card__icon__danger {
|
496 |
+
background-image: linear-gradient(180deg, rgba(224, 6, 26, 0.3), rgba(224, 6, 26, 0.05));
|
497 |
+
color: #e0061a;
|
498 |
+
}
|
499 |
+
|
500 |
+
.cloud__info__card__icon__info {
|
501 |
+
background-image: linear-gradient(180deg, rgba(0, 178, 252, 0.3), rgba(0, 178, 252, 0.05));
|
502 |
+
color: #00b2fc;
|
503 |
+
}
|
504 |
+
|
505 |
+
.cloud__info__card__icon__dark {
|
506 |
+
background-image: linear-gradient(180deg, rgba(34, 40, 45, 0.3), rgba(34, 40, 45, 0.05));
|
507 |
+
color: #22282d;
|
508 |
+
}
|
509 |
+
|
510 |
+
.cloud__info__card__icon__white {
|
511 |
+
background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.05));
|
512 |
+
color: #ffffff;
|
513 |
+
}
|
514 |
+
|
515 |
+
.cloud__info__card__icon__black {
|
516 |
+
background-image: linear-gradient(180deg, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.05));
|
517 |
+
color: #000000;
|
518 |
+
}
|
519 |
+
|
520 |
+
.cloud__info__card__icon__grey {
|
521 |
+
background-image: linear-gradient(180deg, rgba(244, 246, 252, 0.3), rgba(244, 246, 252, 0.05));
|
522 |
+
color: #f4f6fc;
|
523 |
+
}
|
524 |
+
|
525 |
+
.cloud__info__card__icon__grey2 {
|
526 |
+
background-image: linear-gradient(180deg, rgba(128, 141, 161, 0.3), rgba(128, 141, 161, 0.05));
|
527 |
+
color: #808da1;
|
528 |
+
}
|
529 |
+
|
530 |
+
.cloud__info__card__icon__twitter {
|
531 |
+
background-image: linear-gradient(180deg, rgba(29, 161, 242, 0.3), rgba(29, 161, 242, 0.05));
|
532 |
+
color: #1da1f2;
|
533 |
+
}
|
534 |
+
|
535 |
+
.cloud__info__card__icon__linkedin {
|
536 |
+
background-image: linear-gradient(180deg, rgba(0, 119, 181, 0.3), rgba(0, 119, 181, 0.05));
|
537 |
+
color: #0077b5;
|
538 |
+
}
|
539 |
+
|
540 |
+
.cloud__info__card__icon__instagram {
|
541 |
+
background-image: linear-gradient(180deg, rgba(225, 48, 108, 0.3), rgba(225, 48, 108, 0.05));
|
542 |
+
color: #e1306c;
|
543 |
+
}
|
544 |
+
|
545 |
+
.counter__card__primary .counter__card--icon {
|
546 |
+
color: white;
|
547 |
+
background: #623cea;
|
548 |
+
}
|
549 |
+
.counter__card__primary .counter__card--icon:before {
|
550 |
+
background: #623cea;
|
551 |
+
}
|
552 |
+
.counter__card__primary .counter__card--content .count__number {
|
553 |
+
color: #623cea;
|
554 |
+
}
|
555 |
+
|
556 |
+
.counter__card__secondary .counter__card--icon {
|
557 |
+
color: white;
|
558 |
+
background: #fa7d51;
|
559 |
+
}
|
560 |
+
.counter__card__secondary .counter__card--icon:before {
|
561 |
+
background: #fa7d51;
|
562 |
+
}
|
563 |
+
.counter__card__secondary .counter__card--content .count__number {
|
564 |
+
color: #fa7d51;
|
565 |
+
}
|
566 |
+
|
567 |
+
.counter__card__success .counter__card--icon {
|
568 |
+
color: white;
|
569 |
+
background: #05cb6b;
|
570 |
+
}
|
571 |
+
.counter__card__success .counter__card--icon:before {
|
572 |
+
background: #05cb6b;
|
573 |
+
}
|
574 |
+
.counter__card__success .counter__card--content .count__number {
|
575 |
+
color: #05cb6b;
|
576 |
+
}
|
577 |
+
|
578 |
+
.counter__card__danger .counter__card--icon {
|
579 |
+
color: white;
|
580 |
+
background: #e0061a;
|
581 |
+
}
|
582 |
+
.counter__card__danger .counter__card--icon:before {
|
583 |
+
background: #e0061a;
|
584 |
+
}
|
585 |
+
.counter__card__danger .counter__card--content .count__number {
|
586 |
+
color: #e0061a;
|
587 |
+
}
|
588 |
+
|
589 |
+
.counter__card__info .counter__card--icon {
|
590 |
+
color: white;
|
591 |
+
background: #00b2fc;
|
592 |
+
}
|
593 |
+
.counter__card__info .counter__card--icon:before {
|
594 |
+
background: #00b2fc;
|
595 |
+
}
|
596 |
+
.counter__card__info .counter__card--content .count__number {
|
597 |
+
color: #00b2fc;
|
598 |
+
}
|
599 |
+
|
600 |
+
.counter__card__dark .counter__card--icon {
|
601 |
+
color: white;
|
602 |
+
background: #22282d;
|
603 |
+
}
|
604 |
+
.counter__card__dark .counter__card--icon:before {
|
605 |
+
background: #22282d;
|
606 |
+
}
|
607 |
+
.counter__card__dark .counter__card--content .count__number {
|
608 |
+
color: #22282d;
|
609 |
+
}
|
610 |
+
|
611 |
+
.counter__card__white .counter__card--icon {
|
612 |
+
color: #22282d;
|
613 |
+
background: #ffffff;
|
614 |
+
}
|
615 |
+
.counter__card__white .counter__card--icon:before {
|
616 |
+
background: #ffffff;
|
617 |
+
}
|
618 |
+
.counter__card__white .counter__card--content .count__number {
|
619 |
+
color: #ffffff;
|
620 |
+
}
|
621 |
+
|
622 |
+
.counter__card__black .counter__card--icon {
|
623 |
+
color: white;
|
624 |
+
background: #000000;
|
625 |
+
}
|
626 |
+
.counter__card__black .counter__card--icon:before {
|
627 |
+
background: #000000;
|
628 |
+
}
|
629 |
+
.counter__card__black .counter__card--content .count__number {
|
630 |
+
color: #000000;
|
631 |
+
}
|
632 |
+
|
633 |
+
.counter__card__grey .counter__card--icon {
|
634 |
+
color: #22282d;
|
635 |
+
background: #f4f6fc;
|
636 |
+
}
|
637 |
+
.counter__card__grey .counter__card--icon:before {
|
638 |
+
background: #f4f6fc;
|
639 |
+
}
|
640 |
+
.counter__card__grey .counter__card--content .count__number {
|
641 |
+
color: #f4f6fc;
|
642 |
+
}
|
643 |
+
|
644 |
+
.counter__card__grey2 .counter__card--icon {
|
645 |
+
color: white;
|
646 |
+
background: #808da1;
|
647 |
+
}
|
648 |
+
.counter__card__grey2 .counter__card--icon:before {
|
649 |
+
background: #808da1;
|
650 |
+
}
|
651 |
+
.counter__card__grey2 .counter__card--content .count__number {
|
652 |
+
color: #808da1;
|
653 |
+
}
|
654 |
+
|
655 |
+
.counter__card__twitter .counter__card--icon {
|
656 |
+
color: white;
|
657 |
+
background: #1da1f2;
|
658 |
+
}
|
659 |
+
.counter__card__twitter .counter__card--icon:before {
|
660 |
+
background: #1da1f2;
|
661 |
+
}
|
662 |
+
.counter__card__twitter .counter__card--content .count__number {
|
663 |
+
color: #1da1f2;
|
664 |
+
}
|
665 |
+
|
666 |
+
.counter__card__linkedin .counter__card--icon {
|
667 |
+
color: white;
|
668 |
+
background: #0077b5;
|
669 |
+
}
|
670 |
+
.counter__card__linkedin .counter__card--icon:before {
|
671 |
+
background: #0077b5;
|
672 |
+
}
|
673 |
+
.counter__card__linkedin .counter__card--content .count__number {
|
674 |
+
color: #0077b5;
|
675 |
+
}
|
676 |
+
|
677 |
+
.counter__card__instagram .counter__card--icon {
|
678 |
+
color: white;
|
679 |
+
background: #e1306c;
|
680 |
+
}
|
681 |
+
.counter__card__instagram .counter__card--icon:before {
|
682 |
+
background: #e1306c;
|
683 |
+
}
|
684 |
+
.counter__card__instagram .counter__card--content .count__number {
|
685 |
+
color: #e1306c;
|
686 |
+
}
|
687 |
+
|
688 |
+
.m-0-5 {
|
689 |
+
margin: calc( 0.5 * var(--base-spacer-x)) calc( 0.5 * var(--base-spacer-x));
|
690 |
+
}
|
691 |
+
|
692 |
+
.mt-0-5 {
|
693 |
+
margin-top: calc( 0.5 * var(--base-spacer-x));
|
694 |
+
}
|
695 |
+
|
696 |
+
.mr-0-5 {
|
697 |
+
margin-right: calc( 0.5 * var(--base-spacer-x));
|
698 |
+
}
|
699 |
+
|
700 |
+
.mb-0-5 {
|
701 |
+
margin-bottom: calc( 0.5 * var(--base-spacer-x));
|
702 |
+
}
|
703 |
+
|
704 |
+
.ml-0-5 {
|
705 |
+
margin-left: calc( 0.5 * var(--base-spacer-x));
|
706 |
+
}
|
707 |
+
|
708 |
+
.my-0-5 {
|
709 |
+
margin-top: calc( 0.5 * var(--base-spacer-x));
|
710 |
+
margin-bottom: calc( 0.5 * var(--base-spacer-x));
|
711 |
+
}
|
712 |
+
|
713 |
+
.m-1 {
|
714 |
+
margin: calc( 1 * var(--base-spacer-x)) calc( 1 * var(--base-spacer-x));
|
715 |
+
}
|
716 |
+
|
717 |
+
.mt-1 {
|
718 |
+
margin-top: calc( 1 * var(--base-spacer-x));
|
719 |
+
}
|
720 |
+
|
721 |
+
.mr-1 {
|
722 |
+
margin-right: calc( 1 * var(--base-spacer-x));
|
723 |
+
}
|
724 |
+
|
725 |
+
.mb-1 {
|
726 |
+
margin-bottom: calc( 1 * var(--base-spacer-x));
|
727 |
+
}
|
728 |
+
|
729 |
+
.ml-1 {
|
730 |
+
margin-left: calc( 1 * var(--base-spacer-x));
|
731 |
+
}
|
732 |
+
|
733 |
+
.my-1 {
|
734 |
+
margin-top: calc( 1 * var(--base-spacer-x));
|
735 |
+
margin-bottom: calc( 1 * var(--base-spacer-x));
|
736 |
+
}
|
737 |
+
|
738 |
+
.m-1-5 {
|
739 |
+
margin: calc( 1.5 * var(--base-spacer-x)) calc( 1.5 * var(--base-spacer-x));
|
740 |
+
}
|
741 |
+
|
742 |
+
.mt-1-5 {
|
743 |
+
margin-top: calc( 1.5 * var(--base-spacer-x));
|
744 |
+
}
|
745 |
+
|
746 |
+
.mr-1-5 {
|
747 |
+
margin-right: calc( 1.5 * var(--base-spacer-x));
|
748 |
+
}
|
749 |
+
|
750 |
+
.mb-1-5 {
|
751 |
+
margin-bottom: calc( 1.5 * var(--base-spacer-x));
|
752 |
+
}
|
753 |
+
|
754 |
+
.ml-1-5 {
|
755 |
+
margin-left: calc( 1.5 * var(--base-spacer-x));
|
756 |
+
}
|
757 |
+
|
758 |
+
.my-1-5 {
|
759 |
+
margin-top: calc( 1.5 * var(--base-spacer-x));
|
760 |
+
margin-bottom: calc( 1.5 * var(--base-spacer-x));
|
761 |
+
}
|
762 |
+
|
763 |
+
.m-2 {
|
764 |
+
margin: calc( 2 * var(--base-spacer-y)) calc( 2 * var(--base-spacer-x));
|
765 |
+
}
|
766 |
+
|
767 |
+
.mt-2 {
|
768 |
+
margin-top: calc( 2 * var(--base-spacer-y));
|
769 |
+
}
|
770 |
+
|
771 |
+
.mr-2 {
|
772 |
+
margin-right: calc( 2 * var(--base-spacer-x));
|
773 |
+
}
|
774 |
+
|
775 |
+
.mb-2 {
|
776 |
+
margin-bottom: calc( 2 * var(--base-spacer-y));
|
777 |
+
}
|
778 |
+
|
779 |
+
.ml-2 {
|
780 |
+
margin-left: calc( 2 * var(--base-spacer-x));
|
781 |
+
}
|
782 |
+
|
783 |
+
.my-2 {
|
784 |
+
margin-top: calc( 2 * var(--base-spacer-y));
|
785 |
+
margin-bottom: calc( 2 * var(--base-spacer-y));
|
786 |
+
}
|
787 |
+
|
788 |
+
.m-2-5 {
|
789 |
+
margin: calc( 2.5 * var(--base-spacer-y)) calc( 2.5 * var(--base-spacer-x));
|
790 |
+
}
|
791 |
+
|
792 |
+
.mt-2-5 {
|
793 |
+
margin-top: calc( 2.5 * var(--base-spacer-y));
|
794 |
+
}
|
795 |
+
|
796 |
+
.mr-2-5 {
|
797 |
+
margin-right: calc( 2.5 * var(--base-spacer-x));
|
798 |
+
}
|
799 |
+
|
800 |
+
.mb-2-5 {
|
801 |
+
margin-bottom: calc( 2.5 * var(--base-spacer-y));
|
802 |
+
}
|
803 |
+
|
804 |
+
.ml-2-5 {
|
805 |
+
margin-left: calc( 2.5 * var(--base-spacer-x));
|
806 |
+
}
|
807 |
+
|
808 |
+
.my-2-5 {
|
809 |
+
margin-top: calc( 2.5 * var(--base-spacer-y));
|
810 |
+
margin-bottom: calc( 2.5 * var(--base-spacer-y));
|
811 |
+
}
|
812 |
+
|
813 |
+
.m-3 {
|
814 |
+
margin: calc( 3 * var(--base-spacer-y)) calc( 3 * var(--base-spacer-x));
|
815 |
+
}
|
816 |
+
|
817 |
+
.mt-3 {
|
818 |
+
margin-top: calc( 3 * var(--base-spacer-y));
|
819 |
+
}
|
820 |
+
|
821 |
+
.mr-3 {
|
822 |
+
margin-right: calc( 3 * var(--base-spacer-x));
|
823 |
+
}
|
824 |
+
|
825 |
+
.mb-3 {
|
826 |
+
margin-bottom: calc( 3 * var(--base-spacer-y));
|
827 |
+
}
|
828 |
+
|
829 |
+
.ml-3 {
|
830 |
+
margin-left: calc( 3 * var(--base-spacer-x));
|
831 |
+
}
|
832 |
+
|
833 |
+
.my-3 {
|
834 |
+
margin-top: calc( 3 * var(--base-spacer-y));
|
835 |
+
margin-bottom: calc( 3 * var(--base-spacer-y));
|
836 |
+
}
|
837 |
+
|
838 |
+
.m-3-5 {
|
839 |
+
margin: calc( 3.5 * var(--base-spacer-y)) calc( 3.5 * var(--base-spacer-x));
|
840 |
+
}
|
841 |
+
|
842 |
+
.mt-3-5 {
|
843 |
+
margin-top: calc( 3.5 * var(--base-spacer-y));
|
844 |
+
}
|
845 |
+
|
846 |
+
.mr-3-5 {
|
847 |
+
margin-right: calc( 3.5 * var(--base-spacer-x));
|
848 |
+
}
|
849 |
+
|
850 |
+
.mb-3-5 {
|
851 |
+
margin-bottom: calc( 3.5 * var(--base-spacer-y));
|
852 |
+
}
|
853 |
+
|
854 |
+
.ml-3-5 {
|
855 |
+
margin-left: calc( 3.5 * var(--base-spacer-x));
|
856 |
+
}
|
857 |
+
|
858 |
+
.my-3-5 {
|
859 |
+
margin-top: calc( 3.5 * var(--base-spacer-y));
|
860 |
+
margin-bottom: calc( 3.5 * var(--base-spacer-y));
|
861 |
+
}
|
862 |
+
|
863 |
+
.m-4 {
|
864 |
+
margin: calc( 4 * var(--base-spacer-x)) calc( 4 * var(--base-spacer-x));
|
865 |
+
}
|
866 |
+
|
867 |
+
.mt-4 {
|
868 |
+
margin-top: calc( 4 * var(--base-spacer-x));
|
869 |
+
}
|
870 |
+
|
871 |
+
.mr-4 {
|
872 |
+
margin-right: calc( 4 * var(--base-spacer-x));
|
873 |
+
}
|
874 |
+
|
875 |
+
.mb-4 {
|
876 |
+
margin-bottom: calc( 4 * var(--base-spacer-x));
|
877 |
+
}
|
878 |
+
|
879 |
+
.ml-4 {
|
880 |
+
margin-left: calc( 4 * var(--base-spacer-x));
|
881 |
+
}
|
882 |
+
|
883 |
+
.my-4 {
|
884 |
+
margin-top: calc( 4 * var(--base-spacer-x));
|
885 |
+
margin-bottom: calc( 4 * var(--base-spacer-x));
|
886 |
+
}
|
887 |
+
|
888 |
+
.m-5 {
|
889 |
+
margin: calc( 5 * var(--base-spacer-x)) calc( 5 * var(--base-spacer-x));
|
890 |
+
}
|
891 |
+
|
892 |
+
.mt-5 {
|
893 |
+
margin-top: calc( 5 * var(--base-spacer-x));
|
894 |
+
}
|
895 |
+
|
896 |
+
.mr-5 {
|
897 |
+
margin-right: calc( 5 * var(--base-spacer-x));
|
898 |
+
}
|
899 |
+
|
900 |
+
.mb-5 {
|
901 |
+
margin-bottom: calc( 5 * var(--base-spacer-x));
|
902 |
+
}
|
903 |
+
|
904 |
+
.ml-5 {
|
905 |
+
margin-left: calc( 5 * var(--base-spacer-x));
|
906 |
+
}
|
907 |
+
|
908 |
+
.my-5 {
|
909 |
+
margin-top: calc( 5 * var(--base-spacer-x));
|
910 |
+
margin-bottom: calc( 5 * var(--base-spacer-x));
|
911 |
+
}
|
912 |
+
|
913 |
+
.mx-auto {
|
914 |
+
margin-left: auto;
|
915 |
+
margin-right: auto;
|
916 |
+
}
|
917 |
+
|
918 |
+
.p-0-5 {
|
919 |
+
padding: calc( 0.5 * var(--base-spacer-x)) calc( 0.5 * var(--base-spacer-x));
|
920 |
+
}
|
921 |
+
|
922 |
+
.pt-0-5 {
|
923 |
+
padding-top: calc( 0.5 * var(--base-spacer-x));
|
924 |
+
}
|
925 |
+
|
926 |
+
.pr-0-5 {
|
927 |
+
padding-right: calc( 0.5 * var(--base-spacer-x));
|
928 |
+
}
|
929 |
+
|
930 |
+
.pb-0-5 {
|
931 |
+
padding-bottom: calc( 0.5 * var(--base-spacer-x));
|
932 |
+
}
|
933 |
+
|
934 |
+
.pl-0-5 {
|
935 |
+
padding-left: calc( 0.5 * var(--base-spacer-x));
|
936 |
+
}
|
937 |
+
|
938 |
+
.py-0-5 {
|
939 |
+
padding-top: calc( 0.5 * var(--base-spacer-x));
|
940 |
+
padding-bottom: calc( 0.5 * var(--base-spacer-x));
|
941 |
+
}
|
942 |
+
|
943 |
+
.p-1 {
|
944 |
+
padding: calc( 1 * var(--base-spacer-x)) calc( 1 * var(--base-spacer-x));
|
945 |
+
}
|
946 |
+
|
947 |
+
.pt-1 {
|
948 |
+
padding-top: calc( 1 * var(--base-spacer-x));
|
949 |
+
}
|
950 |
+
|
951 |
+
.pr-1 {
|
952 |
+
padding-right: calc( 1 * var(--base-spacer-x));
|
953 |
+
}
|
954 |
+
|
955 |
+
.pb-1 {
|
956 |
+
padding-bottom: calc( 1 * var(--base-spacer-x));
|
957 |
+
}
|
958 |
+
|
959 |
+
.pl-1 {
|
960 |
+
padding-left: calc( 1 * var(--base-spacer-x));
|
961 |
+
}
|
962 |
+
|
963 |
+
.py-1 {
|
964 |
+
padding-top: calc( 1 * var(--base-spacer-x));
|
965 |
+
padding-bottom: calc( 1 * var(--base-spacer-x));
|
966 |
+
}
|
967 |
+
|
968 |
+
.p-1-5 {
|
969 |
+
padding: calc( 1.5 * var(--base-spacer-x)) calc( 1.5 * var(--base-spacer-x));
|
970 |
+
}
|
971 |
+
|
972 |
+
.pt-1-5 {
|
973 |
+
padding-top: calc( 1.5 * var(--base-spacer-x));
|
974 |
+
}
|
975 |
+
|
976 |
+
.pr-1-5 {
|
977 |
+
padding-right: calc( 1.5 * var(--base-spacer-x));
|
978 |
+
}
|
979 |
+
|
980 |
+
.pb-1-5 {
|
981 |
+
padding-bottom: calc( 1.5 * var(--base-spacer-x));
|
982 |
+
}
|
983 |
+
|
984 |
+
.pl-1-5 {
|
985 |
+
padding-left: calc( 1.5 * var(--base-spacer-x));
|
986 |
+
}
|
987 |
+
|
988 |
+
.py-1-5 {
|
989 |
+
padding-top: calc( 1.5 * var(--base-spacer-x));
|
990 |
+
padding-bottom: calc( 1.5 * var(--base-spacer-x));
|
991 |
+
}
|
992 |
+
|
993 |
+
.p-2 {
|
994 |
+
padding: calc( 2 * var(--base-spacer-y)) calc( 2 * var(--base-spacer-x));
|
995 |
+
}
|
996 |
+
|
997 |
+
.pt-2 {
|
998 |
+
padding-top: calc( 2 * var(--base-spacer-y));
|
999 |
+
}
|
1000 |
+
|
1001 |
+
.pr-2 {
|
1002 |
+
padding-right: calc( 2 * var(--base-spacer-x));
|
1003 |
+
}
|
1004 |
+
|
1005 |
+
.pb-2 {
|
1006 |
+
padding-bottom: calc( 2 * var(--base-spacer-y));
|
1007 |
+
}
|
1008 |
+
|
1009 |
+
.pl-2 {
|
1010 |
+
padding-left: calc( 2 * var(--base-spacer-x));
|
1011 |
+
}
|
1012 |
+
|
1013 |
+
.py-2 {
|
1014 |
+
padding-top: calc( 2 * var(--base-spacer-y));
|
1015 |
+
padding-bottom: calc( 2 * var(--base-spacer-y));
|
1016 |
+
}
|
1017 |
+
|
1018 |
+
.p-2-5 {
|
1019 |
+
padding: calc( 2.5 * var(--base-spacer-y)) calc( 2.5 * var(--base-spacer-x));
|
1020 |
+
}
|
1021 |
+
|
1022 |
+
.pt-2-5 {
|
1023 |
+
padding-top: calc( 2.5 * var(--base-spacer-y));
|
1024 |
+
}
|
1025 |
+
|
1026 |
+
.pr-2-5 {
|
1027 |
+
padding-right: calc( 2.5 * var(--base-spacer-x));
|
1028 |
+
}
|
1029 |
+
|
1030 |
+
.pb-2-5 {
|
1031 |
+
padding-bottom: calc( 2.5 * var(--base-spacer-y));
|
1032 |
+
}
|
1033 |
+
|
1034 |
+
.pl-2-5 {
|
1035 |
+
padding-left: calc( 2.5 * var(--base-spacer-x));
|
1036 |
+
}
|
1037 |
+
|
1038 |
+
.py-2-5 {
|
1039 |
+
padding-top: calc( 2.5 * var(--base-spacer-y));
|
1040 |
+
padding-bottom: calc( 2.5 * var(--base-spacer-y));
|
1041 |
+
}
|
1042 |
+
|
1043 |
+
.p-3 {
|
1044 |
+
padding: calc( 3 * var(--base-spacer-y)) calc( 3 * var(--base-spacer-x));
|
1045 |
+
}
|
1046 |
+
|
1047 |
+
.pt-3 {
|
1048 |
+
padding-top: calc( 3 * var(--base-spacer-y));
|
1049 |
+
}
|
1050 |
+
|
1051 |
+
.pr-3 {
|
1052 |
+
padding-right: calc( 3 * var(--base-spacer-x));
|
1053 |
+
}
|
1054 |
+
|
1055 |
+
.pb-3 {
|
1056 |
+
padding-bottom: calc( 3 * var(--base-spacer-y));
|
1057 |
+
}
|
1058 |
+
|
1059 |
+
.pl-3 {
|
1060 |
+
padding-left: calc( 3 * var(--base-spacer-x));
|
1061 |
+
}
|
1062 |
+
|
1063 |
+
.py-3 {
|
1064 |
+
padding-top: calc( 3 * var(--base-spacer-y));
|
1065 |
+
padding-bottom: calc( 3 * var(--base-spacer-y));
|
1066 |
+
}
|
1067 |
+
|
1068 |
+
.p-3-5 {
|
1069 |
+
padding: calc( 3.5 * var(--base-spacer-y)) calc( 3.5 * var(--base-spacer-x));
|
1070 |
+
}
|
1071 |
+
|
1072 |
+
.pt-3-5 {
|
1073 |
+
padding-top: calc( 3.5 * var(--base-spacer-y));
|
1074 |
+
}
|
1075 |
+
|
1076 |
+
.pr-3-5 {
|
1077 |
+
padding-right: calc( 3.5 * var(--base-spacer-x));
|
1078 |
+
}
|
1079 |
+
|
1080 |
+
.pb-3-5 {
|
1081 |
+
padding-bottom: calc( 3.5 * var(--base-spacer-y));
|
1082 |
+
}
|
1083 |
+
|
1084 |
+
.pl-3-5 {
|
1085 |
+
padding-left: calc( 3.5 * var(--base-spacer-x));
|
1086 |
+
}
|
1087 |
+
|
1088 |
+
.py-3-5 {
|
1089 |
+
padding-top: calc( 3.5 * var(--base-spacer-y));
|
1090 |
+
padding-bottom: calc( 3.5 * var(--base-spacer-y));
|
1091 |
+
}
|
1092 |
+
|
1093 |
+
.p-4 {
|
1094 |
+
padding: calc( 4 * var(--base-spacer-x)) calc( 4 * var(--base-spacer-x));
|
1095 |
+
}
|
1096 |
+
|
1097 |
+
.pt-4 {
|
1098 |
+
padding-top: calc( 4 * var(--base-spacer-x));
|
1099 |
+
}
|
1100 |
+
|
1101 |
+
.pr-4 {
|
1102 |
+
padding-right: calc( 4 * var(--base-spacer-x));
|
1103 |
+
}
|
1104 |
+
|
1105 |
+
.pb-4 {
|
1106 |
+
padding-bottom: calc( 4 * var(--base-spacer-x));
|
1107 |
+
}
|
1108 |
+
|
1109 |
+
.pl-4 {
|
1110 |
+
padding-left: calc( 4 * var(--base-spacer-x));
|
1111 |
+
}
|
1112 |
+
|
1113 |
+
.py-4 {
|
1114 |
+
padding-top: calc( 4 * var(--base-spacer-x));
|
1115 |
+
padding-bottom: calc( 4 * var(--base-spacer-x));
|
1116 |
+
}
|
1117 |
+
|
1118 |
+
.p-5 {
|
1119 |
+
padding: calc( 5 * var(--base-spacer-x)) calc( 5 * var(--base-spacer-x));
|
1120 |
+
}
|
1121 |
+
|
1122 |
+
.pt-5 {
|
1123 |
+
padding-top: calc( 5 * var(--base-spacer-x));
|
1124 |
+
}
|
1125 |
+
|
1126 |
+
.pr-5 {
|
1127 |
+
padding-right: calc( 5 * var(--base-spacer-x));
|
1128 |
+
}
|
1129 |
+
|
1130 |
+
.pb-5 {
|
1131 |
+
padding-bottom: calc( 5 * var(--base-spacer-x));
|
1132 |
+
}
|
1133 |
+
|
1134 |
+
.pl-5 {
|
1135 |
+
padding-left: calc( 5 * var(--base-spacer-x));
|
1136 |
+
}
|
1137 |
+
|
1138 |
+
.py-5 {
|
1139 |
+
padding-top: calc( 5 * var(--base-spacer-x));
|
1140 |
+
padding-bottom: calc( 5 * var(--base-spacer-x));
|
1141 |
+
}
|
1142 |
+
|
1143 |
+
.px-auto {
|
1144 |
+
padding-left: auto;
|
1145 |
+
padding-right: auto;
|
1146 |
+
}
|
1147 |
+
|
1148 |
+
.disablecommentswrap {
|
1149 |
+
padding: 30px;
|
1150 |
+
}
|
1151 |
+
@media (max-width: 575.98px) {
|
1152 |
+
.disablecommentswrap {
|
1153 |
+
padding: 30px;
|
1154 |
+
}
|
1155 |
+
}
|
1156 |
+
.disablecommentswrap .delete-comments-not-found {
|
1157 |
+
width: 60%;
|
1158 |
+
margin: 0 auto;
|
1159 |
+
text-align: center;
|
1160 |
+
}
|
1161 |
+
.disablecommentswrap .delete-comments-not-found .error-message {
|
1162 |
+
margin-top: 30px;
|
1163 |
+
color: #444;
|
1164 |
+
}
|
1165 |
+
|
1166 |
+
@media (max-width: 1199.98px) {
|
1167 |
+
.sidebar__widget__wrap {
|
1168 |
+
margin-top: 50px;
|
1169 |
+
}
|
1170 |
+
}
|
1171 |
+
|
1172 |
+
.dc-text__block {
|
1173 |
+
background: #ffffff;
|
1174 |
+
padding: 20px;
|
1175 |
+
border-radius: 10px;
|
1176 |
+
}
|
1177 |
+
.dc-text__block__big__pad {
|
1178 |
+
padding: 40px 50px;
|
1179 |
+
background: #ffffff;
|
1180 |
+
border-radius: 10px;
|
1181 |
+
}
|
1182 |
+
@media (max-width: 767.98px) {
|
1183 |
+
.dc-text__block__big__pad {
|
1184 |
+
padding: 40px 25px;
|
1185 |
+
}
|
1186 |
+
}
|
1187 |
+
|
1188 |
+
.dc-container {
|
1189 |
+
width: 100%;
|
1190 |
+
max-width: 1200px;
|
1191 |
+
margin: 0 auto;
|
1192 |
+
}
|
1193 |
+
|
1194 |
+
.dc-row {
|
1195 |
+
display: flex;
|
1196 |
+
flex-wrap: wrap;
|
1197 |
+
margin-right: -15px;
|
1198 |
+
margin-left: -15px;
|
1199 |
+
}
|
1200 |
+
|
1201 |
+
.dc-col {
|
1202 |
+
flex-basis: 0;
|
1203 |
+
flex-grow: 1;
|
1204 |
+
max-width: 100%;
|
1205 |
+
}
|
1206 |
+
|
1207 |
+
.dc-col,
|
1208 |
+
.dc-col-xs-6,
|
1209 |
+
.dc-col-sm-6,
|
1210 |
+
.dc-col-md-6,
|
1211 |
+
.dc-col-lg-4,
|
1212 |
+
.dc-col-lg-3,
|
1213 |
+
.dc-col-lg-9 {
|
1214 |
+
padding-left: 15px;
|
1215 |
+
padding-right: 15px;
|
1216 |
+
width: 100%;
|
1217 |
+
}
|
1218 |
+
|
1219 |
+
@media (min-width: 576px) {
|
1220 |
+
.dc-col-xs-6 {
|
1221 |
+
flex: 0 0 50%;
|
1222 |
+
max-width: 50%;
|
1223 |
+
}
|
1224 |
+
}
|
1225 |
+
@media (min-width: 768px) {
|
1226 |
+
.dc-col-sm-6 {
|
1227 |
+
flex: 0 0 50%;
|
1228 |
+
max-width: 50%;
|
1229 |
+
}
|
1230 |
+
}
|
1231 |
+
@media (min-width: 992px) {
|
1232 |
+
.dc-col-md-6 {
|
1233 |
+
flex: 0 0 50%;
|
1234 |
+
max-width: 50%;
|
1235 |
+
}
|
1236 |
+
}
|
1237 |
+
@media (min-width: 1200px) {
|
1238 |
+
.dc-col-lg-3 {
|
1239 |
+
flex: 0 0 25%;
|
1240 |
+
max-width: 25%;
|
1241 |
+
}
|
1242 |
+
|
1243 |
+
.dc-col-lg-4 {
|
1244 |
+
flex: 0 0 33.33%;
|
1245 |
+
max-width: 33.33%;
|
1246 |
+
}
|
1247 |
+
|
1248 |
+
.dc-col-lg-9 {
|
1249 |
+
flex: 0 0 75%;
|
1250 |
+
max-width: 75%;
|
1251 |
+
}
|
1252 |
+
}
|
1253 |
+
.button__primary:not(.hover__highlight) {
|
1254 |
+
background: #623cea;
|
1255 |
+
color: white;
|
1256 |
+
border-color: #623cea;
|
1257 |
+
transition: all 0.3s ease-in-out 0s;
|
1258 |
+
transition-property: background, color, box-shadow, border;
|
1259 |
+
}
|
1260 |
+
.button__primary:not(.hover__highlight):disabled {
|
1261 |
+
cursor: not-allowed;
|
1262 |
+
background: #fa7d51;
|
1263 |
+
}
|
1264 |
+
.button__primary:not(.hover__highlight) .icon {
|
1265 |
+
color: #623cea;
|
1266 |
+
background: white;
|
1267 |
+
}
|
1268 |
+
.button__primary.hover__highlight {
|
1269 |
+
color: #623cea;
|
1270 |
+
border-color: rgba(98, 60, 234, 0.2);
|
1271 |
+
}
|
1272 |
+
.button__primary.hover__highlight .icon {
|
1273 |
+
background: #623cea;
|
1274 |
+
color: #ffffff;
|
1275 |
+
}
|
1276 |
+
|
1277 |
+
a.button__primary.active, a.button__primary:hover,
|
1278 |
+
button.button__primary.active,
|
1279 |
+
button.button__primary:hover {
|
1280 |
+
background: #4f25e8;
|
1281 |
+
color: white;
|
1282 |
+
border-color: #4f25e8;
|
1283 |
+
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.3);
|
1284 |
+
}
|
1285 |
+
a.button__primary.active:disabled, a.button__primary:hover:disabled,
|
1286 |
+
button.button__primary.active:disabled,
|
1287 |
+
button.button__primary:hover:disabled {
|
1288 |
+
cursor: not-allowed;
|
1289 |
+
background: #fa7d51;
|
1290 |
+
box-shadow: none;
|
1291 |
+
}
|
1292 |
+
a.button__primary.hover__highlight:hover .icon,
|
1293 |
+
button.button__primary.hover__highlight:hover .icon {
|
1294 |
+
background: white;
|
1295 |
+
color: #623cea;
|
1296 |
+
}
|
1297 |
+
|
1298 |
+
.button__secondary:not(.hover__highlight) {
|
1299 |
+
background: #fa7d51;
|
1300 |
+
color: white;
|
1301 |
+
border-color: #fa7d51;
|
1302 |
+
transition: all 0.3s ease-in-out 0s;
|
1303 |
+
transition-property: background, color, box-shadow, border;
|
1304 |
+
}
|
1305 |
+
.button__secondary:not(.hover__highlight):disabled {
|
1306 |
+
cursor: not-allowed;
|
1307 |
+
background: #fa7d51;
|
1308 |
+
}
|
1309 |
+
.button__secondary:not(.hover__highlight) .icon {
|
1310 |
+
color: #fa7d51;
|
1311 |
+
background: white;
|
1312 |
+
}
|
1313 |
+
.button__secondary.hover__highlight {
|
1314 |
+
color: #623cea;
|
1315 |
+
border-color: rgba(98, 60, 234, 0.2);
|
1316 |
+
}
|
1317 |
+
.button__secondary.hover__highlight .icon {
|
1318 |
+
background: #623cea;
|
1319 |
+
color: #ffffff;
|
1320 |
+
}
|
1321 |
+
|
1322 |
+
a.button__secondary.active, a.button__secondary:hover,
|
1323 |
+
button.button__secondary.active,
|
1324 |
+
button.button__secondary:hover {
|
1325 |
+
background: #f96a38;
|
1326 |
+
color: white;
|
1327 |
+
border-color: #f96a38;
|
1328 |
+
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.3);
|
1329 |
+
}
|
1330 |
+
a.button__secondary.active:disabled, a.button__secondary:hover:disabled,
|
1331 |
+
button.button__secondary.active:disabled,
|
1332 |
+
button.button__secondary:hover:disabled {
|
1333 |
+
cursor: not-allowed;
|
1334 |
+
background: #fa7d51;
|
1335 |
+
box-shadow: none;
|
1336 |
+
}
|
1337 |
+
a.button__secondary.hover__highlight:hover .icon,
|
1338 |
+
button.button__secondary.hover__highlight:hover .icon {
|
1339 |
+
background: white;
|
1340 |
+
color: #fa7d51;
|
1341 |
+
}
|
1342 |
+
|
1343 |
+
.button__success:not(.hover__highlight) {
|
1344 |
+
background: #05cb6b;
|
1345 |
+
color: white;
|
1346 |
+
border-color: #05cb6b;
|
1347 |
+
transition: all 0.3s ease-in-out 0s;
|
1348 |
+
transition-property: background, color, box-shadow, border;
|
1349 |
+
}
|
1350 |
+
.button__success:not(.hover__highlight):disabled {
|
1351 |
+
cursor: not-allowed;
|
1352 |
+
background: #fa7d51;
|
1353 |
+
}
|
1354 |
+
.button__success:not(.hover__highlight) .icon {
|
1355 |
+
color: #05cb6b;
|
1356 |
+
background: white;
|
1357 |
+
}
|
1358 |
+
.button__success.hover__highlight {
|
1359 |
+
color: #623cea;
|
1360 |
+
border-color: rgba(98, 60, 234, 0.2);
|
1361 |
+
}
|
1362 |
+
.button__success.hover__highlight .icon {
|
1363 |
+
background: #623cea;
|
1364 |
+
color: #ffffff;
|
1365 |
+
}
|
1366 |
+
|
1367 |
+
a.button__success.active, a.button__success:hover,
|
1368 |
+
button.button__success.active,
|
1369 |
+
button.button__success:hover {
|
1370 |
+
background: #04b25e;
|
1371 |
+
color: white;
|
1372 |
+
border-color: #04b25e;
|
1373 |
+
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.3);
|
1374 |
+
}
|
1375 |
+
a.button__success.active:disabled, a.button__success:hover:disabled,
|
1376 |
+
button.button__success.active:disabled,
|
1377 |
+
button.button__success:hover:disabled {
|
1378 |
+
cursor: not-allowed;
|
1379 |
+
background: #fa7d51;
|
1380 |
+
box-shadow: none;
|
1381 |
+
}
|
1382 |
+
a.button__success.hover__highlight:hover .icon,
|
1383 |
+
button.button__success.hover__highlight:hover .icon {
|
1384 |
+
background: white;
|
1385 |
+
color: #05cb6b;
|
1386 |
+
}
|
1387 |
+
|
1388 |
+
.button__danger:not(.hover__highlight) {
|
1389 |
+
background: #e0061a;
|
1390 |
+
color: white;
|
1391 |
+
border-color: #e0061a;
|
1392 |
+
transition: all 0.3s ease-in-out 0s;
|
1393 |
+
transition-property: background, color, box-shadow, border;
|
1394 |
+
}
|
1395 |
+
.button__danger:not(.hover__highlight):disabled {
|
1396 |
+
cursor: not-allowed;
|
1397 |
+
background: #fa7d51;
|
1398 |
+
}
|
1399 |
+
.button__danger:not(.hover__highlight) .icon {
|
1400 |
+
color: #e0061a;
|
1401 |
+
background: white;
|
1402 |
+
}
|
1403 |
+
.button__danger.hover__highlight {
|
1404 |
+
color: #623cea;
|
1405 |
+
border-color: rgba(98, 60, 234, 0.2);
|
1406 |
+
}
|
1407 |
+
.button__danger.hover__highlight .icon {
|
1408 |
+
background: #623cea;
|
1409 |
+
color: #ffffff;
|
1410 |
+
}
|
1411 |
+
|
1412 |
+
a.button__danger.active, a.button__danger:hover,
|
1413 |
+
button.button__danger.active,
|
1414 |
+
button.button__danger:hover {
|
1415 |
+
background: #c70517;
|
1416 |
+
color: white;
|
1417 |
+
border-color: #c70517;
|
1418 |
+
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.3);
|
1419 |
+
}
|
1420 |
+
a.button__danger.active:disabled, a.button__danger:hover:disabled,
|
1421 |
+
button.button__danger.active:disabled,
|
1422 |
+
button.button__danger:hover:disabled {
|
1423 |
+
cursor: not-allowed;
|
1424 |
+
background: #fa7d51;
|
1425 |
+
box-shadow: none;
|
1426 |
+
}
|
1427 |
+
a.button__danger.hover__highlight:hover .icon,
|
1428 |
+
button.button__danger.hover__highlight:hover .icon {
|
1429 |
+
background: white;
|
1430 |
+
color: #e0061a;
|
1431 |
+
}
|
1432 |
+
|
1433 |
+
.button__info:not(.hover__highlight) {
|
1434 |
+
background: #00b2fc;
|
1435 |
+
color: white;
|
1436 |
+
border-color: #00b2fc;
|
1437 |
+
transition: all 0.3s ease-in-out 0s;
|
1438 |
+
transition-property: background, color, box-shadow, border;
|
1439 |
+
}
|
1440 |
+
.button__info:not(.hover__highlight):disabled {
|
1441 |
+
cursor: not-allowed;
|
1442 |
+
background: #fa7d51;
|
1443 |
+
}
|
1444 |
+
.button__info:not(.hover__highlight) .icon {
|
1445 |
+
color: #00b2fc;
|
1446 |
+
background: white;
|
1447 |
+
}
|
1448 |
+
.button__info.hover__highlight {
|
1449 |
+
color: #623cea;
|
1450 |
+
border-color: rgba(98, 60, 234, 0.2);
|
1451 |
+
}
|
1452 |
+
.button__info.hover__highlight .icon {
|
1453 |
+
background: #623cea;
|
1454 |
+
color: #ffffff;
|
1455 |
+
}
|
1456 |
+
|
1457 |
+
a.button__info.active, a.button__info:hover,
|
1458 |
+
button.button__info.active,
|
1459 |
+
button.button__info:hover {
|
1460 |
+
background: #00a0e3;
|
1461 |
+
color: white;
|
1462 |
+
border-color: #00a0e3;
|
1463 |
+
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.3);
|
1464 |
+
}
|
1465 |
+
a.button__info.active:disabled, a.button__info:hover:disabled,
|
1466 |
+
button.button__info.active:disabled,
|
1467 |
+
button.button__info:hover:disabled {
|
1468 |
+
cursor: not-allowed;
|
1469 |
+
background: #fa7d51;
|
1470 |
+
box-shadow: none;
|
1471 |
+
}
|
1472 |
+
a.button__info.hover__highlight:hover .icon,
|
1473 |
+
button.button__info.hover__highlight:hover .icon {
|
1474 |
+
background: white;
|
1475 |
+
color: #00b2fc;
|
1476 |
+
}
|
1477 |
+
|
1478 |
+
.button__dark:not(.hover__highlight) {
|
1479 |
+
background: #22282d;
|
1480 |
+
color: white;
|
1481 |
+
border-color: #22282d;
|
1482 |
+
transition: all 0.3s ease-in-out 0s;
|
1483 |
+
transition-property: background, color, box-shadow, border;
|
1484 |
+
}
|
1485 |
+
.button__dark:not(.hover__highlight):disabled {
|
1486 |
+
cursor: not-allowed;
|
1487 |
+
background: #fa7d51;
|
1488 |
+
}
|
1489 |
+
.button__dark:not(.hover__highlight) .icon {
|
1490 |
+
color: #22282d;
|
1491 |
+
background: white;
|
1492 |
+
}
|
1493 |
+
.button__dark.hover__highlight {
|
1494 |
+
color: #623cea;
|
1495 |
+
border-color: rgba(98, 60, 234, 0.2);
|
1496 |
+
}
|
1497 |
+
.button__dark.hover__highlight .icon {
|
1498 |
+
background: #623cea;
|
1499 |
+
color: #ffffff;
|
1500 |
+
}
|
1501 |
+
|
1502 |
+
a.button__dark.active, a.button__dark:hover,
|
1503 |
+
button.button__dark.active,
|
1504 |
+
button.button__dark:hover {
|
1505 |
+
background: #171b1e;
|
1506 |
+
color: white;
|
1507 |
+
border-color: #171b1e;
|
1508 |
+
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.3);
|
1509 |
+
}
|
1510 |
+
a.button__dark.active:disabled, a.button__dark:hover:disabled,
|
1511 |
+
button.button__dark.active:disabled,
|
1512 |
+
button.button__dark:hover:disabled {
|
1513 |
+
cursor: not-allowed;
|
1514 |
+
background: #fa7d51;
|
1515 |
+
box-shadow: none;
|
1516 |
+
}
|
1517 |
+
a.button__dark.hover__highlight:hover .icon,
|
1518 |
+
button.button__dark.hover__highlight:hover .icon {
|
1519 |
+
background: white;
|
1520 |
+
color: #22282d;
|
1521 |
+
}
|
1522 |
+
|
1523 |
+
.button__white:not(.hover__highlight) {
|
1524 |
+
background: #ffffff;
|
1525 |
+
color: #623cea;
|
1526 |
+
border-color: #ffffff;
|
1527 |
+
transition: all 0.3s ease-in-out 0s;
|
1528 |
+
transition-property: background, color, box-shadow, border;
|
1529 |
+
}
|
1530 |
+
.button__white:not(.hover__highlight):disabled {
|
1531 |
+
cursor: not-allowed;
|
1532 |
+
background: #fa7d51;
|
1533 |
+
}
|
1534 |
+
.button__white:not(.hover__highlight) .icon {
|
1535 |
+
color: #ffffff;
|
1536 |
+
background: #623cea;
|
1537 |
+
}
|
1538 |
+
.button__white.hover__highlight {
|
1539 |
+
color: #623cea;
|
1540 |
+
border-color: rgba(98, 60, 234, 0.2);
|
1541 |
+
}
|
1542 |
+
.button__white.hover__highlight .icon {
|
1543 |
+
background: #623cea;
|
1544 |
+
color: #ffffff;
|
1545 |
+
}
|
1546 |
+
|
1547 |
+
a.button__white.active, a.button__white:hover,
|
1548 |
+
button.button__white.active,
|
1549 |
+
button.button__white:hover {
|
1550 |
+
background: #f2f2f2;
|
1551 |
+
color: #623cea;
|
1552 |
+
border-color: #f2f2f2;
|
1553 |
+
text-shadow: 0 1px 1px rgba(98, 60, 234, 0.3);
|
1554 |
+
}
|
1555 |
+
a.button__white.active:disabled, a.button__white:hover:disabled,
|
1556 |
+
button.button__white.active:disabled,
|
1557 |
+
button.button__white:hover:disabled {
|
1558 |
+
cursor: not-allowed;
|
1559 |
+
background: #fa7d51;
|
1560 |
+
box-shadow: none;
|
1561 |
+
}
|
1562 |
+
a.button__white.hover__highlight:hover .icon,
|
1563 |
+
button.button__white.hover__highlight:hover .icon {
|
1564 |
+
background: #623cea;
|
1565 |
+
color: #ffffff;
|
1566 |
+
}
|
1567 |
+
|
1568 |
+
.button__black:not(.hover__highlight) {
|
1569 |
+
background: #000000;
|
1570 |
+
color: white;
|
1571 |
+
border-color: #000000;
|
1572 |
+
transition: all 0.3s ease-in-out 0s;
|
1573 |
+
transition-property: background, color, box-shadow, border;
|
1574 |
+
}
|
1575 |
+
.button__black:not(.hover__highlight):disabled {
|
1576 |
+
cursor: not-allowed;
|
1577 |
+
background: #fa7d51;
|
1578 |
+
}
|
1579 |
+
.button__black:not(.hover__highlight) .icon {
|
1580 |
+
color: #000000;
|
1581 |
+
background: white;
|
1582 |
+
}
|
1583 |
+
.button__black.hover__highlight {
|
1584 |
+
color: #623cea;
|
1585 |
+
border-color: rgba(98, 60, 234, 0.2);
|
1586 |
+
}
|
1587 |
+
.button__black.hover__highlight .icon {
|
1588 |
+
background: #623cea;
|
1589 |
+
color: #ffffff;
|
1590 |
+
}
|
1591 |
+
|
1592 |
+
a.button__black.active:disabled, a.button__black:hover:disabled,
|
1593 |
+
button.button__black.active:disabled,
|
1594 |
+
button.button__black:hover:disabled {
|
1595 |
+
cursor: not-allowed;
|
1596 |
+
background: #fa7d51;
|
1597 |
+
box-shadow: none;
|
1598 |
+
}
|
1599 |
+
a.button__black.hover__highlight:hover .icon,
|
1600 |
+
button.button__black.hover__highlight:hover .icon {
|
1601 |
+
background: white;
|
1602 |
+
color: #000000;
|
1603 |
+
}
|
1604 |
+
|
1605 |
+
.button__grey:not(.hover__highlight) {
|
1606 |
+
background: #f4f6fc;
|
1607 |
+
color: #623cea;
|
1608 |
+
border-color: #f4f6fc;
|
1609 |
+
transition: all 0.3s ease-in-out 0s;
|
1610 |
+
transition-property: background, color, box-shadow, border;
|
1611 |
+
}
|
1612 |
+
.button__grey:not(.hover__highlight):disabled {
|
1613 |
+
cursor: not-allowed;
|
1614 |
+
background: #fa7d51;
|
1615 |
+
}
|
1616 |
+
.button__grey:not(.hover__highlight) .icon {
|
1617 |
+
color: #f4f6fc;
|
1618 |
+
background: #623cea;
|
1619 |
+
}
|
1620 |
+
.button__grey.hover__highlight {
|
1621 |
+
color: #623cea;
|
1622 |
+
border-color: rgba(98, 60, 234, 0.2);
|
1623 |
+
}
|
1624 |
+
.button__grey.hover__highlight .icon {
|
1625 |
+
background: #623cea;
|
1626 |
+
color: #ffffff;
|
1627 |
+
}
|
1628 |
+
|
1629 |
+
a.button__grey.active, a.button__grey:hover,
|
1630 |
+
button.button__grey.active,
|
1631 |
+
button.button__grey:hover {
|
1632 |
+
background: #e0e6f7;
|
1633 |
+
color: #623cea;
|
1634 |
+
border-color: #e0e6f7;
|
1635 |
+
text-shadow: 0 1px 1px rgba(98, 60, 234, 0.3);
|
1636 |
+
}
|
1637 |
+
a.button__grey.active:disabled, a.button__grey:hover:disabled,
|
1638 |
+
button.button__grey.active:disabled,
|
1639 |
+
button.button__grey:hover:disabled {
|
1640 |
+
cursor: not-allowed;
|
1641 |
+
background: #fa7d51;
|
1642 |
+
box-shadow: none;
|
1643 |
+
}
|
1644 |
+
a.button__grey.hover__highlight:hover .icon,
|
1645 |
+
button.button__grey.hover__highlight:hover .icon {
|
1646 |
+
background: #623cea;
|
1647 |
+
color: #f4f6fc;
|
1648 |
+
}
|
1649 |
+
|
1650 |
+
.button__grey2:not(.hover__highlight) {
|
1651 |
+
background: #808da1;
|
1652 |
+
color: white;
|
1653 |
+
border-color: #808da1;
|
1654 |
+
transition: all 0.3s ease-in-out 0s;
|
1655 |
+
transition-property: background, color, box-shadow, border;
|
1656 |
+
}
|
1657 |
+
.button__grey2:not(.hover__highlight):disabled {
|
1658 |
+
cursor: not-allowed;
|
1659 |
+
background: #fa7d51;
|
1660 |
+
}
|
1661 |
+
.button__grey2:not(.hover__highlight) .icon {
|
1662 |
+
color: #808da1;
|
1663 |
+
background: white;
|
1664 |
+
}
|
1665 |
+
.button__grey2.hover__highlight {
|
1666 |
+
color: #623cea;
|
1667 |
+
border-color: rgba(98, 60, 234, 0.2);
|
1668 |
+
}
|
1669 |
+
.button__grey2.hover__highlight .icon {
|
1670 |
+
background: #623cea;
|
1671 |
+
color: #ffffff;
|
1672 |
+
}
|
1673 |
+
|
1674 |
+
a.button__grey2.active, a.button__grey2:hover,
|
1675 |
+
button.button__grey2.active,
|
1676 |
+
button.button__grey2:hover {
|
1677 |
+
background: #718096;
|
1678 |
+
color: white;
|
1679 |
+
border-color: #718096;
|
1680 |
+
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.3);
|
1681 |
+
}
|
1682 |
+
a.button__grey2.active:disabled, a.button__grey2:hover:disabled,
|
1683 |
+
button.button__grey2.active:disabled,
|
1684 |
+
button.button__grey2:hover:disabled {
|
1685 |
+
cursor: not-allowed;
|
1686 |
+
background: #fa7d51;
|
1687 |
+
box-shadow: none;
|
1688 |
+
}
|
1689 |
+
a.button__grey2.hover__highlight:hover .icon,
|
1690 |
+
button.button__grey2.hover__highlight:hover .icon {
|
1691 |
+
background: white;
|
1692 |
+
color: #808da1;
|
1693 |
+
}
|
1694 |
+
|
1695 |
+
.button__twitter:not(.hover__highlight) {
|
1696 |
+
background: #1da1f2;
|
1697 |
+
color: white;
|
1698 |
+
border-color: #1da1f2;
|
1699 |
+
transition: all 0.3s ease-in-out 0s;
|
1700 |
+
transition-property: background, color, box-shadow, border;
|
1701 |
+
}
|
1702 |
+
.button__twitter:not(.hover__highlight):disabled {
|
1703 |
+
cursor: not-allowed;
|
1704 |
+
background: #fa7d51;
|
1705 |
+
}
|
1706 |
+
.button__twitter:not(.hover__highlight) .icon {
|
1707 |
+
color: #1da1f2;
|
1708 |
+
background: white;
|
1709 |
+
}
|
1710 |
+
.button__twitter.hover__highlight {
|
1711 |
+
color: #623cea;
|
1712 |
+
border-color: rgba(98, 60, 234, 0.2);
|
1713 |
+
}
|
1714 |
+
.button__twitter.hover__highlight .icon {
|
1715 |
+
background: #623cea;
|
1716 |
+
color: #ffffff;
|
1717 |
+
}
|
1718 |
+
|
1719 |
+
a.button__twitter.active, a.button__twitter:hover,
|
1720 |
+
button.button__twitter.active,
|
1721 |
+
button.button__twitter:hover {
|
1722 |
+
background: #0d95e8;
|
1723 |
+
color: white;
|
1724 |
+
border-color: #0d95e8;
|
1725 |
+
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.3);
|
1726 |
+
}
|
1727 |
+
a.button__twitter.active:disabled, a.button__twitter:hover:disabled,
|
1728 |
+
button.button__twitter.active:disabled,
|
1729 |
+
button.button__twitter:hover:disabled {
|
1730 |
+
cursor: not-allowed;
|
1731 |
+
background: #fa7d51;
|
1732 |
+
box-shadow: none;
|
1733 |
+
}
|
1734 |
+
a.button__twitter.hover__highlight:hover .icon,
|
1735 |
+
button.button__twitter.hover__highlight:hover .icon {
|
1736 |
+
background: white;
|
1737 |
+
color: #1da1f2;
|
1738 |
+
}
|
1739 |
+
|
1740 |
+
.button__linkedin:not(.hover__highlight) {
|
1741 |
+
background: #0077b5;
|
1742 |
+
color: white;
|
1743 |
+
border-color: #0077b5;
|
1744 |
+
transition: all 0.3s ease-in-out 0s;
|
1745 |
+
transition-property: background, color, box-shadow, border;
|
1746 |
+
}
|
1747 |
+
.button__linkedin:not(.hover__highlight):disabled {
|
1748 |
+
cursor: not-allowed;
|
1749 |
+
background: #fa7d51;
|
1750 |
+
}
|
1751 |
+
.button__linkedin:not(.hover__highlight) .icon {
|
1752 |
+
color: #0077b5;
|
1753 |
+
background: white;
|
1754 |
+
}
|
1755 |
+
.button__linkedin.hover__highlight {
|
1756 |
+
color: #623cea;
|
1757 |
+
border-color: rgba(98, 60, 234, 0.2);
|
1758 |
+
}
|
1759 |
+
.button__linkedin.hover__highlight .icon {
|
1760 |
+
background: #623cea;
|
1761 |
+
color: #ffffff;
|
1762 |
+
}
|
1763 |
+
|
1764 |
+
a.button__linkedin.active, a.button__linkedin:hover,
|
1765 |
+
button.button__linkedin.active,
|
1766 |
+
button.button__linkedin:hover {
|
1767 |
+
background: #00669c;
|
1768 |
+
color: white;
|
1769 |
+
border-color: #00669c;
|
1770 |
+
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.3);
|
1771 |
+
}
|
1772 |
+
a.button__linkedin.active:disabled, a.button__linkedin:hover:disabled,
|
1773 |
+
button.button__linkedin.active:disabled,
|
1774 |
+
button.button__linkedin:hover:disabled {
|
1775 |
+
cursor: not-allowed;
|
1776 |
+
background: #fa7d51;
|
1777 |
+
box-shadow: none;
|
1778 |
+
}
|
1779 |
+
a.button__linkedin.hover__highlight:hover .icon,
|
1780 |
+
button.button__linkedin.hover__highlight:hover .icon {
|
1781 |
+
background: white;
|
1782 |
+
color: #0077b5;
|
1783 |
+
}
|
1784 |
+
|
1785 |
+
.button__instagram:not(.hover__highlight) {
|
1786 |
+
background: #e1306c;
|
1787 |
+
color: white;
|
1788 |
+
border-color: #e1306c;
|
1789 |
+
transition: all 0.3s ease-in-out 0s;
|
1790 |
+
transition-property: background, color, box-shadow, border;
|
1791 |
+
}
|
1792 |
+
.button__instagram:not(.hover__highlight):disabled {
|
1793 |
+
cursor: not-allowed;
|
1794 |
+
background: #fa7d51;
|
1795 |
+
}
|
1796 |
+
.button__instagram:not(.hover__highlight) .icon {
|
1797 |
+
color: #e1306c;
|
1798 |
+
background: white;
|
1799 |
+
}
|
1800 |
+
.button__instagram.hover__highlight {
|
1801 |
+
color: #623cea;
|
1802 |
+
border-color: rgba(98, 60, 234, 0.2);
|
1803 |
+
}
|
1804 |
+
.button__instagram.hover__highlight .icon {
|
1805 |
+
background: #623cea;
|
1806 |
+
color: #ffffff;
|
1807 |
+
}
|
1808 |
+
|
1809 |
+
a.button__instagram.active, a.button__instagram:hover,
|
1810 |
+
button.button__instagram.active,
|
1811 |
+
button.button__instagram:hover {
|
1812 |
+
background: #d81f5e;
|
1813 |
+
color: white;
|
1814 |
+
border-color: #d81f5e;
|
1815 |
+
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.3);
|
1816 |
+
}
|
1817 |
+
a.button__instagram.active:disabled, a.button__instagram:hover:disabled,
|
1818 |
+
button.button__instagram.active:disabled,
|
1819 |
+
button.button__instagram:hover:disabled {
|
1820 |
+
cursor: not-allowed;
|
1821 |
+
background: #fa7d51;
|
1822 |
+
box-shadow: none;
|
1823 |
+
}
|
1824 |
+
a.button__instagram.hover__highlight:hover .icon,
|
1825 |
+
button.button__instagram.hover__highlight:hover .icon {
|
1826 |
+
background: white;
|
1827 |
+
color: #e1306c;
|
1828 |
+
}
|
1829 |
+
|
1830 |
+
.disablecommentswrap .button {
|
1831 |
+
height: 50px;
|
1832 |
+
line-height: 50px;
|
1833 |
+
padding: 0;
|
1834 |
+
border-radius: 5px;
|
1835 |
+
color: #808da1;
|
1836 |
+
font-size: 15px;
|
1837 |
+
border: 0;
|
1838 |
+
font-weight: 700;
|
1839 |
+
padding: 0 20px;
|
1840 |
+
box-shadow: none;
|
1841 |
+
font-family: "DM Sans", sans-serif;
|
1842 |
+
background: #f4f6fc;
|
1843 |
+
}
|
1844 |
+
.disablecommentswrap .button:hover, .disablecommentswrap .button:focus {
|
1845 |
+
box-shadow: none;
|
1846 |
+
border: 0;
|
1847 |
+
color: #ffffff;
|
1848 |
+
background: #05cb6b;
|
1849 |
+
}
|
1850 |
+
@media (max-width: 991.98px) {
|
1851 |
+
.disablecommentswrap .button {
|
1852 |
+
height: 50px;
|
1853 |
+
line-height: 46px;
|
1854 |
+
font-size: 13px;
|
1855 |
+
}
|
1856 |
+
}
|
1857 |
+
.disablecommentswrap .button__delete {
|
1858 |
+
color: #ffffff;
|
1859 |
+
background: #e0061a;
|
1860 |
+
}
|
1861 |
+
.disablecommentswrap .button__delete:hover, .disablecommentswrap .button__delete:focus {
|
1862 |
+
background: red;
|
1863 |
+
color: #ffffff;
|
1864 |
+
}
|
1865 |
+
.disablecommentswrap .button__success {
|
1866 |
+
color: #ffffff;
|
1867 |
+
background: #05cb6b;
|
1868 |
+
}
|
1869 |
+
.disablecommentswrap .button__success:hover, .disablecommentswrap .button__success:focus {
|
1870 |
+
background: rgba(5, 203, 107, 0.9);
|
1871 |
+
color: #ffffff;
|
1872 |
+
}
|
1873 |
+
.disablecommentswrap .button--sm {
|
1874 |
+
height: 40px;
|
1875 |
+
line-height: 40px;
|
1876 |
+
}
|
1877 |
+
.disablecommentswrap .button__group .button:not(:last-child) {
|
1878 |
+
margin-right: 15px;
|
1879 |
+
}
|
1880 |
+
|
1881 |
+
.disable__comment__alert {
|
1882 |
+
display: flex;
|
1883 |
+
align-items: center;
|
1884 |
+
padding: 10px 20px;
|
1885 |
+
border: 0;
|
1886 |
+
}
|
1887 |
+
@media (max-width: 767.98px) {
|
1888 |
+
.disable__comment__alert {
|
1889 |
+
display: block;
|
1890 |
+
}
|
1891 |
+
.disable__comment__alert .button__group {
|
1892 |
+
margin-top: 20px;
|
1893 |
+
}
|
1894 |
+
}
|
1895 |
+
.disable__comment__alert .alert__content {
|
1896 |
+
display: flex;
|
1897 |
+
align-items: center;
|
1898 |
+
padding-right: 20px;
|
1899 |
+
flex-wrap: wrap;
|
1900 |
+
flex: 1;
|
1901 |
+
}
|
1902 |
+
@media (max-width: 767.98px) {
|
1903 |
+
.disable__comment__alert .alert__content {
|
1904 |
+
padding-right: 0;
|
1905 |
+
}
|
1906 |
+
}
|
1907 |
+
@media (max-width: 575.98px) {
|
1908 |
+
.disable__comment__alert .alert__content {
|
1909 |
+
display: block;
|
1910 |
+
}
|
1911 |
+
}
|
1912 |
+
.disable__comment__alert .alert__content img {
|
1913 |
+
margin-right: 15px;
|
1914 |
+
height: 30px;
|
1915 |
+
}
|
1916 |
+
@media (max-width: 575.98px) {
|
1917 |
+
.disable__comment__alert .alert__content img {
|
1918 |
+
margin-bottom: 10px;
|
1919 |
+
}
|
1920 |
+
}
|
1921 |
+
.disable__comment__alert .alert__content p {
|
1922 |
+
font-size: 18px;
|
1923 |
+
font-weight: 500;
|
1924 |
+
color: #22282d;
|
1925 |
+
font-family: "DM Sans", sans-serif;
|
1926 |
+
}
|
1927 |
+
.disable__comment__alert .alert__content a.wpinsights-disable-comments-collect {
|
1928 |
+
color: #05cb6b;
|
1929 |
+
}
|
1930 |
+
.disable__comment__alert .alert__content a.wpinsights-disable-comments-collect:hover,
|
1931 |
+
.disable__comment__alert .alert__content a.wpinsights-disable-comments-collect:visited,
|
1932 |
+
.disable__comment__alert .alert__content a.wpinsights-disable-comments-collect:focus {
|
1933 |
+
outline: none;
|
1934 |
+
border: none;
|
1935 |
+
box-shadow: none;
|
1936 |
+
}
|
1937 |
+
.disable__comment__alert .alert__content .wpinsights-data {
|
1938 |
+
margin-top: 10px;
|
1939 |
+
}
|
1940 |
+
.disable__comment__alert .alert__content .wpinsights-data p {
|
1941 |
+
font-size: 13px;
|
1942 |
+
}
|
1943 |
+
.disable__comment__alert .button__group {
|
1944 |
+
text-align: right;
|
1945 |
+
}
|
1946 |
+
@media (max-width: 767.98px) {
|
1947 |
+
.disable__comment__alert .button__group {
|
1948 |
+
text-align: left;
|
1949 |
+
}
|
1950 |
+
}
|
1951 |
+
.disable__comment__alert .button__group .button {
|
1952 |
+
margin-right: 0;
|
1953 |
+
margin-top: 5px;
|
1954 |
+
margin-bottom: 5px;
|
1955 |
+
}
|
1956 |
+
.disable__comment__alert .button__group .button:not(:last-child) {
|
1957 |
+
margin-right: 0;
|
1958 |
+
}
|
1959 |
+
.disable__comment__alert .button__group .button:not(:first-child) {
|
1960 |
+
margin-left: 15px;
|
1961 |
+
}
|
1962 |
+
@media (max-width: 767.98px) {
|
1963 |
+
.disable__comment__alert .button__group .button {
|
1964 |
+
margin-right: 10px;
|
1965 |
+
}
|
1966 |
+
.disable__comment__alert .button__group .button:not(:last-child) {
|
1967 |
+
margin-right: 10px;
|
1968 |
+
}
|
1969 |
+
.disable__comment__alert .button__group .button:not(:first-child) {
|
1970 |
+
margin-left: 0;
|
1971 |
+
}
|
1972 |
+
}
|
1973 |
+
|
1974 |
+
.section__header {
|
1975 |
+
text-align: center;
|
1976 |
+
margin-bottom: 50px;
|
1977 |
+
}
|
1978 |
+
.section__header h2 {
|
1979 |
+
font-size: 24px;
|
1980 |
+
font-weight: 700;
|
1981 |
+
color: #22282d;
|
1982 |
+
font-family: "DM Sans", sans-serif;
|
1983 |
+
}
|
1984 |
+
|
1985 |
+
.disable__comment__nav__wrap {
|
1986 |
+
background: #ffffff;
|
1987 |
+
border-radius: 5px;
|
1988 |
+
position: relative;
|
1989 |
+
}
|
1990 |
+
.disable__comment__nav__wrap .plugin__version {
|
1991 |
+
position: absolute;
|
1992 |
+
font-size: 16px;
|
1993 |
+
font-weight: 500;
|
1994 |
+
color: #687b95;
|
1995 |
+
font-family: "DM Sans", sans-serif;
|
1996 |
+
top: 50%;
|
1997 |
+
right: 30px;
|
1998 |
+
transform: translateY(-50%);
|
1999 |
+
}
|
2000 |
+
@media (max-width: 767.98px) {
|
2001 |
+
.disable__comment__nav__wrap .plugin__version {
|
2002 |
+
position: static;
|
2003 |
+
top: 0;
|
2004 |
+
transform: translateY(0);
|
2005 |
+
padding: 10px 10px 10px 20px;
|
2006 |
+
}
|
2007 |
+
}
|
2008 |
+
.disable__comment__nav__wrap .disable__comment__nav {
|
2009 |
+
display: flex;
|
2010 |
+
flex-wrap: wrap;
|
2011 |
+
margin-top: 0;
|
2012 |
+
}
|
2013 |
+
.disable__comment__nav__wrap .disable__comment__nav .disable__comment__nav__item {
|
2014 |
+
margin-bottom: 0;
|
2015 |
+
}
|
2016 |
+
.disable__comment__nav__wrap .disable__comment__nav .disable__comment__nav__item .disable__comment__nav__link {
|
2017 |
+
font-size: 16px;
|
2018 |
+
font-weight: 700;
|
2019 |
+
color: #687b95;
|
2020 |
+
text-transform: uppercase;
|
2021 |
+
font-family: "DM Sans", sans-serif;
|
2022 |
+
padding: 17px 20px;
|
2023 |
+
outline: none;
|
2024 |
+
box-shadow: none;
|
2025 |
+
}
|
2026 |
+
.disable__comment__nav__wrap .disable__comment__nav .disable__comment__nav__item .disable__comment__nav__link.active {
|
2027 |
+
color: #22282d;
|
2028 |
+
position: relative;
|
2029 |
+
}
|
2030 |
+
.disable__comment__nav__wrap .disable__comment__nav .disable__comment__nav__item .disable__comment__nav__link.active:before {
|
2031 |
+
position: absolute;
|
2032 |
+
left: 0;
|
2033 |
+
right: 0;
|
2034 |
+
bottom: 0;
|
2035 |
+
height: 2px;
|
2036 |
+
background: #e0061a;
|
2037 |
+
content: "";
|
2038 |
+
}
|
2039 |
+
@media (max-width: 991.98px) {
|
2040 |
+
.disable__comment__nav__wrap .disable__comment__nav .disable__comment__nav__item .disable__comment__nav__link {
|
2041 |
+
font-size: 18px;
|
2042 |
+
}
|
2043 |
+
}
|
2044 |
+
@media (max-width: 575.98px) {
|
2045 |
+
.disable__comment__nav__wrap .disable__comment__nav .disable__comment__nav__item .disable__comment__nav__link {
|
2046 |
+
font-size: 16px;
|
2047 |
+
}
|
2048 |
+
}
|
2049 |
+
|
2050 |
+
.disable__comment__tab {
|
2051 |
+
padding-top: 25px;
|
2052 |
+
}
|
2053 |
+
|
2054 |
+
.disable__comment__tab__item {
|
2055 |
+
display: none;
|
2056 |
+
}
|
2057 |
+
.disable__comment__tab__item.show {
|
2058 |
+
display: block;
|
2059 |
+
}
|
2060 |
+
|
2061 |
+
.disable__comment__option .title {
|
2062 |
+
font-size: 22px;
|
2063 |
+
font-weight: 500;
|
2064 |
+
color: #22282d;
|
2065 |
+
margin-bottom: 5px;
|
2066 |
+
}
|
2067 |
+
.disable__comment__option .subtitle {
|
2068 |
+
color: #687b95;
|
2069 |
+
font-size: 14px;
|
2070 |
+
font-family: "DM Sans", sans-serif;
|
2071 |
+
font-weight: 400;
|
2072 |
+
padding-left: 0;
|
2073 |
+
line-height: 1.5;
|
2074 |
+
}
|
2075 |
+
.disable__comment__option .subtitle .danger {
|
2076 |
+
color: #e0061a;
|
2077 |
+
font-weight: 500;
|
2078 |
+
}
|
2079 |
+
.disable__comment__option .disable_option {
|
2080 |
+
border-radius: 5px;
|
2081 |
+
}
|
2082 |
+
.disable__comment__option .disable_option input[type=radio] {
|
2083 |
+
display: none;
|
2084 |
+
}
|
2085 |
+
.disable__comment__option .disable_option input[type=radio]:checked ~ label:before {
|
2086 |
+
border-color: #05cb6b;
|
2087 |
+
}
|
2088 |
+
.disable__comment__option .disable_option input[type=radio]:checked ~ label:after {
|
2089 |
+
opacity: 1;
|
2090 |
+
}
|
2091 |
+
.disable__comment__option .disable_option input[type=radio] ~ label {
|
2092 |
+
font-size: 18px;
|
2093 |
+
font-weight: 500;
|
2094 |
+
color: #22282d;
|
2095 |
+
font-family: "DM Sans", sans-serif;
|
2096 |
+
position: relative;
|
2097 |
+
line-height: 1.3;
|
2098 |
+
padding-left: 25px;
|
2099 |
+
display: block;
|
2100 |
+
margin-bottom: 15px;
|
2101 |
+
}
|
2102 |
+
.disable__comment__option .disable_option input[type=radio] ~ label:before {
|
2103 |
+
position: absolute;
|
2104 |
+
top: 4px;
|
2105 |
+
left: 0;
|
2106 |
+
height: 12px;
|
2107 |
+
width: 12px;
|
2108 |
+
border-radius: 50%;
|
2109 |
+
border: 1px solid #687b95;
|
2110 |
+
content: "";
|
2111 |
+
}
|
2112 |
+
.disable__comment__option .disable_option input[type=radio] ~ label:after {
|
2113 |
+
position: absolute;
|
2114 |
+
top: 7px;
|
2115 |
+
left: 3px;
|
2116 |
+
height: 8px;
|
2117 |
+
width: 8px;
|
2118 |
+
border-radius: 50%;
|
2119 |
+
border: 0;
|
2120 |
+
background: #05cb6b;
|
2121 |
+
content: "";
|
2122 |
+
opacity: 0;
|
2123 |
+
transition: all 0.3s ease;
|
2124 |
+
}
|
2125 |
+
.disable__comment__option .disable_option input[type=radio] ~ label span {
|
2126 |
+
font-size: 16px;
|
2127 |
+
font-weight: 400;
|
2128 |
+
color: #687b95;
|
2129 |
+
}
|
2130 |
+
.disable__comment__option .disable_option .disable__checklist {
|
2131 |
+
display: flex;
|
2132 |
+
flex-wrap: wrap;
|
2133 |
+
}
|
2134 |
+
.disable__comment__option .disable_option .disable__checklist .disable__checklist__item {
|
2135 |
+
flex: 0 0 140px;
|
2136 |
+
margin-right: 10px;
|
2137 |
+
margin-bottom: 10px;
|
2138 |
+
}
|
2139 |
+
.disable__comment__option .disable_option .disable__checklist .disable__checklist__item input {
|
2140 |
+
display: none;
|
2141 |
+
}
|
2142 |
+
.disable__comment__option .disable_option .disable__checklist .disable__checklist__item input:checked ~ label:before {
|
2143 |
+
border-color: #00b2fc;
|
2144 |
+
background: #00b2fc;
|
2145 |
+
}
|
2146 |
+
.disable__comment__option .disable_option .disable__checklist .disable__checklist__item input:checked ~ label:after {
|
2147 |
+
opacity: 1;
|
2148 |
+
}
|
2149 |
+
.disable__comment__option .disable_option .disable__checklist .disable__checklist__item label {
|
2150 |
+
font-size: 16px;
|
2151 |
+
font-weight: 500;
|
2152 |
+
color: #687b95;
|
2153 |
+
font-family: "DM Sans", sans-serif;
|
2154 |
+
position: relative;
|
2155 |
+
line-height: 1.3;
|
2156 |
+
padding-left: 25px;
|
2157 |
+
display: block;
|
2158 |
+
}
|
2159 |
+
.disable__comment__option .disable_option .disable__checklist .disable__checklist__item label:before {
|
2160 |
+
position: absolute;
|
2161 |
+
top: 4px;
|
2162 |
+
left: 0;
|
2163 |
+
height: 10px;
|
2164 |
+
width: 10px;
|
2165 |
+
border: 1px solid #687b95;
|
2166 |
+
content: "";
|
2167 |
+
}
|
2168 |
+
.disable__comment__option .disable_option .disable__checklist .disable__checklist__item label:after {
|
2169 |
+
position: absolute;
|
2170 |
+
top: -2px;
|
2171 |
+
left: 2px;
|
2172 |
+
height: 11px;
|
2173 |
+
width: 11px;
|
2174 |
+
border: 0;
|
2175 |
+
content: url(../img/check.png);
|
2176 |
+
opacity: 0;
|
2177 |
+
transition: all 0.3s ease;
|
2178 |
+
}
|
2179 |
+
.disable__comment__option .disable_option .delete__checklist {
|
2180 |
+
display: flex;
|
2181 |
+
flex-wrap: wrap;
|
2182 |
+
margin-bottom: 10px;
|
2183 |
+
}
|
2184 |
+
.disable__comment__option .disable_option .delete__checklist .delete__checklist__item {
|
2185 |
+
flex: 0 0 130px;
|
2186 |
+
margin-right: 10px;
|
2187 |
+
margin-bottom: 10px;
|
2188 |
+
}
|
2189 |
+
.disable__comment__option .disable_option .delete__checklist .delete__checklist__item input {
|
2190 |
+
display: none;
|
2191 |
+
}
|
2192 |
+
.disable__comment__option .disable_option .delete__checklist .delete__checklist__item input:checked ~ label:before {
|
2193 |
+
border-color: #00b2fc;
|
2194 |
+
background: #00b2fc;
|
2195 |
+
}
|
2196 |
+
.disable__comment__option .disable_option .delete__checklist .delete__checklist__item input:checked ~ label:after {
|
2197 |
+
opacity: 1;
|
2198 |
+
}
|
2199 |
+
.disable__comment__option .disable_option .delete__checklist .delete__checklist__item label {
|
2200 |
+
font-size: 18px;
|
2201 |
+
font-weight: 500;
|
2202 |
+
color: #687b95;
|
2203 |
+
font-family: "DM Sans", sans-serif;
|
2204 |
+
position: relative;
|
2205 |
+
line-height: 1.3;
|
2206 |
+
padding-left: 25px;
|
2207 |
+
display: block;
|
2208 |
+
}
|
2209 |
+
.disable__comment__option .disable_option .delete__checklist .delete__checklist__item label:before {
|
2210 |
+
position: absolute;
|
2211 |
+
top: 4px;
|
2212 |
+
left: 0;
|
2213 |
+
height: 12px;
|
2214 |
+
width: 12px;
|
2215 |
+
border: 1px solid #687b95;
|
2216 |
+
content: "";
|
2217 |
+
}
|
2218 |
+
.disable__comment__option .disable_option .delete__checklist .delete__checklist__item label:after {
|
2219 |
+
position: absolute;
|
2220 |
+
top: -2px;
|
2221 |
+
left: 2px;
|
2222 |
+
height: 13px;
|
2223 |
+
width: 13px;
|
2224 |
+
border: 0;
|
2225 |
+
content: url(../img/check.png);
|
2226 |
+
opacity: 0;
|
2227 |
+
transition: all 0.3s ease;
|
2228 |
+
}
|
2229 |
+
.disable__comment__option .disable_option .remove__checklist {
|
2230 |
+
display: flex;
|
2231 |
+
flex-wrap: wrap;
|
2232 |
+
margin-bottom: 10px;
|
2233 |
+
}
|
2234 |
+
.disable__comment__option .disable_option .remove__checklist .remove__checklist__item {
|
2235 |
+
flex: 0 0 130px;
|
2236 |
+
margin-right: 10px;
|
2237 |
+
margin-bottom: 10px;
|
2238 |
+
}
|
2239 |
+
.disable__comment__option .disable_option .remove__checklist .remove__checklist__item input {
|
2240 |
+
display: none;
|
2241 |
+
}
|
2242 |
+
.disable__comment__option .disable_option .remove__checklist .remove__checklist__item input:checked ~ label:before {
|
2243 |
+
border-color: #00b2fc;
|
2244 |
+
background: #00b2fc;
|
2245 |
+
}
|
2246 |
+
.disable__comment__option .disable_option .remove__checklist .remove__checklist__item input:checked ~ label:after {
|
2247 |
+
opacity: 1;
|
2248 |
+
}
|
2249 |
+
.disable__comment__option .disable_option .remove__checklist .remove__checklist__item label {
|
2250 |
+
font-size: 18px;
|
2251 |
+
font-weight: 500;
|
2252 |
+
color: #687b95;
|
2253 |
+
font-family: "DM Sans", sans-serif;
|
2254 |
+
position: relative;
|
2255 |
+
line-height: 1.3;
|
2256 |
+
padding-left: 25px;
|
2257 |
+
display: block;
|
2258 |
+
}
|
2259 |
+
.disable__comment__option .disable_option .remove__checklist .remove__checklist__item label:before {
|
2260 |
+
position: absolute;
|
2261 |
+
top: 4px;
|
2262 |
+
left: 0;
|
2263 |
+
height: 12px;
|
2264 |
+
width: 12px;
|
2265 |
+
border: 1px solid #687b95;
|
2266 |
+
content: "";
|
2267 |
+
}
|
2268 |
+
.disable__comment__option .disable_option .remove__checklist .remove__checklist__item label:after {
|
2269 |
+
position: absolute;
|
2270 |
+
top: -2px;
|
2271 |
+
left: 2px;
|
2272 |
+
height: 13px;
|
2273 |
+
width: 13px;
|
2274 |
+
border: 0;
|
2275 |
+
content: url(../img/check.png);
|
2276 |
+
opacity: 0;
|
2277 |
+
transition: all 0.3s ease;
|
2278 |
+
}
|
2279 |
+
.disable__comment__option .disable_option .disable__switchs .dissable__switch__item {
|
2280 |
+
margin-bottom: 10px;
|
2281 |
+
}
|
2282 |
+
.disable__comment__option .disable_option .disable__switchs .dissable__switch__item input {
|
2283 |
+
display: none;
|
2284 |
+
}
|
2285 |
+
.disable__comment__option .disable_option .disable__switchs .dissable__switch__item input:checked ~ label {
|
2286 |
+
color: #22282d;
|
2287 |
+
}
|
2288 |
+
.disable__comment__option .disable_option .disable__switchs .dissable__switch__item input:checked ~ label .switch {
|
2289 |
+
background: #05cb6b;
|
2290 |
+
}
|
2291 |
+
.disable__comment__option .disable_option .disable__switchs .dissable__switch__item input:checked ~ label .switch:before {
|
2292 |
+
left: 23px;
|
2293 |
+
}
|
2294 |
+
.disable__comment__option .disable_option .disable__switchs .dissable__switch__item input:checked ~ label .switch .switch__text {
|
2295 |
+
left: 5px;
|
2296 |
+
}
|
2297 |
+
.disable__comment__option .disable_option .disable__switchs .dissable__switch__item input:checked ~ label .switch .switch__text.on {
|
2298 |
+
display: block;
|
2299 |
+
}
|
2300 |
+
.disable__comment__option .disable_option .disable__switchs .dissable__switch__item input:checked ~ label .switch .switch__text.off {
|
2301 |
+
display: none;
|
2302 |
+
}
|
2303 |
+
.disable__comment__option .disable_option .disable__switchs .dissable__switch__item label {
|
2304 |
+
font-size: 16px;
|
2305 |
+
font-weight: 500;
|
2306 |
+
color: #687b95;
|
2307 |
+
font-family: "DM Sans", sans-serif;
|
2308 |
+
display: inline-flex;
|
2309 |
+
align-items: center;
|
2310 |
+
}
|
2311 |
+
@media (max-width: 479.98px) {
|
2312 |
+
.disable__comment__option .disable_option .disable__switchs .dissable__switch__item label {
|
2313 |
+
font-size: 14px;
|
2314 |
+
}
|
2315 |
+
}
|
2316 |
+
.disable__comment__option .disable_option .disable__switchs .dissable__switch__item label .switch {
|
2317 |
+
flex: 0 0 35px;
|
2318 |
+
height: 16px;
|
2319 |
+
width: 35px;
|
2320 |
+
margin-right: 20px;
|
2321 |
+
border-radius: 10px;
|
2322 |
+
background: #99a6b8;
|
2323 |
+
display: inline-block;
|
2324 |
+
font-size: 8px;
|
2325 |
+
text-transform: uppercase;
|
2326 |
+
font-weight: 400;
|
2327 |
+
color: #ffffff;
|
2328 |
+
font-family: "DM Sans", sans-serif;
|
2329 |
+
padding: 2px 5px;
|
2330 |
+
position: relative;
|
2331 |
+
transition: all 0.3s ease;
|
2332 |
+
}
|
2333 |
+
@media (max-width: 479.98px) {
|
2334 |
+
.disable__comment__option .disable_option .disable__switchs .dissable__switch__item label .switch {
|
2335 |
+
font-size: 10px;
|
2336 |
+
}
|
2337 |
+
}
|
2338 |
+
.disable__comment__option .disable_option .disable__switchs .dissable__switch__item label .switch:before {
|
2339 |
+
position: absolute;
|
2340 |
+
top: 4px;
|
2341 |
+
left: 4px;
|
2342 |
+
border-radius: 50%;
|
2343 |
+
background: #ffffff;
|
2344 |
+
height: 8px;
|
2345 |
+
width: 8px;
|
2346 |
+
content: "";
|
2347 |
+
transition: all 0.3s ease;
|
2348 |
+
}
|
2349 |
+
.disable__comment__option .disable_option .disable__switchs .dissable__switch__item label .switch .switch__text {
|
2350 |
+
position: absolute;
|
2351 |
+
top: 2px;
|
2352 |
+
left: 16px;
|
2353 |
+
transition: all 0.3s ease;
|
2354 |
+
}
|
2355 |
+
.disable__comment__option .disable_option .disable__switchs .dissable__switch__item label .switch .switch__text.on {
|
2356 |
+
display: none;
|
2357 |
+
}
|
2358 |
+
.disable__comment__option .disable_option .delete__feedback {
|
2359 |
+
margin-bottom: 10px;
|
2360 |
+
}
|
2361 |
+
.disable__comment__option .disable_option .delete__feedback label {
|
2362 |
+
font-size: 14px;
|
2363 |
+
}
|
2364 |
+
.disable__comment__option .disable_option .delete__feedback .delete__feedback__item {
|
2365 |
+
position: relative;
|
2366 |
+
display: inline-block;
|
2367 |
+
padding-right: 8px;
|
2368 |
+
}
|
2369 |
+
.disable__comment__option .disable_option .delete__feedback .delete__feedback__item:not(:last-child):before {
|
2370 |
+
position: absolute;
|
2371 |
+
top: 7px;
|
2372 |
+
right: -2px;
|
2373 |
+
bottom: 7px;
|
2374 |
+
width: 2px;
|
2375 |
+
background: #687b95;
|
2376 |
+
content: "";
|
2377 |
+
}
|
2378 |
+
.disable__comment__option .disable_option .delete__feedback .delete__feedback__item:last-child {
|
2379 |
+
padding-left: 8px;
|
2380 |
+
}
|
2381 |
+
.disable__comment__option .disable_option .delete__feedback .delete__feedback__item a {
|
2382 |
+
font-size: 18px;
|
2383 |
+
font-weight: 500;
|
2384 |
+
color: #687b95;
|
2385 |
+
outline: none;
|
2386 |
+
box-shadow: none;
|
2387 |
+
}
|
2388 |
+
.disable__comment__option .disable_option .disable__option__description {
|
2389 |
+
font-size: 15px;
|
2390 |
+
font-weight: 400;
|
2391 |
+
line-height: 1.8;
|
2392 |
+
color: #687b95;
|
2393 |
+
font-family: "DM Sans", sans-serif;
|
2394 |
+
}
|
2395 |
+
.disable__comment__option .disable_option .disable__option__description .danger {
|
2396 |
+
color: #e0061a;
|
2397 |
+
font-weight: 500;
|
2398 |
+
}
|
2399 |
+
.disable__comment__option .total-comments {
|
2400 |
+
font-size: 16px;
|
2401 |
+
line-height: 26px;
|
2402 |
+
margin-top: 20px;
|
2403 |
+
color: #687b95;
|
2404 |
+
}
|
2405 |
+
|
2406 |
+
.dc-item__card_wrap {
|
2407 |
+
height: 100%;
|
2408 |
+
display: flex;
|
2409 |
+
}
|
2410 |
+
|
2411 |
+
.dc-item__card {
|
2412 |
+
background: #ffffff;
|
2413 |
+
padding: 10px;
|
2414 |
+
border-radius: 5px;
|
2415 |
+
margin-bottom: 30px;
|
2416 |
+
flex-grow: 1;
|
2417 |
+
}
|
2418 |
+
.dc-item__card .thumb img {
|
2419 |
+
vertical-align: middle;
|
2420 |
+
border-style: none;
|
2421 |
+
}
|
2422 |
+
.dc-item__card .card__content {
|
2423 |
+
padding: 25px 10px;
|
2424 |
+
text-align: center;
|
2425 |
+
}
|
2426 |
+
.dc-item__card .card__content h3 {
|
2427 |
+
font-size: 20px;
|
2428 |
+
font-weight: 500;
|
2429 |
+
font-family: "DM Sans", sans-serif;
|
2430 |
+
color: #22282d;
|
2431 |
+
margin-bottom: 10px;
|
2432 |
+
}
|
2433 |
+
.dc-item__card .card__content p {
|
2434 |
+
font-size: 14px;
|
2435 |
+
font-weight: 400;
|
2436 |
+
color: #687b95;
|
2437 |
+
line-height: 2.14;
|
2438 |
+
margin-bottom: 20px;
|
2439 |
+
}
|
2440 |
+
|
2441 |
+
.dc-tutorials {
|
2442 |
+
border-radius: 5px;
|
2443 |
+
max-width: 450px;
|
2444 |
+
padding-bottom: 25px;
|
2445 |
+
}
|
2446 |
+
.dc-tutorials h3 {
|
2447 |
+
font-size: 20px;
|
2448 |
+
font-weight: 500;
|
2449 |
+
color: #22282d;
|
2450 |
+
font-family: "DM Sans", sans-serif;
|
2451 |
+
margin-bottom: 20px;
|
2452 |
+
}
|
2453 |
+
@media (max-width: 479.98px) {
|
2454 |
+
.dc-tutorials h3 {
|
2455 |
+
font-size: 20px;
|
2456 |
+
}
|
2457 |
+
}
|
2458 |
+
.dc-tutorials .tutorial__list .tutorial__item {
|
2459 |
+
display: flex;
|
2460 |
+
}
|
2461 |
+
.dc-tutorials .tutorial__list .tutorial__item:not(:last-child) {
|
2462 |
+
margin-bottom: 20px;
|
2463 |
+
}
|
2464 |
+
.dc-tutorials .tutorial__list .tutorial__item .icon {
|
2465 |
+
flex: 0 0 50px;
|
2466 |
+
max-width: 50px;
|
2467 |
+
height: 50px;
|
2468 |
+
border-radius: 5px;
|
2469 |
+
background: #f4f6fc;
|
2470 |
+
padding: 14px;
|
2471 |
+
margin-right: 15px;
|
2472 |
+
}
|
2473 |
+
.dc-tutorials .tutorial__list .tutorial__item .icon svg path {
|
2474 |
+
fill: #808da1;
|
2475 |
+
transition: all 0.3s ease;
|
2476 |
+
}
|
2477 |
+
.dc-tutorials .tutorial__list .tutorial__item h4 {
|
2478 |
+
font-size: 15px;
|
2479 |
+
line-height: 1.6;
|
2480 |
+
font-weight: 500;
|
2481 |
+
color: #687b95;
|
2482 |
+
font-family: "DM Sans", sans-serif;
|
2483 |
+
transition: all 0.3s ease;
|
2484 |
+
}
|
2485 |
+
@media (max-width: 1599.98px) {
|
2486 |
+
.dc-tutorials .tutorial__list .tutorial__item h4 {
|
2487 |
+
font-size: 14px;
|
2488 |
+
}
|
2489 |
+
}
|
2490 |
+
.dc-tutorials .tutorial__list .tutorial__item h4 a {
|
2491 |
+
outline: none;
|
2492 |
+
box-shadow: none;
|
2493 |
+
}
|
2494 |
+
.dc-tutorials .tutorial__list .tutorial__item:hover .icon svg path {
|
2495 |
+
fill: #05cb6b;
|
2496 |
+
}
|
2497 |
+
.dc-tutorials .tutorial__list .tutorial__item:hover h4 {
|
2498 |
+
color: #22282d;
|
2499 |
+
}
|
2500 |
+
|
2501 |
+
.blog__post {
|
2502 |
+
padding: 5px;
|
2503 |
+
border-radius: 5px;
|
2504 |
+
background: #ffffff;
|
2505 |
+
max-width: 450px;
|
2506 |
+
}
|
2507 |
+
.blog__post .thumb {
|
2508 |
+
position: relative;
|
2509 |
+
}
|
2510 |
+
.blog__post .thumb img {
|
2511 |
+
width: 100%;
|
2512 |
+
}
|
2513 |
+
.blog__post .thumb .play__btn {
|
2514 |
+
position: absolute;
|
2515 |
+
top: 50%;
|
2516 |
+
left: 50%;
|
2517 |
+
transform: translate(-50%, -50%);
|
2518 |
+
height: 50px;
|
2519 |
+
width: 50px;
|
2520 |
+
border-radius: 50%;
|
2521 |
+
background: #05cb6b;
|
2522 |
+
display: flex;
|
2523 |
+
justify-content: center;
|
2524 |
+
align-items: center;
|
2525 |
+
outline: none;
|
2526 |
+
box-shadow: none;
|
2527 |
+
}
|
2528 |
+
.blog__post .thumb .play__btn span {
|
2529 |
+
width: 0;
|
2530 |
+
height: 0;
|
2531 |
+
border-top: 8px solid transparent;
|
2532 |
+
border-bottom: 8px solid transparent;
|
2533 |
+
border-left: 10px solid #ffffff;
|
2534 |
+
}
|
2535 |
+
.blog__post .blog__post__content {
|
2536 |
+
padding: 5px 10px;
|
2537 |
+
}
|
2538 |
+
.blog__post .blog__post__content h4 {
|
2539 |
+
font-size: 16px;
|
2540 |
+
font-weight: 500;
|
2541 |
+
color: #22282d;
|
2542 |
+
line-height: 1.8;
|
2543 |
+
font-family: "DM Sans", sans-serif;
|
2544 |
+
}
|
2545 |
+
|
2546 |
+
.footer {
|
2547 |
+
width: 100%;
|
2548 |
+
text-align: center;
|
2549 |
+
}
|
2550 |
+
|
2551 |
+
.footer__content {
|
2552 |
+
text-align: center;
|
2553 |
+
}
|
2554 |
+
.footer__content .footer__nav ul {
|
2555 |
+
display: flex;
|
2556 |
+
flex-wrap: wrap;
|
2557 |
+
justify-content: center;
|
2558 |
+
}
|
2559 |
+
.footer__content .footer__nav ul li {
|
2560 |
+
margin-bottom: 15px;
|
2561 |
+
padding: 0 10px;
|
2562 |
+
position: relative;
|
2563 |
+
line-height: 1;
|
2564 |
+
}
|
2565 |
+
.footer__content .footer__nav ul li:not(:last-child):before {
|
2566 |
+
position: absolute;
|
2567 |
+
top: 2px;
|
2568 |
+
bottom: 2px;
|
2569 |
+
right: 0;
|
2570 |
+
width: 1px;
|
2571 |
+
background: #687b95;
|
2572 |
+
content: "";
|
2573 |
+
}
|
2574 |
+
.footer__content .footer__nav ul li a {
|
2575 |
+
font-size: 16px;
|
2576 |
+
font-weight: 400;
|
2577 |
+
color: #687b95;
|
2578 |
+
line-height: inherit;
|
2579 |
+
outline: none;
|
2580 |
+
box-shadow: none;
|
2581 |
+
}
|
2582 |
+
@media (max-width: 767.98px) {
|
2583 |
+
.footer__content .footer__nav ul li a {
|
2584 |
+
font-size: 14px;
|
2585 |
+
}
|
2586 |
+
}
|
2587 |
+
|
2588 |
+
.cancel-dc-setup {
|
2589 |
+
text-align: right;
|
2590 |
+
margin-bottom: 20px;
|
2591 |
+
font-size: 13px;
|
2592 |
+
}
|
2593 |
+
|
2594 |
+
.dc-quick__setup__wrap {
|
2595 |
+
padding: 50px 30px 50px;
|
2596 |
+
}
|
2597 |
+
|
2598 |
+
.dc-logo img {
|
2599 |
+
max-width: 100%;
|
2600 |
+
max-height: 80px;
|
2601 |
+
}
|
2602 |
+
|
2603 |
+
.dc-logo__center {
|
2604 |
+
text-align: center;
|
2605 |
+
}
|
2606 |
+
|
2607 |
+
.dc-quick__setup__nav {
|
2608 |
+
display: flex;
|
2609 |
+
justify-content: center;
|
2610 |
+
align-items: center;
|
2611 |
+
padding: 0;
|
2612 |
+
margin: 0;
|
2613 |
+
}
|
2614 |
+
@media (max-width: 767.98px) {
|
2615 |
+
.dc-quick__setup__nav {
|
2616 |
+
flex-wrap: wrap;
|
2617 |
+
}
|
2618 |
+
}
|
2619 |
+
.dc-quick__setup__nav .quick__setup__item {
|
2620 |
+
padding: 0 25px;
|
2621 |
+
position: relative;
|
2622 |
+
}
|
2623 |
+
.dc-quick__setup__nav .quick__setup__item:not(:last-child):before {
|
2624 |
+
position: absolute;
|
2625 |
+
top: 50%;
|
2626 |
+
left: 50%;
|
2627 |
+
transform: translateY(-50%);
|
2628 |
+
height: 3px;
|
2629 |
+
width: 100%;
|
2630 |
+
content: "";
|
2631 |
+
background: #d8dde7;
|
2632 |
+
}
|
2633 |
+
@media (max-width: 767.98px) {
|
2634 |
+
.dc-quick__setup__nav .quick__setup__item:not(:last-child):before {
|
2635 |
+
height: 0;
|
2636 |
+
width: 0;
|
2637 |
+
}
|
2638 |
+
}
|
2639 |
+
@media (max-width: 1199.98px) {
|
2640 |
+
.dc-quick__setup__nav .quick__setup__item {
|
2641 |
+
padding: 0 15px;
|
2642 |
+
}
|
2643 |
+
}
|
2644 |
+
.dc-quick__setup__nav .quick__setup__item .quick__setup__link {
|
2645 |
+
text-transform: uppercase;
|
2646 |
+
font-size: 14px;
|
2647 |
+
font-weight: 500;
|
2648 |
+
color: #22282d;
|
2649 |
+
width: 200px;
|
2650 |
+
text-align: center;
|
2651 |
+
padding: 13px 0;
|
2652 |
+
background: #ffffff;
|
2653 |
+
border-radius: 5px;
|
2654 |
+
position: relative;
|
2655 |
+
z-index: 1;
|
2656 |
+
outline: none;
|
2657 |
+
box-shadow: none;
|
2658 |
+
}
|
2659 |
+
@media (max-width: 1199.98px) {
|
2660 |
+
.dc-quick__setup__nav .quick__setup__item .quick__setup__link {
|
2661 |
+
width: auto;
|
2662 |
+
padding: 13px 20px;
|
2663 |
+
}
|
2664 |
+
}
|
2665 |
+
@media (max-width: 767.98px) {
|
2666 |
+
.dc-quick__setup__nav .quick__setup__item .quick__setup__link {
|
2667 |
+
font-size: 12px;
|
2668 |
+
}
|
2669 |
+
}
|
2670 |
+
.dc-quick__setup__nav .quick__setup__item.active:not(:last-child):before {
|
2671 |
+
background: #e10619;
|
2672 |
+
}
|
2673 |
+
.dc-quick__setup__nav .quick__setup__item.active .quick__setup__link {
|
2674 |
+
background: #e10619;
|
2675 |
+
color: #ffffff;
|
2676 |
+
}
|
2677 |
+
|
2678 |
+
.dc-quick__step__item {
|
2679 |
+
display: none;
|
2680 |
+
}
|
2681 |
+
.dc-quick__step__item.active {
|
2682 |
+
display: block;
|
2683 |
+
}
|
2684 |
+
.dc-quick__step__item .button {
|
2685 |
+
display: none;
|
2686 |
+
}
|
2687 |
+
|
2688 |
+
.dc-quick__step__item .quick__setup__item__header h2 {
|
2689 |
+
font-size: 32px;
|
2690 |
+
font-weight: 700;
|
2691 |
+
color: #22282d;
|
2692 |
+
font-family: "DM Sans", sans-serif;
|
2693 |
+
text-align: center;
|
2694 |
+
margin-bottom: 16px;
|
2695 |
+
}
|
2696 |
+
@media (max-width: 767.98px) {
|
2697 |
+
.dc-quick__step__item .quick__setup__item__header h2 {
|
2698 |
+
font-size: 28px;
|
2699 |
+
}
|
2700 |
+
}
|
2701 |
+
@media (max-width: 575.98px) {
|
2702 |
+
.dc-quick__step__item .quick__setup__item__header h2 {
|
2703 |
+
font-size: 24px;
|
2704 |
+
}
|
2705 |
+
}
|
2706 |
+
.dc-quick__step__item .quick__setup__item__header p {
|
2707 |
+
text-align: center;
|
2708 |
+
font-size: 16px;
|
2709 |
+
color: #687b95;
|
2710 |
+
max-width: 780px;
|
2711 |
+
margin: 0 auto;
|
2712 |
+
}
|
2713 |
+
@media (max-width: 767.98px) {
|
2714 |
+
.dc-quick__step__item .quick__setup__item__header p {
|
2715 |
+
font-size: 14px;
|
2716 |
+
}
|
2717 |
+
}
|
2718 |
+
.dc-quick__step__item .dc-video__area {
|
2719 |
+
text-align: center;
|
2720 |
+
margin: 0 auto;
|
2721 |
+
position: relative;
|
2722 |
+
}
|
2723 |
+
@media (max-width: 1199.98px) {
|
2724 |
+
.dc-quick__step__item .dc-video__area {
|
2725 |
+
min-height: 300px;
|
2726 |
+
}
|
2727 |
+
}
|
2728 |
+
.dc-quick__step__item .dc-video__area .play__btn {
|
2729 |
+
position: absolute;
|
2730 |
+
top: 50%;
|
2731 |
+
left: 50%;
|
2732 |
+
transform: translate(-50%, -50%);
|
2733 |
+
height: 70px;
|
2734 |
+
width: 70px;
|
2735 |
+
border-radius: 50%;
|
2736 |
+
background: #05cb6b;
|
2737 |
+
display: flex;
|
2738 |
+
justify-content: center;
|
2739 |
+
align-items: center;
|
2740 |
+
outline: none;
|
2741 |
+
box-shadow: none;
|
2742 |
+
}
|
2743 |
+
.dc-quick__step__item .dc-video__area .play__btn span {
|
2744 |
+
width: 0;
|
2745 |
+
height: 0;
|
2746 |
+
border-top: 8px solid transparent;
|
2747 |
+
border-bottom: 8px solid transparent;
|
2748 |
+
border-left: 10px solid #ffffff;
|
2749 |
+
}
|
2750 |
+
@media (max-width: 767.98px) {
|
2751 |
+
.dc-quick__step__item .dc-video__area .play__btn {
|
2752 |
+
height: 50px;
|
2753 |
+
width: 50px;
|
2754 |
+
}
|
2755 |
+
}
|
2756 |
+
.dc-quick__step__item .dc-form__group {
|
2757 |
+
padding-left: 27px;
|
2758 |
+
text-align: center;
|
2759 |
+
border-radius: 10px;
|
2760 |
+
margin: 15px auto 0;
|
2761 |
+
max-width: 800px;
|
2762 |
+
}
|
2763 |
+
@media (max-width: 575.98px) {
|
2764 |
+
.dc-quick__step__item .dc-form__group {
|
2765 |
+
text-align: left;
|
2766 |
+
}
|
2767 |
+
}
|
2768 |
+
.dc-quick__step__item .dc-form__group input {
|
2769 |
+
display: none;
|
2770 |
+
}
|
2771 |
+
.dc-quick__step__item .dc-form__group input:checked ~ label:before {
|
2772 |
+
border-color: #00b2fc;
|
2773 |
+
background: #00b2fc;
|
2774 |
+
}
|
2775 |
+
.dc-quick__step__item .dc-form__group input:checked ~ label:after {
|
2776 |
+
opacity: 1;
|
2777 |
+
}
|
2778 |
+
.dc-quick__step__item .dc-form__group label {
|
2779 |
+
font-size: 18px;
|
2780 |
+
font-weight: 500;
|
2781 |
+
color: #22282d;
|
2782 |
+
font-family: "DM Sans", sans-serif;
|
2783 |
+
position: relative;
|
2784 |
+
}
|
2785 |
+
@media (max-width: 767.98px) {
|
2786 |
+
.dc-quick__step__item .dc-form__group label {
|
2787 |
+
font-size: 16px;
|
2788 |
+
}
|
2789 |
+
}
|
2790 |
+
.dc-quick__step__item .dc-form__group label:before {
|
2791 |
+
position: absolute;
|
2792 |
+
top: 5px;
|
2793 |
+
left: -27px;
|
2794 |
+
height: 12px;
|
2795 |
+
width: 12px;
|
2796 |
+
border: 1px solid #687b95;
|
2797 |
+
content: "";
|
2798 |
+
}
|
2799 |
+
@media (max-width: 767.98px) {
|
2800 |
+
.dc-quick__step__item .dc-form__group label:before {
|
2801 |
+
top: 4px;
|
2802 |
+
}
|
2803 |
+
}
|
2804 |
+
.dc-quick__step__item .dc-form__group label:after {
|
2805 |
+
position: absolute;
|
2806 |
+
top: -5px;
|
2807 |
+
left: -26px;
|
2808 |
+
height: 13px;
|
2809 |
+
width: 13px;
|
2810 |
+
border: 0;
|
2811 |
+
content: url(../img/check.png);
|
2812 |
+
opacity: 0;
|
2813 |
+
transition: all 0.3s ease;
|
2814 |
+
}
|
2815 |
+
.dc-quick__step__item .disable_option {
|
2816 |
+
border-radius: 5px;
|
2817 |
+
}
|
2818 |
+
.dc-quick__step__item .disable_option.dc-text__block {
|
2819 |
+
background: #f4f6fc;
|
2820 |
+
}
|
2821 |
+
.dc-quick__step__item .disable_option input[type=radio] {
|
2822 |
+
display: none;
|
2823 |
+
}
|
2824 |
+
.dc-quick__step__item .disable_option input[type=radio]:checked ~ label:before {
|
2825 |
+
border-color: #05cb6b;
|
2826 |
+
}
|
2827 |
+
.dc-quick__step__item .disable_option input[type=radio]:checked ~ label:after {
|
2828 |
+
opacity: 1;
|
2829 |
+
}
|
2830 |
+
.dc-quick__step__item .disable_option input[type=radio] ~ label {
|
2831 |
+
font-size: 18px;
|
2832 |
+
font-weight: 500;
|
2833 |
+
color: #22282d;
|
2834 |
+
font-family: "DM Sans", sans-serif;
|
2835 |
+
position: relative;
|
2836 |
+
line-height: 1.3;
|
2837 |
+
padding-left: 25px;
|
2838 |
+
display: block;
|
2839 |
+
margin-bottom: 15px;
|
2840 |
+
}
|
2841 |
+
.dc-quick__step__item .disable_option input[type=radio] ~ label:before {
|
2842 |
+
position: absolute;
|
2843 |
+
top: 4px;
|
2844 |
+
left: 0;
|
2845 |
+
height: 12px;
|
2846 |
+
width: 12px;
|
2847 |
+
border-radius: 50%;
|
2848 |
+
border: 1px solid #687b95;
|
2849 |
+
content: "";
|
2850 |
+
}
|
2851 |
+
.dc-quick__step__item .disable_option input[type=radio] ~ label:after {
|
2852 |
+
position: absolute;
|
2853 |
+
top: 7px;
|
2854 |
+
left: 3px;
|
2855 |
+
height: 8px;
|
2856 |
+
width: 8px;
|
2857 |
+
border-radius: 50%;
|
2858 |
+
border: 0;
|
2859 |
+
background: #05cb6b;
|
2860 |
+
content: "";
|
2861 |
+
opacity: 0;
|
2862 |
+
transition: all 0.3s ease;
|
2863 |
+
}
|
2864 |
+
.dc-quick__step__item .disable_option input[type=radio] ~ label span {
|
2865 |
+
font-size: 16px;
|
2866 |
+
font-weight: 400;
|
2867 |
+
color: #687b95;
|
2868 |
+
}
|
2869 |
+
.dc-quick__step__item .disable_option .disable__checklist {
|
2870 |
+
display: flex;
|
2871 |
+
flex-wrap: wrap;
|
2872 |
+
margin-bottom: 10px;
|
2873 |
+
}
|
2874 |
+
.dc-quick__step__item .disable_option .disable__checklist .disable__checklist__item {
|
2875 |
+
flex: 0 0 140px;
|
2876 |
+
margin-right: 10px;
|
2877 |
+
}
|
2878 |
+
.dc-quick__step__item .disable_option .disable__checklist .disable__checklist__item input {
|
2879 |
+
display: none;
|
2880 |
+
}
|
2881 |
+
.dc-quick__step__item .disable_option .disable__checklist .disable__checklist__item input:checked ~ label:before {
|
2882 |
+
border-color: #00b2fc;
|
2883 |
+
background: #00b2fc;
|
2884 |
+
}
|
2885 |
+
.dc-quick__step__item .disable_option .disable__checklist .disable__checklist__item input:checked ~ label:after {
|
2886 |
+
opacity: 1;
|
2887 |
+
}
|
2888 |
+
.dc-quick__step__item .disable_option .disable__checklist .disable__checklist__item label {
|
2889 |
+
font-size: 16px;
|
2890 |
+
font-weight: 500;
|
2891 |
+
color: #687b95;
|
2892 |
+
font-family: "DM Sans", sans-serif;
|
2893 |
+
position: relative;
|
2894 |
+
line-height: 1.3;
|
2895 |
+
padding-left: 25px;
|
2896 |
+
display: block;
|
2897 |
+
}
|
2898 |
+
.dc-quick__step__item .disable_option .disable__checklist .disable__checklist__item label:before {
|
2899 |
+
position: absolute;
|
2900 |
+
top: 4px;
|
2901 |
+
left: 0;
|
2902 |
+
height: 10px;
|
2903 |
+
width: 10px;
|
2904 |
+
border: 1px solid #687b95;
|
2905 |
+
content: "";
|
2906 |
+
}
|
2907 |
+
.dc-quick__step__item .disable_option .disable__checklist .disable__checklist__item label:after {
|
2908 |
+
position: absolute;
|
2909 |
+
top: -2px;
|
2910 |
+
left: 2px;
|
2911 |
+
height: 11px;
|
2912 |
+
width: 11px;
|
2913 |
+
border: 0;
|
2914 |
+
content: url(../img/check.png);
|
2915 |
+
opacity: 0;
|
2916 |
+
transition: all 0.3s ease;
|
2917 |
+
}
|
2918 |
+
.dc-quick__step__item .disable_option .disable__option__description {
|
2919 |
+
font-size: 15px;
|
2920 |
+
font-weight: 400;
|
2921 |
+
color: #687b95;
|
2922 |
+
font-family: "DM Sans", sans-serif;
|
2923 |
+
}
|
2924 |
+
.dc-quick__step__item .disable_option .disable__option__description .danger {
|
2925 |
+
color: #e0061a;
|
2926 |
+
font-weight: 500;
|
2927 |
+
}
|
2928 |
+
.dc-quick__step__item .finalize-thumb {
|
2929 |
+
text-align: center;
|
2930 |
+
padding: 0 0 30px;
|
2931 |
+
}
|
2932 |
+
.dc-quick__step__item .finalize-thumb img {
|
2933 |
+
max-height: 220px;
|
2934 |
+
}
|
2935 |
+
.dc-quick__step__item .doc__button__wrap {
|
2936 |
+
text-align: center;
|
2937 |
+
}
|
2938 |
+
.dc-quick__step__item .doc__button__wrap .doc__button {
|
2939 |
+
font-size: 16px;
|
2940 |
+
font-weight: 500;
|
2941 |
+
font-family: "DM Sans", sans-serif;
|
2942 |
+
color: #22282d;
|
2943 |
+
text-transform: uppercase;
|
2944 |
+
border: 1px solid #e10619;
|
2945 |
+
border-radius: 5px;
|
2946 |
+
padding: 10px 35px;
|
2947 |
+
outline: none;
|
2948 |
+
box-shadow: none;
|
2949 |
+
}
|
2950 |
+
.dc-quick__step__item .doc__button__wrap .doc__button:hover {
|
2951 |
+
background: #e10619;
|
2952 |
+
color: #ffffff;
|
2953 |
+
}
|
2954 |
+
.dc-quick__step__item #whatWeCollect {
|
2955 |
+
color: #05cb6b;
|
2956 |
+
outline: 0;
|
2957 |
+
box-shadow: none;
|
2958 |
+
}
|
2959 |
+
.dc-quick__step__item #whatWeCollectMessage {
|
2960 |
+
display: none;
|
2961 |
+
}
|
2962 |
+
|
2963 |
+
.dc-quick__setup__wrap .button__group {
|
2964 |
+
display: flex;
|
2965 |
+
flex-wrap: wrap;
|
2966 |
+
justify-content: space-between;
|
2967 |
+
align-items: center;
|
2968 |
+
}
|
2969 |
+
.dc-quick__setup__wrap .button__group .button {
|
2970 |
+
width: 160px;
|
2971 |
+
text-align: center;
|
2972 |
+
}
|
2973 |
+
.dc-quick__setup__wrap .button__group .button.button--sm {
|
2974 |
+
width: 110px;
|
2975 |
+
}
|
2976 |
+
@media (max-width: 767.98px) {
|
2977 |
+
.dc-quick__setup__wrap .button__group .button {
|
2978 |
+
width: unset;
|
2979 |
+
}
|
2980 |
+
.dc-quick__setup__wrap .button__group .button.button--sm {
|
2981 |
+
width: unset;
|
2982 |
+
}
|
2983 |
+
}
|
assets/css/sweetalert2.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.swal2-popup.swal2-toast{flex-direction:row;align-items:center;width:auto;padding:.625em;overflow-y:hidden;background:#fff;box-shadow:0 0 .625em #d9d9d9}.swal2-popup.swal2-toast .swal2-header{flex-direction:row;padding:0}.swal2-popup.swal2-toast .swal2-title{flex-grow:1;justify-content:flex-start;margin:0 .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{position:static;width:.8em;height:.8em;line-height:.8}.swal2-popup.swal2-toast .swal2-content{justify-content:flex-start;padding:0;font-size:1em}.swal2-popup.swal2-toast .swal2-icon{width:2em;min-width:2em;height:2em;margin:0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{font-size:.25em}}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{flex-basis:auto!important;width:auto;height:auto;margin:0 .3125em;padding:0}.swal2-popup.swal2-toast .swal2-styled{margin:0 .3125em;padding:.3125em .625em;font-size:1em}.swal2-popup.swal2-toast .swal2-styled:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(100,150,200,.5)}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:flex;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;flex-direction:row;align-items:center;justify-content:center;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-top{align-items:flex-start}.swal2-container.swal2-top-left,.swal2-container.swal2-top-start{align-items:flex-start;justify-content:flex-start}.swal2-container.swal2-top-end,.swal2-container.swal2-top-right{align-items:flex-start;justify-content:flex-end}.swal2-container.swal2-center{align-items:center}.swal2-container.swal2-center-left,.swal2-container.swal2-center-start{align-items:center;justify-content:flex-start}.swal2-container.swal2-center-end,.swal2-container.swal2-center-right{align-items:center;justify-content:flex-end}.swal2-container.swal2-bottom{align-items:flex-end}.swal2-container.swal2-bottom-left,.swal2-container.swal2-bottom-start{align-items:flex-end;justify-content:flex-start}.swal2-container.swal2-bottom-end,.swal2-container.swal2-bottom-right{align-items:flex-end;justify-content:flex-end}.swal2-container.swal2-bottom-end>:first-child,.swal2-container.swal2-bottom-left>:first-child,.swal2-container.swal2-bottom-right>:first-child,.swal2-container.swal2-bottom-start>:first-child,.swal2-container.swal2-bottom>:first-child{margin-top:auto}.swal2-container.swal2-grow-fullscreen>.swal2-modal{display:flex!important;flex:1;align-self:stretch;justify-content:center}.swal2-container.swal2-grow-row>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-grow-column{flex:1;flex-direction:column}.swal2-container.swal2-grow-column.swal2-bottom,.swal2-container.swal2-grow-column.swal2-center,.swal2-container.swal2-grow-column.swal2-top{align-items:center}.swal2-container.swal2-grow-column.swal2-bottom-left,.swal2-container.swal2-grow-column.swal2-bottom-start,.swal2-container.swal2-grow-column.swal2-center-left,.swal2-container.swal2-grow-column.swal2-center-start,.swal2-container.swal2-grow-column.swal2-top-left,.swal2-container.swal2-grow-column.swal2-top-start{align-items:flex-start}.swal2-container.swal2-grow-column.swal2-bottom-end,.swal2-container.swal2-grow-column.swal2-bottom-right,.swal2-container.swal2-grow-column.swal2-center-end,.swal2-container.swal2-grow-column.swal2-center-right,.swal2-container.swal2-grow-column.swal2-top-end,.swal2-container.swal2-grow-column.swal2-top-right{align-items:flex-end}.swal2-container.swal2-grow-column>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-no-transition{transition:none!important}.swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen)>.swal2-modal{margin:auto}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-container .swal2-modal{margin:0!important}}.swal2-popup{display:none;position:relative;box-sizing:border-box;flex-direction:column;justify-content:center;width:32em;max-width:100%;padding:1.25em;border:none;border-radius:5px;background:#fff;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-header{display:flex;flex-direction:column;align-items:center;padding:0 1.8em}.swal2-title{position:relative;max-width:100%;margin:0 0 .4em;padding:0;color:#595959;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:100%;margin:1.25em auto 0;padding:0 1.6em}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 transparent #2778c4 transparent}.swal2-styled{margin:.3125em;padding:.625em 1.1em;box-shadow:none;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#2778c4;color:#fff;font-size:1.0625em}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#d14529;color:#fff;font-size:1.0625em}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#757575;color:#fff;font-size:1.0625em}.swal2-styled:focus{outline:0;box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1.25em 0 0;padding:1em 0 0;border-top:1px solid #eee;color:#545454;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;height:.25em;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:1.25em auto}.swal2-close{position:absolute;z-index:2;top:0;right:0;align-items:center;justify-content:center;width:1.2em;height:1.2em;padding:0;overflow:hidden;transition:color .1s ease-out;border:none;border-radius:5px;background:0 0;color:#ccc;font-family:serif;font-size:2.5em;line-height:1.2;cursor:pointer}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close:focus{outline:0;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-content{z-index:1;justify-content:center;margin:0;padding:0 1.6em;color:#545454;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em auto}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:100%;transition:border-color .3s,box-shadow .3s;border:1px solid #d9d9d9;border-radius:.1875em;background:inherit;box-shadow:inset 0 1px 1px rgba(0,0,0,.06);color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em auto;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-input[type=number]{max-width:10em}.swal2-file{background:inherit;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:inherit;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto}.swal2-validation-message{display:none;align-items:center;justify-content:center;margin:0 -2.7em;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:"!";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:1.25em auto 1.875em;border:.25em solid transparent;border-radius:50%;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:0 0 1.25em;padding:0;background:inherit;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{right:auto;left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@supports (-ms-accelerator:true){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{top:auto;right:auto;bottom:auto;left:auto;max-width:calc(100% - .625em * 2);background-color:transparent!important}body.swal2-no-backdrop .swal2-container>.swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}body.swal2-no-backdrop .swal2-container.swal2-top{top:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-top-left,body.swal2-no-backdrop .swal2-container.swal2-top-start{top:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-top-end,body.swal2-no-backdrop .swal2-container.swal2-top-right{top:0;right:0}body.swal2-no-backdrop .swal2-container.swal2-center{top:50%;left:50%;transform:translate(-50%,-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-left,body.swal2-no-backdrop .swal2-container.swal2-center-start{top:50%;left:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-end,body.swal2-no-backdrop .swal2-container.swal2-center-right{top:50%;right:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom{bottom:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom-left,body.swal2-no-backdrop .swal2-container.swal2-bottom-start{bottom:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-bottom-end,body.swal2-no-backdrop .swal2-container.swal2-bottom-right{right:0;bottom:0}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{background-color:transparent}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}body.swal2-toast-column .swal2-toast{flex-direction:column;align-items:stretch}body.swal2-toast-column .swal2-toast .swal2-actions{flex:1;align-self:stretch;height:2.2em;margin-top:.3125em}body.swal2-toast-column .swal2-toast .swal2-loading{justify-content:center}body.swal2-toast-column .swal2-toast .swal2-input{height:2em;margin:.3125em auto;font-size:1em}body.swal2-toast-column .swal2-toast .swal2-validation-message{font-size:1em}
|
assets/disable-comments.js
DELETED
@@ -1,8 +0,0 @@
|
|
1 |
-
"use strict";
|
2 |
-
|
3 |
-
wp.domReady(function () {
|
4 |
-
if (wp.blocks) {
|
5 |
-
wp.blocks.unregisterBlockType('core/latest-comments');
|
6 |
-
}
|
7 |
-
});
|
8 |
-
//# sourceMappingURL=disable-comments.js.map
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/disable-comments.js.map
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
{"version":3,"sources":["../src/disable-comments.js"],"names":["wp","domReady","blocks","unregisterBlockType"],"mappings":";;AAAAA,EAAE,CAACC,QAAH,CAAY,YAAM;AACjB,MAAGD,EAAE,CAACE,MAAN,EAAc;AACbF,IAAAA,EAAE,CAACE,MAAH,CAAUC,mBAAV,CAA8B,sBAA9B;AACA;AACD,CAJD","sourcesContent":["wp.domReady(() => {\n\tif(wp.blocks) {\n\t\twp.blocks.unregisterBlockType('core/latest-comments');\n\t}\n});\n"],"file":"disable-comments.js"}
|
|
assets/img/blog/thumb-1.jpg
ADDED
Binary file
|
assets/img/check.png
ADDED
Binary file
|
assets/img/company-thumb.png
ADDED
Binary file
|
assets/img/finalize-thumb.png
ADDED
Binary file
|
assets/img/icon-logo-small.png
ADDED
Binary file
|
assets/img/icon-logo.png
ADDED
Binary file
|
assets/img/logo.png
ADDED
Binary file
|
assets/js/disable-comments-settings-scripts.js
ADDED
@@ -0,0 +1,278 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery(document).ready(function () {
|
2 |
+
/**
|
3 |
+
* Settings Scripts
|
4 |
+
*/
|
5 |
+
// tabs
|
6 |
+
function disbale_comments_tabs() {
|
7 |
+
var hash = window.location.hash;
|
8 |
+
var tabNavItem =
|
9 |
+
"ul.disable__comment__nav li.disable__comment__nav__item";
|
10 |
+
var tabBodyItem = ".disable__comment__tab .disable__comment__tab__item";
|
11 |
+
jQuery(tabNavItem).on("click", "a", function (e) {
|
12 |
+
e.preventDefault();
|
13 |
+
jQuery(this)
|
14 |
+
.addClass("active")
|
15 |
+
.parent()
|
16 |
+
.siblings()
|
17 |
+
.children()
|
18 |
+
.removeClass("active");
|
19 |
+
var target = jQuery(this).attr("href");
|
20 |
+
jQuery(target).addClass("show").siblings().removeClass("show");
|
21 |
+
});
|
22 |
+
if (hash === "#delete") {
|
23 |
+
jQuery("#disableCommentsNav > a").removeClass("active");
|
24 |
+
jQuery("#disableComments").removeClass("show");
|
25 |
+
jQuery("#deleteCommentsNav > a").addClass("active");
|
26 |
+
jQuery("#deleteComments").addClass("show");
|
27 |
+
}
|
28 |
+
}
|
29 |
+
disbale_comments_tabs();
|
30 |
+
// UI Helper
|
31 |
+
function disable_comments_uihelper() {
|
32 |
+
var indiv_bits = jQuery(
|
33 |
+
".remove__checklist .remove__checklist__item, #extratypes"
|
34 |
+
);
|
35 |
+
if (jQuery("#remove_everywhere").is(":checked")) {
|
36 |
+
indiv_bits
|
37 |
+
.css("opacity", ".3")
|
38 |
+
.find(":input")
|
39 |
+
.attr("disabled", true);
|
40 |
+
} else {
|
41 |
+
indiv_bits
|
42 |
+
.css("opacity", "1")
|
43 |
+
.find(":input")
|
44 |
+
.attr("disabled", false);
|
45 |
+
}
|
46 |
+
}
|
47 |
+
|
48 |
+
jQuery("#remove_everywhere, #selected_types").change(function () {
|
49 |
+
jQuery("#message").slideUp();
|
50 |
+
disable_comments_uihelper();
|
51 |
+
});
|
52 |
+
disable_comments_uihelper();
|
53 |
+
|
54 |
+
function delete_comments_uihelper() {
|
55 |
+
var toggle_pt_bits = jQuery(
|
56 |
+
".delete__checklist .delete__checklist__item, #extradeletetypes"
|
57 |
+
);
|
58 |
+
var toggle_ct_bits = jQuery("#listofdeletecommenttypes");
|
59 |
+
if (jQuery("#delete_everywhere").is(":checked")) {
|
60 |
+
toggle_pt_bits
|
61 |
+
.css("opacity", ".3")
|
62 |
+
.find(":input")
|
63 |
+
.attr("disabled", true);
|
64 |
+
toggle_ct_bits
|
65 |
+
.css("opacity", ".3")
|
66 |
+
.find(":input")
|
67 |
+
.attr("disabled", true);
|
68 |
+
} else {
|
69 |
+
if (jQuery("#selected_delete_types").is(":checked")) {
|
70 |
+
toggle_pt_bits
|
71 |
+
.css("opacity", "1")
|
72 |
+
.find(":input")
|
73 |
+
.attr("disabled", false);
|
74 |
+
toggle_ct_bits
|
75 |
+
.css("opacity", ".3")
|
76 |
+
.find(":input")
|
77 |
+
.attr("disabled", true);
|
78 |
+
} else {
|
79 |
+
toggle_ct_bits
|
80 |
+
.css("opacity", "1")
|
81 |
+
.find(":input")
|
82 |
+
.attr("disabled", false);
|
83 |
+
toggle_pt_bits
|
84 |
+
.css("opacity", ".3")
|
85 |
+
.find(":input")
|
86 |
+
.attr("disabled", true);
|
87 |
+
}
|
88 |
+
}
|
89 |
+
}
|
90 |
+
|
91 |
+
jQuery(
|
92 |
+
"#delete_everywhere, #selected_delete_types, #selected_delete_comment_types"
|
93 |
+
).change(function () {
|
94 |
+
delete_comments_uihelper();
|
95 |
+
});
|
96 |
+
delete_comments_uihelper();
|
97 |
+
|
98 |
+
/**
|
99 |
+
* Quick Setup Settings Scripts
|
100 |
+
*/
|
101 |
+
if (jQuery("#disablecommentssetupwrap").length > 0) {
|
102 |
+
// disable nav click
|
103 |
+
jQuery("ul.dc-quick__setup__nav li a").on("click", function (e) {
|
104 |
+
e.stopPropagation();
|
105 |
+
e.preventDefault();
|
106 |
+
});
|
107 |
+
var btnPrevious = "#dcQuickPreviousBtn";
|
108 |
+
var btnNext = "#dcQuickNextBtn";
|
109 |
+
var btnSkip = "#dcQuickSkipBtn";
|
110 |
+
var finishStepFlug = false;
|
111 |
+
var tabPosition = localStorage.getItem("dcqTabPostion");
|
112 |
+
if (!tabPosition || tabPosition == null || isNaN(tabPosition)) {
|
113 |
+
localStorage.setItem("dcqTabPostion", 1);
|
114 |
+
tabPosition = 1;
|
115 |
+
}
|
116 |
+
changeTab(tabPosition); // window load
|
117 |
+
|
118 |
+
// click button
|
119 |
+
jQuery(btnPrevious).on("click", function (e) {
|
120 |
+
e.preventDefault();
|
121 |
+
finishStepFlug = false;
|
122 |
+
updateTabPosition(localStorage.getItem("dcqTabPostion"), true);
|
123 |
+
});
|
124 |
+
jQuery(btnNext).on("click", function (e) {
|
125 |
+
e.preventDefault();
|
126 |
+
updateTabPosition(localStorage.getItem("dcqTabPostion"));
|
127 |
+
save_settings(parseInt(localStorage.getItem("dcqTabPostion") - 1));
|
128 |
+
});
|
129 |
+
jQuery(btnSkip).on("click", function (e) {
|
130 |
+
e.preventDefault();
|
131 |
+
finishStepFlug = false;
|
132 |
+
updateTabPosition(localStorage.getItem("dcqTabPostion"));
|
133 |
+
});
|
134 |
+
|
135 |
+
function updateTabPosition(tabPosition, isDecrement = false) {
|
136 |
+
if (isDecrement === true) {
|
137 |
+
if (1 < tabPosition) {
|
138 |
+
--tabPosition;
|
139 |
+
}
|
140 |
+
} else {
|
141 |
+
if (3 > tabPosition) {
|
142 |
+
++tabPosition;
|
143 |
+
}
|
144 |
+
}
|
145 |
+
localStorage.setItem("dcqTabPostion", tabPosition);
|
146 |
+
changeTab(tabPosition);
|
147 |
+
}
|
148 |
+
function changeTab(nthChildNumber) {
|
149 |
+
for (var i = 1; i <= 3; i++) {
|
150 |
+
if (i <= nthChildNumber) {
|
151 |
+
jQuery(
|
152 |
+
"ul.dc-quick__setup__nav li:nth-child(" + i + ")"
|
153 |
+
).addClass("active");
|
154 |
+
} else {
|
155 |
+
jQuery(
|
156 |
+
"ul.dc-quick__setup__nav li:nth-child(" + i + ")"
|
157 |
+
).removeClass("active");
|
158 |
+
}
|
159 |
+
// active tab
|
160 |
+
if (nthChildNumber == i) {
|
161 |
+
jQuery("#dcqTabBody_" + nthChildNumber).addClass("active");
|
162 |
+
} else {
|
163 |
+
jQuery("#dcqTabBody_" + i).removeClass("active");
|
164 |
+
}
|
165 |
+
// active tab control
|
166 |
+
if (nthChildNumber == 1) {
|
167 |
+
jQuery(btnPrevious).css("visibility", "hidden");
|
168 |
+
jQuery(btnSkip).css("visibility", "hidden");
|
169 |
+
} else {
|
170 |
+
jQuery(btnPrevious).css("visibility", "visible");
|
171 |
+
jQuery(btnSkip).css("visibility", "visible");
|
172 |
+
}
|
173 |
+
if (nthChildNumber == 3) {
|
174 |
+
jQuery(btnSkip).css("visibility", "hidden");
|
175 |
+
jQuery(btnNext).text("Finish");
|
176 |
+
} else {
|
177 |
+
jQuery(btnNext).text("Next");
|
178 |
+
}
|
179 |
+
}
|
180 |
+
}
|
181 |
+
function save_settings(tabPosition) {
|
182 |
+
// get all form data
|
183 |
+
|
184 |
+
if (finishStepFlug) {
|
185 |
+
window.location = disableCommentsObj.settings_URI;
|
186 |
+
} else {
|
187 |
+
if (
|
188 |
+
tabPosition == 1 &&
|
189 |
+
jQuery("[name=dc_is_optin]").is(":checked")
|
190 |
+
) {
|
191 |
+
var data = {
|
192 |
+
action: "optin_wizard_action_disable_comments",
|
193 |
+
};
|
194 |
+
jQuery
|
195 |
+
.post(ajaxurl, data, function (response) {
|
196 |
+
console.log("Optin Success");
|
197 |
+
})
|
198 |
+
.fail(function () {
|
199 |
+
console.error("Optin Failed");
|
200 |
+
});
|
201 |
+
} else if (tabPosition == 2) {
|
202 |
+
finishStepFlug = true;
|
203 |
+
var data = {
|
204 |
+
action: disableCommentsObj.save_action,
|
205 |
+
nonce: disableCommentsObj._nonce,
|
206 |
+
data: jQuery(
|
207 |
+
"#disableCommentSaveSettings"
|
208 |
+
).serializeArray(),
|
209 |
+
};
|
210 |
+
jQuery
|
211 |
+
.post(ajaxurl, data, function (response) {})
|
212 |
+
.fail(function () {
|
213 |
+
console.error("Settings failed to saved.");
|
214 |
+
});
|
215 |
+
}
|
216 |
+
}
|
217 |
+
}
|
218 |
+
|
219 |
+
// what we collect toggle
|
220 |
+
jQuery("#whatWeCollect").on("click", function (e) {
|
221 |
+
e.preventDefault();
|
222 |
+
jQuery("#whatWeCollectMessage").slideToggle("fast");
|
223 |
+
});
|
224 |
+
}
|
225 |
+
/**
|
226 |
+
* Settings Ajax Request
|
227 |
+
*/
|
228 |
+
jQuery("#disableCommentSaveSettings").on("submit", function (e) {
|
229 |
+
e.preventDefault();
|
230 |
+
var data = {
|
231 |
+
action: disableCommentsObj.save_action,
|
232 |
+
nonce: disableCommentsObj._nonce,
|
233 |
+
data: jQuery(this).serializeArray(),
|
234 |
+
};
|
235 |
+
jQuery.post(ajaxurl, data, function (response) {
|
236 |
+
if (response.success) {
|
237 |
+
Swal.fire({
|
238 |
+
icon: "success",
|
239 |
+
title: response.data.message,
|
240 |
+
timer: 3000,
|
241 |
+
showConfirmButton: false,
|
242 |
+
});
|
243 |
+
}
|
244 |
+
});
|
245 |
+
});
|
246 |
+
jQuery("#deleteCommentSettings").on("submit", function (e) {
|
247 |
+
e.preventDefault();
|
248 |
+
Swal.fire({
|
249 |
+
icon: "info",
|
250 |
+
title: "Request Sending...",
|
251 |
+
text: "Please wait.",
|
252 |
+
showConfirmButton: false,
|
253 |
+
});
|
254 |
+
var data = {
|
255 |
+
action: disableCommentsObj.delete_action,
|
256 |
+
nonce: disableCommentsObj._nonce,
|
257 |
+
data: jQuery(this).serializeArray(),
|
258 |
+
};
|
259 |
+
jQuery.post(ajaxurl, data, function (response) {
|
260 |
+
if (response.success) {
|
261 |
+
Swal.fire({
|
262 |
+
icon: "success",
|
263 |
+
title: "Deleted",
|
264 |
+
html: response.data.message,
|
265 |
+
timer: 3000,
|
266 |
+
showConfirmButton: false,
|
267 |
+
});
|
268 |
+
} else {
|
269 |
+
Swal.fire({
|
270 |
+
icon: "error",
|
271 |
+
title: "Oops...",
|
272 |
+
html: response.data.message,
|
273 |
+
showConfirmButton: true,
|
274 |
+
});
|
275 |
+
}
|
276 |
+
});
|
277 |
+
});
|
278 |
+
});
|
assets/js/disable-comments.js
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"use strict";
|
2 |
+
|
3 |
+
wp.domReady(function () {
|
4 |
+
if (wp.blocks) {
|
5 |
+
wp.blocks.unregisterBlockType("core/latest-comments");
|
6 |
+
}
|
7 |
+
});
|
assets/js/sweetalert2.all.min.js
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).Sweetalert2=e()}(this,function(){"use strict";function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function s(t,e,n){return e&&o(t.prototype,e),n&&o(t,n),t}function c(){return(c=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n,o=arguments[e];for(n in o)Object.prototype.hasOwnProperty.call(o,n)&&(t[n]=o[n])}return t}).apply(this,arguments)}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function l(t,e){return(l=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function d(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}function i(t,e,n){return(i=d()?Reflect.construct:function(t,e,n){var o=[null];o.push.apply(o,e);o=new(Function.bind.apply(t,o));return n&&l(o,n.prototype),o}).apply(null,arguments)}function p(t,e){return!e||"object"!=typeof e&&"function"!=typeof e?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):e}function f(t,e,n){return(f="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(t,e,n){t=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=u(t)););return t}(t,e);if(t){e=Object.getOwnPropertyDescriptor(t,e);return e.get?e.get.call(n):e.value}})(t,e,n||t)}function m(e){return Object.keys(e).map(function(t){return e[t]})}function h(t){return Array.prototype.slice.call(t)}function g(t,e){e='"'.concat(t,'" is deprecated and will be removed in the next major release. Please use "').concat(e,'" instead.'),-1===K.indexOf(e)&&(K.push(e),z(e))}function v(t){return t&&"function"==typeof t.toPromise}function y(t){return v(t)?t.toPromise():Promise.resolve(t)}function b(t){return t&&Promise.resolve(t)===t}function w(t){return t instanceof Element||"object"===r(t=t)&&t.jquery}function C(){return document.body.querySelector(".".concat($.container))}function k(t){var e=C();return e?e.querySelector(t):null}function t(t){return k(".".concat(t))}function x(){return t($.popup)}function n(){var t=x();return h(t.querySelectorAll(".".concat($.icon)))}function B(){var t=n().filter(function(t){return bt(t)});return t.length?t[0]:null}function A(){return t($.title)}function P(){return t($.content)}function E(){return t($.image)}function O(){return t($["progress-steps"])}function S(){return t($["validation-message"])}function T(){return k(".".concat($.actions," .").concat($.confirm))}function L(){return k(".".concat($.actions," .").concat($.deny))}function D(){return k(".".concat($.loader))}function I(){return k(".".concat($.actions," .").concat($.cancel))}function q(){return t($.actions)}function j(){return t($.header)}function M(){return t($.footer)}function V(){return t($["timer-progress-bar"])}function H(){return t($.close)}function R(){var t=h(x().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')).sort(function(t,e){return t=parseInt(t.getAttribute("tabindex")),(e=parseInt(e.getAttribute("tabindex")))<t?1:t<e?-1:0}),e=h(x().querySelectorAll('\n a[href],\n area[href],\n input:not([disabled]),\n select:not([disabled]),\n textarea:not([disabled]),\n button:not([disabled]),\n iframe,\n object,\n embed,\n [tabindex="0"],\n [contenteditable],\n audio[controls],\n video[controls],\n summary\n')).filter(function(t){return"-1"!==t.getAttribute("tabindex")});return function(t){for(var e=[],n=0;n<t.length;n++)-1===e.indexOf(t[n])&&e.push(t[n]);return e}(t.concat(e)).filter(function(t){return bt(t)})}function N(){return!X()&&!document.body.classList.contains($["no-backdrop"])}function U(e,t){e.textContent="",t&&(t=(new DOMParser).parseFromString(t,"text/html"),h(t.querySelector("head").childNodes).forEach(function(t){e.appendChild(t)}),h(t.querySelector("body").childNodes).forEach(function(t){e.appendChild(t)}))}function _(t,e){if(e){for(var n=e.split(/\s+/),o=0;o<n.length;o++)if(!t.classList.contains(n[o]))return;return 1}}function F(t,e,n){var o,i;if(i=e,h((o=t).classList).forEach(function(t){-1===m($).indexOf(t)&&-1===m(J).indexOf(t)&&-1===m(i.showClass).indexOf(t)&&o.classList.remove(t)}),e.customClass&&e.customClass[n]){if("string"!=typeof e.customClass[n]&&!e.customClass[n].forEach)return z("Invalid type of customClass.".concat(n,'! Expected string or iterable object, got "').concat(r(e.customClass[n]),'"'));gt(t,e.customClass[n])}}var e="SweetAlert2:",z=function(t){console.warn("".concat(e," ").concat(t))},W=function(t){console.error("".concat(e," ").concat(t))},K=[],Y=function(t){return"function"==typeof t?t():t},Z=Object.freeze({cancel:"cancel",backdrop:"backdrop",close:"close",esc:"esc",timer:"timer"}),Q=function(t){var e,n={};for(e in t)n[t[e]]="swal2-"+t[e];return n},$=Q(["container","shown","height-auto","iosfix","popup","modal","no-backdrop","no-transition","toast","toast-shown","toast-column","show","hide","close","title","header","content","html-container","actions","confirm","deny","cancel","footer","icon","icon-content","image","input","file","range","select","radio","checkbox","label","textarea","inputerror","input-label","validation-message","progress-steps","active-progress-step","progress-step","progress-step-line","loader","loading","styled","top","top-start","top-end","top-left","top-right","center","center-start","center-end","center-left","center-right","bottom","bottom-start","bottom-end","bottom-left","bottom-right","grow-row","grow-column","grow-fullscreen","rtl","timer-progress-bar","timer-progress-bar-container","scrollbar-measure","icon-success","icon-warning","icon-info","icon-question","icon-error"]),J=Q(["success","warning","info","question","error"]),X=function(){return document.body.classList.contains($["toast-shown"])},G={previousBodyPadding:null};function tt(t,e){if(!e)return null;switch(e){case"select":case"textarea":case"file":return yt(t,$[e]);case"checkbox":return t.querySelector(".".concat($.checkbox," input"));case"radio":return t.querySelector(".".concat($.radio," input:checked"))||t.querySelector(".".concat($.radio," input:first-child"));case"range":return t.querySelector(".".concat($.range," input"));default:return yt(t,$.input)}}function et(t){var e;t.focus(),"file"!==t.type&&(e=t.value,t.value="",t.value=e)}function nt(t,e,n){t&&e&&("string"==typeof e&&(e=e.split(/\s+/).filter(Boolean)),e.forEach(function(e){t.forEach?t.forEach(function(t){n?t.classList.add(e):t.classList.remove(e)}):n?t.classList.add(e):t.classList.remove(e)}))}function ot(t,e,n){n||0===parseInt(n)?t.style[e]="number"==typeof n?"".concat(n,"px"):n:t.style.removeProperty(e)}function it(t,e){e=1<arguments.length&&void 0!==e?e:"flex",t.style.display=e}function rt(t){t.style.display="none"}function at(t,e,n,o){(e=t.querySelector(e))&&(e.style[n]=o)}function st(t,e,n){e?it(t,n):rt(t)}function ct(t){return!!(t.scrollHeight>t.clientHeight)}function ut(t){var e=window.getComputedStyle(t),t=parseFloat(e.getPropertyValue("animation-duration")||"0"),e=parseFloat(e.getPropertyValue("transition-duration")||"0");return 0<t||0<e}function lt(t,e){var e=1<arguments.length&&void 0!==e&&e,n=V();bt(n)&&(e&&(n.style.transition="none",n.style.width="100%"),setTimeout(function(){n.style.transition="width ".concat(t/1e3,"s linear"),n.style.width="0%"},10))}function dt(){return"undefined"==typeof window||"undefined"==typeof document}function pt(t){kn.isVisible()&&ht!==t.target.value&&kn.resetValidationMessage(),ht=t.target.value}function ft(t,e){t instanceof HTMLElement?e.appendChild(t):"object"===r(t)?kt(t,e):t&&U(e,t)}function mt(t,e){var n=q(),o=D(),i=T(),r=L(),a=I();e.showConfirmButton||e.showDenyButton||e.showCancelButton||rt(n),F(n,e,"actions"),At(i,"confirm",e),At(r,"deny",e),At(a,"cancel",e),function(t,e,n,o){if(!o.buttonsStyling)return vt([t,e,n],$.styled);gt([t,e,n],$.styled),o.confirmButtonColor&&(t.style.backgroundColor=o.confirmButtonColor);o.denyButtonColor&&(e.style.backgroundColor=o.denyButtonColor);o.cancelButtonColor&&(n.style.backgroundColor=o.cancelButtonColor)}(i,r,a,e),e.reverseButtons&&(n.insertBefore(a,o),n.insertBefore(r,o),n.insertBefore(i,o)),o.innerHTML=e.loaderHtml,F(o,e,"loader")}var ht,gt=function(t,e){nt(t,e,!0)},vt=function(t,e){nt(t,e,!1)},yt=function(t,e){for(var n=0;n<t.childNodes.length;n++)if(_(t.childNodes[n],e))return t.childNodes[n]},bt=function(t){return!(!t||!(t.offsetWidth||t.offsetHeight||t.getClientRects().length))},wt='\n <div aria-labelledby="'.concat($.title,'" aria-describedby="').concat($.content,'" class="').concat($.popup,'" tabindex="-1">\n <div class="').concat($.header,'">\n <ul class="').concat($["progress-steps"],'"></ul>\n <div class="').concat($.icon," ").concat(J.error,'"></div>\n <div class="').concat($.icon," ").concat(J.question,'"></div>\n <div class="').concat($.icon," ").concat(J.warning,'"></div>\n <div class="').concat($.icon," ").concat(J.info,'"></div>\n <div class="').concat($.icon," ").concat(J.success,'"></div>\n <img class="').concat($.image,'" />\n <h2 class="').concat($.title,'" id="').concat($.title,'"></h2>\n <button type="button" class="').concat($.close,'"></button>\n </div>\n <div class="').concat($.content,'">\n <div id="').concat($.content,'" class="').concat($["html-container"],'"></div>\n <input class="').concat($.input,'" />\n <input type="file" class="').concat($.file,'" />\n <div class="').concat($.range,'">\n <input type="range" />\n <output></output>\n </div>\n <select class="').concat($.select,'"></select>\n <div class="').concat($.radio,'"></div>\n <label for="').concat($.checkbox,'" class="').concat($.checkbox,'">\n <input type="checkbox" />\n <span class="').concat($.label,'"></span>\n </label>\n <textarea class="').concat($.textarea,'"></textarea>\n <div class="').concat($["validation-message"],'" id="').concat($["validation-message"],'"></div>\n </div>\n <div class="').concat($.actions,'">\n <div class="').concat($.loader,'"></div>\n <button type="button" class="').concat($.confirm,'"></button>\n <button type="button" class="').concat($.deny,'"></button>\n <button type="button" class="').concat($.cancel,'"></button>\n </div>\n <div class="').concat($.footer,'"></div>\n <div class="').concat($["timer-progress-bar-container"],'">\n <div class="').concat($["timer-progress-bar"],'"></div>\n </div>\n </div>\n').replace(/(^|\n)\s*/g,""),Ct=function(t){var e,n,o,i,r,a=!!(i=C())&&(i.parentNode.removeChild(i),vt([document.documentElement,document.body],[$["no-backdrop"],$["toast-shown"],$["has-column"]]),!0);dt()?W("SweetAlert2 requires document to initialize"):((r=document.createElement("div")).className=$.container,a&>(r,$["no-transition"]),U(r,wt),(i="string"==typeof(e=t.target)?document.querySelector(e):e).appendChild(r),a=t,(e=x()).setAttribute("role",a.toast?"alert":"dialog"),e.setAttribute("aria-live",a.toast?"polite":"assertive"),a.toast||e.setAttribute("aria-modal","true"),r=i,"rtl"===window.getComputedStyle(r).direction&>(C(),$.rtl),t=P(),a=yt(t,$.input),e=yt(t,$.file),n=t.querySelector(".".concat($.range," input")),o=t.querySelector(".".concat($.range," output")),i=yt(t,$.select),r=t.querySelector(".".concat($.checkbox," input")),t=yt(t,$.textarea),a.oninput=pt,e.onchange=pt,i.onchange=pt,r.onchange=pt,t.oninput=pt,n.oninput=function(t){pt(t),o.value=n.value},n.onchange=function(t){pt(t),n.nextSibling.value=n.value})},kt=function(t,e){t.jquery?xt(e,t):U(e,t.toString())},xt=function(t,e){if(t.textContent="",0 in e)for(var n=0;n in e;n++)t.appendChild(e[n].cloneNode(!0));else t.appendChild(e.cloneNode(!0))},Bt=function(){if(dt())return!1;var t,e=document.createElement("div"),n={WebkitAnimation:"webkitAnimationEnd",OAnimation:"oAnimationEnd oanimationend",animation:"animationend"};for(t in n)if(Object.prototype.hasOwnProperty.call(n,t)&&void 0!==e.style[t])return n[t];return!1}();function At(t,e,n){var o;st(t,n["show".concat((o=e).charAt(0).toUpperCase()+o.slice(1),"Button")],"inline-block"),U(t,n["".concat(e,"ButtonText")]),t.setAttribute("aria-label",n["".concat(e,"ButtonAriaLabel")]),t.className=$[e],F(t,n,"".concat(e,"Button")),gt(t,n["".concat(e,"ButtonClass")])}function Pt(t,e){var n,o,i=C();i&&(o=i,"string"==typeof(n=e.backdrop)?o.style.background=n:n||gt([document.documentElement,document.body],$["no-backdrop"]),!e.backdrop&&e.allowOutsideClick&&z('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`'),o=i,(n=e.position)in $?gt(o,$[n]):(z('The "position" parameter is not valid, defaulting to "center"'),gt(o,$.center)),n=i,!(o=e.grow)||"string"!=typeof o||(o="grow-".concat(o))in $&>(n,$[o]),F(i,e,"container"),(e=document.body.getAttribute("data-swal2-queue-step"))&&(i.setAttribute("data-queue-step",e),document.body.removeAttribute("data-swal2-queue-step")))}function Et(t,e){t.placeholder&&!e.inputPlaceholder||(t.placeholder=e.inputPlaceholder)}function Ot(t,e,n){var o,i;n.inputLabel&&(t.id=$.input,o=document.createElement("label"),i=$["input-label"],o.setAttribute("for",t.id),o.className=i,o.innerText=n.inputLabel,e.insertAdjacentElement("beforebegin",o))}var St={promise:new WeakMap,innerParams:new WeakMap,domCache:new WeakMap},Tt=["input","file","range","select","radio","checkbox","textarea"],Lt=function(t){if(!jt[t.input])return W('Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "'.concat(t.input,'"'));var e=qt(t.input),n=jt[t.input](e,t);it(n),setTimeout(function(){et(n)})},Dt=function(t,e){var n=tt(P(),t);if(n)for(var o in!function(t){for(var e=0;e<t.attributes.length;e++){var n=t.attributes[e].name;-1===["type","value","style"].indexOf(n)&&t.removeAttribute(n)}}(n),e)"range"===t&&"placeholder"===o||n.setAttribute(o,e[o])},It=function(t){var e=qt(t.input);t.customClass&>(e,t.customClass.input)},qt=function(t){t=$[t]||$.input;return yt(P(),t)},jt={};jt.text=jt.email=jt.password=jt.number=jt.tel=jt.url=function(t,e){return"string"==typeof e.inputValue||"number"==typeof e.inputValue?t.value=e.inputValue:b(e.inputValue)||z('Unexpected type of inputValue! Expected "string", "number" or "Promise", got "'.concat(r(e.inputValue),'"')),Ot(t,t,e),Et(t,e),t.type=e.input,t},jt.file=function(t,e){return Ot(t,t,e),Et(t,e),t},jt.range=function(t,e){var n=t.querySelector("input"),o=t.querySelector("output");return n.value=e.inputValue,n.type=e.input,o.value=e.inputValue,Ot(n,t,e),t},jt.select=function(t,e){var n;return t.textContent="",e.inputPlaceholder&&(n=document.createElement("option"),U(n,e.inputPlaceholder),n.value="",n.disabled=!0,n.selected=!0,t.appendChild(n)),Ot(t,t,e),t},jt.radio=function(t){return t.textContent="",t},jt.checkbox=function(t,e){var n=tt(P(),"checkbox");n.value=1,n.id=$.checkbox,n.checked=Boolean(e.inputValue);n=t.querySelector("span");return U(n,e.inputPlaceholder),t},jt.textarea=function(e,t){var n,o;return e.value=t.inputValue,Et(e,t),Ot(e,e,t),"MutationObserver"in window&&(n=parseInt(window.getComputedStyle(x()).width),o=parseInt(window.getComputedStyle(x()).paddingLeft)+parseInt(window.getComputedStyle(x()).paddingRight),new MutationObserver(function(){var t=e.offsetWidth+o;x().style.width=n<t?"".concat(t,"px"):null}).observe(e,{attributes:!0,attributeFilter:["style"]})),e};function Mt(t,e){var o,i,r,n=P().querySelector("#".concat($.content));e.html?(ft(e.html,n),it(n,"block")):e.text?(n.textContent=e.text,it(n,"block")):rt(n),t=t,o=e,i=P(),t=St.innerParams.get(t),r=!t||o.input!==t.input,Tt.forEach(function(t){var e=$[t],n=yt(i,e);Dt(t,o.inputAttributes),n.className=e,r&&rt(n)}),o.input&&(r&&Lt(o),It(o)),F(P(),e,"content")}function Vt(){return C()&&C().getAttribute("data-queue-step")}function Ht(t,o){var i=O();if(!o.progressSteps||0===o.progressSteps.length)return rt(i),0;it(i),i.textContent="";var r=parseInt(void 0===o.currentProgressStep?Vt():o.currentProgressStep);r>=o.progressSteps.length&&z("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),o.progressSteps.forEach(function(t,e){var n,t=(n=t,t=document.createElement("li"),gt(t,$["progress-step"]),U(t,n),t);i.appendChild(t),e===r&>(t,$["active-progress-step"]),e!==o.progressSteps.length-1&&(t=o,e=document.createElement("li"),gt(e,$["progress-step-line"]),t.progressStepsDistance&&(e.style.width=t.progressStepsDistance),e=e,i.appendChild(e))})}function Rt(t,e){var n=j();F(n,e,"header"),Ht(0,e),function(t,e){t=St.innerParams.get(t);t&&e.icon===t.icon&&B()?Ft(B(),e):(_t(),e.icon&&(-1!==Object.keys(J).indexOf(e.icon)?(t=k(".".concat($.icon,".").concat(J[e.icon])),it(t),Wt(t,e),Ft(t,e),gt(t,e.showClass.icon)):W('Unknown icon! Expected "success", "error", "warning", "info" or "question", got "'.concat(e.icon,'"'))))}(t,e),function(t){var e=E();if(!t.imageUrl)return rt(e);it(e,""),e.setAttribute("src",t.imageUrl),e.setAttribute("alt",t.imageAlt),ot(e,"width",t.imageWidth),ot(e,"height",t.imageHeight),e.className=$.image,F(e,t,"image")}(e),n=e,t=A(),st(t,n.title||n.titleText),n.title&&ft(n.title,t),n.titleText&&(t.innerText=n.titleText),F(t,n,"title"),n=e,e=H(),U(e,n.closeButtonHtml),F(e,n,"closeButton"),st(e,n.showCloseButton),e.setAttribute("aria-label",n.closeButtonAriaLabel)}function Nt(t,e){var n,o;o=e,n=x(),ot(n,"width",o.width),ot(n,"padding",o.padding),o.background&&(n.style.background=o.background),Qt(n,o),Pt(0,e),Rt(t,e),Mt(t,e),mt(0,e),o=e,t=M(),st(t,o.footer),o.footer&&ft(o.footer,t),F(t,o,"footer"),"function"==typeof e.didRender?e.didRender(x()):"function"==typeof e.onRender&&e.onRender(x())}function Ut(){return T()&&T().click()}var _t=function(){for(var t=n(),e=0;e<t.length;e++)rt(t[e])},Ft=function(t,e){Kt(t,e),zt(),F(t,e,"icon")},zt=function(){for(var t=x(),e=window.getComputedStyle(t).getPropertyValue("background-color"),n=t.querySelectorAll("[class^=swal2-success-circular-line], .swal2-success-fix"),o=0;o<n.length;o++)n[o].style.backgroundColor=e},Wt=function(t,e){t.textContent="",e.iconHtml?U(t,Yt(e.iconHtml)):"success"===e.icon?U(t,'\n <div class="swal2-success-circular-line-left"></div>\n <span class="swal2-success-line-tip"></span> <span class="swal2-success-line-long"></span>\n <div class="swal2-success-ring"></div> <div class="swal2-success-fix"></div>\n <div class="swal2-success-circular-line-right"></div>\n '):"error"===e.icon?U(t,'\n <span class="swal2-x-mark">\n <span class="swal2-x-mark-line-left"></span>\n <span class="swal2-x-mark-line-right"></span>\n </span>\n '):U(t,Yt({question:"?",warning:"!",info:"i"}[e.icon]))},Kt=function(t,e){if(e.iconColor){t.style.color=e.iconColor,t.style.borderColor=e.iconColor;for(var n=0,o=[".swal2-success-line-tip",".swal2-success-line-long",".swal2-x-mark-line-left",".swal2-x-mark-line-right"];n<o.length;n++)at(t,o[n],"backgroundColor",e.iconColor);at(t,".swal2-success-ring","borderColor",e.iconColor)}},Yt=function(t){return'<div class="'.concat($["icon-content"],'">').concat(t,"</div>")},Zt=[],Qt=function(t,e){t.className="".concat($.popup," ").concat(bt(t)?e.showClass.popup:""),e.toast?(gt([document.documentElement,document.body],$["toast-shown"]),gt(t,$.toast)):gt(t,$.modal),F(t,e,"popup"),"string"==typeof e.customClass&>(t,e.customClass),e.icon&>(t,$["icon-".concat(e.icon)])};function $t(t){var e=x();e||kn.fire(),e=x();var n=q(),o=D();!t&&bt(T())&&(t=T()),it(n),t&&(rt(t),o.setAttribute("data-button-to-replace",t.className)),o.parentNode.insertBefore(o,t),gt([e,n],$.loading),it(o),e.setAttribute("data-loading",!0),e.setAttribute("aria-busy",!0),e.focus()}function Jt(){return new Promise(function(t){var e=window.scrollX,n=window.scrollY;oe.restoreFocusTimeout=setTimeout(function(){oe.previousActiveElement&&oe.previousActiveElement.focus?(oe.previousActiveElement.focus(),oe.previousActiveElement=null):document.body&&document.body.focus(),t()},100),void 0!==e&&void 0!==n&&window.scrollTo(e,n)})}function Xt(){if(oe.timeout)return function(){var t=V(),e=parseInt(window.getComputedStyle(t).width);t.style.removeProperty("transition"),t.style.width="100%";var n=parseInt(window.getComputedStyle(t).width),n=parseInt(e/n*100);t.style.removeProperty("transition"),t.style.width="".concat(n,"%")}(),oe.timeout.stop()}function Gt(){if(oe.timeout){var t=oe.timeout.start();return lt(t),t}}function te(t){return Object.prototype.hasOwnProperty.call(ie,t)}function ee(t){return ae[t]}function ne(t){for(var e in t)te(o=e)||z('Unknown parameter "'.concat(o,'"')),t.toast&&(n=e,-1!==se.indexOf(n)&&z('The parameter "'.concat(n,'" is incompatible with toasts'))),ee(n=e)&&g(n,ee(n));var n,o}var oe={},ie={title:"",titleText:"",text:"",html:"",footer:"",icon:void 0,iconColor:void 0,iconHtml:void 0,toast:!1,animation:!0,showClass:{popup:"swal2-show",backdrop:"swal2-backdrop-show",icon:"swal2-icon-show"},hideClass:{popup:"swal2-hide",backdrop:"swal2-backdrop-hide",icon:"swal2-icon-hide"},customClass:void 0,target:"body",backdrop:!0,heightAuto:!0,allowOutsideClick:!0,allowEscapeKey:!0,allowEnterKey:!0,stopKeydownPropagation:!0,keydownListenerCapture:!1,showConfirmButton:!0,showDenyButton:!1,showCancelButton:!1,preConfirm:void 0,preDeny:void 0,confirmButtonText:"OK",confirmButtonAriaLabel:"",confirmButtonColor:void 0,denyButtonText:"No",denyButtonAriaLabel:"",denyButtonColor:void 0,cancelButtonText:"Cancel",cancelButtonAriaLabel:"",cancelButtonColor:void 0,buttonsStyling:!0,reverseButtons:!1,focusConfirm:!0,focusDeny:!1,focusCancel:!1,showCloseButton:!1,closeButtonHtml:"×",closeButtonAriaLabel:"Close this dialog",loaderHtml:"",showLoaderOnConfirm:!1,imageUrl:void 0,imageWidth:void 0,imageHeight:void 0,imageAlt:"",timer:void 0,timerProgressBar:!1,width:void 0,padding:void 0,background:void 0,input:void 0,inputPlaceholder:"",inputLabel:"",inputValue:"",inputOptions:{},inputAutoTrim:!0,inputAttributes:{},inputValidator:void 0,returnInputValueOnDeny:!1,validationMessage:void 0,grow:!1,position:"center",progressSteps:[],currentProgressStep:void 0,progressStepsDistance:void 0,onBeforeOpen:void 0,onOpen:void 0,willOpen:void 0,didOpen:void 0,onRender:void 0,didRender:void 0,onClose:void 0,onAfterClose:void 0,willClose:void 0,didClose:void 0,onDestroy:void 0,didDestroy:void 0,scrollbarPadding:!0},re=["allowEscapeKey","allowOutsideClick","background","buttonsStyling","cancelButtonAriaLabel","cancelButtonColor","cancelButtonText","closeButtonAriaLabel","closeButtonHtml","confirmButtonAriaLabel","confirmButtonColor","confirmButtonText","currentProgressStep","customClass","denyButtonAriaLabel","denyButtonColor","denyButtonText","didClose","didDestroy","footer","hideClass","html","icon","iconColor","imageAlt","imageHeight","imageUrl","imageWidth","onAfterClose","onClose","onDestroy","progressSteps","reverseButtons","showCancelButton","showCloseButton","showConfirmButton","showDenyButton","text","title","titleText","willClose"],ae={animation:'showClass" and "hideClass',onBeforeOpen:"willOpen",onOpen:"didOpen",onRender:"didRender",onClose:"willClose",onAfterClose:"didClose",onDestroy:"didDestroy"},se=["allowOutsideClick","allowEnterKey","backdrop","focusConfirm","focusDeny","focusCancel","heightAuto","keydownListenerCapture"],ce=Object.freeze({isValidParameter:te,isUpdatableParameter:function(t){return-1!==re.indexOf(t)},isDeprecatedParameter:ee,argsToParams:function(n){var o={};return"object"!==r(n[0])||w(n[0])?["title","html","icon"].forEach(function(t,e){e=n[e];"string"==typeof e||w(e)?o[t]=e:void 0!==e&&W("Unexpected type of ".concat(t,'! Expected "string" or "Element", got ').concat(r(e)))}):c(o,n[0]),o},isVisible:function(){return bt(x())},clickConfirm:Ut,clickDeny:function(){return L()&&L().click()},clickCancel:function(){return I()&&I().click()},getContainer:C,getPopup:x,getTitle:A,getContent:P,getHtmlContainer:function(){return t($["html-container"])},getImage:E,getIcon:B,getIcons:n,getInputLabel:function(){return t($["input-label"])},getCloseButton:H,getActions:q,getConfirmButton:T,getDenyButton:L,getCancelButton:I,getLoader:D,getHeader:j,getFooter:M,getTimerProgressBar:V,getFocusableElements:R,getValidationMessage:S,isLoading:function(){return x().hasAttribute("data-loading")},fire:function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return i(this,e)},mixin:function(r){return function(t){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&l(t,e)}(i,t);var n,o,e=(n=i,o=d(),function(){var t,e=u(n);return p(this,o?(t=u(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))});function i(){return a(this,i),e.apply(this,arguments)}return s(i,[{key:"_main",value:function(t){return f(u(i.prototype),"_main",this).call(this,c({},r,t))}}]),i}(this)},queue:function(t){var r=this;Zt=t;function a(t,e){Zt=[],t(e)}var s=[];return new Promise(function(i){!function e(n,o){n<Zt.length?(document.body.setAttribute("data-swal2-queue-step",n),r.fire(Zt[n]).then(function(t){void 0!==t.value?(s.push(t.value),e(n+1,o)):a(i,{dismiss:t.dismiss})})):a(i,{value:s})}(0)})},getQueueStep:Vt,insertQueueStep:function(t,e){return e&&e<Zt.length?Zt.splice(e,0,t):Zt.push(t)},deleteQueueStep:function(t){void 0!==Zt[t]&&Zt.splice(t,1)},showLoading:$t,enableLoading:$t,getTimerLeft:function(){return oe.timeout&&oe.timeout.getTimerLeft()},stopTimer:Xt,resumeTimer:Gt,toggleTimer:function(){var t=oe.timeout;return t&&(t.running?Xt:Gt)()},increaseTimer:function(t){if(oe.timeout){t=oe.timeout.increase(t);return lt(t,!0),t}},isTimerRunning:function(){return oe.timeout&&oe.timeout.isRunning()}});function ue(){var t,e;St.innerParams.get(this)&&(t=St.domCache.get(this),rt(t.loader),(e=t.popup.getElementsByClassName(t.loader.getAttribute("data-button-to-replace"))).length?it(e[0],"inline-block"):bt(T())||bt(L())||bt(I())||rt(t.actions),vt([t.popup,t.actions],$.loading),t.popup.removeAttribute("aria-busy"),t.popup.removeAttribute("data-loading"),t.confirmButton.disabled=!1,t.denyButton.disabled=!1,t.cancelButton.disabled=!1)}function le(){null===G.previousBodyPadding&&document.body.scrollHeight>window.innerHeight&&(G.previousBodyPadding=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight="".concat(G.previousBodyPadding+function(){var t=document.createElement("div");t.className=$["scrollbar-measure"],document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e}(),"px"))}function de(){return!!window.MSInputMethodContext&&!!document.documentMode}function pe(){var t=C(),e=x();t.style.removeProperty("align-items"),e.offsetTop<0&&(t.style.alignItems="flex-start")}var fe=function(){navigator.userAgent.match(/(CriOS|FxiOS|EdgiOS|YaBrowser|UCBrowser)/i)||x().scrollHeight>window.innerHeight-44&&(C().style.paddingBottom="".concat(44,"px"))},me=function(){var e,t=C();t.ontouchstart=function(t){e=he(t)},t.ontouchmove=function(t){e&&(t.preventDefault(),t.stopPropagation())}},he=function(t){var e=t.target,n=C();return!ge(t)&&!ve(t)&&(e===n||!(ct(n)||"INPUT"===e.tagName||ct(P())&&P().contains(e)))},ge=function(t){return t.touches&&t.touches.length&&"stylus"===t.touches[0].touchType},ve=function(t){return t.touches&&1<t.touches.length},ye={swalPromiseResolve:new WeakMap};function be(t,e,n,o){n?Ae(t,o):(Jt().then(function(){return Ae(t,o)}),oe.keydownTarget.removeEventListener("keydown",oe.keydownHandler,{capture:oe.keydownListenerCapture}),oe.keydownHandlerAdded=!1),e.parentNode&&!document.body.getAttribute("data-swal2-queue-step")&&e.parentNode.removeChild(e),N()&&(null!==G.previousBodyPadding&&(document.body.style.paddingRight="".concat(G.previousBodyPadding,"px"),G.previousBodyPadding=null),_(document.body,$.iosfix)&&(e=parseInt(document.body.style.top,10),vt(document.body,$.iosfix),document.body.style.top="",document.body.scrollTop=-1*e),"undefined"!=typeof window&&de()&&window.removeEventListener("resize",pe),h(document.body.children).forEach(function(t){t.hasAttribute("data-previous-aria-hidden")?(t.setAttribute("aria-hidden",t.getAttribute("data-previous-aria-hidden")),t.removeAttribute("data-previous-aria-hidden")):t.removeAttribute("aria-hidden")})),vt([document.documentElement,document.body],[$.shown,$["height-auto"],$["no-backdrop"],$["toast-shown"],$["toast-column"]])}function we(t){var e,n,o,i=x();i&&(t=Ce(t),(e=St.innerParams.get(this))&&!_(i,e.hideClass.popup)&&(n=ye.swalPromiseResolve.get(this),vt(i,e.showClass.popup),gt(i,e.hideClass.popup),o=C(),vt(o,e.showClass.backdrop),gt(o,e.hideClass.backdrop),ke(this,i,e),n(t)))}function Ce(t){return void 0===t?{isConfirmed:!1,isDenied:!1,isDismissed:!0}:c({isConfirmed:!1,isDenied:!1,isDismissed:!1},t)}function ke(t,e,n){var o=C(),i=Bt&&ut(e),r=n.onClose,a=n.onAfterClose,s=n.willClose,n=n.didClose;xe(e,s,r),i?Be(t,e,o,n||a):be(t,o,X(),n||a)}var xe=function(t,e,n){null!==e&&"function"==typeof e?e(t):null!==n&&"function"==typeof n&&n(t)},Be=function(t,e,n,o){oe.swalCloseEventFinishedCallback=be.bind(null,t,n,X(),o),e.addEventListener(Bt,function(t){t.target===e&&(oe.swalCloseEventFinishedCallback(),delete oe.swalCloseEventFinishedCallback)})},Ae=function(t,e){setTimeout(function(){"function"==typeof e&&e(),t._destroy()})};function Pe(t,e,n){var o=St.domCache.get(t);e.forEach(function(t){o[t].disabled=n})}function Ee(t,e){if(!t)return!1;if("radio"===t.type)for(var n=t.parentNode.parentNode.querySelectorAll("input"),o=0;o<n.length;o++)n[o].disabled=e;else t.disabled=e}var Oe=function(){function n(t,e){a(this,n),this.callback=t,this.remaining=e,this.running=!1,this.start()}return s(n,[{key:"start",value:function(){return this.running||(this.running=!0,this.started=new Date,this.id=setTimeout(this.callback,this.remaining)),this.remaining}},{key:"stop",value:function(){return this.running&&(this.running=!1,clearTimeout(this.id),this.remaining-=new Date-this.started),this.remaining}},{key:"increase",value:function(t){var e=this.running;return e&&this.stop(),this.remaining+=t,e&&this.start(),this.remaining}},{key:"getTimerLeft",value:function(){return this.running&&(this.stop(),this.start()),this.remaining}},{key:"isRunning",value:function(){return this.running}}]),n}(),Se={email:function(t,e){return/^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(t)?Promise.resolve():Promise.resolve(e||"Invalid email address")},url:function(t,e){return/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(t)?Promise.resolve():Promise.resolve(e||"Invalid URL")}};function Te(t){var e,n;(e=t).inputValidator||Object.keys(Se).forEach(function(t){e.input===t&&(e.inputValidator=Se[t])}),t.showLoaderOnConfirm&&!t.preConfirm&&z("showLoaderOnConfirm is set to true, but preConfirm is not defined.\nshowLoaderOnConfirm should be used together with preConfirm, see usage example:\nhttps://sweetalert2.github.io/#ajax-request"),t.animation=Y(t.animation),(n=t).target&&("string"!=typeof n.target||document.querySelector(n.target))&&("string"==typeof n.target||n.target.appendChild)||(z('Target parameter is not valid, defaulting to "body"'),n.target="body"),"string"==typeof t.title&&(t.title=t.title.split("\n").join("<br />")),Ct(t)}function Le(t){var e=C(),n=x();"function"==typeof t.willOpen?t.willOpen(n):"function"==typeof t.onBeforeOpen&&t.onBeforeOpen(n);var o=window.getComputedStyle(document.body).overflowY;He(e,n,t),setTimeout(function(){Me(e,n)},10),N()&&(Ve(e,t.scrollbarPadding,o),h(document.body.children).forEach(function(t){t===C()||function(t,e){if("function"==typeof t.contains)return t.contains(e)}(t,C())||(t.hasAttribute("aria-hidden")&&t.setAttribute("data-previous-aria-hidden",t.getAttribute("aria-hidden")),t.setAttribute("aria-hidden","true"))})),X()||oe.previousActiveElement||(oe.previousActiveElement=document.activeElement),je(n,t),vt(e,$["no-transition"])}function De(t){var e=x();t.target===e&&(t=C(),e.removeEventListener(Bt,De),t.style.overflowY="auto")}function Ie(t,e){t.closePopup({isConfirmed:!0,value:e})}function qe(t,e,n){var o=R(),i=0;if(i<o.length)return(e+=n)===o.length?e=0:-1===e&&(e=o.length-1),o[e].focus();x().focus()}var je=function(t,e){"function"==typeof e.didOpen?setTimeout(function(){return e.didOpen(t)}):"function"==typeof e.onOpen&&setTimeout(function(){return e.onOpen(t)})},Me=function(t,e){Bt&&ut(e)?(t.style.overflowY="hidden",e.addEventListener(Bt,De)):t.style.overflowY="auto"},Ve=function(t,e,n){var o;(/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream||"MacIntel"===navigator.platform&&1<navigator.maxTouchPoints)&&!_(document.body,$.iosfix)&&(o=document.body.scrollTop,document.body.style.top="".concat(-1*o,"px"),gt(document.body,$.iosfix),me(),fe()),"undefined"!=typeof window&&de()&&(pe(),window.addEventListener("resize",pe)),e&&"hidden"!==n&&le(),setTimeout(function(){t.scrollTop=0})},He=function(t,e,n){gt(t,n.showClass.backdrop),e.style.setProperty("opacity","0","important"),it(e),setTimeout(function(){gt(e,n.showClass.popup),e.style.removeProperty("opacity")},10),gt([document.documentElement,document.body],$.shown),n.heightAuto&&n.backdrop&&!n.toast&>([document.documentElement,document.body],$["height-auto"])},Re=function(t){return t.checked?1:0},Ne=function(t){return t.checked?t.value:null},Ue=function(t){return t.files.length?null!==t.getAttribute("multiple")?t.files:t.files[0]:null},_e=function(e,n){function o(t){return ze[n.input](i,We(t),n)}var i=P();v(n.inputOptions)||b(n.inputOptions)?($t(),y(n.inputOptions).then(function(t){e.hideLoading(),o(t)})):"object"===r(n.inputOptions)?o(n.inputOptions):W("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(r(n.inputOptions)))},Fe=function(e,n){var o=e.getInput();rt(o),y(n.inputValue).then(function(t){o.value="number"===n.input?parseFloat(t)||0:"".concat(t),it(o),o.focus(),e.hideLoading()}).catch(function(t){W("Error in inputValue promise: ".concat(t)),o.value="",it(o),o.focus(),e.hideLoading()})},ze={select:function(t,e,i){function o(t,e,n){var o=document.createElement("option");o.value=n,U(o,e),i.inputValue.toString()===n.toString()&&(o.selected=!0),t.appendChild(o)}var r=yt(t,$.select);e.forEach(function(t){var e,n=t[0],t=t[1];Array.isArray(t)?((e=document.createElement("optgroup")).label=n,e.disabled=!1,r.appendChild(e),t.forEach(function(t){return o(e,t[1],t[0])})):o(r,t,n)}),r.focus()},radio:function(t,e,i){var r=yt(t,$.radio);e.forEach(function(t){var e=t[0],n=t[1],o=document.createElement("input"),t=document.createElement("label");o.type="radio",o.name=$.radio,o.value=e,i.inputValue.toString()===e.toString()&&(o.checked=!0);e=document.createElement("span");U(e,n),e.className=$.label,t.appendChild(o),t.appendChild(e),r.appendChild(t)});e=r.querySelectorAll("input");e.length&&e[0].focus()}},We=function n(o){var i=[];return"undefined"!=typeof Map&&o instanceof Map?o.forEach(function(t,e){"object"===r(t)&&(t=n(t)),i.push([e,t])}):Object.keys(o).forEach(function(t){var e=o[t];"object"===r(e)&&(e=n(e)),i.push([t,e])}),i},Ke=function(t,e,n){var o=function(t,e){t=t.getInput();if(!t)return null;switch(e.input){case"checkbox":return Re(t);case"radio":return Ne(t);case"file":return Ue(t);default:return e.inputAutoTrim?t.value.trim():t.value}}(t,e);e.inputValidator?Ye(t,e,o):t.getInput().checkValidity()?("deny"===n?Ze:Qe)(t,e,o):(t.enableButtons(),t.showValidationMessage(e.validationMessage))},Ye=function(e,n,o){e.disableInput(),Promise.resolve().then(function(){return y(n.inputValidator(o,n.validationMessage))}).then(function(t){e.enableButtons(),e.enableInput(),t?e.showValidationMessage(t):Qe(e,n,o)})},Ze=function(e,t,n){t.preDeny?Promise.resolve().then(function(){return y(t.preDeny(n,t.validationMessage))}).then(function(t){!1===t?e.hideLoading():e.closePopup({isDenied:!0,value:void 0===t?n:t})}):e.closePopup({isDenied:!0,value:n})},Qe=function(e,t,n){t.showLoaderOnConfirm&&$t(),t.preConfirm?(e.resetValidationMessage(),Promise.resolve().then(function(){return y(t.preConfirm(n,t.validationMessage))}).then(function(t){bt(S())||!1===t?e.hideLoading():Ie(e,void 0===t?n:t)})):Ie(e,n)},$e=["ArrowRight","ArrowDown","Right","Down"],Je=["ArrowLeft","ArrowUp","Left","Up"],Xe=["Escape","Esc"],Ge=function(t,e,n){var o=St.innerParams.get(t);o.stopKeydownPropagation&&e.stopPropagation(),"Enter"===e.key?tn(t,e,o):"Tab"===e.key?en(e,o):-1!==[].concat($e,Je).indexOf(e.key)?nn(e.key):-1!==Xe.indexOf(e.key)&&on(e,o,n)},tn=function(t,e,n){e.isComposing||e.target&&t.getInput()&&e.target.outerHTML===t.getInput().outerHTML&&-1===["textarea","file"].indexOf(n.input)&&(Ut(),e.preventDefault())},en=function(t){for(var e=t.target,n=R(),o=-1,i=0;i<n.length;i++)if(e===n[i]){o=i;break}t.shiftKey?qe(0,o,-1):qe(0,o,1),t.stopPropagation(),t.preventDefault()},nn=function(t){-1!==[T(),L(),I()].indexOf(document.activeElement)&&(t=-1!==$e.indexOf(t)?"nextElementSibling":"previousElementSibling",(t=document.activeElement[t])&&t.focus())},on=function(t,e,n){Y(e.allowEscapeKey)&&(t.preventDefault(),n(Z.esc))},rn=function(e,t,n){t.popup.onclick=function(){var t=St.innerParams.get(e);t.showConfirmButton||t.showDenyButton||t.showCancelButton||t.showCloseButton||t.input||n(Z.close)}},an=!1,sn=function(e){e.popup.onmousedown=function(){e.container.onmouseup=function(t){e.container.onmouseup=void 0,t.target===e.container&&(an=!0)}}},cn=function(e){e.container.onmousedown=function(){e.popup.onmouseup=function(t){e.popup.onmouseup=void 0,t.target!==e.popup&&!e.popup.contains(t.target)||(an=!0)}}},un=function(n,o,i){o.container.onclick=function(t){var e=St.innerParams.get(n);an?an=!1:t.target===o.container&&Y(e.allowOutsideClick)&&i(Z.backdrop)}};function ln(t){var e=c({},ie.showClass,t.showClass),n=c({},ie.hideClass,t.hideClass),o=c({},ie,t);return o.showClass=e,o.hideClass=n,!1===t.animation&&(o.showClass={popup:"swal2-noanimation",backdrop:"swal2-noanimation"},o.hideClass={}),o}function dn(a,s,c){return new Promise(function(t){function e(t){a.closePopup({isDismissed:!0,dismiss:t})}var n,o,i,r;ye.swalPromiseResolve.set(a,t),s.confirmButton.onclick=function(){return e=c,(t=a).disableButtons(),void(e.input?Ke(t,e,"confirm"):Qe(t,e,!0));var t,e},s.denyButton.onclick=function(){return e=c,(t=a).disableButtons(),void(e.returnInputValueOnDeny?Ke(t,e,"deny"):Ze(t,e,!1));var t,e},s.cancelButton.onclick=function(){return t=e,a.disableButtons(),void t(Z.cancel);var t},s.closeButton.onclick=function(){return e(Z.close)},n=a,r=s,t=e,St.innerParams.get(n).toast?rn(n,r,t):(sn(r),cn(r),un(n,r,t)),o=a,r=c,i=e,(t=oe).keydownTarget&&t.keydownHandlerAdded&&(t.keydownTarget.removeEventListener("keydown",t.keydownHandler,{capture:t.keydownListenerCapture}),t.keydownHandlerAdded=!1),r.toast||(t.keydownHandler=function(t){return Ge(o,t,i)},t.keydownTarget=r.keydownListenerCapture?window:x(),t.keydownListenerCapture=r.keydownListenerCapture,t.keydownTarget.addEventListener("keydown",t.keydownHandler,{capture:t.keydownListenerCapture}),t.keydownHandlerAdded=!0),(c.toast&&(c.input||c.footer||c.showCloseButton)?gt:vt)(document.body,$["toast-column"]),r=a,"select"===(t=c).input||"radio"===t.input?_e(r,t):-1!==["text","email","number","tel","textarea"].indexOf(t.input)&&(v(t.inputValue)||b(t.inputValue))&&Fe(r,t),Le(c),fn(oe,c,e),mn(s,c),setTimeout(function(){s.container.scrollTop=0})})}function pn(t){var e={popup:x(),container:C(),content:P(),actions:q(),confirmButton:T(),denyButton:L(),cancelButton:I(),loader:D(),closeButton:H(),validationMessage:S(),progressSteps:O()};return St.domCache.set(t,e),e}var fn=function(t,e,n){var o=V();rt(o),e.timer&&(t.timeout=new Oe(function(){n("timer"),delete t.timeout},e.timer),e.timerProgressBar&&(it(o),setTimeout(function(){t.timeout.running&<(e.timer)})))},mn=function(t,e){if(!e.toast)return Y(e.allowEnterKey)?void(hn(t,e)||qe(0,-1,1)):gn()},hn=function(t,e){return e.focusDeny&&bt(t.denyButton)?(t.denyButton.focus(),!0):e.focusCancel&&bt(t.cancelButton)?(t.cancelButton.focus(),!0):!(!e.focusConfirm||!bt(t.confirmButton))&&(t.confirmButton.focus(),!0)},gn=function(){document.activeElement&&"function"==typeof document.activeElement.blur&&document.activeElement.blur()};function vn(t){"function"==typeof t.didDestroy?t.didDestroy():"function"==typeof t.onDestroy&&t.onDestroy()}function yn(t){delete t.params,delete oe.keydownHandler,delete oe.keydownTarget,wn(St),wn(ye)}var bn,wn=function(t){for(var e in t)t[e]=new WeakMap},Q=Object.freeze({hideLoading:ue,disableLoading:ue,getInput:function(t){var e=St.innerParams.get(t||this);return(t=St.domCache.get(t||this))?tt(t.content,e.input):null},close:we,closePopup:we,closeModal:we,closeToast:we,enableButtons:function(){Pe(this,["confirmButton","denyButton","cancelButton"],!1)},disableButtons:function(){Pe(this,["confirmButton","denyButton","cancelButton"],!0)},enableInput:function(){return Ee(this.getInput(),!1)},disableInput:function(){return Ee(this.getInput(),!0)},showValidationMessage:function(t){var e=St.domCache.get(this),n=St.innerParams.get(this);U(e.validationMessage,t),e.validationMessage.className=$["validation-message"],n.customClass&&n.customClass.validationMessage&>(e.validationMessage,n.customClass.validationMessage),it(e.validationMessage),(e=this.getInput())&&(e.setAttribute("aria-invalid",!0),e.setAttribute("aria-describedBy",$["validation-message"]),et(e),gt(e,$.inputerror))},resetValidationMessage:function(){var t=St.domCache.get(this);t.validationMessage&&rt(t.validationMessage),(t=this.getInput())&&(t.removeAttribute("aria-invalid"),t.removeAttribute("aria-describedBy"),vt(t,$.inputerror))},getProgressSteps:function(){return St.domCache.get(this).progressSteps},_main:function(t){ne(t),oe.currentInstance&&oe.currentInstance._destroy(),oe.currentInstance=this;var e=ln(t);return Te(e),Object.freeze(e),oe.timeout&&(oe.timeout.stop(),delete oe.timeout),clearTimeout(oe.restoreFocusTimeout),t=pn(this),Nt(this,e),St.innerParams.set(this,e),dn(this,t,e)},update:function(e){var t=x(),n=St.innerParams.get(this);if(!t||_(t,n.hideClass.popup))return z("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.");var o={};Object.keys(e).forEach(function(t){kn.isUpdatableParameter(t)?o[t]=e[t]:z('Invalid parameter to update: "'.concat(t,'". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js\n\nIf you think this parameter should be updatable, request it here: https://github.com/sweetalert2/sweetalert2/issues/new?template=02_feature_request.md'))}),n=c({},n,o),Nt(this,n),St.innerParams.set(this,n),Object.defineProperties(this,{params:{value:c({},this.params,e),writable:!1,enumerable:!0}})},_destroy:function(){var t=St.domCache.get(this),e=St.innerParams.get(this);e&&(t.popup&&oe.swalCloseEventFinishedCallback&&(oe.swalCloseEventFinishedCallback(),delete oe.swalCloseEventFinishedCallback),oe.deferDisposalTimer&&(clearTimeout(oe.deferDisposalTimer),delete oe.deferDisposalTimer),vn(e),yn(this))}}),Cn=function(){function i(){if(a(this,i),"undefined"!=typeof window){"undefined"==typeof Promise&&W("This package requires a Promise library, please include a shim to enable it in this browser (See: https://github.com/sweetalert2/sweetalert2/wiki/Migration-from-SweetAlert-to-SweetAlert2#1-ie-support)"),bn=this;for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];var o=Object.freeze(this.constructor.argsToParams(e));Object.defineProperties(this,{params:{value:o,writable:!1,enumerable:!0,configurable:!0}});o=this._main(this.params);St.promise.set(this,o)}}return s(i,[{key:"then",value:function(t){return St.promise.get(this).then(t)}},{key:"finally",value:function(t){return St.promise.get(this).finally(t)}}]),i}();c(Cn.prototype,Q),c(Cn,ce),Object.keys(Q).forEach(function(t){Cn[t]=function(){if(bn)return bn[t].apply(bn,arguments)}}),Cn.DismissReason=Z,Cn.version="10.10.1";var kn=Cn;return kn.default=kn}),void 0!==this&&this.Sweetalert2&&(this.swal=this.sweetAlert=this.Swal=this.SweetAlert=this.Sweetalert2);
|
2 |
+
"undefined"!=typeof document&&function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,".swal2-popup.swal2-toast{flex-direction:row;align-items:center;width:auto;padding:.625em;overflow-y:hidden;background:#fff;box-shadow:0 0 .625em #d9d9d9}.swal2-popup.swal2-toast .swal2-header{flex-direction:row;padding:0}.swal2-popup.swal2-toast .swal2-title{flex-grow:1;justify-content:flex-start;margin:0 .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{position:static;width:.8em;height:.8em;line-height:.8}.swal2-popup.swal2-toast .swal2-content{justify-content:flex-start;padding:0;font-size:1em}.swal2-popup.swal2-toast .swal2-icon{width:2em;min-width:2em;height:2em;margin:0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{font-size:.25em}}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{flex-basis:auto!important;width:auto;height:auto;margin:0 .3125em;padding:0}.swal2-popup.swal2-toast .swal2-styled{margin:0 .3125em;padding:.3125em .625em;font-size:1em}.swal2-popup.swal2-toast .swal2-styled:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(100,150,200,.5)}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:flex;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;flex-direction:row;align-items:center;justify-content:center;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-top{align-items:flex-start}.swal2-container.swal2-top-left,.swal2-container.swal2-top-start{align-items:flex-start;justify-content:flex-start}.swal2-container.swal2-top-end,.swal2-container.swal2-top-right{align-items:flex-start;justify-content:flex-end}.swal2-container.swal2-center{align-items:center}.swal2-container.swal2-center-left,.swal2-container.swal2-center-start{align-items:center;justify-content:flex-start}.swal2-container.swal2-center-end,.swal2-container.swal2-center-right{align-items:center;justify-content:flex-end}.swal2-container.swal2-bottom{align-items:flex-end}.swal2-container.swal2-bottom-left,.swal2-container.swal2-bottom-start{align-items:flex-end;justify-content:flex-start}.swal2-container.swal2-bottom-end,.swal2-container.swal2-bottom-right{align-items:flex-end;justify-content:flex-end}.swal2-container.swal2-bottom-end>:first-child,.swal2-container.swal2-bottom-left>:first-child,.swal2-container.swal2-bottom-right>:first-child,.swal2-container.swal2-bottom-start>:first-child,.swal2-container.swal2-bottom>:first-child{margin-top:auto}.swal2-container.swal2-grow-fullscreen>.swal2-modal{display:flex!important;flex:1;align-self:stretch;justify-content:center}.swal2-container.swal2-grow-row>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-grow-column{flex:1;flex-direction:column}.swal2-container.swal2-grow-column.swal2-bottom,.swal2-container.swal2-grow-column.swal2-center,.swal2-container.swal2-grow-column.swal2-top{align-items:center}.swal2-container.swal2-grow-column.swal2-bottom-left,.swal2-container.swal2-grow-column.swal2-bottom-start,.swal2-container.swal2-grow-column.swal2-center-left,.swal2-container.swal2-grow-column.swal2-center-start,.swal2-container.swal2-grow-column.swal2-top-left,.swal2-container.swal2-grow-column.swal2-top-start{align-items:flex-start}.swal2-container.swal2-grow-column.swal2-bottom-end,.swal2-container.swal2-grow-column.swal2-bottom-right,.swal2-container.swal2-grow-column.swal2-center-end,.swal2-container.swal2-grow-column.swal2-center-right,.swal2-container.swal2-grow-column.swal2-top-end,.swal2-container.swal2-grow-column.swal2-top-right{align-items:flex-end}.swal2-container.swal2-grow-column>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-no-transition{transition:none!important}.swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen)>.swal2-modal{margin:auto}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-container .swal2-modal{margin:0!important}}.swal2-popup{display:none;position:relative;box-sizing:border-box;flex-direction:column;justify-content:center;width:32em;max-width:100%;padding:1.25em;border:none;border-radius:5px;background:#fff;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-header{display:flex;flex-direction:column;align-items:center;padding:0 1.8em}.swal2-title{position:relative;max-width:100%;margin:0 0 .4em;padding:0;color:#595959;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:100%;margin:1.25em auto 0;padding:0 1.6em}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 transparent #2778c4 transparent}.swal2-styled{margin:.3125em;padding:.625em 1.1em;box-shadow:none;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#2778c4;color:#fff;font-size:1.0625em}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#d14529;color:#fff;font-size:1.0625em}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#757575;color:#fff;font-size:1.0625em}.swal2-styled:focus{outline:0;box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1.25em 0 0;padding:1em 0 0;border-top:1px solid #eee;color:#545454;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;height:.25em;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:1.25em auto}.swal2-close{position:absolute;z-index:2;top:0;right:0;align-items:center;justify-content:center;width:1.2em;height:1.2em;padding:0;overflow:hidden;transition:color .1s ease-out;border:none;border-radius:5px;background:0 0;color:#ccc;font-family:serif;font-size:2.5em;line-height:1.2;cursor:pointer}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close:focus{outline:0;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-content{z-index:1;justify-content:center;margin:0;padding:0 1.6em;color:#545454;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em auto}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:100%;transition:border-color .3s,box-shadow .3s;border:1px solid #d9d9d9;border-radius:.1875em;background:inherit;box-shadow:inset 0 1px 1px rgba(0,0,0,.06);color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em auto;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-input[type=number]{max-width:10em}.swal2-file{background:inherit;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:inherit;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto}.swal2-validation-message{display:none;align-items:center;justify-content:center;margin:0 -2.7em;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:\"!\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:1.25em auto 1.875em;border:.25em solid transparent;border-radius:50%;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:0 0 1.25em;padding:0;background:inherit;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{right:auto;left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@supports (-ms-accelerator:true){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{top:auto;right:auto;bottom:auto;left:auto;max-width:calc(100% - .625em * 2);background-color:transparent!important}body.swal2-no-backdrop .swal2-container>.swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}body.swal2-no-backdrop .swal2-container.swal2-top{top:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-top-left,body.swal2-no-backdrop .swal2-container.swal2-top-start{top:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-top-end,body.swal2-no-backdrop .swal2-container.swal2-top-right{top:0;right:0}body.swal2-no-backdrop .swal2-container.swal2-center{top:50%;left:50%;transform:translate(-50%,-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-left,body.swal2-no-backdrop .swal2-container.swal2-center-start{top:50%;left:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-end,body.swal2-no-backdrop .swal2-container.swal2-center-right{top:50%;right:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom{bottom:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom-left,body.swal2-no-backdrop .swal2-container.swal2-bottom-start{bottom:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-bottom-end,body.swal2-no-backdrop .swal2-container.swal2-bottom-right{right:0;bottom:0}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{background-color:transparent}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}body.swal2-toast-column .swal2-toast{flex-direction:column;align-items:stretch}body.swal2-toast-column .swal2-toast .swal2-actions{flex:1;align-self:stretch;height:2.2em;margin-top:.3125em}body.swal2-toast-column .swal2-toast .swal2-loading{justify-content:center}body.swal2-toast-column .swal2-toast .swal2-input{height:2em;margin:.3125em auto;font-size:1em}body.swal2-toast-column .swal2-toast .swal2-validation-message{font-size:1em}");
|
disable-comments.php
CHANGED
@@ -1,9 +1,10 @@
|
|
1 |
<?php
|
|
|
2 |
/**
|
3 |
* Plugin Name: Disable Comments
|
4 |
* Plugin URI: https://wordpress.org/plugins/disable-comments/
|
5 |
* Description: Allows administrators to globally disable comments on their site. Comments can be disabled according to post type. You could bulk delete comments using Tools.
|
6 |
-
* Version:
|
7 |
* Author: WPDeveloper
|
8 |
* Author URI: https://wpdeveloper.net
|
9 |
* License: GPL-3.0+
|
@@ -14,37 +15,62 @@
|
|
14 |
* @package Disable_Comments
|
15 |
*/
|
16 |
|
17 |
-
if (
|
18 |
exit;
|
19 |
}
|
20 |
|
21 |
-
class Disable_Comments
|
|
|
22 |
const DB_VERSION = 6;
|
23 |
private static $instance = null;
|
24 |
private $options;
|
25 |
-
|
26 |
private $modified_types = array();
|
27 |
|
28 |
-
public static function get_instance()
|
29 |
-
|
|
|
30 |
self::$instance = new self;
|
31 |
}
|
32 |
return self::$instance;
|
33 |
}
|
34 |
|
35 |
-
function __construct()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
// are we network activated?
|
37 |
-
$this->networkactive = (
|
|
|
38 |
|
39 |
// Load options.
|
40 |
-
if (
|
41 |
-
$this->options = get_site_option(
|
42 |
} else {
|
43 |
-
$this->options = get_option(
|
44 |
}
|
45 |
|
46 |
// If it looks like first run, check compat.
|
47 |
-
if (
|
48 |
$this->check_compatibility();
|
49 |
}
|
50 |
|
@@ -52,37 +78,92 @@ class Disable_Comments {
|
|
52 |
$this->check_db_upgrades();
|
53 |
|
54 |
$this->init_filters();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
}
|
56 |
|
57 |
-
|
58 |
-
if
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
}
|
64 |
}
|
65 |
}
|
66 |
|
67 |
-
private function check_db_upgrades()
|
68 |
-
|
69 |
-
|
70 |
-
|
|
|
71 |
// upgrade options from version 0.2.1 or earlier to 0.3.
|
72 |
-
$this->options['disabled_post_types'] = get_option(
|
73 |
-
delete_option(
|
74 |
}
|
75 |
-
if (
|
76 |
// simple is beautiful - remove multiple settings in favour of one.
|
77 |
-
$this->options['remove_everywhere'] = isset(
|
78 |
-
foreach (
|
79 |
-
unset(
|
80 |
}
|
81 |
}
|
82 |
|
83 |
-
foreach (
|
84 |
-
if (
|
85 |
-
$this->options[
|
86 |
}
|
87 |
}
|
88 |
|
@@ -91,23 +172,25 @@ class Disable_Comments {
|
|
91 |
}
|
92 |
}
|
93 |
|
94 |
-
private function update_options()
|
95 |
-
|
96 |
-
|
|
|
97 |
} else {
|
98 |
-
update_option(
|
99 |
}
|
100 |
}
|
101 |
|
102 |
/**
|
103 |
* Get an array of disabled post type.
|
104 |
*/
|
105 |
-
|
|
|
106 |
$types = $this->options['disabled_post_types'];
|
107 |
// Not all extra_post_types might be registered on this particular site.
|
108 |
-
if (
|
109 |
-
foreach (
|
110 |
-
if (
|
111 |
$types[] = $extra;
|
112 |
}
|
113 |
}
|
@@ -118,146 +201,213 @@ class Disable_Comments {
|
|
118 |
/**
|
119 |
* Check whether comments have been disabled on a given post type.
|
120 |
*/
|
121 |
-
private function is_post_type_disabled(
|
122 |
-
|
|
|
123 |
}
|
124 |
|
125 |
-
private function init_filters()
|
|
|
126 |
// These need to happen now.
|
127 |
-
if (
|
128 |
-
add_action(
|
129 |
-
add_filter(
|
130 |
-
add_action(
|
131 |
|
132 |
// Admin bar filtering has to happen here since WP 3.6.
|
133 |
-
add_action(
|
134 |
-
add_action(
|
135 |
|
136 |
// Disable Comments REST API Endpoint
|
137 |
-
add_filter(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
138 |
}
|
139 |
|
140 |
// These can happen later.
|
141 |
-
add_action(
|
142 |
-
add_action(
|
143 |
// Disable "Latest comments" block in Gutenberg.
|
144 |
-
add_action(
|
|
|
|
|
145 |
}
|
146 |
|
147 |
-
|
148 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
149 |
}
|
150 |
|
151 |
-
public function
|
|
|
|
|
|
|
|
|
|
|
|
|
152 |
$disabled_post_types = $this->get_disabled_post_types();
|
153 |
-
if (
|
154 |
-
foreach (
|
155 |
// we need to know what native support was for later.
|
156 |
-
if (
|
157 |
$this->modified_types[] = $type;
|
158 |
-
remove_post_type_support(
|
159 |
-
remove_post_type_support(
|
160 |
}
|
161 |
}
|
162 |
-
add_filter(
|
163 |
-
add_filter(
|
164 |
-
add_filter(
|
165 |
-
add_filter(
|
166 |
-
} elseif (
|
167 |
/**
|
168 |
* It is possible that $disabled_post_types is empty if other
|
169 |
* plugins have disabled comments. Hence we also check for
|
170 |
* remove_everywhere. If you still get a warning you probably
|
171 |
* shouldn't be using this plugin.
|
172 |
*/
|
173 |
-
add_action(
|
174 |
}
|
175 |
|
176 |
// Filters for the admin only.
|
177 |
-
if (
|
178 |
-
|
179 |
-
|
180 |
-
add_action(
|
181 |
-
|
|
|
182 |
} else {
|
183 |
-
add_action(
|
184 |
-
add_action(
|
185 |
-
add_filter(
|
186 |
-
if (
|
187 |
-
register_deactivation_hook(
|
188 |
}
|
189 |
}
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
add_action(
|
196 |
-
add_action(
|
197 |
-
add_action(
|
198 |
-
|
199 |
-
add_filter( 'pre_option_default_pingback_flag', '__return_zero' );
|
200 |
}
|
201 |
}
|
202 |
// Filters for front end only.
|
203 |
else {
|
204 |
-
add_action(
|
205 |
|
206 |
-
if (
|
207 |
-
add_filter(
|
208 |
}
|
209 |
}
|
210 |
}
|
211 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
212 |
/**
|
213 |
* Replace the theme's comment template with a blank one.
|
214 |
* To prevent this, define DISABLE_COMMENTS_REMOVE_COMMENTS_TEMPLATE
|
215 |
* and set it to True
|
216 |
*/
|
217 |
-
public function check_comment_template()
|
218 |
-
|
219 |
-
|
|
|
220 |
// Kill the comments template.
|
221 |
-
add_filter(
|
222 |
}
|
223 |
// Remove comment-reply script for themes that include it indiscriminately.
|
224 |
-
wp_deregister_script(
|
225 |
// feed_links_extra inserts a comments RSS link.
|
226 |
-
remove_action(
|
227 |
}
|
228 |
}
|
229 |
|
230 |
-
public function dummy_comments_template()
|
231 |
-
|
|
|
232 |
}
|
233 |
|
234 |
|
235 |
/**
|
236 |
* Remove the X-Pingback HTTP header
|
237 |
*/
|
238 |
-
public function filter_wp_headers(
|
239 |
-
|
|
|
240 |
return $headers;
|
241 |
}
|
242 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
243 |
/**
|
244 |
* Issue a 403 for all comment feed requests.
|
245 |
*/
|
246 |
-
public function filter_query()
|
247 |
-
|
248 |
-
|
|
|
249 |
}
|
250 |
}
|
251 |
|
252 |
/**
|
253 |
* Remove comment links from the admin bar.
|
254 |
*/
|
255 |
-
public function filter_admin_bar()
|
256 |
-
|
|
|
257 |
// Remove comments links from admin bar.
|
258 |
-
remove_action(
|
259 |
-
if (
|
260 |
-
add_action(
|
261 |
}
|
262 |
}
|
263 |
}
|
@@ -265,18 +415,20 @@ class Disable_Comments {
|
|
265 |
/**
|
266 |
* Remove the comments endpoint for the REST API
|
267 |
*/
|
268 |
-
public function filter_rest_endpoints(
|
269 |
-
|
|
|
270 |
return $endpoints;
|
271 |
}
|
272 |
|
273 |
/**
|
274 |
* Determines if scripts should be enqueued
|
275 |
*/
|
276 |
-
public function filter_gutenberg_blocks(
|
|
|
277 |
global $post;
|
278 |
|
279 |
-
if (
|
280 |
return $this->disable_comments_script();
|
281 |
}
|
282 |
}
|
@@ -284,85 +436,142 @@ class Disable_Comments {
|
|
284 |
/**
|
285 |
* Enqueues scripts
|
286 |
*/
|
287 |
-
public function disable_comments_script()
|
288 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
289 |
}
|
290 |
|
291 |
/**
|
292 |
* Remove comment links from the admin bar in a multisite network.
|
293 |
*/
|
294 |
-
public function remove_network_comment_links(
|
295 |
-
|
296 |
-
|
297 |
-
|
|
|
298 |
}
|
299 |
} else {
|
300 |
// We have no way to know whether the plugin is active on other sites, so only remove this one.
|
301 |
-
$wp_admin_bar->remove_menu(
|
302 |
}
|
303 |
}
|
304 |
|
305 |
-
public function discussion_notice()
|
|
|
306 |
$disabled_post_types = $this->get_disabled_post_types();
|
307 |
-
if (
|
308 |
$names = array();
|
309 |
-
foreach (
|
310 |
-
$names[
|
311 |
}
|
312 |
|
313 |
-
echo '<div class="notice notice-warning"><p>' . sprintf(
|
314 |
}
|
315 |
}
|
316 |
|
317 |
/**
|
318 |
* Return context-aware settings page URL
|
319 |
*/
|
320 |
-
private function settings_page_url()
|
321 |
-
|
322 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
323 |
}
|
324 |
|
325 |
/**
|
326 |
* Return context-aware tools page URL
|
327 |
*/
|
328 |
-
private function tools_page_url()
|
329 |
-
|
330 |
-
|
|
|
331 |
}
|
332 |
|
333 |
-
|
334 |
-
|
|
|
|
|
335 |
return;
|
336 |
}
|
337 |
-
|
338 |
-
|
339 |
-
|
|
|
|
|
|
|
|
|
340 |
}
|
341 |
}
|
342 |
|
343 |
-
public function filter_admin_menu()
|
|
|
344 |
global $pagenow;
|
345 |
|
346 |
-
if (
|
347 |
-
wp_die(
|
348 |
}
|
349 |
|
350 |
-
remove_menu_page(
|
351 |
|
352 |
-
if (
|
353 |
-
if (
|
354 |
-
wp_die(
|
355 |
}
|
356 |
|
357 |
-
remove_submenu_page(
|
358 |
}
|
359 |
}
|
360 |
|
361 |
-
public function filter_dashboard()
|
362 |
-
|
|
|
363 |
}
|
364 |
|
365 |
-
public function admin_css()
|
|
|
366 |
echo '<style>
|
367 |
#dashboard_right_now .comment-count,
|
368 |
#dashboard_right_now .comment-mod-count,
|
@@ -374,34 +583,39 @@ class Disable_Comments {
|
|
374 |
</style>';
|
375 |
}
|
376 |
|
377 |
-
public function filter_existing_comments(
|
378 |
-
|
379 |
-
|
|
|
380 |
}
|
381 |
|
382 |
-
public function filter_comment_status(
|
383 |
-
|
384 |
-
|
|
|
385 |
}
|
386 |
|
387 |
-
public function filter_comments_number(
|
388 |
-
|
389 |
-
|
|
|
390 |
}
|
391 |
|
392 |
-
public function disable_rc_widget()
|
393 |
-
|
|
|
394 |
/**
|
395 |
* The widget has added a style action when it was constructed - which will
|
396 |
* still fire even if we now unregister the widget... so filter that out
|
397 |
*/
|
398 |
-
add_filter(
|
399 |
}
|
400 |
|
401 |
-
public function set_plugin_meta(
|
|
|
402 |
static $plugin;
|
403 |
-
$plugin = plugin_basename(
|
404 |
-
if (
|
405 |
$links[] = '<a href="https://github.com/WPDevelopers/disable-comments">GitHub</a>';
|
406 |
}
|
407 |
return $links;
|
@@ -410,55 +624,294 @@ class Disable_Comments {
|
|
410 |
/**
|
411 |
* Add links to Settings page
|
412 |
*/
|
413 |
-
public function plugin_actions_links(
|
|
|
414 |
static $plugin;
|
415 |
-
$plugin = plugin_basename(
|
416 |
-
if (
|
417 |
array_unshift(
|
418 |
$links,
|
419 |
-
sprintf(
|
420 |
-
sprintf(
|
421 |
);
|
422 |
}
|
423 |
|
424 |
return $links;
|
425 |
}
|
426 |
|
427 |
-
public function settings_menu()
|
428 |
-
|
429 |
-
|
430 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
431 |
} else {
|
432 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
433 |
}
|
|
|
434 |
}
|
435 |
|
436 |
-
public function
|
437 |
-
|
|
|
|
|
|
|
|
|
|
|
438 |
}
|
439 |
|
440 |
-
public function
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
446 |
}
|
|
|
447 |
}
|
448 |
|
449 |
-
public function
|
450 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
451 |
}
|
452 |
|
453 |
-
private function discussion_settings_allowed()
|
454 |
-
|
|
|
455 |
return true;
|
456 |
}
|
457 |
}
|
458 |
|
459 |
-
public function single_site_deactivate()
|
|
|
460 |
// for single sites, delete the options upon deactivation, not uninstall.
|
461 |
-
delete_option(
|
462 |
}
|
463 |
}
|
464 |
|
1 |
<?php
|
2 |
+
|
3 |
/**
|
4 |
* Plugin Name: Disable Comments
|
5 |
* Plugin URI: https://wordpress.org/plugins/disable-comments/
|
6 |
* Description: Allows administrators to globally disable comments on their site. Comments can be disabled according to post type. You could bulk delete comments using Tools.
|
7 |
+
* Version: 2.0.0
|
8 |
* Author: WPDeveloper
|
9 |
* Author URI: https://wpdeveloper.net
|
10 |
* License: GPL-3.0+
|
15 |
* @package Disable_Comments
|
16 |
*/
|
17 |
|
18 |
+
if (!defined('ABSPATH')) {
|
19 |
exit;
|
20 |
}
|
21 |
|
22 |
+
class Disable_Comments
|
23 |
+
{
|
24 |
const DB_VERSION = 6;
|
25 |
private static $instance = null;
|
26 |
private $options;
|
27 |
+
public $networkactive;
|
28 |
private $modified_types = array();
|
29 |
|
30 |
+
public static function get_instance()
|
31 |
+
{
|
32 |
+
if (is_null(self::$instance)) {
|
33 |
self::$instance = new self;
|
34 |
}
|
35 |
return self::$instance;
|
36 |
}
|
37 |
|
38 |
+
function __construct()
|
39 |
+
{
|
40 |
+
define('DC_VERSION', '2.0.0');
|
41 |
+
define('DC_PLUGIN_SLUG', 'disable_comments_settings');
|
42 |
+
define('DC_PLUGIN_ROOT_PATH', dirname(__FILE__));
|
43 |
+
define('DC_PLUGIN_VIEWS_PATH', DC_PLUGIN_ROOT_PATH . '/views/');
|
44 |
+
define('DC_PLUGIN_ROOT_URI', plugins_url("/", __FILE__));
|
45 |
+
define('DC_ASSETS_URI', DC_PLUGIN_ROOT_URI . 'assets/');
|
46 |
+
|
47 |
+
register_activation_hook(__FILE__, array($this, 'activate'));
|
48 |
+
add_action('wp_loaded', array($this, 'plugin_redirect'));
|
49 |
+
|
50 |
+
// save settings
|
51 |
+
add_action('wp_ajax_disable_comments_save_settings', array($this, 'disable_comments_settings'));
|
52 |
+
add_action('wp_ajax_disable_comments_delete_comments', array($this, 'delete_comments_settings'));
|
53 |
+
|
54 |
+
add_action( 'wp_ajax_optin_wizard_action_disable_comments', array( $this, 'wizard_action' ) );
|
55 |
+
|
56 |
+
// Including cli.php
|
57 |
+
if (defined('WP_CLI') && WP_CLI) {
|
58 |
+
add_action('init', array($this, 'enable_cli'), 9999);
|
59 |
+
}
|
60 |
+
|
61 |
// are we network activated?
|
62 |
+
$this->networkactive = (is_multisite() && array_key_exists(plugin_basename(__FILE__), (array) get_site_option('active_sitewide_plugins')));
|
63 |
+
$this->is_CLI = defined('WP_CLI') && WP_CLI;
|
64 |
|
65 |
// Load options.
|
66 |
+
if ($this->networkactive) {
|
67 |
+
$this->options = get_site_option('disable_comments_options', array());
|
68 |
} else {
|
69 |
+
$this->options = get_option('disable_comments_options', array());
|
70 |
}
|
71 |
|
72 |
// If it looks like first run, check compat.
|
73 |
+
if (empty($this->options)) {
|
74 |
$this->check_compatibility();
|
75 |
}
|
76 |
|
78 |
$this->check_db_upgrades();
|
79 |
|
80 |
$this->init_filters();
|
81 |
+
|
82 |
+
add_action( 'wp_loaded', [ $this, 'start_plugin_usage_tracking'] );
|
83 |
+
}
|
84 |
+
/**
|
85 |
+
* Enable CLI
|
86 |
+
* @since 2.0.0
|
87 |
+
*/
|
88 |
+
public function enable_cli(){
|
89 |
+
require_once DC_PLUGIN_ROOT_PATH . "/includes/cli.php";
|
90 |
+
new Disable_Comment_Command($this);
|
91 |
+
}
|
92 |
+
/**
|
93 |
+
* Optin Added
|
94 |
+
*
|
95 |
+
* @since 2.0.0.
|
96 |
+
*/
|
97 |
+
public function wizard_action(){
|
98 |
+
if( $this->tracker instanceof DisableComments_Plugin_Tracker ) {
|
99 |
+
$allow_tracking = get_option( 'wpins_allow_tracking', [] );
|
100 |
+
update_option('wpins_allow_tracking', array_merge( $allow_tracking, ['disable-comments' => 'disable-comments'] ));
|
101 |
+
$this->tracker->force_tracking();
|
102 |
+
$this->tracker->update_block_notice( 'disable-comments' );
|
103 |
+
}
|
104 |
}
|
105 |
|
106 |
+
public function admin_notice(){
|
107 |
+
if( $this->tracker instanceof DisableComments_Plugin_Tracker ) {
|
108 |
+
if( isset( $this->setup_notice_flag ) && $this->setup_notice_flag === true ) {
|
109 |
+
return;
|
110 |
+
}
|
111 |
+
$current_screen = get_current_screen()->id;
|
112 |
+
$hascaps = $this->networkactive ? is_network_admin() && current_user_can('manage_network_plugins') : current_user_can('manage_options');
|
113 |
+
if( ! in_array( $current_screen, ['admin_page_disable_comments_settings_setup', 'settings_page_disable_comments_settings', 'settings_page_disable_comments_settings_setup', 'settings_page_disable_comments_settings-network', 'settings_page_disable_comments_settings_setup-network', 'admin_page_disable_comments_settings_setup-network' ]) && $hascaps ) {
|
114 |
+
$this->tracker->notice();
|
115 |
+
}
|
116 |
+
}
|
117 |
+
}
|
118 |
+
|
119 |
+
public function start_plugin_usage_tracking()
|
120 |
+
{
|
121 |
+
if (!class_exists('DisableComments_Plugin_Tracker')) {
|
122 |
+
include_once(DC_PLUGIN_ROOT_PATH . '/includes/class-plugin-usage-tracker.php');
|
123 |
+
}
|
124 |
+
$tracker = $this->tracker = DisableComments_Plugin_Tracker::get_instance(__FILE__, [
|
125 |
+
'opt_in' => true,
|
126 |
+
'goodbye_form' => true,
|
127 |
+
'item_id' => 'b0112c9030af6ba53de4'
|
128 |
+
]);
|
129 |
+
$tracker->set_notice_options(array(
|
130 |
+
'notice' => __('Want to help make Disable Comments even better?', 'disable-comments-on-attachments'),
|
131 |
+
'extra_notice' => __('We collect non-sensitive diagnostic data and plugin usage information. Your site URL, WordPress & PHP version, plugins & themes and email address to send you the discount coupon. This data lets us make sure this plugin always stays compatible with the most popular plugins and themes. No spam, I promise.', 'disable-comments-on-attachments'),
|
132 |
+
));
|
133 |
+
$tracker->init();
|
134 |
+
}
|
135 |
+
|
136 |
+
private function check_compatibility()
|
137 |
+
{
|
138 |
+
if (version_compare($GLOBALS['wp_version'], '4.7', '<')) {
|
139 |
+
require_once(ABSPATH . 'wp-admin/includes/plugin.php');
|
140 |
+
deactivate_plugins(__FILE__);
|
141 |
+
if (isset($_GET['action']) && ($_GET['action'] == 'activate' || $_GET['action'] == 'error_scrape')) {
|
142 |
+
exit(sprintf(__('Disable Comments requires WordPress version %s or greater.', 'disable-comments'), '4.7'));
|
143 |
}
|
144 |
}
|
145 |
}
|
146 |
|
147 |
+
private function check_db_upgrades()
|
148 |
+
{
|
149 |
+
$old_ver = isset($this->options['db_version']) ? $this->options['db_version'] : 0;
|
150 |
+
if ($old_ver < self::DB_VERSION) {
|
151 |
+
if ($old_ver < 2) {
|
152 |
// upgrade options from version 0.2.1 or earlier to 0.3.
|
153 |
+
$this->options['disabled_post_types'] = get_option('disable_comments_post_types', array());
|
154 |
+
delete_option('disable_comments_post_types');
|
155 |
}
|
156 |
+
if ($old_ver < 5) {
|
157 |
// simple is beautiful - remove multiple settings in favour of one.
|
158 |
+
$this->options['remove_everywhere'] = isset($this->options['remove_admin_menu_comments']) ? $this->options['remove_admin_menu_comments'] : false;
|
159 |
+
foreach (array('remove_admin_menu_comments', 'remove_admin_bar_comments', 'remove_recent_comments', 'remove_discussion', 'remove_rc_widget') as $v) {
|
160 |
+
unset($this->options[$v]);
|
161 |
}
|
162 |
}
|
163 |
|
164 |
+
foreach (array('remove_everywhere', 'extra_post_types') as $v) {
|
165 |
+
if (!isset($this->options[$v])) {
|
166 |
+
$this->options[$v] = false;
|
167 |
}
|
168 |
}
|
169 |
|
172 |
}
|
173 |
}
|
174 |
|
175 |
+
private function update_options()
|
176 |
+
{
|
177 |
+
if ($this->networkactive) {
|
178 |
+
update_site_option('disable_comments_options', $this->options);
|
179 |
} else {
|
180 |
+
update_option('disable_comments_options', $this->options);
|
181 |
}
|
182 |
}
|
183 |
|
184 |
/**
|
185 |
* Get an array of disabled post type.
|
186 |
*/
|
187 |
+
public function get_disabled_post_types()
|
188 |
+
{
|
189 |
$types = $this->options['disabled_post_types'];
|
190 |
// Not all extra_post_types might be registered on this particular site.
|
191 |
+
if ($this->networkactive) {
|
192 |
+
foreach ((array) $this->options['extra_post_types'] as $extra) {
|
193 |
+
if (post_type_exists($extra)) {
|
194 |
$types[] = $extra;
|
195 |
}
|
196 |
}
|
201 |
/**
|
202 |
* Check whether comments have been disabled on a given post type.
|
203 |
*/
|
204 |
+
private function is_post_type_disabled($type)
|
205 |
+
{
|
206 |
+
return in_array($type, $this->get_disabled_post_types());
|
207 |
}
|
208 |
|
209 |
+
private function init_filters()
|
210 |
+
{
|
211 |
// These need to happen now.
|
212 |
+
if ($this->options['remove_everywhere']) {
|
213 |
+
add_action('widgets_init', array($this, 'disable_rc_widget'));
|
214 |
+
add_filter('wp_headers', array($this, 'filter_wp_headers'));
|
215 |
+
add_action('template_redirect', array($this, 'filter_query'), 9); // before redirect_canonical.
|
216 |
|
217 |
// Admin bar filtering has to happen here since WP 3.6.
|
218 |
+
add_action('template_redirect', array($this, 'filter_admin_bar'));
|
219 |
+
add_action('admin_init', array($this, 'filter_admin_bar'));
|
220 |
|
221 |
// Disable Comments REST API Endpoint
|
222 |
+
add_filter('rest_endpoints', array($this, 'filter_rest_endpoints'));
|
223 |
+
}
|
224 |
+
|
225 |
+
// remove create comment via xmlrpc
|
226 |
+
if (isset($this->options['remove_xmlrpc_comments']) && intval($this->options['remove_xmlrpc_comments']) === 1) {
|
227 |
+
add_filter('xmlrpc_methods', array($this, 'disable_xmlrc_comments'));
|
228 |
+
}
|
229 |
+
// rest API Comment Block
|
230 |
+
if (isset($this->options['remove_rest_API_comments']) && intval($this->options['remove_rest_API_comments']) === 1) {
|
231 |
+
add_filter('rest_pre_insert_comment', array($this, 'disable_rest_API_comments'));
|
232 |
}
|
233 |
|
234 |
// These can happen later.
|
235 |
+
add_action('plugins_loaded', array($this, 'register_text_domain'));
|
236 |
+
add_action('wp_loaded', array($this, 'init_wploaded_filters'));
|
237 |
// Disable "Latest comments" block in Gutenberg.
|
238 |
+
add_action('enqueue_block_editor_assets', array($this, 'filter_gutenberg_blocks'));
|
239 |
+
// settings page assets
|
240 |
+
add_action('admin_enqueue_scripts', array($this, 'settings_page_assets'));
|
241 |
}
|
242 |
|
243 |
+
/**
|
244 |
+
* Do stuff upon plugin activation
|
245 |
+
*
|
246 |
+
* @return void
|
247 |
+
*/
|
248 |
+
public function activate()
|
249 |
+
{
|
250 |
+
$this->update_option('dc_do_activation_redirect', true);
|
251 |
}
|
252 |
|
253 |
+
public function register_text_domain()
|
254 |
+
{
|
255 |
+
load_plugin_textdomain('disable-comments', false, dirname(plugin_basename(__FILE__)) . '/languages');
|
256 |
+
}
|
257 |
+
|
258 |
+
public function init_wploaded_filters()
|
259 |
+
{
|
260 |
$disabled_post_types = $this->get_disabled_post_types();
|
261 |
+
if (!empty($disabled_post_types)) {
|
262 |
+
foreach ($disabled_post_types as $type) {
|
263 |
// we need to know what native support was for later.
|
264 |
+
if (post_type_supports($type, 'comments')) {
|
265 |
$this->modified_types[] = $type;
|
266 |
+
remove_post_type_support($type, 'comments');
|
267 |
+
remove_post_type_support($type, 'trackbacks');
|
268 |
}
|
269 |
}
|
270 |
+
add_filter('comments_array', array($this, 'filter_existing_comments'), 20, 2);
|
271 |
+
add_filter('comments_open', array($this, 'filter_comment_status'), 20, 2);
|
272 |
+
add_filter('pings_open', array($this, 'filter_comment_status'), 20, 2);
|
273 |
+
add_filter('get_comments_number', array($this, 'filter_comments_number'), 20, 2);
|
274 |
+
} elseif (is_admin() && !$this->options['remove_everywhere']) {
|
275 |
/**
|
276 |
* It is possible that $disabled_post_types is empty if other
|
277 |
* plugins have disabled comments. Hence we also check for
|
278 |
* remove_everywhere. If you still get a warning you probably
|
279 |
* shouldn't be using this plugin.
|
280 |
*/
|
281 |
+
add_action('all_admin_notices', array($this, 'setup_notice'));
|
282 |
}
|
283 |
|
284 |
// Filters for the admin only.
|
285 |
+
if (is_admin()) {
|
286 |
+
add_action( 'all_admin_notices', array( $this, 'admin_notice' ) );
|
287 |
+
if ($this->networkactive) {
|
288 |
+
add_action('network_admin_menu', array($this, 'settings_menu'));
|
289 |
+
add_action('network_admin_menu', array($this, 'tools_menu'));
|
290 |
+
add_filter('network_admin_plugin_action_links', array($this, 'plugin_actions_links'), 10, 2);
|
291 |
} else {
|
292 |
+
add_action('admin_menu', array($this, 'settings_menu'));
|
293 |
+
add_action('admin_menu', array($this, 'tools_menu'));
|
294 |
+
add_filter('plugin_action_links', array($this, 'plugin_actions_links'), 10, 2);
|
295 |
+
if (is_multisite()) { // We're on a multisite setup, but the plugin isn't network activated.
|
296 |
+
register_deactivation_hook(__FILE__, array($this, 'single_site_deactivate'));
|
297 |
}
|
298 |
}
|
299 |
+
add_action('admin_notices', array($this, 'discussion_notice'));
|
300 |
+
add_filter('plugin_row_meta', array($this, 'set_plugin_meta'), 10, 2);
|
301 |
+
|
302 |
+
if ($this->options['remove_everywhere']) {
|
303 |
+
add_action('admin_menu', array($this, 'filter_admin_menu'), 9999); // do this as late as possible.
|
304 |
+
add_action('admin_print_styles-index.php', array($this, 'admin_css'));
|
305 |
+
add_action('admin_print_styles-profile.php', array($this, 'admin_css'));
|
306 |
+
add_action('wp_dashboard_setup', array($this, 'filter_dashboard'));
|
307 |
+
add_filter('pre_option_default_pingback_flag', '__return_zero');
|
|
|
308 |
}
|
309 |
}
|
310 |
// Filters for front end only.
|
311 |
else {
|
312 |
+
add_action('template_redirect', array($this, 'check_comment_template'));
|
313 |
|
314 |
+
if ($this->options['remove_everywhere']) {
|
315 |
+
add_filter('feed_links_show_comments_feed', '__return_false');
|
316 |
}
|
317 |
}
|
318 |
}
|
319 |
|
320 |
+
public function get_option( $key, $default = false ){
|
321 |
+
return $this->networkactive ? get_site_option( $key, $default ) : get_option( $key, $default );
|
322 |
+
}
|
323 |
+
public function update_option( $option, $value ){
|
324 |
+
return $this->networkactive ? update_site_option( $option, $value ) : update_option( $option, $value );
|
325 |
+
}
|
326 |
+
public function delete_option( $option ){
|
327 |
+
return $this->networkactive ? delete_site_option( $option ) : delete_option( $option );
|
328 |
+
}
|
329 |
+
|
330 |
+
public function plugin_redirect()
|
331 |
+
{
|
332 |
+
if ( $this->get_option( 'dc_do_activation_redirect') ) {
|
333 |
+
$this->delete_option('dc_do_activation_redirect');
|
334 |
+
if( $this->get_option('dc_setup_screen_seen') ) {
|
335 |
+
wp_safe_redirect($this->settings_page_url());
|
336 |
+
} else {
|
337 |
+
wp_safe_redirect($this->quick_setup_url());
|
338 |
+
}
|
339 |
+
exit;
|
340 |
+
}
|
341 |
+
}
|
342 |
+
|
343 |
/**
|
344 |
* Replace the theme's comment template with a blank one.
|
345 |
* To prevent this, define DISABLE_COMMENTS_REMOVE_COMMENTS_TEMPLATE
|
346 |
* and set it to True
|
347 |
*/
|
348 |
+
public function check_comment_template()
|
349 |
+
{
|
350 |
+
if (is_singular() && ($this->options['remove_everywhere'] || $this->is_post_type_disabled(get_post_type()))) {
|
351 |
+
if (!defined('DISABLE_COMMENTS_REMOVE_COMMENTS_TEMPLATE') || DISABLE_COMMENTS_REMOVE_COMMENTS_TEMPLATE == true) {
|
352 |
// Kill the comments template.
|
353 |
+
add_filter('comments_template', array($this, 'dummy_comments_template'), 20);
|
354 |
}
|
355 |
// Remove comment-reply script for themes that include it indiscriminately.
|
356 |
+
wp_deregister_script('comment-reply');
|
357 |
// feed_links_extra inserts a comments RSS link.
|
358 |
+
remove_action('wp_head', 'feed_links_extra', 3);
|
359 |
}
|
360 |
}
|
361 |
|
362 |
+
public function dummy_comments_template()
|
363 |
+
{
|
364 |
+
return dirname(__FILE__) . '/views/comments.php';
|
365 |
}
|
366 |
|
367 |
|
368 |
/**
|
369 |
* Remove the X-Pingback HTTP header
|
370 |
*/
|
371 |
+
public function filter_wp_headers($headers)
|
372 |
+
{
|
373 |
+
unset($headers['X-Pingback']);
|
374 |
return $headers;
|
375 |
}
|
376 |
|
377 |
+
/**
|
378 |
+
* remove method wp.newComment
|
379 |
+
*/
|
380 |
+
public function disable_xmlrc_comments($methods)
|
381 |
+
{
|
382 |
+
unset($methods['wp.newComment']);
|
383 |
+
return $methods;
|
384 |
+
}
|
385 |
+
|
386 |
+
public function disable_rest_API_comments($prepared_comment, $request)
|
387 |
+
{
|
388 |
+
return;
|
389 |
+
}
|
390 |
+
|
391 |
/**
|
392 |
* Issue a 403 for all comment feed requests.
|
393 |
*/
|
394 |
+
public function filter_query()
|
395 |
+
{
|
396 |
+
if (is_comment_feed()) {
|
397 |
+
wp_die(__('Comments are closed.', 'disable-comments'), '', array('response' => 403));
|
398 |
}
|
399 |
}
|
400 |
|
401 |
/**
|
402 |
* Remove comment links from the admin bar.
|
403 |
*/
|
404 |
+
public function filter_admin_bar()
|
405 |
+
{
|
406 |
+
if (is_admin_bar_showing()) {
|
407 |
// Remove comments links from admin bar.
|
408 |
+
remove_action('admin_bar_menu', 'wp_admin_bar_comments_menu', 60);
|
409 |
+
if (is_multisite()) {
|
410 |
+
add_action('admin_bar_menu', array($this, 'remove_network_comment_links'), 500);
|
411 |
}
|
412 |
}
|
413 |
}
|
415 |
/**
|
416 |
* Remove the comments endpoint for the REST API
|
417 |
*/
|
418 |
+
public function filter_rest_endpoints($endpoints)
|
419 |
+
{
|
420 |
+
unset($endpoints['comments']);
|
421 |
return $endpoints;
|
422 |
}
|
423 |
|
424 |
/**
|
425 |
* Determines if scripts should be enqueued
|
426 |
*/
|
427 |
+
public function filter_gutenberg_blocks($hook)
|
428 |
+
{
|
429 |
global $post;
|
430 |
|
431 |
+
if ($this->options['remove_everywhere'] || (isset($post->post_type) && in_array($post->post_type, $this->get_disabled_post_types(), true))) {
|
432 |
return $this->disable_comments_script();
|
433 |
}
|
434 |
}
|
436 |
/**
|
437 |
* Enqueues scripts
|
438 |
*/
|
439 |
+
public function disable_comments_script()
|
440 |
+
{
|
441 |
+
wp_enqueue_script('disable-comments-gutenberg', plugin_dir_url(__FILE__) . 'assets/js/disable-comments.js', array(), false, true);
|
442 |
+
}
|
443 |
+
|
444 |
+
/**
|
445 |
+
* Enqueues Scripts for Settings Page
|
446 |
+
*/
|
447 |
+
public function settings_page_assets($hook_suffix)
|
448 |
+
{
|
449 |
+
if (
|
450 |
+
$hook_suffix === 'settings_page_' . DC_PLUGIN_SLUG ||
|
451 |
+
$hook_suffix === 'options-general_' . DC_PLUGIN_SLUG ||
|
452 |
+
$hook_suffix === 'admin_page_' . DC_PLUGIN_SLUG . '_setup' ||
|
453 |
+
$hook_suffix === 'settings_page_' . DC_PLUGIN_SLUG . '_setup'
|
454 |
+
) {
|
455 |
+
// css
|
456 |
+
wp_enqueue_style('sweetalert2', DC_ASSETS_URI . 'css/sweetalert2.min.css', [], false);
|
457 |
+
wp_enqueue_style('disable-comments-style', DC_ASSETS_URI . 'css/style.css', [], false);
|
458 |
+
// js
|
459 |
+
wp_enqueue_script('sweetalert2', DC_ASSETS_URI . 'js/sweetalert2.all.min.js', array('jquery'), false, true);
|
460 |
+
wp_enqueue_script('disable-comments-scripts', DC_ASSETS_URI . 'js/disable-comments-settings-scripts.js', array('jquery'), false, true);
|
461 |
+
wp_localize_script(
|
462 |
+
'disable-comments-scripts',
|
463 |
+
'disableCommentsObj',
|
464 |
+
array(
|
465 |
+
'save_action' => 'disable_comments_save_settings',
|
466 |
+
'delete_action' => 'disable_comments_delete_comments',
|
467 |
+
'settings_URI' => $this->settings_page_url(),
|
468 |
+
'_nonce' => wp_create_nonce('disable_comments_save_settings')
|
469 |
+
)
|
470 |
+
);
|
471 |
+
} else {
|
472 |
+
// notice css
|
473 |
+
wp_enqueue_style('disable-comments-notice', DC_ASSETS_URI . 'css/notice.css', [], false);
|
474 |
+
}
|
475 |
}
|
476 |
|
477 |
/**
|
478 |
* Remove comment links from the admin bar in a multisite network.
|
479 |
*/
|
480 |
+
public function remove_network_comment_links($wp_admin_bar)
|
481 |
+
{
|
482 |
+
if ($this->networkactive && is_user_logged_in()) {
|
483 |
+
foreach ((array) $wp_admin_bar->user->blogs as $blog) {
|
484 |
+
$wp_admin_bar->remove_menu('blog-' . $blog->userblog_id . '-c');
|
485 |
}
|
486 |
} else {
|
487 |
// We have no way to know whether the plugin is active on other sites, so only remove this one.
|
488 |
+
$wp_admin_bar->remove_menu('blog-' . get_current_blog_id() . '-c');
|
489 |
}
|
490 |
}
|
491 |
|
492 |
+
public function discussion_notice()
|
493 |
+
{
|
494 |
$disabled_post_types = $this->get_disabled_post_types();
|
495 |
+
if (get_current_screen()->id == 'options-discussion' && !empty($disabled_post_types)) {
|
496 |
$names = array();
|
497 |
+
foreach ($disabled_post_types as $type) {
|
498 |
+
$names[$type] = get_post_type_object($type)->labels->name;
|
499 |
}
|
500 |
|
501 |
+
echo '<div class="notice notice-warning"><p>' . sprintf(__('Note: The <em>Disable Comments</em> plugin is currently active, and comments are completely disabled on: %s. Many of the settings below will not be applicable for those post types.', 'disable-comments'), implode(__(', ', 'disable-comments'), $names)) . '</p></div>';
|
502 |
}
|
503 |
}
|
504 |
|
505 |
/**
|
506 |
* Return context-aware settings page URL
|
507 |
*/
|
508 |
+
private function settings_page_url()
|
509 |
+
{
|
510 |
+
$base = $this->networkactive ? network_admin_url('settings.php') : admin_url('options-general.php');
|
511 |
+
return add_query_arg('page', DC_PLUGIN_SLUG, $base);
|
512 |
+
}
|
513 |
+
|
514 |
+
|
515 |
+
/**
|
516 |
+
* Return context-aware settings page URL
|
517 |
+
*/
|
518 |
+
private function quick_setup_url()
|
519 |
+
{
|
520 |
+
$base = $this->networkactive ? network_admin_url('settings.php') : admin_url('admin.php');
|
521 |
+
return add_query_arg('page', DC_PLUGIN_SLUG . '_setup', $base);
|
522 |
}
|
523 |
|
524 |
/**
|
525 |
* Return context-aware tools page URL
|
526 |
*/
|
527 |
+
private function tools_page_url()
|
528 |
+
{
|
529 |
+
$base = $this->networkactive ? network_admin_url('settings.php') : admin_url('tools.php');
|
530 |
+
return add_query_arg('page', 'disable_comments_tools', $base);
|
531 |
}
|
532 |
|
533 |
+
|
534 |
+
public function setup_notice()
|
535 |
+
{
|
536 |
+
if (strpos(get_current_screen()->id, 'settings_page_disable_comments_settings') === 0) {
|
537 |
return;
|
538 |
}
|
539 |
+
if (strpos(get_current_screen()->id, 'admin_page_disable_comments_settings_setup') === 0) {
|
540 |
+
return;
|
541 |
+
}
|
542 |
+
$hascaps = $this->networkactive ? is_network_admin() && current_user_can('manage_network_plugins') : current_user_can('manage_options');
|
543 |
+
if ($hascaps) {
|
544 |
+
$this->setup_notice_flag = true;
|
545 |
+
echo '<div class="notice dc-text__block disable__comment__alert mb30"><img height="30" src="'. DC_ASSETS_URI .'img/icon-logo.png" alt=""><p>' . sprintf(__('The <strong>Disable Comments</strong> plugin is active, but isn\'t configured to do anything yet. Visit the <a href="%s">configuration page</a> to choose which post types to disable comments on.', 'disable-comments'), esc_attr($this->quick_setup_url())) . '</p></div>';
|
546 |
}
|
547 |
}
|
548 |
|
549 |
+
public function filter_admin_menu()
|
550 |
+
{
|
551 |
global $pagenow;
|
552 |
|
553 |
+
if ($pagenow == 'comment.php' || $pagenow == 'edit-comments.php') {
|
554 |
+
wp_die(__('Comments are closed.', 'disable-comments'), '', array('response' => 403));
|
555 |
}
|
556 |
|
557 |
+
remove_menu_page('edit-comments.php');
|
558 |
|
559 |
+
if (!$this->discussion_settings_allowed()) {
|
560 |
+
if ($pagenow == 'options-discussion.php') {
|
561 |
+
wp_die(__('Comments are closed.', 'disable-comments'), '', array('response' => 403));
|
562 |
}
|
563 |
|
564 |
+
remove_submenu_page('options-general.php', 'options-discussion.php');
|
565 |
}
|
566 |
}
|
567 |
|
568 |
+
public function filter_dashboard()
|
569 |
+
{
|
570 |
+
remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal');
|
571 |
}
|
572 |
|
573 |
+
public function admin_css()
|
574 |
+
{
|
575 |
echo '<style>
|
576 |
#dashboard_right_now .comment-count,
|
577 |
#dashboard_right_now .comment-mod-count,
|
583 |
</style>';
|
584 |
}
|
585 |
|
586 |
+
public function filter_existing_comments($comments, $post_id)
|
587 |
+
{
|
588 |
+
$post = get_post($post_id);
|
589 |
+
return ($this->options['remove_everywhere'] || $this->is_post_type_disabled($post->post_type) ? array() : $comments);
|
590 |
}
|
591 |
|
592 |
+
public function filter_comment_status($open, $post_id)
|
593 |
+
{
|
594 |
+
$post = get_post($post_id);
|
595 |
+
return ($this->options['remove_everywhere'] || $this->is_post_type_disabled($post->post_type) ? false : $open);
|
596 |
}
|
597 |
|
598 |
+
public function filter_comments_number($count, $post_id)
|
599 |
+
{
|
600 |
+
$post = get_post($post_id);
|
601 |
+
return ($this->options['remove_everywhere'] || $this->is_post_type_disabled($post->post_type) ? 0 : $count);
|
602 |
}
|
603 |
|
604 |
+
public function disable_rc_widget()
|
605 |
+
{
|
606 |
+
unregister_widget('WP_Widget_Recent_Comments');
|
607 |
/**
|
608 |
* The widget has added a style action when it was constructed - which will
|
609 |
* still fire even if we now unregister the widget... so filter that out
|
610 |
*/
|
611 |
+
add_filter('show_recent_comments_widget_style', '__return_false');
|
612 |
}
|
613 |
|
614 |
+
public function set_plugin_meta($links, $file)
|
615 |
+
{
|
616 |
static $plugin;
|
617 |
+
$plugin = plugin_basename(__FILE__);
|
618 |
+
if ($file == $plugin) {
|
619 |
$links[] = '<a href="https://github.com/WPDevelopers/disable-comments">GitHub</a>';
|
620 |
}
|
621 |
return $links;
|
624 |
/**
|
625 |
* Add links to Settings page
|
626 |
*/
|
627 |
+
public function plugin_actions_links($links, $file)
|
628 |
+
{
|
629 |
static $plugin;
|
630 |
+
$plugin = plugin_basename(__FILE__);
|
631 |
+
if ($file == $plugin && current_user_can('manage_options')) {
|
632 |
array_unshift(
|
633 |
$links,
|
634 |
+
sprintf('<a href="%s">%s</a>', esc_attr($this->settings_page_url()), __('Settings', 'disable-comments')),
|
635 |
+
sprintf('<a href="%s">%s</a>', esc_attr($this->tools_page_url()), __('Tools', 'disable-comments'))
|
636 |
);
|
637 |
}
|
638 |
|
639 |
return $links;
|
640 |
}
|
641 |
|
642 |
+
public function settings_menu()
|
643 |
+
{
|
644 |
+
$title = _x('Disable Comments', 'settings menu title', 'disable-comments');
|
645 |
+
|
646 |
+
$slug = DC_PLUGIN_SLUG;
|
647 |
+
|
648 |
+
$is_setup_page = isset( $_GET['page'] ) && trim( $_GET['page'] ) === 'disable_comments_settings_setup';
|
649 |
+
|
650 |
+
if( ! $this->get_option('dc_setup_screen_seen') && ! $is_setup_page ) {
|
651 |
+
$slug = DC_PLUGIN_SLUG . '_setup';
|
652 |
+
}
|
653 |
+
|
654 |
+
if ($this->networkactive) {
|
655 |
+
add_submenu_page('settings.php', $title, $title, 'manage_network_plugins', $slug, array($this, 'settings_page'));
|
656 |
} else {
|
657 |
+
if( $slug === 'disable_comments_settings_setup' ) {
|
658 |
+
add_submenu_page('options-general.php', $title, $title, 'manage_options', $slug, array($this, 'setup_settings_page'));
|
659 |
+
} else {
|
660 |
+
add_submenu_page('options-general.php', $title, $title, 'manage_options', $slug, array($this, 'settings_page'));
|
661 |
+
}
|
662 |
+
}
|
663 |
+
add_submenu_page(
|
664 |
+
null,
|
665 |
+
$title,
|
666 |
+
$title,
|
667 |
+
'manage_options',
|
668 |
+
DC_PLUGIN_SLUG . '_setup',
|
669 |
+
array($this, 'setup_settings_page')
|
670 |
+
);
|
671 |
+
}
|
672 |
+
public function tools_menu()
|
673 |
+
{
|
674 |
+
$title = __('Delete Comments', 'disable-comments');
|
675 |
+
$hook = '';
|
676 |
+
if ($this->networkactive) {
|
677 |
+
$hook = add_submenu_page('settings.php', $title, $title, 'manage_network_plugins', 'disable_comments_tools', array($this, 'tools_page'));
|
678 |
+
} else {
|
679 |
+
$hook = add_submenu_page('tools.php', $title, $title, 'manage_options', 'disable_comments_tools', array($this, 'tools_page'));
|
680 |
}
|
681 |
+
add_action('load-' . $hook, array($this, 'redirectToMainSettingsPage'));
|
682 |
}
|
683 |
|
684 |
+
public function redirectToMainSettingsPage()
|
685 |
+
{
|
686 |
+
if ($this->networkactive) {
|
687 |
+
wp_redirect($this->settings_page_url() . '#delete');
|
688 |
+
} else {
|
689 |
+
wp_redirect( $this->settings_page_url() . '#delete');
|
690 |
+
}
|
691 |
}
|
692 |
|
693 |
+
public function get_all_comments_number()
|
694 |
+
{
|
695 |
+
global $wpdb;
|
696 |
+
return $wpdb->get_var("SELECT count(comment_id) from $wpdb->comments");
|
697 |
+
}
|
698 |
+
|
699 |
+
public function get_all_comment_types()
|
700 |
+
{
|
701 |
+
global $wpdb;
|
702 |
+
$commenttypes = array();
|
703 |
+
$commenttypes_query = $wpdb->get_results("SELECT DISTINCT comment_type FROM $wpdb->comments", ARRAY_A);
|
704 |
+
if (!empty($commenttypes_query) && is_array($commenttypes_query)) {
|
705 |
+
foreach ($commenttypes_query as $entry) {
|
706 |
+
$value = $entry['comment_type'];
|
707 |
+
if ('' === $value) {
|
708 |
+
$commenttypes['default'] = __('Default (no type)', 'disable-comments');
|
709 |
+
} else {
|
710 |
+
$commenttypes[$value] = ucwords(str_replace('_', ' ', $value)) . ' (' . $value . ')';
|
711 |
+
}
|
712 |
+
}
|
713 |
+
}
|
714 |
+
return $commenttypes;
|
715 |
+
}
|
716 |
+
|
717 |
+
public function get_all_post_types()
|
718 |
+
{
|
719 |
+
$typeargs = array('public' => true);
|
720 |
+
if ($this->networkactive) {
|
721 |
+
$typeargs['_builtin'] = true; // stick to known types for network.
|
722 |
+
}
|
723 |
+
$types = get_post_types($typeargs, 'objects');
|
724 |
+
foreach (array_keys($types) as $type) {
|
725 |
+
if (!in_array($type, $this->modified_types) && !post_type_supports($type, 'comments')) { // the type doesn't support comments anyway.
|
726 |
+
unset($types[$type]);
|
727 |
+
}
|
728 |
+
}
|
729 |
+
return $types;
|
730 |
+
}
|
731 |
+
|
732 |
+
public function tools_page()
|
733 |
+
{
|
734 |
+
return;
|
735 |
+
}
|
736 |
+
|
737 |
+
public function settings_page()
|
738 |
+
{
|
739 |
+
if( isset( $_GET['cancel'] ) && trim( $_GET['cancel'] ) === 'setup' ){
|
740 |
+
$this->update_option('dc_setup_screen_seen', true);
|
741 |
+
}
|
742 |
+
include_once DC_PLUGIN_VIEWS_PATH . 'settings.php';
|
743 |
+
}
|
744 |
+
|
745 |
+
public function setup_settings_page()
|
746 |
+
{
|
747 |
+
$this->update_option('dc_setup_screen_seen', true);
|
748 |
+
include_once DC_PLUGIN_VIEWS_PATH . 'setup-settings.php';
|
749 |
+
}
|
750 |
+
|
751 |
+
public function form_data_modify($form_data)
|
752 |
+
{
|
753 |
+
$formArray = [];
|
754 |
+
if (is_array($form_data) && count($form_data) > 0) {
|
755 |
+
foreach ($form_data as $form_item) {
|
756 |
+
if (preg_match('/[[]]/', $form_item['name'])) {
|
757 |
+
$formArray[str_replace("[]", "", $form_item['name'])][] = $form_item['value'];
|
758 |
+
} else {
|
759 |
+
$formArray[$form_item['name']] = $form_item['value'];
|
760 |
+
}
|
761 |
+
}
|
762 |
}
|
763 |
+
return $formArray;
|
764 |
}
|
765 |
|
766 |
+
public function disable_comments_settings($_args = array())
|
767 |
+
{
|
768 |
+
$nonce = (isset($_POST['nonce']) ? $_POST['nonce'] : '');
|
769 |
+
if (($this->is_CLI && !empty($_args)) || wp_verify_nonce($nonce, 'disable_comments_save_settings')) {
|
770 |
+
if (!empty($_args)) {
|
771 |
+
$formArray = wp_parse_args($_args);
|
772 |
+
} else {
|
773 |
+
$formArray = (isset($_POST['data']) ? $this->form_data_modify($_POST['data']) : []);
|
774 |
+
}
|
775 |
+
if (isset($formArray['mode'])) {
|
776 |
+
$this->options['remove_everywhere'] = (sanitize_text_field($formArray['mode']) == 'remove_everywhere');
|
777 |
+
}
|
778 |
+
$post_types = $this->get_all_post_types();
|
779 |
+
|
780 |
+
if ($this->options['remove_everywhere']) {
|
781 |
+
$disabled_post_types = array_keys($post_types);
|
782 |
+
} else {
|
783 |
+
$disabled_post_types = (isset($formArray['disabled_types']) ? array_map('sanitize_key', (array) $formArray['disabled_types']) : ( $this->is_CLI && isset( $this->options['disabled_post_types'] ) ? $this->options['disabled_post_types'] : [] ));
|
784 |
+
}
|
785 |
+
|
786 |
+
$disabled_post_types = array_intersect($disabled_post_types, array_keys($post_types));
|
787 |
+
$this->options['disabled_post_types'] = $disabled_post_types;
|
788 |
+
|
789 |
+
// Extra custom post types.
|
790 |
+
if ($this->networkactive && !empty($formArray['extra_post_types'])) {
|
791 |
+
$extra_post_types = array_filter(array_map('sanitize_key', explode(',', $formArray['extra_post_types'])));
|
792 |
+
$this->options['extra_post_types'] = array_diff($extra_post_types, array_keys($post_types)); // Make sure we don't double up builtins.
|
793 |
+
}
|
794 |
+
// xml rpc
|
795 |
+
$this->options['remove_xmlrpc_comments'] = (isset($formArray['remove_xmlrpc_comments']) ? intval($formArray['remove_xmlrpc_comments']) : ($this->is_CLI && isset($this->options['remove_xmlrpc_comments']) ? $this->options['remove_xmlrpc_comments'] : 0));
|
796 |
+
// rest api comments
|
797 |
+
$this->options['remove_rest_API_comments'] = (isset($formArray['remove_rest_API_comments']) ? intval($formArray['remove_rest_API_comments']) : ($this->is_CLI && isset($this->options['remove_rest_API_comments']) ? $this->options['remove_rest_API_comments'] : 0));
|
798 |
+
|
799 |
+
// save settings
|
800 |
+
$this->update_options();
|
801 |
+
}
|
802 |
+
if (!$this->is_CLI) {
|
803 |
+
wp_send_json_success(array('message' => __('Saved', 'disable-comments')));
|
804 |
+
wp_die();
|
805 |
+
}
|
806 |
+
}
|
807 |
+
|
808 |
+
public function delete_comments_settings($_args = array())
|
809 |
+
{
|
810 |
+
$log = '';
|
811 |
+
$deletedPostTypeNames = [];
|
812 |
+
$nonce = (isset($_POST['nonce']) ? $_POST['nonce'] : '');
|
813 |
+
if (($this->is_CLI && !empty($_args)) || wp_verify_nonce($nonce, 'disable_comments_save_settings')) {
|
814 |
+
|
815 |
+
if (!empty($_args)) {
|
816 |
+
$formArray = wp_parse_args($_args);
|
817 |
+
} else {
|
818 |
+
$formArray = $this->form_data_modify($_POST['data']);
|
819 |
+
}
|
820 |
+
|
821 |
+
$types = $this->get_all_post_types();
|
822 |
+
$commenttypes = $this->get_all_comment_types();
|
823 |
+
global $wpdb;
|
824 |
+
// comments delete
|
825 |
+
if (isset($formArray['delete_mode'])) {
|
826 |
+
if ($formArray['delete_mode'] == 'delete_everywhere') {
|
827 |
+
if ($wpdb->query("TRUNCATE $wpdb->commentmeta") != false) {
|
828 |
+
if ($wpdb->query("TRUNCATE $wpdb->comments") != false) {
|
829 |
+
$wpdb->query("UPDATE $wpdb->posts SET comment_count = 0");
|
830 |
+
$wpdb->query("OPTIMIZE TABLE $wpdb->commentmeta");
|
831 |
+
$wpdb->query("OPTIMIZE TABLE $wpdb->comments");
|
832 |
+
$log = __('All comments has been deleted', 'disable-comments');
|
833 |
+
} else {
|
834 |
+
wp_send_json_error(array('message' => __('Internal error occured. Please try again later.', 'disable-comments')));
|
835 |
+
wp_die();
|
836 |
+
}
|
837 |
+
} else {
|
838 |
+
wp_send_json_error(array('message' => __('Internal error occured. Please try again later.', 'disable-comments')));
|
839 |
+
wp_die();
|
840 |
+
}
|
841 |
+
} elseif ($formArray['delete_mode'] == 'selected_delete_types') {
|
842 |
+
$delete_post_types = empty($formArray['delete_types']) ? array() : (array) $formArray['delete_types'];
|
843 |
+
$delete_post_types = array_intersect($delete_post_types, array_keys($types));
|
844 |
+
|
845 |
+
// Extra custom post types.
|
846 |
+
if ($this->networkactive && !empty($formArray['delete_extra_post_types'])) {
|
847 |
+
$delete_extra_post_types = array_filter(array_map('sanitize_key', explode(',', $formArray['delete_extra_post_types'])));
|
848 |
+
$delete_extra_post_types = array_diff($delete_extra_post_types, array_keys($types)); // Make sure we don't double up builtins.
|
849 |
+
$delete_post_types = array_merge($delete_post_types, $delete_extra_post_types);
|
850 |
+
}
|
851 |
+
|
852 |
+
if (!empty($delete_post_types)) {
|
853 |
+
// Loop through post_types and remove comments/meta and set posts comment_count to 0.
|
854 |
+
foreach ($delete_post_types as $delete_post_type) {
|
855 |
+
$wpdb->query("DELETE cmeta FROM $wpdb->commentmeta cmeta INNER JOIN $wpdb->comments comments ON cmeta.comment_id=comments.comment_ID INNER JOIN $wpdb->posts posts ON comments.comment_post_ID=posts.ID WHERE posts.post_type = '$delete_post_type'");
|
856 |
+
$wpdb->query("DELETE comments FROM $wpdb->comments comments INNER JOIN $wpdb->posts posts ON comments.comment_post_ID=posts.ID WHERE posts.post_type = '$delete_post_type'");
|
857 |
+
$wpdb->query("UPDATE $wpdb->posts SET comment_count = 0 WHERE post_author != 0 AND post_type = '$delete_post_type'");
|
858 |
+
|
859 |
+
$post_type_object = get_post_type_object($delete_post_type);
|
860 |
+
$post_type_label = $post_type_object ? $post_type_object->labels->name : $delete_post_type;
|
861 |
+
$deletedPostTypeNames[] = $post_type_label;
|
862 |
+
}
|
863 |
+
|
864 |
+
$wpdb->query("OPTIMIZE TABLE $wpdb->commentmeta");
|
865 |
+
$wpdb->query("OPTIMIZE TABLE $wpdb->comments");
|
866 |
+
$log = __('All comments has been deleted', 'disable-comments');
|
867 |
+
}
|
868 |
+
} elseif ($formArray['delete_mode'] == 'selected_delete_comment_types') {
|
869 |
+
$delete_comment_types = empty($formArray['delete_comment_types']) ? array() : (array) $formArray['delete_comment_types'];
|
870 |
+
$delete_comment_types = array_intersect($delete_comment_types, array_keys($commenttypes));
|
871 |
+
|
872 |
+
if (!empty($delete_comment_types)) {
|
873 |
+
// Loop through comment_types and remove comments/meta and set posts comment_count to 0.
|
874 |
+
foreach ($delete_comment_types as $delete_comment_type) {
|
875 |
+
$wpdb->query("DELETE cmeta FROM $wpdb->commentmeta cmeta INNER JOIN $wpdb->comments comments ON cmeta.comment_id=comments.comment_ID WHERE comments.comment_type = '$delete_comment_type'");
|
876 |
+
$wpdb->query("DELETE comments FROM $wpdb->comments comments WHERE comments.comment_type = '$delete_comment_type'");
|
877 |
+
$deletedPostTypeNames[] = $commenttypes[$delete_comment_type];
|
878 |
+
}
|
879 |
+
|
880 |
+
// Update comment_count on post_types
|
881 |
+
foreach ($types as $key => $value) {
|
882 |
+
$comment_count = $wpdb->get_var("SELECT COUNT(comments.comment_ID) FROM $wpdb->comments comments INNER JOIN $wpdb->posts posts ON comments.comment_post_ID=posts.ID WHERE posts.post_type = '$key'");
|
883 |
+
$wpdb->query("UPDATE $wpdb->posts SET comment_count = $comment_count WHERE post_author != 0 AND post_type = '$key'");
|
884 |
+
}
|
885 |
+
|
886 |
+
$wpdb->query("OPTIMIZE TABLE $wpdb->commentmeta");
|
887 |
+
$wpdb->query("OPTIMIZE TABLE $wpdb->comments");
|
888 |
+
|
889 |
+
$log = __('All comments has been deleted', 'disable-comments');
|
890 |
+
}
|
891 |
+
}
|
892 |
+
}
|
893 |
+
}
|
894 |
+
// message
|
895 |
+
$message = (count($deletedPostTypeNames) == 0 ? $log . '.' : $log . ' for ' . implode(", ", $deletedPostTypeNames) . '.');
|
896 |
+
if (!$this->is_CLI) {
|
897 |
+
wp_send_json_success(array('message' => $message));
|
898 |
+
wp_die();
|
899 |
+
} else {
|
900 |
+
return $log;
|
901 |
+
}
|
902 |
}
|
903 |
|
904 |
+
private function discussion_settings_allowed()
|
905 |
+
{
|
906 |
+
if (defined('DISABLE_COMMENTS_ALLOW_DISCUSSION_SETTINGS') && DISABLE_COMMENTS_ALLOW_DISCUSSION_SETTINGS == true) {
|
907 |
return true;
|
908 |
}
|
909 |
}
|
910 |
|
911 |
+
public function single_site_deactivate()
|
912 |
+
{
|
913 |
// for single sites, delete the options upon deactivation, not uninstall.
|
914 |
+
delete_option('disable_comments_options');
|
915 |
}
|
916 |
}
|
917 |
|
includes/class-plugin-usage-tracker.php
ADDED
@@ -0,0 +1,899 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* DisableComments_Plugin_Tracker
|
4 |
+
* This class is responsible for data sending to insights.
|
5 |
+
* @version 3.0.0
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Exit if accessed directly
|
10 |
+
*/
|
11 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
12 |
+
exit;
|
13 |
+
}
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Main SDK for DisableComments_Plugin_Tracker.
|
17 |
+
*/
|
18 |
+
if( ! class_exists('DisableComments_Plugin_Tracker') ) :
|
19 |
+
class DisableComments_Plugin_Tracker {
|
20 |
+
/**
|
21 |
+
* WP Insights Version
|
22 |
+
*/
|
23 |
+
const WPINS_VERSION = '3.0.0';
|
24 |
+
/**
|
25 |
+
* API URL
|
26 |
+
*/
|
27 |
+
const API_URL = 'https://us-east1-wpinsight-saas.cloudfunctions.net/task-generator';
|
28 |
+
/**
|
29 |
+
* Installed Plugin File
|
30 |
+
*
|
31 |
+
* @var string
|
32 |
+
*/
|
33 |
+
private $plugin_file = null;
|
34 |
+
/**
|
35 |
+
* Installed Plugin Name
|
36 |
+
*
|
37 |
+
* @var string
|
38 |
+
*/
|
39 |
+
private $plugin_name = null;
|
40 |
+
/**
|
41 |
+
* How often the event should subsequently
|
42 |
+
* @var string
|
43 |
+
*/
|
44 |
+
public $recurrence = 'daily';
|
45 |
+
private $event_hook = null;
|
46 |
+
/**
|
47 |
+
* Instace of DisableComments_Plugin_Tracker
|
48 |
+
* @var DisableComments_Plugin_Tracker
|
49 |
+
*/
|
50 |
+
private static $_instance = null;
|
51 |
+
/**
|
52 |
+
* Get Instance of DisableComments_Plugin_Tracker
|
53 |
+
* @return DisableComments_Plugin_Tracker
|
54 |
+
*/
|
55 |
+
public static function get_instance( $plugin_file, $args = [] ){
|
56 |
+
if( is_null( static::$_instance ) ) {
|
57 |
+
static::$_instance = new static( $plugin_file, $args );
|
58 |
+
}
|
59 |
+
return static::$_instance;
|
60 |
+
}
|
61 |
+
/**
|
62 |
+
* Automatically Invoked when initialized.
|
63 |
+
*
|
64 |
+
* @param array $args
|
65 |
+
*/
|
66 |
+
public function __construct( $plugin_file, $args = [] ){
|
67 |
+
$this->plugin_file = $plugin_file;
|
68 |
+
$this->plugin_name = basename( $this->plugin_file, '.php' );
|
69 |
+
$this->disabled_wp_cron = defined('DISABLE_WP_CRON') && DISABLE_WP_CRON == true;
|
70 |
+
$this->enable_self_cron = $this->disabled_wp_cron == true ? true : false;
|
71 |
+
|
72 |
+
$this->event_hook = 'put_do_weekly_action';
|
73 |
+
|
74 |
+
$this->require_optin = isset( $args['opt_in'] ) ? $args['opt_in'] : true;
|
75 |
+
$this->include_goodbye_form = isset( $args['goodbye_form'] ) ? $args['goodbye_form'] : true;
|
76 |
+
$this->marketing = isset( $args['email_marketing'] ) ? $args['email_marketing'] : true;
|
77 |
+
$this->options = isset( $args['options'] ) ? $args['options'] : [];
|
78 |
+
$this->item_id = isset( $args['item_id'] ) ? $args['item_id'] : false;
|
79 |
+
/**
|
80 |
+
* Activation Hook
|
81 |
+
*/
|
82 |
+
register_activation_hook( $this->plugin_file, array( $this, 'activate_this_plugin' ) );
|
83 |
+
/**
|
84 |
+
* Deactivation Hook
|
85 |
+
*/
|
86 |
+
register_deactivation_hook( $this->plugin_file, array( $this, 'deactivate_this_plugin' ) );
|
87 |
+
}
|
88 |
+
/**
|
89 |
+
* When user agreed to opt-in tracking schedule is enabled.
|
90 |
+
* @since 3.0.0
|
91 |
+
*/
|
92 |
+
public function schedule_tracking() {
|
93 |
+
if( $this->disabled_wp_cron ) {
|
94 |
+
return;
|
95 |
+
}
|
96 |
+
if ( ! wp_next_scheduled( $this->event_hook ) ) {
|
97 |
+
wp_schedule_event( time(), $this->recurrence, $this->event_hook );
|
98 |
+
}
|
99 |
+
}
|
100 |
+
/**
|
101 |
+
* Add the schedule event if the plugin is tracked.
|
102 |
+
*
|
103 |
+
* @return void
|
104 |
+
*/
|
105 |
+
public function activate_this_plugin(){
|
106 |
+
$allow_tracking = $this->is_tracking_allowed();
|
107 |
+
if( ! $allow_tracking ) {
|
108 |
+
return;
|
109 |
+
}
|
110 |
+
$this->schedule_tracking();
|
111 |
+
}
|
112 |
+
/**
|
113 |
+
* Remove the schedule event when plugin is deactivated and send the deactivated reason to inishghts if user submitted.
|
114 |
+
* @since 3.0.0
|
115 |
+
*/
|
116 |
+
public function deactivate_this_plugin() {
|
117 |
+
/**
|
118 |
+
* Check tracking is allowed or not.
|
119 |
+
*/
|
120 |
+
$allow_tracking = $this->is_tracking_allowed();
|
121 |
+
if( ! $allow_tracking ) {
|
122 |
+
return;
|
123 |
+
}
|
124 |
+
$body = $this->get_data();
|
125 |
+
$body['status'] = 'Deactivated';
|
126 |
+
$body['deactivated_date'] = time();
|
127 |
+
|
128 |
+
// Check deactivation reason and add for insights data.
|
129 |
+
if( false !== get_option( 'wpins_deactivation_reason_' . $this->plugin_name ) ) {
|
130 |
+
$body['deactivation_reason'] = get_option( 'wpins_deactivation_reason_' . $this->plugin_name );
|
131 |
+
}
|
132 |
+
if( false !== get_option( 'wpins_deactivation_details_' . $this->plugin_name ) ) {
|
133 |
+
$body['deactivation_details'] = get_option( 'wpins_deactivation_details_' . $this->plugin_name );
|
134 |
+
}
|
135 |
+
|
136 |
+
$this->send_data( $body );
|
137 |
+
delete_option( 'wpins_deactivation_reason_' . $this->plugin_name );
|
138 |
+
delete_option( 'wpins_deactivation_details_' . $this->plugin_name );
|
139 |
+
/**
|
140 |
+
* Clear the event schedule.
|
141 |
+
*/
|
142 |
+
if( ! $this->disabled_wp_cron ) {
|
143 |
+
wp_clear_scheduled_hook( $this->event_hook );
|
144 |
+
}
|
145 |
+
}
|
146 |
+
/**
|
147 |
+
* Initial Method to Hook Everything.
|
148 |
+
* @return void
|
149 |
+
*/
|
150 |
+
public function init(){
|
151 |
+
$this->clicked();
|
152 |
+
add_action( $this->event_hook, array( $this, 'force_tracking' ) );
|
153 |
+
// For Test
|
154 |
+
// add_action( 'admin_init', array( $this, 'force_tracking' ) );
|
155 |
+
add_action( 'disable_comments_notice', array( $this, 'notice' ) );
|
156 |
+
/**
|
157 |
+
* Deactivation Reason Form and Submit Data to Insights.
|
158 |
+
*/
|
159 |
+
add_filter( 'plugin_action_links_' . plugin_basename( $this->plugin_file ), array( $this, 'deactivate_action_links' ) );
|
160 |
+
add_action( 'admin_footer-plugins.php', array( $this, 'deactivate_reasons_form' ) );
|
161 |
+
add_action( 'wp_ajax_deactivation_form_' . esc_attr( $this->plugin_name ), array( $this, 'deactivate_reasons_form_submit' ) );
|
162 |
+
}
|
163 |
+
/**
|
164 |
+
* For Redirecting Current Page without Arguments!
|
165 |
+
*
|
166 |
+
* @return void
|
167 |
+
*/
|
168 |
+
private function redirect_to(){
|
169 |
+
$request_uri = parse_url( $_SERVER['REQUEST_URI'], PHP_URL_PATH );
|
170 |
+
$query_string = parse_url( $_SERVER['REQUEST_URI'], PHP_URL_QUERY );
|
171 |
+
parse_str( $query_string, $current_url );
|
172 |
+
|
173 |
+
$unset_array = array( 'dismiss', 'plugin', '_wpnonce', 'later', 'plugin_action', 'marketing_optin' );
|
174 |
+
|
175 |
+
foreach( $unset_array as $value ) {
|
176 |
+
if( isset( $current_url[ $value ] ) ) {
|
177 |
+
unset( $current_url[ $value ] );
|
178 |
+
}
|
179 |
+
}
|
180 |
+
|
181 |
+
$current_url = http_build_query($current_url);
|
182 |
+
$redirect_url = $request_uri . '?' . $current_url;
|
183 |
+
return $redirect_url;
|
184 |
+
}
|
185 |
+
/**
|
186 |
+
* This method forcing the do_tracking method to execute instant.
|
187 |
+
* @return void
|
188 |
+
*/
|
189 |
+
public function force_tracking(){
|
190 |
+
$this->do_tracking( true );
|
191 |
+
}
|
192 |
+
/**
|
193 |
+
* This method is responsible for all the magic from the front of the plugin.
|
194 |
+
* @since 3.0.0
|
195 |
+
* @param $force Force tracking if it's not the correct time to track/
|
196 |
+
*/
|
197 |
+
public function do_tracking( $force = false ) {
|
198 |
+
/**
|
199 |
+
* Check URL is set or not.
|
200 |
+
*/
|
201 |
+
if ( empty( self::API_URL ) ) {
|
202 |
+
return;
|
203 |
+
}
|
204 |
+
/**
|
205 |
+
* Check is tracking allowed or not.
|
206 |
+
*/
|
207 |
+
if( ! $this->is_tracking_allowed() ) {
|
208 |
+
return;
|
209 |
+
}
|
210 |
+
/**
|
211 |
+
* Check is this the correct time to track or not.
|
212 |
+
* or Force to track.
|
213 |
+
*/
|
214 |
+
if( ! $this->is_time_to_track() && ! $force ) {
|
215 |
+
return;
|
216 |
+
}
|
217 |
+
/**
|
218 |
+
* Get All Data.
|
219 |
+
*/
|
220 |
+
$body = $this->get_data();
|
221 |
+
/**
|
222 |
+
* Send all data.
|
223 |
+
*/
|
224 |
+
return $this->send_data( $body );
|
225 |
+
}
|
226 |
+
/**
|
227 |
+
* Is tracking allowed?
|
228 |
+
* @since 1.0.0
|
229 |
+
*/
|
230 |
+
private function is_tracking_allowed() {
|
231 |
+
// First, check if the user has changed their mind and opted out of tracking
|
232 |
+
if( $this->has_user_opted_out() ) {
|
233 |
+
$this->set_is_tracking_allowed( false, $this->plugin_name );
|
234 |
+
return false;
|
235 |
+
}
|
236 |
+
// The wpins_allow_tracking option is an array of plugins that are being tracked
|
237 |
+
$allow_tracking = get_option( 'wpins_allow_tracking' );
|
238 |
+
// If this plugin is in the array, then tracking is allowed
|
239 |
+
if( isset( $allow_tracking[$this->plugin_name] ) ) {
|
240 |
+
return true;
|
241 |
+
}
|
242 |
+
return false;
|
243 |
+
}
|
244 |
+
/**
|
245 |
+
* Set a flag in DB If tracking is allowed.
|
246 |
+
*
|
247 |
+
* @since 3.0.0
|
248 |
+
* @param $is_allowed Boolean true if is allowed.
|
249 |
+
*/
|
250 |
+
protected function set_is_tracking_allowed( $is_allowed, $plugin = null ) {
|
251 |
+
if( empty( $plugin ) ) {
|
252 |
+
$plugin = $this->plugin_name;
|
253 |
+
}
|
254 |
+
/**
|
255 |
+
* Get All Tracked Plugin List using this Tracker.
|
256 |
+
*/
|
257 |
+
$allow_tracking = get_option( 'wpins_allow_tracking' );
|
258 |
+
/**
|
259 |
+
* Check user is opted out for tracking or not.
|
260 |
+
*/
|
261 |
+
if( $this->has_user_opted_out() ) {
|
262 |
+
if( isset( $allow_tracking[$plugin] ) ) {
|
263 |
+
unset( $allow_tracking[$plugin] );
|
264 |
+
}
|
265 |
+
} else if( $is_allowed || ! $this->require_optin ) {
|
266 |
+
/**
|
267 |
+
* If user has agreed to allow tracking
|
268 |
+
*/
|
269 |
+
if( empty( $allow_tracking ) || ! is_array( $allow_tracking ) ) {
|
270 |
+
$allow_tracking = array( $plugin => $plugin );
|
271 |
+
} else {
|
272 |
+
$allow_tracking[$plugin] = $plugin;
|
273 |
+
}
|
274 |
+
} else {
|
275 |
+
if( isset( $allow_tracking[$plugin] ) ) {
|
276 |
+
unset( $allow_tracking[$plugin] );
|
277 |
+
}
|
278 |
+
}
|
279 |
+
update_option( 'wpins_allow_tracking', $allow_tracking );
|
280 |
+
}
|
281 |
+
|
282 |
+
/**
|
283 |
+
* Check the user has opted out or not.
|
284 |
+
*
|
285 |
+
* @since 3.0.0
|
286 |
+
* @return Boolean
|
287 |
+
*/
|
288 |
+
protected function has_user_opted_out() {
|
289 |
+
if( ! empty( $this->options ) ) {
|
290 |
+
foreach( $this->options as $option_name ) {
|
291 |
+
$options = get_option( $option_name );
|
292 |
+
if( ! empty( $options['wpins_opt_out'] ) ) {
|
293 |
+
return true;
|
294 |
+
}
|
295 |
+
}
|
296 |
+
}
|
297 |
+
return false;
|
298 |
+
}
|
299 |
+
/**
|
300 |
+
* Check if it's time to track
|
301 |
+
*
|
302 |
+
* @since 3.0.0
|
303 |
+
*/
|
304 |
+
public function is_time_to_track() {
|
305 |
+
$track_times = get_option( 'wpins_last_track_time', array() );
|
306 |
+
return ! isset( $track_times[$this->plugin_name] ) ? true :
|
307 |
+
( ( isset( $track_times[$this->plugin_name] ) && $track_times[$this->plugin_name] ) < strtotime( '-1 day' ) ? true : false );
|
308 |
+
}
|
309 |
+
/**
|
310 |
+
* Set tracking time.
|
311 |
+
*
|
312 |
+
* @since 3.0.0
|
313 |
+
*/
|
314 |
+
public function set_track_time() {
|
315 |
+
$track_times = get_option( 'wpins_last_track_time', array() );
|
316 |
+
$track_times[ $this->plugin_name ] = time();
|
317 |
+
update_option( 'wpins_last_track_time', $track_times );
|
318 |
+
}
|
319 |
+
/**
|
320 |
+
* This method is responsible for collecting all data.
|
321 |
+
*
|
322 |
+
* @since 3.0.0
|
323 |
+
*/
|
324 |
+
public function get_data() {
|
325 |
+
$body = array(
|
326 |
+
'plugin_slug' => sanitize_text_field( $this->plugin_name ),
|
327 |
+
'url' => get_bloginfo( 'url' ),
|
328 |
+
'site_name' => get_bloginfo( 'name' ),
|
329 |
+
'site_version' => get_bloginfo( 'version' ),
|
330 |
+
'site_language' => get_bloginfo( 'language' ),
|
331 |
+
'charset' => get_bloginfo( 'charset' ),
|
332 |
+
'wpins_version' => self::WPINS_VERSION,
|
333 |
+
'php_version' => phpversion(),
|
334 |
+
'multisite' => is_multisite(),
|
335 |
+
'file_location' => __FILE__
|
336 |
+
);
|
337 |
+
|
338 |
+
// Collect the email if the correct option has been set
|
339 |
+
if( $this->marketing ) {
|
340 |
+
if( ! function_exists( 'wp_get_current_user' ) ) {
|
341 |
+
include ABSPATH . 'wp-includes/pluggable.php';
|
342 |
+
}
|
343 |
+
$current_user = wp_get_current_user();
|
344 |
+
$email = $current_user->user_email;
|
345 |
+
$body['email'] = $email;
|
346 |
+
}
|
347 |
+
$body['marketing_method'] = $this->marketing;
|
348 |
+
$body['server'] = isset( $_SERVER['SERVER_SOFTWARE'] ) ? $_SERVER['SERVER_SOFTWARE'] : '';
|
349 |
+
|
350 |
+
/**
|
351 |
+
* Collect all active and inactive plugins
|
352 |
+
*/
|
353 |
+
if( ! function_exists( 'get_plugins' ) ) {
|
354 |
+
include ABSPATH . '/wp-admin/includes/plugin.php';
|
355 |
+
}
|
356 |
+
$plugins = array_keys( get_plugins() );
|
357 |
+
$active_plugins = is_network_admin() ? array_keys( get_site_option( 'active_sitewide_plugins', array() ) ) : get_option( 'active_plugins', array() );
|
358 |
+
foreach ( $plugins as $key => $plugin ) {
|
359 |
+
if ( in_array( $plugin, $active_plugins ) ) {
|
360 |
+
unset( $plugins[$key] );
|
361 |
+
}
|
362 |
+
}
|
363 |
+
$body['active_plugins'] = $active_plugins;
|
364 |
+
$body['inactive_plugins'] = $plugins;
|
365 |
+
|
366 |
+
/**
|
367 |
+
* Text Direction.
|
368 |
+
*/
|
369 |
+
$body['text_direction'] = ( function_exists( 'is_rtl' ) ? ( is_rtl() ? 'RTL' : 'LTR' ) : 'NOT SET' );
|
370 |
+
/**
|
371 |
+
* Get Our Plugin Data.
|
372 |
+
* @since 3.0.0
|
373 |
+
*/
|
374 |
+
$plugin = $this->plugin_data();
|
375 |
+
if( empty( $plugin ) ) {
|
376 |
+
$body['message'] .= __( 'We can\'t detect any plugin information. This is most probably because you have not included the code in the plugin main file.', 'plugin-usage-tracker' );
|
377 |
+
$body['status'] = 'NOT FOUND';
|
378 |
+
} else {
|
379 |
+
if( isset( $plugin['Name'] ) ) {
|
380 |
+
$body['plugin'] = sanitize_text_field( $plugin['Name'] );
|
381 |
+
}
|
382 |
+
if( isset( $plugin['Version'] ) ) {
|
383 |
+
$body['version'] = sanitize_text_field( $plugin['Version'] );
|
384 |
+
}
|
385 |
+
$body['status'] = 'Active';
|
386 |
+
}
|
387 |
+
|
388 |
+
/**
|
389 |
+
* Get our plugin options
|
390 |
+
* @since 1.0.0
|
391 |
+
*/
|
392 |
+
// $options = $this->options;
|
393 |
+
// $plugin_options = array();
|
394 |
+
// if( ! empty( $options ) && is_array( $options ) ) {
|
395 |
+
// foreach( $options as $option ) {
|
396 |
+
// $fields = get_option( $option );
|
397 |
+
// // Check for permission to send this option
|
398 |
+
// if( isset( $fields['wpins_registered_setting'] ) ) {
|
399 |
+
// foreach( $fields as $key=>$value ) {
|
400 |
+
// $plugin_options[$key] = $value;
|
401 |
+
// }
|
402 |
+
// }
|
403 |
+
// }
|
404 |
+
// }
|
405 |
+
// $body['plugin_options'] = $this->options; // Returns array
|
406 |
+
// $body['plugin_options_fields'] = $plugin_options; // Returns object
|
407 |
+
|
408 |
+
/**
|
409 |
+
* Get active theme name and version
|
410 |
+
* @since 3.0.0
|
411 |
+
*/
|
412 |
+
$theme = wp_get_theme();
|
413 |
+
if( $theme->Name ) {
|
414 |
+
$body['theme'] = sanitize_text_field( $theme->Name );
|
415 |
+
}
|
416 |
+
if( $theme->Version ) {
|
417 |
+
$body['theme_version'] = sanitize_text_field( $theme->Version );
|
418 |
+
}
|
419 |
+
return $body;
|
420 |
+
}
|
421 |
+
|
422 |
+
/**
|
423 |
+
* Collect plugin data,
|
424 |
+
* Retrieve current plugin information
|
425 |
+
*
|
426 |
+
* @since 3.0.0
|
427 |
+
*/
|
428 |
+
public function plugin_data() {
|
429 |
+
if( ! function_exists( 'get_plugin_data' ) ) {
|
430 |
+
include ABSPATH . '/wp-admin/includes/plugin.php';
|
431 |
+
}
|
432 |
+
$plugin = get_plugin_data( $this->plugin_file );
|
433 |
+
return $plugin;
|
434 |
+
}
|
435 |
+
/**
|
436 |
+
* Send the data to insights.
|
437 |
+
* @since 3.0.0
|
438 |
+
*/
|
439 |
+
public function send_data( $body ) {
|
440 |
+
/**
|
441 |
+
* Get SITE ID
|
442 |
+
*/
|
443 |
+
$site_id_key = "wpins_{$this->plugin_name}_site_id";
|
444 |
+
$site_id = get_option( $site_id_key, false );
|
445 |
+
$failed_data = [];
|
446 |
+
/**
|
447 |
+
* Send Initial Data to API
|
448 |
+
*/
|
449 |
+
if( $site_id == false && $this->item_id !== false ) {
|
450 |
+
if( isset( $_SERVER['REMOTE_ADDR'] ) && ! empty( $_SERVER['REMOTE_ADDR'] && $_SERVER['REMOTE_ADDR'] != '127.0.0.1' ) ) {
|
451 |
+
$country_request = wp_remote_get( 'http://ip-api.com/json/'. $_SERVER['REMOTE_ADDR'] .'?fields=country');
|
452 |
+
if( ! is_wp_error( $country_request ) && $country_request['response']['code'] == 200 ) {
|
453 |
+
$ip_data = json_decode( $country_request["body"] );
|
454 |
+
$body['country'] = isset( $ip_data->country ) ? $ip_data->country : 'NOT SET';
|
455 |
+
}
|
456 |
+
}
|
457 |
+
|
458 |
+
$body['plugin_slug'] = $this->plugin_name;
|
459 |
+
$body['url'] = get_bloginfo( 'url' );
|
460 |
+
$body['item_id'] = $this->item_id;
|
461 |
+
|
462 |
+
$request = $this->remote_post( $body );
|
463 |
+
if( ! is_wp_error( $request ) && $request['response']['code'] == 200 ) {
|
464 |
+
$retrieved_body = json_decode( wp_remote_retrieve_body( $request ), true );
|
465 |
+
if( is_array( $retrieved_body ) && isset( $retrieved_body['siteId'] ) ) {
|
466 |
+
update_option( $site_id_key, $retrieved_body['siteId'] );
|
467 |
+
update_option( "wpins_{$this->plugin_name}_{$retrieved_body['siteId']}", $body );
|
468 |
+
}
|
469 |
+
} else {
|
470 |
+
$failed_data = $body;
|
471 |
+
}
|
472 |
+
}
|
473 |
+
|
474 |
+
$site_id_data_key = "wpins_{$this->plugin_name}_{$site_id}";
|
475 |
+
$site_id_data_failed_key = "wpins_{$this->plugin_name}_{$site_id}_send_failed";
|
476 |
+
|
477 |
+
if( $site_id != false ) {
|
478 |
+
$old_sent_data = get_option( $site_id_data_key, [] );
|
479 |
+
$diff_data = $this->diff( $body, $old_sent_data );
|
480 |
+
$failed_data = get_option( $site_id_data_failed_key, [] );
|
481 |
+
if( ! empty( $failed_data ) && $diff_data != $failed_data ) {
|
482 |
+
$failed_data = array_merge( $failed_data, $diff_data );
|
483 |
+
}
|
484 |
+
}
|
485 |
+
|
486 |
+
if( ! empty( $failed_data ) && $site_id != false ) {
|
487 |
+
$failed_data['plugin_slug'] = $this->plugin_name;
|
488 |
+
$failed_data['url'] = get_bloginfo( 'url' );
|
489 |
+
$failed_data['site_id'] = $site_id;
|
490 |
+
|
491 |
+
$request = $this->remote_post( $failed_data );
|
492 |
+
if( ! is_wp_error( $request ) ) {
|
493 |
+
delete_option( $site_id_data_failed_key );
|
494 |
+
$replaced_data = array_merge( $old_sent_data, $failed_data );
|
495 |
+
update_option( $site_id_data_key, $replaced_data );
|
496 |
+
}
|
497 |
+
}
|
498 |
+
|
499 |
+
if( ! empty( $diff_data ) && $site_id != false && empty( $failed_data ) ) {
|
500 |
+
$diff_data['plugin_slug'] = $this->plugin_name;
|
501 |
+
$diff_data['url'] = get_bloginfo( 'url' );
|
502 |
+
$diff_data['site_id'] = $site_id;
|
503 |
+
|
504 |
+
$request = $this->remote_post( $diff_data );
|
505 |
+
if( is_wp_error( $request ) ) {
|
506 |
+
update_option( $site_id_data_failed_key, $diff_data );
|
507 |
+
} else {
|
508 |
+
$replaced_data = array_merge( $old_sent_data, $diff_data );
|
509 |
+
update_option( $site_id_data_key, $replaced_data );
|
510 |
+
}
|
511 |
+
}
|
512 |
+
|
513 |
+
$this->set_track_time();
|
514 |
+
|
515 |
+
if( isset( $request ) && is_wp_error( $request ) ) {
|
516 |
+
return $request;
|
517 |
+
}
|
518 |
+
|
519 |
+
if( isset( $request ) ) {
|
520 |
+
return true;
|
521 |
+
}
|
522 |
+
return false;
|
523 |
+
}
|
524 |
+
/**
|
525 |
+
* WP_REMOTE_POST method responsible for send data to the API_URL
|
526 |
+
*
|
527 |
+
* @param array $data
|
528 |
+
* @param array $args
|
529 |
+
* @return void
|
530 |
+
*/
|
531 |
+
protected function remote_post( $data = array(), $args = array() ){
|
532 |
+
if( empty( $data ) ) {
|
533 |
+
return;
|
534 |
+
}
|
535 |
+
|
536 |
+
$args = wp_parse_args( $args, array(
|
537 |
+
'method' => 'POST',
|
538 |
+
'timeout' => 30,
|
539 |
+
'redirection' => 5,
|
540 |
+
'httpversion' => '1.1',
|
541 |
+
'blocking' => true,
|
542 |
+
'body' => $data,
|
543 |
+
'user-agent' => 'PUT/1.0.0; ' . get_bloginfo( 'url' )
|
544 |
+
));
|
545 |
+
|
546 |
+
$request = wp_remote_post( esc_url( self::API_URL ), $args );
|
547 |
+
if( is_wp_error( $request ) || ( isset( $request['response'], $request['response']['code'] ) && $request['response']['code'] != 200 ) ) {
|
548 |
+
return new WP_Error( 500, 'Something went wrong.' );
|
549 |
+
}
|
550 |
+
return $request;
|
551 |
+
}
|
552 |
+
/**
|
553 |
+
* Difference between old and new data
|
554 |
+
*
|
555 |
+
* @param array $new_data
|
556 |
+
* @param array $old_data
|
557 |
+
* @return void
|
558 |
+
*/
|
559 |
+
protected function diff( $new_data, $old_data ){
|
560 |
+
$data = [];
|
561 |
+
if( ! empty( $new_data ) ) {
|
562 |
+
foreach( $new_data as $key => $value ) {
|
563 |
+
if( isset( $old_data[ $key ] ) ) {
|
564 |
+
if( $old_data[ $key ] == $value ) {
|
565 |
+
continue;
|
566 |
+
}
|
567 |
+
}
|
568 |
+
$data[ $key ] = $value;
|
569 |
+
}
|
570 |
+
}
|
571 |
+
return $data;
|
572 |
+
}
|
573 |
+
/**
|
574 |
+
* Display the admin notice to users to allow them to opt in
|
575 |
+
*
|
576 |
+
* @since 3.0.0
|
577 |
+
*/
|
578 |
+
public function notice() {
|
579 |
+
/**
|
580 |
+
* Return if notice is not set.
|
581 |
+
*/
|
582 |
+
if( ! isset( $this->notice_options['notice'] ) ) {
|
583 |
+
return;
|
584 |
+
}
|
585 |
+
/**
|
586 |
+
* Check is allowed or blocked for notice.
|
587 |
+
*/
|
588 |
+
$block_notice = get_option( 'wpins_block_notice' );
|
589 |
+
if( isset( $block_notice[$this->plugin_name] ) ) {
|
590 |
+
return;
|
591 |
+
}
|
592 |
+
if ( ! current_user_can( 'manage_options' ) ) {
|
593 |
+
return;
|
594 |
+
}
|
595 |
+
|
596 |
+
$url_yes = add_query_arg( [
|
597 |
+
'plugin' => $this->plugin_name,
|
598 |
+
'plugin_action' => 'yes',
|
599 |
+
] );
|
600 |
+
$url_no = add_query_arg( array(
|
601 |
+
'plugin' => $this->plugin_name,
|
602 |
+
'plugin_action' => 'no'
|
603 |
+
) );
|
604 |
+
|
605 |
+
// Decide on notice text
|
606 |
+
$notice_text = $this->notice_options['notice'] . ' <a href="#" class="wpinsights-'. $this->plugin_name .'-collect">'. $this->notice_options['consent_button_text'] .'</a>';
|
607 |
+
$extra_notice_text = $this->notice_options['extra_notice'];
|
608 |
+
|
609 |
+
$output = '';
|
610 |
+
$output .= '<div class="notice dc-text__block disable__comment__alert mb30">';
|
611 |
+
$output .= '<div class="alert__content">';
|
612 |
+
$output .= '<img src="'. DC_ASSETS_URI .'img/icon-logo.png" alt="">';
|
613 |
+
$output .= '<p>'. $notice_text .'</p>';
|
614 |
+
$output .= '<div class="wpinsights-data" style="display: none;">';
|
615 |
+
$output .= '<p>'. $extra_notice_text .'</p>';
|
616 |
+
$output .= '</div>';
|
617 |
+
$output .= '</div>';
|
618 |
+
|
619 |
+
$output .= '<div class="button__group">';
|
620 |
+
$output .= '<a href="'. esc_url( $url_yes ) .'" class="button button--sm button__success">'. $this->notice_options['yes'] .'</a> ';
|
621 |
+
$output .= '<a href="'. esc_url( $url_no ) .'" class="button button--sm">'. $this->notice_options['no'] .'</a>';
|
622 |
+
$output .= '</div>';
|
623 |
+
$output .= "<script type='text/javascript'>jQuery('.wpinsights-". $this->plugin_name ."-collect').on('click', function(e) {e.preventDefault();jQuery('.wpinsights-data').slideToggle('fast');});</script>";
|
624 |
+
$output .= '</div>';
|
625 |
+
|
626 |
+
echo $output;
|
627 |
+
}
|
628 |
+
/**
|
629 |
+
* Set all notice options to customized notice.
|
630 |
+
*
|
631 |
+
* @since 3.0.0
|
632 |
+
* @param array $options
|
633 |
+
* @return void
|
634 |
+
*/
|
635 |
+
public function set_notice_options( $options = [] ){
|
636 |
+
$default_options = [
|
637 |
+
'consent_button_text' => __( 'What we collect.', 'wpinsight' ),
|
638 |
+
'yes' => __( 'Sure, I\'d like to help', 'wpinsight' ),
|
639 |
+
'no' => __( 'No Thanks.', 'wpinsight' ),
|
640 |
+
];
|
641 |
+
$options = wp_parse_args( $options, $default_options );
|
642 |
+
$this->notice_options = $options;
|
643 |
+
}
|
644 |
+
/**
|
645 |
+
* Responsible for track the click from Notice.
|
646 |
+
* @return void
|
647 |
+
*/
|
648 |
+
public function clicked(){
|
649 |
+
if( isset( $_GET['plugin'] ) && isset( $_GET['plugin_action'] ) ) {
|
650 |
+
if( isset( $_GET['tab'] ) && $_GET['tab'] === 'plugin-information' ) {
|
651 |
+
return;
|
652 |
+
}
|
653 |
+
$plugin = sanitize_text_field( $_GET['plugin'] );
|
654 |
+
$action = sanitize_text_field( $_GET['plugin_action'] );
|
655 |
+
if( $action == 'yes' ) {
|
656 |
+
$this->schedule_tracking();
|
657 |
+
$this->set_is_tracking_allowed( true, $plugin );
|
658 |
+
if( $this->do_tracking( true ) ) {
|
659 |
+
$this->update_block_notice( $plugin );
|
660 |
+
}
|
661 |
+
/**
|
662 |
+
* Redirect User To the Current URL, but without set query arguments.
|
663 |
+
*/
|
664 |
+
wp_safe_redirect( $this->redirect_to() );
|
665 |
+
} else {
|
666 |
+
$this->set_is_tracking_allowed( false, $plugin );
|
667 |
+
$this->update_block_notice( $plugin );
|
668 |
+
}
|
669 |
+
}
|
670 |
+
}
|
671 |
+
/**
|
672 |
+
* Set if we should block the opt-in notice for this plugin
|
673 |
+
*
|
674 |
+
* @since 3.0.0
|
675 |
+
*/
|
676 |
+
public function update_block_notice( $plugin = null ) {
|
677 |
+
if( empty( $plugin ) ) {
|
678 |
+
$plugin = $this->plugin_name;
|
679 |
+
}
|
680 |
+
$block_notice = get_option( 'wpins_block_notice' );
|
681 |
+
if( empty( $block_notice ) || ! is_array( $block_notice ) ) {
|
682 |
+
$block_notice = array( $plugin => $plugin );
|
683 |
+
} else {
|
684 |
+
$block_notice[$plugin] = $plugin;
|
685 |
+
}
|
686 |
+
update_option( 'wpins_block_notice', $block_notice );
|
687 |
+
}
|
688 |
+
/**
|
689 |
+
* AJAX callback when the deactivated form is submitted.
|
690 |
+
* @since 3.0.0
|
691 |
+
*/
|
692 |
+
public function deactivate_reasons_form_submit() {
|
693 |
+
check_ajax_referer( 'wpins_deactivation_nonce', 'security' );
|
694 |
+
if( isset( $_POST['values'] ) ) {
|
695 |
+
$values = $_POST['values'];
|
696 |
+
update_option( 'wpins_deactivation_reason_' . $this->plugin_name, $values );
|
697 |
+
}
|
698 |
+
if( isset( $_POST['details'] ) ) {
|
699 |
+
$details = sanitize_text_field( $_POST['details'] );
|
700 |
+
update_option( 'wpins_deactivation_details_' . $this->plugin_name, $details );
|
701 |
+
}
|
702 |
+
echo 'success';
|
703 |
+
wp_die();
|
704 |
+
}
|
705 |
+
/**
|
706 |
+
* Filter the deactivation link to allow us to present a form when the user deactivates the plugin
|
707 |
+
* @since 3.0.0
|
708 |
+
*/
|
709 |
+
public function deactivate_action_links( $links ) {
|
710 |
+
/**
|
711 |
+
* Check is tracking allowed or not.
|
712 |
+
*/
|
713 |
+
if( ! $this->is_tracking_allowed() ) {
|
714 |
+
return $links;
|
715 |
+
}
|
716 |
+
if( isset( $links['deactivate'] ) && $this->include_goodbye_form ) {
|
717 |
+
$deactivation_link = $links['deactivate'];
|
718 |
+
/**
|
719 |
+
* Change the default deactivate button link.
|
720 |
+
*/
|
721 |
+
$deactivation_link = str_replace( '<a ', '<div class="wpinsights-goodbye-form-wrapper-'. esc_attr( $this->plugin_name ) .'"><div class="wpinsights-goodbye-form-bg"></div><span class="wpinsights-goodbye-form" id="wpinsights-goodbye-form"></span></div><a onclick="javascript:event.preventDefault();" id="wpinsights-goodbye-link-' . esc_attr( $this->plugin_name ) . '" ', $deactivation_link );
|
722 |
+
$links['deactivate'] = $deactivation_link;
|
723 |
+
}
|
724 |
+
return $links;
|
725 |
+
}
|
726 |
+
/**
|
727 |
+
* ALL Deactivate Reasons.
|
728 |
+
* @since 3.0.0
|
729 |
+
*/
|
730 |
+
public function deactivation_reasons() {
|
731 |
+
$form = array();
|
732 |
+
$form['heading'] = __( 'Sorry to see you go', 'plugin-usage-tracker' );
|
733 |
+
$form['body'] = __( 'Before you deactivate the plugin, would you quickly give us your reason for doing so?', 'plugin-usage-tracker' );
|
734 |
+
|
735 |
+
$form['options'] = array(
|
736 |
+
__( 'I no longer need the plugin', 'plugin-usage-tracker' ),
|
737 |
+
[
|
738 |
+
'label' => __( 'I found a better plugin', 'plugin-usage-tracker' ),
|
739 |
+
'extra_field' => __( 'Please share which plugin', 'plugin-usage-tracker' )
|
740 |
+
],
|
741 |
+
__( "I couldn't get the plugin to work", 'plugin-usage-tracker' ),
|
742 |
+
__( 'It\'s a temporary deactivation', 'plugin-usage-tracker' ),
|
743 |
+
[
|
744 |
+
'label' => __( 'Other', 'plugin-usage-tracker' ),
|
745 |
+
'extra_field' => __( 'Please share the reason', 'plugin-usage-tracker' ),
|
746 |
+
'type' => 'textarea'
|
747 |
+
]
|
748 |
+
);
|
749 |
+
return apply_filters( 'wpins_form_text_' . $this->plugin_name, $form );
|
750 |
+
}
|
751 |
+
/**
|
752 |
+
* Deactivate Reasons Form.
|
753 |
+
* This form will appears when user wants to deactivate the plugin to send you deactivated reasons.
|
754 |
+
*
|
755 |
+
* @since 3.0.0
|
756 |
+
*/
|
757 |
+
public function deactivate_reasons_form() {
|
758 |
+
$form = $this->deactivation_reasons();
|
759 |
+
$class_plugin_name = esc_attr( $this->plugin_name );
|
760 |
+
$html = '<div class="wpinsights-goodbye-form-head"><strong>' . esc_html( $form['heading'] ) . '</strong></div>';
|
761 |
+
$html .= '<div class="wpinsights-goodbye-form-body"><p class="wpinsights-goodbye-form-caption">' . esc_html( $form['body'] ) . '</p>';
|
762 |
+
if( is_array( $form['options'] ) ) {
|
763 |
+
$html .= '<div id="wpinsights-goodbye-options" class="wpinsights-goodbye-options"><ul>';
|
764 |
+
foreach( $form['options'] as $option ) {
|
765 |
+
if( is_array( $option ) ) {
|
766 |
+
$id = strtolower( str_replace( " ", "_", esc_attr( $option['label'] ) ) );
|
767 |
+
$id = $id . '_' . $class_plugin_name;
|
768 |
+
$html .= '<li class="has-goodbye-extra">';
|
769 |
+
$html .= '<input type="radio" name="wpinsights-'. $class_plugin_name .'-goodbye-options" id="' . $id . '" value="' . esc_attr( $option['label'] ) . '">';
|
770 |
+
$html .= '<div><label for="' . $id . '">' . esc_attr( $option['label'] ) . '</label>';
|
771 |
+
if( isset( $option[ 'extra_field' ] ) && ! isset( $option['type'] )) {
|
772 |
+
$html .= '<input type="text" style="display: none" name="'. $id .'" id="' . str_replace( " ", "", esc_attr( $option['extra_field'] ) ) . '" placeholder="' . esc_attr( $option['extra_field'] ) . '">';
|
773 |
+
}
|
774 |
+
if( isset( $option[ 'extra_field' ] ) && isset( $option['type'] )) {
|
775 |
+
$html .= '<'. $option['type'] .' style="display: none" type="text" name="'. $id .'" id="' . str_replace( " ", "", esc_attr( $option['extra_field'] ) ) . '" placeholder="' . esc_attr( $option['extra_field'] ) . '"></' . $option['type'] . '>';
|
776 |
+
}
|
777 |
+
$html .= '</div></li>';
|
778 |
+
} else {
|
779 |
+
$id = strtolower( str_replace( " ", "_", esc_attr( $option ) ) );
|
780 |
+
$id = $id . '_' . $class_plugin_name;
|
781 |
+
$html .= '<li><input type="radio" name="wpinsights-'. $class_plugin_name .'-goodbye-options" id="' . $id . '" value="' . esc_attr( $option ) . '"> <label for="' . $id . '">' . esc_attr( $option ) . '</label></li>';
|
782 |
+
}
|
783 |
+
}
|
784 |
+
$html .= '</ul></div><!-- .wpinsights-'. $class_plugin_name .'-goodbye-options -->';
|
785 |
+
}
|
786 |
+
$html .= '</div><!-- .wpinsights-goodbye-form-body -->';
|
787 |
+
$html .= '<p class="deactivating-spinner"><span class="spinner"></span> ' . __( 'Submitting form', 'plugin-usage-tracker' ) . '</p>';
|
788 |
+
|
789 |
+
$wrapper_class = '.wpinsights-goodbye-form-wrapper-'. $class_plugin_name;
|
790 |
+
|
791 |
+
$styles = '';
|
792 |
+
$styles .= '<style type="text/css">';
|
793 |
+
$styles .= '.wpinsights-form-active-' . $class_plugin_name . ' .wpinsights-goodbye-form-bg {';
|
794 |
+
$styles .= 'background: rgba( 0, 0, 0, .8 );position: fixed;top: 0;left: 0;width: 100%;height: 100%;z-index: 9;';
|
795 |
+
$styles .= '}';
|
796 |
+
$styles .= $wrapper_class . '{';
|
797 |
+
$styles .= 'position: relative; display: none;';
|
798 |
+
$styles .= '}';
|
799 |
+
$styles .= '.wpinsights-form-active-' . $class_plugin_name . ' ' . $wrapper_class . '{';
|
800 |
+
$styles .= 'display: flex !important; position: fixed;top: 0;left: 0;width: 100%;height: 100%; justify-content: center; align-items: center;';
|
801 |
+
$styles .= '}';
|
802 |
+
$styles .= $wrapper_class . ' .wpinsights-goodbye-form { display: none; }';
|
803 |
+
$styles .= '.wpinsights-form-active-' . $class_plugin_name . ' .wpinsights-goodbye-form {';
|
804 |
+
$styles .= 'position: relative !important; width: 550px; max-width: 80%; background: #fff; box-shadow: 2px 8px 23px 3px rgba(0,0,0,.2); border-radius: 3px; white-space: normal; overflow: hidden; display: block; z-index: 999999;';
|
805 |
+
$styles .= '}';
|
806 |
+
$styles .= $wrapper_class . ' .wpinsights-goodbye-form-head {';
|
807 |
+
$styles .= 'background: #fff; color: #495157; padding: 18px; box-shadow: 0 0 8px rgba(0,0,0,.1); font-size: 15px;';
|
808 |
+
$styles .= '}';
|
809 |
+
$styles .= $wrapper_class . ' .wpinsights-goodbye-form .wpinsights-goodbye-form-head strong { font-size: 15px; }';
|
810 |
+
$styles .= $wrapper_class . ' .wpinsights-goodbye-form-body { padding: 8px 18px; color: #333; }';
|
811 |
+
$styles .= $wrapper_class . ' .wpinsights-goodbye-form-body label { padding-left: 5px; color: #6d7882; }';
|
812 |
+
$styles .= $wrapper_class . ' .wpinsights-goodbye-form-body .wpinsights-goodbye-form-caption {';
|
813 |
+
$styles .= 'font-weight: 500; font-size: 15px; color: #495157; line-height: 1.4;';
|
814 |
+
$styles .= '}';
|
815 |
+
$styles .= $wrapper_class . ' .wpinsights-goodbye-form-body #wpinsights-goodbye-options { padding-top: 5px; }';
|
816 |
+
$styles .= $wrapper_class . ' .wpinsights-goodbye-form-body #wpinsights-goodbye-options ul > li { margin-bottom: 15px; }';
|
817 |
+
$styles .= $wrapper_class . ' .wpinsights-goodbye-form-body #wpinsights-goodbye-options ul > li > div { display: inline; padding-left: 3px; }';
|
818 |
+
$styles .= $wrapper_class . ' .wpinsights-goodbye-form-body #wpinsights-goodbye-options ul > li > div > input, '. $wrapper_class .' .wpinsights-goodbye-form-body #wpinsights-goodbye-options ul > li > div > textarea {';
|
819 |
+
$styles .= 'margin: 10px 18px; padding: 8px; width: 80%;';
|
820 |
+
$styles .= '}';
|
821 |
+
$styles .= $wrapper_class . ' .deactivating-spinner { display: none; padding-bottom: 20px !important; }';
|
822 |
+
$styles .= $wrapper_class . ' .deactivating-spinner .spinner { float: none; margin: 4px 4px 0 18px; vertical-align: bottom; visibility: visible; }';
|
823 |
+
$styles .= $wrapper_class . ' .wpinsights-goodbye-form-footer { padding: 8px 18px; margin-bottom: 15px; }';
|
824 |
+
$styles .= $wrapper_class . ' .wpinsights-goodbye-form-footer > .wpinsights-goodbye-form-buttons { display: flex; align-items: center; justify-content: space-between; }';
|
825 |
+
$styles .= $wrapper_class . ' .wpinsights-goodbye-form-footer .wpinsights-submit-btn {';
|
826 |
+
$styles .= 'background-color: #d30c5c; -webkit-border-radius: 3px; border-radius: 3px; color: #fff; line-height: 1; padding: 15px 20px; font-size: 13px;';
|
827 |
+
$styles .= '}';
|
828 |
+
$styles .= $wrapper_class . ' .wpinsights-goodbye-form-footer .wpinsights-deactivate-btn {';
|
829 |
+
$styles .= 'font-size: 13px; color: #a4afb7; background: none; float: right; padding-right: 10px; width: auto; text-decoration: underline;';
|
830 |
+
$styles .= '}';
|
831 |
+
$styles .= $wrapper_class . ' .test {';
|
832 |
+
$styles .= '}';
|
833 |
+
$styles .= '</style>';
|
834 |
+
$styles .= '';
|
835 |
+
|
836 |
+
echo $styles;
|
837 |
+
?>
|
838 |
+
<script type="text/javascript">
|
839 |
+
jQuery(document).ready(function($){
|
840 |
+
$("#wpinsights-goodbye-link-<?php echo $class_plugin_name; ?>").on("click",function(){
|
841 |
+
// We'll send the user to this deactivation link when they've completed or dismissed the form
|
842 |
+
var url = document.getElementById("wpinsights-goodbye-link-<?php echo $class_plugin_name; ?>");
|
843 |
+
$('body').toggleClass('wpinsights-form-active-<?php echo $class_plugin_name; ?>');
|
844 |
+
$(".wpinsights-goodbye-form-wrapper-<?php echo $class_plugin_name; ?> #wpinsights-goodbye-form").fadeIn();
|
845 |
+
$(".wpinsights-goodbye-form-wrapper-<?php echo $class_plugin_name; ?> #wpinsights-goodbye-form").html( '<?php echo $html; ?>' + '<div class="wpinsights-goodbye-form-footer"><div class="wpinsights-goodbye-form-buttons"><a id="wpinsights-submit-form-<?php echo $class_plugin_name; ?>" class="wpinsights-submit-btn" href="#"><?php _e( 'Submit and Deactivate', 'plugin-usage-tracker' ); ?></a> <a class="wpsp-put-deactivate-btn" href="'+url+'"><?php _e( 'Just Deactivate', 'plugin-usage-tracker' ); ?></a></div></div>');
|
846 |
+
$('#wpinsights-submit-form-<?php echo $class_plugin_name; ?>').on('click', function(e){
|
847 |
+
// As soon as we click, the body of the form should disappear
|
848 |
+
$("#wpinsights-goodbye-form-<?php echo $class_plugin_name; ?> .wpinsights-goodbye-form-body").fadeOut();
|
849 |
+
$("#wpinsights-goodbye-form-<?php echo $class_plugin_name; ?> .wpinsights-goodbye-form-footer").fadeOut();
|
850 |
+
// Fade in spinner
|
851 |
+
$("#wpinsights-goodbye-form-<?php echo $class_plugin_name; ?> .deactivating-spinner").fadeIn();
|
852 |
+
e.preventDefault();
|
853 |
+
var checkedInput = $("input[name='wpinsights-<?php echo $class_plugin_name; ?>-goodbye-options']:checked"),
|
854 |
+
checkedInputVal, details;
|
855 |
+
if( checkedInput.length > 0 ) {
|
856 |
+
checkedInputVal = checkedInput.val();
|
857 |
+
details = $('input[name="'+ checkedInput[0].id +'"], textarea[name="'+ checkedInput[0].id +'"]').val();
|
858 |
+
}
|
859 |
+
|
860 |
+
if( typeof details === 'undefined' ) {
|
861 |
+
details = '';
|
862 |
+
}
|
863 |
+
if( typeof checkedInputVal === 'undefined' ) {
|
864 |
+
checkedInputVal = 'No Reason';
|
865 |
+
}
|
866 |
+
|
867 |
+
var data = {
|
868 |
+
'action': 'deactivation_form_<?php echo $class_plugin_name; ?>',
|
869 |
+
'values': checkedInputVal,
|
870 |
+
'details': details,
|
871 |
+
'security': "<?php echo wp_create_nonce ( 'wpins_deactivation_nonce' ); ?>",
|
872 |
+
'dataType': "json"
|
873 |
+
}
|
874 |
+
|
875 |
+
$.post(
|
876 |
+
ajaxurl,
|
877 |
+
data,
|
878 |
+
function(response){
|
879 |
+
// Redirect to original deactivation URL
|
880 |
+
window.location.href = url;
|
881 |
+
}
|
882 |
+
);
|
883 |
+
});
|
884 |
+
$('#wpinsights-goodbye-options > ul ').on('click', 'li label, li > input', function( e ){
|
885 |
+
var parent = $(this).parents('li');
|
886 |
+
parent.siblings().find('label').next('input, textarea').css('display', 'none');
|
887 |
+
parent.find('label').next('input, textarea').css('display', 'block');
|
888 |
+
});
|
889 |
+
// If we click outside the form, the form will close
|
890 |
+
$('.wpinsights-goodbye-form-bg').on('click',function(){
|
891 |
+
$("#wpinsights-goodbye-form").fadeOut();
|
892 |
+
$('body').removeClass('wpinsights-form-active-<?php echo $class_plugin_name; ?>');
|
893 |
+
});
|
894 |
+
});
|
895 |
+
});
|
896 |
+
</script>
|
897 |
+
<?php }
|
898 |
+
}
|
899 |
+
endif;
|
includes/cli.php
ADDED
@@ -0,0 +1,195 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Implements example command.
|
5 |
+
*/
|
6 |
+
class Disable_Comment_Command
|
7 |
+
{
|
8 |
+
|
9 |
+
public function __construct($dc_instance)
|
10 |
+
{
|
11 |
+
$this->dc_instance = $dc_instance;
|
12 |
+
|
13 |
+
$post_types = array_keys($this->dc_instance->get_all_post_types());
|
14 |
+
$comment_types = array_keys($this->dc_instance->get_all_comment_types());
|
15 |
+
$post_types[] = $comment_types[] = 'all';
|
16 |
+
|
17 |
+
$disable_synopsis = array(
|
18 |
+
array(
|
19 |
+
'type' => 'assoc',
|
20 |
+
'name' => 'types',
|
21 |
+
'description' => 'Disable comments from the selected post type(s) only.',
|
22 |
+
'optional' => true,
|
23 |
+
'options' => $post_types,
|
24 |
+
),
|
25 |
+
array(
|
26 |
+
'type' => 'flag',
|
27 |
+
'name' => 'xmlrpc',
|
28 |
+
'description' => 'Disable Comments via XML-RPC.',
|
29 |
+
'optional' => true,
|
30 |
+
),
|
31 |
+
array(
|
32 |
+
'type' => 'flag',
|
33 |
+
'name' => 'rest-api',
|
34 |
+
'description' => 'Disable Comments via REST API.',
|
35 |
+
'optional' => true,
|
36 |
+
),
|
37 |
+
array(
|
38 |
+
'type' => 'flag',
|
39 |
+
'name' => 'add',
|
40 |
+
'description' => 'Check specified checkbox in On Specific Post Types.', // check specified checkbox in `On Specific Post Types:`
|
41 |
+
'optional' => true,
|
42 |
+
),
|
43 |
+
array(
|
44 |
+
'type' => 'flag',
|
45 |
+
'name' => 'remove',
|
46 |
+
'description' => 'Uncheck specified checkbox in `On Specific Post Types.', // uncheck specified checkbox in `On Specific Post Types:`
|
47 |
+
'optional' => true,
|
48 |
+
),
|
49 |
+
);
|
50 |
+
if ($this->dc_instance->networkactive){
|
51 |
+
$disable_synopsis[] = array(
|
52 |
+
'type' => 'assoc',
|
53 |
+
'name' => 'extra-post-types',
|
54 |
+
'description' => 'If you want to disable comments on other custom post types on the entire network, you can supply a comma-separated list of post types below (use the slug that identifies the post type.',
|
55 |
+
'optional' => true,
|
56 |
+
);
|
57 |
+
}
|
58 |
+
WP_CLI::add_command('disable-comments settings', [$this, 'disable'], [
|
59 |
+
'synopsis' => $disable_synopsis,
|
60 |
+
'when' => 'after_wp_load',
|
61 |
+
'longdesc' => "## EXAMPLES
|
62 |
+
wp disable-comments settings --types=post
|
63 |
+
wp disable-comments settings --types=page --add
|
64 |
+
wp disable-comments settings --types=attachment --remove
|
65 |
+
wp disable-comments settings --xmlrpc --rest-api
|
66 |
+
wp disable-comments settings --xmlrpc=false --rest-api=false ",
|
67 |
+
]);
|
68 |
+
|
69 |
+
$delete_synopsis = array(
|
70 |
+
array(
|
71 |
+
'type' => 'assoc',
|
72 |
+
'name' => 'types',
|
73 |
+
'description' => 'Remove existing comments entries for the selected post type(s) in the database and cannot be reverted without a database backups.',
|
74 |
+
'optional' => true,
|
75 |
+
'options' => $post_types,
|
76 |
+
),
|
77 |
+
array(
|
78 |
+
'type' => 'assoc',
|
79 |
+
'name' => 'comment-types',
|
80 |
+
'description' => 'Remove existing comment entries for the selected comment type(s) in the database and cannot be reverted without a database backups.',
|
81 |
+
'optional' => true,
|
82 |
+
'options' => $comment_types,
|
83 |
+
),
|
84 |
+
);
|
85 |
+
if (!$this->dc_instance->networkactive){
|
86 |
+
$delete_synopsis[] = array(
|
87 |
+
'type' => 'assoc',
|
88 |
+
'name' => 'extra-post-types',
|
89 |
+
'description' => 'If you want to disable comments on other custom post types on the entire network, you can supply a comma-separated list of post types below (use the slug that identifies the post type.',
|
90 |
+
'optional' => true,
|
91 |
+
);
|
92 |
+
}
|
93 |
+
WP_CLI::add_command('disable-comments delete', [$this, 'delete'], [
|
94 |
+
'synopsis' => $delete_synopsis,
|
95 |
+
'when' => 'after_wp_load',
|
96 |
+
'longdesc' => "## EXAMPLES
|
97 |
+
wp disable-comments delete --types=post,page
|
98 |
+
wp disable-comments delete --types=post,page --extra-post-types=contact
|
99 |
+
wp disable-comments delete --comment-types=comment "
|
100 |
+
]);
|
101 |
+
|
102 |
+
}
|
103 |
+
|
104 |
+
/**
|
105 |
+
* Disable Comments on your website.
|
106 |
+
*
|
107 |
+
* @when after_wp_load
|
108 |
+
*/
|
109 |
+
function disable($args, $assoc_args)
|
110 |
+
{
|
111 |
+
$msg = "";
|
112 |
+
$disable_comments_settings = array();
|
113 |
+
$types = WP_CLI\Utils\get_flag_value($assoc_args, 'types');
|
114 |
+
$add = WP_CLI\Utils\get_flag_value($assoc_args, 'add');
|
115 |
+
$remove = WP_CLI\Utils\get_flag_value($assoc_args, 'remove');
|
116 |
+
$extra_post_types = WP_CLI\Utils\get_flag_value($assoc_args, 'extra-post-types');
|
117 |
+
$remove_xmlrpc_comments = WP_CLI\Utils\get_flag_value($assoc_args, 'xmlrpc');
|
118 |
+
$remove_rest_API_comments = WP_CLI\Utils\get_flag_value($assoc_args, 'rest-api');
|
119 |
+
|
120 |
+
if ($types === 'all') {
|
121 |
+
$disable_comments_settings['mode'] = 'remove_everywhere';
|
122 |
+
$msg .= __( 'Comments is disabled everywhere. ', 'disable-comments' );
|
123 |
+
} elseif(!empty($types) ) {
|
124 |
+
$disable_comments_settings['mode'] = 'selected_types';
|
125 |
+
$_types = array_map('trim', explode(',', $types));
|
126 |
+
$disabled_post_types = $this->dc_instance->get_disabled_post_types();
|
127 |
+
$new_msg = sprintf( __( 'Comments disabled for %s. ', 'disable-comments' ), $types );
|
128 |
+
if(!empty($add)){
|
129 |
+
$_types = array_unique(array_merge($disabled_post_types, $_types));
|
130 |
+
$new_msg = sprintf( __( 'Comments disabled for %s. ', 'disable-comments' ), $types );
|
131 |
+
}
|
132 |
+
if(!empty($remove)){
|
133 |
+
$_types = array_diff($disabled_post_types, $_types);
|
134 |
+
$new_msg = sprintf( __( 'Comments enabled for %s. ', 'disable-comments' ), $types );
|
135 |
+
}
|
136 |
+
|
137 |
+
$msg = $new_msg;
|
138 |
+
$disable_comments_settings['disabled_types'] = $_types;
|
139 |
+
}
|
140 |
+
|
141 |
+
// for network.
|
142 |
+
if(!empty($extra_post_types)){
|
143 |
+
$disable_comments_settings['extra_post_types'] = $extra_post_types;
|
144 |
+
$msg .= sprintf( __( 'Custom post types: %s. ', 'disable-comments' ), $extra_post_types );
|
145 |
+
}
|
146 |
+
|
147 |
+
if(isset($remove_xmlrpc_comments)){
|
148 |
+
$disable_comments_settings['remove_xmlrpc_comments'] = $remove_xmlrpc_comments;
|
149 |
+
$msg .= __( 'Disable Comments via XML-RPC. ', 'disable-comments' );
|
150 |
+
}
|
151 |
+
if(isset($remove_rest_API_comments)){
|
152 |
+
$disable_comments_settings['remove_rest_API_comments'] = $remove_rest_API_comments;
|
153 |
+
$msg .= __( 'Disable Comments via REST API. ', 'disable-comments' );
|
154 |
+
}
|
155 |
+
|
156 |
+
$this->dc_instance->disable_comments_settings($disable_comments_settings);
|
157 |
+
|
158 |
+
WP_CLI::success($msg);
|
159 |
+
}
|
160 |
+
|
161 |
+
/**
|
162 |
+
* Deletes Comments on your website.
|
163 |
+
*
|
164 |
+
* @when after_wp_load
|
165 |
+
*/
|
166 |
+
function delete($args, $assoc_args)
|
167 |
+
{
|
168 |
+
$msg = "";
|
169 |
+
$delete_comments_settings = array('delete' => true);
|
170 |
+
$selected_delete_types = WP_CLI\Utils\get_flag_value($assoc_args, 'types');
|
171 |
+
$delete_extra_post_types = WP_CLI\Utils\get_flag_value($assoc_args, 'extra-post-types');
|
172 |
+
$delete_comment_types = WP_CLI\Utils\get_flag_value($assoc_args, 'comment-types');
|
173 |
+
|
174 |
+
|
175 |
+
if ( $delete_comment_types === 'all' || $selected_delete_types === 'all' ) {
|
176 |
+
$delete_comments_settings['delete_mode'] = 'delete_everywhere';
|
177 |
+
} elseif( !empty($selected_delete_types)) {
|
178 |
+
$delete_comments_settings['delete_mode'] = 'selected_delete_types';
|
179 |
+
$delete_comments_settings['delete_types'] = array_map('trim', explode(',', $selected_delete_types));
|
180 |
+
} elseif(!empty($delete_comment_types)) {
|
181 |
+
$delete_comments_settings['delete_mode'] = 'selected_delete_comment_types';
|
182 |
+
$delete_comments_settings['delete_comment_types'] = array_map('trim', explode(',', $delete_comment_types));
|
183 |
+
} else{
|
184 |
+
WP_CLI::error("Please provide valid parameters. \nSee 'wp help dc delete' for more information.");
|
185 |
+
}
|
186 |
+
|
187 |
+
// for network.
|
188 |
+
if(!empty($delete_extra_post_types)){
|
189 |
+
$delete_comments_settings['delete_extra_post_types'] = $delete_extra_post_types;
|
190 |
+
}
|
191 |
+
|
192 |
+
$logged_msg = $this->dc_instance->delete_comments_settings($delete_comments_settings);
|
193 |
+
WP_CLI::success( implode( "\n", $logged_msg ) );
|
194 |
+
}
|
195 |
+
}
|
includes/settings-page.php
DELETED
@@ -1,101 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Setting page.
|
4 |
-
*
|
5 |
-
* @package Disable_Comments
|
6 |
-
*/
|
7 |
-
|
8 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
9 |
-
exit;
|
10 |
-
}
|
11 |
-
|
12 |
-
$typeargs = array( 'public' => true );
|
13 |
-
if ( $this->networkactive ) {
|
14 |
-
$typeargs['_builtin'] = true; // stick to known types for network.
|
15 |
-
}
|
16 |
-
$types = get_post_types( $typeargs, 'objects' );
|
17 |
-
foreach ( array_keys( $types ) as $type ) {
|
18 |
-
if ( ! in_array( $type, $this->modified_types ) && ! post_type_supports( $type, 'comments' ) ) { // the type doesn't support comments anyway.
|
19 |
-
unset( $types[ $type ] );
|
20 |
-
}
|
21 |
-
}
|
22 |
-
|
23 |
-
if ( isset( $_POST['submit'] ) ) {
|
24 |
-
check_admin_referer( 'disable-comments-admin' );
|
25 |
-
$this->options['remove_everywhere'] = ( $_POST['mode'] == 'remove_everywhere' );
|
26 |
-
|
27 |
-
if ( $this->options['remove_everywhere'] ) {
|
28 |
-
$disabled_post_types = array_keys( $types );
|
29 |
-
} else {
|
30 |
-
$disabled_post_types = empty( $_POST['disabled_types'] ) ? array() : (array) $_POST['disabled_types'];
|
31 |
-
}
|
32 |
-
|
33 |
-
$disabled_post_types = array_intersect( $disabled_post_types, array_keys( $types ) );
|
34 |
-
|
35 |
-
$this->options['disabled_post_types'] = $disabled_post_types;
|
36 |
-
|
37 |
-
// Extra custom post types.
|
38 |
-
if ( $this->networkactive && ! empty( $_POST['extra_post_types'] ) ) {
|
39 |
-
$extra_post_types = array_filter( array_map( 'sanitize_key', explode( ',', $_POST['extra_post_types'] ) ) );
|
40 |
-
$this->options['extra_post_types'] = array_diff( $extra_post_types, array_keys( $types ) ); // Make sure we don't double up builtins.
|
41 |
-
}
|
42 |
-
|
43 |
-
$this->update_options();
|
44 |
-
$cache_message = WP_CACHE ? ' <strong>' . __( 'If a caching/performance plugin is active, please invalidate its cache to ensure that changes are reflected immediately.', 'disable-comments' ) . '</strong>' : '';
|
45 |
-
echo '<div id="message" class="updated"><p>' . __( 'Options updated. Changes to the Admin Menu and Admin Bar will not appear until you leave or reload this page.', 'disable-comments' ) . $cache_message . '</p></div>';
|
46 |
-
}
|
47 |
-
?>
|
48 |
-
<style> .indent {padding-left: 2em} </style>
|
49 |
-
<div class="wrap">
|
50 |
-
<h1><?php _ex( 'Disable Comments', 'settings page title', 'disable-comments' ); ?></h1>
|
51 |
-
<?php
|
52 |
-
if ( $this->networkactive ) {
|
53 |
-
echo '<div class="updated"><p>' . __( '<em>Disable Comments</em> is Network Activated. The settings below will affect <strong>all sites</strong> in this network.', 'disable-comments' ) . '</p></div>';
|
54 |
-
}
|
55 |
-
if ( WP_CACHE ) {
|
56 |
-
echo '<div class="updated"><p>' . __( "It seems that a caching/performance plugin is active on this site. Please manually invalidate that plugin's cache after making any changes to the settings below.", 'disable-comments' ) . '</p></div>';
|
57 |
-
}
|
58 |
-
?>
|
59 |
-
<form action="" method="post" id="disable-comments">
|
60 |
-
<ul>
|
61 |
-
<li><label for="remove_everywhere"><input type="radio" id="remove_everywhere" name="mode" value="remove_everywhere" <?php checked( $this->options['remove_everywhere'] ); ?> /> <strong><?php _e( 'Everywhere', 'disable-comments' ); ?></strong>: <?php _e( 'Disable all comment-related controls and settings in WordPress.', 'disable-comments' ); ?></label>
|
62 |
-
<p class="indent"><?php printf( __( '%1$s: This option is global and will affect your entire site. Use it only if you want to disable comments <em>everywhere</em>. A complete description of what this option does is <a href="%2$s" target="_blank">available here</a>.', 'disable-comments' ), '<strong style="color: #900">' . __( 'Warning', 'disable-comments' ) . '</strong>', 'https://wordpress.org/plugins/disable-comments/other_notes/' ); ?></p>
|
63 |
-
</li>
|
64 |
-
<li><label for="selected_types"><input type="radio" id="selected_types" name="mode" value="selected_types" <?php checked( ! $this->options['remove_everywhere'] ); ?> /> <strong><?php _e( 'On certain post types', 'disable-comments' ); ?></strong>:</label>
|
65 |
-
<p></p>
|
66 |
-
<ul class="indent" id="listoftypes">
|
67 |
-
<?php
|
68 |
-
foreach ( $types as $k => $v ) {
|
69 |
-
echo "<li><label for='post-type-$k'><input type='checkbox' name='disabled_types[]' value='$k' " . checked( in_array( $k, $this->options['disabled_post_types'] ), true, false ) . " id='post-type-$k'> {$v->labels->name}</label></li>";}
|
70 |
-
?>
|
71 |
-
</ul>
|
72 |
-
<?php if ( $this->networkactive ) : ?>
|
73 |
-
<p class="indent" id="extratypes"><?php _e( 'Only the built-in post types appear above. If you want to disable comments on other custom post types on the entire network, you can supply a comma-separated list of post types below (use the slug that identifies the post type).', 'disable-comments' ); ?>
|
74 |
-
<br /><label><?php _e( 'Custom post types:', 'disable-comments' ); ?> <input type="text" name="extra_post_types" size="30" value="<?php echo implode( ', ', (array) $this->options['extra_post_types'] ); ?>" /></label></p>
|
75 |
-
<?php endif; ?>
|
76 |
-
<p class="indent"><?php _e( 'Disabling comments will also disable trackbacks and pingbacks. All comment-related fields will also be hidden from the edit/quick-edit screens of the affected posts. These settings cannot be overridden for individual posts.', 'disable-comments' ); ?></p>
|
77 |
-
</li>
|
78 |
-
</ul>
|
79 |
-
|
80 |
-
<?php wp_nonce_field( 'disable-comments-admin' ); ?>
|
81 |
-
<p class="submit"><input class="button-primary" type="submit" name="submit" value="<?php _e( 'Save Changes', 'disable-comments' ); ?>"></p>
|
82 |
-
</form>
|
83 |
-
</div>
|
84 |
-
<script>
|
85 |
-
jQuery(document).ready(function($){
|
86 |
-
function disable_comments_uihelper(){
|
87 |
-
var indiv_bits = $("#listoftypes, #extratypes");
|
88 |
-
if( $("#remove_everywhere").is(":checked") )
|
89 |
-
indiv_bits.css("color", "#888").find(":input").attr("disabled", true );
|
90 |
-
else
|
91 |
-
indiv_bits.css("color", "#000").find(":input").attr("disabled", false );
|
92 |
-
}
|
93 |
-
|
94 |
-
$("#disable-comments :input").change(function(){
|
95 |
-
$("#message").slideUp();
|
96 |
-
disable_comments_uihelper();
|
97 |
-
});
|
98 |
-
|
99 |
-
disable_comments_uihelper();
|
100 |
-
});
|
101 |
-
</script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/tools-page.php
DELETED
@@ -1,195 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Tools page.
|
4 |
-
*
|
5 |
-
* @package Disable_Comments
|
6 |
-
*/
|
7 |
-
|
8 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
9 |
-
exit;
|
10 |
-
}
|
11 |
-
?>
|
12 |
-
<div class="wrap">
|
13 |
-
<h1><?php _e( 'Delete Comments', 'disable-comments' ); ?></h1>
|
14 |
-
<?php
|
15 |
-
|
16 |
-
global $wpdb;
|
17 |
-
$comments_count = $wpdb->get_var( "SELECT count(comment_id) from $wpdb->comments" );
|
18 |
-
if ( $comments_count <= 0 ) {
|
19 |
-
?>
|
20 |
-
<p><strong><?php _e( 'No comments available for deletion.', 'disable-comments' ); ?></strong></p>
|
21 |
-
</div>
|
22 |
-
<?php
|
23 |
-
return;
|
24 |
-
}
|
25 |
-
|
26 |
-
$publictypeargs = array( 'public' => true );
|
27 |
-
$privatetypeargs = array( 'public' => false );
|
28 |
-
if ( $this->networkactive ) {
|
29 |
-
$typeargs['_builtin'] = true; // stick to known types for network.
|
30 |
-
}
|
31 |
-
$publictypes = get_post_types( $publictypeargs, 'objects' );
|
32 |
-
$privatetypes = get_post_types( $privatetypeargs, 'objects' );
|
33 |
-
$types = array_merge( $publictypes, $privatetypes );
|
34 |
-
foreach ( array_keys( $types ) as $type ) {
|
35 |
-
if ( ! in_array( $type, $this->modified_types ) && ! post_type_supports( $type, 'comments' ) ) { // the type doesn't support comments anyway.
|
36 |
-
unset( $types[ $type ] );
|
37 |
-
}
|
38 |
-
}
|
39 |
-
$commenttypes = array();
|
40 |
-
$commenttypes_query = $wpdb->get_results( "SELECT DISTINCT comment_type FROM $wpdb->comments", ARRAY_A );
|
41 |
-
if ( ! empty( $commenttypes_query ) && is_array( $commenttypes_query ) ) {
|
42 |
-
foreach ( $commenttypes_query as $entry ) {
|
43 |
-
$value = $entry['comment_type'];
|
44 |
-
if ( '' === $value ) {
|
45 |
-
$commenttypes['default'] = __( 'Default (no type)', 'disable-comments' );
|
46 |
-
} else {
|
47 |
-
$commenttypes[$value] = ucwords( str_replace( '_', ' ', $value ) ) . ' (' . $value . ')';
|
48 |
-
}
|
49 |
-
}
|
50 |
-
}
|
51 |
-
|
52 |
-
if ( isset( $_POST['delete'] ) && isset( $_POST['delete_mode'] ) ) {
|
53 |
-
check_admin_referer( 'delete-comments-admin' );
|
54 |
-
|
55 |
-
if ( $_POST['delete_mode'] == 'delete_everywhere' ) {
|
56 |
-
if ( $wpdb->query( "TRUNCATE $wpdb->commentmeta" ) != false ) {
|
57 |
-
if ( $wpdb->query( "TRUNCATE $wpdb->comments" ) != false ) {
|
58 |
-
$wpdb->query( "UPDATE $wpdb->posts SET comment_count = 0" );
|
59 |
-
$wpdb->query( "OPTIMIZE TABLE $wpdb->commentmeta" );
|
60 |
-
$wpdb->query( "OPTIMIZE TABLE $wpdb->comments" );
|
61 |
-
echo "<p style='color:green'><strong>" . __( 'All comments have been deleted.', 'disable-comments' ) . '</strong></p>';
|
62 |
-
} else {
|
63 |
-
echo "<p style='color:red'><strong>" . __( 'Internal error occured. Please try again later.', 'disable-comments' ) . '</strong></p>';
|
64 |
-
}
|
65 |
-
} else {
|
66 |
-
echo "<p style='color:red'><strong>" . __( 'Internal error occured. Please try again later.', 'disable-comments' ) . '</strong></p>';
|
67 |
-
}
|
68 |
-
} elseif ( $_POST['delete_mode'] == 'selected_delete_types' ) {
|
69 |
-
$delete_post_types = empty( $_POST['delete_types'] ) ? array() : (array) $_POST['delete_types'];
|
70 |
-
$delete_post_types = array_intersect( $delete_post_types, array_keys( $types ) );
|
71 |
-
|
72 |
-
// Extra custom post types.
|
73 |
-
if ( $this->networkactive && ! empty( $_POST['delete_extra_post_types'] ) ) {
|
74 |
-
$delete_extra_post_types = array_filter( array_map( 'sanitize_key', explode( ',', $_POST['delete_extra_post_types'] ) ) );
|
75 |
-
$delete_extra_post_types = array_diff( $delete_extra_post_types, array_keys( $types ) ); // Make sure we don't double up builtins.
|
76 |
-
$delete_post_types = array_merge( $delete_post_types, $delete_extra_post_types );
|
77 |
-
}
|
78 |
-
|
79 |
-
if ( ! empty( $delete_post_types ) ) {
|
80 |
-
// Loop through post_types and remove comments/meta and set posts comment_count to 0.
|
81 |
-
foreach ( $delete_post_types as $delete_post_type ) {
|
82 |
-
$wpdb->query( "DELETE cmeta FROM $wpdb->commentmeta cmeta INNER JOIN $wpdb->comments comments ON cmeta.comment_id=comments.comment_ID INNER JOIN $wpdb->posts posts ON comments.comment_post_ID=posts.ID WHERE posts.post_type = '$delete_post_type'" );
|
83 |
-
$wpdb->query( "DELETE comments FROM $wpdb->comments comments INNER JOIN $wpdb->posts posts ON comments.comment_post_ID=posts.ID WHERE posts.post_type = '$delete_post_type'" );
|
84 |
-
$wpdb->query( "UPDATE $wpdb->posts SET comment_count = 0 WHERE post_author != 0 AND post_type = '$delete_post_type'" );
|
85 |
-
|
86 |
-
$post_type_object = get_post_type_object( $delete_post_type );
|
87 |
-
$post_type_label = $post_type_object ? $post_type_object->labels->name : $delete_post_type;
|
88 |
-
echo "<p style='color:green'><strong>" . sprintf( __( 'All comments have been deleted for %s.', 'disable-comments' ), $post_type_label ) . '</strong></p>';
|
89 |
-
}
|
90 |
-
|
91 |
-
$wpdb->query( "OPTIMIZE TABLE $wpdb->commentmeta" );
|
92 |
-
$wpdb->query( "OPTIMIZE TABLE $wpdb->comments" );
|
93 |
-
|
94 |
-
echo "<h4 style='color:green'><strong>" . __( 'Comment Deletion Complete', 'disable-comments' ) . '</strong></h4>';
|
95 |
-
}
|
96 |
-
} elseif ( $_POST['delete_mode'] == 'selected_delete_comment_types' ) {
|
97 |
-
$delete_comment_types = empty( $_POST['delete_comment_types'] ) ? array() : (array) $_POST['delete_comment_types'];
|
98 |
-
$delete_comment_types = array_intersect( $delete_comment_types, array_keys( $commenttypes ) );
|
99 |
-
|
100 |
-
if ( ! empty( $delete_comment_types ) ) {
|
101 |
-
// Loop through comment_types and remove comments/meta and set posts comment_count to 0.
|
102 |
-
foreach ( $delete_comment_types as $delete_comment_type ) {
|
103 |
-
$wpdb->query( "DELETE cmeta FROM $wpdb->commentmeta cmeta INNER JOIN $wpdb->comments comments ON cmeta.comment_id=comments.comment_ID WHERE comments.comment_type = '$delete_comment_type'" );
|
104 |
-
$wpdb->query( "DELETE comments FROM $wpdb->comments comments WHERE comments.comment_type = '$delete_comment_type'" );
|
105 |
-
|
106 |
-
echo "<p style='color:green'><strong>" . sprintf( __( 'All comments have been deleted for %s.', 'disable-comments' ), $commenttypes[$delete_comment_type] ) . '</strong></p>';
|
107 |
-
}
|
108 |
-
|
109 |
-
// Update comment_count on post_types
|
110 |
-
foreach( $types as $key => $value ) {
|
111 |
-
$comment_count = $wpdb->get_var( "SELECT COUNT(comments.comment_ID) FROM $wpdb->comments comments INNER JOIN $wpdb->posts posts ON comments.comment_post_ID=posts.ID WHERE posts.post_type = '$key'" );
|
112 |
-
$wpdb->query( "UPDATE $wpdb->posts SET comment_count = $comment_count WHERE post_author != 0 AND post_type = '$key'" );
|
113 |
-
}
|
114 |
-
|
115 |
-
$wpdb->query( "OPTIMIZE TABLE $wpdb->commentmeta" );
|
116 |
-
$wpdb->query( "OPTIMIZE TABLE $wpdb->comments" );
|
117 |
-
|
118 |
-
echo "<h4 style='color:green'><strong>" . __( 'Comment Deletion Complete', 'disable-comments' ) . '</strong></h4>';
|
119 |
-
}
|
120 |
-
}
|
121 |
-
|
122 |
-
$comments_count = $wpdb->get_var( "SELECT count(comment_id) from $wpdb->comments" );
|
123 |
-
if ( $comments_count <= 0 ) {
|
124 |
-
?>
|
125 |
-
<p><strong><?php _e( 'No comments available for deletion.', 'disable-comments' ); ?></strong></p>
|
126 |
-
</div>
|
127 |
-
<?php
|
128 |
-
return;
|
129 |
-
}
|
130 |
-
}
|
131 |
-
?>
|
132 |
-
<form action="" method="post" id="delete-comments">
|
133 |
-
<ul>
|
134 |
-
<li><label for="delete_everywhere"><input type="radio" id="delete_everywhere" name="delete_mode" value="delete_everywhere" <?php checked( $this->options['remove_everywhere'] ); ?> /> <strong><?php _e( 'Everywhere', 'disable-comments' ); ?></strong>: <?php _e( 'Delete all comments in WordPress.', 'disable-comments' ); ?></label>
|
135 |
-
<p class="indent"><?php printf( __( '%s: This function and will affect your entire site. Use it only if you want to delete comments <em>everywhere</em>.', 'disable-comments' ), '<strong style="color: #900">' . __( 'Warning', 'disable-comments' ) . '</strong>' ); ?></p>
|
136 |
-
</li>
|
137 |
-
<li><label for="selected_delete_types"><input type="radio" id="selected_delete_types" name="delete_mode" value="selected_delete_types" <?php checked( ! $this->options['remove_everywhere'] ); ?> /> <strong><?php _e( 'For certain post types', 'disable-comments' ); ?></strong>:</label>
|
138 |
-
<p></p>
|
139 |
-
<ul class="indent" id="listofdeletetypes">
|
140 |
-
<?php
|
141 |
-
foreach ( $types as $k => $v ) {
|
142 |
-
echo "<li><label for='post-type-$k'><input type='checkbox' name='delete_types[]' value='$k' " . checked( in_array( $k, $this->options['disabled_post_types'] ), true, false ) . " id='post-type-$k'> {$v->labels->name}</label></li>";}
|
143 |
-
?>
|
144 |
-
</ul>
|
145 |
-
<?php if ( $this->networkactive ) : ?>
|
146 |
-
<p class="indent" id="extradeletetypes"><?php _e( 'Only the built-in post types appear above. If you want to disable comments on other custom post types on the entire network, you can supply a comma-separated list of post types below (use the slug that identifies the post type).', 'disable-comments' ); ?>
|
147 |
-
<br /><label><?php _e( 'Custom post types:', 'disable-comments' ); ?> <input type="text" name="delete_extra_post_types" size="30" value="<?php echo implode( ', ', (array) $this->options['extra_post_types'] ); ?>" /></label></p>
|
148 |
-
<?php endif; ?>
|
149 |
-
<p class="indent"><?php printf( __( '%s: Deleting comments by post type will remove existing comment entries for the selected post type(s) in the database and cannot be reverted without a database backup.', 'disable-comments' ), '<strong style="color: #900">' . __( 'Warning', 'disable-comments' ) . '</strong>' ); ?></p>
|
150 |
-
</li>
|
151 |
-
<?php if ( ! empty( $commenttypes ) ) : ?>
|
152 |
-
<li><label for="selected_delete_comment_types"><input type="radio" id="selected_delete_comment_types" name="delete_mode" value="selected_delete_comment_types" /> <strong><?php _e( 'For certain comment types', 'disable-comments' ); ?></strong>:</label>
|
153 |
-
<p></p>
|
154 |
-
<ul class="indent" id="listofdeletecommenttypes">
|
155 |
-
<?php
|
156 |
-
foreach ( $commenttypes as $k => $v ) {
|
157 |
-
echo "<li><label for='comment-type-$k'><input type='checkbox' name='delete_comment_types[]' value='$k' id='comment-type-$k'> {$v}</label></li>";}
|
158 |
-
?>
|
159 |
-
</ul>
|
160 |
-
<p class="indent"><?php printf( __( '%s: Deleting comments by comment type will remove existing comment entries of the selected comment type(s) in the database and cannot be reverted without a database backup.', 'disable-comments' ), '<strong style="color: #900">' . __( 'Warning', 'disable-comments' ) . '</strong>' ); ?></p>
|
161 |
-
</li>
|
162 |
-
<?php endif; ?>
|
163 |
-
</ul>
|
164 |
-
|
165 |
-
<?php wp_nonce_field( 'delete-comments-admin' ); ?>
|
166 |
-
<h4><?php _e( 'Total Comments:', 'disable-comments' ); ?> <?php echo $comments_count; ?></h4>
|
167 |
-
<p class="submit"><input class="button-primary" type="submit" name="delete" value="<?php _e( 'Delete Comments', 'disable-comments' ); ?>"></p>
|
168 |
-
</form>
|
169 |
-
</div>
|
170 |
-
<script>
|
171 |
-
jQuery(document).ready(function($){
|
172 |
-
function delete_comments_uihelper(){
|
173 |
-
var toggle_pt_bits = $("#listofdeletetypes, #extradeletetypes");
|
174 |
-
var toggle_ct_bits = $("#listofdeletecommenttypes");
|
175 |
-
if( $("#delete_everywhere").is(":checked") ) {
|
176 |
-
toggle_pt_bits.css("color", "#888").find(":input").attr("disabled", true );
|
177 |
-
toggle_ct_bits.css("color", "#888").find(":input").attr("disabled", true );
|
178 |
-
} else {
|
179 |
-
if( $("#selected_delete_types").is(":checked") ) {
|
180 |
-
toggle_pt_bits.css("color", "#000").find(":input").attr("disabled", false );
|
181 |
-
toggle_ct_bits.css("color", "#888").find(":input").attr("disabled", true );
|
182 |
-
} else {
|
183 |
-
toggle_ct_bits.css("color", "#000").find(":input").attr("disabled", false );
|
184 |
-
toggle_pt_bits.css("color", "#888").find(":input").attr("disabled", true );
|
185 |
-
}
|
186 |
-
}
|
187 |
-
}
|
188 |
-
|
189 |
-
$("#delete-comments :input").change(function(){
|
190 |
-
delete_comments_uihelper();
|
191 |
-
});
|
192 |
-
|
193 |
-
delete_comments_uihelper();
|
194 |
-
});
|
195 |
-
</script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/disable-comments.pot
CHANGED
@@ -1,214 +1,355 @@
|
|
1 |
-
# Copyright (C) 2020
|
2 |
-
# This file is distributed under the
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: Disable Comments
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/disable-comments\n"
|
7 |
-
"POT-Creation-Date: 2020-05-01 06:45:42+00:00\n"
|
8 |
-
"MIME-Version: 1.0\n"
|
9 |
-
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
-
"Content-Transfer-Encoding: 8bit\n"
|
11 |
-
"PO-Revision-Date: 2020-MO-DA HO:MI+ZONE\n"
|
12 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
13 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
14 |
-
"
|
15 |
-
"
|
16 |
-
"
|
17 |
-
"
|
18 |
-
"
|
19 |
-
"
|
20 |
-
"
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
"
|
25 |
-
|
26 |
-
|
27 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
msgid "Disable Comments requires WordPress version %s or greater."
|
29 |
msgstr ""
|
30 |
|
31 |
-
#: disable-comments.php:
|
|
|
|
|
32 |
msgid "Comments are closed."
|
33 |
msgstr ""
|
34 |
|
35 |
-
#: disable-comments.php:
|
36 |
-
msgid ""
|
37 |
-
"Note: The <em>Disable Comments</em> plugin is currently active, and "
|
38 |
-
"comments are completely disabled on: %s. Many of the settings below will "
|
39 |
-
"not be applicable for those post types."
|
40 |
msgstr ""
|
41 |
|
42 |
-
#: disable-comments.php:
|
43 |
msgid ", "
|
44 |
msgstr ""
|
45 |
|
46 |
-
#: disable-comments.php:
|
47 |
-
msgid ""
|
48 |
-
"The <em>Disable Comments</em> plugin is active, but isn't configured to do "
|
49 |
-
"anything yet. Visit the <a href=\"%s\">configuration page</a> to choose "
|
50 |
-
"which post types to disable comments on."
|
51 |
msgstr ""
|
52 |
|
53 |
-
#: disable-comments.php:
|
|
|
54 |
msgid "Settings"
|
55 |
msgstr ""
|
56 |
|
57 |
-
#: disable-comments.php:
|
58 |
msgid "Tools"
|
59 |
msgstr ""
|
60 |
|
61 |
-
#: disable-comments.php:
|
62 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
msgid "Delete Comments"
|
64 |
msgstr ""
|
65 |
|
66 |
-
#:
|
67 |
-
msgid ""
|
68 |
-
"If a caching/performance plugin is active, please invalidate its cache to "
|
69 |
-
"ensure that changes are reflected immediately."
|
70 |
msgstr ""
|
71 |
|
72 |
-
#:
|
73 |
-
msgid ""
|
74 |
-
"Options updated. Changes to the Admin Menu and Admin Bar will not appear "
|
75 |
-
"until you leave or reload this page."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#:
|
79 |
-
|
80 |
-
|
81 |
-
"
|
82 |
msgstr ""
|
83 |
|
84 |
-
#:
|
85 |
-
|
86 |
-
"
|
87 |
-
"manually invalidate that plugin's cache after making any changes to the "
|
88 |
-
"settings below."
|
89 |
msgstr ""
|
90 |
|
91 |
-
#: includes/
|
92 |
-
msgid "
|
93 |
msgstr ""
|
94 |
|
95 |
-
#: includes/
|
96 |
-
|
|
|
97 |
msgstr ""
|
98 |
|
99 |
-
#: includes/
|
100 |
-
msgid ""
|
101 |
-
"%1$s: This option is global and will affect your entire site. Use it only "
|
102 |
-
"if you want to disable comments <em>everywhere</em>. A complete description "
|
103 |
-
"of what this option does is <a href=\"%2$s\" target=\"_blank\">available "
|
104 |
-
"here</a>."
|
105 |
msgstr ""
|
106 |
|
107 |
-
#: includes/
|
108 |
-
|
109 |
-
msgid "Warning"
|
110 |
msgstr ""
|
111 |
|
112 |
-
#: includes/
|
113 |
-
msgid "
|
114 |
msgstr ""
|
115 |
|
116 |
-
#: includes/
|
117 |
-
msgid ""
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
122 |
msgstr ""
|
123 |
|
124 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
125 |
msgid "Custom post types:"
|
126 |
msgstr ""
|
127 |
|
128 |
-
#:
|
129 |
-
msgid ""
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
134 |
msgstr ""
|
135 |
|
136 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
137 |
msgid "Save Changes"
|
138 |
msgstr ""
|
139 |
|
140 |
-
#:
|
141 |
-
msgid "
|
142 |
msgstr ""
|
143 |
|
144 |
-
#:
|
145 |
-
msgid "All
|
146 |
msgstr ""
|
147 |
|
148 |
-
#:
|
149 |
-
msgid "
|
150 |
msgstr ""
|
151 |
|
152 |
-
#:
|
153 |
-
msgid "
|
154 |
msgstr ""
|
155 |
|
156 |
-
#:
|
157 |
-
msgid "
|
158 |
msgstr ""
|
159 |
|
160 |
-
#:
|
161 |
-
msgid "
|
162 |
msgstr ""
|
163 |
|
164 |
-
#:
|
165 |
-
msgid ""
|
166 |
-
"%s: This function and will affect your entire site. Use it only if you want "
|
167 |
-
"to delete comments <em>everywhere</em>."
|
168 |
msgstr ""
|
169 |
|
170 |
-
#:
|
171 |
-
msgid "
|
172 |
msgstr ""
|
173 |
|
174 |
-
#:
|
175 |
-
msgid ""
|
176 |
-
"%s: Deleting comments will remove existing comment entries in the database "
|
177 |
-
"and cannot be reverted without a database backup."
|
178 |
msgstr ""
|
179 |
|
180 |
-
#:
|
181 |
-
msgid "
|
182 |
msgstr ""
|
183 |
|
184 |
-
|
185 |
-
msgid "Disable Comments"
|
186 |
msgstr ""
|
187 |
|
188 |
-
|
189 |
-
msgid "
|
190 |
msgstr ""
|
191 |
|
192 |
-
|
193 |
-
msgid ""
|
194 |
-
"Allows administrators to globally disable comments on their site. Comments "
|
195 |
-
"can be disabled according to post type."
|
196 |
msgstr ""
|
197 |
|
198 |
-
|
199 |
-
msgid "
|
200 |
msgstr ""
|
201 |
|
202 |
-
|
203 |
-
msgid "
|
204 |
msgstr ""
|
205 |
|
206 |
-
#:
|
207 |
-
|
208 |
-
msgid "Disable Comments"
|
209 |
msgstr ""
|
210 |
|
211 |
-
#:
|
212 |
-
|
213 |
-
|
214 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Copyright (C) 2020 WPDeveloper
|
2 |
+
# This file is distributed under the GPL-3.0+.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: Disable Comments 2.0.0\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/disable-comments\n"
|
|
|
|
|
|
|
|
|
|
|
7 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
8 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
9 |
+
"MIME-Version: 1.0\n"
|
10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"POT-Creation-Date: 2020-11-27T13:34:45+00:00\n"
|
13 |
+
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
14 |
+
"X-Generator: WP-CLI 2.5.0-alpha\n"
|
15 |
+
"X-Domain: disable-comments\n"
|
16 |
+
|
17 |
+
#. Plugin Name of the plugin
|
18 |
+
#: views/settings.php:9
|
19 |
+
msgid "Disable Comments"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#. Plugin URI of the plugin
|
23 |
+
msgid "https://wordpress.org/plugins/disable-comments/"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#. Description of the plugin
|
27 |
+
msgid "Allows administrators to globally disable comments on their site. Comments can be disabled according to post type. You could bulk delete comments using Tools."
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#. Author of the plugin
|
31 |
+
msgid "WPDeveloper"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#. Author URI of the plugin
|
35 |
+
msgid "https://wpdeveloper.net"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#: disable-comments.php:142
|
39 |
msgid "Disable Comments requires WordPress version %s or greater."
|
40 |
msgstr ""
|
41 |
|
42 |
+
#: disable-comments.php:397
|
43 |
+
#: disable-comments.php:554
|
44 |
+
#: disable-comments.php:561
|
45 |
msgid "Comments are closed."
|
46 |
msgstr ""
|
47 |
|
48 |
+
#: disable-comments.php:501
|
49 |
+
msgid "Note: The <em>Disable Comments</em> plugin is currently active, and comments are completely disabled on: %s. Many of the settings below will not be applicable for those post types."
|
|
|
|
|
|
|
50 |
msgstr ""
|
51 |
|
52 |
+
#: disable-comments.php:501
|
53 |
msgid ", "
|
54 |
msgstr ""
|
55 |
|
56 |
+
#: disable-comments.php:545
|
57 |
+
msgid "The <strong>Disable Comments</strong> plugin is active, but isn't configured to do anything yet. Visit the <a href=\"%s\">configuration page</a> to choose which post types to disable comments on."
|
|
|
|
|
|
|
58 |
msgstr ""
|
59 |
|
60 |
+
#: disable-comments.php:634
|
61 |
+
#: views/partials/_disable.php:3
|
62 |
msgid "Settings"
|
63 |
msgstr ""
|
64 |
|
65 |
+
#: disable-comments.php:635
|
66 |
msgid "Tools"
|
67 |
msgstr ""
|
68 |
|
69 |
+
#: disable-comments.php:644
|
70 |
+
msgctxt "settings menu title"
|
71 |
+
msgid "Disable Comments"
|
72 |
+
msgstr ""
|
73 |
+
|
74 |
+
#: disable-comments.php:674
|
75 |
+
#: views/partials/_delete.php:51
|
76 |
+
#: views/settings.php:12
|
77 |
msgid "Delete Comments"
|
78 |
msgstr ""
|
79 |
|
80 |
+
#: disable-comments.php:708
|
81 |
+
msgid "Default (no type)"
|
|
|
|
|
82 |
msgstr ""
|
83 |
|
84 |
+
#: disable-comments.php:803
|
85 |
+
msgid "Saved"
|
|
|
|
|
86 |
msgstr ""
|
87 |
|
88 |
+
#: disable-comments.php:832
|
89 |
+
#: disable-comments.php:866
|
90 |
+
#: disable-comments.php:889
|
91 |
+
msgid "All comments has been deleted"
|
92 |
msgstr ""
|
93 |
|
94 |
+
#: disable-comments.php:834
|
95 |
+
#: disable-comments.php:838
|
96 |
+
msgid "Internal error occured. Please try again later."
|
|
|
|
|
97 |
msgstr ""
|
98 |
|
99 |
+
#: includes/cli.php:122
|
100 |
+
msgid "Comments is disabled everywhere. "
|
101 |
msgstr ""
|
102 |
|
103 |
+
#: includes/cli.php:127
|
104 |
+
#: includes/cli.php:130
|
105 |
+
msgid "Comments disabled for %s. "
|
106 |
msgstr ""
|
107 |
|
108 |
+
#: includes/cli.php:134
|
109 |
+
msgid "Comments enabled for %s. "
|
|
|
|
|
|
|
|
|
110 |
msgstr ""
|
111 |
|
112 |
+
#: includes/cli.php:144
|
113 |
+
msgid "Custom post types: %s. "
|
|
|
114 |
msgstr ""
|
115 |
|
116 |
+
#: includes/cli.php:149
|
117 |
+
msgid "Disable Comments via XML-RPC. "
|
118 |
msgstr ""
|
119 |
|
120 |
+
#: includes/cli.php:153
|
121 |
+
msgid "Disable Comments via REST API. "
|
122 |
+
msgstr ""
|
123 |
+
|
124 |
+
#: views/partials/_delete.php:6
|
125 |
+
#: views/partials/_disable.php:30
|
126 |
+
msgid "Note:"
|
127 |
+
msgstr ""
|
128 |
+
|
129 |
+
#: views/partials/_delete.php:6
|
130 |
+
msgid "These settings will permanently delete comments for your entire website, or for specific posts and comment types."
|
131 |
+
msgstr ""
|
132 |
+
|
133 |
+
#: views/partials/_delete.php:9
|
134 |
+
#: views/partials/_disable.php:7
|
135 |
+
msgid "Everywhere:"
|
136 |
+
msgstr ""
|
137 |
+
|
138 |
+
#: views/partials/_delete.php:9
|
139 |
+
msgid "Permanently delete all comments on your WordPress website"
|
140 |
+
msgstr ""
|
141 |
+
|
142 |
+
#: views/partials/_delete.php:10
|
143 |
+
#: views/partials/_delete.php:33
|
144 |
+
#: views/partials/_delete.php:46
|
145 |
+
#: views/partials/_disable.php:8
|
146 |
+
msgid "Warnings:"
|
147 |
+
msgstr ""
|
148 |
+
|
149 |
+
#: views/partials/_delete.php:10
|
150 |
+
msgid "This will permanently delete comments everywhere on your website."
|
151 |
+
msgstr ""
|
152 |
+
|
153 |
+
#: views/partials/_delete.php:14
|
154 |
+
msgid "On Certain Post Types:"
|
155 |
msgstr ""
|
156 |
|
157 |
+
#: views/partials/_delete.php:29
|
158 |
+
#: views/partials/_disable.php:26
|
159 |
+
msgid "Only the built-in post types appear above. If you want to disable comments on other custom post types on the entire network, you can supply a comma-separated list of post types below (use the slug that identifies the post type)."
|
160 |
+
msgstr ""
|
161 |
+
|
162 |
+
#: views/partials/_delete.php:30
|
163 |
+
#: views/partials/_disable.php:27
|
164 |
msgid "Custom post types:"
|
165 |
msgstr ""
|
166 |
|
167 |
+
#: views/partials/_delete.php:33
|
168 |
+
msgid "This will remove existing comment entries for the selected post type(s) in the database and cannot be reverted without a database backups."
|
169 |
+
msgstr ""
|
170 |
+
|
171 |
+
#: views/partials/_delete.php:37
|
172 |
+
msgid "Delete Certain Comment Types:"
|
173 |
+
msgstr ""
|
174 |
+
|
175 |
+
#: views/partials/_delete.php:46
|
176 |
+
msgid "Deleting comments by comment type will remove existing comment entries of the selected comment type(s) in the database and cannot be reverted without a database backup."
|
177 |
+
msgstr ""
|
178 |
+
|
179 |
+
#: views/partials/_delete.php:48
|
180 |
+
msgid "Total Comments:"
|
181 |
+
msgstr ""
|
182 |
+
|
183 |
+
#: views/partials/_delete.php:189
|
184 |
+
msgid "No comments are available for deletion."
|
185 |
+
msgstr ""
|
186 |
+
|
187 |
+
#: views/partials/_disable.php:4
|
188 |
+
msgid "Configure the settings below to disable comments globally or on specific types of posts."
|
189 |
msgstr ""
|
190 |
|
191 |
+
#: views/partials/_disable.php:7
|
192 |
+
msgid "Disable comments globally on your entire website"
|
193 |
+
msgstr ""
|
194 |
+
|
195 |
+
#: views/partials/_disable.php:8
|
196 |
+
msgid "This will disable comments from every page and post on your website. Use this setting if you do not want to show comments anywhere."
|
197 |
+
msgstr ""
|
198 |
+
|
199 |
+
#: views/partials/_disable.php:12
|
200 |
+
msgid "On Specific Post Types:"
|
201 |
+
msgstr ""
|
202 |
+
|
203 |
+
#: views/partials/_disable.php:30
|
204 |
+
msgid "Disabling comments will also disable trackbacks and pingbacks. All comment-related fields will also be hidden from the edit/quick-edit screens of the affected posts. These settings cannot be overridden for individual posts. Comments will be visible on all other post types."
|
205 |
+
msgstr ""
|
206 |
+
|
207 |
+
#: views/partials/_disable.php:34
|
208 |
+
msgid "Disable Comments With API"
|
209 |
+
msgstr ""
|
210 |
+
|
211 |
+
#: views/partials/_disable.php:35
|
212 |
+
msgid "You can disable comments made on your website using WordPress specifications."
|
213 |
+
msgstr ""
|
214 |
+
|
215 |
+
#: views/partials/_disable.php:42
|
216 |
+
#: views/partials/_disable.php:52
|
217 |
+
msgid "On"
|
218 |
+
msgstr ""
|
219 |
+
|
220 |
+
#: views/partials/_disable.php:43
|
221 |
+
#: views/partials/_disable.php:53
|
222 |
+
msgid "Off"
|
223 |
+
msgstr ""
|
224 |
+
|
225 |
+
#: views/partials/_disable.php:45
|
226 |
+
msgid "Disable Comments via XML-RPC"
|
227 |
+
msgstr ""
|
228 |
+
|
229 |
+
#: views/partials/_disable.php:54
|
230 |
+
msgid "Disable Comments via REST API"
|
231 |
+
msgstr ""
|
232 |
+
|
233 |
+
#: views/partials/_disable.php:58
|
234 |
+
msgid "Turning on these settings will disable any comments made on your website via XML-RPC or REST API specifications."
|
235 |
+
msgstr ""
|
236 |
+
|
237 |
+
#: views/partials/_disable.php:62
|
238 |
msgid "Save Changes"
|
239 |
msgstr ""
|
240 |
|
241 |
+
#: views/partials/_menu.php:3
|
242 |
+
msgid "About Us"
|
243 |
msgstr ""
|
244 |
|
245 |
+
#: views/partials/_menu.php:4
|
246 |
+
msgid "All Plugins"
|
247 |
msgstr ""
|
248 |
|
249 |
+
#: views/partials/_menu.php:5
|
250 |
+
msgid "Support Forum"
|
251 |
msgstr ""
|
252 |
|
253 |
+
#: views/partials/_menu.php:6
|
254 |
+
msgid "Docs"
|
255 |
msgstr ""
|
256 |
|
257 |
+
#: views/partials/_menu.php:7
|
258 |
+
msgid "Terms Of Service"
|
259 |
msgstr ""
|
260 |
|
261 |
+
#: views/partials/_menu.php:8
|
262 |
+
msgid "Privacy"
|
263 |
msgstr ""
|
264 |
|
265 |
+
#: views/partials/_sidebar.php:3
|
266 |
+
msgid "Read Our Tutorials"
|
|
|
|
|
267 |
msgstr ""
|
268 |
|
269 |
+
#: views/partials/_sidebar.php:26
|
270 |
+
msgid "What Does This Disable Comments Plugin Do"
|
271 |
msgstr ""
|
272 |
|
273 |
+
#: views/partials/_sidebar.php:49
|
274 |
+
msgid "How To Use Disable Comments Plugin With WP-CLI"
|
|
|
|
|
275 |
msgstr ""
|
276 |
|
277 |
+
#: views/partials/_sidebar.php:72
|
278 |
+
msgid "How to Disable Comments on Specific Types Of Posts"
|
279 |
msgstr ""
|
280 |
|
281 |
+
#: views/partials/_sidebar.php:95
|
282 |
+
msgid "Disable Comments For Some Particular Post"
|
283 |
msgstr ""
|
284 |
|
285 |
+
#: views/partials/_sidebar.php:118
|
286 |
+
msgid "Disable Comment For WordPress Media Files"
|
287 |
msgstr ""
|
288 |
|
289 |
+
#: views/partials/_sidebar.php:128
|
290 |
+
msgid "Disable Comments For WordPress Pages"
|
|
|
|
|
291 |
msgstr ""
|
292 |
|
293 |
+
#: views/settings.php:6
|
294 |
+
msgid "Version"
|
295 |
msgstr ""
|
296 |
|
297 |
+
#: views/setup-settings.php:17
|
298 |
+
msgid "GETTING STARTED"
|
299 |
msgstr ""
|
300 |
|
301 |
+
#: views/setup-settings.php:20
|
302 |
+
msgid "Disable comments"
|
|
|
303 |
msgstr ""
|
304 |
|
305 |
+
#: views/setup-settings.php:23
|
306 |
+
msgid "FINALIZE"
|
307 |
+
msgstr ""
|
308 |
+
|
309 |
+
#: views/setup-settings.php:30
|
310 |
+
msgid "Getting Started"
|
311 |
+
msgstr ""
|
312 |
+
|
313 |
+
#: views/setup-settings.php:31
|
314 |
+
msgid "Easily get started with this easy setup wizard and complete setting up your Knowledge Base."
|
315 |
+
msgstr ""
|
316 |
+
|
317 |
+
#: views/setup-settings.php:39
|
318 |
+
msgid "Want to help make Disable Comments even better?"
|
319 |
+
msgstr ""
|
320 |
+
|
321 |
+
#: views/setup-settings.php:40
|
322 |
+
msgid "What we collect."
|
323 |
+
msgstr ""
|
324 |
+
|
325 |
+
#: views/setup-settings.php:41
|
326 |
+
msgid "We collect non-sensitive diagnostic data and plugin usage information. Your site URL, WordPress & PHP version, plugins, themes and email address to send you the discount coupon. This data lets us make sure this plugin always stays compatible with the most popular plugins and themes. No spam, I promise."
|
327 |
+
msgstr ""
|
328 |
+
|
329 |
+
#: views/setup-settings.php:50
|
330 |
+
msgid "Great Job!"
|
331 |
+
msgstr ""
|
332 |
+
|
333 |
+
#: views/setup-settings.php:51
|
334 |
+
msgid "Your documentation page is ready! Make sure to add more articles and assign them to proper categories and you are good to go."
|
335 |
+
msgstr ""
|
336 |
+
|
337 |
+
#: views/setup-settings.php:57
|
338 |
+
msgid "VISIT OUR DOCUMENTATION PAGE"
|
339 |
+
msgstr ""
|
340 |
+
|
341 |
+
#: views/setup-settings.php:61
|
342 |
+
msgid "Previous"
|
343 |
+
msgstr ""
|
344 |
+
|
345 |
+
#: views/setup-settings.php:62
|
346 |
+
msgid "Next"
|
347 |
+
msgstr ""
|
348 |
+
|
349 |
+
#: views/setup-settings.php:63
|
350 |
+
msgid "Skip"
|
351 |
+
msgstr ""
|
352 |
+
|
353 |
+
#: views/setup-settings.php:68
|
354 |
+
msgid "Return to Dashboard"
|
355 |
+
msgstr ""
|
readme.txt
CHANGED
@@ -1,11 +1,11 @@
|
|
1 |
-
=== Disable Comments ===
|
2 |
-
Contributors: Asif2BD, priyomukul, wpdevteam, re_enter_rupok, solarissmoke, garrett-eclipse
|
3 |
Donate link: https://wpdeveloper.net/
|
4 |
-
Tags: comments, disable, disable comments,
|
5 |
Requires at least: 5.0
|
6 |
Tested up to: 5.5
|
7 |
Requires PHP: 5.4
|
8 |
-
Stable tag:
|
9 |
License: GPL-3.0-or-later
|
10 |
License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
11 |
|
@@ -13,37 +13,66 @@ Allows administrators to globally disable comments on their site. Comments can b
|
|
13 |
|
14 |
== Description ==
|
15 |
|
16 |
-
|
17 |
|
18 |
-
|
19 |
|
20 |
-
|
21 |
|
22 |
-
|
|
|
23 |
|
24 |
-
|
25 |
-
|
26 |
-
A [must-use version](https://github.com/WPDevelopers/disable-comments-mu) of the plugin is also available.
|
27 |
|
|
|
|
|
28 |
|
29 |
-
### Details
|
30 |
|
31 |
-
|
32 |
|
33 |
-
* All
|
34 |
-
* All comment-related sections (
|
35 |
* All comment-related widgets are disabled (so your theme cannot use them);
|
36 |
-
* The
|
37 |
* All comment RSS/Atom feeds are disabled (and requests for these will be redirected to the parent post);
|
38 |
* The X-Pingback HTTP header is removed from all pages;
|
39 |
* Outgoing pingbacks are disabled.
|
40 |
* **[New]** Delete comments by type.
|
41 |
|
42 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
|
44 |
-
|
45 |
|
46 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
|
48 |
* Define `DISABLE_COMMENTS_REMOVE_COMMENTS_TEMPLATE` and set it to `false` to prevent the plugin from replacing the theme's comment template with an empty one.
|
49 |
|
@@ -52,25 +81,25 @@ Some of the plugin's behaviour can be modified by site administrators and plugin
|
|
52 |
These definitions can be made either in your main `wp-config.php` or in your theme's `functions.php` file.
|
53 |
|
54 |
|
55 |
-
|
56 |
|
57 |
|
58 |
-
### 💙 LOVED
|
59 |
|
60 |
- Join our [Facebook Group](https://www.facebook.com/groups/wpdeveloper.net/)
|
61 |
|
62 |
- If you love Disable Comments, [rate us on WordPress](https://wordpress.org/support/plugin/disable-comments/reviews/?filter=5)
|
63 |
|
64 |
|
65 |
-
🔥 GET FREEBIES FOR YOUR WORDPRESS SITE
|
66 |
|
67 |
Consider checking out our other WordPress solutions & boost your WordPress website:
|
68 |
|
69 |
🔝 [Essential Addons For Elementor](https://wordpress.org/plugins/essential-addons-for-elementor-lite/): Most popular Elementor addons with 70+ widgets & ready blocks
|
70 |
|
71 |
-
🔔[NotificationX](https://notificationx.com/) – Best Social Proof & FOMO Marketing Solution to increase conversion rates.
|
72 |
|
73 |
-
📄 [EmbedPress](https://wordpress.org/plugins/embedpress/): EmbedPress lets you embed videos, images, posts, audio, maps and upload PDF, DOC, PPT & all other types of content into your WordPress site with one-click and showcase it beautifully for the visitors.
|
74 |
|
75 |
☁ [Templately](https://wordpress.org/plugins/templately/): Free templates library for Elementor & Gutenberg along with the cloud collaboration for WordPress.
|
76 |
|
@@ -91,7 +120,7 @@ Visit [WPDeveloper](https://wpdeveloper.net/) to learn more about how to do bett
|
|
91 |
|
92 |
= Modern Way: =
|
93 |
1. Go to the WordPress Dashboard "Add New Plugin" section.
|
94 |
-
2. Search For "Disable Comments".
|
95 |
3. Install, then Activate it.
|
96 |
4. The plugin settings can be accessed via the 'Settings' menu in the administration area (either your site administration for single-site installs, or your network administration for network installs).
|
97 |
|
@@ -118,8 +147,6 @@ If you still see the message, then it means your theme is overriding this behavi
|
|
118 |
|
119 |
= I only want to disable comments on certain posts, not globally. What do I do? =
|
120 |
|
121 |
-
Don't install this plugin!
|
122 |
-
|
123 |
Go to the edit page for the post you want to disable comments on. Scroll down to the "Discussion" box, where you will find the comment options for that post. If you don't see a "Discussion" box, then click on "Screen Options" at the top of your screen, and make sure the "Discussion" checkbox is checked.
|
124 |
|
125 |
You can also bulk-edit the comment status of multiple posts from the [posts screen](https://codex.wordpress.org/Posts_Screen).
|
@@ -136,13 +163,19 @@ Go to the tools page for the Disable Comments plugin and utlize the Delete Comme
|
|
136 |
2. Delete Comments under Tools menu.
|
137 |
|
138 |
|
139 |
-
|
140 |
== Changelog ==
|
141 |
|
142 |
The format is based on [Keep a Changelog](http://keepachangelog.com/)
|
143 |
and this project adheres to [Semantic Versioning](http://semver.org/).
|
144 |
This will be maiintained from August 19, 2020 - @asif2bd
|
145 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
= [1.11.0] - 2020-08-22 =
|
147 |
* Introducing Delete Comment by Type - Contribution by garretthyder
|
148 |
* PHP 7.4 Tested
|
1 |
+
=== Disable Comments - Remove Comments & Protect From Spam ===
|
2 |
+
Contributors: Asif2BD, priyomukul, wpdevteam, re_enter_rupok, tusharimran, alimuzzamanalim, solarissmoke, garrett-eclipse
|
3 |
Donate link: https://wpdeveloper.net/
|
4 |
+
Tags: comments, delete comments, disable, disable comments, stop spam, remove comments, anti spam, disable xml-rpc, hide comment, XML-RPC, REST-API, WP CLI
|
5 |
Requires at least: 5.0
|
6 |
Tested up to: 5.5
|
7 |
Requires PHP: 5.4
|
8 |
+
Stable tag: 2.0.0
|
9 |
License: GPL-3.0-or-later
|
10 |
License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
11 |
|
13 |
|
14 |
== Description ==
|
15 |
|
16 |
+
Instantly allow or disallow comments from any post type in WordPress (Pages, Posts or Media) to stop the spammers and gain complete control over your full website.
|
17 |
|
18 |
+
[More About Plugin](https://wpdeveloper.net/plugins/disable-comments/) ◼️ [Documentation](https://wpdeveloper.net/docs-category/disable-comments/) ◼️ [Support Forum](https://wordpress.org/support/plugin/disable-comments/)
|
19 |
|
20 |
+
https://www.youtube.com/watch?v=J9AteKzQpPs
|
21 |
|
22 |
+
## Take Global Control Over Your WordPress Site
|
23 |
+
Override all comments-related settings throughout your website & manage your comments just the way you want.
|
24 |
|
25 |
+
## Disable Comments On Posts, Pages & Media
|
26 |
+
Choose which posts, pages or media should allow comments from site visitors & configure Disable Comments accordingly
|
|
|
27 |
|
28 |
+
## Disallow Comments On Multi-Site Network
|
29 |
+
Have multiple websites? Get rid of irrelevant comments on the entire network using Disable Comments Plugin
|
30 |
|
|
|
31 |
|
32 |
+
## KEY FEATURES OF DISABLE COMMENTS
|
33 |
|
34 |
+
* All “Comments” links are hidden from the Admin Menu and Admin Bar;
|
35 |
+
* All comment-related sections (“Recent Comments”, “Discussion” etc.) are hidden from the WordPress Dashboard;
|
36 |
* All comment-related widgets are disabled (so your theme cannot use them);
|
37 |
+
* The “Discussion” settings page is hidden;
|
38 |
* All comment RSS/Atom feeds are disabled (and requests for these will be redirected to the parent post);
|
39 |
* The X-Pingback HTTP header is removed from all pages;
|
40 |
* Outgoing pingbacks are disabled.
|
41 |
* **[New]** Delete comments by type.
|
42 |
|
43 |
+
Please delete any existing comments on your site **before applying this setting**, otherwise (depending on your theme) those comments may still be displayed to visitors. You can use the **Delete Comments tool** to delete any existing comments on your site.
|
44 |
+
|
45 |
+
## 🌟 WHAT’S NEW WITH DISABLE COMMENTS 2.0
|
46 |
+
|
47 |
+
**AMAZING USER FRIENDLY INTERFACE**
|
48 |
+
Easily configure your comment-related settings with an amazing and attractive app-like user interface.
|
49 |
+
|
50 |
+
**WP-CLI COMMANDS TO DISABLE COMMENTS**
|
51 |
+
Use WP-CLI control for comment-related settings to disable comments on posts, pages, attachments or everywhere on your website.
|
52 |
+
|
53 |
+
**GET STARTED WITH QUICK SETUP WIZARD**
|
54 |
+
Use the quick setup wizard after activating the plugin to instantly configure comment-related settings for your WordPress website.
|
55 |
+
|
56 |
+
**DISABLE COMMENTS ON DOCS**
|
57 |
+
Instantly disable comments on your documentation pages or WordPress knowledge base with a single click.
|
58 |
+
|
59 |
+
**DELETE CERTAIN COMMENT TYPE(S)**
|
60 |
+
Permanently delete certain comment types from your WordPress website including WooCommerce product reviews as well as generic comments.
|
61 |
+
|
62 |
+
**DISABLE COMMENTS VIA XML-RPC And REST API**
|
63 |
+
Block any comments made on your WordPress website via XML-RPC specification and REST API.
|
64 |
|
65 |
+
**Important note**: Use this plugin if you don't want comments at all on your site (or on certain post types). Don't use it if you want to selectively disable comments on individual posts - WordPress lets you do that anyway. If you don't know how to disable comments on individual posts, there are instructions in **[the FAQ](https://wordpress.org/plugins/disable-comments/#faq).**
|
66 |
|
67 |
+
If you come across any bugs or have suggestions, please use the plugin support forum. I can't fix it if I don't know it's broken! Please check the **[FAQ](https://wordpress.org/plugins/disable-comments/#faq)** for common issues.
|
68 |
+
|
69 |
+
Want to contribute? Here's the **[GitHub development repository](https://github.com/WPDevelopers/disable-comments)**.
|
70 |
+
|
71 |
+
A [must-use version](https://github.com/WPDevelopers/disable-comments-mu) of the plugin is also available.
|
72 |
+
|
73 |
+
### Advanced Configuration
|
74 |
+
|
75 |
+
Some of the plugin’s behaviour can be modified by site administrators and plugin/theme developers through code:
|
76 |
|
77 |
* Define `DISABLE_COMMENTS_REMOVE_COMMENTS_TEMPLATE` and set it to `false` to prevent the plugin from replacing the theme's comment template with an empty one.
|
78 |
|
81 |
These definitions can be made either in your main `wp-config.php` or in your theme's `functions.php` file.
|
82 |
|
83 |
|
84 |
+
**THIS PLUGIN IS NOW MAINTAINED BY THE TEAM** [WPDeveloper](https://wpdeveloper.net/).
|
85 |
|
86 |
|
87 |
+
### 💙 LOVED DISABLE COMMENTS?
|
88 |
|
89 |
- Join our [Facebook Group](https://www.facebook.com/groups/wpdeveloper.net/)
|
90 |
|
91 |
- If you love Disable Comments, [rate us on WordPress](https://wordpress.org/support/plugin/disable-comments/reviews/?filter=5)
|
92 |
|
93 |
|
94 |
+
### 🔥 GET FREEBIES FOR YOUR WORDPRESS SITE
|
95 |
|
96 |
Consider checking out our other WordPress solutions & boost your WordPress website:
|
97 |
|
98 |
🔝 [Essential Addons For Elementor](https://wordpress.org/plugins/essential-addons-for-elementor-lite/): Most popular Elementor addons with 70+ widgets & ready blocks
|
99 |
|
100 |
+
🔔 [NotificationX](https://notificationx.com/) – Best Social Proof & FOMO Marketing Solution to increase conversion rates.
|
101 |
|
102 |
+
📄 [EmbedPress](https://wordpress.org/plugins/embedpress/): EmbedPress lets you embed videos, images, posts, audio, maps and upload PDF, DOC, PPT & all other types of content into your WordPress site with one-click and showcase it beautifully for the visitors.
|
103 |
|
104 |
☁ [Templately](https://wordpress.org/plugins/templately/): Free templates library for Elementor & Gutenberg along with the cloud collaboration for WordPress.
|
105 |
|
120 |
|
121 |
= Modern Way: =
|
122 |
1. Go to the WordPress Dashboard "Add New Plugin" section.
|
123 |
+
2. Search For "Disable Comments".
|
124 |
3. Install, then Activate it.
|
125 |
4. The plugin settings can be accessed via the 'Settings' menu in the administration area (either your site administration for single-site installs, or your network administration for network installs).
|
126 |
|
147 |
|
148 |
= I only want to disable comments on certain posts, not globally. What do I do? =
|
149 |
|
|
|
|
|
150 |
Go to the edit page for the post you want to disable comments on. Scroll down to the "Discussion" box, where you will find the comment options for that post. If you don't see a "Discussion" box, then click on "Screen Options" at the top of your screen, and make sure the "Discussion" checkbox is checked.
|
151 |
|
152 |
You can also bulk-edit the comment status of multiple posts from the [posts screen](https://codex.wordpress.org/Posts_Screen).
|
163 |
2. Delete Comments under Tools menu.
|
164 |
|
165 |
|
|
|
166 |
== Changelog ==
|
167 |
|
168 |
The format is based on [Keep a Changelog](http://keepachangelog.com/)
|
169 |
and this project adheres to [Semantic Versioning](http://semver.org/).
|
170 |
This will be maiintained from August 19, 2020 - @asif2bd
|
171 |
|
172 |
+
= [2.0.0] - 2020-11-28 =
|
173 |
+
* Improved UI for Settings page
|
174 |
+
* New feature: Manage Disable Comments settings with WP-CLI
|
175 |
+
* New feature: Quick Setup Wizard
|
176 |
+
* New feature: Disable Comments via REST-API
|
177 |
+
* New feature: Disable Comments via XML-RPC
|
178 |
+
|
179 |
= [1.11.0] - 2020-08-22 =
|
180 |
* Introducing Delete Comment by Type - Contribution by garretthyder
|
181 |
* PHP 7.4 Tested
|
src/disable-comments.js
DELETED
@@ -1,5 +0,0 @@
|
|
1 |
-
wp.domReady(() => {
|
2 |
-
if(wp.blocks) {
|
3 |
-
wp.blocks.unregisterBlockType('core/latest-comments');
|
4 |
-
}
|
5 |
-
});
|
|
|
|
|
|
|
|
|
|
includes/comments-template.php → views/comments.php
RENAMED
File without changes
|
views/partials/_delete.php
ADDED
@@ -0,0 +1,194 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<form id="deleteCommentSettings" action="#">
|
2 |
+
<?php
|
3 |
+
if ($this->get_all_comments_number() > 0) :
|
4 |
+
?>
|
5 |
+
<div class="disable__comment__option mb50">
|
6 |
+
<p class="subtitle"><span class="danger"><?php _e('Note:', 'disable-comments'); ?></span> <?php _e('These settings will permanently delete comments for your entire website, or for specific posts and comment types.', 'disable-comments'); ?></p>
|
7 |
+
<div class="disable_option dc-text__block mb30 mt30">
|
8 |
+
<input type="radio" id="delete_everywhere" name="delete_mode" value="<?php echo esc_attr('delete_everywhere'); ?>" <?php checked($this->options['remove_everywhere']); ?> />
|
9 |
+
<label for="delete_everywhere"><?php _e('Everywhere:', 'disable-comments'); ?> <span><?php _e('Permanently delete all comments on your WordPress website', 'disable-comments'); ?></span></label>
|
10 |
+
<p class="disable__option__description"><span class="danger"><?php _e('Warnings:', 'disable-comments'); ?></span> <?php _e('This will permanently delete comments everywhere on your website.', 'disable-comments'); ?></p>
|
11 |
+
</div>
|
12 |
+
<div class="disable_option dc-text__block mb30">
|
13 |
+
<input type="radio" id="selected_delete_types" name="delete_mode" value="<?php echo esc_attr('selected_delete_types'); ?>" <?php checked(!$this->options['remove_everywhere']); ?> />
|
14 |
+
<label for="selected_delete_types"><?php _e('On Certain Post Types:', 'disable-comments'); ?></label>
|
15 |
+
<div class="delete__checklist">
|
16 |
+
<?php
|
17 |
+
$types = $this->get_all_post_types();
|
18 |
+
foreach ($types as $key => $value) {
|
19 |
+
echo '<div class="delete__checklist__item">
|
20 |
+
<input type="checkbox" id="delete__checklist__item-' . $key . '" name="delete_types[]" value="' . esc_attr($key) . '" ' . checked(in_array($key, $this->options['disabled_post_types']), true, false) . '>
|
21 |
+
<label for="delete__checklist__item-' . $key . '">' . $value->labels->name . '</label>
|
22 |
+
</div>';
|
23 |
+
}
|
24 |
+
?>
|
25 |
+
<?php if ($this->networkactive) :
|
26 |
+
$extradeletetypes = implode(', ', (array) $this->options['extra_post_types']);
|
27 |
+
?>
|
28 |
+
<p class="indent" id="extradeletetypes">
|
29 |
+
<?php _e('Only the built-in post types appear above. If you want to disable comments on other custom post types on the entire network, you can supply a comma-separated list of post types below (use the slug that identifies the post type).', 'disable-comments'); ?>
|
30 |
+
<br /><label><?php _e('Custom post types:', 'disable-comments'); ?> <input type="text" name="delete_extra_post_types" size="30" value="<?php echo esc_attr($extradeletetypes); ?>" /></label></p>
|
31 |
+
<?php endif; ?>
|
32 |
+
</div>
|
33 |
+
<p class="disable__option__description"><span class="danger"><?php _e('Warnings:', 'disable-comments') ?></span> <?php _e('This will remove existing comment entries for the selected post type(s) in the database and cannot be reverted without a database backups.', 'disable-comments'); ?></p>
|
34 |
+
</div>
|
35 |
+
<div class="disable_option dc-text__block">
|
36 |
+
<input type="radio" id="selected_delete_comment_types" name="delete_mode" value="<?php echo esc_attr('selected_delete_comment_types'); ?>" />
|
37 |
+
<label for="selected_delete_comment_types"><?php _e('Delete Certain Comment Types:', 'disable-comments'); ?></label>
|
38 |
+
<ul class="delete__feedback" id="listofdeletecommenttypes">
|
39 |
+
<?php
|
40 |
+
$commenttypes = $this->get_all_comment_types();
|
41 |
+
foreach ($commenttypes as $key => $value) {
|
42 |
+
echo "<li><label for='comment-type-$key'><input type='checkbox' name='delete_comment_types[]' value=" . esc_attr($key) . " id='comment-type-$key'> {$value}</label></li>";
|
43 |
+
}
|
44 |
+
?>
|
45 |
+
</ul>
|
46 |
+
<p class="disable__option__description"><span class="danger"><?php _e('Warnings:', 'disable-comments'); ?></span> <?php _e('Deleting comments by comment type will remove existing comment entries of the selected comment type(s) in the database and cannot be reverted without a database backup.', 'disable-comments'); ?></p>
|
47 |
+
</div>
|
48 |
+
<h4 class="total-comments"><?php _e('Total Comments:', 'disable-comments'); ?> <?php echo $this->get_all_comments_number(); ?></h4>
|
49 |
+
</div>
|
50 |
+
<!-- save -->
|
51 |
+
<button class="button button__delete"><?php _e('Delete Comments', 'disable-comments'); ?></button>
|
52 |
+
<?php
|
53 |
+
else :
|
54 |
+
?>
|
55 |
+
<div class="delete-comments-not-found">
|
56 |
+
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 1200 800" style="enable-background:new 0 0 1200 800;" xml:space="preserve">
|
57 |
+
<style type="text/css">
|
58 |
+
.st0 {
|
59 |
+
fill: #EEEEEE;
|
60 |
+
}
|
61 |
+
|
62 |
+
.st1 {
|
63 |
+
fill: #BDBDBD;
|
64 |
+
}
|
65 |
+
|
66 |
+
.st2 {
|
67 |
+
fill: url(#SVGID_1_);
|
68 |
+
}
|
69 |
+
|
70 |
+
.st3 {
|
71 |
+
fill: #F2DAD4;
|
72 |
+
}
|
73 |
+
|
74 |
+
.st4 {
|
75 |
+
fill: #192B59;
|
76 |
+
}
|
77 |
+
|
78 |
+
.st5 {
|
79 |
+
fill: url(#SVGID_2_);
|
80 |
+
}
|
81 |
+
|
82 |
+
.st6 {
|
83 |
+
fill: url(#SVGID_3_);
|
84 |
+
}
|
85 |
+
|
86 |
+
.st7 {
|
87 |
+
fill: #043146;
|
88 |
+
}
|
89 |
+
</style>
|
90 |
+
<g>
|
91 |
+
<g>
|
92 |
+
<g>
|
93 |
+
<path class="st0" d="M403.5,365.2c5.6,7.9,1,18.2-4.6,24c-6.9,7.1-13.8,6-17,12.3c-3.8,7.6,4.3,13.2,0.1,21.2
|
94 |
+
c-2.6,4.9-6.2,3.7-11.4,9.9c-6.3,7.6-0.1,9.7-4.6,15.2c-14.4,17.8-20.2,5.4-29,10.1c-11.4,6.1-19,11.2-24.6,10
|
95 |
+
c-21.9-4.8-15.2-19.2-25.8-24.7c-14.4-7.5-21.4-38.2-11.5-49c5.2-5.7,10.3-6.4,10.7-11.1c0.7-6.8-9.6-8.8-10.6-17
|
96 |
+
c-1.2-9.3,11.1-13.8,9.3-21.6c-1.8-7.6-14.4-7.4-15.2-12.8c-1.2-8.3,25.8-23.1,53.7-22.2c13.4,0.4,35.1,4.8,38.8,15.9
|
97 |
+
c2.1,6.4-3.4,10.6-0.3,18.9c2.2,6,7.2,9.4,13.7,13.8C381.4,362.3,393.6,351.2,403.5,365.2z" />
|
98 |
+
<path class="st1" d="M336.7,360.3c4.4-0.2,6.6,29.1,4.1,33c-2.6,3.8-7.3,6.7-7.7,10.9c-0.3,4.2,1.6,78.6,3.1,77.5
|
99 |
+
c1.6-1.1,14.4-20.6,11.9-25.1c-2.6-4.5-5.5-11.6-4.9-17.5c0.6-5.9,0.6-14.4,2.3-14.2c1.7,0.2,0.3,14.8,1.4,17.6
|
100 |
+
c1.2,2.8,1.4,5,3,5.1c1.7,0,1.7-15.4,4.2-15.1c2.5,0.3,0.8,23-0.1,27.2c-0.9,4.2-3.8,18.7-6.6,24c-2.7,5.3-11.1,10.9-11.3,12.8
|
101 |
+
c-0.2,1.8,1.1,45.1,1.1,45.1l-21.9,0.4c0,0,8.1-85.4,6.3-88.3c-1.8-2.8-13.2-25.9-15.7-28.3c-2.4-2.4-3.9-16.7-2.6-16.9
|
102 |
+
c1.3-0.2,2,13.8,4.7,14c2.7,0.2,4.1-27.1,6.1-26.9c1.9,0.2-1.9,28.4-0.8,30.1c1,1.7,7.1,12.2,9.2,11.9c2-0.2-1.1-76.8,0.6-77.7
|
103 |
+
c1.7-0.9,3-0.1,4.1,7.9c1.1,8,3.1,25.5,4.3,25.5c1.2,0,4.2-2.7,4.3-4.4C335.9,387.2,334.7,360.3,336.7,360.3z" />
|
104 |
+
</g>
|
105 |
+
<g>
|
106 |
+
<path class="st0" d="M810.6,447.2c-3.2,4.5-0.6,10.3,2.6,13.6c3.9,4,7.8,3.4,9.6,7c2.2,4.3-2.4,7.5,0,12c1.5,2.8,3.5,2.1,6.5,5.6
|
107 |
+
c3.6,4.3,0.1,5.5,2.6,8.6c8.2,10.1,11.4,3.1,16.4,5.7c6.4,3.4,10.8,6.4,13.9,5.7c12.4-2.7,8.6-10.9,14.6-14
|
108 |
+
c8.1-4.2,12.1-21.6,6.5-27.7c-2.9-3.2-5.8-3.6-6.1-6.3c-0.4-3.9,5.4-5,6-9.6c0.7-5.3-6.3-7.8-5.3-12.2c1-4.3,8.2-4.2,8.6-7.3
|
109 |
+
c0.7-4.7-14.6-13.1-30.4-12.6c-7.6,0.2-19.9,2.7-21.9,9c-1.2,3.6,1.9,6,0.2,10.7c-1.3,3.4-4.1,5.3-7.8,7.8
|
110 |
+
C823.1,445.6,816.2,439.3,810.6,447.2z" />
|
111 |
+
<path class="st1" d="M848.5,444.4c-2.5-0.1-3.8,16.5-2.3,18.7c1.4,2.2,4.2,3.8,4.3,6.2c0.2,2.4-0.9,44.5-1.8,43.9
|
112 |
+
c-0.9-0.6-8.2-11.6-6.7-14.2c1.5-2.6,3.1-6.5,2.8-9.9c-0.3-3.4-0.3-8.1-1.3-8c-0.9,0.1-0.2,8.4-0.8,10c-0.7,1.6-0.8,2.8-1.7,2.9
|
113 |
+
c-0.9,0-1-8.7-2.4-8.5c-1.4,0.2-0.5,13,0,15.4c0.5,2.4,2.2,10.6,3.7,13.6c1.6,3,6.3,6.2,6.4,7.2c0.1,1-0.6,25.6-0.6,25.6
|
114 |
+
l12.4,0.2c0,0-4.6-48.4-3.6-50c1-1.6,7.5-14.7,8.9-16c1.4-1.3,2.2-9.5,1.5-9.6c-0.7-0.1-1.1,7.8-2.7,8
|
115 |
+
c-1.5,0.1-2.3-15.4-3.4-15.2c-1.1,0.1,1.1,16.1,0.5,17.1c-0.6,1-4,6.9-5.2,6.8c-1.1-0.1,0.6-43.5-0.4-44c-1-0.5-1.7-0.1-2.3,4.5
|
116 |
+
c-0.6,4.5-1.8,14.5-2.5,14.4c-0.7,0-2.4-1.5-2.4-2.5C848.9,459.6,849.6,444.5,848.5,444.4z" />
|
117 |
+
</g>
|
118 |
+
|
119 |
+
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="627.1564" y1="438.5578" x2="627.1564" y2="669.9148" gradientTransform="matrix(-1 0 0 1 1200 0)">
|
120 |
+
<stop offset="0" style="stop-color:#E5E5E5" />
|
121 |
+
<stop offset="0.4764" style="stop-color:#F4F4F4" />
|
122 |
+
<stop offset="1" style="stop-color:#FFFFFF" />
|
123 |
+
</linearGradient>
|
124 |
+
<ellipse class="st2" cx="572.8" cy="652.7" rx="416.2" ry="147.3" />
|
125 |
+
</g>
|
126 |
+
<g>
|
127 |
+
<path class="st3" d="M586,492.8c-1,1.9-2,4.2-2,5.7c0,1.5-0.2,7.1,0,7.8c0.2,0.7,6.7,1.8,9.4,1.6c2.7-0.2,5.1-2.8,5.3-3.4
|
128 |
+
c0.2-0.6,0.5-9,0-10C598.2,493.5,586,492.8,586,492.8z" />
|
129 |
+
<path class="st3" d="M553,495.8c-0.4,1.6-0.5,5.6-0.3,6.6c0.3,1,1.4,2.8,1.4,4.6c0,1.8,13,1.7,13.5,0.6c0.5-1.1,0.5-4.1,0.5-5.3
|
130 |
+
c-0.1-1.2,1.1-3.4,0.8-4.5c-0.4-1.2-1.8-3.4-3.2-3.7C564.3,493.7,553,495.8,553,495.8z" />
|
131 |
+
<path class="st4" d="M531.3,306.1c-2.6,9.7-5.1,40.1-3.3,52.4c1.8,12.3,6.5,46.1,6.5,61c0,14.9,5.2,39.3,7.6,48.2
|
132 |
+
c2.4,8.9,6,28.5,7.9,28.9c1.9,0.4,4.9,2.1,10.5,1.1c5.6-1.1,7.2-2.5,7.3-4.7c0.1-2.3-3.9-27.8-4.6-33.9
|
133 |
+
c-0.6-6.1-4.7-31.8-4.9-35.2c-0.2-3.4,3.3-15.5,3.7-22.6c0.4-7.1,2.2-32.5,3.2-35.9c1.1-3.4,3.6-19.8,4.7-19.9
|
134 |
+
c1.1-0.1,7.6,19.8,8.6,26.2c1,6.4,5.9,48,7.1,50.5c1.2,2.5-0.4,17.1-1.2,22.5c-0.8,5.4-1,48-0.1,49.1c0.9,1.1,5.7,3.2,8.8,3.2
|
135 |
+
c3.2,0,8.3-1.3,9-2.9c0.8-1.6-0.3-7.5,0.6-10.4c0.8-2.9,8.7-33,9.1-40.2c0.4-7.3-1.7-35.1-2-42c-0.3-6.9,2.9-27.6,3.6-33.2
|
136 |
+
c0.7-5.5,3.2-28.5,3.2-33.9c0-5.4-1-21.9-4.3-25.7C609.3,304.9,531.3,306.1,531.3,306.1z" />
|
137 |
+
<path class="st3" d="M659.1,216.4c1.3-0.9,3.5-2.6,3.8-3.7c0.4-1.2,1.7-4.3,3.2-5c1.5-0.7,4.6-1.7,6-2.2c1.4-0.5,5-2.6,5.7-2.9
|
138 |
+
c0.7-0.3,2.8-0.7,3.3,0.4c0.6,1.1-0.2,3.4-1.7,4c-1.5,0.6-5,1.7-4.7,2.5c0.3,0.8,3.7,1.6,6.4,0.3c2.7-1.3,7.3-2.5,8.3-3.1
|
139 |
+
c1.1-0.6,9-3.8,9.8-3.8c0.8,0,1.6,0.4,2,1.1c0.4,0.8,2.7-1.1,3.5,0.2c0.7,1.3-1,2-1.1,2.3c-0.1,0.4,1,0.8,1,1.7
|
140 |
+
c0,0.9-1.4,1.5-3.6,2.5c-2.2,1-12.2,7.3-13.8,8.2c-1.6,0.8-4.9,2.6-8.9,2.9c-4.1,0.4-9,0.6-10.1,2s-3.9,5.4-4.6,5.6
|
141 |
+
c-0.7,0.2-5.3,1-6.4-1.8C656.1,224.9,659.1,216.4,659.1,216.4z" />
|
142 |
+
<path class="st3" d="M486.6,209.4c-1.3-0.9-3.5-2.6-3.8-3.7c-0.4-1.2-1.7-4.3-3.2-5c-1.5-0.7-4.6-1.7-6-2.2
|
143 |
+
c-1.4-0.5-5-2.6-5.7-2.9c-0.7-0.3-2.8-0.7-3.3,0.4c-0.6,1.1,0.2,3.4,1.7,4c1.5,0.6,5,1.7,4.7,2.5c-0.3,0.8-3.7,1.6-6.4,0.3
|
144 |
+
c-2.7-1.3-7.3-2.5-8.3-3.1c-1.1-0.6-9-3.8-9.8-3.8c-0.8,0-1.6,0.4-2,1.1c-0.4,0.8-2.7-1.1-3.5,0.2c-0.7,1.3,1,2,1.1,2.3
|
145 |
+
c0.1,0.4-1,0.8-1,1.7c0,0.9,1.4,1.5,3.6,2.5c2.2,1,12.2,7.3,13.8,8.2c1.6,0.8,4.9,2.6,8.9,2.9c4.1,0.4,9,0.6,10.1,2
|
146 |
+
c1.2,1.5,2,3.3,2.7,3.5c0.7,0.2,5.3,1,6.4-1.8C487.7,215.8,486.6,209.4,486.6,209.4z" />
|
147 |
+
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="542.5208" y1="121.3129" x2="589.0369" y2="281.8409">
|
148 |
+
<stop offset="0" style="stop-color:#EC0314" />
|
149 |
+
<stop offset="0.9944" style="stop-color:#AF1431" />
|
150 |
+
</linearGradient>
|
151 |
+
<path class="st5" d="M560.3,166.8c-5.5,0.7-27.2,3.3-31,11.3c-3.8,7.9-7.2,26.9-9,32.3c-1.8,5.3-5.3,17.9-6.8,17.9
|
152 |
+
s-26.5-19.3-27-19.3c-0.5,0,0.6,4.6-2.3,7.7c-2.9,3-5.1,2.2-4.5,3.7c0.5,1.5,14.1,17.8,17.6,22.5c3.6,4.7,18.8,17.2,22.6,17
|
153 |
+
c3.8-0.2,16.8-19.2,17.7-19.2c1,0-1.2,30.4-2.9,36.8c-1.7,6.4-9,34.5-7.1,37c2,2.5,23.3,9.7,39.8,10.2c16.5,0.5,50.1-5.6,50.7-9.9
|
154 |
+
c0.6-4.3-6.9-27.9-6.9-37.4c0-9.5-2.1-43.3-0.7-43.5c1.4-0.2,10.6,25.8,19.7,25.2c9-0.5,27.7-19.4,29.7-23c2-3.6,6-7.4,4.9-8
|
155 |
+
c-1.1-0.5-4.9-4-4.9-6.7s0.3-6.1-0.9-5.5c-1.2,0.5-8.8,7.3-12,9.2c-3.2,1.8-8.3,4.7-8.9,3.6c-0.6-1.1-10.4-19.5-11.2-23.2
|
156 |
+
c-0.7-3.7-5.6-28.7-9.8-31c-4.1-2.2-23.5-9.1-26.8-9.2C587.1,165.3,560.3,166.8,560.3,166.8z" />
|
157 |
+
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="569.2911" y1="149.3214" x2="576.8388" y2="175.3686">
|
158 |
+
<stop offset="0" style="stop-color:#F2BFAD" />
|
159 |
+
<stop offset="1" style="stop-color:#F2DAD4" />
|
160 |
+
</linearGradient>
|
161 |
+
<path class="st6" d="M560,160c0,2.6,1.4,6.1,0.3,6.9c-1,0.7,4.9,16.7,10.6,17.1c5.7,0.3,15.9-15.6,16.1-17.3
|
162 |
+
c0.2-1.8-0.5-8.1-0.7-8.4C586.2,158,560,160,560,160z" />
|
163 |
+
<path class="st4" d="M552.2,138.6c-1-6.9-3.2-13.4-1.7-20.1c1.5-6.7,6.3-14.9,16.3-16c10-1,14.7,2.8,19.7,9.1
|
164 |
+
c4.9,6.3,4.3,26.4,3,27.7c-1.3,1.3-9.7,5.3-19.2,5.4C560.6,144.9,552.2,138.6,552.2,138.6z" />
|
165 |
+
<path class="st3" d="M556.1,148.9c0,0,2,10.9,3.4,12c1.4,1.2,8.8,7.1,13.6,6.9c4.7-0.2,14.4-7,15-10.9c0.6-3.9,0-11.4,0.4-11.2
|
166 |
+
c0.4,0.1,3,0.4,3.5-3.6c0.5-4.1,0.4-10.4-1.2-10.5c-1.6-0.1-2.4,5.9-3.2,5.9c-0.9,0-1-8.6-2.5-10.5c-1.5-1.9-11.7-3.9-13.2-3.9
|
167 |
+
c-1.4,0-8,8.6-16.5,9.9c0,0,1.7,6.8,0.5,6.9c-1.3,0.1-3-5.4-4.2-5.4s-1.4,5.6-0.9,9.3c0.5,3.7,2.6,5.8,3.3,5.8
|
168 |
+
C554.8,149.5,555.3,148.4,556.1,148.9z" />
|
169 |
+
<path class="st7" d="M599.5,507c1.2,1.7,1,6.2,3.3,10.5c2.3,4.3,4.1,8,4.2,11c0.1,3.1-3.1,8-7.5,8.7c-4.4,0.7-9.4,1-11.7-0.2
|
170 |
+
c-2.2-1.2-4.9-3.2-4.9-6.5c0-3.3,0.5-9.6,0-10.7c-0.5-1.1-1-4.3-1-5.9c0-1.6-0.4-6.4,0.5-7.5c0.9-1.2,4.5-3.6,8.2-3.5
|
171 |
+
C594.2,502.9,598.5,505.5,599.5,507z" />
|
172 |
+
<path class="st7" d="M552.7,507c-1.2,1.7-1,6.2-3.3,10.5c-2.3,4.3-4.1,8-4.2,11c-0.1,3.1,3.1,8,7.5,8.7c4.4,0.7,9.4,1,11.7-0.2
|
173 |
+
c2.2-1.2,4.9-3.2,4.9-6.5c0-3.3-0.5-9.6,0-10.7c0.5-1.1,1-4.3,1-5.9c0-1.6,0.4-6.4-0.5-7.5c-0.9-1.2-4.5-3.6-8.2-3.5
|
174 |
+
C558,502.9,553.7,505.5,552.7,507z" />
|
175 |
+
</g>
|
176 |
+
<g>
|
177 |
+
<g>
|
178 |
+
<path class="st0" d="M468.6,207.2l-162.9-63.4c-5.3-2.1-7.9-8-5.9-13.3L348.2,6.2c2.1-5.3,8-7.9,13.3-5.9l162.9,63.4
|
179 |
+
c5.3,2.1,7.9,8,5.9,13.3l-48.4,124.3C479.8,206.6,473.9,209.2,468.6,207.2z" />
|
180 |
+
<path class="st1" d="M323.8,99.4L357,14.3c1.2-3,4.6-4.5,7.6-3.3L515,69.4c3,1.2,4.5,4.6,3.3,7.6l-33.1,85.2l-25.7-74.4
|
181 |
+
c-1.9-5.5-8.4-7.9-13.4-5l-53.5,31.3c-4.7,2.7-10.7,0.4-12.3-4.8L372.5,84c-1.9-6.1-9-8.8-14.4-5.5L323.8,99.4z" />
|
182 |
+
<path class="st0" d="M421.3,65.8c-3.4,8.6-13.1,12.9-21.7,9.5c-8.6-3.4-12.9-13.1-9.5-21.7c3.4-8.6,13.1-12.9,21.7-9.5
|
183 |
+
C420.4,47.5,424.7,57.2,421.3,65.8z" />
|
184 |
+
</g>
|
185 |
+
</g>
|
186 |
+
</g>
|
187 |
+
</svg>
|
188 |
+
|
189 |
+
<p class="error-message"><strong><?php _e('No comments are available for deletion.', 'disable-comments'); ?></strong></p>
|
190 |
+
</div>
|
191 |
+
<?php
|
192 |
+
endif;
|
193 |
+
?>
|
194 |
+
</form>
|
views/partials/_disable.php
ADDED
@@ -0,0 +1,63 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<form id="disableCommentSaveSettings" action="#">
|
2 |
+
<div class="disable__comment__option mb50">
|
3 |
+
<h3 class="title"><?php _e('Settings', 'disable-comments'); ?></h3>
|
4 |
+
<p class="subtitle"><?php _e('Configure the settings below to disable comments globally or on specific types of posts.', 'disable-comments'); ?></p>
|
5 |
+
<div class="disable_option dc-text__block mb30 mt30">
|
6 |
+
<input type="radio" id="remove_everywhere" name="mode" value="<?php echo esc_attr('remove_everywhere') ?>" <?php checked($this->options['remove_everywhere']); ?> />
|
7 |
+
<label for="remove_everywhere"><?php _e('Everywhere:', 'disable-comments'); ?> <span><?php _e('Disable comments globally on your entire website', 'disable-comments'); ?></span></label>
|
8 |
+
<p class="disable__option__description"><span class="danger"><?php _e('Warnings:', 'disable-comments'); ?></span> <?php _e('This will disable comments from every page and post on your website. Use this setting if you do not want to show comments anywhere.', 'disable-comments'); ?></p>
|
9 |
+
</div>
|
10 |
+
<div class="disable_option dc-text__block">
|
11 |
+
<input type="radio" id="selected_types" name="mode" value="<?php echo esc_attr('selected_types'); ?>" <?php checked(!$this->options['remove_everywhere']); ?> />
|
12 |
+
<label for="selected_types"><?php _e('On Specific Post Types:', 'disable-comments'); ?></label>
|
13 |
+
<div class="remove__checklist">
|
14 |
+
<?php
|
15 |
+
$types = $this->get_all_post_types();
|
16 |
+
foreach ($types as $key => $value) {
|
17 |
+
echo '<div class="remove__checklist__item">
|
18 |
+
<input type="checkbox" id="remove__checklist__item-' . $key . '" name="disabled_types[]" value="' . esc_attr($key) . '" ' . checked(in_array($key, $this->options['disabled_post_types']), true, false) . '>
|
19 |
+
<label for="remove__checklist__item-' . $key . '">' . $value->labels->name . '</label>
|
20 |
+
</div>';
|
21 |
+
}
|
22 |
+
?>
|
23 |
+
<?php if ($this->networkactive) :
|
24 |
+
$extradisabletypes = implode(', ', (array) $this->options['extra_post_types']);
|
25 |
+
?>
|
26 |
+
<p class="indent" id="extratypes"><?php _e('Only the built-in post types appear above. If you want to disable comments on other custom post types on the entire network, you can supply a comma-separated list of post types below (use the slug that identifies the post type).', 'disable-comments'); ?>
|
27 |
+
<br /><label><?php _e('Custom post types:', 'disable-comments'); ?> <input type="text" name="extra_post_types" size="30" value="<?php echo esc_attr($extradisabletypes); ?>" /></label></p>
|
28 |
+
<?php endif; ?>
|
29 |
+
</div>
|
30 |
+
<p class="subtitle"><span class="danger"><?php _e('Note:', 'disable-comments'); ?></span> <?php _e('Disabling comments will also disable trackbacks and pingbacks. All comment-related fields will also be hidden from the edit/quick-edit screens of the affected posts. These settings cannot be overridden for individual posts. Comments will be visible on all other post types.', 'disable-comments'); ?></p>
|
31 |
+
</div>
|
32 |
+
</div>
|
33 |
+
<div class="disable__comment__option mb50">
|
34 |
+
<h3 class="title"><?php _e('Disable Comments With API', 'disable-comments'); ?></h3>
|
35 |
+
<p class="subtitle"><?php _e('You can disable comments made on your website using WordPress specifications.', 'disable-comments'); ?></p>
|
36 |
+
<div class="disable_option dc-text__block mt30">
|
37 |
+
<div class="disable__switchs">
|
38 |
+
<div class="dissable__switch__item">
|
39 |
+
<input type="checkbox" id="switch-xml" name="remove_xmlrpc_comments" value="1" <?php checked((isset($this->options['remove_xmlrpc_comments']) ? $this->options['remove_xmlrpc_comments'] : 0)); ?>>
|
40 |
+
<label for="switch-xml">
|
41 |
+
<span class="switch">
|
42 |
+
<span class="switch__text on"><?php _e('On', 'disable-comments'); ?></span>
|
43 |
+
<span class="switch__text off"><?php _e('Off', 'disable-comments'); ?></span>
|
44 |
+
</span>
|
45 |
+
<?php _e('Disable Comments via XML-RPC', 'disable-comments'); ?>
|
46 |
+
</label>
|
47 |
+
</div>
|
48 |
+
<div class="dissable__switch__item">
|
49 |
+
<input type="checkbox" id="switch-api" name="remove_rest_API_comments" value="1" <?php checked((isset($this->options['remove_rest_API_comments']) ? $this->options['remove_rest_API_comments'] : 0)); ?>>
|
50 |
+
<label for="switch-api">
|
51 |
+
<span class="switch">
|
52 |
+
<span class="switch__text on"><?php _e('On', 'disable-comments'); ?></span>
|
53 |
+
<span class="switch__text off"><?php _e('Off', 'disable-comments'); ?></span>
|
54 |
+
</span><?php _e('Disable Comments via REST API', 'disable-comments'); ?>
|
55 |
+
</label>
|
56 |
+
</div>
|
57 |
+
</div>
|
58 |
+
<p class="disable__option__description"><?php _e('Turning on these settings will disable any comments made on your website via XML-RPC or REST API specifications.', 'disable-comments'); ?></p>
|
59 |
+
</div>
|
60 |
+
</div>
|
61 |
+
<!-- save -->
|
62 |
+
<button class="button button__success"><?php _e('Save Changes', 'disable-comments'); ?></button>
|
63 |
+
</form>
|
views/partials/_footer.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="footer pt70 pb110">
|
2 |
+
<div class="dc-row">
|
3 |
+
<div class="dc-col-lg-9">
|
4 |
+
<div class="footer__content">
|
5 |
+
<?php
|
6 |
+
include DC_PLUGIN_VIEWS_PATH . 'partials/_menu.php';
|
7 |
+
?>
|
8 |
+
</div>
|
9 |
+
</div>
|
10 |
+
</div>
|
11 |
+
</div>
|
views/partials/_menu.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="footer__nav">
|
2 |
+
<ul>
|
3 |
+
<li><a href="<?php echo esc_url('https://wpdeveloper.net/about/'); ?>" target="_blank" rel="nofollow"><?php _e('About Us', 'disable-comments'); ?></a></li>
|
4 |
+
<li><a href="<?php echo esc_url('https://wpdeveloper.net/plugins/'); ?>" target="_blank" rel="nofollow"><?php _e('All Plugins', 'disable-comments'); ?></a></li>
|
5 |
+
<li><a href="<?php echo esc_url('https://wpdeveloper.net/support/'); ?>" target="_blank" rel="nofollow"><?php _e('Support Forum', 'disable-comments'); ?></a></li>
|
6 |
+
<li><a href="<?php echo esc_url('https://wpdeveloper.net/docs/'); ?>" target="_blank" rel="nofollow"><?php _e('Docs', 'disable-comments'); ?></a></li>
|
7 |
+
<li><a href="<?php echo esc_url('https://wpdeveloper.net/terms-and-conditions/'); ?>" target="_blank" rel="nofollow"><?php _e('Terms Of Service', 'disable-comments'); ?></a></li>
|
8 |
+
<li><a href="<?php echo esc_url('https://wpdeveloper.net/privacy-policy/'); ?>" target="_blank" rel="nofollow"><?php _e('Privacy', 'disable-comments'); ?></a></li>
|
9 |
+
</ul>
|
10 |
+
</div>
|
views/partials/_sidebar.php
ADDED
@@ -0,0 +1,131 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="sidebar__widget__wrap">
|
2 |
+
<div class="dc-tutorials dc-text__block mt50 mb50">
|
3 |
+
<h3><?php _e('Read Our Tutorials', 'disable-comments'); ?></h3>
|
4 |
+
<div class="tutorial__list">
|
5 |
+
<div class="tutorial__item">
|
6 |
+
<div class="icon">
|
7 |
+
<svg version="1.1" id="Capa_11" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
|
8 |
+
<g>
|
9 |
+
<g>
|
10 |
+
<g>
|
11 |
+
<path class="st0" d="M352.5,220c0-11-9-20-20-20h-206c-11,0-20,9-20,20s9,20,20,20h206C343.5,240,352.5,231,352.5,220z" />
|
12 |
+
<path class="st0" d="M126.5,280c-11,0-20,9-20,20s9,20,20,20h125.1c11,0,20-9,20-20s-9-20-20-20H126.5z" />
|
13 |
+
<path class="st0" d="M173.5,472h-66.9c-22.1,0-40-17.9-40-40V80c0-22.1,17.9-40,40-40h245.9c22.1,0,40,17.9,40,40v123
|
14 |
+
c0,11,9,20,20,20s20-9,20-20V80c0-44.1-35.9-80-80-80H106.6c-44.1,0-80,35.9-80,80v352c0,44.1,35.9,80,80,80h66.9
|
15 |
+
c11,0,20-9,20-20S184.5,472,173.5,472z" />
|
16 |
+
<path class="st0" d="M467.9,289.6c-23.4-23.4-61.5-23.4-84.8,0L273.2,399.1c-2.3,2.3-4.1,5.2-5,8.3l-23.9,78.7
|
17 |
+
c-2.1,7-0.3,14.6,4.8,19.8c3.8,3.9,9,6,14.3,6c1.8,0,3.6-0.2,5.3-0.7l80.7-22.4c3.3-0.9,6.4-2.7,8.8-5.1l109.6-109.4
|
18 |
+
C491.3,351,491.3,313,467.9,289.6z M333.8,451.8L293.2,463l11.9-39.1l74.1-73.9l28.3,28.3L333.8,451.8z M439.6,346.1l-3.9,3.9
|
19 |
+
l-28.3-28.3l3.9-3.9c7.8-7.8,20.5-7.8,28.3,0S447.4,338.3,439.6,346.1z" />
|
20 |
+
<path class="st0" d="M332.5,120h-206c-11,0-20,9-20,20s9,20,20,20h206c11,0,20-9,20-20S343.5,120,332.5,120z" />
|
21 |
+
</g>
|
22 |
+
</g>
|
23 |
+
</g>
|
24 |
+
</svg>
|
25 |
+
</div>
|
26 |
+
<h4><a href="<?php echo esc_url('https://wpdeveloper.net/docs/disable-comments-plugin/'); ?>" target="_blank" rel="nofollow"><?php _e('What Does This Disable Comments Plugin Do', 'disable-comments'); ?></a></h4>
|
27 |
+
</div>
|
28 |
+
<div class="tutorial__item">
|
29 |
+
<div class="icon">
|
30 |
+
<svg version="1.1" id="Capa_2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
|
31 |
+
<g>
|
32 |
+
<g>
|
33 |
+
<g>
|
34 |
+
<path class="st0" d="M352.5,220c0-11-9-20-20-20h-206c-11,0-20,9-20,20s9,20,20,20h206C343.5,240,352.5,231,352.5,220z" />
|
35 |
+
<path class="st0" d="M126.5,280c-11,0-20,9-20,20s9,20,20,20h125.1c11,0,20-9,20-20s-9-20-20-20H126.5z" />
|
36 |
+
<path class="st0" d="M173.5,472h-66.9c-22.1,0-40-17.9-40-40V80c0-22.1,17.9-40,40-40h245.9c22.1,0,40,17.9,40,40v123
|
37 |
+
c0,11,9,20,20,20s20-9,20-20V80c0-44.1-35.9-80-80-80H106.6c-44.1,0-80,35.9-80,80v352c0,44.1,35.9,80,80,80h66.9
|
38 |
+
c11,0,20-9,20-20S184.5,472,173.5,472z" />
|
39 |
+
<path class="st0" d="M467.9,289.6c-23.4-23.4-61.5-23.4-84.8,0L273.2,399.1c-2.3,2.3-4.1,5.2-5,8.3l-23.9,78.7
|
40 |
+
c-2.1,7-0.3,14.6,4.8,19.8c3.8,3.9,9,6,14.3,6c1.8,0,3.6-0.2,5.3-0.7l80.7-22.4c3.3-0.9,6.4-2.7,8.8-5.1l109.6-109.4
|
41 |
+
C491.3,351,491.3,313,467.9,289.6z M333.8,451.8L293.2,463l11.9-39.1l74.1-73.9l28.3,28.3L333.8,451.8z M439.6,346.1l-3.9,3.9
|
42 |
+
l-28.3-28.3l3.9-3.9c7.8-7.8,20.5-7.8,28.3,0S447.4,338.3,439.6,346.1z" />
|
43 |
+
<path class="st0" d="M332.5,120h-206c-11,0-20,9-20,20s9,20,20,20h206c11,0,20-9,20-20S343.5,120,332.5,120z" />
|
44 |
+
</g>
|
45 |
+
</g>
|
46 |
+
</g>
|
47 |
+
</svg>
|
48 |
+
</div>
|
49 |
+
<h4><a href="<?php echo esc_url('https://wpdeveloper.net/docs/how-to-use-disable-comments-plugin-with-wp-cli-command-line/'); ?>" target="_blank" rel="nofollow"><?php _e('How To Use Disable Comments Plugin With WP-CLI', 'disable-comments'); ?></a></h4>
|
50 |
+
</div>
|
51 |
+
<div class="tutorial__item">
|
52 |
+
<div class="icon">
|
53 |
+
<svg version="1.1" id="Capa_2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
|
54 |
+
<g>
|
55 |
+
<g>
|
56 |
+
<g>
|
57 |
+
<path class="st0" d="M352.5,220c0-11-9-20-20-20h-206c-11,0-20,9-20,20s9,20,20,20h206C343.5,240,352.5,231,352.5,220z" />
|
58 |
+
<path class="st0" d="M126.5,280c-11,0-20,9-20,20s9,20,20,20h125.1c11,0,20-9,20-20s-9-20-20-20H126.5z" />
|
59 |
+
<path class="st0" d="M173.5,472h-66.9c-22.1,0-40-17.9-40-40V80c0-22.1,17.9-40,40-40h245.9c22.1,0,40,17.9,40,40v123
|
60 |
+
c0,11,9,20,20,20s20-9,20-20V80c0-44.1-35.9-80-80-80H106.6c-44.1,0-80,35.9-80,80v352c0,44.1,35.9,80,80,80h66.9
|
61 |
+
c11,0,20-9,20-20S184.5,472,173.5,472z" />
|
62 |
+
<path class="st0" d="M467.9,289.6c-23.4-23.4-61.5-23.4-84.8,0L273.2,399.1c-2.3,2.3-4.1,5.2-5,8.3l-23.9,78.7
|
63 |
+
c-2.1,7-0.3,14.6,4.8,19.8c3.8,3.9,9,6,14.3,6c1.8,0,3.6-0.2,5.3-0.7l80.7-22.4c3.3-0.9,6.4-2.7,8.8-5.1l109.6-109.4
|
64 |
+
C491.3,351,491.3,313,467.9,289.6z M333.8,451.8L293.2,463l11.9-39.1l74.1-73.9l28.3,28.3L333.8,451.8z M439.6,346.1l-3.9,3.9
|
65 |
+
l-28.3-28.3l3.9-3.9c7.8-7.8,20.5-7.8,28.3,0S447.4,338.3,439.6,346.1z" />
|
66 |
+
<path class="st0" d="M332.5,120h-206c-11,0-20,9-20,20s9,20,20,20h206c11,0,20-9,20-20S343.5,120,332.5,120z" />
|
67 |
+
</g>
|
68 |
+
</g>
|
69 |
+
</g>
|
70 |
+
</svg>
|
71 |
+
</div>
|
72 |
+
<h4><a href="<?php echo esc_url('https://wpdeveloper.net/docs/disable-specific-types-of-posts/'); ?>" target="_blank" rel="nofollow"><?php _e('How to Disable Comments on Specific Types Of Posts', 'disable-comments'); ?></a></h4>
|
73 |
+
</div>
|
74 |
+
<div class="tutorial__item">
|
75 |
+
<div class="icon">
|
76 |
+
<svg version="1.1" id="Capa_2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
|
77 |
+
<g>
|
78 |
+
<g>
|
79 |
+
<g>
|
80 |
+
<path class="st0" d="M352.5,220c0-11-9-20-20-20h-206c-11,0-20,9-20,20s9,20,20,20h206C343.5,240,352.5,231,352.5,220z" />
|
81 |
+
<path class="st0" d="M126.5,280c-11,0-20,9-20,20s9,20,20,20h125.1c11,0,20-9,20-20s-9-20-20-20H126.5z" />
|
82 |
+
<path class="st0" d="M173.5,472h-66.9c-22.1,0-40-17.9-40-40V80c0-22.1,17.9-40,40-40h245.9c22.1,0,40,17.9,40,40v123
|
83 |
+
c0,11,9,20,20,20s20-9,20-20V80c0-44.1-35.9-80-80-80H106.6c-44.1,0-80,35.9-80,80v352c0,44.1,35.9,80,80,80h66.9
|
84 |
+
c11,0,20-9,20-20S184.5,472,173.5,472z" />
|
85 |
+
<path class="st0" d="M467.9,289.6c-23.4-23.4-61.5-23.4-84.8,0L273.2,399.1c-2.3,2.3-4.1,5.2-5,8.3l-23.9,78.7
|
86 |
+
c-2.1,7-0.3,14.6,4.8,19.8c3.8,3.9,9,6,14.3,6c1.8,0,3.6-0.2,5.3-0.7l80.7-22.4c3.3-0.9,6.4-2.7,8.8-5.1l109.6-109.4
|
87 |
+
C491.3,351,491.3,313,467.9,289.6z M333.8,451.8L293.2,463l11.9-39.1l74.1-73.9l28.3,28.3L333.8,451.8z M439.6,346.1l-3.9,3.9
|
88 |
+
l-28.3-28.3l3.9-3.9c7.8-7.8,20.5-7.8,28.3,0S447.4,338.3,439.6,346.1z" />
|
89 |
+
<path class="st0" d="M332.5,120h-206c-11,0-20,9-20,20s9,20,20,20h206c11,0,20-9,20-20S343.5,120,332.5,120z" />
|
90 |
+
</g>
|
91 |
+
</g>
|
92 |
+
</g>
|
93 |
+
</svg>
|
94 |
+
</div>
|
95 |
+
<h4><a href="<?php echo esc_url('https://wpdeveloper.net/docs/disable-comments-for-some-particular-post/'); ?>" target="_blank" rel="nofollow"><?php _e('Disable Comments For Some Particular Post', 'disable-comments'); ?></a></h4>
|
96 |
+
</div>
|
97 |
+
<div class="tutorial__item">
|
98 |
+
<div class="icon">
|
99 |
+
<svg version="1.1" id="Capa_3" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
|
100 |
+
<g>
|
101 |
+
<g>
|
102 |
+
<g>
|
103 |
+
<path class="st0" d="M352.5,220c0-11-9-20-20-20h-206c-11,0-20,9-20,20s9,20,20,20h206C343.5,240,352.5,231,352.5,220z" />
|
104 |
+
<path class="st0" d="M126.5,280c-11,0-20,9-20,20s9,20,20,20h125.1c11,0,20-9,20-20s-9-20-20-20H126.5z" />
|
105 |
+
<path class="st0" d="M173.5,472h-66.9c-22.1,0-40-17.9-40-40V80c0-22.1,17.9-40,40-40h245.9c22.1,0,40,17.9,40,40v123
|
106 |
+
c0,11,9,20,20,20s20-9,20-20V80c0-44.1-35.9-80-80-80H106.6c-44.1,0-80,35.9-80,80v352c0,44.1,35.9,80,80,80h66.9
|
107 |
+
c11,0,20-9,20-20S184.5,472,173.5,472z" />
|
108 |
+
<path class="st0" d="M467.9,289.6c-23.4-23.4-61.5-23.4-84.8,0L273.2,399.1c-2.3,2.3-4.1,5.2-5,8.3l-23.9,78.7
|
109 |
+
c-2.1,7-0.3,14.6,4.8,19.8c3.8,3.9,9,6,14.3,6c1.8,0,3.6-0.2,5.3-0.7l80.7-22.4c3.3-0.9,6.4-2.7,8.8-5.1l109.6-109.4
|
110 |
+
C491.3,351,491.3,313,467.9,289.6z M333.8,451.8L293.2,463l11.9-39.1l74.1-73.9l28.3,28.3L333.8,451.8z M439.6,346.1l-3.9,3.9
|
111 |
+
l-28.3-28.3l3.9-3.9c7.8-7.8,20.5-7.8,28.3,0S447.4,338.3,439.6,346.1z" />
|
112 |
+
<path class="st0" d="M332.5,120h-206c-11,0-20,9-20,20s9,20,20,20h206c11,0,20-9,20-20S343.5,120,332.5,120z" />
|
113 |
+
</g>
|
114 |
+
</g>
|
115 |
+
</g>
|
116 |
+
</svg>
|
117 |
+
</div>
|
118 |
+
<h4><a href="<?php echo esc_url('https://wpdeveloper.net/docs/disable-comment-for-wordpress-media-files/'); ?>" target="_blank" rel="nofollow"><?php _e('Disable Comment For WordPress Media Files', 'disable-comments'); ?></a></h4>
|
119 |
+
</div>
|
120 |
+
</div>
|
121 |
+
</div>
|
122 |
+
<article class="blog__post">
|
123 |
+
<div class="thumb">
|
124 |
+
<img src="<?php echo esc_url(DC_ASSETS_URI . 'img/blog/thumb-1.jpg'); ?>" alt="">
|
125 |
+
<a href="<?php echo esc_url('https://youtu.be/J9AteKzQpPs'); ?>" class="play__btn" target="_blank" rel="nofollow"><span></span></a>
|
126 |
+
</div>
|
127 |
+
<div class="blog__post__content">
|
128 |
+
<h4><a href="<?php echo esc_url('https://wpdeveloper.net/docs/disable-comments-for-wordpress-pages/'); ?>" target="_blank" rel="nofollow"><?php _e('Disable Comments For WordPress Pages', 'disable-comments'); ?></a></h4>
|
129 |
+
</div>
|
130 |
+
</article>
|
131 |
+
</div>
|
views/settings.php
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="wrap">
|
2 |
+
<div id="disablecommentswrap" class="disablecommentswrap background__grey">
|
3 |
+
<?php do_action('disable_comments_notice'); ?>
|
4 |
+
<div class="disable__comment_block">
|
5 |
+
<div class="disable__comment__nav__wrap">
|
6 |
+
<p class="plugin__version"><?php echo _e('Version', 'disable-comments') . ' ' . DC_VERSION; ?></p>
|
7 |
+
<ul class="disable__comment__nav">
|
8 |
+
<li id="disableCommentsNav" class="disable__comment__nav__item">
|
9 |
+
<a href="#disableComments" class="disable__comment__nav__link active"><?php _e('Disable Comments', 'disable-comments'); ?></a>
|
10 |
+
</li>
|
11 |
+
<li id="deleteCommentsNav" class="disable__comment__nav__item">
|
12 |
+
<a href="#deleteComments" class="disable__comment__nav__link"><?php _e('Delete Comments', 'disable-comments'); ?></a>
|
13 |
+
</li>
|
14 |
+
</ul>
|
15 |
+
</div>
|
16 |
+
<div class="dc-row">
|
17 |
+
<div class="dc-col-lg-9">
|
18 |
+
<div class="disable__comment__tab">
|
19 |
+
<div id="disableComments" class="disable__comment__tab__item show">
|
20 |
+
<?php include DC_PLUGIN_VIEWS_PATH . 'partials/_disable.php'; ?>
|
21 |
+
</div>
|
22 |
+
<div id="deleteComments" class="disable__comment__tab__item">
|
23 |
+
<?php include DC_PLUGIN_VIEWS_PATH . 'partials/_delete.php'; ?>
|
24 |
+
</div>
|
25 |
+
</div>
|
26 |
+
</div>
|
27 |
+
<div class="dc-col-lg-3">
|
28 |
+
<?php include DC_PLUGIN_VIEWS_PATH . 'partials/_sidebar.php'; ?>
|
29 |
+
</div>
|
30 |
+
<div>
|
31 |
+
</div>
|
32 |
+
<?php include DC_PLUGIN_VIEWS_PATH . 'partials/_footer.php'; ?>
|
33 |
+
</div>
|
34 |
+
</div>
|
views/setup-settings.php
ADDED
@@ -0,0 +1,76 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div id="disablecommentssetupwrap" class="disablecommentswrap background__grey dc-quick__setup__wrap">
|
2 |
+
<div class="dc-container">
|
3 |
+
<div class="dc-row">
|
4 |
+
<div class="dc-col">
|
5 |
+
<div class="dc-quick__setup">
|
6 |
+
<div class="dc-logo dc-logo__center mb50">
|
7 |
+
<img src="<?php echo esc_url(DC_ASSETS_URI . 'img/logo.png'); ?>" alt="">
|
8 |
+
</div>
|
9 |
+
</div>
|
10 |
+
</div>
|
11 |
+
</div>
|
12 |
+
<div class="dc-row">
|
13 |
+
<div class="dc-col">
|
14 |
+
<div class="mb30">
|
15 |
+
<ul class="dc-quick__setup__nav">
|
16 |
+
<li class="quick__setup__item active">
|
17 |
+
<a href="#" class="quick__setup__link"><?php _e('GETTING STARTED', 'disable-comments'); ?></a>
|
18 |
+
</li>
|
19 |
+
<li class="quick__setup__item">
|
20 |
+
<a href="#" class="quick__setup__link"><?php _e('Disable comments', 'disable-comments'); ?></a>
|
21 |
+
</li>
|
22 |
+
<li class="quick__setup__item">
|
23 |
+
<a href="#" class="quick__setup__link"><?php _e('FINALIZE', 'disable-comments'); ?></a>
|
24 |
+
</li>
|
25 |
+
</ul>
|
26 |
+
</div>
|
27 |
+
<div id="disableCommentSetupSettings" class="dc-quick__setup__step dc-text__block__big__pad">
|
28 |
+
<div id="dcqTabBody_1" class="dc-quick__step__item">
|
29 |
+
<div class="quick__setup__item__header mb30">
|
30 |
+
<h2><?php _e('Getting Started', 'disable-comments'); ?></h2>
|
31 |
+
<p><?php _e('Easily get started with this easy setup wizard and complete setting up your Knowledge Base.', 'disable-comments'); ?></p>
|
32 |
+
</div>
|
33 |
+
<div class="dc-video__area">
|
34 |
+
<iframe width="622" height="350" src="https://www.youtube.com/embed/J9AteKzQpPs" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
|
35 |
+
</div>
|
36 |
+
<div class="dc-form__group">
|
37 |
+
<input name="dc_is_optin" type="checkbox" value="1" id="dc_option" checked>
|
38 |
+
<label for="dc_option">
|
39 |
+
<?php _e('Want to help make Disable Comments even better?', 'disable-comments'); ?>
|
40 |
+
<a id="whatWeCollect" href="#"><?php _e('What we collect.', 'disable-comments'); ?></a>
|
41 |
+
<p id="whatWeCollectMessage"><?php _e('We collect non-sensitive diagnostic data and plugin usage information. Your site URL, WordPress & PHP version, plugins, themes and email address to send you the discount coupon. This data lets us make sure this plugin always stays compatible with the most popular plugins and themes. No spam, I promise.', 'disable-comments'); ?></p>
|
42 |
+
</label>
|
43 |
+
</div>
|
44 |
+
</div>
|
45 |
+
<div id="dcqTabBody_2" class="dc-quick__step__item">
|
46 |
+
<?php include DC_PLUGIN_VIEWS_PATH . 'partials/_disable.php'; ?>
|
47 |
+
</div>
|
48 |
+
<div id="dcqTabBody_3" class="dc-quick__step__item">
|
49 |
+
<div class="quick__setup__item__header">
|
50 |
+
<h2><?php _e('Great Job!', 'disable-comments'); ?></h2>
|
51 |
+
<p><?php _e('Your documentation page is ready! Make sure to add more articles and assign them to proper categories and you are good to go.', 'disable-comments'); ?></p>
|
52 |
+
</div>
|
53 |
+
<div class="finalize-thumb">
|
54 |
+
<img src="<?php echo esc_url(DC_ASSETS_URI . 'img/finalize-thumb.png'); ?>" alt="">
|
55 |
+
</div>
|
56 |
+
<div class="doc__button__wrap">
|
57 |
+
<a href="<?php echo esc_url('https://wpdeveloper.net/docs-category/disable-comments/'); ?>" class="doc__button" target="_blank" rel="nofollow"><?php _e('VISIT OUR DOCUMENTATION PAGE', 'disable-comments'); ?></a>
|
58 |
+
</div>
|
59 |
+
</div>
|
60 |
+
<div class="button__group mt30">
|
61 |
+
<a id="dcQuickPreviousBtn" href="#" class="button button--sm"><?php _e('Previous', 'disable-comments'); ?></a>
|
62 |
+
<a id="dcQuickNextBtn" href="#" class="button button__success"><?php _e('Next', 'disable-comments'); ?></a>
|
63 |
+
<a id="dcQuickSkipBtn" href="#" class="button button--sm"><?php _e('Skip', 'disable-comments'); ?></a>
|
64 |
+
</div>
|
65 |
+
</div>
|
66 |
+
|
67 |
+
<div class="footer__content mt50">
|
68 |
+
<a href="<?php echo $this->settings_page_url() . '&cancel=setup'; ?>" class="cancel-dc-setup"><?php _e('Return to Dashboard', 'disable-comments'); ?></a>
|
69 |
+
<?php
|
70 |
+
include DC_PLUGIN_VIEWS_PATH . 'partials/_menu.php';
|
71 |
+
?>
|
72 |
+
</div>
|
73 |
+
</div>
|
74 |
+
</div>
|
75 |
+
</div>
|
76 |
+
</div>
|