Version Description
Hello! We've recently acquired this plugin and included tons of new features.
Download this release
Release Info
Developer | quadlayers |
Plugin | WhatsApp Chat WP |
Version | 4.5.0 |
Comparing to | |
See all releases |
Code changes from version 4.4.9 to 4.5.0
- assets/css/qlwapp-admin.css +115 -99
- assets/css/qlwapp-admin.css.map +1 -0
- assets/css/qlwapp-admin.min.css +2 -0
- assets/css/qlwapp-select2.css +409 -409
- assets/css/qlwapp-select2.min.css +1 -0
- assets/css/qlwapp.css +908 -908
- assets/css/qlwapp.min.css +1 -1
- assets/js/qlwapp-admin.js +146 -4
- assets/js/qlwapp-admin.min.js +1 -1
- assets/js/qlwapp-contact-modal.js +379 -0
- assets/js/qlwapp-contact-modal.min.js +1 -0
- assets/js/qlwapp-modal.js +0 -357
- assets/js/qlwapp-modal.min.js +0 -1
- assets/js/qlwapp.js +2 -0
- assets/js/qlwapp.min.js +1 -1
- changelog.txt +5 -1
- includes/backend.php +112 -0
- includes/controllers/BoxController.php +53 -0
- includes/controllers/ButtonController.php +54 -0
- includes/controllers/ContactController.php +148 -0
- includes/controllers/DisplayController.php +78 -0
- includes/controllers/PremiumController.php +31 -0
- includes/controllers/QLWAPP_Controller.php +24 -0
- includes/controllers/SchemeController.php +54 -0
- includes/controllers/SuggestionsController.php +60 -0
- includes/controllers/WelcomeController.php +33 -0
- includes/defaults.php +0 -290
- includes/frontend.php +39 -21
- includes/helpers.php +47 -0
- includes/models/Box.php +36 -0
- includes/models/Button.php +59 -0
- includes/models/Chat.php +16 -0
- includes/models/Contact.php +136 -0
- includes/models/Display.php +24 -0
- includes/models/License.php +17 -0
- includes/models/QLWAPP_Model.php +69 -0
- includes/models/Scheme.php +27 -0
- includes/{suggestions.php → models/Suggestions.php} +132 -132
- includes/models/Welcome.php +12 -0
- includes/pages/box.php +0 -205
- includes/pages/button.php +0 -113
- includes/pages/colors.php +0 -49
- includes/pages/contacts.php +0 -64
- includes/pages/display.php +0 -126
- includes/pages/premium.php +0 -71
- includes/pages/welcome.php +0 -35
- includes/settings.php +139 -550
- includes/view/backend/pages/box.php +46 -0
- includes/view/backend/pages/button.php +121 -0
- includes/view/backend/pages/contacts.php +73 -0
- includes/view/backend/pages/display.php +133 -0
- includes/view/backend/pages/modals/contact-modal.php +126 -0
- includes/view/backend/pages/modals/icons-modal.php +60 -0
- includes/view/backend/pages/parts/header.php +51 -0
- includes/view/backend/pages/premium.php +73 -0
- includes/view/backend/pages/scheme.php +56 -0
- includes/{pages → view/backend/pages}/suggestions.php +1 -5
- includes/view/backend/pages/welcome.php +37 -0
- readme.txt +1 -1
- template/box.php +36 -36
- wp-whatsapp-chat.php +142 -132
- wpml-config.xml +1 -3
assets/css/qlwapp-admin.css
CHANGED
@@ -1,100 +1,116 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
#
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
}
|
28 |
-
#
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
}
|
44 |
-
#
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
width:
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
}
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
.
|
70 |
-
width:
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
100 |
/*# sourceMappingURL=qlwapp-admin.css.map */
|
1 |
+
/* re-order td */
|
2 |
+
#qlwapp_contacts_table td,
|
3 |
+
#qlwapp_contacts_table th {
|
4 |
+
padding: 1em!important;
|
5 |
+
vertical-align: top;
|
6 |
+
line-height: 1.75em;
|
7 |
+
}
|
8 |
+
#qlwapp_contacts_table td img.qlwapp-avatar {
|
9 |
+
width: 50px;
|
10 |
+
height: 50px;
|
11 |
+
}
|
12 |
+
#qlwapp_contacts_table tbody.ui-sortable .wc-item-reorder-nav button {
|
13 |
+
position: relative;
|
14 |
+
overflow: hidden;
|
15 |
+
float: left;
|
16 |
+
display: block;
|
17 |
+
width: 24px;
|
18 |
+
height: 24px;
|
19 |
+
margin: 0;
|
20 |
+
background: 0 0;
|
21 |
+
border: none;
|
22 |
+
box-shadow: none;
|
23 |
+
color: #82878c;
|
24 |
+
text-indent: -9999px;
|
25 |
+
cursor: pointer;
|
26 |
+
outline: 0;
|
27 |
+
}
|
28 |
+
#qlwapp_contacts_table tbody.ui-sortable .wc-item-reorder-nav button::before {
|
29 |
+
display: inline-block;
|
30 |
+
position: absolute;
|
31 |
+
top: 0;
|
32 |
+
right: 0;
|
33 |
+
width: 100%;
|
34 |
+
height: 100%;
|
35 |
+
font: normal 20px/23px dashicons;
|
36 |
+
text-align: center;
|
37 |
+
text-indent: 0;
|
38 |
+
-webkit-font-smoothing: antialiased;
|
39 |
+
-moz-osx-font-smoothing: grayscale;
|
40 |
+
}
|
41 |
+
#qlwapp_contacts_table tbody.ui-sortable .wc-item-reorder-nav button.wc-move-up::before {
|
42 |
+
content: "\f343";
|
43 |
+
}
|
44 |
+
#qlwapp_contacts_table tbody.ui-sortable .wc-item-reorder-nav button.wc-move-down::before {
|
45 |
+
content: "\f347";
|
46 |
+
}
|
47 |
+
#qlwapp_contacts_table tbody.ui-sortable .wc-item-reorder-nav button.wc-move-disabled {
|
48 |
+
color: #d5d5d5!important;
|
49 |
+
cursor: default;
|
50 |
+
pointer-events: none;
|
51 |
+
}
|
52 |
+
#qlwapp_contacts_table tbody.ui-sortable .wc-item-reorder-nav::before {
|
53 |
+
content: "\f333";
|
54 |
+
font-family: Dashicons;
|
55 |
+
text-align: center;
|
56 |
+
line-height: 1;
|
57 |
+
color: #999;
|
58 |
+
display: block;
|
59 |
+
width: 24px;
|
60 |
+
float: left;
|
61 |
+
height: 100%;
|
62 |
+
line-height: 24px;
|
63 |
+
cursor: move;
|
64 |
+
}
|
65 |
+
/*end re-order*/
|
66 |
+
#qlwapp_modal .edit-attachment-frame .attachment-media-view {
|
67 |
+
width: 75% ;
|
68 |
+
}
|
69 |
+
#qlwapp_modal .edit-attachment-frame .attachment-info {
|
70 |
+
width: 25%;
|
71 |
+
}
|
72 |
+
#qlwapp_modal input[type=time] {
|
73 |
+
height: 30px;
|
74 |
+
}
|
75 |
+
#qlwapp_modal.qlwapp-modal-contact {
|
76 |
+
max-width: 890px;
|
77 |
+
max-height: 560px;
|
78 |
+
margin: auto;
|
79 |
+
}
|
80 |
+
#qlwapp_modal.qlwapp-modal-contact table {
|
81 |
+
width: 100%;
|
82 |
+
padding: 15px;
|
83 |
+
border-width: 1px 0 0 0;
|
84 |
+
box-shadow: none;
|
85 |
+
table-layout: fixed;
|
86 |
+
}
|
87 |
+
#qlwapp_modal.qlwapp-modal-contact table th {
|
88 |
+
width: 70px;
|
89 |
+
}
|
90 |
+
#qlwapp_modal.qlwapp-modal-contact table td {
|
91 |
+
width: calc(50% - 70px);
|
92 |
+
}
|
93 |
+
.settings-save-status .spinner {
|
94 |
+
float: none;
|
95 |
+
display: inline-block;
|
96 |
+
margin: 0 10px;
|
97 |
+
}
|
98 |
+
.settings-save-status .saved {
|
99 |
+
font-size: 12px;
|
100 |
+
display: none;
|
101 |
+
}
|
102 |
+
.settings-save-status .saved.is-active {
|
103 |
+
display: inline-block;
|
104 |
+
}
|
105 |
+
.qlwapp-input,
|
106 |
+
.qlwapp-select2 {
|
107 |
+
width: 350px;
|
108 |
+
max-width: 100%;
|
109 |
+
}
|
110 |
+
.qlwapp-input {
|
111 |
+
margin: 0;
|
112 |
+
padding: 6px;
|
113 |
+
box-sizing: border-box;
|
114 |
+
vertical-align: top;
|
115 |
+
}
|
116 |
/*# sourceMappingURL=qlwapp-admin.css.map */
|
assets/css/qlwapp-admin.css.map
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
{"version":3,"sources":["../less/qlwapp-admin.less"],"names":[],"mappings":";AAEA,sBACE;AADF,sBAEE;EACE,sBAAA;EACA,mBAAA;EACA,mBAAA;;AALJ,sBAQE,GAAG,IAAG;EACJ,WAAA;EACA,YAAA;;AAIA,sBADF,MACG,YACC,qBACE;EACE,kBAAA;EACA,gBAAA;EACA,WAAA;EACA,cAAA;EACA,WAAA;EACA,YAAA;EACA,SAAA;EACA,eAAA;EACA,YAAA;EACA,gBAAA;EACA,cAAA;EACA,oBAAA;EACA,eAAA;EACA,UAAA;;AACA,sBAlBR,MACG,YACC,qBACE,OAeG;EACC,qBAAA;EACA,kBAAA;EACA,MAAA;EACA,QAAA;EACA,WAAA;EACA,YAAA;EACA,gCAAA;EACA,kBAAA;EACA,cAAA;EACA,mCAAA;EACA,kCAAA;;AAEF,sBA/BR,MACG,YACC,qBACE,OA4BG,WAAW;EACV,SAAS,OAAT;;AAEF,sBAlCR,MACG,YACC,qBACE,OA+BG,aAAa;EACZ,SAAS,OAAT;;AAEF,sBArCR,MACG,YACC,qBACE,OAkCG;EACC,wBAAA;EACA,eAAA;EACA,oBAAA;;AAGJ,sBA3CN,MACG,YACC,qBAyCG;EACC,SAAS,OAAT;EACA,sBAAA;EACA,kBAAA;EACA,cAAA;EACA,WAAA;EACA,cAAA;EACA,WAAA;EACA,WAAA;EACA,YAAA;EACA,iBAAA;EACA,YAAA;;;AAYV,aAEE,uBAAuB;EACrB,WAAA;;AAHJ,aAKE,uBAAuB;EACrB,UAAA;;AANJ,aASE,MAAK;EACH,YAAA;;AAGF,aAAC;EACC,gBAAA;EACA,iBAAA;EACA,YAAA;;AAHF,aAAC,qBAKC;EACE,WAAA;EACA,aAAA;EACA,uBAAA;EACA,gBAAA;EACA,mBAAA;;AAVJ,aAAC,qBAKC,MAOE;EACE,WAAA;;AAbN,aAAC,qBAKC,MAWE;EACE,uBAAA;;AAOR,qBAEE;EACE,WAAA;EACA,qBAAA;EACA,cAAA;;AALJ,qBAQE;EACE,eAAA;EACA,aAAA;;AACA,qBAHF,OAGG;EACC,qBAAA;;AAKN;AACA;EACE,YAAA;EACA,eAAA;;AAGF;EACE,SAAA;EACA,YAAA;EACA,sBAAA;EACA,mBAAA","file":"qlwapp-admin.css"}
|
assets/css/qlwapp-admin.min.css
CHANGED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
|
2 |
+
.ui-sortable .wc-item-reorder-nav button{position:relative;overflow:hidden;float:left;display:block;width:24px;height:24px;margin:0;background:0;border:0;box-shadow:none;color:#82878c;text-indent:-9999px;cursor:pointer;outline:0}.ui-sortable .wc-item-reorder-nav button::before{display:inline-block;position:absolute;top:0;right:0;width:100%;height:100%;font:normal 20px/23px dashicons;text-align:center;text-indent:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ui-sortable .wc-item-reorder-nav button.wc-move-up::before{content:"\f343"}.ui-sortable .wc-item-reorder-nav button.wc-move-down::before{content:"\f347"}.ui-sortable .wc-item-reorder-nav button.wc-move-disabled{color:#d5d5d5!important;cursor:default;pointer-events:none}.ui-sortable .wc-item-reorder-nav::before{content:"\f333";font-family:Dashicons;text-align:center;line-height:1;color:#999;display:block;width:24px;float:left;height:100%;line-height:24px;cursor:move}#qlwapp_modal .edit-attachment-frame .attachment-info .details,#qlwapp_modal .edit-attachment-frame .attachment-info .settings{border-bottom:0}#qlwapp_modal .edit-attachment-frame .attachment-media-view{width:75%}#qlwapp_modal .edit-attachment-frame .attachment-media-view .titleTable{padding-left:15px;padding-top:5px;border-bottom:1px solid #f1f1f1}#qlwapp_modal .edit-attachment-frame .attachment-info{width:25%;padding-top:32px}#qlwapp_modal .edit-attachment-frame .attachment-info .settings-save-status .is-active{display:inline;color:rgba(13,144,29,0.8)}#qlwapp_modal .media-modal-close{float:left}.settings-save-status .spinner{float:none;display:inline-block;margin:0 10px}.settings-save-status .saved{display:none}.settings-save-status .saved.is-active{display:inline-block;color:rgba(13,144,29,0.8)}#qlwapp_modal .attachments-browser .attachments{top:0;left:0;right:0}#qlwapp_modal .wp-core-ui .attachment .thumbnail,#qlwapp_modal .wp-core-ui .attachment-info .thumbnail{vertical-align:middle;text-align:center}#qlwapp_modal .wp-core-ui .attachment .thumbnail:before,#qlwapp_modal .wp-core-ui .attachment-info .thumbnail:before{content:'';display:inline-block;width:0;height:100%;vertical-align:middle}#qlwapp_modal .wp-core-ui .attachment .thumbnail>i,#qlwapp_modal .wp-core-ui .attachment-info .thumbnail>i{text-align:center;font-size:3vw;display:inline-block;vertical-align:middle;height:auto;width:auto}#qlwapp_modal .wp-core-ui .attachment-info .thumbnail{width:60px;height:60px;background-color:#fff}#qlwapp_modal .wp-core-ui .attachment-info .thumbnail>i{font-size:2em;position:relative;left:-1px}#qlwapp_modal .wp-core-ui .attachment-info .qlwapp-color-picker .container{box-sizing:border-box;width:100%;border-bottom:1px solid #ddd;padding:11px 0}#qlwapp_modal .wp-core-ui .attachment-info .qlwapp-color-picker #qlwapp-input-color{box-sizing:border-box;margin:1px;width:75%;float:right}#qlwapp_modal .wp-core-ui .attachment-info .qlwapp-color-picker .wp-picker-container .wp-color-result{width:100%;margin-top:5px!important}#qlwapp_modal .wp-core-ui .attachment-info .qlwapp-color-picker .wp-picker-container .wp-color-result-text{z-index:1;position:relative}.about-wrap .form-table td img.qlwapp-avatar{width:50px;height:50px}.qlwrap .nav-tab i{line-height:26px}.qlwrap .form-table td{vertical-align:middle}.qlwrap .qlwapp-input,.qlwrap .qlwapp-select2{width:350px;max-width:100%}.qlwrap .qlwapp-input{margin:0;padding:6px;box-sizing:border-box;vertical-align:top}#qlwapp_modal.qlwapp-modal-contact{max-width:890px;max-height:800px;margin:auto}#qlwapp_modal.qlwapp-modal-contact table{width:100%;padding:15px}#qlwapp_modal.qlwapp-modal-contact table:not(:last-child){border-bottom:1px solid #ddd}#qlwapp_modal.qlwapp-modal-contact table th{width:60px}#qlwapp_modal.qlwapp-modal-contact table td{max-width:calc(-10%)}#qlwapp_modal .qlwapp-modal-contact-content{bottom:61px}.submit_up p.submit{text-align:left;max-width:100%;margin-top:20px;padding-top:10px}
|
assets/css/qlwapp-select2.css
CHANGED
@@ -1,409 +1,409 @@
|
|
1 |
-
.select2-container {
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
}
|
8 |
-
|
9 |
-
.select2-container .select2-selection--single {
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
}
|
20 |
-
|
21 |
-
.select2-container .select2-selection--single .select2-selection__rendered {
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
}
|
29 |
-
|
30 |
-
.select2-container .select2-selection--single .select2-selection__clear {
|
31 |
-
|
32 |
-
}
|
33 |
-
|
34 |
-
.select2-container[dir=rtl] .select2-selection--single .select2-selection__rendered {
|
35 |
-
|
36 |
-
|
37 |
-
}
|
38 |
-
|
39 |
-
.select2-container .select2-selection {
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
}
|
49 |
-
|
50 |
-
.select2-container .select2-selection .select2-selection__rendered {
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
}
|
57 |
-
|
58 |
-
.select2-container .select2-search--inline {
|
59 |
-
|
60 |
-
|
61 |
-
}
|
62 |
-
|
63 |
-
.select2-container .select2-search--inline .select2-search__field {
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
}
|
70 |
-
|
71 |
-
.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {
|
72 |
-
|
73 |
-
}
|
74 |
-
|
75 |
-
.select2-dropdown {
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
}
|
86 |
-
|
87 |
-
.select2-results {
|
88 |
-
|
89 |
-
}
|
90 |
-
|
91 |
-
.select2-results__options {
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
}
|
96 |
-
|
97 |
-
.select2-results__option {
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
}
|
105 |
-
|
106 |
-
.select2-results__option[aria-selected],
|
107 |
-
.select2-results__option[data-selected] {
|
108 |
-
|
109 |
-
}
|
110 |
-
|
111 |
-
.select2-container--open .select2-dropdown {
|
112 |
-
|
113 |
-
}
|
114 |
-
|
115 |
-
.select2-container--open .select2-dropdown--above {
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
}
|
120 |
-
|
121 |
-
.select2-container--open .select2-dropdown--below {
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
}
|
126 |
-
|
127 |
-
.select2-search--dropdown {
|
128 |
-
|
129 |
-
|
130 |
-
}
|
131 |
-
|
132 |
-
.select2-search--dropdown .select2-search__field {
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
}
|
137 |
-
|
138 |
-
.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button {
|
139 |
-
|
140 |
-
}
|
141 |
-
|
142 |
-
.select2-search--dropdown.select2-search--hide {
|
143 |
-
|
144 |
-
}
|
145 |
-
|
146 |
-
.select2-close-mask {
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
}
|
162 |
-
|
163 |
-
.select2-hidden-accessible {
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
}
|
173 |
-
|
174 |
-
.select2-container--default .select2-selection--single {
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
}
|
179 |
-
|
180 |
-
.select2-container--default .select2-selection--single .select2-selection__rendered {
|
181 |
-
|
182 |
-
|
183 |
-
}
|
184 |
-
|
185 |
-
.select2-container--default .select2-selection--single .select2-selection__clear {
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
}
|
190 |
-
|
191 |
-
.select2-container--default .select2-selection--single .select2-selection__placeholder {
|
192 |
-
|
193 |
-
}
|
194 |
-
|
195 |
-
.select2-container--default .select2-selection--single .select2-selection__arrow {
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
}
|
202 |
-
|
203 |
-
.select2-container--default .select2-selection--single .select2-selection__arrow b {
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
}
|
215 |
-
|
216 |
-
.select2-container--default[dir=rtl] .select2-selection--single .select2-selection__clear {
|
217 |
-
|
218 |
-
}
|
219 |
-
|
220 |
-
.select2-container--default[dir=rtl] .select2-selection--single .select2-selection__arrow {
|
221 |
-
|
222 |
-
|
223 |
-
}
|
224 |
-
|
225 |
-
.select2-container--default.select2-container--disabled .select2-selection--single {
|
226 |
-
|
227 |
-
|
228 |
-
}
|
229 |
-
|
230 |
-
.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear {
|
231 |
-
|
232 |
-
}
|
233 |
-
|
234 |
-
.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
|
235 |
-
|
236 |
-
|
237 |
-
}
|
238 |
-
|
239 |
-
.select2-container--default .select2-selection {
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
}
|
245 |
-
|
246 |
-
.select2-container--default .select2-selection .select2-selection__rendered {
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
}
|
253 |
-
|
254 |
-
.select2-container--default .select2-selection .select2-selection__rendered li {
|
255 |
-
|
256 |
-
|
257 |
-
}
|
258 |
-
|
259 |
-
.select2-container--default .select2-selection .select2-selection__rendered li:before {
|
260 |
-
|
261 |
-
|
262 |
-
}
|
263 |
-
|
264 |
-
.select2-container--default .select2-selection .select2-selection__placeholder {
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
}
|
269 |
-
|
270 |
-
.select2-container--default .select2-selection .select2-selection__clear {
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
}
|
277 |
-
|
278 |
-
.select2-container--default .select2-selection .select2-selection__choice {
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
}
|
288 |
-
|
289 |
-
.select2-container--default .select2-selection .select2-selection__choice__remove {
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
}
|
296 |
-
|
297 |
-
.select2-container--default .select2-selection .select2-selection__choice__remove:hover {
|
298 |
-
|
299 |
-
}
|
300 |
-
|
301 |
-
.select2-container--default[dir=rtl] .select2-selection .select2-search--inline,
|
302 |
-
.select2-container--default[dir=rtl] .select2-selection .select2-selection__choice,
|
303 |
-
.select2-container--default[dir=rtl] .select2-selection .select2-selection__placeholder {
|
304 |
-
|
305 |
-
}
|
306 |
-
|
307 |
-
.select2-container--default[dir=rtl] .select2-selection .select2-selection__choice {
|
308 |
-
|
309 |
-
|
310 |
-
}
|
311 |
-
|
312 |
-
.select2-container--default[dir=rtl] .select2-selection .select2-selection__choice__remove {
|
313 |
-
|
314 |
-
|
315 |
-
}
|
316 |
-
|
317 |
-
.select2-container--default.select2-container--focus .select2-selection {
|
318 |
-
|
319 |
-
}
|
320 |
-
|
321 |
-
.select2-container--default.select2-container--disabled .select2-selection {
|
322 |
-
|
323 |
-
|
324 |
-
}
|
325 |
-
|
326 |
-
.select2-container--default.select2-container--disabled .select2-selection__choice__remove {
|
327 |
-
|
328 |
-
}
|
329 |
-
|
330 |
-
.select2-container--default.select2-container--open.select2-container--above .select2-selection,
|
331 |
-
.select2-container--default.select2-container--open.select2-container--above .select2-selection--single {
|
332 |
-
|
333 |
-
|
334 |
-
}
|
335 |
-
|
336 |
-
.select2-container--default.select2-container--open.select2-container--below .select2-selection,
|
337 |
-
.select2-container--default.select2-container--open.select2-container--below .select2-selection--single {
|
338 |
-
|
339 |
-
|
340 |
-
}
|
341 |
-
|
342 |
-
.select2-container--default .select2-search--dropdown .select2-search__field {
|
343 |
-
|
344 |
-
}
|
345 |
-
|
346 |
-
.select2-container--default .select2-search--inline .select2-search__field {
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
}
|
353 |
-
|
354 |
-
.select2-container--default .select2-results>.select2-results__options {
|
355 |
-
|
356 |
-
|
357 |
-
}
|
358 |
-
|
359 |
-
.select2-container--default .select2-results__option[role=group] {
|
360 |
-
|
361 |
-
}
|
362 |
-
|
363 |
-
.select2-container--default .select2-results__option[aria-disabled=true] {
|
364 |
-
|
365 |
-
}
|
366 |
-
|
367 |
-
.select2-container--default .select2-results__option[aria-selected=true],
|
368 |
-
.select2-container--default .select2-results__option[data-selected=true] {
|
369 |
-
|
370 |
-
}
|
371 |
-
|
372 |
-
.select2-container--default .select2-results__option .select2-results__option {
|
373 |
-
|
374 |
-
}
|
375 |
-
|
376 |
-
.select2-container--default .select2-results__option .select2-results__option .select2-results__group {
|
377 |
-
|
378 |
-
}
|
379 |
-
|
380 |
-
.select2-container--default .select2-results__option .select2-results__option .select2-results__option {
|
381 |
-
|
382 |
-
|
383 |
-
}
|
384 |
-
|
385 |
-
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
|
386 |
-
|
387 |
-
|
388 |
-
}
|
389 |
-
|
390 |
-
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
|
391 |
-
|
392 |
-
|
393 |
-
}
|
394 |
-
|
395 |
-
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
|
396 |
-
|
397 |
-
|
398 |
-
}
|
399 |
-
|
400 |
-
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
|
401 |
-
|
402 |
-
|
403 |
-
}
|
404 |
-
|
405 |
-
.select2-container--default .select2-results__option--highlighted[aria-selected],
|
406 |
-
.select2-container--default .select2-results__option--highlighted[data-selected] {
|
407 |
-
|
408 |
-
|
409 |
-
}
|
1 |
+
.select2-container {
|
2 |
+
box-sizing: border-box;
|
3 |
+
display: inline-block;
|
4 |
+
margin: 0;
|
5 |
+
position: relative;
|
6 |
+
vertical-align: middle
|
7 |
+
}
|
8 |
+
|
9 |
+
.select2-container .select2-selection--single {
|
10 |
+
box-sizing: border-box;
|
11 |
+
cursor: pointer;
|
12 |
+
display: block;
|
13 |
+
height: 28px;
|
14 |
+
margin: 0 0 -4px;
|
15 |
+
-moz-user-select: none;
|
16 |
+
-ms-user-select: none;
|
17 |
+
user-select: none;
|
18 |
+
-webkit-user-select: none
|
19 |
+
}
|
20 |
+
|
21 |
+
.select2-container .select2-selection--single .select2-selection__rendered {
|
22 |
+
display: block;
|
23 |
+
padding-left: 8px;
|
24 |
+
padding-right: 20px;
|
25 |
+
overflow: hidden;
|
26 |
+
text-overflow: ellipsis;
|
27 |
+
white-space: nowrap
|
28 |
+
}
|
29 |
+
|
30 |
+
.select2-container .select2-selection--single .select2-selection__clear {
|
31 |
+
position: relative
|
32 |
+
}
|
33 |
+
|
34 |
+
.select2-container[dir=rtl] .select2-selection--single .select2-selection__rendered {
|
35 |
+
padding-right: 8px;
|
36 |
+
padding-left: 20px
|
37 |
+
}
|
38 |
+
|
39 |
+
.select2-container .select2-selection {
|
40 |
+
box-sizing: border-box;
|
41 |
+
cursor: pointer;
|
42 |
+
display: block;
|
43 |
+
min-height: 32px;
|
44 |
+
-moz-user-select: none;
|
45 |
+
-ms-user-select: none;
|
46 |
+
user-select: none;
|
47 |
+
-webkit-user-select: none
|
48 |
+
}
|
49 |
+
|
50 |
+
.select2-container .select2-selection .select2-selection__rendered {
|
51 |
+
display: inline-block;
|
52 |
+
overflow: hidden;
|
53 |
+
padding-left: 8px;
|
54 |
+
text-overflow: ellipsis;
|
55 |
+
white-space: nowrap
|
56 |
+
}
|
57 |
+
|
58 |
+
.select2-container .select2-search--inline {
|
59 |
+
float: left;
|
60 |
+
padding: 0
|
61 |
+
}
|
62 |
+
|
63 |
+
.select2-container .select2-search--inline .select2-search__field {
|
64 |
+
box-sizing: border-box;
|
65 |
+
border: none;
|
66 |
+
font-size: 100%;
|
67 |
+
margin: 0;
|
68 |
+
padding: 0
|
69 |
+
}
|
70 |
+
|
71 |
+
.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {
|
72 |
+
-webkit-appearance: none
|
73 |
+
}
|
74 |
+
|
75 |
+
.select2-dropdown {
|
76 |
+
background-color: #fff;
|
77 |
+
border: 1px solid #ccc;
|
78 |
+
border-radius: 2px;
|
79 |
+
box-sizing: border-box;
|
80 |
+
display: block;
|
81 |
+
position: absolute;
|
82 |
+
left: -100000px;
|
83 |
+
width: 100%;
|
84 |
+
z-index: 1051
|
85 |
+
}
|
86 |
+
|
87 |
+
.select2-results {
|
88 |
+
display: block
|
89 |
+
}
|
90 |
+
|
91 |
+
.select2-results__options {
|
92 |
+
list-style: none;
|
93 |
+
margin: 0;
|
94 |
+
padding: 0
|
95 |
+
}
|
96 |
+
|
97 |
+
.select2-results__option {
|
98 |
+
margin: 0;
|
99 |
+
padding: 8px;
|
100 |
+
-moz-user-select: none;
|
101 |
+
-ms-user-select: none;
|
102 |
+
user-select: none;
|
103 |
+
-webkit-user-select: none
|
104 |
+
}
|
105 |
+
|
106 |
+
.select2-results__option[aria-selected],
|
107 |
+
.select2-results__option[data-selected] {
|
108 |
+
cursor: pointer
|
109 |
+
}
|
110 |
+
|
111 |
+
.select2-container--open .select2-dropdown {
|
112 |
+
left: 0
|
113 |
+
}
|
114 |
+
|
115 |
+
.select2-container--open .select2-dropdown--above {
|
116 |
+
border-bottom: none;
|
117 |
+
border-bottom-left-radius: 0;
|
118 |
+
border-bottom-right-radius: 0
|
119 |
+
}
|
120 |
+
|
121 |
+
.select2-container--open .select2-dropdown--below {
|
122 |
+
border-top: none;
|
123 |
+
border-top-left-radius: 0;
|
124 |
+
border-top-right-radius: 0
|
125 |
+
}
|
126 |
+
|
127 |
+
.select2-search--dropdown {
|
128 |
+
display: block;
|
129 |
+
padding: 4px
|
130 |
+
}
|
131 |
+
|
132 |
+
.select2-search--dropdown .select2-search__field {
|
133 |
+
padding: 4px;
|
134 |
+
width: 100%;
|
135 |
+
box-sizing: border-box
|
136 |
+
}
|
137 |
+
|
138 |
+
.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button {
|
139 |
+
-webkit-appearance: none
|
140 |
+
}
|
141 |
+
|
142 |
+
.select2-search--dropdown.select2-search--hide {
|
143 |
+
display: none
|
144 |
+
}
|
145 |
+
|
146 |
+
.select2-close-mask {
|
147 |
+
border: 0;
|
148 |
+
margin: 0;
|
149 |
+
padding: 0;
|
150 |
+
display: block;
|
151 |
+
position: fixed;
|
152 |
+
left: 0;
|
153 |
+
top: 0;
|
154 |
+
min-height: 100%;
|
155 |
+
min-width: 100%;
|
156 |
+
height: auto;
|
157 |
+
width: auto;
|
158 |
+
opacity: 0;
|
159 |
+
z-index: 99;
|
160 |
+
background-color: #fff
|
161 |
+
}
|
162 |
+
|
163 |
+
.select2-hidden-accessible {
|
164 |
+
border: 0!important;
|
165 |
+
clip: rect(0 0 0 0)!important;
|
166 |
+
height: 1px!important;
|
167 |
+
margin: -1px!important;
|
168 |
+
overflow: hidden!important;
|
169 |
+
padding: 0!important;
|
170 |
+
position: absolute!important;
|
171 |
+
width: 1px!important
|
172 |
+
}
|
173 |
+
|
174 |
+
.select2-container--default .select2-selection--single {
|
175 |
+
background-color: #fff;
|
176 |
+
border: 1px solid #ccc;
|
177 |
+
border-radius: 4px
|
178 |
+
}
|
179 |
+
|
180 |
+
.select2-container--default .select2-selection--single .select2-selection__rendered {
|
181 |
+
color: #444;
|
182 |
+
line-height: 28px
|
183 |
+
}
|
184 |
+
|
185 |
+
.select2-container--default .select2-selection--single .select2-selection__clear {
|
186 |
+
cursor: pointer;
|
187 |
+
float: right;
|
188 |
+
font-weight: 700
|
189 |
+
}
|
190 |
+
|
191 |
+
.select2-container--default .select2-selection--single .select2-selection__placeholder {
|
192 |
+
color: #999
|
193 |
+
}
|
194 |
+
|
195 |
+
.select2-container--default .select2-selection--single .select2-selection__arrow {
|
196 |
+
height: 32px;
|
197 |
+
position: absolute;
|
198 |
+
top: 0px;
|
199 |
+
right: 1px;
|
200 |
+
width: 20px
|
201 |
+
}
|
202 |
+
|
203 |
+
.select2-container--default .select2-selection--single .select2-selection__arrow b {
|
204 |
+
border-color: #888 transparent transparent transparent;
|
205 |
+
border-style: solid;
|
206 |
+
border-width: 5px 4px 0 4px;
|
207 |
+
height: 0;
|
208 |
+
left: 50%;
|
209 |
+
margin-left: -4px;
|
210 |
+
margin-top: -2px;
|
211 |
+
position: absolute;
|
212 |
+
top: 50%;
|
213 |
+
width: 0
|
214 |
+
}
|
215 |
+
|
216 |
+
.select2-container--default[dir=rtl] .select2-selection--single .select2-selection__clear {
|
217 |
+
float: left
|
218 |
+
}
|
219 |
+
|
220 |
+
.select2-container--default[dir=rtl] .select2-selection--single .select2-selection__arrow {
|
221 |
+
left: 1px;
|
222 |
+
right: auto
|
223 |
+
}
|
224 |
+
|
225 |
+
.select2-container--default.select2-container--disabled .select2-selection--single {
|
226 |
+
background-color: #eee;
|
227 |
+
cursor: default
|
228 |
+
}
|
229 |
+
|
230 |
+
.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear {
|
231 |
+
display: none
|
232 |
+
}
|
233 |
+
|
234 |
+
.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
|
235 |
+
border-color: transparent transparent #888 transparent;
|
236 |
+
border-width: 0 4px 5px 4px
|
237 |
+
}
|
238 |
+
|
239 |
+
.select2-container--default .select2-selection {
|
240 |
+
background-color: #fff;
|
241 |
+
border: 1px solid #ccc;
|
242 |
+
border-radius: 2px;
|
243 |
+
cursor: text
|
244 |
+
}
|
245 |
+
|
246 |
+
.select2-container--default .select2-selection .select2-selection__rendered {
|
247 |
+
box-sizing: border-box;
|
248 |
+
list-style: none;
|
249 |
+
margin: 0;
|
250 |
+
padding: 0 5px;
|
251 |
+
width: 100%
|
252 |
+
}
|
253 |
+
|
254 |
+
.select2-container--default .select2-selection .select2-selection__rendered li {
|
255 |
+
list-style: none;
|
256 |
+
margin: 5px 5px 0 0
|
257 |
+
}
|
258 |
+
|
259 |
+
.select2-container--default .select2-selection .select2-selection__rendered li:before {
|
260 |
+
content: '';
|
261 |
+
display: none
|
262 |
+
}
|
263 |
+
|
264 |
+
.select2-container--default .select2-selection .select2-selection__placeholder {
|
265 |
+
color: #999;
|
266 |
+
margin-top: 5px;
|
267 |
+
float: left
|
268 |
+
}
|
269 |
+
|
270 |
+
.select2-container--default .select2-selection .select2-selection__clear {
|
271 |
+
cursor: pointer;
|
272 |
+
float: right;
|
273 |
+
font-weight: 700;
|
274 |
+
margin-top: 5px;
|
275 |
+
margin-right: 10px
|
276 |
+
}
|
277 |
+
|
278 |
+
.select2-container--default .select2-selection .select2-selection__choice {
|
279 |
+
background-color: #e4e4e4;
|
280 |
+
border: 1px solid #ccc;
|
281 |
+
border-radius: 2px;
|
282 |
+
cursor: default;
|
283 |
+
float: left;
|
284 |
+
margin-right: 5px;
|
285 |
+
margin-top: 5px;
|
286 |
+
padding: 0 5px
|
287 |
+
}
|
288 |
+
|
289 |
+
.select2-container--default .select2-selection .select2-selection__choice__remove {
|
290 |
+
color: #999;
|
291 |
+
cursor: pointer;
|
292 |
+
display: inline-block;
|
293 |
+
font-weight: 700;
|
294 |
+
margin-right: 2px
|
295 |
+
}
|
296 |
+
|
297 |
+
.select2-container--default .select2-selection .select2-selection__choice__remove:hover {
|
298 |
+
color: #333
|
299 |
+
}
|
300 |
+
|
301 |
+
.select2-container--default[dir=rtl] .select2-selection .select2-search--inline,
|
302 |
+
.select2-container--default[dir=rtl] .select2-selection .select2-selection__choice,
|
303 |
+
.select2-container--default[dir=rtl] .select2-selection .select2-selection__placeholder {
|
304 |
+
float: right
|
305 |
+
}
|
306 |
+
|
307 |
+
.select2-container--default[dir=rtl] .select2-selection .select2-selection__choice {
|
308 |
+
margin-left: 5px;
|
309 |
+
margin-right: auto
|
310 |
+
}
|
311 |
+
|
312 |
+
.select2-container--default[dir=rtl] .select2-selection .select2-selection__choice__remove {
|
313 |
+
margin-left: 2px;
|
314 |
+
margin-right: auto
|
315 |
+
}
|
316 |
+
|
317 |
+
.select2-container--default.select2-container--focus .select2-selection {
|
318 |
+
outline: 0
|
319 |
+
}
|
320 |
+
|
321 |
+
.select2-container--default.select2-container--disabled .select2-selection {
|
322 |
+
background-color: #eee;
|
323 |
+
cursor: default
|
324 |
+
}
|
325 |
+
|
326 |
+
.select2-container--default.select2-container--disabled .select2-selection__choice__remove {
|
327 |
+
display: none
|
328 |
+
}
|
329 |
+
|
330 |
+
.select2-container--default.select2-container--open.select2-container--above .select2-selection,
|
331 |
+
.select2-container--default.select2-container--open.select2-container--above .select2-selection--single {
|
332 |
+
border-top-left-radius: 0;
|
333 |
+
border-top-right-radius: 0
|
334 |
+
}
|
335 |
+
|
336 |
+
.select2-container--default.select2-container--open.select2-container--below .select2-selection,
|
337 |
+
.select2-container--default.select2-container--open.select2-container--below .select2-selection--single {
|
338 |
+
border-bottom-left-radius: 0;
|
339 |
+
border-bottom-right-radius: 0
|
340 |
+
}
|
341 |
+
|
342 |
+
.select2-container--default .select2-search--dropdown .select2-search__field {
|
343 |
+
border: 1px solid #ccc
|
344 |
+
}
|
345 |
+
|
346 |
+
.select2-container--default .select2-search--inline .select2-search__field {
|
347 |
+
background: 0 0;
|
348 |
+
border: none;
|
349 |
+
outline: 0;
|
350 |
+
box-shadow: none;
|
351 |
+
-webkit-appearance: textfield
|
352 |
+
}
|
353 |
+
|
354 |
+
.select2-container--default .select2-results>.select2-results__options {
|
355 |
+
max-height: 200px;
|
356 |
+
overflow-y: auto
|
357 |
+
}
|
358 |
+
|
359 |
+
.select2-container--default .select2-results__option[role=group] {
|
360 |
+
padding: 0
|
361 |
+
}
|
362 |
+
|
363 |
+
.select2-container--default .select2-results__option[aria-disabled=true] {
|
364 |
+
color: #999
|
365 |
+
}
|
366 |
+
|
367 |
+
.select2-container--default .select2-results__option[aria-selected=true],
|
368 |
+
.select2-container--default .select2-results__option[data-selected=true] {
|
369 |
+
background-color: #ddd
|
370 |
+
}
|
371 |
+
|
372 |
+
.select2-container--default .select2-results__option .select2-results__option {
|
373 |
+
padding-left: 1em
|
374 |
+
}
|
375 |
+
|
376 |
+
.select2-container--default .select2-results__option .select2-results__option .select2-results__group {
|
377 |
+
padding-left: 0
|
378 |
+
}
|
379 |
+
|
380 |
+
.select2-container--default .select2-results__option .select2-results__option .select2-results__option {
|
381 |
+
margin-left: -1em;
|
382 |
+
padding-left: 2em
|
383 |
+
}
|
384 |
+
|
385 |
+
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
|
386 |
+
margin-left: -2em;
|
387 |
+
padding-left: 3em
|
388 |
+
}
|
389 |
+
|
390 |
+
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
|
391 |
+
margin-left: -3em;
|
392 |
+
padding-left: 4em
|
393 |
+
}
|
394 |
+
|
395 |
+
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
|
396 |
+
margin-left: -4em;
|
397 |
+
padding-left: 5em
|
398 |
+
}
|
399 |
+
|
400 |
+
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
|
401 |
+
margin-left: -5em;
|
402 |
+
padding-left: 6em
|
403 |
+
}
|
404 |
+
|
405 |
+
.select2-container--default .select2-results__option--highlighted[aria-selected],
|
406 |
+
.select2-container--default .select2-results__option--highlighted[data-selected] {
|
407 |
+
background-color: #0073aa;
|
408 |
+
color: #fff
|
409 |
+
}
|
assets/css/qlwapp-select2.min.css
CHANGED
@@ -1 +1,2 @@
|
|
|
|
1 |
.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;margin:0 0 -4px;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{position:relative}.select2-container[dir=rtl] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}.select2-container .select2-selection .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left;padding:0}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:0;font-size:100%;margin:0;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:#fff;border:1px solid #ccc;border-radius:2px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{margin:0;padding:8px;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}.select2-results__option[aria-selected],.select2-results__option[data-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff}.select2-hidden-accessible{border:0!important;clip:rect(0 0 0 0)!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #ccc;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:700}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:32px;position:absolute;top:0;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir=rtl] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir=rtl] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--default .select2-selection{background-color:#fff;border:1px solid #ccc;border-radius:2px;cursor:text}.select2-container--default .select2-selection .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection .select2-selection__rendered li{list-style:none;margin:5px 5px 0 0}.select2-container--default .select2-selection .select2-selection__rendered li:before{content:'';display:none}.select2-container--default .select2-selection .select2-selection__placeholder{color:#999;margin-top:5px;float:left}.select2-container--default .select2-selection .select2-selection__clear{cursor:pointer;float:right;font-weight:700;margin-top:5px;margin-right:10px}.select2-container--default .select2-selection .select2-selection__choice{background-color:#e4e4e4;border:1px solid #ccc;border-radius:2px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--default .select2-selection .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:700;margin-right:2px}.select2-container--default .select2-selection .select2-selection__choice__remove:hover{color:#333}.select2-container--default[dir=rtl] .select2-selection .select2-search--inline,.select2-container--default[dir=rtl] .select2-selection .select2-selection__choice,.select2-container--default[dir=rtl] .select2-selection .select2-selection__placeholder{float:right}.select2-container--default[dir=rtl] .select2-selection .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir=rtl] .select2-selection .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection{outline:0}.select2-container--default.select2-container--disabled .select2-selection{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection,.select2-container--default.select2-container--open.select2-container--above .select2-selection--single{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection,.select2-container--default.select2-container--open.select2-container--below .select2-selection--single{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #ccc}.select2-container--default .select2-search--inline .select2-search__field{background:0;border:0;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true],.select2-container--default .select2-results__option[data-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--highlighted[aria-selected],.select2-container--default .select2-results__option--highlighted[data-selected]{background-color:#0073aa;color:#fff}
|
1 |
+
|
2 |
.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;margin:0 0 -4px;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{position:relative}.select2-container[dir=rtl] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}.select2-container .select2-selection .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left;padding:0}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:0;font-size:100%;margin:0;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:#fff;border:1px solid #ccc;border-radius:2px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{margin:0;padding:8px;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}.select2-results__option[aria-selected],.select2-results__option[data-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff}.select2-hidden-accessible{border:0!important;clip:rect(0 0 0 0)!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #ccc;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:700}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:32px;position:absolute;top:0;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir=rtl] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir=rtl] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--default .select2-selection{background-color:#fff;border:1px solid #ccc;border-radius:2px;cursor:text}.select2-container--default .select2-selection .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection .select2-selection__rendered li{list-style:none;margin:5px 5px 0 0}.select2-container--default .select2-selection .select2-selection__rendered li:before{content:'';display:none}.select2-container--default .select2-selection .select2-selection__placeholder{color:#999;margin-top:5px;float:left}.select2-container--default .select2-selection .select2-selection__clear{cursor:pointer;float:right;font-weight:700;margin-top:5px;margin-right:10px}.select2-container--default .select2-selection .select2-selection__choice{background-color:#e4e4e4;border:1px solid #ccc;border-radius:2px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--default .select2-selection .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:700;margin-right:2px}.select2-container--default .select2-selection .select2-selection__choice__remove:hover{color:#333}.select2-container--default[dir=rtl] .select2-selection .select2-search--inline,.select2-container--default[dir=rtl] .select2-selection .select2-selection__choice,.select2-container--default[dir=rtl] .select2-selection .select2-selection__placeholder{float:right}.select2-container--default[dir=rtl] .select2-selection .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir=rtl] .select2-selection .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection{outline:0}.select2-container--default.select2-container--disabled .select2-selection{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection,.select2-container--default.select2-container--open.select2-container--above .select2-selection--single{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection,.select2-container--default.select2-container--open.select2-container--below .select2-selection--single{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #ccc}.select2-container--default .select2-search--inline .select2-search__field{background:0;border:0;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true],.select2-container--default .select2-results__option[data-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--highlighted[aria-selected],.select2-container--default .select2-results__option--highlighted[data-selected]{background-color:#0073aa;color:#fff}
|
assets/css/qlwapp.css
CHANGED
@@ -1,909 +1,909 @@
|
|
1 |
-
@font-face {
|
2 |
-
font-family: 'qlwapp-whatsapp';
|
3 |
-
src: url(data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAAYEAAsAAAAABbgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABCAAAAGAAAABgDxIFKmNtYXAAAAFoAAAAVAAAAFQXVtKHZ2FzcAAAAbwAAAAIAAAACAAAABBnbHlmAAABxAAAAfwAAAH8pb7IGGhlYWQAAAPAAAAANgAAADYUXm9HaGhlYQAAA/gAAAAkAAAAJAfAA8ZobXR4AAAEHAAAABQAAAAUCgAAA2xvY2EAAAQwAAAADAAAAAwAKAESbWF4cAAABDwAAAAgAAAAIAAJAJluYW1lAAAEXAAAAYYAAAGGmUoJ+3Bvc3QAAAXkAAAAIAAAACAAAwAAAAMDAAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAA6QADwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADgAAAAKAAgAAgACAAEAIOkA//3//wAAAAAAIOkA//3//wAB/+MXBAADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAwAD/8AD/gPAACcATwCWAAABJicuAScmIyIHDgEHBhUUFhcDJR4BMzE4ATEyNz4BNzY1NCcuAScmATEiJi8BBzcnLgE1NDc+ATc2MzIXHgEXFhcWFx4BFxYVFAcOAQcGIxMuAScmIgcOAQcOAScuAScuAScmNjc+ATc+ATc2JicuAScuASMmIiMiBgcOARUUFhcWFx4BFxYXHgEXHgE3PgE3PgEnLgEnA2kkKSpbMTEzaVxdiSgoIiJIAQ03e0BpXF2KKCgKCiYbHP51OW0xD6ArCiAhIiFyTU1XKygpTCIjHh0XFyAICCEick1NV+cJRAkJDQcGHAYGDAkKOCQdJAYGBwUECgUEBQMDAQMCHQgHEAUGDAcGEwgJJC8FAhEQOCcnMBYkDhcoERI7CAgCAgMMCgMrJBwcJQoKKCiKXFxpQ4E6/vlHHx8oKIldXGkzMTFbKin9Fx4dCSmbEDJzPFdNTHMhIQgIHxcXHh4jIkwpKCtXTU1yISIBPAUhBAMKCSIHBgIFBRogGTYJCQwFBAwGBgkGBgwEBUcTEgMBBwkJMi8vTgYDFxY8IB8UCg0EBwEDAyMWFiIEBAcEAAAAAAEAAAABAAAmrdZpXw889QALBAAAAAAA2KCVZQAAAADYoJVlAAD/wAP+A8AAAAAIAAIAAAAAAAAAAQAAA8D/wAAABAAAAAAAA/4AAQAAAAAAAAAAAAAAAAAAAAUEAAAAAAAAAAAAAAACAAAABAAAAwAAAAAACgAUAB4A/gABAAAABQCXAAMAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEABwAAAAEAAAAAAAIABwBgAAEAAAAAAAMABwA2AAEAAAAAAAQABwB1AAEAAAAAAAUACwAVAAEAAAAAAAYABwBLAAEAAAAAAAoAGgCKAAMAAQQJAAEADgAHAAMAAQQJAAIADgBnAAMAAQQJAAMADgA9AAMAAQQJAAQADgB8AAMAAQQJAAUAFgAgAAMAAQQJAAYADgBSAAMAAQQJAAoANACkaWNvbW9vbgBpAGMAbwBtAG8AbwBuVmVyc2lvbiAxLjAAVgBlAHIAcwBpAG8AbgAgADEALgAwaWNvbW9vbgBpAGMAbwBtAG8AbwBuaWNvbW9vbgBpAGMAbwBtAG8AbwBuUmVndWxhcgBSAGUAZwB1AGwAYQByaWNvbW9vbgBpAGMAbwBtAG8AbwBuRm9udCBnZW5lcmF0ZWQgYnkgSWNvTW9vbi4ARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAuAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==) format('woff');
|
4 |
-
font-weight: normal;
|
5 |
-
font-style: normal;
|
6 |
-
}
|
7 |
-
.qlwapp-whatsapp-icon {
|
8 |
-
font-family: 'qlwapp-whatsapp' !important;
|
9 |
-
speak: none;
|
10 |
-
font-style: normal;
|
11 |
-
font-weight: normal;
|
12 |
-
font-variant: normal;
|
13 |
-
text-transform: none;
|
14 |
-
line-height: 1;
|
15 |
-
-webkit-font-smoothing: antialiased;
|
16 |
-
-moz-osx-font-smoothing: grayscale;
|
17 |
-
}
|
18 |
-
.qlwapp-whatsapp-icon:before {
|
19 |
-
content: "\e900";
|
20 |
-
}
|
21 |
-
#qlwapp {
|
22 |
-
pointer-events: none;
|
23 |
-
box-sizing: border-box;
|
24 |
-
/*&.qlwapp-middle-left {
|
25 |
-
&.qlwapp-button {
|
26 |
-
.qlwapp-developer,
|
27 |
-
.qlwapp-toggle {
|
28 |
-
margin-left: -48px;
|
29 |
-
padding-left: 60px;
|
30 |
-
}
|
31 |
-
}
|
32 |
-
}
|
33 |
-
|
34 |
-
&.qlwapp-middle-right {
|
35 |
-
&.qlwapp-button {
|
36 |
-
.qlwapp-developer,
|
37 |
-
.qlwapp-toggle {
|
38 |
-
margin-right: -48px;
|
39 |
-
padding-right: 60px;
|
40 |
-
}
|
41 |
-
|
42 |
-
}
|
43 |
-
}
|
44 |
-
|
45 |
-
&.qlwapp-bottom-left {
|
46 |
-
&.qlwapp-bubble,
|
47 |
-
&.qlwapp-button {
|
48 |
-
.qlwapp-developer,
|
49 |
-
.qlwapp-toggle {
|
50 |
-
margin-left: 20px;
|
51 |
-
}
|
52 |
-
}
|
53 |
-
|
54 |
-
&.qlwapp-bubble {
|
55 |
-
.qlwapp-toggle {
|
56 |
-
.qlwapp-text {
|
57 |
-
right: auto;
|
58 |
-
left: 60px;
|
59 |
-
}
|
60 |
-
}
|
61 |
-
}
|
62 |
-
|
63 |
-
.qlwapp-box {
|
64 |
-
&:before {
|
65 |
-
right: auto;
|
66 |
-
left: 20px;
|
67 |
-
}
|
68 |
-
}
|
69 |
-
|
70 |
-
}
|
71 |
-
|
72 |
-
&.qlwapp-bottom-right {
|
73 |
-
&.qlwapp-bubble,
|
74 |
-
&.qlwapp-button {
|
75 |
-
|
76 |
-
.qlwapp-developer,
|
77 |
-
.qlwapp-toggle {
|
78 |
-
margin-right: 20px;
|
79 |
-
}
|
80 |
-
}
|
81 |
-
}*/
|
82 |
-
}
|
83 |
-
@media (min-width: 430px) {
|
84 |
-
#qlwapp {
|
85 |
-
width: 430px;
|
86 |
-
}
|
87 |
-
}
|
88 |
-
#qlwapp * {
|
89 |
-
box-sizing: border-box;
|
90 |
-
}
|
91 |
-
#qlwapp.qlwapp-js-ready {
|
92 |
-
display: block;
|
93 |
-
}
|
94 |
-
#qlwapp.qlwapp-hide,
|
95 |
-
#qlwapp.qlwapp-desktop.mobile,
|
96 |
-
#qlwapp.qlwapp-mobile.desktop {
|
97 |
-
display: none;
|
98 |
-
}
|
99 |
-
#qlwapp .qlwapp-readonly,
|
100 |
-
#qlwapp.qlwapp-readonly {
|
101 |
-
pointer-events: none!important;
|
102 |
-
opacity: 0.5!important;
|
103 |
-
}
|
104 |
-
#qlwapp .qlwapp-disabled,
|
105 |
-
#qlwapp.qlwapp-disabled {
|
106 |
-
display: none;
|
107 |
-
visibility: hidden;
|
108 |
-
}
|
109 |
-
#qlwapp.qlwapp-middle-left,
|
110 |
-
#qlwapp.qlwapp-bottom-left,
|
111 |
-
#qlwapp.qlwapp-middle-right,
|
112 |
-
#qlwapp.qlwapp-bottom-right {
|
113 |
-
position: fixed;
|
114 |
-
z-index: 9999999;
|
115 |
-
}
|
116 |
-
#qlwapp.qlwapp-middle-left,
|
117 |
-
#qlwapp.qlwapp-bottom-left {
|
118 |
-
right: auto;
|
119 |
-
left: 0;
|
120 |
-
}
|
121 |
-
#qlwapp.qlwapp-middle-left .qlwapp-toggle .qlwapp-time,
|
122 |
-
#qlwapp.qlwapp-bottom-left .qlwapp-toggle .qlwapp-time {
|
123 |
-
left: 0;
|
124 |
-
right: auto;
|
125 |
-
}
|
126 |
-
#qlwapp.qlwapp-middle-left.qlwapp-bubble .qlwapp-developer,
|
127 |
-
#qlwapp.qlwapp-bottom-left.qlwapp-bubble .qlwapp-developer,
|
128 |
-
#qlwapp.qlwapp-middle-left.qlwapp-button .qlwapp-developer,
|
129 |
-
#qlwapp.qlwapp-bottom-left.qlwapp-button .qlwapp-developer,
|
130 |
-
#qlwapp.qlwapp-middle-left.qlwapp-bubble .qlwapp-toggle,
|
131 |
-
#qlwapp.qlwapp-bottom-left.qlwapp-bubble .qlwapp-toggle,
|
132 |
-
#qlwapp.qlwapp-middle-left.qlwapp-button .qlwapp-toggle,
|
133 |
-
#qlwapp.qlwapp-bottom-left.qlwapp-button .qlwapp-toggle {
|
134 |
-
margin-left: 20px;
|
135 |
-
}
|
136 |
-
#qlwapp.qlwapp-middle-left.qlwapp-bubble .qlwapp-toggle .qlwapp-text,
|
137 |
-
#qlwapp.qlwapp-bottom-left.qlwapp-bubble .qlwapp-toggle .qlwapp-text {
|
138 |
-
right: auto;
|
139 |
-
left: 60px;
|
140 |
-
}
|
141 |
-
#qlwapp.qlwapp-middle-left .qlwapp-box:before,
|
142 |
-
#qlwapp.qlwapp-bottom-left .qlwapp-box:before {
|
143 |
-
right: auto;
|
144 |
-
left: 20px;
|
145 |
-
}
|
146 |
-
#qlwapp.qlwapp-middle-right,
|
147 |
-
#qlwapp.qlwapp-bottom-right {
|
148 |
-
left: auto;
|
149 |
-
right: 0;
|
150 |
-
}
|
151 |
-
#qlwapp.qlwapp-middle-right .qlwapp-toggle .qlwapp-time,
|
152 |
-
#qlwapp.qlwapp-bottom-right .qlwapp-toggle .qlwapp-time {
|
153 |
-
left: auto;
|
154 |
-
right: 0;
|
155 |
-
}
|
156 |
-
#qlwapp.qlwapp-middle-right.qlwapp-bubble .qlwapp-developer,
|
157 |
-
#qlwapp.qlwapp-bottom-right.qlwapp-bubble .qlwapp-developer,
|
158 |
-
#qlwapp.qlwapp-middle-right.qlwapp-button .qlwapp-developer,
|
159 |
-
#qlwapp.qlwapp-bottom-right.qlwapp-button .qlwapp-developer,
|
160 |
-
#qlwapp.qlwapp-middle-right.qlwapp-bubble .qlwapp-toggle,
|
161 |
-
#qlwapp.qlwapp-bottom-right.qlwapp-bubble .qlwapp-toggle,
|
162 |
-
#qlwapp.qlwapp-middle-right.qlwapp-button .qlwapp-toggle,
|
163 |
-
#qlwapp.qlwapp-bottom-right.qlwapp-button .qlwapp-toggle {
|
164 |
-
margin-right: 20px;
|
165 |
-
}
|
166 |
-
#qlwapp.qlwapp-middle-left,
|
167 |
-
#qlwapp.qlwapp-middle-right {
|
168 |
-
top: 40%;
|
169 |
-
bottom: auto;
|
170 |
-
}
|
171 |
-
#qlwapp.qlwapp-middle-left .qlwapp-developer,
|
172 |
-
#qlwapp.qlwapp-middle-right .qlwapp-developer {
|
173 |
-
padding: 0 24px;
|
174 |
-
}
|
175 |
-
#qlwapp.qlwapp-middle-left.qlwapp-button .qlwapp-developer,
|
176 |
-
#qlwapp.qlwapp-middle-left.qlwapp-button .qlwapp-toggle {
|
177 |
-
margin-left: -48px;
|
178 |
-
padding-left: 60px;
|
179 |
-
}
|
180 |
-
#qlwapp.qlwapp-middle-right.qlwapp-button .qlwapp-developer,
|
181 |
-
#qlwapp.qlwapp-middle-right.qlwapp-button .qlwapp-toggle {
|
182 |
-
margin-right: -48px;
|
183 |
-
padding-right: 60px;
|
184 |
-
}
|
185 |
-
#qlwapp.qlwapp-bottom-left,
|
186 |
-
#qlwapp.qlwapp-bottom-right {
|
187 |
-
top: auto;
|
188 |
-
bottom: 0;
|
189 |
-
}
|
190 |
-
#qlwapp.qlwapp-rounded.qlwapp-bubble .qlwapp-toggle {
|
191 |
-
border-radius: 50%;
|
192 |
-
}
|
193 |
-
#qlwapp.qlwapp-rounded.qlwapp-button .qlwapp-toggle {
|
194 |
-
border-radius: 50px;
|
195 |
-
}
|
196 |
-
@media (min-width: 430px) {
|
197 |
-
#qlwapp.qlwapp-rounded .qlwapp-box {
|
198 |
-
border-radius: 8px;
|
199 |
-
}
|
200 |
-
}
|
201 |
-
#qlwapp.qlwapp-rounded .qlwapp-box .qlwapp-user,
|
202 |
-
#qlwapp.qlwapp-rounded .qlwapp-box .qlwapp-message {
|
203 |
-
border-radius: 4px;
|
204 |
-
}
|
205 |
-
#qlwapp p:last-child {
|
206 |
-
margin: 0;
|
207 |
-
}
|
208 |
-
#qlwapp time {
|
209 |
-
opacity: 0.8;
|
210 |
-
font-style: italic;
|
211 |
-
font-size: 10px;
|
212 |
-
}
|
213 |
-
#qlwapp .qlwapp-container {
|
214 |
-
display: flex;
|
215 |
-
flex-direction: column;
|
216 |
-
}
|
217 |
-
#qlwapp .qlwapp-clearfix:before,
|
218 |
-
#qlwapp .qlwapp-clearfix:after {
|
219 |
-
content: '';
|
220 |
-
display: block;
|
221 |
-
clear: both;
|
222 |
-
}
|
223 |
-
#qlwapp .qlwapp-previous,
|
224 |
-
#qlwapp .qlwapp-close {
|
225 |
-
display: block;
|
226 |
-
opacity: 0.8;
|
227 |
-
font-style: unset;
|
228 |
-
font-size: 24px;
|
229 |
-
font-weight: bold;
|
230 |
-
width: 24px;
|
231 |
-
height: 24px;
|
232 |
-
cursor: pointer;
|
233 |
-
text-align: center;
|
234 |
-
line-height: 24px;
|
235 |
-
z-index: 1;
|
236 |
-
}
|
237 |
-
#qlwapp .qlwapp-previous {
|
238 |
-
width: 16px;
|
239 |
-
height: 36px;
|
240 |
-
cursor: pointer;
|
241 |
-
text-align: center;
|
242 |
-
line-height: 36px;
|
243 |
-
margin-right: auto;
|
244 |
-
}
|
245 |
-
#qlwapp .qlwapp-developer {
|
246 |
-
font-size: 8px;
|
247 |
-
top: -20px;
|
248 |
-
position: relative;
|
249 |
-
}
|
250 |
-
#qlwapp .qlwapp-developer,
|
251 |
-
#qlwapp .qlwapp-toggle {
|
252 |
-
display: inline-flex;
|
253 |
-
align-items: center;
|
254 |
-
justify-content: center;
|
255 |
-
margin-left: auto;
|
256 |
-
margin-right: auto;
|
257 |
-
}
|
258 |
-
#qlwapp .qlwapp-toggle {
|
259 |
-
pointer-events: all;
|
260 |
-
cursor: pointer;
|
261 |
-
box-shadow: 0 1px 6px 0 rgba(0, 0, 0, 0.06), 0 2px 32px 0 rgba(0, 0, 0, 0.16);
|
262 |
-
margin-top: 24px;
|
263 |
-
margin-bottom: 24px;
|
264 |
-
position: relative;
|
265 |
-
text-decoration: none;
|
266 |
-
}
|
267 |
-
#qlwapp .qlwapp-toggle,
|
268 |
-
#qlwapp .qlwapp-toggle:active,
|
269 |
-
#qlwapp .qlwapp-toggle:focus,
|
270 |
-
#qlwapp .qlwapp-toggle:hover {
|
271 |
-
outline: none;
|
272 |
-
text-decoration: none;
|
273 |
-
}
|
274 |
-
#qlwapp .qlwapp-toggle .qlwapp-time {
|
275 |
-
position: absolute;
|
276 |
-
bottom: -2em;
|
277 |
-
color: initial;
|
278 |
-
font-size: 10px;
|
279 |
-
display: inline-block;
|
280 |
-
top: auto;
|
281 |
-
width: 120px;
|
282 |
-
}
|
283 |
-
#qlwapp .qlwapp-avatar .qlwapp-avatar-container {
|
284 |
-
overflow: hidden;
|
285 |
-
border-radius: 50%;
|
286 |
-
width: inherit;
|
287 |
-
height: inherit;
|
288 |
-
}
|
289 |
-
#qlwapp .qlwapp-avatar .qlwapp-avatar-container img {
|
290 |
-
width: 100%;
|
291 |
-
height: auto;
|
292 |
-
}
|
293 |
-
#qlwapp.qlwapp-bubble .qlwapp-toggle {
|
294 |
-
width: 60px;
|
295 |
-
height: 60px;
|
296 |
-
}
|
297 |
-
#qlwapp.qlwapp-bubble .qlwapp-toggle .qlwapp-icon,
|
298 |
-
#qlwapp.qlwapp-bubble .qlwapp-toggle .qlwapp-close {
|
299 |
-
position: absolute;
|
300 |
-
display: block;
|
301 |
-
pointer-events: none;
|
302 |
-
font-size: 24px;
|
303 |
-
}
|
304 |
-
#qlwapp.qlwapp-bubble .qlwapp-toggle .qlwapp-text {
|
305 |
-
position: absolute;
|
306 |
-
right: 60px;
|
307 |
-
height: 60px;
|
308 |
-
margin: 0 24px;
|
309 |
-
display: flex;
|
310 |
-
align-items: center;
|
311 |
-
justify-content: flex-end;
|
312 |
-
font-weight: bold;
|
313 |
-
white-space: pre;
|
314 |
-
}
|
315 |
-
#qlwapp.qlwapp-button .qlwapp-toggle {
|
316 |
-
height: 40px;
|
317 |
-
white-space: nowrap;
|
318 |
-
padding: 12px 24px;
|
319 |
-
}
|
320 |
-
#qlwapp.qlwapp-button .qlwapp-toggle .qlwapp-icon {
|
321 |
-
margin: 0 12px 0 0;
|
322 |
-
}
|
323 |
-
#qlwapp.qlwapp-button .qlwapp-toggle .qlwapp-close {
|
324 |
-
display: none;
|
325 |
-
}
|
326 |
-
#qlwapp .qlwapp-box {
|
327 |
-
pointer-events: all;
|
328 |
-
padding-bottom: 56px;
|
329 |
-
position: fixed;
|
330 |
-
top: auto;
|
331 |
-
bottom: 0;
|
332 |
-
left: 0;
|
333 |
-
right: 0;
|
334 |
-
z-index: 99999;
|
335 |
-
box-shadow: 0px 5px 40px 5px rgba(0, 0, 0, 0.5);
|
336 |
-
}
|
337 |
-
@media (min-width: 430px) {
|
338 |
-
#qlwapp .qlwapp-box {
|
339 |
-
position: relative;
|
340 |
-
top: auto;
|
341 |
-
bottom: auto;
|
342 |
-
left: auto;
|
343 |
-
right: auto;
|
344 |
-
box-shadow: 0 8px 25px -5px rgba(45, 62, 79, 0.15);
|
345 |
-
margin-top: 24px;
|
346 |
-
margin-left: 24px;
|
347 |
-
margin-right: 24px;
|
348 |
-
margin-bottom: 12px;
|
349 |
-
}
|
350 |
-
#qlwapp .qlwapp-box:before {
|
351 |
-
content: '';
|
352 |
-
position: absolute;
|
353 |
-
bottom: -6px;
|
354 |
-
right: 24px;
|
355 |
-
width: 13px;
|
356 |
-
height: 13px;
|
357 |
-
transform: rotate(45deg);
|
358 |
-
}
|
359 |
-
#qlwapp .qlwapp-box .qlwapp-header {
|
360 |
-
border-top-left-radius: inherit;
|
361 |
-
border-top-right-radius: inherit;
|
362 |
-
}
|
363 |
-
#qlwapp .qlwapp-box .qlwapp-footer,
|
364 |
-
#qlwapp .qlwapp-box .qlwapp-response {
|
365 |
-
border-bottom-left-radius: inherit;
|
366 |
-
border-bottom-right-radius: inherit;
|
367 |
-
}
|
368 |
-
}
|
369 |
-
#qlwapp .qlwapp-box .qlwapp-header {
|
370 |
-
position: relative;
|
371 |
-
overflow: hidden;
|
372 |
-
}
|
373 |
-
#qlwapp .qlwapp-box .qlwapp-header:before {
|
374 |
-
content: '';
|
375 |
-
position: absolute;
|
376 |
-
top: 0;
|
377 |
-
bottom: 0;
|
378 |
-
left: 0;
|
379 |
-
right: 0;
|
380 |
-
background: linear-gradient(135deg, transparent 0%, rgba(0, 0, 0, 0.3) 100%);
|
381 |
-
}
|
382 |
-
#qlwapp .qlwapp-box .qlwapp-header .qlwapp-close {
|
383 |
-
position: absolute;
|
384 |
-
top: 12px;
|
385 |
-
right: 12px;
|
386 |
-
}
|
387 |
-
@media (min-width: 430px) {
|
388 |
-
#qlwapp .qlwapp-box .qlwapp-header .qlwapp-close {
|
389 |
-
position: absolute;
|
390 |
-
top: 7px;
|
391 |
-
right: 7px;
|
392 |
-
font-size: 16px;
|
393 |
-
}
|
394 |
-
}
|
395 |
-
#qlwapp .qlwapp-box .qlwapp-header .qlwapp-description {
|
396 |
-
position: relative;
|
397 |
-
}
|
398 |
-
#qlwapp .qlwapp-box .qlwapp-description,
|
399 |
-
#qlwapp .qlwapp-box .qlwapp-contact {
|
400 |
-
padding: 24px 36px;
|
401 |
-
height: 100%;
|
402 |
-
}
|
403 |
-
#qlwapp .qlwapp-box .qlwapp-description p,
|
404 |
-
#qlwapp .qlwapp-box .qlwapp-description h3 {
|
405 |
-
color: inherit;
|
406 |
-
font-family: inherit;
|
407 |
-
margin: 0;
|
408 |
-
}
|
409 |
-
#qlwapp .qlwapp-box .qlwapp-description h3 {
|
410 |
-
margin: 0 0 0.25em 0;
|
411 |
-
}
|
412 |
-
#qlwapp .qlwapp-box .qlwapp-contact {
|
413 |
-
display: flex;
|
414 |
-
justify-content: flex-end;
|
415 |
-
align-items: center;
|
416 |
-
text-align: right;
|
417 |
-
}
|
418 |
-
#qlwapp .qlwapp-box .qlwapp-contact .qlwapp-previous {
|
419 |
-
position: relative;
|
420 |
-
left: -16px;
|
421 |
-
}
|
422 |
-
#qlwapp .qlwapp-box .qlwapp-contact .qlwapp-previous > i {
|
423 |
-
line-height: 36px;
|
424 |
-
}
|
425 |
-
#qlwapp .qlwapp-box .qlwapp-contact .qlwapp-avatar {
|
426 |
-
width: 42px;
|
427 |
-
height: 42px;
|
428 |
-
}
|
429 |
-
#qlwapp .qlwapp-box .qlwapp-contact .qlwapp-label,
|
430 |
-
#qlwapp .qlwapp-box .qlwapp-contact .qlwapp-name {
|
431 |
-
color: inherit;
|
432 |
-
}
|
433 |
-
#qlwapp .qlwapp-box .qlwapp-account {
|
434 |
-
color: inherit;
|
435 |
-
padding: 16px 36px;
|
436 |
-
display: flex;
|
437 |
-
align-items: center;
|
438 |
-
overflow: hidden;
|
439 |
-
position: relative;
|
440 |
-
cursor: pointer;
|
441 |
-
width: 100%;
|
442 |
-
text-decoration: none;
|
443 |
-
}
|
444 |
-
#qlwapp .qlwapp-box .qlwapp-account:only-of-type {
|
445 |
-
padding-top: 36px;
|
446 |
-
padding-bottom: 36px;
|
447 |
-
}
|
448 |
-
#qlwapp .qlwapp-box .qlwapp-info {
|
449 |
-
padding: 0 16px;
|
450 |
-
}
|
451 |
-
#qlwapp .qlwapp-box .qlwapp-avatar {
|
452 |
-
position: relative;
|
453 |
-
width: 62px;
|
454 |
-
height: 62px;
|
455 |
-
}
|
456 |
-
#qlwapp .qlwapp-box .qlwapp-avatar:after {
|
457 |
-
content: '';
|
458 |
-
display: block;
|
459 |
-
width: 15px;
|
460 |
-
height: 15px;
|
461 |
-
position: absolute;
|
462 |
-
bottom: 2px;
|
463 |
-
right: 2px;
|
464 |
-
background-image: url(data:image/png;base64,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);
|
465 |
-
background-color: transparent;
|
466 |
-
background-repeat: no-repeat;
|
467 |
-
background-position: center center;
|
468 |
-
background-size: cover;
|
469 |
-
z-index: 4;
|
470 |
-
}
|
471 |
-
#qlwapp .qlwapp-box .qlwapp-time,
|
472 |
-
#qlwapp .qlwapp-box .qlwapp-label,
|
473 |
-
#qlwapp .qlwapp-box .qlwapp-offline-text {
|
474 |
-
font-size: 12px;
|
475 |
-
line-height: 1.5em;
|
476 |
-
opacity:
|
477 |
-
display: block;
|
478 |
-
}
|
479 |
-
#qlwapp .qlwapp-box .qlwapp-time {
|
480 |
-
font-size: 11px;
|
481 |
-
font-style: italic;
|
482 |
-
}
|
483 |
-
#qlwapp .qlwapp-box .qlwapp-name {
|
484 |
-
display: block;
|
485 |
-
font-weight: bold;
|
486 |
-
line-height: 1.5em;
|
487 |
-
}
|
488 |
-
#qlwapp .qlwapp-box .qlwapp-body {
|
489 |
-
overflow-x: hidden;
|
490 |
-
overflow-y: auto;
|
491 |
-
}
|
492 |
-
#qlwapp .qlwapp-box .qlwapp-body .qlwapp-carousel {
|
493 |
-
max-height: 470px;
|
494 |
-
min-height: 134px;
|
495 |
-
}
|
496 |
-
#qlwapp .qlwapp-box .qlwapp-chat {
|
497 |
-
display: flex;
|
498 |
-
flex-direction: column;
|
499 |
-
overflow: hidden;
|
500 |
-
}
|
501 |
-
#qlwapp .qlwapp-box .qlwapp-user,
|
502 |
-
#qlwapp .qlwapp-box .qlwapp-message {
|
503 |
-
padding: 16px 24px;
|
504 |
-
margin: 36px;
|
505 |
-
position: relative;
|
506 |
-
word-wrap: break-word;
|
507 |
-
width: calc(100% - 36px*2);
|
508 |
-
}
|
509 |
-
#qlwapp .qlwapp-box .qlwapp-user:before,
|
510 |
-
#qlwapp .qlwapp-box .qlwapp-message:before {
|
511 |
-
content: '';
|
512 |
-
position: absolute;
|
513 |
-
top: -6px;
|
514 |
-
right: 24px;
|
515 |
-
width: 13px;
|
516 |
-
height: 13px;
|
517 |
-
transform: rotate(45deg);
|
518 |
-
}
|
519 |
-
#qlwapp .qlwapp-box .qlwapp-user {
|
520 |
-
width: auto;
|
521 |
-
max-width: 75%;
|
522 |
-
align-self: flex-start;
|
523 |
-
justify-self: flex-end;
|
524 |
-
margin-top: 0;
|
525 |
-
}
|
526 |
-
#qlwapp .qlwapp-box .qlwapp-user:before {
|
527 |
-
top: auto;
|
528 |
-
bottom: -6px;
|
529 |
-
left: 24px;
|
530 |
-
}
|
531 |
-
#qlwapp .qlwapp-box .qlwapp-padding {
|
532 |
-
padding-bottom: 56px;
|
533 |
-
}
|
534 |
-
#qlwapp .qlwapp-box .qlwapp-footer,
|
535 |
-
#qlwapp .qlwapp-box .qlwapp-response {
|
536 |
-
position: absolute;
|
537 |
-
bottom: 0;
|
538 |
-
left: 0;
|
539 |
-
right: 0;
|
540 |
-
height: auto;
|
541 |
-
width: 100%;
|
542 |
-
}
|
543 |
-
#qlwapp .qlwapp-box .qlwapp-footer,
|
544 |
-
#qlwapp .qlwapp-box .qlwapp-response,
|
545 |
-
#qlwapp .qlwapp-box .qlwapp-footer pre,
|
546 |
-
#qlwapp .qlwapp-box .qlwapp-response pre,
|
547 |
-
#qlwapp .qlwapp-box .qlwapp-footer textarea,
|
548 |
-
#qlwapp .qlwapp-box .qlwapp-response textarea {
|
549 |
-
max-height: 160px;
|
550 |
-
}
|
551 |
-
#qlwapp .qlwapp-box .qlwapp-footer pre,
|
552 |
-
#qlwapp .qlwapp-box .qlwapp-response pre,
|
553 |
-
#qlwapp .qlwapp-box .qlwapp-footer textarea,
|
554 |
-
#qlwapp .qlwapp-box .qlwapp-response textarea {
|
555 |
-
color: inherit;
|
556 |
-
background-color: inherit;
|
557 |
-
}
|
558 |
-
#qlwapp .qlwapp-box .qlwapp-footer:before,
|
559 |
-
#qlwapp .qlwapp-box .qlwapp-response:before {
|
560 |
-
pointer-events: none;
|
561 |
-
position: absolute;
|
562 |
-
content: '';
|
563 |
-
height: 59px;
|
564 |
-
top: -59px;
|
565 |
-
background-image: linear-gradient(transparent, rgba(0, 0, 0, 0.05));
|
566 |
-
left: 0;
|
567 |
-
right: 0;
|
568 |
-
}
|
569 |
-
#qlwapp .qlwapp-box .qlwapp-footer {
|
570 |
-
min-height: 56px;
|
571 |
-
display: flex;
|
572 |
-
align-items: center;
|
573 |
-
justify-content: center;
|
574 |
-
text-align: center;
|
575 |
-
font-size: 12px;
|
576 |
-
padding: 12px 36px;
|
577 |
-
}
|
578 |
-
#qlwapp .qlwapp-box .qlwapp-footer p {
|
579 |
-
padding: 0;
|
580 |
-
font-size: inherit;
|
581 |
-
}
|
582 |
-
#qlwapp .qlwapp-box .qlwapp-footer p:last-child {
|
583 |
-
margin-bottom: 0;
|
584 |
-
}
|
585 |
-
#qlwapp .qlwapp-box .qlwapp-response,
|
586 |
-
#qlwapp .qlwapp-box .qlwapp-response pre,
|
587 |
-
#qlwapp .qlwapp-box .qlwapp-response textarea,
|
588 |
-
#qlwapp .qlwapp-box .qlwapp-response .qlwapp-buttons {
|
589 |
-
min-height: 56px;
|
590 |
-
}
|
591 |
-
#qlwapp .qlwapp-box .qlwapp-response pre,
|
592 |
-
#qlwapp .qlwapp-box .qlwapp-response textarea {
|
593 |
-
width: 100%;
|
594 |
-
height: 100%;
|
595 |
-
resize: none;
|
596 |
-
border: none;
|
597 |
-
padding: 18px 56px 18px 36px;
|
598 |
-
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
599 |
-
font-size: 14px;
|
600 |
-
font-weight: normal;
|
601 |
-
line-height: 20px;
|
602 |
-
white-space: pre-wrap;
|
603 |
-
word-wrap: break-word;
|
604 |
-
border-radius: inherit;
|
605 |
-
margin: 0;
|
606 |
-
}
|
607 |
-
#qlwapp .qlwapp-box .qlwapp-response pre {
|
608 |
-
visibility: hidden;
|
609 |
-
}
|
610 |
-
#qlwapp .qlwapp-box .qlwapp-response textarea {
|
611 |
-
position: absolute;
|
612 |
-
bottom: 0;
|
613 |
-
left: 0;
|
614 |
-
}
|
615 |
-
#qlwapp .qlwapp-box .qlwapp-response textarea:focus {
|
616 |
-
outline: none;
|
617 |
-
}
|
618 |
-
#qlwapp .qlwapp-box .qlwapp-response .qlwapp-buttons {
|
619 |
-
position: absolute;
|
620 |
-
top: 0;
|
621 |
-
right: 21px;
|
622 |
-
display: flex;
|
623 |
-
align-items: center;
|
624 |
-
}
|
625 |
-
#qlwapp .qlwapp-box .qlwapp-response .qlwapp-buttons.active > i {
|
626 |
-
display: none;
|
627 |
-
}
|
628 |
-
#qlwapp .qlwapp-box .qlwapp-response .qlwapp-buttons.active > i.qlwf-emoji {
|
629 |
-
display: block;
|
630 |
-
}
|
631 |
-
#qlwapp .qlwapp-box .qlwapp-response .qlwapp-buttons > i {
|
632 |
-
opacity: 0.4;
|
633 |
-
}
|
634 |
-
#qlwapp .qlwapp-box .qlwapp-response .qlwapp-buttons > i,
|
635 |
-
#qlwapp .qlwapp-box .qlwapp-response .qlwapp-buttons > a {
|
636 |
-
cursor: pointer;
|
637 |
-
margin: 0 0 0 10px;
|
638 |
-
display: inherit;
|
639 |
-
font-size: 18px;
|
640 |
-
line-height: 24px;
|
641 |
-
}
|
642 |
-
#qlwapp .qlwapp-previous,
|
643 |
-
#qlwapp .qlwapp-close,
|
644 |
-
#qlwapp .qlwapp-toggle,
|
645 |
-
#qlwapp .qlwapp-box .qlwapp-header,
|
646 |
-
#qlwapp .qlwapp-box .qlwapp-contact,
|
647 |
-
#qlwapp .qlwapp-box .qlwapp-user {
|
648 |
-
color: #ffffff;
|
649 |
-
}
|
650 |
-
#qlwapp.qlwapp-bubble .qlwapp-toggle .qlwapp-text {
|
651 |
-
color: #303030;
|
652 |
-
}
|
653 |
-
#qlwapp .qlwapp-box,
|
654 |
-
#qlwapp .qlwapp-box:before {
|
655 |
-
background-color: #fff;
|
656 |
-
}
|
657 |
-
#qlwapp .qlwapp-box .qlwapp-account {
|
658 |
-
background-color: #fff;
|
659 |
-
}
|
660 |
-
#qlwapp .qlwapp-box .qlwapp-account:not(:first-child) {
|
661 |
-
border-top: 1px solid #f5f5f5;
|
662 |
-
}
|
663 |
-
#qlwapp .qlwapp-box .qlwapp-avatar .qlwapp-avatar-container {
|
664 |
-
background-color: #eee;
|
665 |
-
}
|
666 |
-
#qlwapp .qlwapp-box .qlwapp-message,
|
667 |
-
#qlwapp .qlwapp-box .qlwapp-message:before {
|
668 |
-
background-color: #eee;
|
669 |
-
}
|
670 |
-
#qlwapp .qlwapp-box .qlwapp-footer,
|
671 |
-
#qlwapp .qlwapp-box .qlwapp-response {
|
672 |
-
color: #303030;
|
673 |
-
background-color: #fff;
|
674 |
-
border-top: 1px solid #e6e6e6;
|
675 |
-
}
|
676 |
-
#qlwapp .qlwapp-toggle,
|
677 |
-
#qlwapp .qlwapp-box .qlwapp-header,
|
678 |
-
#qlwapp .qlwapp-box .qlwapp-user,
|
679 |
-
#qlwapp .qlwapp-box .qlwapp-user:before {
|
680 |
-
background-color: #303030;
|
681 |
-
}
|
682 |
-
#qlwapp {
|
683 |
-
display: none;
|
684 |
-
}
|
685 |
-
#qlwapp.qlwapp-show .qlwapp-box {
|
686 |
-
visibility: visible;
|
687 |
-
opacity: 1;
|
688 |
-
transform: translateY(0) scale(1);
|
689 |
-
display: block;
|
690 |
-
}
|
691 |
-
#qlwapp.qlwapp-transition .qlwapp-box {
|
692 |
-
visibility: visible;
|
693 |
-
display: block;
|
694 |
-
}
|
695 |
-
#qlwapp.qlwapp-bubble.qlwapp-show .qlwapp-toggle .qlwapp-icon {
|
696 |
-
transform: scale(0, 0);
|
697 |
-
opacity: 0;
|
698 |
-
}
|
699 |
-
#qlwapp.qlwapp-bubble.qlwapp-show .qlwapp-toggle .qlwapp-close {
|
700 |
-
transform: scale(1, 1);
|
701 |
-
opacity: 1;
|
702 |
-
}
|
703 |
-
#qlwapp.qlwapp-bubble .qlwapp-toggle .qlwapp-close {
|
704 |
-
transform: scale(0, 0);
|
705 |
-
opacity: 0;
|
706 |
-
}
|
707 |
-
#qlwapp.qlwapp-bubble .qlwapp-toggle .qlwapp-icon {
|
708 |
-
transform: scale(1, 1);
|
709 |
-
opacity: 1;
|
710 |
-
}
|
711 |
-
#qlwapp.qlwapp-bubble .qlwapp-toggle .qlwapp-icon,
|
712 |
-
#qlwapp.qlwapp-bubble .qlwapp-toggle .qlwapp-close {
|
713 |
-
transition: transform 300ms cubic-bezier(0.215, 0.61, 0.355, 1), opacity 300ms ease-in;
|
714 |
-
}
|
715 |
-
#qlwapp .qlwapp-box {
|
716 |
-
display: none;
|
717 |
-
opacity: 0;
|
718 |
-
visibility: hidden;
|
719 |
-
transform: translateY(50px);
|
720 |
-
transition: transform 300ms cubic-bezier(0.215, 0.61, 0.355, 1), opacity 300ms ease-in;
|
721 |
-
}
|
722 |
-
@media (min-width: 430px) {
|
723 |
-
#qlwapp .qlwapp-box {
|
724 |
-
transform: translateY(50px) scale(0.9);
|
725 |
-
}
|
726 |
-
}
|
727 |
-
#qlwapp .qlwapp-box .qlwapp-carousel {
|
728 |
-
display: flex;
|
729 |
-
width: 200%;
|
730 |
-
height: 100%;
|
731 |
-
}
|
732 |
-
#qlwapp .qlwapp-box .qlwapp-carousel .qlwapp-slide {
|
733 |
-
width: 50%;
|
734 |
-
transition: max-height 500ms cubic-bezier(0.215, 0.61, 0.355, 1) 1000ms, transform 300ms cubic-bezier(0.215, 0.61, 0.355, 1) 500ms, opacity 500ms ease-in 500ms;
|
735 |
-
height: 100%;
|
736 |
-
overflow: hidden;
|
737 |
-
}
|
738 |
-
#qlwapp .qlwapp-box .qlwapp-header .qlwapp-slide {
|
739 |
-
max-height: 300px;
|
740 |
-
}
|
741 |
-
#qlwapp .qlwapp-box .qlwapp-header .qlwapp-name,
|
742 |
-
#qlwapp .qlwapp-box .qlwapp-header .qlwapp-label,
|
743 |
-
#qlwapp .qlwapp-box .qlwapp-header .qlwapp-avatar {
|
744 |
-
opacity: 0;
|
745 |
-
transition: transform cubic-bezier(0.215, 0.61, 0.355, 1) 0.3s, opacity ease-in 0.3s;
|
746 |
-
}
|
747 |
-
#qlwapp .qlwapp-box .qlwapp-header .qlwapp-name,
|
748 |
-
#qlwapp .qlwapp-box .qlwapp-header .qlwapp-label {
|
749 |
-
transform: translateX(56px);
|
750 |
-
}
|
751 |
-
#qlwapp .qlwapp-box .qlwapp-header .qlwapp-avatar {
|
752 |
-
transform: scale(0.5);
|
753 |
-
}
|
754 |
-
#qlwapp .qlwapp-box .qlwapp-header .qlwapp-name {
|
755 |
-
transition-delay: 800ms;
|
756 |
-
}
|
757 |
-
#qlwapp .qlwapp-box .qlwapp-header .qlwapp-label {
|
758 |
-
transition-delay: 850ms;
|
759 |
-
}
|
760 |
-
#qlwapp .qlwapp-box .qlwapp-header .qlwapp-avatar {
|
761 |
-
transition-delay: 900ms;
|
762 |
-
}
|
763 |
-
#qlwapp .qlwapp-box .qlwapp-footer,
|
764 |
-
#qlwapp .qlwapp-box .qlwapp-response,
|
765 |
-
#qlwapp .qlwapp-box .qlwapp-previous,
|
766 |
-
#qlwapp .qlwapp-box .qlwapp-message,
|
767 |
-
#qlwapp .qlwapp-box .qlwapp-user {
|
768 |
-
transition: transform cubic-bezier(0.215, 0.61, 0.355, 1) 600ms, opacity ease-in 200ms;
|
769 |
-
}
|
770 |
-
#qlwapp .qlwapp-box .qlwapp-response,
|
771 |
-
#qlwapp .qlwapp-box .qlwapp-previous,
|
772 |
-
#qlwapp .qlwapp-box .qlwapp-user {
|
773 |
-
opacity: 0;
|
774 |
-
}
|
775 |
-
#qlwapp .qlwapp-box .qlwapp-response {
|
776 |
-
pointer-events: none;
|
777 |
-
}
|
778 |
-
#qlwapp .qlwapp-box .qlwapp-previous {
|
779 |
-
transform: translateX(56px);
|
780 |
-
}
|
781 |
-
#qlwapp .qlwapp-box .qlwapp-user {
|
782 |
-
transform: translateY(56px);
|
783 |
-
}
|
784 |
-
#qlwapp .qlwapp-box .qlwapp-close {
|
785 |
-
transition: opacity 300ms cubic-bezier(0.215, 0.61, 0.355, 1);
|
786 |
-
}
|
787 |
-
#qlwapp .qlwapp-box .qlwapp-description {
|
788 |
-
transition: transform 600ms cubic-bezier(0.215, 0.61, 0.355, 1), opacity 900ms cubic-bezier(0.215, 0.61, 0.355, 1);
|
789 |
-
}
|
790 |
-
#qlwapp .qlwapp-box .qlwapp-account {
|
791 |
-
transition: transform 600ms cubic-bezier(0.215, 0.61, 0.355, 1), opacity 150ms ease-in;
|
792 |
-
}
|
793 |
-
#qlwapp .qlwapp-box .qlwapp-previous {
|
794 |
-
transition-delay: 800ms;
|
795 |
-
}
|
796 |
-
#qlwapp .qlwapp-box .qlwapp-message {
|
797 |
-
transition-delay: 900ms;
|
798 |
-
}
|
799 |
-
#qlwapp .qlwapp-box .qlwapp-close,
|
800 |
-
#qlwapp .qlwapp-box .qlwapp-description {
|
801 |
-
transition-delay: 900ms;
|
802 |
-
}
|
803 |
-
#qlwapp .qlwapp-box .qlwapp-user {
|
804 |
-
transition-delay: 200ms;
|
805 |
-
}
|
806 |
-
#qlwapp .qlwapp-box .qlwapp-account:nth-of-type(6) {
|
807 |
-
transition-delay: 600ms;
|
808 |
-
}
|
809 |
-
#qlwapp .qlwapp-box .qlwapp-account:nth-of-type(5) {
|
810 |
-
transition-delay: 500ms;
|
811 |
-
}
|
812 |
-
#qlwapp .qlwapp-box .qlwapp-account:nth-of-type(4) {
|
813 |
-
transition-delay: 400ms;
|
814 |
-
}
|
815 |
-
#qlwapp .qlwapp-box .qlwapp-account:nth-of-type(3) {
|
816 |
-
transition-delay: 300ms;
|
817 |
-
}
|
818 |
-
#qlwapp .qlwapp-box .qlwapp-account:nth-of-type(2) {
|
819 |
-
transition-delay: 200ms;
|
820 |
-
}
|
821 |
-
#qlwapp .qlwapp-box .qlwapp-account:nth-of-type(1) {
|
822 |
-
transition-delay: 100ms;
|
823 |
-
}
|
824 |
-
#qlwapp .qlwapp-box .qlwapp-slide .qlwapp-message {
|
825 |
-
opacity: 0;
|
826 |
-
transform: translateY(-56px);
|
827 |
-
}
|
828 |
-
#qlwapp .qlwapp-box .qlwapp-slide .qlwapp-box .qlwapp-account:hover {
|
829 |
-
background-color: #fafafa;
|
830 |
-
}
|
831 |
-
#qlwapp .qlwapp-box.response .qlwapp-carousel .qlwapp-slide {
|
832 |
-
transform: translateX(-100%);
|
833 |
-
}
|
834 |
-
#qlwapp .qlwapp-box.response .qlwapp-body .qlwapp-carousel {
|
835 |
-
overflow: hidden;
|
836 |
-
max-height: 134px!important;
|
837 |
-
min-height: 122px;
|
838 |
-
}
|
839 |
-
#qlwapp .qlwapp-box.response .qlwapp-close {
|
840 |
-
transition-delay: 0ms;
|
841 |
-
}
|
842 |
-
#qlwapp .qlwapp-box.response .qlwapp-close,
|
843 |
-
#qlwapp .qlwapp-box.response .qlwapp-footer,
|
844 |
-
#qlwapp .qlwapp-box.response .qlwapp-description,
|
845 |
-
#qlwapp .qlwapp-box.response .qlwapp-account {
|
846 |
-
opacity: 0;
|
847 |
-
}
|
848 |
-
#qlwapp .qlwapp-box.response .qlwapp-account {
|
849 |
-
transform: translateY(-33.333%);
|
850 |
-
border-top-color: transparent!important;
|
851 |
-
}
|
852 |
-
#qlwapp .qlwapp-box.response .qlwapp-user {
|
853 |
-
display: block;
|
854 |
-
}
|
855 |
-
#qlwapp .qlwapp-box.response .qlwapp-message,
|
856 |
-
#qlwapp .qlwapp-box.response .qlwapp-previous,
|
857 |
-
#qlwapp .qlwapp-box.response .qlwapp-response {
|
858 |
-
opacity: 1;
|
859 |
-
}
|
860 |
-
#qlwapp .qlwapp-box.response .qlwapp-response {
|
861 |
-
pointer-events: all;
|
862 |
-
}
|
863 |
-
#qlwapp .qlwapp-box.response .qlwapp-message,
|
864 |
-
#qlwapp .qlwapp-box.response .qlwapp-previous {
|
865 |
-
transform: translate(0);
|
866 |
-
}
|
867 |
-
#qlwapp .qlwapp-box.response .qlwapp-header .qlwapp-slide {
|
868 |
-
max-height: 84px;
|
869 |
-
}
|
870 |
-
#qlwapp .qlwapp-box.response .qlwapp-header .qlwapp-name,
|
871 |
-
#qlwapp .qlwapp-box.response .qlwapp-header .qlwapp-avatar {
|
872 |
-
opacity: 1;
|
873 |
-
}
|
874 |
-
#qlwapp .qlwapp-box.response .qlwapp-header .qlwapp-label {
|
875 |
-
opacity: 0.5;
|
876 |
-
}
|
877 |
-
#qlwapp .qlwapp-box.response .qlwapp-header .qlwapp-name,
|
878 |
-
#qlwapp .qlwapp-box.response .qlwapp-header .qlwapp-label {
|
879 |
-
transform: translateX(0);
|
880 |
-
}
|
881 |
-
#qlwapp .qlwapp-box.response .qlwapp-header .qlwapp-avatar {
|
882 |
-
transform: scale(1);
|
883 |
-
}
|
884 |
-
#qlwapp .qlwapp-box.response.opening .qlwapp-footer,
|
885 |
-
#qlwapp .qlwapp-box.response.opening .qlwapp-response,
|
886 |
-
#qlwapp .qlwapp-box.response.opening .qlwapp-close,
|
887 |
-
#qlwapp .qlwapp-box.response.opening .qlwapp-previous,
|
888 |
-
#qlwapp .qlwapp-box.response.opening .qlwapp-description,
|
889 |
-
#qlwapp .qlwapp-box.response.opening .qlwapp-header .qlwapp-name,
|
890 |
-
#qlwapp .qlwapp-box.response.opening .qlwapp-header .qlwapp-label {
|
891 |
-
visibility: visible;
|
892 |
-
}
|
893 |
-
#qlwapp .qlwapp-box.texting .qlwapp-body {
|
894 |
-
overflow-y: auto;
|
895 |
-
}
|
896 |
-
#qlwapp .qlwapp-box.texting .qlwapp-user {
|
897 |
-
opacity: 1;
|
898 |
-
transform: translate(0);
|
899 |
-
}
|
900 |
-
#qlwapp .qlwapp-box.closing .qlwapp-previous {
|
901 |
-
transition-delay: 0ms;
|
902 |
-
transform: translateX(-24px);
|
903 |
-
opacity: 0;
|
904 |
-
transition: transform cubic-bezier(0.215, 0.61, 0.355, 1) 300ms, opacity ease-out 200ms;
|
905 |
-
}
|
906 |
-
#qlwapp .qlwapp-box.closing .qlwapp-description {
|
907 |
-
opacity: 0;
|
908 |
-
}
|
909 |
/*# sourceMappingURL=qlwapp.css.map */
|
1 |
+
@font-face {
|
2 |
+
font-family: 'qlwapp-whatsapp';
|
3 |
+
src: url(data:application/x-font-woff;charset=utf-8;base64,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) format('woff');
|
4 |
+
font-weight: normal;
|
5 |
+
font-style: normal;
|
6 |
+
}
|
7 |
+
.qlwapp-whatsapp-icon {
|
8 |
+
font-family: 'qlwapp-whatsapp' !important;
|
9 |
+
speak: none;
|
10 |
+
font-style: normal;
|
11 |
+
font-weight: normal;
|
12 |
+
font-variant: normal;
|
13 |
+
text-transform: none;
|
14 |
+
line-height: 1;
|
15 |
+
-webkit-font-smoothing: antialiased;
|
16 |
+
-moz-osx-font-smoothing: grayscale;
|
17 |
+
}
|
18 |
+
.qlwapp-whatsapp-icon:before {
|
19 |
+
content: "\e900";
|
20 |
+
}
|
21 |
+
#qlwapp {
|
22 |
+
pointer-events: none;
|
23 |
+
box-sizing: border-box;
|
24 |
+
/*&.qlwapp-middle-left {
|
25 |
+
&.qlwapp-button {
|
26 |
+
.qlwapp-developer,
|
27 |
+
.qlwapp-toggle {
|
28 |
+
margin-left: -48px;
|
29 |
+
padding-left: 60px;
|
30 |
+
}
|
31 |
+
}
|
32 |
+
}
|
33 |
+
|
34 |
+
&.qlwapp-middle-right {
|
35 |
+
&.qlwapp-button {
|
36 |
+
.qlwapp-developer,
|
37 |
+
.qlwapp-toggle {
|
38 |
+
margin-right: -48px;
|
39 |
+
padding-right: 60px;
|
40 |
+
}
|
41 |
+
|
42 |
+
}
|
43 |
+
}
|
44 |
+
|
45 |
+
&.qlwapp-bottom-left {
|
46 |
+
&.qlwapp-bubble,
|
47 |
+
&.qlwapp-button {
|
48 |
+
.qlwapp-developer,
|
49 |
+
.qlwapp-toggle {
|
50 |
+
margin-left: 20px;
|
51 |
+
}
|
52 |
+
}
|
53 |
+
|
54 |
+
&.qlwapp-bubble {
|
55 |
+
.qlwapp-toggle {
|
56 |
+
.qlwapp-text {
|
57 |
+
right: auto;
|
58 |
+
left: 60px;
|
59 |
+
}
|
60 |
+
}
|
61 |
+
}
|
62 |
+
|
63 |
+
.qlwapp-box {
|
64 |
+
&:before {
|
65 |
+
right: auto;
|
66 |
+
left: 20px;
|
67 |
+
}
|
68 |
+
}
|
69 |
+
|
70 |
+
}
|
71 |
+
|
72 |
+
&.qlwapp-bottom-right {
|
73 |
+
&.qlwapp-bubble,
|
74 |
+
&.qlwapp-button {
|
75 |
+
|
76 |
+
.qlwapp-developer,
|
77 |
+
.qlwapp-toggle {
|
78 |
+
margin-right: 20px;
|
79 |
+
}
|
80 |
+
}
|
81 |
+
}*/
|
82 |
+
}
|
83 |
+
@media (min-width: 430px) {
|
84 |
+
#qlwapp {
|
85 |
+
width: 430px;
|
86 |
+
}
|
87 |
+
}
|
88 |
+
#qlwapp * {
|
89 |
+
box-sizing: border-box;
|
90 |
+
}
|
91 |
+
#qlwapp.qlwapp-js-ready {
|
92 |
+
display: block;
|
93 |
+
}
|
94 |
+
#qlwapp.qlwapp-hide,
|
95 |
+
#qlwapp.qlwapp-desktop.mobile,
|
96 |
+
#qlwapp.qlwapp-mobile.desktop {
|
97 |
+
display: none;
|
98 |
+
}
|
99 |
+
#qlwapp .qlwapp-readonly,
|
100 |
+
#qlwapp.qlwapp-readonly {
|
101 |
+
pointer-events: none!important;
|
102 |
+
opacity: 0.5!important;
|
103 |
+
}
|
104 |
+
#qlwapp .qlwapp-disabled,
|
105 |
+
#qlwapp.qlwapp-disabled {
|
106 |
+
display: none;
|
107 |
+
visibility: hidden;
|
108 |
+
}
|
109 |
+
#qlwapp.qlwapp-middle-left,
|
110 |
+
#qlwapp.qlwapp-bottom-left,
|
111 |
+
#qlwapp.qlwapp-middle-right,
|
112 |
+
#qlwapp.qlwapp-bottom-right {
|
113 |
+
position: fixed;
|
114 |
+
z-index: 9999999;
|
115 |
+
}
|
116 |
+
#qlwapp.qlwapp-middle-left,
|
117 |
+
#qlwapp.qlwapp-bottom-left {
|
118 |
+
right: auto;
|
119 |
+
left: 0;
|
120 |
+
}
|
121 |
+
#qlwapp.qlwapp-middle-left .qlwapp-toggle .qlwapp-time,
|
122 |
+
#qlwapp.qlwapp-bottom-left .qlwapp-toggle .qlwapp-time {
|
123 |
+
left: 0;
|
124 |
+
right: auto;
|
125 |
+
}
|
126 |
+
#qlwapp.qlwapp-middle-left.qlwapp-bubble .qlwapp-developer,
|
127 |
+
#qlwapp.qlwapp-bottom-left.qlwapp-bubble .qlwapp-developer,
|
128 |
+
#qlwapp.qlwapp-middle-left.qlwapp-button .qlwapp-developer,
|
129 |
+
#qlwapp.qlwapp-bottom-left.qlwapp-button .qlwapp-developer,
|
130 |
+
#qlwapp.qlwapp-middle-left.qlwapp-bubble .qlwapp-toggle,
|
131 |
+
#qlwapp.qlwapp-bottom-left.qlwapp-bubble .qlwapp-toggle,
|
132 |
+
#qlwapp.qlwapp-middle-left.qlwapp-button .qlwapp-toggle,
|
133 |
+
#qlwapp.qlwapp-bottom-left.qlwapp-button .qlwapp-toggle {
|
134 |
+
margin-left: 20px;
|
135 |
+
}
|
136 |
+
#qlwapp.qlwapp-middle-left.qlwapp-bubble .qlwapp-toggle .qlwapp-text,
|
137 |
+
#qlwapp.qlwapp-bottom-left.qlwapp-bubble .qlwapp-toggle .qlwapp-text {
|
138 |
+
right: auto;
|
139 |
+
left: 60px;
|
140 |
+
}
|
141 |
+
#qlwapp.qlwapp-middle-left .qlwapp-box:before,
|
142 |
+
#qlwapp.qlwapp-bottom-left .qlwapp-box:before {
|
143 |
+
right: auto;
|
144 |
+
left: 20px;
|
145 |
+
}
|
146 |
+
#qlwapp.qlwapp-middle-right,
|
147 |
+
#qlwapp.qlwapp-bottom-right {
|
148 |
+
left: auto;
|
149 |
+
right: 0;
|
150 |
+
}
|
151 |
+
#qlwapp.qlwapp-middle-right .qlwapp-toggle .qlwapp-time,
|
152 |
+
#qlwapp.qlwapp-bottom-right .qlwapp-toggle .qlwapp-time {
|
153 |
+
left: auto;
|
154 |
+
right: 0;
|
155 |
+
}
|
156 |
+
#qlwapp.qlwapp-middle-right.qlwapp-bubble .qlwapp-developer,
|
157 |
+
#qlwapp.qlwapp-bottom-right.qlwapp-bubble .qlwapp-developer,
|
158 |
+
#qlwapp.qlwapp-middle-right.qlwapp-button .qlwapp-developer,
|
159 |
+
#qlwapp.qlwapp-bottom-right.qlwapp-button .qlwapp-developer,
|
160 |
+
#qlwapp.qlwapp-middle-right.qlwapp-bubble .qlwapp-toggle,
|
161 |
+
#qlwapp.qlwapp-bottom-right.qlwapp-bubble .qlwapp-toggle,
|
162 |
+
#qlwapp.qlwapp-middle-right.qlwapp-button .qlwapp-toggle,
|
163 |
+
#qlwapp.qlwapp-bottom-right.qlwapp-button .qlwapp-toggle {
|
164 |
+
margin-right: 20px;
|
165 |
+
}
|
166 |
+
#qlwapp.qlwapp-middle-left,
|
167 |
+
#qlwapp.qlwapp-middle-right {
|
168 |
+
top: 40%;
|
169 |
+
bottom: auto;
|
170 |
+
}
|
171 |
+
#qlwapp.qlwapp-middle-left .qlwapp-developer,
|
172 |
+
#qlwapp.qlwapp-middle-right .qlwapp-developer {
|
173 |
+
padding: 0 24px;
|
174 |
+
}
|
175 |
+
#qlwapp.qlwapp-middle-left.qlwapp-button .qlwapp-developer,
|
176 |
+
#qlwapp.qlwapp-middle-left.qlwapp-button .qlwapp-toggle {
|
177 |
+
margin-left: -48px;
|
178 |
+
padding-left: 60px;
|
179 |
+
}
|
180 |
+
#qlwapp.qlwapp-middle-right.qlwapp-button .qlwapp-developer,
|
181 |
+
#qlwapp.qlwapp-middle-right.qlwapp-button .qlwapp-toggle {
|
182 |
+
margin-right: -48px;
|
183 |
+
padding-right: 60px;
|
184 |
+
}
|
185 |
+
#qlwapp.qlwapp-bottom-left,
|
186 |
+
#qlwapp.qlwapp-bottom-right {
|
187 |
+
top: auto;
|
188 |
+
bottom: 0;
|
189 |
+
}
|
190 |
+
#qlwapp.qlwapp-rounded.qlwapp-bubble .qlwapp-toggle {
|
191 |
+
border-radius: 50%;
|
192 |
+
}
|
193 |
+
#qlwapp.qlwapp-rounded.qlwapp-button .qlwapp-toggle {
|
194 |
+
border-radius: 50px;
|
195 |
+
}
|
196 |
+
@media (min-width: 430px) {
|
197 |
+
#qlwapp.qlwapp-rounded .qlwapp-box {
|
198 |
+
border-radius: 8px;
|
199 |
+
}
|
200 |
+
}
|
201 |
+
#qlwapp.qlwapp-rounded .qlwapp-box .qlwapp-user,
|
202 |
+
#qlwapp.qlwapp-rounded .qlwapp-box .qlwapp-message {
|
203 |
+
border-radius: 4px;
|
204 |
+
}
|
205 |
+
#qlwapp p:last-child {
|
206 |
+
margin: 0;
|
207 |
+
}
|
208 |
+
#qlwapp time {
|
209 |
+
opacity: 0.8;
|
210 |
+
font-style: italic;
|
211 |
+
font-size: 10px;
|
212 |
+
}
|
213 |
+
#qlwapp .qlwapp-container {
|
214 |
+
display: flex;
|
215 |
+
flex-direction: column;
|
216 |
+
}
|
217 |
+
#qlwapp .qlwapp-clearfix:before,
|
218 |
+
#qlwapp .qlwapp-clearfix:after {
|
219 |
+
content: '';
|
220 |
+
display: block;
|
221 |
+
clear: both;
|
222 |
+
}
|
223 |
+
#qlwapp .qlwapp-previous,
|
224 |
+
#qlwapp .qlwapp-close {
|
225 |
+
display: block;
|
226 |
+
opacity: 0.8;
|
227 |
+
font-style: unset;
|
228 |
+
font-size: 24px;
|
229 |
+
font-weight: bold;
|
230 |
+
width: 24px;
|
231 |
+
height: 24px;
|
232 |
+
cursor: pointer;
|
233 |
+
text-align: center;
|
234 |
+
line-height: 24px;
|
235 |
+
z-index: 1;
|
236 |
+
}
|
237 |
+
#qlwapp .qlwapp-previous {
|
238 |
+
width: 16px;
|
239 |
+
height: 36px;
|
240 |
+
cursor: pointer;
|
241 |
+
text-align: center;
|
242 |
+
line-height: 36px;
|
243 |
+
margin-right: auto;
|
244 |
+
}
|
245 |
+
#qlwapp .qlwapp-developer {
|
246 |
+
font-size: 8px;
|
247 |
+
top: -20px;
|
248 |
+
position: relative;
|
249 |
+
}
|
250 |
+
#qlwapp .qlwapp-developer,
|
251 |
+
#qlwapp .qlwapp-toggle {
|
252 |
+
display: inline-flex;
|
253 |
+
align-items: center;
|
254 |
+
justify-content: center;
|
255 |
+
margin-left: auto;
|
256 |
+
margin-right: auto;
|
257 |
+
}
|
258 |
+
#qlwapp .qlwapp-toggle {
|
259 |
+
pointer-events: all;
|
260 |
+
cursor: pointer;
|
261 |
+
box-shadow: 0 1px 6px 0 rgba(0, 0, 0, 0.06), 0 2px 32px 0 rgba(0, 0, 0, 0.16);
|
262 |
+
margin-top: 24px;
|
263 |
+
margin-bottom: 24px;
|
264 |
+
position: relative;
|
265 |
+
text-decoration: none;
|
266 |
+
}
|
267 |
+
#qlwapp .qlwapp-toggle,
|
268 |
+
#qlwapp .qlwapp-toggle:active,
|
269 |
+
#qlwapp .qlwapp-toggle:focus,
|
270 |
+
#qlwapp .qlwapp-toggle:hover {
|
271 |
+
outline: none;
|
272 |
+
text-decoration: none;
|
273 |
+
}
|
274 |
+
#qlwapp .qlwapp-toggle .qlwapp-time {
|
275 |
+
position: absolute;
|
276 |
+
bottom: -2em;
|
277 |
+
color: initial;
|
278 |
+
font-size: 10px;
|
279 |
+
display: inline-block;
|
280 |
+
top: auto;
|
281 |
+
width: 120px;
|
282 |
+
}
|
283 |
+
#qlwapp .qlwapp-avatar .qlwapp-avatar-container {
|
284 |
+
overflow: hidden;
|
285 |
+
border-radius: 50%;
|
286 |
+
width: inherit;
|
287 |
+
height: inherit;
|
288 |
+
}
|
289 |
+
#qlwapp .qlwapp-avatar .qlwapp-avatar-container img {
|
290 |
+
width: 100%;
|
291 |
+
height: auto;
|
292 |
+
}
|
293 |
+
#qlwapp.qlwapp-bubble .qlwapp-toggle {
|
294 |
+
width: 60px;
|
295 |
+
height: 60px;
|
296 |
+
}
|
297 |
+
#qlwapp.qlwapp-bubble .qlwapp-toggle .qlwapp-icon,
|
298 |
+
#qlwapp.qlwapp-bubble .qlwapp-toggle .qlwapp-close {
|
299 |
+
position: absolute;
|
300 |
+
display: block;
|
301 |
+
pointer-events: none;
|
302 |
+
font-size: 24px;
|
303 |
+
}
|
304 |
+
#qlwapp.qlwapp-bubble .qlwapp-toggle .qlwapp-text {
|
305 |
+
position: absolute;
|
306 |
+
right: 60px;
|
307 |
+
height: 60px;
|
308 |
+
margin: 0 24px;
|
309 |
+
display: flex;
|
310 |
+
align-items: center;
|
311 |
+
justify-content: flex-end;
|
312 |
+
font-weight: bold;
|
313 |
+
white-space: pre;
|
314 |
+
}
|
315 |
+
#qlwapp.qlwapp-button .qlwapp-toggle {
|
316 |
+
height: 40px;
|
317 |
+
white-space: nowrap;
|
318 |
+
padding: 12px 24px;
|
319 |
+
}
|
320 |
+
#qlwapp.qlwapp-button .qlwapp-toggle .qlwapp-icon {
|
321 |
+
margin: 0 12px 0 0;
|
322 |
+
}
|
323 |
+
#qlwapp.qlwapp-button .qlwapp-toggle .qlwapp-close {
|
324 |
+
display: none;
|
325 |
+
}
|
326 |
+
#qlwapp .qlwapp-box {
|
327 |
+
pointer-events: all;
|
328 |
+
padding-bottom: 56px;
|
329 |
+
position: fixed;
|
330 |
+
top: auto;
|
331 |
+
bottom: 0;
|
332 |
+
left: 0;
|
333 |
+
right: 0;
|
334 |
+
z-index: 99999;
|
335 |
+
box-shadow: 0px 5px 40px 5px rgba(0, 0, 0, 0.5);
|
336 |
+
}
|
337 |
+
@media (min-width: 430px) {
|
338 |
+
#qlwapp .qlwapp-box {
|
339 |
+
position: relative;
|
340 |
+
top: auto;
|
341 |
+
bottom: auto;
|
342 |
+
left: auto;
|
343 |
+
right: auto;
|
344 |
+
box-shadow: 0 8px 25px -5px rgba(45, 62, 79, 0.15);
|
345 |
+
margin-top: 24px;
|
346 |
+
margin-left: 24px;
|
347 |
+
margin-right: 24px;
|
348 |
+
margin-bottom: 12px;
|
349 |
+
}
|
350 |
+
#qlwapp .qlwapp-box:before {
|
351 |
+
content: '';
|
352 |
+
position: absolute;
|
353 |
+
bottom: -6px;
|
354 |
+
right: 24px;
|
355 |
+
width: 13px;
|
356 |
+
height: 13px;
|
357 |
+
transform: rotate(45deg);
|
358 |
+
}
|
359 |
+
#qlwapp .qlwapp-box .qlwapp-header {
|
360 |
+
border-top-left-radius: inherit;
|
361 |
+
border-top-right-radius: inherit;
|
362 |
+
}
|
363 |
+
#qlwapp .qlwapp-box .qlwapp-footer,
|
364 |
+
#qlwapp .qlwapp-box .qlwapp-response {
|
365 |
+
border-bottom-left-radius: inherit;
|
366 |
+
border-bottom-right-radius: inherit;
|
367 |
+
}
|
368 |
+
}
|
369 |
+
#qlwapp .qlwapp-box .qlwapp-header {
|
370 |
+
position: relative;
|
371 |
+
overflow: hidden;
|
372 |
+
}
|
373 |
+
#qlwapp .qlwapp-box .qlwapp-header:before {
|
374 |
+
content: '';
|
375 |
+
position: absolute;
|
376 |
+
top: 0;
|
377 |
+
bottom: 0;
|
378 |
+
left: 0;
|
379 |
+
right: 0;
|
380 |
+
background: linear-gradient(135deg, transparent 0%, rgba(0, 0, 0, 0.3) 100%);
|
381 |
+
}
|
382 |
+
#qlwapp .qlwapp-box .qlwapp-header .qlwapp-close {
|
383 |
+
position: absolute;
|
384 |
+
top: 12px;
|
385 |
+
right: 12px;
|
386 |
+
}
|
387 |
+
@media (min-width: 430px) {
|
388 |
+
#qlwapp .qlwapp-box .qlwapp-header .qlwapp-close {
|
389 |
+
position: absolute;
|
390 |
+
top: 7px;
|
391 |
+
right: 7px;
|
392 |
+
font-size: 16px;
|
393 |
+
}
|
394 |
+
}
|
395 |
+
#qlwapp .qlwapp-box .qlwapp-header .qlwapp-description {
|
396 |
+
position: relative;
|
397 |
+
}
|
398 |
+
#qlwapp .qlwapp-box .qlwapp-description,
|
399 |
+
#qlwapp .qlwapp-box .qlwapp-contact {
|
400 |
+
padding: 24px 36px;
|
401 |
+
height: 100%;
|
402 |
+
}
|
403 |
+
#qlwapp .qlwapp-box .qlwapp-description p,
|
404 |
+
#qlwapp .qlwapp-box .qlwapp-description h3 {
|
405 |
+
color: inherit;
|
406 |
+
font-family: inherit;
|
407 |
+
margin: 0;
|
408 |
+
}
|
409 |
+
#qlwapp .qlwapp-box .qlwapp-description h3 {
|
410 |
+
margin: 0 0 0.25em 0;
|
411 |
+
}
|
412 |
+
#qlwapp .qlwapp-box .qlwapp-contact {
|
413 |
+
display: flex;
|
414 |
+
justify-content: flex-end;
|
415 |
+
align-items: center;
|
416 |
+
text-align: right;
|
417 |
+
}
|
418 |
+
#qlwapp .qlwapp-box .qlwapp-contact .qlwapp-previous {
|
419 |
+
position: relative;
|
420 |
+
left: -16px;
|
421 |
+
}
|
422 |
+
#qlwapp .qlwapp-box .qlwapp-contact .qlwapp-previous > i {
|
423 |
+
line-height: 36px;
|
424 |
+
}
|
425 |
+
#qlwapp .qlwapp-box .qlwapp-contact .qlwapp-avatar {
|
426 |
+
width: 42px;
|
427 |
+
height: 42px;
|
428 |
+
}
|
429 |
+
#qlwapp .qlwapp-box .qlwapp-contact .qlwapp-label,
|
430 |
+
#qlwapp .qlwapp-box .qlwapp-contact .qlwapp-name {
|
431 |
+
color: inherit;
|
432 |
+
}
|
433 |
+
#qlwapp .qlwapp-box .qlwapp-account {
|
434 |
+
color: inherit;
|
435 |
+
padding: 16px 36px;
|
436 |
+
display: flex;
|
437 |
+
align-items: center;
|
438 |
+
overflow: hidden;
|
439 |
+
position: relative;
|
440 |
+
cursor: pointer;
|
441 |
+
width: 100%;
|
442 |
+
text-decoration: none;
|
443 |
+
}
|
444 |
+
#qlwapp .qlwapp-box .qlwapp-account:only-of-type {
|
445 |
+
padding-top: 36px;
|
446 |
+
padding-bottom: 36px;
|
447 |
+
}
|
448 |
+
#qlwapp .qlwapp-box .qlwapp-info {
|
449 |
+
padding: 0 16px;
|
450 |
+
}
|
451 |
+
#qlwapp .qlwapp-box .qlwapp-avatar {
|
452 |
+
position: relative;
|
453 |
+
width: 62px;
|
454 |
+
height: 62px;
|
455 |
+
}
|
456 |
+
#qlwapp .qlwapp-box .qlwapp-avatar:after {
|
457 |
+
content: '';
|
458 |
+
display: block;
|
459 |
+
width: 15px;
|
460 |
+
height: 15px;
|
461 |
+
position: absolute;
|
462 |
+
bottom: 2px;
|
463 |
+
right: 2px;
|
464 |
+
background-image: url(data:image/png;base64,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);
|
465 |
+
background-color: transparent;
|
466 |
+
background-repeat: no-repeat;
|
467 |
+
background-position: center center;
|
468 |
+
background-size: cover;
|
469 |
+
z-index: 4;
|
470 |
+
}
|
471 |
+
#qlwapp .qlwapp-box .qlwapp-time,
|
472 |
+
#qlwapp .qlwapp-box .qlwapp-label,
|
473 |
+
#qlwapp .qlwapp-box .qlwapp-offline-text {
|
474 |
+
font-size: 12px;
|
475 |
+
line-height: 1.5em;
|
476 |
+
opacity: .6;
|
477 |
+
display: block;
|
478 |
+
}
|
479 |
+
#qlwapp .qlwapp-box .qlwapp-time {
|
480 |
+
font-size: 11px;
|
481 |
+
font-style: italic;
|
482 |
+
}
|
483 |
+
#qlwapp .qlwapp-box .qlwapp-name {
|
484 |
+
display: block;
|
485 |
+
font-weight: bold;
|
486 |
+
line-height: 1.5em;
|
487 |
+
}
|
488 |
+
#qlwapp .qlwapp-box .qlwapp-body {
|
489 |
+
overflow-x: hidden;
|
490 |
+
overflow-y: auto;
|
491 |
+
}
|
492 |
+
#qlwapp .qlwapp-box .qlwapp-body .qlwapp-carousel {
|
493 |
+
max-height: 470px;
|
494 |
+
min-height: 134px;
|
495 |
+
}
|
496 |
+
#qlwapp .qlwapp-box .qlwapp-chat {
|
497 |
+
display: flex;
|
498 |
+
flex-direction: column;
|
499 |
+
overflow: hidden;
|
500 |
+
}
|
501 |
+
#qlwapp .qlwapp-box .qlwapp-user,
|
502 |
+
#qlwapp .qlwapp-box .qlwapp-message {
|
503 |
+
padding: 16px 24px;
|
504 |
+
margin: 36px;
|
505 |
+
position: relative;
|
506 |
+
word-wrap: break-word;
|
507 |
+
width: calc(100% - 36px*2);
|
508 |
+
}
|
509 |
+
#qlwapp .qlwapp-box .qlwapp-user:before,
|
510 |
+
#qlwapp .qlwapp-box .qlwapp-message:before {
|
511 |
+
content: '';
|
512 |
+
position: absolute;
|
513 |
+
top: -6px;
|
514 |
+
right: 24px;
|
515 |
+
width: 13px;
|
516 |
+
height: 13px;
|
517 |
+
transform: rotate(45deg);
|
518 |
+
}
|
519 |
+
#qlwapp .qlwapp-box .qlwapp-user {
|
520 |
+
width: auto;
|
521 |
+
max-width: 75%;
|
522 |
+
align-self: flex-start;
|
523 |
+
justify-self: flex-end;
|
524 |
+
margin-top: 0;
|
525 |
+
}
|
526 |
+
#qlwapp .qlwapp-box .qlwapp-user:before {
|
527 |
+
top: auto;
|
528 |
+
bottom: -6px;
|
529 |
+
left: 24px;
|
530 |
+
}
|
531 |
+
#qlwapp .qlwapp-box .qlwapp-padding {
|
532 |
+
padding-bottom: 56px;
|
533 |
+
}
|
534 |
+
#qlwapp .qlwapp-box .qlwapp-footer,
|
535 |
+
#qlwapp .qlwapp-box .qlwapp-response {
|
536 |
+
position: absolute;
|
537 |
+
bottom: 0;
|
538 |
+
left: 0;
|
539 |
+
right: 0;
|
540 |
+
height: auto;
|
541 |
+
width: 100%;
|
542 |
+
}
|
543 |
+
#qlwapp .qlwapp-box .qlwapp-footer,
|
544 |
+
#qlwapp .qlwapp-box .qlwapp-response,
|
545 |
+
#qlwapp .qlwapp-box .qlwapp-footer pre,
|
546 |
+
#qlwapp .qlwapp-box .qlwapp-response pre,
|
547 |
+
#qlwapp .qlwapp-box .qlwapp-footer textarea,
|
548 |
+
#qlwapp .qlwapp-box .qlwapp-response textarea {
|
549 |
+
max-height: 160px;
|
550 |
+
}
|
551 |
+
#qlwapp .qlwapp-box .qlwapp-footer pre,
|
552 |
+
#qlwapp .qlwapp-box .qlwapp-response pre,
|
553 |
+
#qlwapp .qlwapp-box .qlwapp-footer textarea,
|
554 |
+
#qlwapp .qlwapp-box .qlwapp-response textarea {
|
555 |
+
color: inherit;
|
556 |
+
background-color: inherit;
|
557 |
+
}
|
558 |
+
#qlwapp .qlwapp-box .qlwapp-footer:before,
|
559 |
+
#qlwapp .qlwapp-box .qlwapp-response:before {
|
560 |
+
pointer-events: none;
|
561 |
+
position: absolute;
|
562 |
+
content: '';
|
563 |
+
height: 59px;
|
564 |
+
top: -59px;
|
565 |
+
background-image: linear-gradient(transparent, rgba(0, 0, 0, 0.05));
|
566 |
+
left: 0;
|
567 |
+
right: 0;
|
568 |
+
}
|
569 |
+
#qlwapp .qlwapp-box .qlwapp-footer {
|
570 |
+
min-height: 56px;
|
571 |
+
display: flex;
|
572 |
+
align-items: center;
|
573 |
+
justify-content: center;
|
574 |
+
text-align: center;
|
575 |
+
font-size: 12px;
|
576 |
+
padding: 12px 36px;
|
577 |
+
}
|
578 |
+
#qlwapp .qlwapp-box .qlwapp-footer p {
|
579 |
+
padding: 0;
|
580 |
+
font-size: inherit;
|
581 |
+
}
|
582 |
+
#qlwapp .qlwapp-box .qlwapp-footer p:last-child {
|
583 |
+
margin-bottom: 0;
|
584 |
+
}
|
585 |
+
#qlwapp .qlwapp-box .qlwapp-response,
|
586 |
+
#qlwapp .qlwapp-box .qlwapp-response pre,
|
587 |
+
#qlwapp .qlwapp-box .qlwapp-response textarea,
|
588 |
+
#qlwapp .qlwapp-box .qlwapp-response .qlwapp-buttons {
|
589 |
+
min-height: 56px;
|
590 |
+
}
|
591 |
+
#qlwapp .qlwapp-box .qlwapp-response pre,
|
592 |
+
#qlwapp .qlwapp-box .qlwapp-response textarea {
|
593 |
+
width: 100%;
|
594 |
+
height: 100%;
|
595 |
+
resize: none;
|
596 |
+
border: none;
|
597 |
+
padding: 18px 56px 18px 36px;
|
598 |
+
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
599 |
+
font-size: 14px;
|
600 |
+
font-weight: normal;
|
601 |
+
line-height: 20px;
|
602 |
+
white-space: pre-wrap;
|
603 |
+
word-wrap: break-word;
|
604 |
+
border-radius: inherit;
|
605 |
+
margin: 0;
|
606 |
+
}
|
607 |
+
#qlwapp .qlwapp-box .qlwapp-response pre {
|
608 |
+
visibility: hidden;
|
609 |
+
}
|
610 |
+
#qlwapp .qlwapp-box .qlwapp-response textarea {
|
611 |
+
position: absolute;
|
612 |
+
bottom: 0;
|
613 |
+
left: 0;
|
614 |
+
}
|
615 |
+
#qlwapp .qlwapp-box .qlwapp-response textarea:focus {
|
616 |
+
outline: none;
|
617 |
+
}
|
618 |
+
#qlwapp .qlwapp-box .qlwapp-response .qlwapp-buttons {
|
619 |
+
position: absolute;
|
620 |
+
top: 0;
|
621 |
+
right: 21px;
|
622 |
+
display: flex;
|
623 |
+
align-items: center;
|
624 |
+
}
|
625 |
+
#qlwapp .qlwapp-box .qlwapp-response .qlwapp-buttons.active > i {
|
626 |
+
display: none;
|
627 |
+
}
|
628 |
+
#qlwapp .qlwapp-box .qlwapp-response .qlwapp-buttons.active > i.qlwf-emoji {
|
629 |
+
display: block;
|
630 |
+
}
|
631 |
+
#qlwapp .qlwapp-box .qlwapp-response .qlwapp-buttons > i {
|
632 |
+
opacity: 0.4;
|
633 |
+
}
|
634 |
+
#qlwapp .qlwapp-box .qlwapp-response .qlwapp-buttons > i,
|
635 |
+
#qlwapp .qlwapp-box .qlwapp-response .qlwapp-buttons > a {
|
636 |
+
cursor: pointer;
|
637 |
+
margin: 0 0 0 10px;
|
638 |
+
display: inherit;
|
639 |
+
font-size: 18px;
|
640 |
+
line-height: 24px;
|
641 |
+
}
|
642 |
+
#qlwapp .qlwapp-previous,
|
643 |
+
#qlwapp .qlwapp-close,
|
644 |
+
#qlwapp .qlwapp-toggle,
|
645 |
+
#qlwapp .qlwapp-box .qlwapp-header,
|
646 |
+
#qlwapp .qlwapp-box .qlwapp-contact,
|
647 |
+
#qlwapp .qlwapp-box .qlwapp-user {
|
648 |
+
color: #ffffff;
|
649 |
+
}
|
650 |
+
#qlwapp.qlwapp-bubble .qlwapp-toggle .qlwapp-text {
|
651 |
+
color: #303030;
|
652 |
+
}
|
653 |
+
#qlwapp .qlwapp-box,
|
654 |
+
#qlwapp .qlwapp-box:before {
|
655 |
+
background-color: #fff;
|
656 |
+
}
|
657 |
+
#qlwapp .qlwapp-box .qlwapp-account {
|
658 |
+
background-color: #fff;
|
659 |
+
}
|
660 |
+
#qlwapp .qlwapp-box .qlwapp-account:not(:first-child) {
|
661 |
+
border-top: 1px solid #f5f5f5;
|
662 |
+
}
|
663 |
+
#qlwapp .qlwapp-box .qlwapp-avatar .qlwapp-avatar-container {
|
664 |
+
background-color: #eee;
|
665 |
+
}
|
666 |
+
#qlwapp .qlwapp-box .qlwapp-message,
|
667 |
+
#qlwapp .qlwapp-box .qlwapp-message:before {
|
668 |
+
background-color: #eee;
|
669 |
+
}
|
670 |
+
#qlwapp .qlwapp-box .qlwapp-footer,
|
671 |
+
#qlwapp .qlwapp-box .qlwapp-response {
|
672 |
+
color: #303030;
|
673 |
+
background-color: #fff;
|
674 |
+
border-top: 1px solid #e6e6e6;
|
675 |
+
}
|
676 |
+
#qlwapp .qlwapp-toggle,
|
677 |
+
#qlwapp .qlwapp-box .qlwapp-header,
|
678 |
+
#qlwapp .qlwapp-box .qlwapp-user,
|
679 |
+
#qlwapp .qlwapp-box .qlwapp-user:before {
|
680 |
+
background-color: #303030;
|
681 |
+
}
|
682 |
+
#qlwapp {
|
683 |
+
display: none;
|
684 |
+
}
|
685 |
+
#qlwapp.qlwapp-show .qlwapp-box {
|
686 |
+
visibility: visible;
|
687 |
+
opacity: 1;
|
688 |
+
transform: translateY(0) scale(1);
|
689 |
+
display: block;
|
690 |
+
}
|
691 |
+
#qlwapp.qlwapp-transition .qlwapp-box {
|
692 |
+
visibility: visible;
|
693 |
+
display: block;
|
694 |
+
}
|
695 |
+
#qlwapp.qlwapp-bubble.qlwapp-show .qlwapp-toggle .qlwapp-icon {
|
696 |
+
transform: scale(0, 0);
|
697 |
+
opacity: 0;
|
698 |
+
}
|
699 |
+
#qlwapp.qlwapp-bubble.qlwapp-show .qlwapp-toggle .qlwapp-close {
|
700 |
+
transform: scale(1, 1);
|
701 |
+
opacity: 1;
|
702 |
+
}
|
703 |
+
#qlwapp.qlwapp-bubble .qlwapp-toggle .qlwapp-close {
|
704 |
+
transform: scale(0, 0);
|
705 |
+
opacity: 0;
|
706 |
+
}
|
707 |
+
#qlwapp.qlwapp-bubble .qlwapp-toggle .qlwapp-icon {
|
708 |
+
transform: scale(1, 1);
|
709 |
+
opacity: 1;
|
710 |
+
}
|
711 |
+
#qlwapp.qlwapp-bubble .qlwapp-toggle .qlwapp-icon,
|
712 |
+
#qlwapp.qlwapp-bubble .qlwapp-toggle .qlwapp-close {
|
713 |
+
transition: transform 300ms cubic-bezier(0.215, 0.61, 0.355, 1), opacity 300ms ease-in;
|
714 |
+
}
|
715 |
+
#qlwapp .qlwapp-box {
|
716 |
+
display: none;
|
717 |
+
opacity: 0;
|
718 |
+
visibility: hidden;
|
719 |
+
transform: translateY(50px);
|
720 |
+
transition: transform 300ms cubic-bezier(0.215, 0.61, 0.355, 1), opacity 300ms ease-in;
|
721 |
+
}
|
722 |
+
@media (min-width: 430px) {
|
723 |
+
#qlwapp .qlwapp-box {
|
724 |
+
transform: translateY(50px) scale(0.9);
|
725 |
+
}
|
726 |
+
}
|
727 |
+
#qlwapp .qlwapp-box .qlwapp-carousel {
|
728 |
+
display: flex;
|
729 |
+
width: 200%;
|
730 |
+
height: 100%;
|
731 |
+
}
|
732 |
+
#qlwapp .qlwapp-box .qlwapp-carousel .qlwapp-slide {
|
733 |
+
width: 50%;
|
734 |
+
transition: max-height 500ms cubic-bezier(0.215, 0.61, 0.355, 1) 1000ms, transform 300ms cubic-bezier(0.215, 0.61, 0.355, 1) 500ms, opacity 500ms ease-in 500ms;
|
735 |
+
height: 100%;
|
736 |
+
overflow: hidden;
|
737 |
+
}
|
738 |
+
#qlwapp .qlwapp-box .qlwapp-header .qlwapp-slide {
|
739 |
+
max-height: 300px;
|
740 |
+
}
|
741 |
+
#qlwapp .qlwapp-box .qlwapp-header .qlwapp-name,
|
742 |
+
#qlwapp .qlwapp-box .qlwapp-header .qlwapp-label,
|
743 |
+
#qlwapp .qlwapp-box .qlwapp-header .qlwapp-avatar {
|
744 |
+
opacity: 0;
|
745 |
+
transition: transform cubic-bezier(0.215, 0.61, 0.355, 1) 0.3s, opacity ease-in 0.3s;
|
746 |
+
}
|
747 |
+
#qlwapp .qlwapp-box .qlwapp-header .qlwapp-name,
|
748 |
+
#qlwapp .qlwapp-box .qlwapp-header .qlwapp-label {
|
749 |
+
transform: translateX(56px);
|
750 |
+
}
|
751 |
+
#qlwapp .qlwapp-box .qlwapp-header .qlwapp-avatar {
|
752 |
+
transform: scale(0.5);
|
753 |
+
}
|
754 |
+
#qlwapp .qlwapp-box .qlwapp-header .qlwapp-name {
|
755 |
+
transition-delay: 800ms;
|
756 |
+
}
|
757 |
+
#qlwapp .qlwapp-box .qlwapp-header .qlwapp-label {
|
758 |
+
transition-delay: 850ms;
|
759 |
+
}
|
760 |
+
#qlwapp .qlwapp-box .qlwapp-header .qlwapp-avatar {
|
761 |
+
transition-delay: 900ms;
|
762 |
+
}
|
763 |
+
#qlwapp .qlwapp-box .qlwapp-footer,
|
764 |
+
#qlwapp .qlwapp-box .qlwapp-response,
|
765 |
+
#qlwapp .qlwapp-box .qlwapp-previous,
|
766 |
+
#qlwapp .qlwapp-box .qlwapp-message,
|
767 |
+
#qlwapp .qlwapp-box .qlwapp-user {
|
768 |
+
transition: transform cubic-bezier(0.215, 0.61, 0.355, 1) 600ms, opacity ease-in 200ms;
|
769 |
+
}
|
770 |
+
#qlwapp .qlwapp-box .qlwapp-response,
|
771 |
+
#qlwapp .qlwapp-box .qlwapp-previous,
|
772 |
+
#qlwapp .qlwapp-box .qlwapp-user {
|
773 |
+
opacity: 0;
|
774 |
+
}
|
775 |
+
#qlwapp .qlwapp-box .qlwapp-response {
|
776 |
+
pointer-events: none;
|
777 |
+
}
|
778 |
+
#qlwapp .qlwapp-box .qlwapp-previous {
|
779 |
+
transform: translateX(56px);
|
780 |
+
}
|
781 |
+
#qlwapp .qlwapp-box .qlwapp-user {
|
782 |
+
transform: translateY(56px);
|
783 |
+
}
|
784 |
+
#qlwapp .qlwapp-box .qlwapp-close {
|
785 |
+
transition: opacity 300ms cubic-bezier(0.215, 0.61, 0.355, 1);
|
786 |
+
}
|
787 |
+
#qlwapp .qlwapp-box .qlwapp-description {
|
788 |
+
transition: transform 600ms cubic-bezier(0.215, 0.61, 0.355, 1), opacity 900ms cubic-bezier(0.215, 0.61, 0.355, 1);
|
789 |
+
}
|
790 |
+
#qlwapp .qlwapp-box .qlwapp-account {
|
791 |
+
transition: transform 600ms cubic-bezier(0.215, 0.61, 0.355, 1), opacity 150ms ease-in;
|
792 |
+
}
|
793 |
+
#qlwapp .qlwapp-box .qlwapp-previous {
|
794 |
+
transition-delay: 800ms;
|
795 |
+
}
|
796 |
+
#qlwapp .qlwapp-box .qlwapp-message {
|
797 |
+
transition-delay: 900ms;
|
798 |
+
}
|
799 |
+
#qlwapp .qlwapp-box .qlwapp-close,
|
800 |
+
#qlwapp .qlwapp-box .qlwapp-description {
|
801 |
+
transition-delay: 900ms;
|
802 |
+
}
|
803 |
+
#qlwapp .qlwapp-box .qlwapp-user {
|
804 |
+
transition-delay: 200ms;
|
805 |
+
}
|
806 |
+
#qlwapp .qlwapp-box .qlwapp-account:nth-of-type(6) {
|
807 |
+
transition-delay: 600ms;
|
808 |
+
}
|
809 |
+
#qlwapp .qlwapp-box .qlwapp-account:nth-of-type(5) {
|
810 |
+
transition-delay: 500ms;
|
811 |
+
}
|
812 |
+
#qlwapp .qlwapp-box .qlwapp-account:nth-of-type(4) {
|
813 |
+
transition-delay: 400ms;
|
814 |
+
}
|
815 |
+
#qlwapp .qlwapp-box .qlwapp-account:nth-of-type(3) {
|
816 |
+
transition-delay: 300ms;
|
817 |
+
}
|
818 |
+
#qlwapp .qlwapp-box .qlwapp-account:nth-of-type(2) {
|
819 |
+
transition-delay: 200ms;
|
820 |
+
}
|
821 |
+
#qlwapp .qlwapp-box .qlwapp-account:nth-of-type(1) {
|
822 |
+
transition-delay: 100ms;
|
823 |
+
}
|
824 |
+
#qlwapp .qlwapp-box .qlwapp-slide .qlwapp-message {
|
825 |
+
opacity: 0;
|
826 |
+
transform: translateY(-56px);
|
827 |
+
}
|
828 |
+
#qlwapp .qlwapp-box .qlwapp-slide .qlwapp-box .qlwapp-account:hover {
|
829 |
+
background-color: #fafafa;
|
830 |
+
}
|
831 |
+
#qlwapp .qlwapp-box.response .qlwapp-carousel .qlwapp-slide {
|
832 |
+
transform: translateX(-100%);
|
833 |
+
}
|
834 |
+
#qlwapp .qlwapp-box.response .qlwapp-body .qlwapp-carousel {
|
835 |
+
overflow: hidden;
|
836 |
+
max-height: 134px!important;
|
837 |
+
min-height: 122px;
|
838 |
+
}
|
839 |
+
#qlwapp .qlwapp-box.response .qlwapp-close {
|
840 |
+
transition-delay: 0ms;
|
841 |
+
}
|
842 |
+
#qlwapp .qlwapp-box.response .qlwapp-close,
|
843 |
+
#qlwapp .qlwapp-box.response .qlwapp-footer,
|
844 |
+
#qlwapp .qlwapp-box.response .qlwapp-description,
|
845 |
+
#qlwapp .qlwapp-box.response .qlwapp-account {
|
846 |
+
opacity: 0;
|
847 |
+
}
|
848 |
+
#qlwapp .qlwapp-box.response .qlwapp-account {
|
849 |
+
transform: translateY(-33.333%);
|
850 |
+
border-top-color: transparent!important;
|
851 |
+
}
|
852 |
+
#qlwapp .qlwapp-box.response .qlwapp-user {
|
853 |
+
display: block;
|
854 |
+
}
|
855 |
+
#qlwapp .qlwapp-box.response .qlwapp-message,
|
856 |
+
#qlwapp .qlwapp-box.response .qlwapp-previous,
|
857 |
+
#qlwapp .qlwapp-box.response .qlwapp-response {
|
858 |
+
opacity: 1;
|
859 |
+
}
|
860 |
+
#qlwapp .qlwapp-box.response .qlwapp-response {
|
861 |
+
pointer-events: all;
|
862 |
+
}
|
863 |
+
#qlwapp .qlwapp-box.response .qlwapp-message,
|
864 |
+
#qlwapp .qlwapp-box.response .qlwapp-previous {
|
865 |
+
transform: translate(0);
|
866 |
+
}
|
867 |
+
#qlwapp .qlwapp-box.response .qlwapp-header .qlwapp-slide {
|
868 |
+
max-height: 84px;
|
869 |
+
}
|
870 |
+
#qlwapp .qlwapp-box.response .qlwapp-header .qlwapp-name,
|
871 |
+
#qlwapp .qlwapp-box.response .qlwapp-header .qlwapp-avatar {
|
872 |
+
opacity: 1;
|
873 |
+
}
|
874 |
+
#qlwapp .qlwapp-box.response .qlwapp-header .qlwapp-label {
|
875 |
+
opacity: 0.5;
|
876 |
+
}
|
877 |
+
#qlwapp .qlwapp-box.response .qlwapp-header .qlwapp-name,
|
878 |
+
#qlwapp .qlwapp-box.response .qlwapp-header .qlwapp-label {
|
879 |
+
transform: translateX(0);
|
880 |
+
}
|
881 |
+
#qlwapp .qlwapp-box.response .qlwapp-header .qlwapp-avatar {
|
882 |
+
transform: scale(1);
|
883 |
+
}
|
884 |
+
#qlwapp .qlwapp-box.response.opening .qlwapp-footer,
|
885 |
+
#qlwapp .qlwapp-box.response.opening .qlwapp-response,
|
886 |
+
#qlwapp .qlwapp-box.response.opening .qlwapp-close,
|
887 |
+
#qlwapp .qlwapp-box.response.opening .qlwapp-previous,
|
888 |
+
#qlwapp .qlwapp-box.response.opening .qlwapp-description,
|
889 |
+
#qlwapp .qlwapp-box.response.opening .qlwapp-header .qlwapp-name,
|
890 |
+
#qlwapp .qlwapp-box.response.opening .qlwapp-header .qlwapp-label {
|
891 |
+
visibility: visible;
|
892 |
+
}
|
893 |
+
#qlwapp .qlwapp-box.texting .qlwapp-body {
|
894 |
+
overflow-y: auto;
|
895 |
+
}
|
896 |
+
#qlwapp .qlwapp-box.texting .qlwapp-user {
|
897 |
+
opacity: 1;
|
898 |
+
transform: translate(0);
|
899 |
+
}
|
900 |
+
#qlwapp .qlwapp-box.closing .qlwapp-previous {
|
901 |
+
transition-delay: 0ms;
|
902 |
+
transform: translateX(-24px);
|
903 |
+
opacity: 0;
|
904 |
+
transition: transform cubic-bezier(0.215, 0.61, 0.355, 1) 300ms, opacity ease-out 200ms;
|
905 |
+
}
|
906 |
+
#qlwapp .qlwapp-box.closing .qlwapp-description {
|
907 |
+
opacity: 0;
|
908 |
+
}
|
909 |
/*# sourceMappingURL=qlwapp.css.map */
|
assets/css/qlwapp.min.css
CHANGED
@@ -1,2 +1,2 @@
|
|
1 |
-
|
2 |
@font-face{font-family:'qlwapp-whatsapp';src:url(data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAAYEAAsAAAAABbgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABCAAAAGAAAABgDxIFKmNtYXAAAAFoAAAAVAAAAFQXVtKHZ2FzcAAAAbwAAAAIAAAACAAAABBnbHlmAAABxAAAAfwAAAH8pb7IGGhlYWQAAAPAAAAANgAAADYUXm9HaGhlYQAAA/gAAAAkAAAAJAfAA8ZobXR4AAAEHAAAABQAAAAUCgAAA2xvY2EAAAQwAAAADAAAAAwAKAESbWF4cAAABDwAAAAgAAAAIAAJAJluYW1lAAAEXAAAAYYAAAGGmUoJ+3Bvc3QAAAXkAAAAIAAAACAAAwAAAAMDAAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAA6QADwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADgAAAAKAAgAAgACAAEAIOkA//3//wAAAAAAIOkA//3//wAB/+MXBAADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAwAD/8AD/gPAACcATwCWAAABJicuAScmIyIHDgEHBhUUFhcDJR4BMzE4ATEyNz4BNzY1NCcuAScmATEiJi8BBzcnLgE1NDc+ATc2MzIXHgEXFhcWFx4BFxYVFAcOAQcGIxMuAScmIgcOAQcOAScuAScuAScmNjc+ATc+ATc2JicuAScuASMmIiMiBgcOARUUFhcWFx4BFxYXHgEXHgE3PgE3PgEnLgEnA2kkKSpbMTEzaVxdiSgoIiJIAQ03e0BpXF2KKCgKCiYbHP51OW0xD6ArCiAhIiFyTU1XKygpTCIjHh0XFyAICCEick1NV+cJRAkJDQcGHAYGDAkKOCQdJAYGBwUECgUEBQMDAQMCHQgHEAUGDAcGEwgJJC8FAhEQOCcnMBYkDhcoERI7CAgCAgMMCgMrJBwcJQoKKCiKXFxpQ4E6/vlHHx8oKIldXGkzMTFbKin9Fx4dCSmbEDJzPFdNTHMhIQgIHxcXHh4jIkwpKCtXTU1yISIBPAUhBAMKCSIHBgIFBRogGTYJCQwFBAwGBgkGBgwEBUcTEgMBBwkJMi8vTgYDFxY8IB8UCg0EBwEDAyMWFiIEBAcEAAAAAAEAAAABAAAmrdZpXw889QALBAAAAAAA2KCVZQAAAADYoJVlAAD/wAP+A8AAAAAIAAIAAAAAAAAAAQAAA8D/wAAABAAAAAAAA/4AAQAAAAAAAAAAAAAAAAAAAAUEAAAAAAAAAAAAAAACAAAABAAAAwAAAAAACgAUAB4A/gABAAAABQCXAAMAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEABwAAAAEAAAAAAAIABwBgAAEAAAAAAAMABwA2AAEAAAAAAAQABwB1AAEAAAAAAAUACwAVAAEAAAAAAAYABwBLAAEAAAAAAAoAGgCKAAMAAQQJAAEADgAHAAMAAQQJAAIADgBnAAMAAQQJAAMADgA9AAMAAQQJAAQADgB8AAMAAQQJAAUAFgAgAAMAAQQJAAYADgBSAAMAAQQJAAoANACkaWNvbW9vbgBpAGMAbwBtAG8AbwBuVmVyc2lvbiAxLjAAVgBlAHIAcwBpAG8AbgAgADEALgAwaWNvbW9vbgBpAGMAbwBtAG8AbwBuaWNvbW9vbgBpAGMAbwBtAG8AbwBuUmVndWxhcgBSAGUAZwB1AGwAYQByaWNvbW9vbgBpAGMAbwBtAG8AbwBuRm9udCBnZW5lcmF0ZWQgYnkgSWNvTW9vbi4ARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAuAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==) format('woff');font-weight:normal;font-style:normal}.qlwapp-whatsapp-icon{font-family:'qlwapp-whatsapp'!important;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.qlwapp-whatsapp-icon:before{content:"\e900"}#qlwapp{pointer-events:none;box-sizing:border-box}@media(min-width:430px){#qlwapp{width:430px}}#qlwapp *{box-sizing:border-box}#qlwapp.qlwapp-js-ready{display:block}#qlwapp.qlwapp-hide,#qlwapp.qlwapp-desktop.mobile,#qlwapp.qlwapp-mobile.desktop{display:none}#qlwapp .qlwapp-readonly,#qlwapp.qlwapp-readonly{pointer-events:none!important;opacity:.5!important}#qlwapp .qlwapp-disabled,#qlwapp.qlwapp-disabled{display:none;visibility:hidden}#qlwapp.qlwapp-middle-left,#qlwapp.qlwapp-bottom-left,#qlwapp.qlwapp-middle-right,#qlwapp.qlwapp-bottom-right{position:fixed;z-index:9999999}#qlwapp.qlwapp-middle-left,#qlwapp.qlwapp-bottom-left{right:auto;left:0}#qlwapp.qlwapp-middle-left .qlwapp-toggle .qlwapp-time,#qlwapp.qlwapp-bottom-left .qlwapp-toggle .qlwapp-time{left:0;right:auto}#qlwapp.qlwapp-middle-left.qlwapp-bubble .qlwapp-developer,#qlwapp.qlwapp-bottom-left.qlwapp-bubble .qlwapp-developer,#qlwapp.qlwapp-middle-left.qlwapp-button .qlwapp-developer,#qlwapp.qlwapp-bottom-left.qlwapp-button .qlwapp-developer,#qlwapp.qlwapp-middle-left.qlwapp-bubble .qlwapp-toggle,#qlwapp.qlwapp-bottom-left.qlwapp-bubble .qlwapp-toggle,#qlwapp.qlwapp-middle-left.qlwapp-button .qlwapp-toggle,#qlwapp.qlwapp-bottom-left.qlwapp-button .qlwapp-toggle{margin-left:20px}#qlwapp.qlwapp-middle-left.qlwapp-bubble .qlwapp-toggle .qlwapp-text,#qlwapp.qlwapp-bottom-left.qlwapp-bubble .qlwapp-toggle .qlwapp-text{right:auto;left:60px}#qlwapp.qlwapp-middle-left .qlwapp-box:before,#qlwapp.qlwapp-bottom-left .qlwapp-box:before{right:auto;left:20px}#qlwapp.qlwapp-middle-right,#qlwapp.qlwapp-bottom-right{left:auto;right:0}#qlwapp.qlwapp-middle-right .qlwapp-toggle .qlwapp-time,#qlwapp.qlwapp-bottom-right .qlwapp-toggle .qlwapp-time{left:auto;right:0}#qlwapp.qlwapp-middle-right.qlwapp-bubble .qlwapp-developer,#qlwapp.qlwapp-bottom-right.qlwapp-bubble .qlwapp-developer,#qlwapp.qlwapp-middle-right.qlwapp-button .qlwapp-developer,#qlwapp.qlwapp-bottom-right.qlwapp-button .qlwapp-developer,#qlwapp.qlwapp-middle-right.qlwapp-bubble .qlwapp-toggle,#qlwapp.qlwapp-bottom-right.qlwapp-bubble .qlwapp-toggle,#qlwapp.qlwapp-middle-right.qlwapp-button .qlwapp-toggle,#qlwapp.qlwapp-bottom-right.qlwapp-button .qlwapp-toggle{margin-right:20px}#qlwapp.qlwapp-middle-left,#qlwapp.qlwapp-middle-right{top:40%;bottom:auto}#qlwapp.qlwapp-middle-left .qlwapp-developer,#qlwapp.qlwapp-middle-right .qlwapp-developer{padding:0 24px}#qlwapp.qlwapp-middle-left.qlwapp-button .qlwapp-developer,#qlwapp.qlwapp-middle-left.qlwapp-button .qlwapp-toggle{margin-left:-48px;padding-left:60px}#qlwapp.qlwapp-middle-right.qlwapp-button .qlwapp-developer,#qlwapp.qlwapp-middle-right.qlwapp-button .qlwapp-toggle{margin-right:-48px;padding-right:60px}#qlwapp.qlwapp-bottom-left,#qlwapp.qlwapp-bottom-right{top:auto;bottom:0}#qlwapp.qlwapp-rounded.qlwapp-bubble .qlwapp-toggle{border-radius:50%}#qlwapp.qlwapp-rounded.qlwapp-button .qlwapp-toggle{border-radius:50px}@media(min-width:430px){#qlwapp.qlwapp-rounded .qlwapp-box{border-radius:8px}}#qlwapp.qlwapp-rounded .qlwapp-box .qlwapp-user,#qlwapp.qlwapp-rounded .qlwapp-box .qlwapp-message{border-radius:4px}#qlwapp p:last-child{margin:0}#qlwapp time{opacity:.8;font-style:italic;font-size:10px}#qlwapp .qlwapp-container{display:flex;flex-direction:column}#qlwapp .qlwapp-clearfix:before,#qlwapp .qlwapp-clearfix:after{content:'';display:block;clear:both}#qlwapp .qlwapp-previous,#qlwapp .qlwapp-close{display:block;opacity:.8;font-style:unset;font-size:24px;font-weight:bold;width:24px;height:24px;cursor:pointer;text-align:center;line-height:24px;z-index:1}#qlwapp .qlwapp-previous{width:16px;height:36px;cursor:pointer;text-align:center;line-height:36px;margin-right:auto}#qlwapp .qlwapp-developer{font-size:8px;top:-20px;position:relative}#qlwapp .qlwapp-developer,#qlwapp .qlwapp-toggle{display:inline-flex;align-items:center;justify-content:center;margin-left:auto;margin-right:auto}#qlwapp .qlwapp-toggle{pointer-events:all;cursor:pointer;box-shadow:0 1px 6px 0 rgba(0,0,0,0.06),0 2px 32px 0 rgba(0,0,0,0.16);margin-top:24px;margin-bottom:24px;position:relative;text-decoration:none}#qlwapp .qlwapp-toggle,#qlwapp .qlwapp-toggle:active,#qlwapp .qlwapp-toggle:focus,#qlwapp .qlwapp-toggle:hover{outline:0;text-decoration:none}#qlwapp .qlwapp-toggle .qlwapp-time{position:absolute;bottom:-2em;color:initial;font-size:10px;display:inline-block;top:auto;width:120px}#qlwapp .qlwapp-avatar .qlwapp-avatar-container{overflow:hidden;border-radius:50%;width:inherit;height:inherit}#qlwapp .qlwapp-avatar .qlwapp-avatar-container img{width:100%;height:auto}#qlwapp.qlwapp-bubble .qlwapp-toggle{width:60px;height:60px}#qlwapp.qlwapp-bubble .qlwapp-toggle .qlwapp-icon,#qlwapp.qlwapp-bubble .qlwapp-toggle .qlwapp-close{position:absolute;display:block;pointer-events:none;font-size:24px}#qlwapp.qlwapp-bubble .qlwapp-toggle .qlwapp-text{position:absolute;right:60px;height:60px;margin:0 24px;display:flex;align-items:center;justify-content:flex-end;font-weight:bold;white-space:pre}#qlwapp.qlwapp-button .qlwapp-toggle{height:40px;white-space:nowrap;padding:12px 24px}#qlwapp.qlwapp-button .qlwapp-toggle .qlwapp-icon{margin:0 12px 0 0}#qlwapp.qlwapp-button .qlwapp-toggle .qlwapp-close{display:none}#qlwapp .qlwapp-box{pointer-events:all;padding-bottom:56px;position:fixed;top:auto;bottom:0;left:0;right:0;z-index:99999;box-shadow:0 5px 40px 5px rgba(0,0,0,0.5)}@media(min-width:430px){#qlwapp .qlwapp-box{position:relative;top:auto;bottom:auto;left:auto;right:auto;box-shadow:0 8px 25px -5px rgba(45,62,79,0.15);margin-top:24px;margin-left:24px;margin-right:24px;margin-bottom:12px}#qlwapp .qlwapp-box:before{content:'';position:absolute;bottom:-6px;right:24px;width:13px;height:13px;transform:rotate(45deg)}#qlwapp .qlwapp-box .qlwapp-header{border-top-left-radius:inherit;border-top-right-radius:inherit}#qlwapp .qlwapp-box .qlwapp-footer,#qlwapp .qlwapp-box .qlwapp-response{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}}#qlwapp .qlwapp-box .qlwapp-header{position:relative;overflow:hidden}#qlwapp .qlwapp-box .qlwapp-header:before{content:'';position:absolute;top:0;bottom:0;left:0;right:0;background:linear-gradient(135deg,transparent 0,rgba(0,0,0,0.3) 100%)}#qlwapp .qlwapp-box .qlwapp-header .qlwapp-close{position:absolute;top:12px;right:12px}@media(min-width:430px){#qlwapp .qlwapp-box .qlwapp-header .qlwapp-close{position:absolute;top:7px;right:7px;font-size:16px}}#qlwapp .qlwapp-box .qlwapp-header .qlwapp-description{position:relative}#qlwapp .qlwapp-box .qlwapp-description,#qlwapp .qlwapp-box .qlwapp-contact{padding:24px 36px;height:100%}#qlwapp .qlwapp-box .qlwapp-description p,#qlwapp .qlwapp-box .qlwapp-description h3{color:inherit;font-family:inherit;margin:0}#qlwapp .qlwapp-box .qlwapp-description h3{margin:0 0 .25em 0}#qlwapp .qlwapp-box .qlwapp-contact{display:flex;justify-content:flex-end;align-items:center;text-align:right}#qlwapp .qlwapp-box .qlwapp-contact .qlwapp-previous{position:relative;left:-16px}#qlwapp .qlwapp-box .qlwapp-contact .qlwapp-previous>i{line-height:36px}#qlwapp .qlwapp-box .qlwapp-contact .qlwapp-avatar{width:42px;height:42px}#qlwapp .qlwapp-box .qlwapp-contact .qlwapp-label,#qlwapp .qlwapp-box .qlwapp-contact .qlwapp-name{color:inherit}#qlwapp .qlwapp-box .qlwapp-account{color:inherit;padding:16px 36px;display:flex;align-items:center;overflow:hidden;position:relative;cursor:pointer;width:100%;text-decoration:none}#qlwapp .qlwapp-box .qlwapp-account:only-of-type{padding-top:36px;padding-bottom:36px}#qlwapp .qlwapp-box .qlwapp-info{padding:0 16px}#qlwapp .qlwapp-box .qlwapp-avatar{position:relative;width:62px;height:62px}#qlwapp .qlwapp-box .qlwapp-avatar:after{content:'';display:block;width:15px;height:15px;position:absolute;bottom:2px;right:2px;background-image:url(data:image/png;base64,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);background-color:transparent;background-repeat:no-repeat;background-position:center center;background-size:cover;z-index:4}#qlwapp .qlwapp-box .qlwapp-time,#qlwapp .qlwapp-box .qlwapp-label,#qlwapp .qlwapp-box .qlwapp-offline-text{font-size:12px;line-height:1.5em;opacity:.6;display:block}#qlwapp .qlwapp-box .qlwapp-time{font-size:11px;font-style:italic}#qlwapp .qlwapp-box .qlwapp-name{display:block;font-weight:bold;line-height:1.5em}#qlwapp .qlwapp-box .qlwapp-body{overflow-x:hidden;overflow-y:auto}#qlwapp .qlwapp-box .qlwapp-body .qlwapp-carousel{max-height:470px;min-height:134px}#qlwapp .qlwapp-box .qlwapp-chat{display:flex;flex-direction:column;overflow:hidden}#qlwapp .qlwapp-box .qlwapp-user,#qlwapp .qlwapp-box .qlwapp-message{padding:16px 24px;margin:36px;position:relative;word-wrap:break-word;width:calc(100% - 36px*2)}#qlwapp .qlwapp-box .qlwapp-user:before,#qlwapp .qlwapp-box .qlwapp-message:before{content:'';position:absolute;top:-6px;right:24px;width:13px;height:13px;transform:rotate(45deg)}#qlwapp .qlwapp-box .qlwapp-user{width:auto;max-width:75%;align-self:flex-start;justify-self:flex-end;margin-top:0}#qlwapp .qlwapp-box .qlwapp-user:before{top:auto;bottom:-6px;left:24px}#qlwapp .qlwapp-box .qlwapp-padding{padding-bottom:56px}#qlwapp .qlwapp-box .qlwapp-footer,#qlwapp .qlwapp-box .qlwapp-response{position:absolute;bottom:0;left:0;right:0;height:auto;width:100%}#qlwapp .qlwapp-box .qlwapp-footer,#qlwapp .qlwapp-box .qlwapp-response,#qlwapp .qlwapp-box .qlwapp-footer pre,#qlwapp .qlwapp-box .qlwapp-response pre,#qlwapp .qlwapp-box .qlwapp-footer textarea,#qlwapp .qlwapp-box .qlwapp-response textarea{max-height:160px}#qlwapp .qlwapp-box .qlwapp-footer pre,#qlwapp .qlwapp-box .qlwapp-response pre,#qlwapp .qlwapp-box .qlwapp-footer textarea,#qlwapp .qlwapp-box .qlwapp-response textarea{color:inherit;background-color:inherit}#qlwapp .qlwapp-box .qlwapp-footer:before,#qlwapp .qlwapp-box .qlwapp-response:before{pointer-events:none;position:absolute;content:'';height:59px;top:-59px;background-image:linear-gradient(transparent,rgba(0,0,0,0.05));left:0;right:0}#qlwapp .qlwapp-box .qlwapp-footer{min-height:56px;display:flex;align-items:center;justify-content:center;text-align:center;font-size:12px;padding:12px 36px}#qlwapp .qlwapp-box .qlwapp-footer p{padding:0;font-size:inherit}#qlwapp .qlwapp-box .qlwapp-footer p:last-child{margin-bottom:0}#qlwapp .qlwapp-box .qlwapp-response,#qlwapp .qlwapp-box .qlwapp-response pre,#qlwapp .qlwapp-box .qlwapp-response textarea,#qlwapp .qlwapp-box .qlwapp-response .qlwapp-buttons{min-height:56px}#qlwapp .qlwapp-box .qlwapp-response pre,#qlwapp .qlwapp-box .qlwapp-response textarea{width:100%;height:100%;resize:none;border:0;padding:18px 56px 18px 36px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-weight:normal;line-height:20px;white-space:pre-wrap;word-wrap:break-word;border-radius:inherit;margin:0}#qlwapp .qlwapp-box .qlwapp-response pre{visibility:hidden}#qlwapp .qlwapp-box .qlwapp-response textarea{position:absolute;bottom:0;left:0}#qlwapp .qlwapp-box .qlwapp-response textarea:focus{outline:0}#qlwapp .qlwapp-box .qlwapp-response .qlwapp-buttons{position:absolute;top:0;right:21px;display:flex;align-items:center}#qlwapp .qlwapp-box .qlwapp-response .qlwapp-buttons.active>i{display:none}#qlwapp .qlwapp-box .qlwapp-response .qlwapp-buttons.active>i.qlwf-emoji{display:block}#qlwapp .qlwapp-box .qlwapp-response .qlwapp-buttons>i{opacity:.4}#qlwapp .qlwapp-box .qlwapp-response .qlwapp-buttons>i,#qlwapp .qlwapp-box .qlwapp-response .qlwapp-buttons>a{cursor:pointer;margin:0 0 0 10px;display:inherit;font-size:18px;line-height:24px}#qlwapp .qlwapp-previous,#qlwapp .qlwapp-close,#qlwapp .qlwapp-toggle,#qlwapp .qlwapp-box .qlwapp-header,#qlwapp .qlwapp-box .qlwapp-contact,#qlwapp .qlwapp-box .qlwapp-user{color:#fff}#qlwapp.qlwapp-bubble .qlwapp-toggle .qlwapp-text{color:#303030}#qlwapp .qlwapp-box,#qlwapp .qlwapp-box:before{background-color:#fff}#qlwapp .qlwapp-box .qlwapp-account{background-color:#fff}#qlwapp .qlwapp-box .qlwapp-account:not(:first-child){border-top:1px solid #f5f5f5}#qlwapp .qlwapp-box .qlwapp-avatar .qlwapp-avatar-container{background-color:#eee}#qlwapp .qlwapp-box .qlwapp-message,#qlwapp .qlwapp-box .qlwapp-message:before{background-color:#eee}#qlwapp .qlwapp-box .qlwapp-footer,#qlwapp .qlwapp-box .qlwapp-response{color:#303030;background-color:#fff;border-top:1px solid #e6e6e6}#qlwapp .qlwapp-toggle,#qlwapp .qlwapp-box .qlwapp-header,#qlwapp .qlwapp-box .qlwapp-user,#qlwapp .qlwapp-box .qlwapp-user:before{background-color:#303030}#qlwapp{display:none}#qlwapp.qlwapp-show .qlwapp-box{visibility:visible;opacity:1;transform:translateY(0) scale(1);display:block}#qlwapp.qlwapp-transition .qlwapp-box{visibility:visible;display:block}#qlwapp.qlwapp-bubble.qlwapp-show .qlwapp-toggle .qlwapp-icon{transform:scale(0,0);opacity:0}#qlwapp.qlwapp-bubble.qlwapp-show .qlwapp-toggle .qlwapp-close{transform:scale(1,1);opacity:1}#qlwapp.qlwapp-bubble .qlwapp-toggle .qlwapp-close{transform:scale(0,0);opacity:0}#qlwapp.qlwapp-bubble .qlwapp-toggle .qlwapp-icon{transform:scale(1,1);opacity:1}#qlwapp.qlwapp-bubble .qlwapp-toggle .qlwapp-icon,#qlwapp.qlwapp-bubble .qlwapp-toggle .qlwapp-close{transition:transform 300ms cubic-bezier(0.215,0.61,0.355,1),opacity 300ms ease-in}#qlwapp .qlwapp-box{display:none;opacity:0;visibility:hidden;transform:translateY(50px);transition:transform 300ms cubic-bezier(0.215,0.61,0.355,1),opacity 300ms ease-in}@media(min-width:430px){#qlwapp .qlwapp-box{transform:translateY(50px) scale(0.9)}}#qlwapp .qlwapp-box .qlwapp-carousel{display:flex;width:200%;height:100%}#qlwapp .qlwapp-box .qlwapp-carousel .qlwapp-slide{width:50%;transition:max-height 500ms cubic-bezier(0.215,0.61,0.355,1) 1000ms,transform 300ms cubic-bezier(0.215,0.61,0.355,1) 500ms,opacity 500ms ease-in 500ms;height:100%;overflow:hidden}#qlwapp .qlwapp-box .qlwapp-header .qlwapp-slide{max-height:300px}#qlwapp .qlwapp-box .qlwapp-header .qlwapp-name,#qlwapp .qlwapp-box .qlwapp-header .qlwapp-label,#qlwapp .qlwapp-box .qlwapp-header .qlwapp-avatar{opacity:0;transition:transform cubic-bezier(0.215,0.61,0.355,1) .3s,opacity ease-in .3s}#qlwapp .qlwapp-box .qlwapp-header .qlwapp-name,#qlwapp .qlwapp-box .qlwapp-header .qlwapp-label{transform:translateX(56px)}#qlwapp .qlwapp-box .qlwapp-header .qlwapp-avatar{transform:scale(0.5)}#qlwapp .qlwapp-box .qlwapp-header .qlwapp-name{transition-delay:800ms}#qlwapp .qlwapp-box .qlwapp-header .qlwapp-label{transition-delay:850ms}#qlwapp .qlwapp-box .qlwapp-header .qlwapp-avatar{transition-delay:900ms}#qlwapp .qlwapp-box .qlwapp-footer,#qlwapp .qlwapp-box .qlwapp-response,#qlwapp .qlwapp-box .qlwapp-previous,#qlwapp .qlwapp-box .qlwapp-message,#qlwapp .qlwapp-box .qlwapp-user{transition:transform cubic-bezier(0.215,0.61,0.355,1) 600ms,opacity ease-in 200ms}#qlwapp .qlwapp-box .qlwapp-response,#qlwapp .qlwapp-box .qlwapp-previous,#qlwapp .qlwapp-box .qlwapp-user{opacity:0}#qlwapp .qlwapp-box .qlwapp-response{pointer-events:none}#qlwapp .qlwapp-box .qlwapp-previous{transform:translateX(56px)}#qlwapp .qlwapp-box .qlwapp-user{transform:translateY(56px)}#qlwapp .qlwapp-box .qlwapp-close{transition:opacity 300ms cubic-bezier(0.215,0.61,0.355,1)}#qlwapp .qlwapp-box .qlwapp-description{transition:transform 600ms cubic-bezier(0.215,0.61,0.355,1),opacity 900ms cubic-bezier(0.215,0.61,0.355,1)}#qlwapp .qlwapp-box .qlwapp-account{transition:transform 600ms cubic-bezier(0.215,0.61,0.355,1),opacity 150ms ease-in}#qlwapp .qlwapp-box .qlwapp-previous{transition-delay:800ms}#qlwapp .qlwapp-box .qlwapp-message{transition-delay:900ms}#qlwapp .qlwapp-box .qlwapp-close,#qlwapp .qlwapp-box .qlwapp-description{transition-delay:900ms}#qlwapp .qlwapp-box .qlwapp-user{transition-delay:200ms}#qlwapp .qlwapp-box .qlwapp-account:nth-of-type(6){transition-delay:600ms}#qlwapp .qlwapp-box .qlwapp-account:nth-of-type(5){transition-delay:500ms}#qlwapp .qlwapp-box .qlwapp-account:nth-of-type(4){transition-delay:400ms}#qlwapp .qlwapp-box .qlwapp-account:nth-of-type(3){transition-delay:300ms}#qlwapp .qlwapp-box .qlwapp-account:nth-of-type(2){transition-delay:200ms}#qlwapp .qlwapp-box .qlwapp-account:nth-of-type(1){transition-delay:100ms}#qlwapp .qlwapp-box .qlwapp-slide .qlwapp-message{opacity:0;transform:translateY(-56px)}#qlwapp .qlwapp-box .qlwapp-slide .qlwapp-box .qlwapp-account:hover{background-color:#fafafa}#qlwapp .qlwapp-box.response .qlwapp-carousel .qlwapp-slide{transform:translateX(-100%)}#qlwapp .qlwapp-box.response .qlwapp-body .qlwapp-carousel{overflow:hidden;max-height:134px!important;min-height:122px}#qlwapp .qlwapp-box.response .qlwapp-close{transition-delay:0ms}#qlwapp .qlwapp-box.response .qlwapp-close,#qlwapp .qlwapp-box.response .qlwapp-footer,#qlwapp .qlwapp-box.response .qlwapp-description,#qlwapp .qlwapp-box.response .qlwapp-account{opacity:0}#qlwapp .qlwapp-box.response .qlwapp-account{transform:translateY(-33.333%);border-top-color:transparent!important}#qlwapp .qlwapp-box.response .qlwapp-user{display:block}#qlwapp .qlwapp-box.response .qlwapp-message,#qlwapp .qlwapp-box.response .qlwapp-previous,#qlwapp .qlwapp-box.response .qlwapp-response{opacity:1}#qlwapp .qlwapp-box.response .qlwapp-response{pointer-events:all}#qlwapp .qlwapp-box.response .qlwapp-message,#qlwapp .qlwapp-box.response .qlwapp-previous{transform:translate(0)}#qlwapp .qlwapp-box.response .qlwapp-header .qlwapp-slide{max-height:84px}#qlwapp .qlwapp-box.response .qlwapp-header .qlwapp-name,#qlwapp .qlwapp-box.response .qlwapp-header .qlwapp-avatar{opacity:1}#qlwapp .qlwapp-box.response .qlwapp-header .qlwapp-label{opacity:.5}#qlwapp .qlwapp-box.response .qlwapp-header .qlwapp-name,#qlwapp .qlwapp-box.response .qlwapp-header .qlwapp-label{transform:translateX(0)}#qlwapp .qlwapp-box.response .qlwapp-header .qlwapp-avatar{transform:scale(1)}#qlwapp .qlwapp-box.response.opening .qlwapp-footer,#qlwapp .qlwapp-box.response.opening .qlwapp-response,#qlwapp .qlwapp-box.response.opening .qlwapp-close,#qlwapp .qlwapp-box.response.opening .qlwapp-previous,#qlwapp .qlwapp-box.response.opening .qlwapp-description,#qlwapp .qlwapp-box.response.opening .qlwapp-header .qlwapp-name,#qlwapp .qlwapp-box.response.opening .qlwapp-header .qlwapp-label{visibility:visible}#qlwapp .qlwapp-box.texting .qlwapp-body{overflow-y:auto}#qlwapp .qlwapp-box.texting .qlwapp-user{opacity:1;transform:translate(0)}#qlwapp .qlwapp-box.closing .qlwapp-previous{transition-delay:0ms;transform:translateX(-24px);opacity:0;transition:transform cubic-bezier(0.215,0.61,0.355,1) 300ms,opacity ease-out 200ms}#qlwapp .qlwapp-box.closing .qlwapp-description{opacity:0}
|
1 |
+
|
2 |
@font-face{font-family:'qlwapp-whatsapp';src:url(data:application/x-font-woff;charset=utf-8;base64,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) format('woff');font-weight:normal;font-style:normal}.qlwapp-whatsapp-icon{font-family:'qlwapp-whatsapp'!important;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.qlwapp-whatsapp-icon:before{content:"\e900"}#qlwapp{pointer-events:none;box-sizing:border-box}@media(min-width:430px){#qlwapp{width:430px}}#qlwapp *{box-sizing:border-box}#qlwapp.qlwapp-js-ready{display:block}#qlwapp.qlwapp-hide,#qlwapp.qlwapp-desktop.mobile,#qlwapp.qlwapp-mobile.desktop{display:none}#qlwapp .qlwapp-readonly,#qlwapp.qlwapp-readonly{pointer-events:none!important;opacity:.5!important}#qlwapp .qlwapp-disabled,#qlwapp.qlwapp-disabled{display:none;visibility:hidden}#qlwapp.qlwapp-middle-left,#qlwapp.qlwapp-bottom-left,#qlwapp.qlwapp-middle-right,#qlwapp.qlwapp-bottom-right{position:fixed;z-index:9999999}#qlwapp.qlwapp-middle-left,#qlwapp.qlwapp-bottom-left{right:auto;left:0}#qlwapp.qlwapp-middle-left .qlwapp-toggle .qlwapp-time,#qlwapp.qlwapp-bottom-left .qlwapp-toggle .qlwapp-time{left:0;right:auto}#qlwapp.qlwapp-middle-left.qlwapp-bubble .qlwapp-developer,#qlwapp.qlwapp-bottom-left.qlwapp-bubble .qlwapp-developer,#qlwapp.qlwapp-middle-left.qlwapp-button .qlwapp-developer,#qlwapp.qlwapp-bottom-left.qlwapp-button .qlwapp-developer,#qlwapp.qlwapp-middle-left.qlwapp-bubble .qlwapp-toggle,#qlwapp.qlwapp-bottom-left.qlwapp-bubble .qlwapp-toggle,#qlwapp.qlwapp-middle-left.qlwapp-button .qlwapp-toggle,#qlwapp.qlwapp-bottom-left.qlwapp-button .qlwapp-toggle{margin-left:20px}#qlwapp.qlwapp-middle-left.qlwapp-bubble .qlwapp-toggle .qlwapp-text,#qlwapp.qlwapp-bottom-left.qlwapp-bubble .qlwapp-toggle .qlwapp-text{right:auto;left:60px}#qlwapp.qlwapp-middle-left .qlwapp-box:before,#qlwapp.qlwapp-bottom-left .qlwapp-box:before{right:auto;left:20px}#qlwapp.qlwapp-middle-right,#qlwapp.qlwapp-bottom-right{left:auto;right:0}#qlwapp.qlwapp-middle-right .qlwapp-toggle .qlwapp-time,#qlwapp.qlwapp-bottom-right .qlwapp-toggle .qlwapp-time{left:auto;right:0}#qlwapp.qlwapp-middle-right.qlwapp-bubble .qlwapp-developer,#qlwapp.qlwapp-bottom-right.qlwapp-bubble .qlwapp-developer,#qlwapp.qlwapp-middle-right.qlwapp-button .qlwapp-developer,#qlwapp.qlwapp-bottom-right.qlwapp-button .qlwapp-developer,#qlwapp.qlwapp-middle-right.qlwapp-bubble .qlwapp-toggle,#qlwapp.qlwapp-bottom-right.qlwapp-bubble .qlwapp-toggle,#qlwapp.qlwapp-middle-right.qlwapp-button .qlwapp-toggle,#qlwapp.qlwapp-bottom-right.qlwapp-button .qlwapp-toggle{margin-right:20px}#qlwapp.qlwapp-middle-left,#qlwapp.qlwapp-middle-right{top:40%;bottom:auto}#qlwapp.qlwapp-middle-left .qlwapp-developer,#qlwapp.qlwapp-middle-right .qlwapp-developer{padding:0 24px}#qlwapp.qlwapp-middle-left.qlwapp-button .qlwapp-developer,#qlwapp.qlwapp-middle-left.qlwapp-button .qlwapp-toggle{margin-left:-48px;padding-left:60px}#qlwapp.qlwapp-middle-right.qlwapp-button .qlwapp-developer,#qlwapp.qlwapp-middle-right.qlwapp-button .qlwapp-toggle{margin-right:-48px;padding-right:60px}#qlwapp.qlwapp-bottom-left,#qlwapp.qlwapp-bottom-right{top:auto;bottom:0}#qlwapp.qlwapp-rounded.qlwapp-bubble .qlwapp-toggle{border-radius:50%}#qlwapp.qlwapp-rounded.qlwapp-button .qlwapp-toggle{border-radius:50px}@media(min-width:430px){#qlwapp.qlwapp-rounded .qlwapp-box{border-radius:8px}}#qlwapp.qlwapp-rounded .qlwapp-box .qlwapp-user,#qlwapp.qlwapp-rounded .qlwapp-box .qlwapp-message{border-radius:4px}#qlwapp p:last-child{margin:0}#qlwapp time{opacity:.8;font-style:italic;font-size:10px}#qlwapp .qlwapp-container{display:flex;flex-direction:column}#qlwapp .qlwapp-clearfix:before,#qlwapp .qlwapp-clearfix:after{content:'';display:block;clear:both}#qlwapp .qlwapp-previous,#qlwapp .qlwapp-close{display:block;opacity:.8;font-style:unset;font-size:24px;font-weight:bold;width:24px;height:24px;cursor:pointer;text-align:center;line-height:24px;z-index:1}#qlwapp .qlwapp-previous{width:16px;height:36px;cursor:pointer;text-align:center;line-height:36px;margin-right:auto}#qlwapp .qlwapp-developer{font-size:8px;top:-20px;position:relative}#qlwapp .qlwapp-developer,#qlwapp .qlwapp-toggle{display:inline-flex;align-items:center;justify-content:center;margin-left:auto;margin-right:auto}#qlwapp .qlwapp-toggle{pointer-events:all;cursor:pointer;box-shadow:0 1px 6px 0 rgba(0,0,0,0.06),0 2px 32px 0 rgba(0,0,0,0.16);margin-top:24px;margin-bottom:24px;position:relative;text-decoration:none}#qlwapp .qlwapp-toggle,#qlwapp .qlwapp-toggle:active,#qlwapp .qlwapp-toggle:focus,#qlwapp .qlwapp-toggle:hover{outline:0;text-decoration:none}#qlwapp .qlwapp-toggle .qlwapp-time{position:absolute;bottom:-2em;color:initial;font-size:10px;display:inline-block;top:auto;width:120px}#qlwapp .qlwapp-avatar .qlwapp-avatar-container{overflow:hidden;border-radius:50%;width:inherit;height:inherit}#qlwapp .qlwapp-avatar .qlwapp-avatar-container img{width:100%;height:auto}#qlwapp.qlwapp-bubble .qlwapp-toggle{width:60px;height:60px}#qlwapp.qlwapp-bubble .qlwapp-toggle .qlwapp-icon,#qlwapp.qlwapp-bubble .qlwapp-toggle .qlwapp-close{position:absolute;display:block;pointer-events:none;font-size:24px}#qlwapp.qlwapp-bubble .qlwapp-toggle .qlwapp-text{position:absolute;right:60px;height:60px;margin:0 24px;display:flex;align-items:center;justify-content:flex-end;font-weight:bold;white-space:pre}#qlwapp.qlwapp-button .qlwapp-toggle{height:40px;white-space:nowrap;padding:12px 24px}#qlwapp.qlwapp-button .qlwapp-toggle .qlwapp-icon{margin:0 12px 0 0}#qlwapp.qlwapp-button .qlwapp-toggle .qlwapp-close{display:none}#qlwapp .qlwapp-box{pointer-events:all;padding-bottom:56px;position:fixed;top:auto;bottom:0;left:0;right:0;z-index:99999;box-shadow:0 5px 40px 5px rgba(0,0,0,0.5)}@media(min-width:430px){#qlwapp .qlwapp-box{position:relative;top:auto;bottom:auto;left:auto;right:auto;box-shadow:0 8px 25px -5px rgba(45,62,79,0.15);margin-top:24px;margin-left:24px;margin-right:24px;margin-bottom:12px}#qlwapp .qlwapp-box:before{content:'';position:absolute;bottom:-6px;right:24px;width:13px;height:13px;transform:rotate(45deg)}#qlwapp .qlwapp-box .qlwapp-header{border-top-left-radius:inherit;border-top-right-radius:inherit}#qlwapp .qlwapp-box .qlwapp-footer,#qlwapp .qlwapp-box .qlwapp-response{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}}#qlwapp .qlwapp-box .qlwapp-header{position:relative;overflow:hidden}#qlwapp .qlwapp-box .qlwapp-header:before{content:'';position:absolute;top:0;bottom:0;left:0;right:0;background:linear-gradient(135deg,transparent 0,rgba(0,0,0,0.3) 100%)}#qlwapp .qlwapp-box .qlwapp-header .qlwapp-close{position:absolute;top:12px;right:12px}@media(min-width:430px){#qlwapp .qlwapp-box .qlwapp-header .qlwapp-close{position:absolute;top:7px;right:7px;font-size:16px}}#qlwapp .qlwapp-box .qlwapp-header .qlwapp-description{position:relative}#qlwapp .qlwapp-box .qlwapp-description,#qlwapp .qlwapp-box .qlwapp-contact{padding:24px 36px;height:100%}#qlwapp .qlwapp-box .qlwapp-description p,#qlwapp .qlwapp-box .qlwapp-description h3{color:inherit;font-family:inherit;margin:0}#qlwapp .qlwapp-box .qlwapp-description h3{margin:0 0 .25em 0}#qlwapp .qlwapp-box .qlwapp-contact{display:flex;justify-content:flex-end;align-items:center;text-align:right}#qlwapp .qlwapp-box .qlwapp-contact .qlwapp-previous{position:relative;left:-16px}#qlwapp .qlwapp-box .qlwapp-contact .qlwapp-previous>i{line-height:36px}#qlwapp .qlwapp-box .qlwapp-contact .qlwapp-avatar{width:42px;height:42px}#qlwapp .qlwapp-box .qlwapp-contact .qlwapp-label,#qlwapp .qlwapp-box .qlwapp-contact .qlwapp-name{color:inherit}#qlwapp .qlwapp-box .qlwapp-account{color:inherit;padding:16px 36px;display:flex;align-items:center;overflow:hidden;position:relative;cursor:pointer;width:100%;text-decoration:none}#qlwapp .qlwapp-box .qlwapp-account:only-of-type{padding-top:36px;padding-bottom:36px}#qlwapp .qlwapp-box .qlwapp-info{padding:0 16px}#qlwapp .qlwapp-box .qlwapp-avatar{position:relative;width:62px;height:62px}#qlwapp .qlwapp-box .qlwapp-avatar:after{content:'';display:block;width:15px;height:15px;position:absolute;bottom:2px;right:2px;background-image:url(data:image/png;base64,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);background-color:transparent;background-repeat:no-repeat;background-position:center center;background-size:cover;z-index:4}#qlwapp .qlwapp-box .qlwapp-time,#qlwapp .qlwapp-box .qlwapp-label,#qlwapp .qlwapp-box .qlwapp-offline-text{font-size:12px;line-height:1.5em;opacity:.6;display:block}#qlwapp .qlwapp-box .qlwapp-time{font-size:11px;font-style:italic}#qlwapp .qlwapp-box .qlwapp-name{display:block;font-weight:bold;line-height:1.5em}#qlwapp .qlwapp-box .qlwapp-body{overflow-x:hidden;overflow-y:auto}#qlwapp .qlwapp-box .qlwapp-body .qlwapp-carousel{max-height:470px;min-height:134px}#qlwapp .qlwapp-box .qlwapp-chat{display:flex;flex-direction:column;overflow:hidden}#qlwapp .qlwapp-box .qlwapp-user,#qlwapp .qlwapp-box .qlwapp-message{padding:16px 24px;margin:36px;position:relative;word-wrap:break-word;width:calc(100% - 36px*2)}#qlwapp .qlwapp-box .qlwapp-user:before,#qlwapp .qlwapp-box .qlwapp-message:before{content:'';position:absolute;top:-6px;right:24px;width:13px;height:13px;transform:rotate(45deg)}#qlwapp .qlwapp-box .qlwapp-user{width:auto;max-width:75%;align-self:flex-start;justify-self:flex-end;margin-top:0}#qlwapp .qlwapp-box .qlwapp-user:before{top:auto;bottom:-6px;left:24px}#qlwapp .qlwapp-box .qlwapp-padding{padding-bottom:56px}#qlwapp .qlwapp-box .qlwapp-footer,#qlwapp .qlwapp-box .qlwapp-response{position:absolute;bottom:0;left:0;right:0;height:auto;width:100%}#qlwapp .qlwapp-box .qlwapp-footer,#qlwapp .qlwapp-box .qlwapp-response,#qlwapp .qlwapp-box .qlwapp-footer pre,#qlwapp .qlwapp-box .qlwapp-response pre,#qlwapp .qlwapp-box .qlwapp-footer textarea,#qlwapp .qlwapp-box .qlwapp-response textarea{max-height:160px}#qlwapp .qlwapp-box .qlwapp-footer pre,#qlwapp .qlwapp-box .qlwapp-response pre,#qlwapp .qlwapp-box .qlwapp-footer textarea,#qlwapp .qlwapp-box .qlwapp-response textarea{color:inherit;background-color:inherit}#qlwapp .qlwapp-box .qlwapp-footer:before,#qlwapp .qlwapp-box .qlwapp-response:before{pointer-events:none;position:absolute;content:'';height:59px;top:-59px;background-image:linear-gradient(transparent,rgba(0,0,0,0.05));left:0;right:0}#qlwapp .qlwapp-box .qlwapp-footer{min-height:56px;display:flex;align-items:center;justify-content:center;text-align:center;font-size:12px;padding:12px 36px}#qlwapp .qlwapp-box .qlwapp-footer p{padding:0;font-size:inherit}#qlwapp .qlwapp-box .qlwapp-footer p:last-child{margin-bottom:0}#qlwapp .qlwapp-box .qlwapp-response,#qlwapp .qlwapp-box .qlwapp-response pre,#qlwapp .qlwapp-box .qlwapp-response textarea,#qlwapp .qlwapp-box .qlwapp-response .qlwapp-buttons{min-height:56px}#qlwapp .qlwapp-box .qlwapp-response pre,#qlwapp .qlwapp-box .qlwapp-response textarea{width:100%;height:100%;resize:none;border:0;padding:18px 56px 18px 36px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-weight:normal;line-height:20px;white-space:pre-wrap;word-wrap:break-word;border-radius:inherit;margin:0}#qlwapp .qlwapp-box .qlwapp-response pre{visibility:hidden}#qlwapp .qlwapp-box .qlwapp-response textarea{position:absolute;bottom:0;left:0}#qlwapp .qlwapp-box .qlwapp-response textarea:focus{outline:0}#qlwapp .qlwapp-box .qlwapp-response .qlwapp-buttons{position:absolute;top:0;right:21px;display:flex;align-items:center}#qlwapp .qlwapp-box .qlwapp-response .qlwapp-buttons.active>i{display:none}#qlwapp .qlwapp-box .qlwapp-response .qlwapp-buttons.active>i.qlwf-emoji{display:block}#qlwapp .qlwapp-box .qlwapp-response .qlwapp-buttons>i{opacity:.4}#qlwapp .qlwapp-box .qlwapp-response .qlwapp-buttons>i,#qlwapp .qlwapp-box .qlwapp-response .qlwapp-buttons>a{cursor:pointer;margin:0 0 0 10px;display:inherit;font-size:18px;line-height:24px}#qlwapp .qlwapp-previous,#qlwapp .qlwapp-close,#qlwapp .qlwapp-toggle,#qlwapp .qlwapp-box .qlwapp-header,#qlwapp .qlwapp-box .qlwapp-contact,#qlwapp .qlwapp-box .qlwapp-user{color:#fff}#qlwapp.qlwapp-bubble .qlwapp-toggle .qlwapp-text{color:#303030}#qlwapp .qlwapp-box,#qlwapp .qlwapp-box:before{background-color:#fff}#qlwapp .qlwapp-box .qlwapp-account{background-color:#fff}#qlwapp .qlwapp-box .qlwapp-account:not(:first-child){border-top:1px solid #f5f5f5}#qlwapp .qlwapp-box .qlwapp-avatar .qlwapp-avatar-container{background-color:#eee}#qlwapp .qlwapp-box .qlwapp-message,#qlwapp .qlwapp-box .qlwapp-message:before{background-color:#eee}#qlwapp .qlwapp-box .qlwapp-footer,#qlwapp .qlwapp-box .qlwapp-response{color:#303030;background-color:#fff;border-top:1px solid #e6e6e6}#qlwapp .qlwapp-toggle,#qlwapp .qlwapp-box .qlwapp-header,#qlwapp .qlwapp-box .qlwapp-user,#qlwapp .qlwapp-box .qlwapp-user:before{background-color:#303030}#qlwapp{display:none}#qlwapp.qlwapp-show .qlwapp-box{visibility:visible;opacity:1;transform:translateY(0) scale(1);display:block}#qlwapp.qlwapp-transition .qlwapp-box{visibility:visible;display:block}#qlwapp.qlwapp-bubble.qlwapp-show .qlwapp-toggle .qlwapp-icon{transform:scale(0,0);opacity:0}#qlwapp.qlwapp-bubble.qlwapp-show .qlwapp-toggle .qlwapp-close{transform:scale(1,1);opacity:1}#qlwapp.qlwapp-bubble .qlwapp-toggle .qlwapp-close{transform:scale(0,0);opacity:0}#qlwapp.qlwapp-bubble .qlwapp-toggle .qlwapp-icon{transform:scale(1,1);opacity:1}#qlwapp.qlwapp-bubble .qlwapp-toggle .qlwapp-icon,#qlwapp.qlwapp-bubble .qlwapp-toggle .qlwapp-close{transition:transform 300ms cubic-bezier(0.215,0.61,0.355,1),opacity 300ms ease-in}#qlwapp .qlwapp-box{display:none;opacity:0;visibility:hidden;transform:translateY(50px);transition:transform 300ms cubic-bezier(0.215,0.61,0.355,1),opacity 300ms ease-in}@media(min-width:430px){#qlwapp .qlwapp-box{transform:translateY(50px) scale(0.9)}}#qlwapp .qlwapp-box .qlwapp-carousel{display:flex;width:200%;height:100%}#qlwapp .qlwapp-box .qlwapp-carousel .qlwapp-slide{width:50%;transition:max-height 500ms cubic-bezier(0.215,0.61,0.355,1) 1000ms,transform 300ms cubic-bezier(0.215,0.61,0.355,1) 500ms,opacity 500ms ease-in 500ms;height:100%;overflow:hidden}#qlwapp .qlwapp-box .qlwapp-header .qlwapp-slide{max-height:300px}#qlwapp .qlwapp-box .qlwapp-header .qlwapp-name,#qlwapp .qlwapp-box .qlwapp-header .qlwapp-label,#qlwapp .qlwapp-box .qlwapp-header .qlwapp-avatar{opacity:0;transition:transform cubic-bezier(0.215,0.61,0.355,1) .3s,opacity ease-in .3s}#qlwapp .qlwapp-box .qlwapp-header .qlwapp-name,#qlwapp .qlwapp-box .qlwapp-header .qlwapp-label{transform:translateX(56px)}#qlwapp .qlwapp-box .qlwapp-header .qlwapp-avatar{transform:scale(0.5)}#qlwapp .qlwapp-box .qlwapp-header .qlwapp-name{transition-delay:800ms}#qlwapp .qlwapp-box .qlwapp-header .qlwapp-label{transition-delay:850ms}#qlwapp .qlwapp-box .qlwapp-header .qlwapp-avatar{transition-delay:900ms}#qlwapp .qlwapp-box .qlwapp-footer,#qlwapp .qlwapp-box .qlwapp-response,#qlwapp .qlwapp-box .qlwapp-previous,#qlwapp .qlwapp-box .qlwapp-message,#qlwapp .qlwapp-box .qlwapp-user{transition:transform cubic-bezier(0.215,0.61,0.355,1) 600ms,opacity ease-in 200ms}#qlwapp .qlwapp-box .qlwapp-response,#qlwapp .qlwapp-box .qlwapp-previous,#qlwapp .qlwapp-box .qlwapp-user{opacity:0}#qlwapp .qlwapp-box .qlwapp-response{pointer-events:none}#qlwapp .qlwapp-box .qlwapp-previous{transform:translateX(56px)}#qlwapp .qlwapp-box .qlwapp-user{transform:translateY(56px)}#qlwapp .qlwapp-box .qlwapp-close{transition:opacity 300ms cubic-bezier(0.215,0.61,0.355,1)}#qlwapp .qlwapp-box .qlwapp-description{transition:transform 600ms cubic-bezier(0.215,0.61,0.355,1),opacity 900ms cubic-bezier(0.215,0.61,0.355,1)}#qlwapp .qlwapp-box .qlwapp-account{transition:transform 600ms cubic-bezier(0.215,0.61,0.355,1),opacity 150ms ease-in}#qlwapp .qlwapp-box .qlwapp-previous{transition-delay:800ms}#qlwapp .qlwapp-box .qlwapp-message{transition-delay:900ms}#qlwapp .qlwapp-box .qlwapp-close,#qlwapp .qlwapp-box .qlwapp-description{transition-delay:900ms}#qlwapp .qlwapp-box .qlwapp-user{transition-delay:200ms}#qlwapp .qlwapp-box .qlwapp-account:nth-of-type(6){transition-delay:600ms}#qlwapp .qlwapp-box .qlwapp-account:nth-of-type(5){transition-delay:500ms}#qlwapp .qlwapp-box .qlwapp-account:nth-of-type(4){transition-delay:400ms}#qlwapp .qlwapp-box .qlwapp-account:nth-of-type(3){transition-delay:300ms}#qlwapp .qlwapp-box .qlwapp-account:nth-of-type(2){transition-delay:200ms}#qlwapp .qlwapp-box .qlwapp-account:nth-of-type(1){transition-delay:100ms}#qlwapp .qlwapp-box .qlwapp-slide .qlwapp-message{opacity:0;transform:translateY(-56px)}#qlwapp .qlwapp-box .qlwapp-slide .qlwapp-box .qlwapp-account:hover{background-color:#fafafa}#qlwapp .qlwapp-box.response .qlwapp-carousel .qlwapp-slide{transform:translateX(-100%)}#qlwapp .qlwapp-box.response .qlwapp-body .qlwapp-carousel{overflow:hidden;max-height:134px!important;min-height:122px}#qlwapp .qlwapp-box.response .qlwapp-close{transition-delay:0ms}#qlwapp .qlwapp-box.response .qlwapp-close,#qlwapp .qlwapp-box.response .qlwapp-footer,#qlwapp .qlwapp-box.response .qlwapp-description,#qlwapp .qlwapp-box.response .qlwapp-account{opacity:0}#qlwapp .qlwapp-box.response .qlwapp-account{transform:translateY(-33.333%);border-top-color:transparent!important}#qlwapp .qlwapp-box.response .qlwapp-user{display:block}#qlwapp .qlwapp-box.response .qlwapp-message,#qlwapp .qlwapp-box.response .qlwapp-previous,#qlwapp .qlwapp-box.response .qlwapp-response{opacity:1}#qlwapp .qlwapp-box.response .qlwapp-response{pointer-events:all}#qlwapp .qlwapp-box.response .qlwapp-message,#qlwapp .qlwapp-box.response .qlwapp-previous{transform:translate(0)}#qlwapp .qlwapp-box.response .qlwapp-header .qlwapp-slide{max-height:84px}#qlwapp .qlwapp-box.response .qlwapp-header .qlwapp-name,#qlwapp .qlwapp-box.response .qlwapp-header .qlwapp-avatar{opacity:1}#qlwapp .qlwapp-box.response .qlwapp-header .qlwapp-label{opacity:.5}#qlwapp .qlwapp-box.response .qlwapp-header .qlwapp-name,#qlwapp .qlwapp-box.response .qlwapp-header .qlwapp-label{transform:translateX(0)}#qlwapp .qlwapp-box.response .qlwapp-header .qlwapp-avatar{transform:scale(1)}#qlwapp .qlwapp-box.response.opening .qlwapp-footer,#qlwapp .qlwapp-box.response.opening .qlwapp-response,#qlwapp .qlwapp-box.response.opening .qlwapp-close,#qlwapp .qlwapp-box.response.opening .qlwapp-previous,#qlwapp .qlwapp-box.response.opening .qlwapp-description,#qlwapp .qlwapp-box.response.opening .qlwapp-header .qlwapp-name,#qlwapp .qlwapp-box.response.opening .qlwapp-header .qlwapp-label{visibility:visible}#qlwapp .qlwapp-box.texting .qlwapp-body{overflow-y:auto}#qlwapp .qlwapp-box.texting .qlwapp-user{opacity:1;transform:translate(0)}#qlwapp .qlwapp-box.closing .qlwapp-previous{transition-delay:0ms;transform:translateX(-24px);opacity:0;transition:transform cubic-bezier(0.215,0.61,0.355,1) 300ms,opacity ease-out 200ms}#qlwapp .qlwapp-box.closing .qlwapp-description{opacity:0}
|
assets/js/qlwapp-admin.js
CHANGED
@@ -1,6 +1,39 @@
|
|
1 |
(function ($) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
3 |
-
//
|
|
|
4 |
$('form :input').keyup(function (e) {
|
5 |
if (!this.reportValidity()) {
|
6 |
$(this).closest('td').addClass('form-invalid');
|
@@ -12,7 +45,24 @@
|
|
12 |
}
|
13 |
});
|
14 |
|
15 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
|
17 |
$('.qlwapp-select2').select2({allowClear: false, theme: 'default', minimumResultsForSearch: -1});
|
18 |
|
@@ -68,7 +118,7 @@
|
|
68 |
|
69 |
wp.media.editor.send.attachment = function (props, attachment) {
|
70 |
$(button).parent().prev().attr('src', attachment.url);
|
71 |
-
$(button).prev().val(attachment.url);
|
72 |
wp.media.editor.send.attachment = send_attachment_bkp;
|
73 |
}
|
74 |
|
@@ -84,11 +134,103 @@
|
|
84 |
|
85 |
$(this).parent().prev().attr('src', src);
|
86 |
|
87 |
-
$(this).prev().prev().val('');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
|
89 |
return false;
|
90 |
});
|
91 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
92 |
|
93 |
|
94 |
})(jQuery);
|
1 |
(function ($) {
|
2 |
+
//
|
3 |
+
// $.fn.serializeArrayAll = function () {
|
4 |
+
// var o = {};
|
5 |
+
// var a = this.serializeArray();
|
6 |
+
// $.each(a, function () {
|
7 |
+
// if (o[this.name] !== undefined) {
|
8 |
+
// if (!o[this.name].push) {
|
9 |
+
// o[this.name] = [o[this.name]];
|
10 |
+
// }
|
11 |
+
// o[this.name].push(this.value || '');
|
12 |
+
// } else {
|
13 |
+
// o[this.name] = this.value || '';
|
14 |
+
// }
|
15 |
+
// });
|
16 |
+
// var $radio = $('input[type=radio],input[type=checkbox]', this);
|
17 |
+
// $.each($radio, function () {
|
18 |
+
// if (!o.hasOwnProperty(this.name)) {
|
19 |
+
// o[this.name] = '';
|
20 |
+
// }
|
21 |
+
// });
|
22 |
+
// return o;
|
23 |
+
// };
|
24 |
+
|
25 |
+
// Disbled all
|
26 |
+
// ---------------------------------------------------------------------------
|
27 |
+
function disabled(value) {
|
28 |
+
if (value) {
|
29 |
+
$('.button-primary').attr('disabled', true);
|
30 |
+
} else {
|
31 |
+
$('.button-primary').attr('disabled', false);
|
32 |
+
}
|
33 |
+
}
|
34 |
|
35 |
+
// Validation box.contact.phone number
|
36 |
+
// ---------------------------------------------------------------------------
|
37 |
$('form :input').keyup(function (e) {
|
38 |
if (!this.reportValidity()) {
|
39 |
$(this).closest('td').addClass('form-invalid');
|
45 |
}
|
46 |
});
|
47 |
|
48 |
+
$('form').change(function (e) {
|
49 |
+
disabled(false);
|
50 |
+
});
|
51 |
+
|
52 |
+
$('.button').click(function () {
|
53 |
+
disabled(false);
|
54 |
+
});
|
55 |
+
$('button').click(function () {
|
56 |
+
disabled(false);
|
57 |
+
});
|
58 |
+
|
59 |
+
$('.qlwapp-color-field').wpColorPicker({
|
60 |
+
change: function (event, ui) {
|
61 |
+
disabled(false);
|
62 |
+
},
|
63 |
+
});
|
64 |
+
|
65 |
+
disabled(true);
|
66 |
|
67 |
$('.qlwapp-select2').select2({allowClear: false, theme: 'default', minimumResultsForSearch: -1});
|
68 |
|
118 |
|
119 |
wp.media.editor.send.attachment = function (props, attachment) {
|
120 |
$(button).parent().prev().attr('src', attachment.url);
|
121 |
+
$(button).prev().val(attachment.url).trigger('change');
|
122 |
wp.media.editor.send.attachment = send_attachment_bkp;
|
123 |
}
|
124 |
|
134 |
|
135 |
$(this).parent().prev().attr('src', src);
|
136 |
|
137 |
+
$(this).prev().prev().val('').trigger('change');
|
138 |
+
|
139 |
+
return false;
|
140 |
+
});
|
141 |
+
|
142 |
+
// Ajax
|
143 |
+
// ---------------------------------------------------------------------------
|
144 |
+
$(document).on('qlwapp.save', 'form', function (e, action, nonce) {
|
145 |
+
|
146 |
+
var $form = $(e.currentTarget),
|
147 |
+
$spinner = $form.find('.settings-save-status .spinner'),
|
148 |
+
$saved = $form.find('.settings-save-status .saved');
|
149 |
+
|
150 |
+
$.ajax({
|
151 |
+
url: ajaxurl,
|
152 |
+
data: {
|
153 |
+
action: action,
|
154 |
+
nonce: nonce,
|
155 |
+
form_data: $form.serialize()
|
156 |
+
},
|
157 |
+
dataType: 'json',
|
158 |
+
type: 'POST',
|
159 |
+
beforeSend: function () {
|
160 |
+
disabled(true);
|
161 |
+
$spinner.addClass('is-active');
|
162 |
+
},
|
163 |
+
complete: function () {
|
164 |
+
$spinner.removeClass('is-active');
|
165 |
+
},
|
166 |
+
error: function (response) {
|
167 |
+
console.log(response);
|
168 |
+
},
|
169 |
+
success: function (response) {
|
170 |
+
$saved.addClass('is-active');
|
171 |
+
if (response.success) {
|
172 |
+
setTimeout(function () {
|
173 |
+
$saved.removeClass('is-active');
|
174 |
+
}, 2000);
|
175 |
+
console.log(response.data);
|
176 |
+
} else {
|
177 |
+
alert(response.data);
|
178 |
+
}
|
179 |
+
}
|
180 |
+
});
|
181 |
|
182 |
return false;
|
183 |
});
|
184 |
|
185 |
+
// Ajax Button Submit
|
186 |
+
// ---------------------------------------------------------------------------
|
187 |
+
$(document).on('submit', '#qlwapp_button_form', function (e) {
|
188 |
+
e.preventDefault();
|
189 |
+
|
190 |
+
var $form = $(this),
|
191 |
+
nonce = $form.find('#qlwapp_button_form_nonce').val();
|
192 |
+
|
193 |
+
$form.trigger('qlwapp.save', ['qlwapp_save_button', nonce]);
|
194 |
+
|
195 |
+
});
|
196 |
+
|
197 |
+
// Ajax BOX Submit
|
198 |
+
// ---------------------------------------------------------------------------
|
199 |
+
$(document).on('submit', '#qlwapp_box_form', function (e) {
|
200 |
+
e.preventDefault();
|
201 |
+
|
202 |
+
var $form = $(this),
|
203 |
+
nonce = $form.find('#qlwapp_box_form_nonce').val();
|
204 |
+
|
205 |
+
$form.trigger('qlwapp.save', ['qlwapp_save_box', nonce]);
|
206 |
+
|
207 |
+
});
|
208 |
+
|
209 |
+
// Ajax Display Submit
|
210 |
+
// ---------------------------------------------------------------------------
|
211 |
+
$(document).on('submit', '#qlwapp_display_form', function (e) {
|
212 |
+
|
213 |
+
e.preventDefault();
|
214 |
+
|
215 |
+
var $form = $(this),
|
216 |
+
nonce = $form.find('#qlwapp_display_form_nonce').val();
|
217 |
+
|
218 |
+
$form.trigger('qlwapp.save', ['qlwapp_save_display', nonce]);
|
219 |
+
|
220 |
+
});
|
221 |
+
|
222 |
+
// Ajax Scheme Submit
|
223 |
+
// ---------------------------------------------------------------------------
|
224 |
+
$(document).on('submit', '#qlwapp_scheme_form', function (e) {
|
225 |
+
|
226 |
+
e.preventDefault();
|
227 |
+
|
228 |
+
var $form = $(this),
|
229 |
+
nonce = $form.find('#qlwapp_scheme_form_nonce').val();
|
230 |
+
|
231 |
+
$form.trigger('qlwapp.save', ['qlwapp_save_scheme', nonce]);
|
232 |
+
|
233 |
+
});
|
234 |
|
235 |
|
236 |
})(jQuery);
|
assets/js/qlwapp-admin.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
(function(
|
1 |
+
(function(b){function a(c){if(c){b(".button-primary").attr("disabled",true)}else{b(".button-primary").attr("disabled",false)}}b("form :input").keyup(function(c){if(!this.reportValidity()){b(this).closest("td").addClass("form-invalid");b("#btn-save-contact").attr("disabled","disabled")}else{b("#btn-save-contact").removeAttr("disabled");b(this).closest("td").removeClass("form-invalid")}});b("form").change(function(c){a(false)});b(".button").click(function(){a(false)});b("button").click(function(){a(false)});b(".qlwapp-color-field").wpColorPicker({change:function(c,d){a(false)},});a(true);b(".qlwapp-select2").select2({allowClear:false,theme:"default",minimumResultsForSearch:-1});b(".qlwapp-select2-ajax").each(function(){var d=b(this),c=b(this).data("name");d.select2({allowClear:true,ajax:{url:ajaxurl,dataType:"json",data:function(e){return{name:c,per_page:10,q:e.term||0,selected:d.select2("val")||0,action:"qlwapp_get_posts",nonce:qlwapp.nonce.qlwapp_get_posts}},processResults:function(e){var f=[];if(e){b.each(e,function(g,h){f.push({id:h[0],text:h[1]})})}return{results:f}},cache:true},minimumInputLength:3})});b(".qlwapp-color-field").wpColorPicker();b(document).on("click",".upload_image_button",function(f){f.preventDefault();var c=wp.media.editor.send.attachment,d=b(this);wp.media.editor.send.attachment=function(e,g){b(d).parent().prev().attr("src",g.url);b(d).prev().val(g.url).trigger("change");wp.media.editor.send.attachment=c};wp.media.editor.open(d);return false});b(document).on("click",".remove_image_button",function(c){c.preventDefault();var d=b(this).parent().prev().attr("data-src");b(this).parent().prev().attr("src",d);b(this).prev().prev().val("").trigger("change");return false});b(document).on("qlwapp.save","form",function(i,h,f){var c=b(i.currentTarget),g=c.find(".settings-save-status .spinner"),d=c.find(".settings-save-status .saved");b.ajax({url:ajaxurl,data:{action:h,nonce:f,form_data:c.serialize()},dataType:"json",type:"POST",beforeSend:function(){a(true);g.addClass("is-active")},complete:function(){g.removeClass("is-active")},error:function(e){console.log(e)},success:function(e){d.addClass("is-active");if(e.success){setTimeout(function(){d.removeClass("is-active")},2000);console.log(e.data)}else{alert(e.data)}}});return false});b(document).on("submit","#qlwapp_button_form",function(f){f.preventDefault();var c=b(this),d=c.find("#qlwapp_button_form_nonce").val();c.trigger("qlwapp.save",["qlwapp_save_button",d])});b(document).on("submit","#qlwapp_box_form",function(f){f.preventDefault();var c=b(this),d=c.find("#qlwapp_box_form_nonce").val();c.trigger("qlwapp.save",["qlwapp_save_box",d])});b(document).on("submit","#qlwapp_display_form",function(f){f.preventDefault();var c=b(this),d=c.find("#qlwapp_display_form_nonce").val();c.trigger("qlwapp.save",["qlwapp_save_display",d])});b(document).on("submit","#qlwapp_scheme_form",function(f){f.preventDefault();var c=b(this),d=c.find("#qlwapp_scheme_form_nonce").val();c.trigger("qlwapp.save",["qlwapp_save_scheme",d])})})(jQuery);
|
assets/js/qlwapp-contact-modal.js
ADDED
@@ -0,0 +1,379 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
(function ($) {
|
2 |
+
|
3 |
+
var count = 0,
|
4 |
+
timer;
|
5 |
+
|
6 |
+
_.mixin({
|
7 |
+
escapeHtml: function (attribute) {
|
8 |
+
return attribute.replace('&', /&/g)
|
9 |
+
.replace(/>/g, ">")
|
10 |
+
.replace(/</g, "<")
|
11 |
+
.replace(/"/g, '"')
|
12 |
+
.replace(/'/g, "'");
|
13 |
+
}
|
14 |
+
});
|
15 |
+
|
16 |
+
var Contact = Backbone.Model.extend({
|
17 |
+
defaults: qlwapp_contact.args
|
18 |
+
});
|
19 |
+
|
20 |
+
var ContactView = Backbone.View.extend({
|
21 |
+
events: {
|
22 |
+
'change input': 'enable',
|
23 |
+
'change textarea': 'enable',
|
24 |
+
'change select': 'enable',
|
25 |
+
'click .media-modal-backdrop': 'close',
|
26 |
+
'click .media-modal-close': 'close',
|
27 |
+
'click .media-modal-prev': 'edit',
|
28 |
+
'click .media-modal-next': 'edit',
|
29 |
+
'change .media-modal-change': 'change',
|
30 |
+
'submit .media-modal-form': 'submit'
|
31 |
+
},
|
32 |
+
templates: {},
|
33 |
+
initialize: function () {
|
34 |
+
_.bindAll(this, 'open', 'edit', 'change', 'load', 'render', 'close', 'submit');
|
35 |
+
this.init();
|
36 |
+
this.open();
|
37 |
+
|
38 |
+
},
|
39 |
+
init: function () {
|
40 |
+
this.templates.window = wp.template('qlwapp-modal-window');
|
41 |
+
},
|
42 |
+
render: function () {
|
43 |
+
|
44 |
+
var modal = this;
|
45 |
+
|
46 |
+
// get active tab from the previous modal
|
47 |
+
var tab = this.$el.find('ul.wc-tabs li.active a').attr('href');
|
48 |
+
|
49 |
+
modal.$el.html(modal.templates.window(modal.model.attributes));
|
50 |
+
|
51 |
+
_.delay(function () {
|
52 |
+
// modal.$el.trigger('wooccm-enhanced-options');
|
53 |
+
// modal.$el.trigger('wooccm-enhanced-select');
|
54 |
+
// modal.$el.trigger('wooccm-tab-panels', tab);
|
55 |
+
// modal.$el.trigger('init_tooltips');
|
56 |
+
}, 100);
|
57 |
+
|
58 |
+
},
|
59 |
+
load: function () {
|
60 |
+
var modal = this;
|
61 |
+
if (modal.model.attributes.id == undefined) {
|
62 |
+
modal.render();
|
63 |
+
return;
|
64 |
+
}
|
65 |
+
$.ajax({
|
66 |
+
url: ajaxurl,
|
67 |
+
data: {
|
68 |
+
action: 'qlwapp_edit_contact',
|
69 |
+
nonce: qlwapp_contact.nonce.qlwapp_edit_contact,
|
70 |
+
contact_id: this.model.attributes.id
|
71 |
+
},
|
72 |
+
dataType: 'json',
|
73 |
+
type: 'POST',
|
74 |
+
beforeSend: function () {
|
75 |
+
|
76 |
+
},
|
77 |
+
complete: function () {
|
78 |
+
//unblock($tr);
|
79 |
+
},
|
80 |
+
error: function () {
|
81 |
+
alert('Error!');
|
82 |
+
},
|
83 |
+
success: function (response) {
|
84 |
+
|
85 |
+
if (response.success) {
|
86 |
+
modal.model.set(response.data);
|
87 |
+
modal.render();
|
88 |
+
} else {
|
89 |
+
alert(response.data);
|
90 |
+
}
|
91 |
+
}
|
92 |
+
});
|
93 |
+
},
|
94 |
+
edit: function (e) {
|
95 |
+
e.preventDefault();
|
96 |
+
var modal = this,
|
97 |
+
$button = $(e.target),
|
98 |
+
contact_count = parseInt($('#qlwapp_contacts_table tr[data-contact_id]').length),
|
99 |
+
order = parseInt(modal.model.get('order'));
|
100 |
+
count++;
|
101 |
+
if (timer) {
|
102 |
+
clearTimeout(timer);
|
103 |
+
}
|
104 |
+
|
105 |
+
timer = setTimeout(function () {
|
106 |
+
|
107 |
+
if ($button.hasClass('media-modal-next')) {
|
108 |
+
order = Math.min(order + count, contact_count);
|
109 |
+
} else {
|
110 |
+
order = Math.max(order - count, 1);
|
111 |
+
}
|
112 |
+
|
113 |
+
modal.model.set({
|
114 |
+
id: parseInt($('#qlwapp_contacts_table tr[data-contact_order=' + order + ']').data('contact_id'))
|
115 |
+
});
|
116 |
+
count = 0;
|
117 |
+
modal.load();
|
118 |
+
}, 300);
|
119 |
+
},
|
120 |
+
open: function (e) {
|
121 |
+
this.load();
|
122 |
+
$('body').addClass('modal-open').append(this.$el);
|
123 |
+
},
|
124 |
+
update: function (e) {
|
125 |
+
|
126 |
+
e.preventDefault();
|
127 |
+
|
128 |
+
var $field = $(e.target),
|
129 |
+
name = $field.attr('name'),
|
130 |
+
value = $field.val();
|
131 |
+
|
132 |
+
if (e.target.type === 'checkbox') {
|
133 |
+
value = $field.prop('checked') === true ? 1 : 0;
|
134 |
+
}
|
135 |
+
|
136 |
+
this.model.attributes[name] = value;
|
137 |
+
this.model.changed[name] = value;
|
138 |
+
|
139 |
+
},
|
140 |
+
change: function (e) {
|
141 |
+
e.preventDefault();
|
142 |
+
this.update(e);
|
143 |
+
this.render();
|
144 |
+
|
145 |
+
},
|
146 |
+
reload: function (e) {
|
147 |
+
if (this.$el.find('#qlwapp_modal').hasClass('reload')) {
|
148 |
+
location.reload();
|
149 |
+
return;
|
150 |
+
}
|
151 |
+
this.remove();
|
152 |
+
return;
|
153 |
+
},
|
154 |
+
close: function (e) {
|
155 |
+
e.preventDefault();
|
156 |
+
this.undelegateEvents();
|
157 |
+
$(document).off('focusin');
|
158 |
+
$('body').removeClass('modal-open');
|
159 |
+
this.reload(e);
|
160 |
+
return;
|
161 |
+
},
|
162 |
+
enable: function (e) {
|
163 |
+
$('.media-modal-submit').removeProp('disabled');
|
164 |
+
},
|
165 |
+
submit: function (e) {
|
166 |
+
e.preventDefault();
|
167 |
+
var modal = this,
|
168 |
+
$modal = modal.$el.find('#qlwapp_modal'),
|
169 |
+
$details = $modal.find('.attachment-details');
|
170 |
+
$.ajax({
|
171 |
+
url: ajaxurl,
|
172 |
+
data: {
|
173 |
+
action: 'qlwapp_save_contact',
|
174 |
+
nonce: qlwapp_contact.nonce.qlwapp_save_contact,
|
175 |
+
contact_id: modal.model.attributes.id,
|
176 |
+
contact_data: $('form', this.$el).serialize()
|
177 |
+
},
|
178 |
+
dataType: 'json',
|
179 |
+
type: 'POST',
|
180 |
+
beforeSend: function () {
|
181 |
+
$('.media-modal-submit').prop('disabled', true);
|
182 |
+
$details.addClass('save-waiting');
|
183 |
+
},
|
184 |
+
complete: function () {
|
185 |
+
$details.addClass('save-complete');
|
186 |
+
$details.removeClass('save-waiting');
|
187 |
+
},
|
188 |
+
error: function () {
|
189 |
+
alert('Error!');
|
190 |
+
},
|
191 |
+
success: function (response) {
|
192 |
+
if (response.success) {
|
193 |
+
|
194 |
+
if (modal.model.attributes.id == undefined) {
|
195 |
+
modal.close(e);
|
196 |
+
}
|
197 |
+
|
198 |
+
$modal.addClass('reload');
|
199 |
+
|
200 |
+
} else {
|
201 |
+
alert(response.data);
|
202 |
+
}
|
203 |
+
}
|
204 |
+
});
|
205 |
+
return false;
|
206 |
+
}
|
207 |
+
});
|
208 |
+
var ContactModal = Backbone.View.extend({
|
209 |
+
initialize: function (e) {
|
210 |
+
var $button = $(e.target),
|
211 |
+
contact_id = $button.closest('[data-contact_id]').data('contact_id');
|
212 |
+
var model = new Contact();
|
213 |
+
model.set({
|
214 |
+
id: contact_id
|
215 |
+
});
|
216 |
+
new ContactView({
|
217 |
+
model: model
|
218 |
+
});
|
219 |
+
},
|
220 |
+
});
|
221 |
+
$('.qlwapp_settings_edit').on('click', function (e) {
|
222 |
+
e.preventDefault();
|
223 |
+
new ContactModal(e);
|
224 |
+
});
|
225 |
+
$('#qlwapp_contact_add').on('click', function (e) {
|
226 |
+
e.preventDefault();
|
227 |
+
new ContactModal(e);
|
228 |
+
});
|
229 |
+
$('.qlwapp_settings_delete').on('click', function (e) {
|
230 |
+
e.preventDefault();
|
231 |
+
var nonce = $('#qlwapp_delete_contact_nonce').val();
|
232 |
+
var $button = $(e.target),
|
233 |
+
contact_id = $button.closest('[data-contact_id]').data('contact_id');
|
234 |
+
if (!confirm(qlwapp_contact.message.contact_confirm_delete)) {
|
235 |
+
return false;
|
236 |
+
} else {
|
237 |
+
$.ajax({
|
238 |
+
url: ajaxurl,
|
239 |
+
data: {
|
240 |
+
action: 'qlwapp_delete_contact',
|
241 |
+
nonce: nonce,
|
242 |
+
contact_id: contact_id
|
243 |
+
},
|
244 |
+
dataType: 'json',
|
245 |
+
type: 'POST',
|
246 |
+
beforeSend: function () {
|
247 |
+
// $spinner.addClass('is-active');
|
248 |
+
},
|
249 |
+
complete: function () {
|
250 |
+
// $spinner.removeClass('is-active');
|
251 |
+
},
|
252 |
+
error: function (response) {
|
253 |
+
console.log('response from error ');
|
254 |
+
console.log(response);
|
255 |
+
/// alert(response);
|
256 |
+
},
|
257 |
+
success: function (response) {
|
258 |
+
|
259 |
+
if (response.data) {
|
260 |
+
console.log(response.data);
|
261 |
+
location.reload();
|
262 |
+
} else {
|
263 |
+
alert(response.data);
|
264 |
+
}
|
265 |
+
}
|
266 |
+
});
|
267 |
+
}
|
268 |
+
});
|
269 |
+
|
270 |
+
// Sorting
|
271 |
+
// ---------------------------------------------------------------------------
|
272 |
+
$('table#qlwapp_contacts_table tbody').sortable({
|
273 |
+
items: 'tr',
|
274 |
+
cursor: 'move',
|
275 |
+
axis: 'y',
|
276 |
+
handle: 'td.sort',
|
277 |
+
scrollSensitivity: 40,
|
278 |
+
helper: function (event, ui) {
|
279 |
+
ui.children().each(function () {
|
280 |
+
$(this).width($(this).width());
|
281 |
+
});
|
282 |
+
ui.css('left', '0');
|
283 |
+
return ui;
|
284 |
+
},
|
285 |
+
start: function (event, ui) {
|
286 |
+
ui.item.css('background-color', '#f6f6f6');
|
287 |
+
},
|
288 |
+
stop: function (event, ui) {
|
289 |
+
ui.item.removeAttr('style');
|
290 |
+
ui.item.trigger('updateMoveButtons');
|
291 |
+
ui.item.trigger('updateSaveButton');
|
292 |
+
}
|
293 |
+
});
|
294 |
+
$(document).on('updateSaveButton', function () {
|
295 |
+
$('#qlwapp_contact_order').removeProp('disabled');
|
296 |
+
});
|
297 |
+
// Re-order buttons
|
298 |
+
// ---------------------------------------------------------------------------
|
299 |
+
$('.wc-item-reorder-nav').find('.wc-move-up, .wc-move-down').on('click', function () {
|
300 |
+
|
301 |
+
var moveBtn = $(this),
|
302 |
+
$row = moveBtn.closest('tr');
|
303 |
+
moveBtn.focus();
|
304 |
+
var isMoveUp = moveBtn.is('.wc-move-up'),
|
305 |
+
isMoveDown = moveBtn.is('.wc-move-down');
|
306 |
+
if (isMoveUp) {
|
307 |
+
var $previewRow = $row.prev('tr');
|
308 |
+
if ($previewRow && $previewRow.length) {
|
309 |
+
$previewRow.before($row);
|
310 |
+
// wp.a11y.speak( params.i18n_moved_up );
|
311 |
+
}
|
312 |
+
} else if (isMoveDown) {
|
313 |
+
var $nextRow = $row.next('tr');
|
314 |
+
if ($nextRow && $nextRow.length) {
|
315 |
+
$nextRow.after($row);
|
316 |
+
// wp.a11y.speak( params.i18n_moved_down );
|
317 |
+
}
|
318 |
+
}
|
319 |
+
|
320 |
+
moveBtn.focus(); // Re-focus after the container was moved.
|
321 |
+
moveBtn.closest('table').trigger('updateMoveButtons');
|
322 |
+
moveBtn.closest('table').trigger('updateSaveButton');
|
323 |
+
});
|
324 |
+
$('.wc-item-reorder-nav').closest('table').on('updateMoveButtons', function () {
|
325 |
+
var table = $(this),
|
326 |
+
lastRow = $(this).find('tbody tr:last'),
|
327 |
+
firstRow = $(this).find('tbody tr:first');
|
328 |
+
table.find('.wc-item-reorder-nav .wc-move-disabled').removeClass('wc-move-disabled')
|
329 |
+
.attr({'tabindex': '0', 'aria-hidden': 'false'});
|
330 |
+
firstRow.find('.wc-item-reorder-nav .wc-move-up').addClass('wc-move-disabled')
|
331 |
+
.attr({'tabindex': '-1', 'aria-hidden': 'true'});
|
332 |
+
lastRow.find('.wc-item-reorder-nav .wc-move-down').addClass('wc-move-disabled')
|
333 |
+
.attr({'tabindex': '-1', 'aria-hidden': 'true'});
|
334 |
+
});
|
335 |
+
$('table#qlwapp_contacts_table tbody').trigger('updateMoveButtons');
|
336 |
+
//save order of contact
|
337 |
+
// Ajax order Submit
|
338 |
+
$(document).on('submit', '#qlwapp_contacts_form', function (e) {
|
339 |
+
e.preventDefault();
|
340 |
+
var $form = $(this),
|
341 |
+
$spinner = $form.find('.settings-save-status .spinner'),
|
342 |
+
$saved = $form.find('.settings-save-status .saved');
|
343 |
+
$.ajax({
|
344 |
+
url: ajaxurl,
|
345 |
+
data: {
|
346 |
+
action: 'qlwapp_save_contact_order',
|
347 |
+
nonce: qlwapp_contact.nonce.qlwapp_save_contact_order,
|
348 |
+
contact_data: $form.serialize()
|
349 |
+
},
|
350 |
+
dataType: 'json',
|
351 |
+
type: 'POST',
|
352 |
+
beforeSend: function () {
|
353 |
+
$spinner.addClass('is-active');
|
354 |
+
},
|
355 |
+
complete: function () {
|
356 |
+
$spinner.removeClass('is-active');
|
357 |
+
},
|
358 |
+
error: function (response) {
|
359 |
+
console.log('response from error ');
|
360 |
+
console.log(response);
|
361 |
+
/// alert(response);
|
362 |
+
},
|
363 |
+
success: function (response) {
|
364 |
+
$saved.addClass('is-active');
|
365 |
+
$('#qlwapp_contact_order').prop('disabled', true);
|
366 |
+
if (response.success) {
|
367 |
+
setTimeout(function () {
|
368 |
+
$saved.removeClass('is-active');
|
369 |
+
}, 1500);
|
370 |
+
// console.log(response.data);
|
371 |
+
} else {
|
372 |
+
console.log(response.data);
|
373 |
+
alert(response.data);
|
374 |
+
}
|
375 |
+
}
|
376 |
+
});
|
377 |
+
return false;
|
378 |
+
});
|
379 |
+
})(jQuery);
|
assets/js/qlwapp-contact-modal.min.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
(function(c){var b=0,f;_.mixin({escapeHtml:function(g){return g.replace("&",/&/g).replace(/>/g,">").replace(/</g,"<").replace(/"/g,'"').replace(/'/g,"'")}});var e=Backbone.Model.extend({defaults:qlwapp_contact.args});var d=Backbone.View.extend({events:{"change input":"enable","change textarea":"enable","change select":"enable","click .media-modal-backdrop":"close","click .media-modal-close":"close","click .media-modal-prev":"edit","click .media-modal-next":"edit","change .media-modal-change":"change","submit .media-modal-form":"submit"},templates:{},initialize:function(){_.bindAll(this,"open","edit","change","load","render","close","submit");this.init();this.open()},init:function(){this.templates.window=wp.template("qlwapp-modal-window")},render:function(){var h=this;var g=this.$el.find("ul.wc-tabs li.active a").attr("href");h.$el.html(h.templates.window(h.model.attributes));_.delay(function(){},100)},load:function(){var g=this;if(g.model.attributes.id==undefined){g.render();return}c.ajax({url:ajaxurl,data:{action:"qlwapp_edit_contact",nonce:qlwapp_contact.nonce.qlwapp_edit_contact,contact_id:this.model.attributes.id},dataType:"json",type:"POST",beforeSend:function(){},complete:function(){},error:function(){alert("Error!")},success:function(h){if(h.success){g.model.set(h.data);g.render()}else{alert(h.data)}}})},edit:function(k){k.preventDefault();var i=this,j=c(k.target),h=parseInt(c("#qlwapp_contacts_table tr[data-contact_id]").length),g=parseInt(i.model.get("order"));b++;if(f){clearTimeout(f)}f=setTimeout(function(){if(j.hasClass("media-modal-next")){g=Math.min(g+b,h)}else{g=Math.max(g-b,1)}i.model.set({id:parseInt(c("#qlwapp_contacts_table tr[data-contact_order="+g+"]").data("contact_id"))});b=0;i.load()},300)},open:function(g){this.load();c("body").addClass("modal-open").append(this.$el)},update:function(j){j.preventDefault();var h=c(j.target),g=h.attr("name"),i=h.val();if(j.target.type==="checkbox"){i=h.prop("checked")===true?1:0}this.model.attributes[g]=i;this.model.changed[g]=i},change:function(g){g.preventDefault();this.update(g);this.render()},reload:function(g){if(this.$el.find("#qlwapp_modal").hasClass("reload")){location.reload();return}this.remove();return},close:function(g){g.preventDefault();this.undelegateEvents();c(document).off("focusin");c("body").removeClass("modal-open");this.reload(g);return},enable:function(g){c(".media-modal-submit").removeProp("disabled")},submit:function(j){j.preventDefault();var i=this,h=i.$el.find("#qlwapp_modal"),g=h.find(".attachment-details");c.ajax({url:ajaxurl,data:{action:"qlwapp_save_contact",nonce:qlwapp_contact.nonce.qlwapp_save_contact,contact_id:i.model.attributes.id,contact_data:c("form",this.$el).serialize()},dataType:"json",type:"POST",beforeSend:function(){c(".media-modal-submit").prop("disabled",true);g.addClass("save-waiting")},complete:function(){g.addClass("save-complete");g.removeClass("save-waiting")},error:function(){alert("Error!")},success:function(k){if(k.success){if(i.model.attributes.id==undefined){i.close(j)}h.addClass("reload")}else{alert(k.data)}}});return false}});var a=Backbone.View.extend({initialize:function(j){var i=c(j.target),h=i.closest("[data-contact_id]").data("contact_id");var g=new e();g.set({id:h});new d({model:g})},});c(".qlwapp_settings_edit").on("click",function(g){g.preventDefault();new a(g)});c("#qlwapp_contact_add").on("click",function(g){g.preventDefault();new a(g)});c(".qlwapp_settings_delete").on("click",function(j){j.preventDefault();var g=c("#qlwapp_delete_contact_nonce").val();var i=c(j.target),h=i.closest("[data-contact_id]").data("contact_id");if(!confirm(qlwapp_contact.message.contact_confirm_delete)){return false}else{c.ajax({url:ajaxurl,data:{action:"qlwapp_delete_contact",nonce:g,contact_id:h},dataType:"json",type:"POST",beforeSend:function(){},complete:function(){},error:function(k){console.log("response from error ");console.log(k)},success:function(k){if(k.data){console.log(k.data);location.reload()}else{alert(k.data)}}})}});c("table#qlwapp_contacts_table tbody").sortable({items:"tr",cursor:"move",axis:"y",handle:"td.sort",scrollSensitivity:40,helper:function(g,h){h.children().each(function(){c(this).width(c(this).width())});h.css("left","0");return h},start:function(g,h){h.item.css("background-color","#f6f6f6")},stop:function(g,h){h.item.removeAttr("style");h.item.trigger("updateMoveButtons");h.item.trigger("updateSaveButton")}});c(document).on("updateSaveButton",function(){c("#qlwapp_contact_order").removeProp("disabled")});c(".wc-item-reorder-nav").find(".wc-move-up, .wc-move-down").on("click",function(){var l=c(this),g=l.closest("tr");l.focus();var k=l.is(".wc-move-up"),j=l.is(".wc-move-down");if(k){var i=g.prev("tr");if(i&&i.length){i.before(g)}}else{if(j){var h=g.next("tr");if(h&&h.length){h.after(g)}}}l.focus();l.closest("table").trigger("updateMoveButtons");l.closest("table").trigger("updateSaveButton")});c(".wc-item-reorder-nav").closest("table").on("updateMoveButtons",function(){var h=c(this),g=c(this).find("tbody tr:last"),i=c(this).find("tbody tr:first");h.find(".wc-item-reorder-nav .wc-move-disabled").removeClass("wc-move-disabled").attr({tabindex:"0","aria-hidden":"false"});i.find(".wc-item-reorder-nav .wc-move-up").addClass("wc-move-disabled").attr({tabindex:"-1","aria-hidden":"true"});g.find(".wc-item-reorder-nav .wc-move-down").addClass("wc-move-disabled").attr({tabindex:"-1","aria-hidden":"true"})});c("table#qlwapp_contacts_table tbody").trigger("updateMoveButtons");c(document).on("submit","#qlwapp_contacts_form",function(j){j.preventDefault();var g=c(this),i=g.find(".settings-save-status .spinner"),h=g.find(".settings-save-status .saved");c.ajax({url:ajaxurl,data:{action:"qlwapp_save_contact_order",nonce:qlwapp_contact.nonce.qlwapp_save_contact_order,contact_data:g.serialize()},dataType:"json",type:"POST",beforeSend:function(){i.addClass("is-active")},complete:function(){i.removeClass("is-active")},error:function(k){console.log("response from error ");console.log(k)},success:function(k){h.addClass("is-active");c("#qlwapp_contact_order").prop("disabled",true);if(k.success){setTimeout(function(){h.removeClass("is-active")},1500)}else{console.log(k.data);alert(k.data)}}});return false})})(jQuery);
|
assets/js/qlwapp-modal.js
DELETED
@@ -1,357 +0,0 @@
|
|
1 |
-
(function ($) {
|
2 |
-
|
3 |
-
var is_blocked = function ($node) {
|
4 |
-
return $node.is('.processing') || $node.parents('.processing').length;
|
5 |
-
};
|
6 |
-
var block = function ($node) {
|
7 |
-
if (!is_blocked($node)) {
|
8 |
-
$node.addClass('processing').block({
|
9 |
-
message: null,
|
10 |
-
overlayCSS: {
|
11 |
-
background: '#fff',
|
12 |
-
opacity: 0.6
|
13 |
-
}
|
14 |
-
});
|
15 |
-
}
|
16 |
-
};
|
17 |
-
var unblock = function ($node) {
|
18 |
-
$node.removeClass('processing').unblock();
|
19 |
-
};
|
20 |
-
var wpmi = {
|
21 |
-
__instance: undefined
|
22 |
-
};
|
23 |
-
wpmi.Application = Backbone.View.extend({
|
24 |
-
id: 'wpmi_modal',
|
25 |
-
events: {
|
26 |
-
'click .media-modal-backdrop': 'Close',
|
27 |
-
'click .media-modal-close': 'Close',
|
28 |
-
'click .media-modal-delete': 'Delete',
|
29 |
-
'click .media-modal-prev': 'update',
|
30 |
-
'click .media-modal-next': 'update',
|
31 |
-
'submit .media-modal-form': 'Save'
|
32 |
-
},
|
33 |
-
templates: {},
|
34 |
-
initialize: function (e) {
|
35 |
-
'use strict';
|
36 |
-
_.bindAll(this, 'open', 'update', 'render', 'Close', 'Save');
|
37 |
-
this.init();
|
38 |
-
this.open(e);
|
39 |
-
},
|
40 |
-
init: function () {
|
41 |
-
this.templates.window = wp.template('wpmi-modal-window');
|
42 |
-
},
|
43 |
-
render: function (contact_id) {
|
44 |
-
'use strict';
|
45 |
-
var $modal = this;
|
46 |
-
$.ajax({
|
47 |
-
url: ajaxurl,
|
48 |
-
data: {
|
49 |
-
action: 'qlwapp_edit_contact',
|
50 |
-
nonce: qlwapp.nonce.qlwapp_edit_contact,
|
51 |
-
//options_name: $tr.data('options_name'),
|
52 |
-
//options_key: $tr.data('options_key'),
|
53 |
-
contact_id: contact_id
|
54 |
-
},
|
55 |
-
dataType: 'json',
|
56 |
-
type: 'POST',
|
57 |
-
beforeSend: function () {
|
58 |
-
//block($tr);
|
59 |
-
},
|
60 |
-
complete: function () {
|
61 |
-
//unblock($tr);
|
62 |
-
},
|
63 |
-
error: function (response) {
|
64 |
-
console.log(response);
|
65 |
-
/// alert(response);
|
66 |
-
},
|
67 |
-
success: function (response) {
|
68 |
-
$modal.$el.attr('tabindex', '0');
|
69 |
-
$modal.$el.html($modal.templates.window(response.data));
|
70 |
-
//$(document).on('focusin', $modal.preserveFocus);
|
71 |
-
$modal.$el.focus().trigger('wc-init-tabbed-panels');
|
72 |
-
$modal.$el.focus().trigger('init_tooltips');
|
73 |
-
}
|
74 |
-
});
|
75 |
-
},
|
76 |
-
update: function (e) {
|
77 |
-
'use strict';
|
78 |
-
e.stopPropagation();
|
79 |
-
e.preventDefault();
|
80 |
-
var $button = $(e.target),
|
81 |
-
contact_id = $button.data('contact_id');
|
82 |
-
this.render(contact_id);
|
83 |
-
},
|
84 |
-
open: function (e) {
|
85 |
-
'use strict';
|
86 |
-
var $button = $(e.target),
|
87 |
-
$tr = $button.closest('tr'),
|
88 |
-
contact_id = $tr.data('contact_id');
|
89 |
-
this.render(contact_id);
|
90 |
-
$('body').addClass('modal-open').append(this.$el);
|
91 |
-
},
|
92 |
-
/*preserveFocus: function (e) {
|
93 |
-
'use strict';
|
94 |
-
|
95 |
-
if (this.$el[0] !== e.target && !this.$el.has(e.target).length) {
|
96 |
-
this.$el.focus();
|
97 |
-
}
|
98 |
-
},*/
|
99 |
-
Close: function (e) {
|
100 |
-
'use strict';
|
101 |
-
e.preventDefault();
|
102 |
-
this.undelegateEvents();
|
103 |
-
$(document).off('focusin');
|
104 |
-
$('body').removeClass('modal-open');
|
105 |
-
this.remove();
|
106 |
-
wpmi.__instance = undefined;
|
107 |
-
},
|
108 |
-
Save: function (e) {
|
109 |
-
'use strict';
|
110 |
-
e.preventDefault();
|
111 |
-
var $form = $(e.target),
|
112 |
-
$modal = this.$el,
|
113 |
-
$spinner = $modal.find('.settings-save-status .spinner');
|
114 |
-
$.ajax({
|
115 |
-
url: ajaxurl,
|
116 |
-
data: {
|
117 |
-
action: 'qlwapp_save_contact',
|
118 |
-
nonce: qlwapp.nonce.qlwapp_save_contact,
|
119 |
-
contact_id: $form.data('contact_id'),
|
120 |
-
contact_data: $form.serializeArrayAll()
|
121 |
-
},
|
122 |
-
dataType: 'json',
|
123 |
-
type: 'POST',
|
124 |
-
beforeSend: function () {
|
125 |
-
$spinner.addClass('is-active');
|
126 |
-
// block($modal);
|
127 |
-
},
|
128 |
-
complete: function () {
|
129 |
-
$spinner.removeClass('is-active');
|
130 |
-
|
131 |
-
// unblock($modal);
|
132 |
-
//$modal.Close(e);
|
133 |
-
},
|
134 |
-
error: function () {
|
135 |
-
alert('Error!');
|
136 |
-
},
|
137 |
-
success: function (response) {
|
138 |
-
$modal.find('.settings-save-status').addClass('save-complete');
|
139 |
-
console.log(response);
|
140 |
-
//$modal.$el.attr('tabindex', '0');
|
141 |
-
//$modal.$el.html($modal.templates.window(response.data));
|
142 |
-
//$(document).on('focusin', $modal.preserveFocus);
|
143 |
-
//$modal.$el.focus().trigger('wc-init-tabbed-panels');
|
144 |
-
}
|
145 |
-
});
|
146 |
-
return false;
|
147 |
-
},
|
148 |
-
Delete: function (e) {
|
149 |
-
'use strict';
|
150 |
-
e.preventDefault();
|
151 |
-
var $modal = this;
|
152 |
-
$modal.Close(e);
|
153 |
-
}
|
154 |
-
});
|
155 |
-
|
156 |
-
$('#qlwapp_settings_add').on('click', function (e) {
|
157 |
-
e.preventDefault();
|
158 |
-
if (wpmi.__instance === undefined) {
|
159 |
-
wpmi.__instance = new wpmi.Application(e);
|
160 |
-
}
|
161 |
-
});
|
162 |
-
$('.qlwapp_settings_edit').on('click', function (e) {
|
163 |
-
e.preventDefault();
|
164 |
-
if (wpmi.__instance === undefined) {
|
165 |
-
wpmi.__instance = new wpmi.Application(e);
|
166 |
-
}
|
167 |
-
});
|
168 |
-
$('.qlwapp_settings_delete').on('click', function (e) {
|
169 |
-
alert('hacer algo ...');
|
170 |
-
e.preventDefault();
|
171 |
-
|
172 |
-
});
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
})(jQuery);
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
/*(function ($) {
|
182 |
-
|
183 |
-
var wpmi = {
|
184 |
-
__instance: undefined
|
185 |
-
};
|
186 |
-
|
187 |
-
wpmi.Application = Backbone.View.extend(
|
188 |
-
{
|
189 |
-
id: 'wpmi_modal',
|
190 |
-
events: {
|
191 |
-
'click .close': 'Close',
|
192 |
-
// 'click .remove': 'Remove',
|
193 |
-
'click .save': 'Save'
|
194 |
-
},
|
195 |
-
ui: {
|
196 |
-
// nav: undefined,
|
197 |
-
// content: undefined,
|
198 |
-
// media: undefined
|
199 |
-
},
|
200 |
-
templates: {},
|
201 |
-
initialize: function (e) {
|
202 |
-
'use strict';
|
203 |
-
_.bindAll(this, 'render', 'preserveFocus', 'Close', 'Save');//, 'Select', 'Search', 'Remove'
|
204 |
-
this.initialize_templates();
|
205 |
-
this.render(e);
|
206 |
-
this.backdrop(e);
|
207 |
-
},
|
208 |
-
backdrop: function (e) {
|
209 |
-
'use strict';
|
210 |
-
|
211 |
-
var plugin = this;
|
212 |
-
|
213 |
-
$(document).on('click', '.media-modal-backdrop', function (e) {
|
214 |
-
plugin.Close(e);
|
215 |
-
});
|
216 |
-
},
|
217 |
-
initialize_templates: function () {
|
218 |
-
this.templates.window = wp.template('wpmi-modal-window');
|
219 |
-
this.templates.backdrop = wp.template('wpmi-modal-backdrop');
|
220 |
-
},
|
221 |
-
render: function (e) {
|
222 |
-
'use strict';
|
223 |
-
var contact_id = $(e.target).data('contact_id');
|
224 |
-
$.ajax({
|
225 |
-
type: 'POST',
|
226 |
-
url: ajaxurl,
|
227 |
-
data: {
|
228 |
-
action: 'qlwapp_get_contact',
|
229 |
-
nonce: qlwapp.nonce.qlwapp_get_contact,
|
230 |
-
contact_id:contact_id
|
231 |
-
},
|
232 |
-
beforeSend: function () {
|
233 |
-
// alert('before..');
|
234 |
-
},
|
235 |
-
complete: function () {
|
236 |
-
// alert('complete..');
|
237 |
-
},
|
238 |
-
error: function () {
|
239 |
-
alert('Error!');
|
240 |
-
},
|
241 |
-
success: function (response) {
|
242 |
-
alert(response);
|
243 |
-
console.log( response.data);
|
244 |
-
|
245 |
-
}
|
246 |
-
});
|
247 |
-
this.$el.attr('tabindex', '0')
|
248 |
-
// .data('menu_item_id', menu_item_id)
|
249 |
-
.append(this.templates.window())
|
250 |
-
.append(this.templates.backdrop());
|
251 |
-
|
252 |
-
$(document).on('focusin', this.preserveFocus);
|
253 |
-
$('body').addClass('modal-open').append(this.$el);
|
254 |
-
this.$el.focus();
|
255 |
-
},
|
256 |
-
preserveFocus: function (e) {
|
257 |
-
'use strict';
|
258 |
-
if (this.$el[0] !== e.target && !this.$el.has(e.target).length) {
|
259 |
-
this.$el.focus();
|
260 |
-
}
|
261 |
-
},
|
262 |
-
Close: function (e) {
|
263 |
-
'use strict';
|
264 |
-
e.preventDefault();
|
265 |
-
this.undelegateEvents();
|
266 |
-
$(document).off('focusin');
|
267 |
-
$('body').removeClass('modal-open');
|
268 |
-
this.remove();
|
269 |
-
wpmi.__instance = undefined;
|
270 |
-
},
|
271 |
-
Save: function (e) {
|
272 |
-
'use strict';
|
273 |
-
e.preventDefault();
|
274 |
-
|
275 |
-
var plugin = this,
|
276 |
-
$form = $('form', this.$el),
|
277 |
-
menu_item_id = this.$el.data('menu_item_id');
|
278 |
-
|
279 |
-
if (!menu_item_id)
|
280 |
-
return;
|
281 |
-
|
282 |
-
if (!$form.length)
|
283 |
-
return;
|
284 |
-
|
285 |
-
var $li = $('#menu-to-edit').find('#menu-item-' + menu_item_id),
|
286 |
-
$plus = $li.find('.menu-item-wpmi_plus'),
|
287 |
-
$icon = $li.find('.menu-item-wpmi_icon');
|
288 |
-
|
289 |
-
if (!$li.length)
|
290 |
-
return;
|
291 |
-
|
292 |
-
$form.find('.wpmi-input').each(function (i) {
|
293 |
-
|
294 |
-
var key = $(this).prop('id').match(/wpmi-input-([a-z]+)/)[1],
|
295 |
-
value = $(this).val();
|
296 |
-
|
297 |
-
$li.find('input#wpmi-input-' + key).val(value);
|
298 |
-
|
299 |
-
if (key === 'icon') {
|
300 |
-
|
301 |
-
if ($icon.length) {
|
302 |
-
|
303 |
-
$icon.remove();
|
304 |
-
}
|
305 |
-
|
306 |
-
$plus.before('<i class="menu-item-wpmi_icon ' + value + '"></i>');
|
307 |
-
}
|
308 |
-
});
|
309 |
-
|
310 |
-
plugin.Close(e);
|
311 |
-
}
|
312 |
-
|
313 |
-
|
314 |
-
});
|
315 |
-
|
316 |
-
$(document).on('click', '.qlwapp-contact_open', function (e) {
|
317 |
-
|
318 |
-
e.preventDefault();
|
319 |
-
if (wpmi.__instance === undefined) {
|
320 |
-
wpmi.__instance = new wpmi.Application(e);
|
321 |
-
}
|
322 |
-
});
|
323 |
-
|
324 |
-
$(document).on('click', '#wpmi_metabox', function (e) {
|
325 |
-
|
326 |
-
var menu_font = $('input:checked', $(this)).val(),
|
327 |
-
menu_id = $('#menu').val();
|
328 |
-
|
329 |
-
if ($(e.target).hasClass('save') && menu_font && menu_id) {
|
330 |
-
|
331 |
-
e.preventDefault();
|
332 |
-
|
333 |
-
$.ajax({
|
334 |
-
type: 'POST',
|
335 |
-
url: ajaxurl,
|
336 |
-
data: {
|
337 |
-
action: 'wpmi_save_nav_menu',
|
338 |
-
menu_id: menu_id,
|
339 |
-
menu_font: menu_font,
|
340 |
-
nonce: wpmi_l10n.nonce
|
341 |
-
},
|
342 |
-
beforeSend: function () {
|
343 |
-
},
|
344 |
-
complete: function () {
|
345 |
-
},
|
346 |
-
error: function () {
|
347 |
-
alert('Error!');
|
348 |
-
},
|
349 |
-
success: function (response) {
|
350 |
-
location.reload();
|
351 |
-
}
|
352 |
-
});
|
353 |
-
|
354 |
-
}
|
355 |
-
});
|
356 |
-
|
357 |
-
})(jQuery);*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/js/qlwapp-modal.min.js
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
(function(c){var d=function(f){return f.is(".processing")||f.parents(".processing").length};var e=function(f){if(!d(f)){f.addClass("processing").block({message:null,overlayCSS:{background:"#fff",opacity:0.6}})}};var b=function(f){f.removeClass("processing").unblock()};var a={__instance:undefined};a.Application=Backbone.View.extend({id:"wpmi_modal",events:{"click .media-modal-backdrop":"Close","click .media-modal-close":"Close","click .media-modal-delete":"Delete","click .media-modal-prev":"update","click .media-modal-next":"update","submit .media-modal-form":"Save"},templates:{},initialize:function(f){_.bindAll(this,"open","update","render","Close","Save");this.init();this.open(f)},init:function(){this.templates.window=wp.template("wpmi-modal-window")},render:function(g){var f=this;c.ajax({url:ajaxurl,data:{action:"qlwapp_edit_contact",nonce:qlwapp.nonce.qlwapp_edit_contact,contact_id:g},dataType:"json",type:"POST",beforeSend:function(){},complete:function(){},error:function(h){console.log(h)},success:function(h){f.$el.attr("tabindex","0");f.$el.html(f.templates.window(h.data));f.$el.focus().trigger("wc-init-tabbed-panels");f.$el.focus().trigger("init_tooltips")}})},update:function(h){h.stopPropagation();h.preventDefault();var g=c(h.target),f=g.data("contact_id");this.render(f)},open:function(i){var h=c(i.target),f=h.closest("tr"),g=f.data("contact_id");this.render(g);c("body").addClass("modal-open").append(this.$el)},Close:function(f){f.preventDefault();this.undelegateEvents();c(document).off("focusin");c("body").removeClass("modal-open");this.remove();a.__instance=undefined},Save:function(i){i.preventDefault();var f=c(i.target),g=this.$el,h=g.find(".settings-save-status .spinner");c.ajax({url:ajaxurl,data:{action:"qlwapp_save_contact",nonce:qlwapp.nonce.qlwapp_save_contact,contact_id:f.data("contact_id"),contact_data:f.serializeArrayAll()},dataType:"json",type:"POST",beforeSend:function(){h.addClass("is-active")},complete:function(){h.removeClass("is-active")},error:function(){alert("Error!")},success:function(j){g.find(".settings-save-status").addClass("save-complete");console.log(j)}});return false},Delete:function(g){g.preventDefault();var f=this;f.Close(g)}});c("#qlwapp_settings_add").on("click",function(f){f.preventDefault();if(a.__instance===undefined){a.__instance=new a.Application(f)}});c(".qlwapp_settings_edit").on("click",function(f){f.preventDefault();if(a.__instance===undefined){a.__instance=new a.Application(f)}});c(".qlwapp_settings_delete").on("click",function(f){alert("hacer algo ...");f.preventDefault()})})(jQuery);
|
|
assets/js/qlwapp.js
CHANGED
@@ -38,6 +38,8 @@
|
|
38 |
timeto = $contact.data('timeto') || false,
|
39 |
// timeout = $contact.data('timeout'),
|
40 |
timezone = parseInt($contact.data('timezone')) || 0;
|
|
|
|
|
41 |
|
42 |
// Don't scape timezone as could be 0
|
43 |
if (!timeto || !timefrom || (timefrom === timeto)) {
|
38 |
timeto = $contact.data('timeto') || false,
|
39 |
// timeout = $contact.data('timeout'),
|
40 |
timezone = parseInt($contact.data('timezone')) || 0;
|
41 |
+
|
42 |
+
console.log($contact.data('timezone'));
|
43 |
|
44 |
// Don't scape timezone as could be 0
|
45 |
if (!timeto || !timefrom || (timefrom === timeto)) {
|
assets/js/qlwapp.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
(function(d,c,a,g){var e={};function b(i,h){this.$qlwapp=d(i);this.init(this)}b.prototype={timeDateToString:function(i){var h=""+i.getMinutes();if(h.length===1){h="0"+h}return i.getHours()+":"+h},timeStringToInt:function(i,h){return parseInt(i+h)},init:function(i){var h=this.$qlwapp;h.on("qlwapp.init",function(j){i.mobiledevice=(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent))});h.on("qlwapp.time",function(p){var j=d(p.target),r=j.data("timefrom")||false,s=j.data("timeto")||false,o=parseInt(j.data("timezone"))||0;if(!s||!r||(r===s)){return true}var v=new Date(),l=v.getTimezoneOffset(),q=-l-o;var u=new Date(),k=new Date();var t,m;t=i.timeStringToInt(r[0],r[1]);m=i.timeStringToInt(r[3],r[4]);k.setHours(t);k.setMinutes(m+q);t=i.timeStringToInt(s[0],s[1]);m=i.timeStringToInt(s[3],s[4]);u.setHours(t);u.setMinutes(m+q);if(!(v.getTime()>=k.getTime()&&v.getTime()<=u.getTime())){j.addClass("qlwapp-readonly")}if(!o){return true}j.find(".from").text(i.timeDateToString(k));j.find(".to").text(i.timeDateToString(u))});h.on("qlwapp.pro",function(j){h.find(".qlwapp-toggle").trigger("qlwapp.time");h.find(".qlwapp-account").each(function(l,k){d(k).trigger("qlwapp.time")})});h.on("qlwapp.resize",function(j){if(d(this).hasClass("qlwapp-show")){d(this).trigger("qlwapp.toggle")}});h.on("qlwapp.init",function(j){if(!i.mobiledevice){h.addClass("desktop").removeClass("mobile")}else{h.addClass("mobile").removeClass("desktop")}h.addClass("qlwapp-js-ready")});h.on("qlwapp.init",function(j){if(h.hasClass("qlwapp-premium")){h.trigger("qlwapp.pro")}});h.addClass("qlwapp-js-ready").trigger("qlwapp.init");h.on("qlwapp.height",function(o){var p=d(o.delegateTarget),n=p.find(".qlwapp-body"),m=n.find(".qlwapp-carousel");var l=p.find(".qlwapp-header"),k=p.find(".qlwapp-footer"),j=(d(c).innerHeight()-l.outerHeight()-k.outerHeight());if(!i.mobiledevice){j=(d(c).innerHeight()*0.7-l.outerHeight()-k.outerHeight())}m.css({"max-height":j+"px"})});h.on("qlwapp.toggle",function(k){var l=d(k.delegateTarget),j=l.find(".qlwapp-box");l.addClass("qlwapp-transition");j.removeClass("response texting");setTimeout(function(){l.toggleClass("qlwapp-show").trigger("qlwapp.height")},10);setTimeout(function(){l.toggleClass("qlwapp-transition")},300)});h.on("click","[data-action=box], [data-action=close]",function(j){j.preventDefault();d(j.delegateTarget).trigger("qlwapp.toggle")});h.on("click","[data-action=open]",function(n){var k="https://api.whatsapp.com/send";if(!i.mobiledevice){k="https://web.whatsapp.com/send"}var m=d(this),l=m.data("message")||"",j=m.data("phone")||"";d(this).attr("href",k+"?phone="+j+"&text="+l)});h.on("click","[data-action=previous]",function(k){k.preventDefault();var l=d(k.delegateTarget),j=l.find(".qlwapp-box");j.addClass("closing");setTimeout(function(){j.removeClass("response").removeClass("closing");j.removeClass("texting")},300)});h.on("click","[data-action=chat]",function(w){w.preventDefault();var n=d(this),t=d(w.delegateTarget),u=t.find(".qlwapp-box"),v=n.find(".qlwapp-avatar img").attr("src"),A=n.find(".qlwapp-name").text(),q=n.find(".qlwapp-label").text(),p=n.find(".qlwapp-time").text(),r=n.data("message"),o=n.data("phone");u.addClass("response").addClass("opening");t.trigger("qlwapp.height");setTimeout(function(){u.removeClass("opening")},300);var k=u.find(".qlwapp-reply"),x=u.find(".qlwapp-header"),j=x.find(".qlwapp-avatar img"),m=x.find(".qlwapp-number"),l=x.find(".qlwapp-name"),z=x.find(".qlwapp-label"),y=u.find(".qlwapp-message");var s=p?p+" - "+q:q;k.data("phone",o);j.attr("src",v);m.html(o);l.html(A);z.html(s);y.html(r)});h.on("click","textarea",function(j){h.off("qlwapp.resize")});h.on("keypress","textarea",function(j){if(j.keyCode==13){h.find(".qlwapp-reply").trigger("click");setTimeout(function(){c.location=h.find(".qlwapp-reply").attr("href")},100)}});h.on("keyup","[data-action=response]",function(m){m.preventDefault();var p=d(this).find("textarea"),o=d(this).find("pre"),j=d(this).find(".qlwapp-reply"),n=d(m.delegateTarget),l=n.find(".qlwapp-box"),k=l.find(".qlwapp-buttons");o.html(p.val());setTimeout(function(){l.addClass("texting").css({"padding-bottom":o.outerHeight()});k.addClass("active");var q=p.val();j.data("message",q);if(q==""){l.removeClass("texting");k.removeClass("active")}},300)})}};d.fn.qlwapp=function(i){var h=arguments;if(i===g||typeof i==="object"){return this.each(function(){if(!d.data(this,"plugin_qlwapp")){d.data(this,"plugin_qlwapp",new b(this,i))}})}else{if(typeof i==="string"&&i[0]!=="_"&&i!=="init"){var j;this.each(function(){var k=d.data(this,"plugin_qlwapp");if(k instanceof b&&typeof k[i]==="function"){j=k[i].apply(k,Array.prototype.slice.call(h,1))}if(i==="destroy"){d.data(this,"plugin_qlwapp",null)}});return j!==g?j:this}}};function f(){d("div#qlwapp").qlwapp()}f();d(c).on("load",function(){f()});d(c).on("click",function(h){if(!d(h.target).closest("#qlwapp.qlwapp-show").length){d("div#qlwapp.qlwapp-show").trigger("qlwapp.toggle")}});d(c).on("resize",function(h){d("div#qlwapp").trigger("qlwapp.resize");d("div#qlwapp").trigger("qlwapp.init")})})(jQuery,window,document);
|
1 |
+
(function(d,c,a,g){var e={};function b(i,h){this.$qlwapp=d(i);this.init(this)}b.prototype={timeDateToString:function(i){var h=""+i.getMinutes();if(h.length===1){h="0"+h}return i.getHours()+":"+h},timeStringToInt:function(i,h){return parseInt(i+h)},init:function(i){var h=this.$qlwapp;h.on("qlwapp.init",function(j){i.mobiledevice=(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent))});h.on("qlwapp.time",function(p){var j=d(p.target),r=j.data("timefrom")||false,s=j.data("timeto")||false,o=parseInt(j.data("timezone"))||0;console.log(j.data("timezone"));if(!s||!r||(r===s)){return true}var v=new Date(),l=v.getTimezoneOffset(),q=-l-o;var u=new Date(),k=new Date();var t,m;t=i.timeStringToInt(r[0],r[1]);m=i.timeStringToInt(r[3],r[4]);k.setHours(t);k.setMinutes(m+q);t=i.timeStringToInt(s[0],s[1]);m=i.timeStringToInt(s[3],s[4]);u.setHours(t);u.setMinutes(m+q);if(!(v.getTime()>=k.getTime()&&v.getTime()<=u.getTime())){j.addClass("qlwapp-readonly")}if(!o){return true}j.find(".from").text(i.timeDateToString(k));j.find(".to").text(i.timeDateToString(u))});h.on("qlwapp.pro",function(j){h.find(".qlwapp-toggle").trigger("qlwapp.time");h.find(".qlwapp-account").each(function(l,k){d(k).trigger("qlwapp.time")})});h.on("qlwapp.resize",function(j){if(d(this).hasClass("qlwapp-show")){d(this).trigger("qlwapp.toggle")}});h.on("qlwapp.init",function(j){if(!i.mobiledevice){h.addClass("desktop").removeClass("mobile")}else{h.addClass("mobile").removeClass("desktop")}h.addClass("qlwapp-js-ready")});h.on("qlwapp.init",function(j){if(h.hasClass("qlwapp-premium")){h.trigger("qlwapp.pro")}});h.addClass("qlwapp-js-ready").trigger("qlwapp.init");h.on("qlwapp.height",function(o){var p=d(o.delegateTarget),n=p.find(".qlwapp-body"),m=n.find(".qlwapp-carousel");var l=p.find(".qlwapp-header"),k=p.find(".qlwapp-footer"),j=(d(c).innerHeight()-l.outerHeight()-k.outerHeight());if(!i.mobiledevice){j=(d(c).innerHeight()*0.7-l.outerHeight()-k.outerHeight())}m.css({"max-height":j+"px"})});h.on("qlwapp.toggle",function(k){var l=d(k.delegateTarget),j=l.find(".qlwapp-box");l.addClass("qlwapp-transition");j.removeClass("response texting");setTimeout(function(){l.toggleClass("qlwapp-show").trigger("qlwapp.height")},10);setTimeout(function(){l.toggleClass("qlwapp-transition")},300)});h.on("click","[data-action=box], [data-action=close]",function(j){j.preventDefault();d(j.delegateTarget).trigger("qlwapp.toggle")});h.on("click","[data-action=open]",function(n){var k="https://api.whatsapp.com/send";if(!i.mobiledevice){k="https://web.whatsapp.com/send"}var m=d(this),l=m.data("message")||"",j=m.data("phone")||"";d(this).attr("href",k+"?phone="+j+"&text="+l)});h.on("click","[data-action=previous]",function(k){k.preventDefault();var l=d(k.delegateTarget),j=l.find(".qlwapp-box");j.addClass("closing");setTimeout(function(){j.removeClass("response").removeClass("closing");j.removeClass("texting")},300)});h.on("click","[data-action=chat]",function(w){w.preventDefault();var n=d(this),t=d(w.delegateTarget),u=t.find(".qlwapp-box"),v=n.find(".qlwapp-avatar img").attr("src"),A=n.find(".qlwapp-name").text(),q=n.find(".qlwapp-label").text(),p=n.find(".qlwapp-time").text(),r=n.data("message"),o=n.data("phone");u.addClass("response").addClass("opening");t.trigger("qlwapp.height");setTimeout(function(){u.removeClass("opening")},300);var k=u.find(".qlwapp-reply"),x=u.find(".qlwapp-header"),j=x.find(".qlwapp-avatar img"),m=x.find(".qlwapp-number"),l=x.find(".qlwapp-name"),z=x.find(".qlwapp-label"),y=u.find(".qlwapp-message");var s=p?p+" - "+q:q;k.data("phone",o);j.attr("src",v);m.html(o);l.html(A);z.html(s);y.html(r)});h.on("click","textarea",function(j){h.off("qlwapp.resize")});h.on("keypress","textarea",function(j){if(j.keyCode==13){h.find(".qlwapp-reply").trigger("click");setTimeout(function(){c.location=h.find(".qlwapp-reply").attr("href")},100)}});h.on("keyup","[data-action=response]",function(m){m.preventDefault();var p=d(this).find("textarea"),o=d(this).find("pre"),j=d(this).find(".qlwapp-reply"),n=d(m.delegateTarget),l=n.find(".qlwapp-box"),k=l.find(".qlwapp-buttons");o.html(p.val());setTimeout(function(){l.addClass("texting").css({"padding-bottom":o.outerHeight()});k.addClass("active");var q=p.val();j.data("message",q);if(q==""){l.removeClass("texting");k.removeClass("active")}},300)})}};d.fn.qlwapp=function(i){var h=arguments;if(i===g||typeof i==="object"){return this.each(function(){if(!d.data(this,"plugin_qlwapp")){d.data(this,"plugin_qlwapp",new b(this,i))}})}else{if(typeof i==="string"&&i[0]!=="_"&&i!=="init"){var j;this.each(function(){var k=d.data(this,"plugin_qlwapp");if(k instanceof b&&typeof k[i]==="function"){j=k[i].apply(k,Array.prototype.slice.call(h,1))}if(i==="destroy"){d.data(this,"plugin_qlwapp",null)}});return j!==g?j:this}}};function f(){d("div#qlwapp").qlwapp()}f();d(c).on("load",function(){f()});d(c).on("click",function(h){if(!d(h.target).closest("#qlwapp.qlwapp-show").length){d("div#qlwapp.qlwapp-show").trigger("qlwapp.toggle")}});d(c).on("resize",function(h){d("div#qlwapp").trigger("qlwapp.resize");d("div#qlwapp").trigger("qlwapp.init")})})(jQuery,window,document);
|
changelog.txt
CHANGED
@@ -1,8 +1,12 @@
|
|
|
|
|
|
|
|
|
|
1 |
= 4.4.9 =
|
2 |
* Fix. small css issues
|
3 |
|
4 |
= 4.4.8 =
|
5 |
-
* Fix. remove rating request non admin users
|
6 |
|
7 |
= 4.4.7 =
|
8 |
* Improvement. button timeout readonly
|
1 |
+
= 4.5.0 =
|
2 |
+
* Improvement. code refactorization with MVC
|
3 |
+
* Improvement. new contact tab
|
4 |
+
|
5 |
= 4.4.9 =
|
6 |
* Fix. small css issues
|
7 |
|
8 |
= 4.4.8 =
|
9 |
+
* Fix. remove rating request non admin users
|
10 |
|
11 |
= 4.4.7 =
|
12 |
* Improvement. button timeout readonly
|
includes/backend.php
ADDED
@@ -0,0 +1,112 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class QLWAPP_Admin {
|
4 |
+
|
5 |
+
protected static $instance;
|
6 |
+
|
7 |
+
function init() {
|
8 |
+
add_action('wp_ajax_qlwapp_get_posts', array($this, 'ajax_get_posts'));
|
9 |
+
add_filter('default_option_qlwapp', array($this, 'generate_db'));
|
10 |
+
add_filter('sanitize_option_qlwapp', 'wp_unslash');
|
11 |
+
add_action('admin_enqueue_scripts', array($this, 'add_js'));
|
12 |
+
add_action('admin_head', array($this, 'add_css'));
|
13 |
+
}
|
14 |
+
|
15 |
+
function generate_db() {
|
16 |
+
$db = new QLWAPP_Model();
|
17 |
+
return $db->options();
|
18 |
+
}
|
19 |
+
|
20 |
+
function includes() {
|
21 |
+
include_once 'controllers/WelcomeController.php';
|
22 |
+
include_once 'controllers/ButtonController.php';
|
23 |
+
include_once 'controllers/BoxController.php';
|
24 |
+
include_once 'controllers/ContactController.php';
|
25 |
+
include_once 'controllers/DisplayController.php';
|
26 |
+
include_once 'controllers/SchemeController.php';
|
27 |
+
include_once 'controllers/PremiumController.php';
|
28 |
+
include_once 'controllers/SuggestionsController.php';
|
29 |
+
}
|
30 |
+
|
31 |
+
function add_css() {
|
32 |
+
?>
|
33 |
+
<style>
|
34 |
+
@font-face {
|
35 |
+
font-family: 'qlwf-whatsapp';
|
36 |
+
src: url(data:application/x-font-woff;charset=utf-8;base64,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) format('woff');
|
37 |
+
font-weight: normal;
|
38 |
+
font-style: normal;
|
39 |
+
}
|
40 |
+
|
41 |
+
#toplevel_page_qlwapp .wp-menu-image img {
|
42 |
+
height: 16px;
|
43 |
+
}
|
44 |
+
</style>
|
45 |
+
<?php
|
46 |
+
|
47 |
+
}
|
48 |
+
|
49 |
+
function add_js() {
|
50 |
+
if (isset($_GET['page']) && strpos($_GET['page'], QLWAPP_DOMAIN) !== false) {
|
51 |
+
wp_register_style('qlwapp-select2', plugins_url('/assets/css/qlwapp-select2' . QLWAPP::is_min() . '.css', QLWAPP_PLUGIN_FILE), array('wp-color-picker'), QLWAPP_PLUGIN_VERSION, 'all');
|
52 |
+
|
53 |
+
wp_enqueue_style('qlwapp-admin', plugins_url('/assets/css/qlwapp-admin' . QLWAPP::is_min() . '.css', QLWAPP_PLUGIN_FILE), array('wp-color-picker', 'qlwapp-select2'), QLWAPP_PLUGIN_VERSION, 'all');
|
54 |
+
|
55 |
+
wp_register_script('qlwapp-select2', plugins_url('/assets/js/select2.min.js', QLWAPP_PLUGIN_FILE), array('jquery'), QLWAPP_PLUGIN_VERSION);
|
56 |
+
wp_enqueue_script('qlwapp-admin', plugins_url('/assets/js/qlwapp-admin' . QLWAPP::is_min() . '.js', QLWAPP_PLUGIN_FILE), array('jquery', 'qlwapp-select2', 'wp-color-picker'), QLWAPP_PLUGIN_VERSION, true);
|
57 |
+
|
58 |
+
wp_localize_script('qlwapp-admin', 'qlwapp', array(
|
59 |
+
'nonce' => array(
|
60 |
+
'qlwapp_get_posts' => wp_create_nonce('qlwapp_get_posts'),
|
61 |
+
)));
|
62 |
+
}
|
63 |
+
}
|
64 |
+
|
65 |
+
function ajax_get_posts() {
|
66 |
+
|
67 |
+
if (current_user_can('manage_options')) {
|
68 |
+
|
69 |
+
if (!empty($_REQUEST) && check_admin_referer('qlwapp_get_posts', 'nonce')) {
|
70 |
+
|
71 |
+
$data = array(
|
72 |
+
array('none', esc_html__('Exclude from all', 'wp-whatsapp-chat'))
|
73 |
+
);
|
74 |
+
|
75 |
+
$args = array(
|
76 |
+
'post_type' => sanitize_key($_REQUEST['name']),
|
77 |
+
'post_status' => 'publish',
|
78 |
+
'ignore_sticky_posts' => 1,
|
79 |
+
'posts_per_page' => 10,
|
80 |
+
'exclude' => array_map('intval', (array) $_REQUEST['selected'])
|
81 |
+
);
|
82 |
+
|
83 |
+
if ($_REQUEST['q']) {
|
84 |
+
$args['s'] = sanitize_text_field($_REQUEST['q']);
|
85 |
+
}
|
86 |
+
|
87 |
+
$posts = get_posts($args);
|
88 |
+
|
89 |
+
foreach ($posts as $post) {
|
90 |
+
$data[] = array($post->ID, mb_substr($post->post_title, 0, 49));
|
91 |
+
}
|
92 |
+
|
93 |
+
wp_send_json($data);
|
94 |
+
}
|
95 |
+
}
|
96 |
+
|
97 |
+
wp_die();
|
98 |
+
}
|
99 |
+
|
100 |
+
public static function instance() {
|
101 |
+
if (!isset(self::$instance)) {
|
102 |
+
self::$instance = new self();
|
103 |
+
self::$instance->includes();
|
104 |
+
self::$instance->init();
|
105 |
+
}
|
106 |
+
return self::$instance;
|
107 |
+
}
|
108 |
+
|
109 |
+
}
|
110 |
+
|
111 |
+
QLWAPP_Admin::instance();
|
112 |
+
|
includes/controllers/BoxController.php
ADDED
@@ -0,0 +1,53 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include_once(QLWAPP_PLUGIN_DIR . 'includes/models/Box.php');
|
4 |
+
|
5 |
+
include_once(QLWAPP_PLUGIN_DIR . 'includes/controllers/QLWAPP_Controller.php');
|
6 |
+
|
7 |
+
class QLWAPP_Box_Controller extends QLWAPP_Controller {
|
8 |
+
|
9 |
+
protected static $instance;
|
10 |
+
|
11 |
+
function add_menu() {
|
12 |
+
add_submenu_page(QLWAPP_DOMAIN, esc_html__('Box', 'wp-whatsapp-chat'), esc_html__('Box', 'wp-whatsapp-chat'), 'manage_options', QLWAPP_DOMAIN . '_box', array($this, 'add_panel'));
|
13 |
+
}
|
14 |
+
|
15 |
+
function add_panel() {
|
16 |
+
$box_model = new QLWAPP_Box();
|
17 |
+
$box = $box_model->get();
|
18 |
+
include (QLWAPP_PLUGIN_DIR . '/includes/view/backend/pages/parts/header.php');
|
19 |
+
include (QLWAPP_PLUGIN_DIR . '/includes/view/backend/pages/box.php');
|
20 |
+
}
|
21 |
+
|
22 |
+
function init() {
|
23 |
+
add_action('wp_ajax_qlwapp_save_box', array($this, 'ajax_qlwapp_save_box'));
|
24 |
+
add_action('admin_menu', array($this, 'add_menu'));
|
25 |
+
}
|
26 |
+
|
27 |
+
public function ajax_qlwapp_save_box() {
|
28 |
+
$box = new QLWAPP_Box();
|
29 |
+
if (current_user_can('manage_options')) {
|
30 |
+
if (check_ajax_referer('qlwapp_save_box', 'nonce', false) && isset($_REQUEST['form_data'])) {
|
31 |
+
$form_data = array();
|
32 |
+
parse_str($_REQUEST['form_data'], $form_data);
|
33 |
+
if (is_array($form_data)) {
|
34 |
+
$box->save($form_data);
|
35 |
+
return parent::success_save($form_data);
|
36 |
+
}
|
37 |
+
return parent::error_reload_page();
|
38 |
+
}
|
39 |
+
return parent::error_access_denied();
|
40 |
+
}
|
41 |
+
}
|
42 |
+
|
43 |
+
public static function instance() {
|
44 |
+
if (!isset(self::$instance)) {
|
45 |
+
self::$instance = new self();
|
46 |
+
self::$instance->init();
|
47 |
+
}
|
48 |
+
return self::$instance;
|
49 |
+
}
|
50 |
+
|
51 |
+
}
|
52 |
+
|
53 |
+
QLWAPP_Box_Controller::instance();
|
includes/controllers/ButtonController.php
ADDED
@@ -0,0 +1,54 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include_once(QLWAPP_PLUGIN_DIR . 'includes/models/Button.php');
|
4 |
+
|
5 |
+
include_once(QLWAPP_PLUGIN_DIR . 'includes/controllers/QLWAPP_Controller.php');
|
6 |
+
|
7 |
+
class QLWAPP_Button_Controller extends QLWAPP_Controller {
|
8 |
+
|
9 |
+
protected static $instance;
|
10 |
+
|
11 |
+
function add_menu() {
|
12 |
+
add_submenu_page(QLWAPP_DOMAIN, esc_html__('Button', 'wp-whatsapp-chat'), esc_html__('Button', 'wp-whatsapp-chat'), 'manage_options', QLWAPP_DOMAIN . '_button', array($this, 'add_panel'));
|
13 |
+
}
|
14 |
+
|
15 |
+
function add_panel() {
|
16 |
+
|
17 |
+
$button_model = new QLWAPP_Button();
|
18 |
+
$button = $button_model->get();
|
19 |
+
include (QLWAPP_PLUGIN_DIR . '/includes/view/backend/pages/parts/header.php');
|
20 |
+
include (QLWAPP_PLUGIN_DIR . '/includes/view/backend/pages/button.php');
|
21 |
+
}
|
22 |
+
|
23 |
+
function init() {
|
24 |
+
add_action('wp_ajax_qlwapp_save_button', array($this, 'ajax_qlwapp_save_button'));
|
25 |
+
add_action('admin_menu', array($this, 'add_menu'));
|
26 |
+
}
|
27 |
+
|
28 |
+
public function ajax_qlwapp_save_button() {
|
29 |
+
$button = new QLWAPP_Button();
|
30 |
+
if (current_user_can('manage_options')) {
|
31 |
+
if (check_ajax_referer('qlwapp_save_button', 'nonce', false) && isset($_REQUEST['form_data'])) {
|
32 |
+
$form_data = array();
|
33 |
+
parse_str($_REQUEST['form_data'], $form_data);
|
34 |
+
if (is_array($form_data)) {
|
35 |
+
$button->save($form_data);
|
36 |
+
return parent::success_save($form_data);
|
37 |
+
}
|
38 |
+
return parent::error_reload_page();
|
39 |
+
}
|
40 |
+
return parent::error_access_denied();
|
41 |
+
}
|
42 |
+
}
|
43 |
+
|
44 |
+
public static function instance() {
|
45 |
+
if (!isset(self::$instance)) {
|
46 |
+
self::$instance = new self();
|
47 |
+
self::$instance->init();
|
48 |
+
}
|
49 |
+
return self::$instance;
|
50 |
+
}
|
51 |
+
|
52 |
+
}
|
53 |
+
|
54 |
+
QLWAPP_Button_Controller::instance();
|
includes/controllers/ContactController.php
ADDED
@@ -0,0 +1,148 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include_once(QLWAPP_PLUGIN_DIR . 'includes/models/Contact.php');
|
4 |
+
|
5 |
+
include_once(QLWAPP_PLUGIN_DIR . 'includes/controllers/QLWAPP_Controller.php');
|
6 |
+
|
7 |
+
class QLWAPP_Contact_Controller extends QLWAPP_Controller {
|
8 |
+
|
9 |
+
protected static $instance;
|
10 |
+
|
11 |
+
function add_menu() {
|
12 |
+
add_submenu_page(QLWAPP_DOMAIN, esc_html__('Contacts', 'wp-whatsapp-chat'), esc_html__('Contacts', 'wp-whatsapp-chat'), 'manage_options', QLWAPP_DOMAIN . '_contacts', array($this, 'add_panel'));
|
13 |
+
}
|
14 |
+
|
15 |
+
function add_panel() {
|
16 |
+
$contact_model = new QLWAPP_Contact();
|
17 |
+
$contacts = $contact_model->get_contacts_reorder();
|
18 |
+
$contact_args = $contact_model->get_args();
|
19 |
+
include (QLWAPP_PLUGIN_DIR . '/includes/view/backend/pages/parts/header.php');
|
20 |
+
include (QLWAPP_PLUGIN_DIR . '/includes/view/backend/pages/contacts.php');
|
21 |
+
}
|
22 |
+
|
23 |
+
function ajax_edit_contact() {
|
24 |
+
if (check_ajax_referer('qlwapp_edit_contact', 'nonce', false)) {
|
25 |
+
$contact_id = (isset($_REQUEST['contact_id'])) ? absint($_REQUEST['contact_id']) : -1;
|
26 |
+
if ($contact_id != -1) {
|
27 |
+
$contact_model = new QLWAPP_Contact();
|
28 |
+
$contact = $contact_model->get_contact($contact_id);
|
29 |
+
if ($contact) {
|
30 |
+
return parent::success_ajax($contact);
|
31 |
+
}
|
32 |
+
}
|
33 |
+
parent::error_reload_page();
|
34 |
+
}
|
35 |
+
parent::error_access_denied();
|
36 |
+
}
|
37 |
+
|
38 |
+
function ajax_save_contact() {
|
39 |
+
|
40 |
+
if (current_user_can('manage_options')) {
|
41 |
+
if (check_ajax_referer('qlwapp_save_contact', 'nonce', false) && isset($_REQUEST['contact_data'])) {
|
42 |
+
$contact_data = array();
|
43 |
+
|
44 |
+
parse_str($_REQUEST['contact_data'], $contact_data);
|
45 |
+
|
46 |
+
$contact_model = new QLWAPP_Contact();
|
47 |
+
|
48 |
+
if (is_array($contact_data)) {
|
49 |
+
if (isset($contact_data['id'])) {
|
50 |
+
return parent::success_save($contact_model->update_contact($contact_data));
|
51 |
+
} else {
|
52 |
+
return parent::success_save($contact_model->add_contact($contact_data));
|
53 |
+
}
|
54 |
+
return parent::error_reload_page();
|
55 |
+
}
|
56 |
+
}
|
57 |
+
return parent::error_access_denied();
|
58 |
+
}
|
59 |
+
}
|
60 |
+
|
61 |
+
function ajax_save_contact_order() {
|
62 |
+
if (current_user_can('manage_options')) {
|
63 |
+
if (check_ajax_referer('qlwapp_save_contact_order', 'nonce', false) && isset($_REQUEST['contact_data'])) {
|
64 |
+
if (array_key_exists('contact_data', $_REQUEST)) {
|
65 |
+
$contact_model = new QLWAPP_Contact();
|
66 |
+
$contacts = $contact_model->get_contacts();
|
67 |
+
$contact_order = array();
|
68 |
+
parse_str($_REQUEST['contact_data'], $contact_order);
|
69 |
+
$contact_order = $contact_order['contact_order'];
|
70 |
+
$result = -1;
|
71 |
+
if (is_array($contact_order) && count($contact_order) > 0) {
|
72 |
+
$loop = 1;
|
73 |
+
foreach ($contact_order as $contact_id) {
|
74 |
+
if (isset($contacts[$contact_id])) {
|
75 |
+
$contacts[$contact_id]['order'] = $loop;
|
76 |
+
$loop++;
|
77 |
+
}
|
78 |
+
}
|
79 |
+
$result = $contact_model->update_contacts($contacts);
|
80 |
+
}
|
81 |
+
}
|
82 |
+
}
|
83 |
+
wp_send_json_success($result);
|
84 |
+
}
|
85 |
+
}
|
86 |
+
|
87 |
+
function ajax_delete_contact() {
|
88 |
+
|
89 |
+
if (check_ajax_referer('qlwapp_delete_contact', 'nonce', false)) {
|
90 |
+
|
91 |
+
$contact_id = (isset($_REQUEST['contact_id'])) ? absint($_REQUEST['contact_id']) : -1;
|
92 |
+
|
93 |
+
$contact_model = new QLWAPP_Contact();
|
94 |
+
// delete
|
95 |
+
$contact = $contact_model->delete($contact_id);
|
96 |
+
if ($contact_id) {
|
97 |
+
|
98 |
+
return parent::success_ajax($contact);
|
99 |
+
}
|
100 |
+
parent::error_reload_page();
|
101 |
+
}
|
102 |
+
parent::error_access_denied();
|
103 |
+
}
|
104 |
+
|
105 |
+
function init() {
|
106 |
+
|
107 |
+
add_action('wp_ajax_qlwapp_add_contact', array($this, 'ajax_add_contact'));
|
108 |
+
add_action('wp_ajax_qlwapp_edit_contact', array($this, 'ajax_edit_contact'));
|
109 |
+
add_action('wp_ajax_qlwapp_save_contact', array($this, 'ajax_save_contact'));
|
110 |
+
add_action('wp_ajax_qlwapp_delete_contact', array($this, 'ajax_delete_contact'));
|
111 |
+
add_action('wp_ajax_qlwapp_save_contact_order', array($this, 'ajax_save_contact_order'));
|
112 |
+
add_action('admin_enqueue_scripts', array($this, 'add_js'));
|
113 |
+
add_action('admin_menu', array($this, 'add_menu'));
|
114 |
+
}
|
115 |
+
|
116 |
+
function add_js() {
|
117 |
+
if (isset($_GET['page']) && ($_GET['page'] === 'qlwapp_contacts')) {
|
118 |
+
$contact_model = new QLWAPP_Contact();
|
119 |
+
wp_enqueue_media();
|
120 |
+
wp_enqueue_script('qlwapp-contact-modal', plugins_url('/assets/js/qlwapp-contact-modal' . QLWAPP::is_min() . '.js', QLWAPP_PLUGIN_FILE), array('jquery', 'backbone',), QLWAPP_PLUGIN_VERSION, true);
|
121 |
+
|
122 |
+
wp_localize_script('qlwapp-contact-modal', 'qlwapp_contact', array(
|
123 |
+
'nonce' => array(
|
124 |
+
'qlwapp_get_contact' => wp_create_nonce('qlwapp_get_contact'),
|
125 |
+
'qlwapp_edit_contact' => wp_create_nonce('qlwapp_edit_contact'),
|
126 |
+
'qlwapp_add_contact' => wp_create_nonce('qlwapp_add_contact'),
|
127 |
+
'qlwapp_save_contact' => wp_create_nonce('qlwapp_save_contact'),
|
128 |
+
'qlwapp_save_contact_order' => wp_create_nonce('qlwapp_save_contact_order')
|
129 |
+
),
|
130 |
+
'message' => array(
|
131 |
+
'contact_confirm_delete' => 'you want to delete the contact',
|
132 |
+
'contact_confirm_delete_title' => 'Contact: confirmation'
|
133 |
+
),
|
134 |
+
'args' => $contact_model->get_args()));
|
135 |
+
}
|
136 |
+
}
|
137 |
+
|
138 |
+
public static function instance() {
|
139 |
+
if (!isset(self::$instance)) {
|
140 |
+
self::$instance = new self();
|
141 |
+
self::$instance->init();
|
142 |
+
}
|
143 |
+
return self::$instance;
|
144 |
+
}
|
145 |
+
|
146 |
+
}
|
147 |
+
|
148 |
+
QLWAPP_Contact_Controller::instance();
|
includes/controllers/DisplayController.php
ADDED
@@ -0,0 +1,78 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include_once(QLWAPP_PLUGIN_DIR . 'includes/models/Display.php');
|
4 |
+
|
5 |
+
include_once(QLWAPP_PLUGIN_DIR . 'includes/controllers/QLWAPP_Controller.php');
|
6 |
+
|
7 |
+
class QLWAPP_Display_Controller extends QLWAPP_Controller {
|
8 |
+
|
9 |
+
protected static $instance;
|
10 |
+
|
11 |
+
function add_menu() {
|
12 |
+
add_submenu_page(QLWAPP_DOMAIN, esc_html__('Display', 'wp-whatsapp-chat'), esc_html__('Display', 'wp-whatsapp-chat'), 'manage_options', QLWAPP_DOMAIN . '_display', array($this, 'add_panel'));
|
13 |
+
}
|
14 |
+
|
15 |
+
function add_panel() {
|
16 |
+
$display_model = new QLWAPP_Display();
|
17 |
+
$display = $display_model->get();
|
18 |
+
include (QLWAPP_PLUGIN_DIR . '/includes/view/backend/pages/parts/header.php');
|
19 |
+
include (QLWAPP_PLUGIN_DIR . '/includes/view/backend/pages/display.php');
|
20 |
+
}
|
21 |
+
|
22 |
+
function init() {
|
23 |
+
add_action('wp_ajax_qlwapp_save_display', array($this, 'ajax_qlwapp_save_display'));
|
24 |
+
add_action('admin_menu', array($this, 'add_menu'));
|
25 |
+
}
|
26 |
+
|
27 |
+
public function ajax_qlwapp_save_display() {
|
28 |
+
$display = new QLWAPP_Display();
|
29 |
+
if (current_user_can('manage_options')) {
|
30 |
+
if (check_ajax_referer('qlwapp_save_display', 'nonce', false) && isset($_REQUEST['form_data'])) {
|
31 |
+
$form_data = array();
|
32 |
+
parse_str($_REQUEST['form_data'], $form_data);
|
33 |
+
if (is_array($form_data)) {
|
34 |
+
$display->save($form_data);
|
35 |
+
return parent::success_save($form_data);
|
36 |
+
}
|
37 |
+
return parent::error_reload_page();
|
38 |
+
}
|
39 |
+
return parent::error_access_denied();
|
40 |
+
}
|
41 |
+
}
|
42 |
+
|
43 |
+
//// debe ser de compatibilidatda
|
44 |
+
function wac_options($options) {
|
45 |
+
|
46 |
+
if ($mobile = get_option('whatsapp_chat_mobile')) {
|
47 |
+
$options['display']['devices'] = 'mobile';
|
48 |
+
}
|
49 |
+
if (get_option('whatsapp_chat_hide_button')) {
|
50 |
+
$options['display']['devices'] = 'hide';
|
51 |
+
}
|
52 |
+
if (get_option('whatsapp_chat_hide_post')) {
|
53 |
+
$options['display']['post'] = array('none');
|
54 |
+
}
|
55 |
+
if (get_option('whatsapp_chat_hide_page')) {
|
56 |
+
$options['display']['page'] = array('none');
|
57 |
+
}
|
58 |
+
if (get_option('whatsapp_chat_hide_product')) {
|
59 |
+
$options['display']['product'] = array('none');
|
60 |
+
}
|
61 |
+
if (get_option('whatsapp_chat_hide_project')) {
|
62 |
+
$options['display']['project'] = array('none');
|
63 |
+
}
|
64 |
+
|
65 |
+
return $options;
|
66 |
+
}
|
67 |
+
|
68 |
+
public static function instance() {
|
69 |
+
if (!isset(self::$instance)) {
|
70 |
+
self::$instance = new self();
|
71 |
+
self::$instance->init();
|
72 |
+
}
|
73 |
+
return self::$instance;
|
74 |
+
}
|
75 |
+
|
76 |
+
}
|
77 |
+
|
78 |
+
QLWAPP_Display_Controller::instance();
|
includes/controllers/PremiumController.php
ADDED
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class QLWAPP_Premium_Controller {
|
4 |
+
|
5 |
+
protected static $instance;
|
6 |
+
|
7 |
+
function add_menu() {
|
8 |
+
add_submenu_page(QLWAPP_DOMAIN, esc_html__('Premium', 'wp-whatsapp-chat'), sprintf('%s <i class="dashicons dashicons-awards"></i>', esc_html__('Premium', 'wp-whatsapp-chat')), 'edit_posts', QLWAPP_DOMAIN . '_premium', array($this, 'add_panel'));
|
9 |
+
}
|
10 |
+
|
11 |
+
function add_panel() {
|
12 |
+
|
13 |
+
include (QLWAPP_PLUGIN_DIR . '/includes/view/backend/pages/parts/header.php');
|
14 |
+
include (QLWAPP_PLUGIN_DIR . '/includes/view/backend/pages/premium.php');
|
15 |
+
}
|
16 |
+
|
17 |
+
function init() {
|
18 |
+
add_action('admin_menu', array($this, 'add_menu'));
|
19 |
+
}
|
20 |
+
|
21 |
+
public static function instance() {
|
22 |
+
if (!isset(self::$instance)) {
|
23 |
+
self::$instance = new self();
|
24 |
+
self::$instance->init();
|
25 |
+
}
|
26 |
+
return self::$instance;
|
27 |
+
}
|
28 |
+
|
29 |
+
}
|
30 |
+
|
31 |
+
QLWAPP_Premium_Controller::instance();
|
includes/controllers/QLWAPP_Controller.php
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class QLWAPP_Controller {
|
4 |
+
|
5 |
+
// return data for jquery
|
6 |
+
function success_save($data) {
|
7 |
+
return wp_send_json_success($data);
|
8 |
+
}
|
9 |
+
|
10 |
+
function success_ajax($data) {
|
11 |
+
$this->success_save($data);
|
12 |
+
}
|
13 |
+
|
14 |
+
function error_reload_page() {
|
15 |
+
return wp_send_json_error(esc_html__('Please, reload page', 'wp-whatsapp-chat'));
|
16 |
+
}
|
17 |
+
|
18 |
+
function error_access_denied() {
|
19 |
+
wp_send_json_error(esc_html__('access denied', 'wp-whatsapp-chat'));
|
20 |
+
}
|
21 |
+
|
22 |
+
|
23 |
+
|
24 |
+
}
|
includes/controllers/SchemeController.php
ADDED
@@ -0,0 +1,54 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include_once(QLWAPP_PLUGIN_DIR . 'includes/models/Scheme.php');
|
4 |
+
|
5 |
+
include_once(QLWAPP_PLUGIN_DIR . 'includes/controllers/QLWAPP_Controller.php');
|
6 |
+
|
7 |
+
class QLWAPP_Scheme_Controller extends QLWAPP_Controller {
|
8 |
+
|
9 |
+
protected static $instance;
|
10 |
+
protected $scheme = 'scheme';
|
11 |
+
|
12 |
+
function add_menu() {
|
13 |
+
add_submenu_page(QLWAPP_DOMAIN, esc_html__('Colors', 'wp-whatsapp-chat'), esc_html__('Colors', 'wp-whatsapp-chat'), 'manage_options', QLWAPP_DOMAIN . '_scheme', array($this, 'add_panel'));
|
14 |
+
}
|
15 |
+
|
16 |
+
function add_panel() {
|
17 |
+
$scheme_model = new QLWAPP_Scheme();
|
18 |
+
$scheme = $scheme_model->get();
|
19 |
+
include (QLWAPP_PLUGIN_DIR . '/includes/view/backend/pages/parts/header.php');
|
20 |
+
include (QLWAPP_PLUGIN_DIR . '/includes/view/backend/pages/scheme.php');
|
21 |
+
}
|
22 |
+
|
23 |
+
function init() {
|
24 |
+
add_action('wp_ajax_qlwapp_save_scheme', array($this, 'ajax_qlwapp_save_scheme'));
|
25 |
+
add_action('admin_menu', array($this, 'add_menu'));
|
26 |
+
}
|
27 |
+
|
28 |
+
public function ajax_qlwapp_save_scheme() {
|
29 |
+
$scheme = new QLWAPP_Scheme();
|
30 |
+
if (current_user_can('manage_options')) {
|
31 |
+
if (check_ajax_referer('qlwapp_save_scheme', 'nonce', false) && isset($_REQUEST['form_data'])) {
|
32 |
+
$form_data = array();
|
33 |
+
parse_str($_REQUEST['form_data'], $form_data);
|
34 |
+
if (is_array($form_data)) {
|
35 |
+
$scheme->save($form_data);
|
36 |
+
return parent::success_save($form_data);
|
37 |
+
}
|
38 |
+
return parent::error_reload_page();
|
39 |
+
}
|
40 |
+
return parent::error_access_denied();
|
41 |
+
}
|
42 |
+
}
|
43 |
+
|
44 |
+
public static function instance() {
|
45 |
+
if (!isset(self::$instance)) {
|
46 |
+
self::$instance = new self();
|
47 |
+
self::$instance->init();
|
48 |
+
}
|
49 |
+
return self::$instance;
|
50 |
+
}
|
51 |
+
|
52 |
+
}
|
53 |
+
|
54 |
+
QLWAPP_Scheme_Controller::instance();
|
includes/controllers/SuggestionsController.php
ADDED
@@ -0,0 +1,60 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class QLWAPP_Suggestions_Controller {
|
4 |
+
|
5 |
+
protected static $instance;
|
6 |
+
|
7 |
+
function add_menu() {
|
8 |
+
add_submenu_page(QLWAPP_DOMAIN, esc_html__('Suggestions', 'wp-whatsapp-chat'), sprintf('%s', esc_html__('Suggestions', 'wp-whatsapp-chat')), 'edit_posts', QLWAPP_DOMAIN . '_suggestions', array($this, 'add_panel'), 99);
|
9 |
+
}
|
10 |
+
|
11 |
+
function add_panel() {
|
12 |
+
|
13 |
+
include_once(QLWAPP_PLUGIN_DIR . 'includes/models/Suggestions.php');
|
14 |
+
|
15 |
+
$wp_list_table = new QLWAPP_Suggestions_List_Table();
|
16 |
+
$wp_list_table->prepare_items();
|
17 |
+
include (QLWAPP_PLUGIN_DIR . '/includes/view/backend/pages/parts/header.php');
|
18 |
+
include (QLWAPP_PLUGIN_DIR . '/includes/view/backend/pages/suggestions.php');
|
19 |
+
}
|
20 |
+
|
21 |
+
// fix for activateUrl on install now button
|
22 |
+
public function network_admin_url($url, $path) {
|
23 |
+
|
24 |
+
if (wp_doing_ajax() && !is_network_admin()) {
|
25 |
+
if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'install-plugin') {
|
26 |
+
if (strpos($url, 'plugins.php') !== false) {
|
27 |
+
$url = self_admin_url($path);
|
28 |
+
}
|
29 |
+
}
|
30 |
+
}
|
31 |
+
|
32 |
+
return $url;
|
33 |
+
}
|
34 |
+
|
35 |
+
public function add_redirect() {
|
36 |
+
|
37 |
+
if (isset($_REQUEST['activate']) && $_REQUEST['activate'] == 'true') {
|
38 |
+
if (wp_get_referer() == admin_url('admin.php?page=' . QLWAPP_DOMAIN . '_suggestions')) {
|
39 |
+
wp_redirect(admin_url('admin.php?page=' . QLWAPP_DOMAIN . '_suggestions'));
|
40 |
+
}
|
41 |
+
}
|
42 |
+
}
|
43 |
+
|
44 |
+
function init() {
|
45 |
+
add_action('admin_menu', array($this, 'add_menu'));
|
46 |
+
add_action('admin_init', array($this, 'add_redirect'));
|
47 |
+
add_filter('network_admin_url', array($this, 'network_admin_url'), 10, 2);
|
48 |
+
}
|
49 |
+
|
50 |
+
public static function instance() {
|
51 |
+
if (!isset(self::$instance)) {
|
52 |
+
self::$instance = new self();
|
53 |
+
self::$instance->init();
|
54 |
+
}
|
55 |
+
return self::$instance;
|
56 |
+
}
|
57 |
+
|
58 |
+
}
|
59 |
+
|
60 |
+
QLWAPP_Suggestions_Controller::instance();
|
includes/controllers/WelcomeController.php
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
|
4 |
+
class QLWAPP_Welcome_Controller {
|
5 |
+
|
6 |
+
protected static $instance;
|
7 |
+
|
8 |
+
function add_menu() {
|
9 |
+
add_menu_page(QLWAPP_PLUGIN_NAME, QLWAPP_PLUGIN_NAME, 'edit_posts', QLWAPP_DOMAIN, array($this, 'add_panel'), plugins_url('/assets/img/icon.png', QLWAPP_PLUGIN_FILE));
|
10 |
+
|
11 |
+
add_submenu_page(QLWAPP_DOMAIN, esc_html__('Welcome', 'wp-whatsapp-chat'), esc_html__('Welcome', 'wp-whatsapp-chat'), 'edit_posts', QLWAPP_DOMAIN, array($this, 'add_panel'));
|
12 |
+
}
|
13 |
+
|
14 |
+
function add_panel() {
|
15 |
+
include (QLWAPP_PLUGIN_DIR . '/includes/view/backend/pages/parts/header.php');
|
16 |
+
include (QLWAPP_PLUGIN_DIR . '/includes/view/backend/pages/welcome.php');
|
17 |
+
}
|
18 |
+
|
19 |
+
function init() {
|
20 |
+
add_action('admin_menu', array($this, 'add_menu'));
|
21 |
+
}
|
22 |
+
|
23 |
+
public static function instance() {
|
24 |
+
if (!isset(self::$instance)) {
|
25 |
+
self::$instance = new self();
|
26 |
+
self::$instance->init();
|
27 |
+
}
|
28 |
+
return self::$instance;
|
29 |
+
}
|
30 |
+
|
31 |
+
}
|
32 |
+
|
33 |
+
QLWAPP_Welcome_Controller::instance();
|
includes/defaults.php
DELETED
@@ -1,290 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if (!defined('ABSPATH'))
|
4 |
-
exit;
|
5 |
-
|
6 |
-
if (!class_exists('QLWAPP_Options')) {
|
7 |
-
|
8 |
-
class QLWAPP_Options {
|
9 |
-
|
10 |
-
protected static $instance;
|
11 |
-
public $defaults;
|
12 |
-
|
13 |
-
function defaults() {
|
14 |
-
|
15 |
-
$this->defaults = array(
|
16 |
-
'license' => array(
|
17 |
-
'market' => '',
|
18 |
-
'key' => '',
|
19 |
-
'email' => ''
|
20 |
-
),
|
21 |
-
'scheme' => array(
|
22 |
-
'brand' => '',
|
23 |
-
'text' => '',
|
24 |
-
'link' => '',
|
25 |
-
'message' => '',
|
26 |
-
'label' => '',
|
27 |
-
'name' => '',
|
28 |
-
),
|
29 |
-
//'user' => array(
|
30 |
-
// 'message' => sprintf(esc_html__('Hello! I\'m testing the %s plugin @https://quadlayers.com', 'wp-whatsapp-chat'), QLWAPP_PLUGIN_NAME)
|
31 |
-
//),
|
32 |
-
'button' => array(
|
33 |
-
'layout' => 'button',
|
34 |
-
'position' => 'bottom-right',
|
35 |
-
'text' => esc_html__('How can I help you?', 'wp-whatsapp-chat'),
|
36 |
-
'message' => sprintf(esc_html__('Hello! I\'m testing the %s plugin @https://quadlayers.com', 'wp-whatsapp-chat'), QLWAPP_PLUGIN_NAME),
|
37 |
-
'icon' => 'qlwapp-whatsapp-icon',
|
38 |
-
'phone' => '',
|
39 |
-
'developer' => 'no',
|
40 |
-
'rounded' => 'yes',
|
41 |
-
'timefrom' => '00:00',
|
42 |
-
'timeto' => '00:00',
|
43 |
-
'timezone' => $this->get_current_timezone(),
|
44 |
-
'timeout' => 'readonly'
|
45 |
-
),
|
46 |
-
'box' => array(
|
47 |
-
'enable' => 'no',
|
48 |
-
'header' => '<h3>Hello!</h3><p>Click one of our representatives below to chat on WhatsApp or send us an email to <a href="mailto:' . get_bloginfo('admin_email') . '">' . get_bloginfo('admin_email') . '</a></p>',
|
49 |
-
'footer' => '<p>Powered by <a target="_blank" href="' . QLWAPP_PURCHASE_URL . '">WhatsApp Chat</a>'
|
50 |
-
// ,'contactstimeout' => 'no'
|
51 |
-
),
|
52 |
-
'chat' => array(
|
53 |
-
'emoji' => 'no',
|
54 |
-
'response' => esc_html__('Write a response', 'wp-whatsapp-chat'),
|
55 |
-
),
|
56 |
-
'contacts' => array(
|
57 |
-
0 => array(
|
58 |
-
'chat' => true,
|
59 |
-
'avatar' => 'https://www.gravatar.com/avatar/00000000000000000000000000000000',
|
60 |
-
'phone' => '',
|
61 |
-
'firstname' => 'John',
|
62 |
-
'lastname' => 'Doe',
|
63 |
-
'label' => esc_html__('Support', 'wp-whatsapp-chat'),
|
64 |
-
'message' => esc_html__('Hello! I\'m John from the support team.', 'wp-whatsapp-chat'),
|
65 |
-
'timefrom' => '00:00',
|
66 |
-
'timeto' => '00:00',
|
67 |
-
'timezone' => $this->get_current_timezone(),
|
68 |
-
'timeout' => 'readonly'
|
69 |
-
),
|
70 |
-
),
|
71 |
-
'display' => array(
|
72 |
-
'devices' => 'all',
|
73 |
-
'target' => array(),
|
74 |
-
),
|
75 |
-
);
|
76 |
-
|
77 |
-
return $this->defaults;
|
78 |
-
}
|
79 |
-
|
80 |
-
function wac_options($options) {
|
81 |
-
|
82 |
-
if ($phone = get_option('whatsapp_chat_page')) {
|
83 |
-
$options['button']['phone'] = $phone;
|
84 |
-
}
|
85 |
-
|
86 |
-
if ($text = get_option('whatsapp_chat_button')) {
|
87 |
-
$options['button']['text'] = $text;
|
88 |
-
}
|
89 |
-
if (get_option('whatsapp_chat_powered_by')) {
|
90 |
-
$options['button']['developer'] = 'yes';
|
91 |
-
}
|
92 |
-
if (false !== get_option('whatsapp_chat_round')) {
|
93 |
-
$options['button']['rounded'] = 'no';
|
94 |
-
}
|
95 |
-
if ($message = get_option('whatsapp_chat_msg')) {
|
96 |
-
$options['user']['message'] = $message;
|
97 |
-
}
|
98 |
-
if ($mobile = get_option('whatsapp_chat_mobile')) {
|
99 |
-
$options['display']['devices'] = 'mobile';
|
100 |
-
}
|
101 |
-
if (get_option('whatsapp_chat_hide_button')) {
|
102 |
-
$options['display']['devices'] = 'hide';
|
103 |
-
}
|
104 |
-
if (get_option('whatsapp_chat_hide_post')) {
|
105 |
-
$options['display']['post'] = array('none');
|
106 |
-
}
|
107 |
-
if (get_option('whatsapp_chat_hide_page')) {
|
108 |
-
$options['display']['page'] = array('none');
|
109 |
-
}
|
110 |
-
if (get_option('whatsapp_chat_hide_product')) {
|
111 |
-
$options['display']['product'] = array('none');
|
112 |
-
}
|
113 |
-
if (get_option('whatsapp_chat_hide_project')) {
|
114 |
-
$options['display']['project'] = array('none');
|
115 |
-
}
|
116 |
-
|
117 |
-
if (false !== get_option('whatsapp_chat_down')) {
|
118 |
-
$vposition = get_option('whatsapp_chat_down') ? 'bottom' : 'middle';
|
119 |
-
$hposition = get_option('whatsapp_chat_left_side') ? 'left' : 'right';
|
120 |
-
$options['button']['position'] = "{$vposition}-{$hposition}";
|
121 |
-
}
|
122 |
-
|
123 |
-
if (get_option('whatsapp_chat_dark')) {
|
124 |
-
$options['scheme']['brand'] = '#075E54';
|
125 |
-
$options['scheme']['text'] = '#ffffff';
|
126 |
-
} elseif (get_option('whatsapp_chat_white')) {
|
127 |
-
$options['scheme']['brand'] = '#ffffff';
|
128 |
-
$options['scheme']['text'] = '#075E54';
|
129 |
-
} elseif (false !== get_option('whatsapp_chat_white')) {
|
130 |
-
$options['scheme']['brand'] = '#20B038';
|
131 |
-
$options['scheme']['text'] = '#ffffff';
|
132 |
-
}
|
133 |
-
|
134 |
-
return $options;
|
135 |
-
}
|
136 |
-
|
137 |
-
/* function standar_timezone_gmt($timezone) {
|
138 |
-
$GMT = 'GMT+00:00';
|
139 |
-
$minutes = '00';
|
140 |
-
if (strpos($timezone, 'UTC') !== false) {
|
141 |
-
$timezone = str_replace(array('.25', '.5', '.75'), array(':15', ':30', ':45'), $timezone);
|
142 |
-
|
143 |
-
$temp = explode(':', $timezone);
|
144 |
-
|
145 |
-
if (isset($temp[1])) {
|
146 |
-
$minutes = $temp[1];
|
147 |
-
}
|
148 |
-
$hours = str_replace(array('UTC'), array('GMT'), $temp[0]);
|
149 |
-
$hours = str_replace(array('-1', '-2', '-3', '-4', '-5', '-6', '-7', '-8', '-9'), array('-01', '-02', '-03', '-04', '-05', '-06', '-07', '-08', '-09'), $hours);
|
150 |
-
$hours = str_replace(array('+1', '+2', '+3', '+4', '+5', '+6', '+7', '+8', '+9'), array('+01', '+02', '+03', '+04', '+05', '+06', '+07', '+08', '+09'), $hours);
|
151 |
-
$GMT = sprintf('%s:%s', $hours, $minutes);
|
152 |
-
} else {
|
153 |
-
$target_time_zone = new DateTimeZone($timezone);
|
154 |
-
$date_time = new DateTime('now', $target_time_zone);
|
155 |
-
$GMT = sprintf('GMT%s', $date_time->format('P'));
|
156 |
-
}
|
157 |
-
return $GMT;
|
158 |
-
} */
|
159 |
-
|
160 |
-
function get_whatsapp_number($phone) {
|
161 |
-
|
162 |
-
$phone = preg_replace('/[^0-9]/', '', $phone);
|
163 |
-
|
164 |
-
$phone = ltrim($phone, '0');
|
165 |
-
|
166 |
-
return $phone;
|
167 |
-
}
|
168 |
-
|
169 |
-
function get_timezone_offset($timezone) {
|
170 |
-
if (strpos($timezone, 'UTC') !== false) {
|
171 |
-
$offset = preg_replace('/UTC\+?/', '', $timezone) * 60;
|
172 |
-
} else {
|
173 |
-
$current = timezone_open($timezone);
|
174 |
-
$utc = new \DateTime('now', new \DateTimeZone('UTC'));
|
175 |
-
$offset = $current->getOffset($utc) / 3600 * 60;
|
176 |
-
}
|
177 |
-
return $offset;
|
178 |
-
}
|
179 |
-
|
180 |
-
function get_current_timezone() {
|
181 |
-
// Get user settings
|
182 |
-
$current_offset = get_option('gmt_offset');
|
183 |
-
$tzstring = get_option('timezone_string');
|
184 |
-
|
185 |
-
$check_zone_info = true;
|
186 |
-
|
187 |
-
// Remove old Etc mappings. Fallback to gmt_offset.
|
188 |
-
if (false !== strpos($tzstring, 'Etc/GMT')) {
|
189 |
-
$tzstring = '';
|
190 |
-
}
|
191 |
-
|
192 |
-
if (empty($tzstring)) {
|
193 |
-
// Create a UTC+- zone if no timezone string exists
|
194 |
-
$check_zone_info = false;
|
195 |
-
if (0 == $current_offset) {
|
196 |
-
$tzstring = 'UTC+0';
|
197 |
-
} elseif ($current_offset < 0) {
|
198 |
-
$tzstring = 'UTC' . $current_offset;
|
199 |
-
} else {
|
200 |
-
$tzstring = 'UTC+' . $current_offset;
|
201 |
-
}
|
202 |
-
}
|
203 |
-
return $tzstring;
|
204 |
-
}
|
205 |
-
|
206 |
-
function options() {
|
207 |
-
|
208 |
-
global $qlwapp;
|
209 |
-
|
210 |
-
$options = get_option(QLWAPP_DOMAIN, $this->defaults());
|
211 |
-
|
212 |
-
if (isset($options['user']['message'])) {
|
213 |
-
$options['button']['message'] = $options['user']['message'];
|
214 |
-
}
|
215 |
-
|
216 |
-
if (isset($options['button']['rounded']) && $options['button']['rounded'] == 1) {
|
217 |
-
$options['button']['rounded'] = 'yes';
|
218 |
-
}
|
219 |
-
if (isset($options['button']['developer']) && $options['button']['developer'] == 1) {
|
220 |
-
$options['button']['developer'] = 'yes';
|
221 |
-
}
|
222 |
-
|
223 |
-
if (!is_admin()) {
|
224 |
-
if (isset($options['button']['phone'])) {
|
225 |
-
$options['button']['phone'] = $this->get_whatsapp_number($options['button']['phone']);
|
226 |
-
}
|
227 |
-
if (isset($options['button']['timezone'])) {
|
228 |
-
$options['button']['timezone'] = $this->get_timezone_offset($options['button']['timezone']);
|
229 |
-
}
|
230 |
-
}
|
231 |
-
|
232 |
-
if (isset($options['contacts'])) {
|
233 |
-
if (count($options['contacts'])) {
|
234 |
-
foreach ($options['contacts'] as $id => $c) {
|
235 |
-
|
236 |
-
$options['contacts'][$id] = wp_parse_args($c, $this->defaults()['contacts'][0]);
|
237 |
-
|
238 |
-
if (!is_admin()) {
|
239 |
-
if (!empty($options['contacts'][$id]['phone'])) {
|
240 |
-
$options['contacts'][$id]['phone'] = $this->get_whatsapp_number($options['contacts'][$id]['phone']);
|
241 |
-
}
|
242 |
-
if (!empty($options['contacts'][$id]['timezone'])) {
|
243 |
-
$options['contacts'][$id]['timezone'] = $this->get_timezone_offset($options['contacts'][$id]['timezone']);
|
244 |
-
}
|
245 |
-
}
|
246 |
-
}
|
247 |
-
}
|
248 |
-
}
|
249 |
-
/*
|
250 |
-
*
|
251 |
-
* next update
|
252 |
-
if (isset($options['box']['contactstimeout']) && $options['box']['contactstimeout'] == 'yes') {
|
253 |
-
$options['box']['contactstimeout'] = 'yes';
|
254 |
-
} */
|
255 |
-
|
256 |
-
$qlwapp = $this->wp_parse_args($options, $this->defaults());
|
257 |
-
}
|
258 |
-
|
259 |
-
function wp_parse_args(&$a, $b) {
|
260 |
-
$a = (array) $a;
|
261 |
-
$b = (array) $b;
|
262 |
-
$result = $b;
|
263 |
-
foreach ($a as $k => &$v) {
|
264 |
-
if (is_array($v) && isset($result[$k])) {
|
265 |
-
$result[$k] = $this->wp_parse_args($v, $result[$k]);
|
266 |
-
} else {
|
267 |
-
$result[$k] = $v;
|
268 |
-
}
|
269 |
-
}
|
270 |
-
return $result;
|
271 |
-
}
|
272 |
-
|
273 |
-
function init() {
|
274 |
-
add_action('init', array($this, 'options'));
|
275 |
-
add_filter('default_option_qlwapp', array($this, 'wac_options'), 10);
|
276 |
-
}
|
277 |
-
|
278 |
-
public static function instance() {
|
279 |
-
if (!isset(self::$instance)) {
|
280 |
-
self::$instance = new self();
|
281 |
-
self::$instance->defaults();
|
282 |
-
self::$instance->init();
|
283 |
-
}
|
284 |
-
return self::$instance;
|
285 |
-
}
|
286 |
-
|
287 |
-
}
|
288 |
-
|
289 |
-
QLWAPP_Options::instance();
|
290 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/frontend.php
CHANGED
@@ -14,7 +14,22 @@ if (!class_exists('QLWAPP_Frontend')) {
|
|
14 |
|
15 |
global $qlwapp;
|
16 |
|
17 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
|
19 |
if (is_file($file = apply_filters('qlwapp_box_template', QLWAPP_PLUGIN_DIR . 'template/box.php'))) {
|
20 |
include_once $file;
|
@@ -23,19 +38,20 @@ if (!class_exists('QLWAPP_Frontend')) {
|
|
23 |
}
|
24 |
|
25 |
function add_frontend_css() {
|
26 |
-
|
|
|
27 |
?>
|
28 |
<style>
|
29 |
:root {
|
30 |
<?php
|
31 |
-
foreach ($
|
32 |
if ($value != '') {
|
33 |
printf('--%s-scheme-%s:%s;', QLWAPP_DOMAIN, $key, $value);
|
34 |
}
|
35 |
}
|
36 |
?>
|
37 |
}
|
38 |
-
<?php if ($
|
39 |
#qlwapp .qlwapp-toggle,
|
40 |
#qlwapp .qlwapp-box .qlwapp-header,
|
41 |
#qlwapp .qlwapp-box .qlwapp-user,
|
@@ -43,7 +59,7 @@ if (!class_exists('QLWAPP_Frontend')) {
|
|
43 |
background-color: var(--qlwapp-scheme-brand);
|
44 |
}
|
45 |
<?php endif; ?>
|
46 |
-
<?php if ($
|
47 |
#qlwapp .qlwapp-toggle,
|
48 |
#qlwapp .qlwapp-toggle .qlwapp-icon,
|
49 |
#qlwapp .qlwapp-toggle .qlwapp-text,
|
@@ -56,62 +72,64 @@ if (!class_exists('QLWAPP_Frontend')) {
|
|
56 |
<?php
|
57 |
}
|
58 |
|
59 |
-
function box_display($
|
60 |
-
|
61 |
-
global $qlwapp, $wp_query;
|
62 |
|
|
|
|
|
|
|
63 |
if (is_customize_preview()) {
|
64 |
return true;
|
65 |
}
|
66 |
|
67 |
-
if (count($
|
68 |
|
69 |
if (is_front_page() || is_home() || is_search() || is_404()) {
|
70 |
-
$
|
71 |
}
|
72 |
|
73 |
-
if (is_front_page() && in_array('home', $
|
74 |
return true;
|
75 |
}
|
76 |
|
77 |
-
if (is_home() && in_array('blog', $
|
78 |
return true;
|
79 |
}
|
80 |
|
81 |
-
if (is_search() && in_array('search', $
|
82 |
return true;
|
83 |
}
|
84 |
|
85 |
-
if (is_404() && in_array('error', $
|
86 |
return true;
|
87 |
}
|
88 |
}
|
89 |
|
90 |
if (is_archive() && isset($wp_query->queried_object->taxonomy)) {
|
91 |
|
92 |
-
if (isset($
|
93 |
|
94 |
-
$
|
95 |
|
96 |
-
if (in_array($wp_query->queried_object->term_id, $
|
97 |
return true;
|
98 |
}
|
99 |
|
100 |
//backward compatibility for $term->name
|
101 |
-
if (in_array($wp_query->queried_object->slug, $
|
102 |
return true;
|
103 |
}
|
104 |
}
|
105 |
}
|
106 |
|
107 |
-
return $
|
108 |
}
|
109 |
|
110 |
function do_shortcode($atts, $content = null) {
|
111 |
|
112 |
-
|
|
|
113 |
|
114 |
-
$atts = wp_parse_args($atts, $
|
115 |
|
116 |
ob_start();
|
117 |
?>
|
14 |
|
15 |
global $qlwapp;
|
16 |
|
17 |
+
include_once(QLWAPP_PLUGIN_DIR . 'includes/models/Box.php');
|
18 |
+
include_once(QLWAPP_PLUGIN_DIR . 'includes/models/Contact.php');
|
19 |
+
include_once(QLWAPP_PLUGIN_DIR . 'includes/models/Display.php');
|
20 |
+
include_once(QLWAPP_PLUGIN_DIR . 'includes/models/Button.php');
|
21 |
+
|
22 |
+
$box_model = new QLWAPP_Box();
|
23 |
+
$contact_model = new QLWAPP_Contact();
|
24 |
+
$button_model = new QLWAPP_Button();
|
25 |
+
$display_model = new QLWAPP_Display();
|
26 |
+
|
27 |
+
$contacts = $contact_model->get_contacts_reorder();
|
28 |
+
$display = $display_model->get();
|
29 |
+
$button = $button_model->get();
|
30 |
+
$box = $box_model->get();
|
31 |
+
|
32 |
+
if ($show = apply_filters('qlwapp_box_display', '__return_true')) {
|
33 |
|
34 |
if (is_file($file = apply_filters('qlwapp_box_template', QLWAPP_PLUGIN_DIR . 'template/box.php'))) {
|
35 |
include_once $file;
|
38 |
}
|
39 |
|
40 |
function add_frontend_css() {
|
41 |
+
$scheme_model = new QLWAPP_Scheme();
|
42 |
+
$scheme = $scheme_model->get();
|
43 |
?>
|
44 |
<style>
|
45 |
:root {
|
46 |
<?php
|
47 |
+
foreach ($scheme as $key => $value) {
|
48 |
if ($value != '') {
|
49 |
printf('--%s-scheme-%s:%s;', QLWAPP_DOMAIN, $key, $value);
|
50 |
}
|
51 |
}
|
52 |
?>
|
53 |
}
|
54 |
+
<?php if ($scheme['brand']): ?>
|
55 |
#qlwapp .qlwapp-toggle,
|
56 |
#qlwapp .qlwapp-box .qlwapp-header,
|
57 |
#qlwapp .qlwapp-box .qlwapp-user,
|
59 |
background-color: var(--qlwapp-scheme-brand);
|
60 |
}
|
61 |
<?php endif; ?>
|
62 |
+
<?php if ($scheme['text']): ?>
|
63 |
#qlwapp .qlwapp-toggle,
|
64 |
#qlwapp .qlwapp-toggle .qlwapp-icon,
|
65 |
#qlwapp .qlwapp-toggle .qlwapp-text,
|
72 |
<?php
|
73 |
}
|
74 |
|
75 |
+
function box_display($show) {
|
|
|
|
|
76 |
|
77 |
+
global $wp_query;
|
78 |
+
$display_model = new QLWAPP_Display();
|
79 |
+
$display = $display_model->get();
|
80 |
if (is_customize_preview()) {
|
81 |
return true;
|
82 |
}
|
83 |
|
84 |
+
if (count($display['target'])) {
|
85 |
|
86 |
if (is_front_page() || is_home() || is_search() || is_404()) {
|
87 |
+
$show = false;
|
88 |
}
|
89 |
|
90 |
+
if (is_front_page() && in_array('home', $display['target'])) {
|
91 |
return true;
|
92 |
}
|
93 |
|
94 |
+
if (is_home() && in_array('blog', $display['target'])) {
|
95 |
return true;
|
96 |
}
|
97 |
|
98 |
+
if (is_search() && in_array('search', $display['target'])) {
|
99 |
return true;
|
100 |
}
|
101 |
|
102 |
+
if (is_404() && in_array('error', $display['target'])) {
|
103 |
return true;
|
104 |
}
|
105 |
}
|
106 |
|
107 |
if (is_archive() && isset($wp_query->queried_object->taxonomy)) {
|
108 |
|
109 |
+
if (isset($display[$wp_query->queried_object->taxonomy]) && count($display[$wp_query->queried_object->taxonomy])) {
|
110 |
|
111 |
+
$show = false;
|
112 |
|
113 |
+
if (in_array($wp_query->queried_object->term_id, $display[$wp_query->queried_object->taxonomy])) {
|
114 |
return true;
|
115 |
}
|
116 |
|
117 |
//backward compatibility for $term->name
|
118 |
+
if (in_array($wp_query->queried_object->slug, $display[$wp_query->queried_object->taxonomy])) {
|
119 |
return true;
|
120 |
}
|
121 |
}
|
122 |
}
|
123 |
|
124 |
+
return $show;
|
125 |
}
|
126 |
|
127 |
function do_shortcode($atts, $content = null) {
|
128 |
|
129 |
+
$button_model = new QLWAPP_Button();
|
130 |
+
$button = $button_model->get();
|
131 |
|
132 |
+
$atts = wp_parse_args($atts, $button);
|
133 |
|
134 |
ob_start();
|
135 |
?>
|
includes/helpers.php
ADDED
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
function qlwapp_format_phone($phone) {
|
4 |
+
|
5 |
+
$phone = preg_replace('/[^0-9]/', '', $phone);
|
6 |
+
|
7 |
+
$phone = ltrim($phone, '0');
|
8 |
+
|
9 |
+
return $phone;
|
10 |
+
}
|
11 |
+
|
12 |
+
function qlwapp_get_timezone_offset($timezone) {
|
13 |
+
if (strpos($timezone, 'UTC') !== false) {
|
14 |
+
$offset = preg_replace('/UTC\+?/', '', $timezone) * 60;
|
15 |
+
} else {
|
16 |
+
$current = timezone_open($timezone);
|
17 |
+
$utc = new \DateTime('now', new \DateTimeZone('UTC'));
|
18 |
+
$offset = $current->getOffset($utc) / 3600 * 60;
|
19 |
+
}
|
20 |
+
return $offset;
|
21 |
+
}
|
22 |
+
|
23 |
+
function qlwapp_get_current_timezone() {
|
24 |
+
// Get user settings
|
25 |
+
$current_offset = get_option('gmt_offset');
|
26 |
+
$tzstring = get_option('timezone_string');
|
27 |
+
|
28 |
+
$check_zone_info = true;
|
29 |
+
|
30 |
+
// Remove old Etc mappings. Fallback to gmt_offset.
|
31 |
+
if (false !== strpos($tzstring, 'Etc/GMT')) {
|
32 |
+
$tzstring = '';
|
33 |
+
}
|
34 |
+
|
35 |
+
if (empty($tzstring)) {
|
36 |
+
// Create a UTC+- zone if no timezone string exists
|
37 |
+
$check_zone_info = false;
|
38 |
+
if (0 == $current_offset) {
|
39 |
+
$tzstring = 'UTC+0';
|
40 |
+
} elseif ($current_offset < 0) {
|
41 |
+
$tzstring = 'UTC' . $current_offset;
|
42 |
+
} else {
|
43 |
+
$tzstring = 'UTC+' . $current_offset;
|
44 |
+
}
|
45 |
+
}
|
46 |
+
return $tzstring;
|
47 |
+
}
|
includes/models/Box.php
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include_once 'QLWAPP_Model.php';
|
4 |
+
|
5 |
+
class QLWAPP_Box extends QLWAPP_Model {
|
6 |
+
|
7 |
+
protected $table = 'box';
|
8 |
+
|
9 |
+
function get_args() {
|
10 |
+
$args = array(
|
11 |
+
'enable' => 'no',
|
12 |
+
'header' => '<h3>Hello!</h3><p>Click one of our representatives below to chat on WhatsApp or send us an email to <a href="mailto:' . get_bloginfo('admin_email') . '">' . get_bloginfo('admin_email') . '</a></p>',
|
13 |
+
'footer' => '<p>Powered by <a target="_blank" href="' . QLWAPP_PURCHASE_URL . '">WhatsApp Chat</a>',
|
14 |
+
'response' => esc_html__('Write a response', 'wp-whatsapp-chat')
|
15 |
+
// ,'contactstimeout' => 'no'
|
16 |
+
);
|
17 |
+
return $args;
|
18 |
+
}
|
19 |
+
|
20 |
+
function sanitize($settings) {
|
21 |
+
|
22 |
+
if (isset($settings['header'])) {
|
23 |
+
$settings['header'] = wp_kses_post($settings['header']);
|
24 |
+
}
|
25 |
+
if (isset($settings['footer'])) {
|
26 |
+
$settings['footer'] = wp_kses_post($settings['footer']);
|
27 |
+
}
|
28 |
+
return $settings;
|
29 |
+
}
|
30 |
+
|
31 |
+
function save($box_data = NULL) {
|
32 |
+
// return $this->sanitize($box_data);
|
33 |
+
return parent::save_data($this->table, $this->sanitize($box_data));
|
34 |
+
}
|
35 |
+
|
36 |
+
}
|
includes/models/Button.php
ADDED
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include_once 'QLWAPP_Model.php';
|
4 |
+
|
5 |
+
class QLWAPP_Button extends QLWAPP_Model {
|
6 |
+
|
7 |
+
protected $table = 'button';
|
8 |
+
|
9 |
+
function get_args() {
|
10 |
+
|
11 |
+
$args = array(
|
12 |
+
'layout' => 'button',
|
13 |
+
'position' => 'bottom-right',
|
14 |
+
'text' => esc_html__('How can I help you?', 'wp-whatsapp-chat'),
|
15 |
+
'message' => sprintf(esc_html__('Hello! I\'m testing the %s plugin @https://quadlayers.com', 'wp-whatsapp-chat'), QLWAPP_PLUGIN_NAME),
|
16 |
+
'icon' => 'qlwapp-whatsapp-icon',
|
17 |
+
'phone' => '542215677768',
|
18 |
+
'developer' => 'no',
|
19 |
+
'rounded' => 'yes',
|
20 |
+
'timefrom' => '00:00',
|
21 |
+
'timeto' => '00:00',
|
22 |
+
'timezone' => qlwapp_get_current_timezone(),
|
23 |
+
'timeout' => 'readonly'
|
24 |
+
);
|
25 |
+
|
26 |
+
return $args;
|
27 |
+
}
|
28 |
+
|
29 |
+
function sanitize($settings) {
|
30 |
+
|
31 |
+
if (isset($settings['layout'])) {
|
32 |
+
$settings['layout'] = sanitize_html_class($settings['layout']);
|
33 |
+
}
|
34 |
+
if (isset($settings['position'])) {
|
35 |
+
$settings['position'] = sanitize_html_class($settings['position']);
|
36 |
+
}
|
37 |
+
if (isset($settings['text'])) {
|
38 |
+
$settings['text'] = sanitize_text_field($settings['text']);
|
39 |
+
}
|
40 |
+
if (isset($settings['message'])) {
|
41 |
+
$settings['message'] = sanitize_text_field($settings['message']);
|
42 |
+
}
|
43 |
+
// if (isset($settings['contactstimeout'])) {
|
44 |
+
// $settings['box']['contactstimeout'] = sanitize_text_field($settings['box']['contactstimeout']);
|
45 |
+
// }
|
46 |
+
if (isset($settings['icon'])) {
|
47 |
+
$settings['icon'] = sanitize_html_class($settings['icon']);
|
48 |
+
}
|
49 |
+
if (isset($settings['phone'])) {
|
50 |
+
$settings['phone'] = qlwapp_format_phone($settings['phone']);
|
51 |
+
}
|
52 |
+
|
53 |
+
return $settings;
|
54 |
+
}
|
55 |
+
|
56 |
+
function save($button_data = NULL) {
|
57 |
+
return parent::save_data($this->table, $this->sanitize($button_data));
|
58 |
+
}
|
59 |
+
}
|
includes/models/Chat.php
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class QLWAPP_Chat extends QLWAPP_Model {
|
4 |
+
|
5 |
+
protected $table = 'chat';
|
6 |
+
|
7 |
+
function get_args() {
|
8 |
+
|
9 |
+
$args = array(
|
10 |
+
// 'contact' => $contact,
|
11 |
+
'emoji' => 'no',
|
12 |
+
);
|
13 |
+
return $args;
|
14 |
+
}
|
15 |
+
|
16 |
+
}
|
includes/models/Contact.php
ADDED
@@ -0,0 +1,136 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include_once(QLWAPP_PLUGIN_DIR . 'includes/helpers.php');
|
4 |
+
|
5 |
+
class QLWAPP_Contact extends QLWAPP_Model {
|
6 |
+
|
7 |
+
protected $table = 'contacts';
|
8 |
+
|
9 |
+
function get_args() {
|
10 |
+
$args = array(
|
11 |
+
'id' => null,
|
12 |
+
'order' => 1,
|
13 |
+
// Defaults
|
14 |
+
// -----------------------------------------------------------------
|
15 |
+
'chat' => true,
|
16 |
+
'avatar' => 'https://www.gravatar.com/avatar/00000000000000000000000000000000',
|
17 |
+
'phone' => '542215677768',
|
18 |
+
'firstname' => 'John',
|
19 |
+
'lastname' => 'Doe',
|
20 |
+
'label' => esc_html__('Support', 'wp-whatsapp-chat'),
|
21 |
+
'message' => esc_html__('Hello! I\'m John from the support team.', 'wp-whatsapp-chat'),
|
22 |
+
'timefrom' => '00:00',
|
23 |
+
'timeto' => '00:00',
|
24 |
+
'timezone' => qlwapp_get_current_timezone(),
|
25 |
+
'timeout' => 'readonly'
|
26 |
+
);
|
27 |
+
return $args;
|
28 |
+
}
|
29 |
+
|
30 |
+
function get_next_id() {
|
31 |
+
$contactos = $this->get_contacts();
|
32 |
+
if (count($contactos)) {
|
33 |
+
return max(array_keys($contactos)) + 1;
|
34 |
+
}
|
35 |
+
return 0;
|
36 |
+
}
|
37 |
+
|
38 |
+
function add_contact($contact_data) {
|
39 |
+
$contact_data['id'] = $this->get_next_id();
|
40 |
+
$contact_data['order'] = count($this->get_contacts()) + 1;
|
41 |
+
return $this->save($contact_data);
|
42 |
+
}
|
43 |
+
|
44 |
+
function update_contact($contact_data) {
|
45 |
+
return $this->save($contact_data);
|
46 |
+
}
|
47 |
+
|
48 |
+
function update_contacts($contacts) {
|
49 |
+
return $this->save_data($this->table, $this->sanitize_value_data($contacts));
|
50 |
+
}
|
51 |
+
|
52 |
+
function save($contact_data = NULL) {
|
53 |
+
$contacts = $this->get_contacts();
|
54 |
+
$contacts[$contact_data['id']] = wp_parse_args($contact_data, $this->get_args());
|
55 |
+
return $this->save_data($this->table, $this->sanitize_value_data($contacts));
|
56 |
+
}
|
57 |
+
|
58 |
+
function delete($id = NULL) {
|
59 |
+
$contacts = parent::get_all($this->table);
|
60 |
+
if ($contacts) {
|
61 |
+
if (count($contacts) > 0) {
|
62 |
+
unset($contacts[$id]);
|
63 |
+
return $this->save_data($this->table, $this->sanitize_value_data($contacts));
|
64 |
+
}
|
65 |
+
}
|
66 |
+
return false;
|
67 |
+
}
|
68 |
+
|
69 |
+
function settings_sanitize($settings) {
|
70 |
+
|
71 |
+
if (isset($settings['contacts'])) {
|
72 |
+
if (count($settings['contacts'])) {
|
73 |
+
foreach ($settings['contacts'] as $id => $c) {
|
74 |
+
$settings['contacts'][$id]['id'] = $id;
|
75 |
+
$settings['contacts'][$id]['chat'] = (bool) $settings['contacts'][$id]['chat'];
|
76 |
+
$settings['contacts'][$id]['avatar'] = sanitize_text_field($settings['contacts'][$id]['avatar']);
|
77 |
+
$settings['contacts'][$id]['phone'] = sanitize_text_field($settings['contacts'][$id]['phone']);
|
78 |
+
$settings['contacts'][$id]['firstname'] = sanitize_text_field($settings['contacts'][$id]['firstname']);
|
79 |
+
$settings['contacts'][$id]['lastname'] = sanitize_text_field($settings['contacts'][$id]['lastname']);
|
80 |
+
$settings['contacts'][$id]['label'] = sanitize_text_field($settings['contacts'][$id]['label']);
|
81 |
+
$settings['contacts'][$id]['message'] = wp_kses_post($settings['contacts'][$id]['message']);
|
82 |
+
$settings['contacts'][$id]['timeto'] = wp_kses_post($settings['contacts'][$id]['timeto']);
|
83 |
+
$settings['contacts'][$id]['phone'] = qlwapp_format_phone($settings['contacts'][$id]['phone']);
|
84 |
+
}
|
85 |
+
}
|
86 |
+
}
|
87 |
+
|
88 |
+
return $settings;
|
89 |
+
}
|
90 |
+
|
91 |
+
function sanitize_value_data($contacts, $args = null) {
|
92 |
+
//$contact_sanitized = array();
|
93 |
+
foreach ($contacts as $key => $contact) {
|
94 |
+
$contacts[$key] = parent::sanitize_value_data($contact, $this->get_args());
|
95 |
+
}
|
96 |
+
return $contacts;
|
97 |
+
}
|
98 |
+
|
99 |
+
// asumir que el id es igual al orden dentro del array
|
100 |
+
function get_contact($id) {
|
101 |
+
$parent_id = @max(array_keys(array_column($contacts, 'id'), $id));
|
102 |
+
$contacts = $this->get_contacts();
|
103 |
+
$contacts[$id];
|
104 |
+
return $contacts[$id];
|
105 |
+
}
|
106 |
+
|
107 |
+
function get_contacts() {
|
108 |
+
// $this->contacts see how to avoid multiple db calls in the same execution
|
109 |
+
$result = parent::get_all($this->table);
|
110 |
+
if ($result === NULL || count($result) === 0) {
|
111 |
+
$default = array();
|
112 |
+
$default[0] = $this->get_args();
|
113 |
+
$default[0]['id'] = 0;
|
114 |
+
$result = $default;
|
115 |
+
}
|
116 |
+
return $result;
|
117 |
+
}
|
118 |
+
|
119 |
+
function order_contact($a, $b) {
|
120 |
+
|
121 |
+
if (!isset($a['order']) || !isset($b['order']))
|
122 |
+
return 0;
|
123 |
+
|
124 |
+
if ($a['order'] == $b['order'])
|
125 |
+
return 0;
|
126 |
+
|
127 |
+
return ( $a['order'] < $b['order'] ) ? -1 : 1;
|
128 |
+
}
|
129 |
+
|
130 |
+
function get_contacts_reorder() {
|
131 |
+
$contacts = $this->get_contacts();
|
132 |
+
uasort($contacts, array($this, 'order_contact'));
|
133 |
+
return $contacts;
|
134 |
+
}
|
135 |
+
|
136 |
+
}
|
includes/models/Display.php
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class QLWAPP_Display extends QLWAPP_Model {
|
4 |
+
|
5 |
+
protected $table = 'display';
|
6 |
+
|
7 |
+
function get_args() {
|
8 |
+
|
9 |
+
$args = array(
|
10 |
+
'devices' => 'all',
|
11 |
+
'target' => array(),
|
12 |
+
'page' => array(),
|
13 |
+
'post' => array(),
|
14 |
+
'category' => array(),
|
15 |
+
);
|
16 |
+
return $args;
|
17 |
+
}
|
18 |
+
|
19 |
+
function save($display_data = NULL) {
|
20 |
+
return parent::save_data($this->table, $display_data);
|
21 |
+
}
|
22 |
+
|
23 |
+
|
24 |
+
}
|
includes/models/License.php
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class QLWAPP_License extends QLWAPP_Model {
|
4 |
+
|
5 |
+
protected $table = 'license';
|
6 |
+
|
7 |
+
function get_args() {
|
8 |
+
|
9 |
+
$args = array(
|
10 |
+
'market' => 'quadlayers',
|
11 |
+
'key' => '',
|
12 |
+
'email' => ''
|
13 |
+
);
|
14 |
+
return $args;
|
15 |
+
}
|
16 |
+
|
17 |
+
}
|
includes/models/QLWAPP_Model.php
ADDED
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include_once(QLWAPP_PLUGIN_DIR . 'includes/helpers.php');
|
4 |
+
|
5 |
+
class QLWAPP_Model {
|
6 |
+
|
7 |
+
// == schema
|
8 |
+
function options() {
|
9 |
+
$options = array();
|
10 |
+
$options['box'] = array();
|
11 |
+
$options['button'] = array();
|
12 |
+
$options['chat'] = array();
|
13 |
+
$options['contacts'] = array();
|
14 |
+
$options['display'] = array();
|
15 |
+
$options['scheme'] = array();
|
16 |
+
$options['license'] = array();
|
17 |
+
return $options;
|
18 |
+
}
|
19 |
+
|
20 |
+
function get() {
|
21 |
+
|
22 |
+
$result = $this->get_all($this->table);
|
23 |
+
return wp_parse_args($result, $this->get_args());
|
24 |
+
}
|
25 |
+
|
26 |
+
|
27 |
+
public function sanitize_value_data($value_data, $args) {
|
28 |
+
|
29 |
+
foreach ($value_data as $key => $value) {
|
30 |
+
|
31 |
+
if (array_key_exists($key, $args)) {
|
32 |
+
|
33 |
+
$type = $args[$key];
|
34 |
+
|
35 |
+
if (is_null($type) && !is_numeric($value)) {
|
36 |
+
$value_data[$key] = intval($value);
|
37 |
+
} elseif (is_bool($type) && !is_bool($value)) {
|
38 |
+
$value_data[$key] = ($value === 'true' || $value === '1' || $value === 1);
|
39 |
+
} elseif (is_string($type) && !is_string($value)) {
|
40 |
+
$value_data[$key] = strval($value);
|
41 |
+
} elseif (is_array($type) && !is_array($value)) {
|
42 |
+
$value_data[$key] = (array) $type;
|
43 |
+
}
|
44 |
+
} else {
|
45 |
+
unset($value_data[$key]);
|
46 |
+
}
|
47 |
+
}
|
48 |
+
|
49 |
+
return $value_data;
|
50 |
+
}
|
51 |
+
|
52 |
+
function save_all($qlwapp) {
|
53 |
+
return update_option('qlwapp', $qlwapp);
|
54 |
+
}
|
55 |
+
|
56 |
+
function save_data($key = null, $data = null) {
|
57 |
+
$qlwapp = get_option('qlwapp');
|
58 |
+
$qlwapp[$key] = $data;
|
59 |
+
return $this->save_all($qlwapp);
|
60 |
+
}
|
61 |
+
|
62 |
+
function get_all($key) {
|
63 |
+
$qlwapp = get_option('qlwapp', array());
|
64 |
+
$qlwapp = wp_parse_args($qlwapp, $this->options());
|
65 |
+
$res = $qlwapp[$key];
|
66 |
+
return $res;
|
67 |
+
}
|
68 |
+
|
69 |
+
}
|
includes/models/Scheme.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include_once 'QLWAPP_Model.php';
|
4 |
+
|
5 |
+
class QLWAPP_Scheme extends QLWAPP_Model {
|
6 |
+
|
7 |
+
protected $table = 'scheme';
|
8 |
+
|
9 |
+
function get_args() {
|
10 |
+
|
11 |
+
$args = array(
|
12 |
+
'brand' => '',
|
13 |
+
'text' => '',
|
14 |
+
'link' => '',
|
15 |
+
'message' => '',
|
16 |
+
'label' => '',
|
17 |
+
'name' => '',
|
18 |
+
);
|
19 |
+
return $args;
|
20 |
+
}
|
21 |
+
|
22 |
+
function save($scheme = NULL) {
|
23 |
+
return parent::save_data($this->table, $scheme);
|
24 |
+
}
|
25 |
+
|
26 |
+
|
27 |
+
}
|
includes/{suggestions.php → models/Suggestions.php}
RENAMED
@@ -1,132 +1,132 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
require_once( ABSPATH . 'wp-admin/includes/class-wp-plugin-install-list-table.php' );
|
4 |
-
|
5 |
-
class QLWAPP_Suggestions_List_Table extends WP_Plugin_Install_List_Table {
|
6 |
-
|
7 |
-
public $promote = array(
|
8 |
-
'wp-menu-icons',
|
9 |
-
'wp-whatsapp-chat',
|
10 |
-
'insta-gallery',
|
11 |
-
'quadmenu',
|
12 |
-
'woocommerce-checkout-manager',
|
13 |
-
'woocommerce-direct-checkout',
|
14 |
-
);
|
15 |
-
|
16 |
-
private function remove_plugins($plugins) {
|
17 |
-
|
18 |
-
$promote = array();
|
19 |
-
|
20 |
-
foreach ($this->promote as $order => $slug) {
|
21 |
-
|
22 |
-
if ($id = @max(array_keys(array_column($plugins, 'slug'), $slug))) {
|
23 |
-
|
24 |
-
$promote[] = $plugins[$id];
|
25 |
-
}
|
26 |
-
}
|
27 |
-
|
28 |
-
return $promote;
|
29 |
-
}
|
30 |
-
|
31 |
-
public function self_admin_url($url, $path) {
|
32 |
-
|
33 |
-
if (strpos($url, 'tab=plugin-information') !== false) {
|
34 |
-
$url = network_admin_url($path);
|
35 |
-
}
|
36 |
-
|
37 |
-
return $url;
|
38 |
-
}
|
39 |
-
|
40 |
-
public function network_admin_url($url, $path) {
|
41 |
-
|
42 |
-
if (strpos($url, 'plugins.php') !== false) {
|
43 |
-
$url = self_admin_url($path);
|
44 |
-
}
|
45 |
-
|
46 |
-
return $url;
|
47 |
-
}
|
48 |
-
|
49 |
-
public function display_rows() {
|
50 |
-
add_filter('self_admin_url', array($this, 'self_admin_url'), 10, 2);
|
51 |
-
add_filter('network_admin_url', array($this, 'network_admin_url'), 10, 2);
|
52 |
-
parent::display_rows();
|
53 |
-
}
|
54 |
-
|
55 |
-
public function is_connected() {
|
56 |
-
|
57 |
-
global $wp_version;
|
58 |
-
|
59 |
-
$http_args = array(
|
60 |
-
'timeout' => 15,
|
61 |
-
'user-agent' => 'WordPress/' . $wp_version . '; ' . home_url('/'),
|
62 |
-
);
|
63 |
-
|
64 |
-
return is_wp_error(wp_remote_get('http://api.wordpress.org/plugins/info/1.2/', $http_args));
|
65 |
-
}
|
66 |
-
|
67 |
-
public function get_plugins() {
|
68 |
-
|
69 |
-
$plugins = get_transient('ql_suggestions_plugins');
|
70 |
-
|
71 |
-
if ($plugins === false) {
|
72 |
-
|
73 |
-
$args = array(
|
74 |
-
'per_page' => 36,
|
75 |
-
'author' => 'quadlayers',
|
76 |
-
'locale' => get_user_locale(),
|
77 |
-
);
|
78 |
-
|
79 |
-
$api = plugins_api('query_plugins', $args);
|
80 |
-
|
81 |
-
if (!is_wp_error($api)) {
|
82 |
-
|
83 |
-
$plugins = $this->remove_plugins($api->plugins);
|
84 |
-
|
85 |
-
set_transient('ql_suggestions_plugins', $plugins, 24 * HOUR_IN_SECONDS);
|
86 |
-
}
|
87 |
-
}
|
88 |
-
|
89 |
-
return $plugins;
|
90 |
-
}
|
91 |
-
|
92 |
-
public function prepare_items() {
|
93 |
-
|
94 |
-
include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' );
|
95 |
-
|
96 |
-
global $tabs, $tab;
|
97 |
-
|
98 |
-
wp_enqueue_style('thickbox');
|
99 |
-
wp_enqueue_script('plugin-install');
|
100 |
-
wp_enqueue_script('thickbox');
|
101 |
-
wp_enqueue_script('updates');
|
102 |
-
|
103 |
-
wp_reset_vars(array('tab'));
|
104 |
-
|
105 |
-
$tabs = array();
|
106 |
-
|
107 |
-
if ('search' === $tab) {
|
108 |
-
$tabs['search'] = __('Search Results');
|
109 |
-
}
|
110 |
-
if ($tab === 'beta' || false !== strpos(get_bloginfo('version'), '-')) {
|
111 |
-
$tabs['beta'] = _x('Beta Testing', 'Plugin Installer');
|
112 |
-
}
|
113 |
-
$tabs['featured'] = _x('Featured', 'Plugin Installer');
|
114 |
-
$tabs['popular'] = _x('Popular', 'Plugin Installer');
|
115 |
-
$tabs['recommended'] = _x('Recommended', 'Plugin Installer');
|
116 |
-
$tabs['favorites'] = _x('Favorites', 'Plugin Installer');
|
117 |
-
|
118 |
-
$nonmenu_tabs = array('plugin-information'); // Valid actions to perform which do not have a Menu item.
|
119 |
-
|
120 |
-
$tabs = apply_filters('install_plugins_tabs', $tabs);
|
121 |
-
|
122 |
-
$nonmenu_tabs = apply_filters('install_plugins_nonmenu_tabs', $nonmenu_tabs);
|
123 |
-
|
124 |
-
// If a non-valid menu tab has been selected, And it's not a non-menu action.
|
125 |
-
if (empty($tab) || (!isset($tabs[$tab]) && !in_array($tab, (array) $nonmenu_tabs) )) {
|
126 |
-
$tab = key($tabs);
|
127 |
-
}
|
128 |
-
|
129 |
-
$this->items = $this->get_plugins();
|
130 |
-
}
|
131 |
-
|
132 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
require_once( ABSPATH . 'wp-admin/includes/class-wp-plugin-install-list-table.php' );
|
4 |
+
|
5 |
+
class QLWAPP_Suggestions_List_Table extends WP_Plugin_Install_List_Table {
|
6 |
+
|
7 |
+
public $promote = array(
|
8 |
+
'wp-menu-icons',
|
9 |
+
'wp-whatsapp-chat',
|
10 |
+
'insta-gallery',
|
11 |
+
'quadmenu',
|
12 |
+
'woocommerce-checkout-manager',
|
13 |
+
'woocommerce-direct-checkout',
|
14 |
+
);
|
15 |
+
|
16 |
+
private function remove_plugins($plugins) {
|
17 |
+
|
18 |
+
$promote = array();
|
19 |
+
|
20 |
+
foreach ($this->promote as $order => $slug) {
|
21 |
+
|
22 |
+
if ($id = @max(array_keys(array_column($plugins, 'slug'), $slug))) {
|
23 |
+
|
24 |
+
$promote[] = $plugins[$id];
|
25 |
+
}
|
26 |
+
}
|
27 |
+
|
28 |
+
return $promote;
|
29 |
+
}
|
30 |
+
|
31 |
+
public function self_admin_url($url, $path) {
|
32 |
+
|
33 |
+
if (strpos($url, 'tab=plugin-information') !== false) {
|
34 |
+
$url = network_admin_url($path);
|
35 |
+
}
|
36 |
+
|
37 |
+
return $url;
|
38 |
+
}
|
39 |
+
|
40 |
+
public function network_admin_url($url, $path) {
|
41 |
+
|
42 |
+
if (strpos($url, 'plugins.php') !== false) {
|
43 |
+
$url = self_admin_url($path);
|
44 |
+
}
|
45 |
+
|
46 |
+
return $url;
|
47 |
+
}
|
48 |
+
|
49 |
+
public function display_rows() {
|
50 |
+
add_filter('self_admin_url', array($this, 'self_admin_url'), 10, 2);
|
51 |
+
add_filter('network_admin_url', array($this, 'network_admin_url'), 10, 2);
|
52 |
+
parent::display_rows();
|
53 |
+
}
|
54 |
+
|
55 |
+
public function is_connected() {
|
56 |
+
|
57 |
+
global $wp_version;
|
58 |
+
|
59 |
+
$http_args = array(
|
60 |
+
'timeout' => 15,
|
61 |
+
'user-agent' => 'WordPress/' . $wp_version . '; ' . home_url('/'),
|
62 |
+
);
|
63 |
+
|
64 |
+
return is_wp_error(wp_remote_get('http://api.wordpress.org/plugins/info/1.2/', $http_args));
|
65 |
+
}
|
66 |
+
|
67 |
+
public function get_plugins() {
|
68 |
+
|
69 |
+
$plugins = get_transient('ql_suggestions_plugins');
|
70 |
+
|
71 |
+
if ($plugins === false) {
|
72 |
+
|
73 |
+
$args = array(
|
74 |
+
'per_page' => 36,
|
75 |
+
'author' => 'quadlayers',
|
76 |
+
'locale' => get_user_locale(),
|
77 |
+
);
|
78 |
+
|
79 |
+
$api = plugins_api('query_plugins', $args);
|
80 |
+
|
81 |
+
if (!is_wp_error($api)) {
|
82 |
+
|
83 |
+
$plugins = $this->remove_plugins($api->plugins);
|
84 |
+
|
85 |
+
set_transient('ql_suggestions_plugins', $plugins, 24 * HOUR_IN_SECONDS);
|
86 |
+
}
|
87 |
+
}
|
88 |
+
|
89 |
+
return $plugins;
|
90 |
+
}
|
91 |
+
|
92 |
+
public function prepare_items() {
|
93 |
+
|
94 |
+
include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' );
|
95 |
+
|
96 |
+
global $tabs, $tab;
|
97 |
+
|
98 |
+
wp_enqueue_style('thickbox');
|
99 |
+
wp_enqueue_script('plugin-install');
|
100 |
+
wp_enqueue_script('thickbox');
|
101 |
+
wp_enqueue_script('updates');
|
102 |
+
|
103 |
+
wp_reset_vars(array('tab'));
|
104 |
+
|
105 |
+
$tabs = array();
|
106 |
+
|
107 |
+
if ('search' === $tab) {
|
108 |
+
$tabs['search'] = __('Search Results');
|
109 |
+
}
|
110 |
+
if ($tab === 'beta' || false !== strpos(get_bloginfo('version'), '-')) {
|
111 |
+
$tabs['beta'] = _x('Beta Testing', 'Plugin Installer');
|
112 |
+
}
|
113 |
+
$tabs['featured'] = _x('Featured', 'Plugin Installer');
|
114 |
+
$tabs['popular'] = _x('Popular', 'Plugin Installer');
|
115 |
+
$tabs['recommended'] = _x('Recommended', 'Plugin Installer');
|
116 |
+
$tabs['favorites'] = _x('Favorites', 'Plugin Installer');
|
117 |
+
|
118 |
+
$nonmenu_tabs = array('plugin-information'); // Valid actions to perform which do not have a Menu item.
|
119 |
+
|
120 |
+
$tabs = apply_filters('install_plugins_tabs', $tabs);
|
121 |
+
|
122 |
+
$nonmenu_tabs = apply_filters('install_plugins_nonmenu_tabs', $nonmenu_tabs);
|
123 |
+
|
124 |
+
// If a non-valid menu tab has been selected, And it's not a non-menu action.
|
125 |
+
if (empty($tab) || (!isset($tabs[$tab]) && !in_array($tab, (array) $nonmenu_tabs) )) {
|
126 |
+
$tab = key($tabs);
|
127 |
+
}
|
128 |
+
|
129 |
+
$this->items = $this->get_plugins();
|
130 |
+
}
|
131 |
+
|
132 |
+
}
|
includes/models/Welcome.php
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class QLWAPP_Welcome {
|
4 |
+
|
5 |
+
function get_args() {
|
6 |
+
|
7 |
+
$args = array(
|
8 |
+
);
|
9 |
+
return $args;
|
10 |
+
}
|
11 |
+
|
12 |
+
}
|
includes/pages/box.php
DELETED
@@ -1,205 +0,0 @@
|
|
1 |
-
<form method="post" action="options.php">
|
2 |
-
<?php settings_fields(sanitize_key(QLWAPP_DOMAIN . '-group')); ?>
|
3 |
-
<?php do_settings_sections(sanitize_key(QLWAPP_DOMAIN . '-group')); ?>
|
4 |
-
<table class="form-table">
|
5 |
-
<tbody>
|
6 |
-
<tr>
|
7 |
-
<th scope="row"><?php esc_html_e('Disable', 'wp-whatsapp-chat'); ?></th>
|
8 |
-
<td>
|
9 |
-
<select name="<?php echo esc_attr(QLWAPP_DOMAIN); ?>[box][enable]" class="qlwapp-select2">
|
10 |
-
<option value="yes" <?php selected($qlwapp['box']['enable'], 'yes'); ?>><?php esc_html_e('Enable contact box', 'wp-whatsapp-chat'); ?></option>
|
11 |
-
<option value="no" <?php selected($qlwapp['box']['enable'], 'no'); ?>><?php esc_html_e('Disable contact box', 'wp-whatsapp-chat'); ?></option>
|
12 |
-
</select>
|
13 |
-
</td>
|
14 |
-
</tr>
|
15 |
-
<tr>
|
16 |
-
<th scope="row"><?php esc_html_e('Header', 'wp-whatsapp-chat'); ?></th>
|
17 |
-
<td>
|
18 |
-
<?php wp_editor($qlwapp['box']['header'], 'qlwapp_box_header', array('editor_height' => 200, 'textarea_name' => esc_attr(QLWAPP_DOMAIN) . '[box][header]')); ?>
|
19 |
-
</td>
|
20 |
-
</tr>
|
21 |
-
<tr>
|
22 |
-
<th scope="row"><?php esc_html_e('Footer', 'wp-whatsapp-chat'); ?></th>
|
23 |
-
<td>
|
24 |
-
<?php wp_editor($qlwapp['box']['footer'], 'qlwapp_box_footer', array('editor_height' => 200, 'textarea_name' => esc_attr(QLWAPP_DOMAIN) . '[box][footer]')); ?>
|
25 |
-
</td>
|
26 |
-
</tr>
|
27 |
-
<tr>
|
28 |
-
<th scope="row"><?php esc_html_e('Response', 'wp-whatsapp-chat'); ?></th>
|
29 |
-
<td>
|
30 |
-
<input type="text" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[chat][response]'); ?>" placeholder="<?php echo esc_html($this->defaults['chat']['response']); ?>" value="<?php echo esc_attr($qlwapp['chat']['response']); ?>" class="qlwapp-input"/>
|
31 |
-
<p class="description hidden"><?php esc_html_e('Write a response text.', 'wp-whatsapp-chat'); ?></p>
|
32 |
-
</td>
|
33 |
-
</tr>
|
34 |
-
<!-- // sal de momento, ver el js y el defaults
|
35 |
-
<tr>
|
36 |
-
<th scope="row"><?php// esc_html_e('Contacts time is over, what to do if there are no contacts in the time range', 'wp-whatsapp-chat'); ?></th>
|
37 |
-
<td class="qlwapp-premium-field">
|
38 |
-
<select name="<?php //echo esc_attr(QLWAPP_DOMAIN . '[box][contactstimeout]'); ?>" class="qlwapp-select2">
|
39 |
-
<option value="yes" <?php //selected($qlwapp['box']['contactstimeout'], 'yes'); ?>><?php //esc_html_e('Show the button as read only', 'wp-whatsapp-chat'); ?></option>
|
40 |
-
<option value="no" <?php //selected($qlwapp['box']['contactstimeout'], 'no'); ?>><?php //esc_html_e('Do not show the button', 'wp-whatsapp-chat'); ?></option>
|
41 |
-
</select>
|
42 |
-
<p class="description"><?php //esc_html_e('Contacts time is over, what to do if there are no contacts in the time range', 'wp-whatsapp-chat'); ?></span>
|
43 |
-
<p class="description hidden"><small><?php //esc_html_e('This is a premium feature', 'wp-whatsapp-chat'); ?></small></p>
|
44 |
-
</td>
|
45 |
-
</tr>-->
|
46 |
-
<tr>
|
47 |
-
<th scope="row">
|
48 |
-
<?php esc_html_e('Contacts', 'wp-whatsapp-chat'); ?>
|
49 |
-
</th>
|
50 |
-
<td>
|
51 |
-
<table id="qlwapp-contact-form" class="form-table widefat hidden" data-editindex="-1">
|
52 |
-
<?php $this->contact_table(); ?>
|
53 |
-
<tfoot>
|
54 |
-
<tr>
|
55 |
-
<td colspan="2">
|
56 |
-
<?php submit_button(esc_html__('Save Contact', 'wp-whatsapp-chat'), 'primary', null, false, array('id' => 'btn-save-contact')); ?>
|
57 |
-
<span class="spinner"></span>
|
58 |
-
</td>
|
59 |
-
</tr>
|
60 |
-
<tfoot>
|
61 |
-
</table>
|
62 |
-
<div class="submit qlwapp-premium-field">
|
63 |
-
<?php submit_button(esc_html__('Add Contact', 'wp-whatsapp-chat'), 'secondary', null, false, array('id' => 'btn-add-contact')); ?>
|
64 |
-
<p class="description hidden"><small><?php esc_html_e('This is a premium feature', 'wp-whatsapp-chat'); ?></small></p>
|
65 |
-
</div>
|
66 |
-
<table id="qlwapp-contacts-table" class="form-table widefat striped">
|
67 |
-
<thead>
|
68 |
-
<tr>
|
69 |
-
<td><b><?php esc_html_e('Avatar', 'wp-whatsapp-chat'); ?></b></td>
|
70 |
-
<td><b><?php esc_html_e('Phone', 'wp-whatsapp-chat'); ?></b></td>
|
71 |
-
<td><b><?php esc_html_e('Name', 'wp-whatsapp-chat'); ?></b></td>
|
72 |
-
<td><b><?php esc_html_e('Label', 'wp-whatsapp-chat'); ?></b></td>
|
73 |
-
<td><b><?php esc_html_e('Message', 'wp-whatsapp-chat'); ?></b></td>
|
74 |
-
<td><b><?php esc_html_e('Chat', 'wp-whatsapp-chat'); ?></b></td>
|
75 |
-
<td><b><?php esc_html_e('Actions', 'wp-whatsapp-chat'); ?></b></td>
|
76 |
-
</tr>
|
77 |
-
</thead>
|
78 |
-
<tbody>
|
79 |
-
</tbody>
|
80 |
-
</table>
|
81 |
-
</td>
|
82 |
-
</tr>
|
83 |
-
</tbody>
|
84 |
-
</table>
|
85 |
-
<?php submit_button() ?>
|
86 |
-
</form>
|
87 |
-
<script>
|
88 |
-
(function($) {
|
89 |
-
let qlwapp_contacts = <?php echo json_encode($qlwapp['contacts']) ?>;
|
90 |
-
let tableBody = document.querySelector('#qlwapp-contacts-table tbody');
|
91 |
-
$(document).on('click', '#btn-edit-contact', function() {
|
92 |
-
esc_html_edit_contact(this.dataset.cid);
|
93 |
-
return false;
|
94 |
-
});
|
95 |
-
|
96 |
-
|
97 |
-
$('#btn-save-contact').click(function(e) {
|
98 |
-
|
99 |
-
e.preventDefault();
|
100 |
-
let contact = {
|
101 |
-
|
102 |
-
firstname: $('#qlwapp-contact-form #cfirstname').val(),
|
103 |
-
lastname: $('#qlwapp-contact-form #clastname').val(),
|
104 |
-
phone: $('#qlwapp-contact-form #cphone').val(),
|
105 |
-
label: $('#qlwapp-contact-form #clabel').val(),
|
106 |
-
message: $('#qlwapp-contact-form #cmessage').val(),
|
107 |
-
chat: $('#qlwapp-contact-form .cchat:checked').val(),
|
108 |
-
avatar: $('#qlwapp-contact-form #cavatar').val(),
|
109 |
-
timefrom: $('#qlwapp-contact-form #ctimefrom').val(),
|
110 |
-
timeto: $('#qlwapp-contact-form #ctimeto').val(),
|
111 |
-
// timeout: $('#qlwapp-contact-form #ctimeout').val(),
|
112 |
-
timezone: $('#qlwapp-contact-form #ctimezone').val()
|
113 |
-
}
|
114 |
-
|
115 |
-
let index = document.querySelector('#qlwapp-contact-form').dataset.editindex;
|
116 |
-
if (index != '-1') {
|
117 |
-
qlwapp_contacts[parseInt(index)] = contact;
|
118 |
-
} else {
|
119 |
-
qlwapp_contacts.push(contact);
|
120 |
-
}
|
121 |
-
qlwapp_show_contacts();
|
122 |
-
$('#qlwapp-contact-form').slideToggle();
|
123 |
-
return false;
|
124 |
-
});
|
125 |
-
$(document).on('click', '#btn-delete-contact', function () {
|
126 |
-
let index = this.dataset.cid;
|
127 |
-
if (!qlwapp_contacts[index])
|
128 |
-
return false;
|
129 |
-
qlwapp_contacts.splice(index, 1);
|
130 |
-
qlwapp_show_contacts();
|
131 |
-
return false;
|
132 |
-
});
|
133 |
-
function qlwapp_show_contacts() {
|
134 |
-
tableBody.innerHTML = '';
|
135 |
-
let i = 0;
|
136 |
-
for (let contact of qlwapp_contacts) {
|
137 |
-
let tr = document.createElement('tr');
|
138 |
-
tr.dataset.cid = i;
|
139 |
-
let td1 = document.createElement('td');
|
140 |
-
let td2 = document.createElement('td');
|
141 |
-
let td3 = document.createElement('td');
|
142 |
-
let td4 = document.createElement('td');
|
143 |
-
let td5 = document.createElement('td');
|
144 |
-
let td6 = document.createElement('td');
|
145 |
-
let tda = document.createElement('td');
|
146 |
-
let avatar = contact.avatar ? contact.avatar : 'https://www.gravatar.com/avatar/00000000000000000000000000000000';
|
147 |
-
//td0.innerHTML = (i + 1);
|
148 |
-
tda.innerHTML = '<img class="qlwapp-avatar" src="' + avatar + '" alt="" width="100" height="100" />' +
|
149 |
-
'<input type="hidden" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[contacts]'); ?>[' + i + '][avatar]" value="' + avatar + '" />';
|
150 |
-
td1.innerHTML = contact.phone +
|
151 |
-
'<input type="hidden" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[contacts]'); ?>[' + i + '][phone]" value="' + contact.phone + '" />';
|
152 |
-
td2.innerHTML = contact.firstname + ' ' + contact.lastname +
|
153 |
-
'<input type="hidden" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[contacts]'); ?>[' + i + '][firstname]" value="' + contact.firstname + '" />' +
|
154 |
-
'<input type="hidden" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[contacts]'); ?>[' + i + '][lastname]" value="' + contact.lastname + '" />';
|
155 |
-
td3.innerHTML = contact.label +
|
156 |
-
'<input type="hidden" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[contacts]'); ?>[' + i + '][label]" value="' + contact.label + '" />';
|
157 |
-
td4.innerHTML = contact.message + ' - ' + '<?php esc_html_e('Availability', 'wp-whatsapp-chat'); ?>: '+ contact.timefrom +'-'+ contact.timeto +
|
158 |
-
' - <?php esc_html_e('Timezone', 'wp-whatsapp-chat'); ?>: '+ contact.timezone+
|
159 |
-
'<input type="hidden" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[contacts]'); ?>[' + i + '][message]" value="' + contact.message + '" />'+
|
160 |
-
'<input type="hidden" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[contacts]'); ?>[' + i + '][timeto]" value="' + contact.timeto + '" />'+
|
161 |
-
'<input type="hidden" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[contacts]'); ?>[' + i + '][timefrom]" value="' + contact.timefrom+ '" />'+
|
162 |
-
// '<input type="hidden" name="<?php // echo esc_attr(QLWAPP_DOMAIN . '[contacts]'); ?>[' + i + '][timeout]" value="' + contact.timeout + '" />'+
|
163 |
-
'<input type="hidden" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[contacts]'); ?>[' + i + '][timezone]" value="' + contact.timezone + '" />' ;
|
164 |
-
|
165 |
-
td5.innerHTML = (Number(contact.chat) ? 'Enabled' : 'Disabled') +
|
166 |
-
'<input type="hidden" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[contacts]'); ?>[' + i + '][chat]" value="' + Number(contact.chat) + '" />';
|
167 |
-
td6.innerHTML = '<a href="javascript:;" id="btn-delete-contact" data-cid="' + i + '">Remove</a> | ' +
|
168 |
-
'<a href="javascript:;" id="btn-edit-contact" data-cid="' + i + '">Edit</a>';
|
169 |
-
//tr.appendChild(td0);
|
170 |
-
tr.appendChild(tda);
|
171 |
-
tr.appendChild(td1);
|
172 |
-
tr.appendChild(td2);
|
173 |
-
tr.appendChild(td3);
|
174 |
-
tr.appendChild(td4);
|
175 |
-
tr.appendChild(td5);
|
176 |
-
tr.appendChild(td6);
|
177 |
-
tableBody.appendChild(tr);
|
178 |
-
i++;
|
179 |
-
}
|
180 |
-
}
|
181 |
-
|
182 |
-
function esc_html_edit_contact(index) {
|
183 |
-
let contact = qlwapp_contacts[index] || null;
|
184 |
-
if (!contact)
|
185 |
-
return false;
|
186 |
-
document.querySelector('#qlwapp-contact-form').dataset.editindex = index;
|
187 |
-
$('#qlwapp-contact-form #cfirstname').val(contact.firstname);
|
188 |
-
$('#qlwapp-contact-form #clastname').val(contact.lastname);
|
189 |
-
$('#qlwapp-contact-form #cphone').val(contact.phone);
|
190 |
-
$('#qlwapp-contact-form #clabel').val(contact.label);
|
191 |
-
$('#qlwapp-contact-form .cchat[value="1"]').attr('checked', contact.chat);
|
192 |
-
$('#qlwapp-contact-form .cchat[value="0"]').attr('checked', !contact.chat);
|
193 |
-
$('#qlwapp-contact-form #cmessage').val(contact.message);
|
194 |
-
$('#qlwapp-contact-form #cavatar').val(contact.avatar);
|
195 |
-
$('#qlwapp-contact-form #cavatar-img').attr('src', contact.avatar);
|
196 |
-
$('#qlwapp-contact-form #ctimefrom').val(contact.timefrom);
|
197 |
-
$('#qlwapp-contact-form #ctimeto').val(contact.timeto);
|
198 |
-
// $('#qlwapp-contact-form #ctimeout').val(contact.timeout);
|
199 |
-
$('#qlwapp-contact-form #ctimezone').val(contact.timezone);
|
200 |
-
|
201 |
-
$('#qlwapp-contact-form').slideToggle();
|
202 |
-
}
|
203 |
-
qlwapp_show_contacts();
|
204 |
-
})(jQuery);
|
205 |
-
</script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/pages/button.php
DELETED
@@ -1,113 +0,0 @@
|
|
1 |
-
<form method="post" action="options.php">
|
2 |
-
<?php settings_fields(sanitize_key(QLWAPP_DOMAIN . '-group')); ?>
|
3 |
-
<?php do_settings_sections(sanitize_key(QLWAPP_DOMAIN . '-group')); ?>
|
4 |
-
<table class="form-table">
|
5 |
-
<tbody>
|
6 |
-
<tr>
|
7 |
-
<th scope="row"><?php esc_html_e('Layout', 'wp-whatsapp-chat'); ?></th>
|
8 |
-
<td>
|
9 |
-
<select name="<?php echo esc_attr(QLWAPP_DOMAIN); ?>[button][layout]" class="qlwapp-select2">
|
10 |
-
<option value="button" <?php selected($qlwapp['button']['layout'], 'button'); ?>><?php esc_html_e('Button', 'wp-whatsapp-chat'); ?></option>
|
11 |
-
<option value="bubble" <?php selected($qlwapp['button']['layout'], 'bubble'); ?>><?php esc_html_e('Bubble', 'wp-whatsapp-chat'); ?></option>
|
12 |
-
</select>
|
13 |
-
<p class="description hidden"><?php esc_html_e('Switch to change the button layout.', 'wp-whatsapp-chat'); ?></p>
|
14 |
-
</td>
|
15 |
-
</tr>
|
16 |
-
<tr>
|
17 |
-
<th scope="row"><?php esc_html_e('Rounded', 'wp-whatsapp-chat'); ?></th>
|
18 |
-
<td>
|
19 |
-
<select name="<?php echo esc_attr(QLWAPP_DOMAIN); ?>[button][rounded]" class="qlwapp-select2">
|
20 |
-
<option value="yes" <?php selected($qlwapp['button']['rounded'], 'yes'); ?>><?php esc_html_e('Add rounded border', 'wp-whatsapp-chat'); ?></option>
|
21 |
-
<option value="no" <?php selected($qlwapp['button']['rounded'], 'no'); ?>><?php esc_html_e('Remove rounded border', 'wp-whatsapp-chat'); ?></option>
|
22 |
-
</select>
|
23 |
-
<p class="description hidden"><?php esc_html_e('Add rounded border to the button.', 'wp-whatsapp-chat'); ?></p>
|
24 |
-
</td>
|
25 |
-
</tr>
|
26 |
-
<tr>
|
27 |
-
<th scope="row"><?php esc_html_e('Position', 'wp-whatsapp-chat'); ?></th>
|
28 |
-
<td>
|
29 |
-
<select name="<?php echo esc_attr(QLWAPP_DOMAIN); ?>[button][position]" class="qlwapp-select2">
|
30 |
-
<option value="middle-left" <?php selected($qlwapp['button']['position'], 'middle-left'); ?>><?php esc_html_e('Middle Left', 'wp-whatsapp-chat'); ?></option>
|
31 |
-
<option value="middle-right" <?php selected($qlwapp['button']['position'], 'middle-right'); ?>><?php esc_html_e('Middle Right', 'wp-whatsapp-chat'); ?></option>
|
32 |
-
<option value="bottom-left" <?php selected($qlwapp['button']['position'], 'bottom-left'); ?>><?php esc_html_e('Bottom Left', 'wp-whatsapp-chat'); ?></option>
|
33 |
-
<option value="bottom-right" <?php selected($qlwapp['button']['position'], 'bottom-right'); ?>><?php esc_html_e('Bottom Right', 'wp-whatsapp-chat'); ?></option>
|
34 |
-
</select>
|
35 |
-
<p class="description hidden"><?php esc_html_e('Switch to change the button position.', 'wp-whatsapp-chat'); ?></p>
|
36 |
-
</td>
|
37 |
-
</tr>
|
38 |
-
<tr>
|
39 |
-
<th scope="row"><?php esc_html_e('Icon', 'wp-whatsapp-chat'); ?></th>
|
40 |
-
<td>
|
41 |
-
<div class="submit qlwapp-premium-field">
|
42 |
-
<?php submit_button(esc_html__('Add Icon', 'wp-whatsapp-chat'), 'secondary', null, false, array('id' => 'btn-add-icon')); ?>
|
43 |
-
<p class="description hidden"><small><?php esc_html_e('This is a premium feature', 'wp-whatsapp-chat'); ?></small></p>
|
44 |
-
</div>
|
45 |
-
<input type="text" name="<?php echo esc_attr(QLWAPP_DOMAIN); ?>[button][icon]" placeholder="<?php echo esc_html($this->defaults['button']['icon']); ?>" value="<?php echo esc_attr($qlwapp['button']['icon']); ?>" class="qlwapp-input"/>
|
46 |
-
</td>
|
47 |
-
</tr>
|
48 |
-
<!--<tr>
|
49 |
-
<th scope="row"><?php esc_html_e('Discreet link', 'wp-whatsapp-chat'); ?></th>
|
50 |
-
<td>
|
51 |
-
<select name="<?php echo esc_attr(QLWAPP_DOMAIN); ?>[button][developer]" class="qlwapp-select2">
|
52 |
-
<option value="yes" <?php selected($qlwapp['button']['developer'], 'yes'); ?>><?php esc_html_e('Show developer link', 'wp-whatsapp-chat'); ?></option>
|
53 |
-
<option value="no" <?php selected($qlwapp['button']['developer'], 'no'); ?>><?php esc_html_e('Hide developer link', 'wp-whatsapp-chat'); ?></option>
|
54 |
-
</select>
|
55 |
-
<p class="description hidden"><?php esc_html_e('Leave a discrete link to developer to help and keep new updates and support.', 'wp-whatsapp-chat'); ?></p>
|
56 |
-
</td>
|
57 |
-
</tr>-->
|
58 |
-
<tr>
|
59 |
-
<th scope="row"><?php esc_html_e('Text', 'wp-whatsapp-chat'); ?></th>
|
60 |
-
<td>
|
61 |
-
<input type="text" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[button][text]'); ?>" placeholder="<?php echo esc_html($this->defaults['button']['text']); ?>" value="<?php echo esc_attr($qlwapp['button']['text']); ?>" class="qlwapp-input"/>
|
62 |
-
<p class="description hidden"><?php esc_html_e('Customize your text.', 'wp-whatsapp-chat'); ?></p>
|
63 |
-
</td>
|
64 |
-
</tr>
|
65 |
-
<tr>
|
66 |
-
<th scope="row"><?php esc_html_e('Phone', 'wp-whatsapp-chat'); ?></th>
|
67 |
-
<td>
|
68 |
-
<input type="text" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[button][phone]'); ?>" placeholder="<?php echo esc_html('+542215677768'); ?>" value="<?php echo esc_attr($qlwapp['button']['phone']); ?>" class="qlwapp-input" required="required"/>
|
69 |
-
<p class="description hidden"><?php esc_html_e('Full phone number in international format.', 'wp-whatsapp-chat'); ?></p>
|
70 |
-
|
71 |
-
</td>
|
72 |
-
</tr>
|
73 |
-
<tr>
|
74 |
-
<th scope="row"><?php esc_html_e('Message', 'wp-whatsapp-chat'); ?></th>
|
75 |
-
<td>
|
76 |
-
<textarea maxlength="500" style="width:100%;height: 100px;padding: 8px;" name="<?php echo esc_attr(QLWAPP_DOMAIN); ?>[button][message]" placeholder="<?php echo esc_html($this->defaults['button']['message']); ?>" ><?php echo esc_html(trim($qlwapp['button']['message'])); ?></textarea>
|
77 |
-
<p class="description hidden"><?php esc_html_e('Message that will automatically appear in the text field of a chat.', 'wp-whatsapp-chat'); ?></p>
|
78 |
-
</td>
|
79 |
-
</tr>
|
80 |
-
<tr>
|
81 |
-
<th scope="row"><?php esc_html_e('Schedule', 'wp-whatsapp-chat'); ?></th>
|
82 |
-
<td class="qlwapp-premium-field">
|
83 |
-
<b><?php esc_html_e('From', 'wp-whatsapp-chat'); ?></b>
|
84 |
-
<input type="time" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[button][timefrom]'); ?>" placeholder="<?php echo esc_html($this->defaults['button']['timefrom']); ?>" value="<?php echo esc_html($qlwapp['button']['timefrom']); ?>" />
|
85 |
-
<b><?php esc_html_e('To', 'wp-whatsapp-chat'); ?></b>
|
86 |
-
<input type="time" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[button][timeto]'); ?>" placeholder="<?php echo esc_html($this->defaults['button']['timeto']); ?>" value="<?php echo esc_html($qlwapp['button']['timeto']); ?>" />
|
87 |
-
<p class="description hidden"><small><?php esc_html_e('This is a premium feature', 'wp-whatsapp-chat'); ?></small></p>
|
88 |
-
</td>
|
89 |
-
</tr>
|
90 |
-
<tr>
|
91 |
-
<th scope="row"><?php esc_html_e('Timezone', 'wp-whatsapp-chat'); ?></th>
|
92 |
-
<td class="qlwapp-premium-field">
|
93 |
-
<select name="<?php echo esc_attr(QLWAPP_DOMAIN . '[button][timezone]'); ?>" aria-describedby="timezone-description" required="" class="qlwapp-select2">
|
94 |
-
<?php echo wp_timezone_choice($qlwapp['button']['timezone'], get_user_locale()); ?>
|
95 |
-
</select>
|
96 |
-
<p class="description"><small><?php esc_html_e('Hide button if the user is out of the available hours.', 'wp-whatsapp-chat'); ?></small></p>
|
97 |
-
<p class="description hidden"><small><?php esc_html_e('This is a premium feature', 'wp-whatsapp-chat'); ?></small></p>
|
98 |
-
</td>
|
99 |
-
</tr>
|
100 |
-
<!-- <tr>
|
101 |
-
<th scope="row"><?php // esc_html_e('Timeout', 'wp-whatsapp-chat'); ?></th>
|
102 |
-
<td class="qlwapp-premium-field">
|
103 |
-
<select name="<?php // echo esc_attr(QLWAPP_DOMAIN); ?>[button][timeout]" class="qlwapp-select2">
|
104 |
-
<option value="yes" <?php // selected($qlwapp['button']['timeout'], 'yes'); ?>><?php esc_html_e('Show the button as read only', 'wp-whatsapp-chat'); ?></option>
|
105 |
-
<option value="no" <?php // selected($qlwapp['button']['timeout'], 'no'); ?>><?php esc_html_e('Do not show the button', 'wp-whatsapp-chat'); ?></option>
|
106 |
-
</select>
|
107 |
-
<p class="description hidden"><small><?php //esc_html_e('This is a premium feature', 'wp-whatsapp-chat'); ?></small></p>
|
108 |
-
</td>
|
109 |
-
</tr> -->
|
110 |
-
</tbody>
|
111 |
-
</table>
|
112 |
-
<?php submit_button() ?>
|
113 |
-
</form>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/pages/colors.php
DELETED
@@ -1,49 +0,0 @@
|
|
1 |
-
<form method="post" action="options.php">
|
2 |
-
<?php settings_fields(sanitize_key(QLWAPP_DOMAIN . '-group')); ?>
|
3 |
-
<?php do_settings_sections(sanitize_key(QLWAPP_DOMAIN . '-group')); ?>
|
4 |
-
<table class="form-table">
|
5 |
-
<tbody>
|
6 |
-
<tr>
|
7 |
-
<th scope="row"><?php esc_html_e('Background', 'wp-whatsapp-chat'); ?></th>
|
8 |
-
<td>
|
9 |
-
<input class="qlwapp-color-field" type="text" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[scheme][brand]'); ?>" value="<?php echo esc_attr($qlwapp['scheme']['brand']); ?>" />
|
10 |
-
</td>
|
11 |
-
</tr>
|
12 |
-
<tr>
|
13 |
-
<th scope="row"><?php esc_html_e('Color', 'wp-whatsapp-chat'); ?></th>
|
14 |
-
<td>
|
15 |
-
<input class="qlwapp-color-field" type="text" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[scheme][text]'); ?>" value="<?php echo esc_attr($qlwapp['scheme']['text']); ?>" />
|
16 |
-
</td>
|
17 |
-
</tr>
|
18 |
-
<tr class="qlwapp-premium-field">
|
19 |
-
<th scope="row"><?php esc_html_e('Link', 'wp-whatsapp-chat'); ?></th>
|
20 |
-
<td>
|
21 |
-
<input class="qlwapp-color-field" type="link" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[scheme][link]'); ?>" value="<?php echo esc_attr($qlwapp['scheme']['link']); ?>" />
|
22 |
-
<p class="description hidden"><small><?php esc_html_e('This is a premium feature', 'wp-whatsapp-chat'); ?></small></p>
|
23 |
-
</td>
|
24 |
-
</tr>
|
25 |
-
<tr class="qlwapp-premium-field">
|
26 |
-
<th scope="row"><?php esc_html_e('Message', 'wp-whatsapp-chat'); ?></th>
|
27 |
-
<td>
|
28 |
-
<input class="qlwapp-color-field" type="link" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[scheme][message]'); ?>" value="<?php echo esc_attr($qlwapp['scheme']['message']); ?>" />
|
29 |
-
<p class="description hidden"><small><?php esc_html_e('This is a premium feature', 'wp-whatsapp-chat'); ?></small></p>
|
30 |
-
</td>
|
31 |
-
</tr>
|
32 |
-
<tr class="qlwapp-premium-field">
|
33 |
-
<th scope="row"><?php esc_html_e('Label', 'wp-whatsapp-chat'); ?></th>
|
34 |
-
<td>
|
35 |
-
<input class="qlwapp-color-field" type="link" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[scheme][label]'); ?>" value="<?php echo esc_attr($qlwapp['scheme']['label']); ?>" />
|
36 |
-
<p class="description hidden"><small><?php esc_html_e('This is a premium feature', 'wp-whatsapp-chat'); ?></small></p>
|
37 |
-
</td>
|
38 |
-
</tr>
|
39 |
-
<tr class="qlwapp-premium-field">
|
40 |
-
<th scope="row"><?php esc_html_e('Name', 'wp-whatsapp-chat'); ?></th>
|
41 |
-
<td>
|
42 |
-
<input class="qlwapp-color-field" type="link" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[scheme][name]'); ?>" value="<?php echo esc_attr($qlwapp['scheme']['name']); ?>" />
|
43 |
-
<p class="description hidden"><small><?php esc_html_e('This is a premium feature', 'wp-whatsapp-chat'); ?></small></p>
|
44 |
-
</td>
|
45 |
-
</tr>
|
46 |
-
</tbody>
|
47 |
-
</table>
|
48 |
-
<?php submit_button() ?>
|
49 |
-
</form>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/pages/contacts.php
DELETED
@@ -1,64 +0,0 @@
|
|
1 |
-
|
2 |
-
<div class="submit qlwapp-premium-field">
|
3 |
-
|
4 |
-
<a href="javascript:;" id="qlwapp_settings_add" contact_id ="-1" class="button button-primary"><?php esc_html_e('+ New Contact', 'woocommerce-checkout-manager') ?></a>
|
5 |
-
|
6 |
-
</div>
|
7 |
-
|
8 |
-
<table id="qlwapp-contacts-table" class="form-table widefat striped">
|
9 |
-
<thead>
|
10 |
-
<tr>
|
11 |
-
<td><b><?php esc_html_e('Avatar', 'wp-whatsapp-chat'); ?></b></td>
|
12 |
-
<td><b><?php esc_html_e('Phone', 'wp-whatsapp-chat'); ?></b></td>
|
13 |
-
<td><b><?php esc_html_e('Name', 'wp-whatsapp-chat'); ?></b></td>
|
14 |
-
<td><b><?php esc_html_e('Label', 'wp-whatsapp-chat'); ?></b></td>
|
15 |
-
<td><b><?php esc_html_e('Message', 'wp-whatsapp-chat'); ?></b></td>
|
16 |
-
<td><b><?php esc_html_e('Chat', 'wp-whatsapp-chat'); ?></b></td>
|
17 |
-
<td><b><?php esc_html_e('Availability', 'wp-whatsapp-chat'); ?></b></td>
|
18 |
-
<td><b><?php esc_html_e('Timezone', 'wp-whatsapp-chat'); ?></b></td>
|
19 |
-
<td><b><?php esc_html_e('Actions', 'wp-whatsapp-chat'); ?></b></td>
|
20 |
-
</tr>
|
21 |
-
</thead>
|
22 |
-
<tbody>
|
23 |
-
<?php
|
24 |
-
foreach ($qlwapp['contacts'] as $id => $c) {
|
25 |
-
?>
|
26 |
-
<tr data-contact_id="<?php echo esc_attr($id) ?>" >
|
27 |
-
<td>
|
28 |
-
<img class="qlwapp-avatar" src="<?php echo $c['avatar']; ?>" alt="" width="50" height="50" /> </td>
|
29 |
-
<td><b><?php echo esc_attr($c['phone']); ?></b></td>
|
30 |
-
<td><b><?php echo $c['firstname'] . ', ' . $c['lastname']; ?> </b></td>
|
31 |
-
<td><b><?php echo $c['label']; ?></b></td>
|
32 |
-
<td><b>
|
33 |
-
<?php
|
34 |
-
if (strlen(wp_trim_words($c['message'])) > 13) {
|
35 |
-
echo substr(wp_trim_words($c['message']),0, 11).'...';
|
36 |
-
} else {
|
37 |
-
echo wp_trim_words( $c['message']);
|
38 |
-
}
|
39 |
-
?>
|
40 |
-
</b></td>
|
41 |
-
<td><b>
|
42 |
-
<?php
|
43 |
-
if ($c['chat'])
|
44 |
-
esc_html_e('active', 'wp-whatsapp-chat');
|
45 |
-
else
|
46 |
-
esc_html_e('inactive', 'wp-whatsapp-chat');
|
47 |
-
?>
|
48 |
-
</b></td>
|
49 |
-
<td><b><?php echo $c['timefrom']; ?> to <?php echo $c['timeto']; ?></b></td>
|
50 |
-
<td><b><?php echo $c['timezone']; ?></b></td>
|
51 |
-
<td><b>
|
52 |
-
<a class="qlwapp_settings_edit button" aria-label="<?php esc_html_e('Edit checkout field', 'wp-whatsapp-chat'); ?>" href="javascript:;"><?php esc_html_e('Edit'); ?></a>
|
53 |
-
<a class="qlwapp_settings_delete" aria-label="<?php esc_html_e('Edit checkout field', 'wp-whatsapp-chat'); ?>" href="javascript:;"><?php esc_html_e('Delete'); ?></a>
|
54 |
-
</b>
|
55 |
-
</td>
|
56 |
-
</tr>
|
57 |
-
<?php
|
58 |
-
}
|
59 |
-
?>
|
60 |
-
</tbody>
|
61 |
-
|
62 |
-
</table>
|
63 |
-
|
64 |
-
<?php include_once('modals/contact.php'); ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/pages/display.php
DELETED
@@ -1,126 +0,0 @@
|
|
1 |
-
<form method="post" action="options.php">
|
2 |
-
<?php settings_fields(sanitize_key(QLWAPP_DOMAIN . '-group')); ?>
|
3 |
-
<?php do_settings_sections(sanitize_key(QLWAPP_DOMAIN . '-group')); ?>
|
4 |
-
<table class="form-table">
|
5 |
-
<tbody>
|
6 |
-
<tr>
|
7 |
-
<th scope="row"><?php esc_html_e('Devices', 'wp-whatsapp-chat'); ?></th>
|
8 |
-
<td>
|
9 |
-
<select name="<?php echo esc_attr(QLWAPP_DOMAIN); ?>[display][devices]" style="width:350px" data-placeholder="<?php echo esc_attr('Choose target…', 'wp-whatsapp-chat'); ?>" aria-label="<?php echo esc_attr('Posts', 'wp-whatsapp-chat'); ?>" class="qlwapp-select2">
|
10 |
-
<option value="all" <?php selected('all', $qlwapp['display']['devices']); ?>><?php esc_html_e('Show in all devices', 'wp-whatsapp-chat'); ?></option>
|
11 |
-
<option value="mobile" <?php selected('mobile', $qlwapp['display']['devices']); ?>><?php esc_html_e('Show in mobile devices', 'wp-whatsapp-chat'); ?></option>
|
12 |
-
<option value="desktop" <?php selected('desktop', $qlwapp['display']['devices']); ?>><?php esc_html_e('Show in desktop devices', 'wp-whatsapp-chat'); ?></option>
|
13 |
-
<option value="hide" <?php selected('hide', $qlwapp['display']['devices']); ?>><?php esc_html_e('Hide in all devices', 'wp-whatsapp-chat'); ?></option>
|
14 |
-
</select>
|
15 |
-
</td>
|
16 |
-
</tr>
|
17 |
-
<tr>
|
18 |
-
<th scope="row"><?php esc_html_e('Target', 'wp-whatsapp-chat'); ?></th>
|
19 |
-
<td>
|
20 |
-
<select multiple="multiple" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[display][target][]'); ?>" style="width:350px" data-placeholder="<?php echo esc_attr('Choose target…', 'wp-whatsapp-chat'); ?>" aria-label="<?php echo esc_attr('Posts', 'wp-whatsapp-chat'); ?>" class="qlwapp-select2">
|
21 |
-
<option value="none" <?php echo selected(true, in_array('none', (array) $qlwapp['display']['target'])); ?>><?php echo esc_html__('Exclude from all', 'wp-whatsapp-chat'); ?></option>
|
22 |
-
<option value="home" <?php echo selected(true, in_array('home', (array) $qlwapp['display']['target'])); ?>><?php echo esc_html__('Home', 'wp-whatsapp-chat'); ?></option>
|
23 |
-
<option value="blog" <?php echo selected(true, in_array('blog', (array) $qlwapp['display']['target'])); ?>><?php echo esc_html__('Blog', 'wp-whatsapp-chat'); ?></option>
|
24 |
-
<option value="search" <?php echo selected(true, in_array('search', (array) $qlwapp['display']['target'])); ?>><?php echo esc_html__('Search', 'wp-whatsapp-chat'); ?></option>
|
25 |
-
<option value="error" <?php echo selected(true, in_array('error', (array) $qlwapp['display']['target'])); ?>><?php echo esc_html('404'); ?></option>
|
26 |
-
</select>
|
27 |
-
<p class="description hidden"><?php esc_html_e('If you select an option all the other will be excluded', 'wp-whatsapp-chat'); ?></p>
|
28 |
-
</td>
|
29 |
-
</tr>
|
30 |
-
<?php
|
31 |
-
foreach (get_post_types(array('public' => true, 'show_in_nav_menus' => true), 'objects') as $type) {
|
32 |
-
if (!isset($qlwapp['display'][$type->name])) {
|
33 |
-
$qlwapp['display'][$type->name] = array();
|
34 |
-
}
|
35 |
-
|
36 |
-
if ($count = wp_count_posts($type->name)) {
|
37 |
-
?>
|
38 |
-
<tr class="qlwapp-premium-field">
|
39 |
-
<th scope="row"><?php esc_html_e(ucwords($type->label)); ?></th>
|
40 |
-
<td>
|
41 |
-
<!-- <select style="width:80px" class="qlwapp-select2">
|
42 |
-
<option value="include">Include</option>
|
43 |
-
<option value="include">Exclude</option>
|
44 |
-
</select>-->
|
45 |
-
<select id="qlwapp_select2_<?php echo esc_attr($type->name); ?>" multiple="multiple" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[display][' . $type->name . '][]'); ?>" style="width:350px" data-placeholder="<?php printf(esc_html__('Select for %s…', 'wp-whatsapp-chat'), $type->label); ?>" aria-label="<?php echo esc_attr($type->label); ?>" data-name="<?php echo esc_attr($type->name); ?>" class="qlwapp-select2-ajax">
|
46 |
-
<option value="none" <?php echo selected(true, in_array('none', (array) $qlwapp['display'][$type->name])); ?>><?php echo esc_html__('Exclude from all', 'wp-whatsapp-chat'); ?></option>
|
47 |
-
<!--<option value="archive" <?php echo selected(true, in_array('archive', (array) $qlwapp['display'][$type->name])); ?>><?php echo esc_html__('Archive', 'wp-whatsapp-chat'); ?></option>-->
|
48 |
-
<?php
|
49 |
-
// Print selected posts
|
50 |
-
// -------------------------------------------------------------
|
51 |
-
if (isset($qlwapp['display'][$type->name]) && count($qlwapp['display'][$type->name])) {
|
52 |
-
foreach ($qlwapp['display'][$type->name] as $post_id) {
|
53 |
-
|
54 |
-
if (!$post = get_post($post_id)) {
|
55 |
-
//backward compatibility for $post->post_name
|
56 |
-
$post = get_page_by_path($post_id);
|
57 |
-
}
|
58 |
-
|
59 |
-
if (isset($post->ID)) {
|
60 |
-
?>
|
61 |
-
<option value="<?php echo esc_attr($post->ID); ?>" selected="selected"><?php echo esc_html(mb_substr($post->post_title, 0, 49)); ?></option>
|
62 |
-
<?php
|
63 |
-
}
|
64 |
-
}
|
65 |
-
}
|
66 |
-
// Print firsts 10 posts
|
67 |
-
// -------------------------------------------------------------
|
68 |
-
/* if ($count->publish < 11) {
|
69 |
-
$posts = get_posts(array(
|
70 |
-
'post_type' => $type->name,
|
71 |
-
'post_status' => 'publish',
|
72 |
-
'numberposts' => 10
|
73 |
-
));
|
74 |
-
foreach ($posts as $post) {
|
75 |
-
?>
|
76 |
-
<option value="<?php echo esc_attr($post->post_name); ?>" <?php echo selected(true, in_array($post->post_name, (array) $qlwapp['display'][$type->name])); ?>><?php echo esc_html($post->post_title); ?></option>
|
77 |
-
<?php
|
78 |
-
}
|
79 |
-
} */
|
80 |
-
?>
|
81 |
-
</select>
|
82 |
-
<p class="description hidden"><small><?php esc_html_e('This is a premium feature', 'wp-whatsapp-chat'); ?></small></p>
|
83 |
-
</td>
|
84 |
-
</tr>
|
85 |
-
<?php
|
86 |
-
}
|
87 |
-
}
|
88 |
-
?>
|
89 |
-
<?php
|
90 |
-
foreach ($taxonomies = get_taxonomies(array('public' => true), 'objects') as $taxonomy) {
|
91 |
-
|
92 |
-
if (!isset($qlwapp['display'][$taxonomy->name])) {
|
93 |
-
$qlwapp['display'][$taxonomy->name] = array();
|
94 |
-
}
|
95 |
-
|
96 |
-
$terms = get_terms(array(
|
97 |
-
'taxonomy' => $taxonomy->name,
|
98 |
-
'hide_empty' => false,
|
99 |
-
));
|
100 |
-
|
101 |
-
if (count($terms)) {
|
102 |
-
?>
|
103 |
-
<tr>
|
104 |
-
<th scope="row"><?php esc_html_e(ucwords($taxonomy->label)); ?></th>
|
105 |
-
<td>
|
106 |
-
<select multiple="multiple" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[display][' . $taxonomy->name . '][]'); ?>" style="width:350px" data-placeholder="<?php echo esc_attr('Choose target…', 'wp-whatsapp-chat'); ?>" aria-label="<?php echo esc_attr($taxonomy->label); ?>" class="qlwapp-select2">
|
107 |
-
<option value="none" <?php echo selected(true, in_array('none', (array) $qlwapp['display'][$taxonomy->name])); ?>><?php echo esc_html__('Exclude from all', 'wp-whatsapp-chat'); ?></option>
|
108 |
-
<?php
|
109 |
-
foreach ($terms as $term) {
|
110 |
-
//backward compatibility for $term->name
|
111 |
-
?>
|
112 |
-
<option value="<?php echo esc_attr($term->term_id); ?>" <?php echo selected(true, in_array($term->term_id, (array) $qlwapp['display'][$taxonomy->name]) || in_array($term->name, (array) $qlwapp['display'][$taxonomy->name])); ?>><?php echo esc_html($term->name); ?></option>
|
113 |
-
<?php
|
114 |
-
}
|
115 |
-
?>
|
116 |
-
</select>
|
117 |
-
</td>
|
118 |
-
</tr>
|
119 |
-
<?php
|
120 |
-
}
|
121 |
-
}
|
122 |
-
?>
|
123 |
-
</tbody>
|
124 |
-
</table>
|
125 |
-
<?php submit_button() ?>
|
126 |
-
</form>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/pages/premium.php
DELETED
@@ -1,71 +0,0 @@
|
|
1 |
-
<div class="has-2-columns is-wider-left" style="max-width: 100%">
|
2 |
-
<div class="column">
|
3 |
-
<div class="welcome-header">
|
4 |
-
<h1><?php esc_html_e('Premium', 'wp-whatsapp-chat'); ?></h1>
|
5 |
-
<div class="about-description">
|
6 |
-
<?php printf(esc_html__('Unlock the power of our premium %s plugin which allows you to include unlimited agent accounts with their names and labels inside the box to provide direct contact to the different support areas of your site.', 'wp-whatsapp-chat'), QLWAPP_PLUGIN_NAME); ?>
|
7 |
-
</div>
|
8 |
-
<br/>
|
9 |
-
<a style="background-color: #006cff;color: #ffffff;text-decoration: none;padding: 10px 30px;border-radius: 30px;margin: 10px 0 0 0;display: inline-block;" target="_blank" href="<?php echo esc_url(QLWAPP_PURCHASE_URL); ?>"><?php esc_html_e('Purchase Now', 'wp-whatsapp-chat'); ?></a>
|
10 |
-
<a style="background-color: #ffffff;color: #626262;text-decoration: none;padding: 10px 30px;border-radius: 30px;margin: 10px 0 0 0;display: inline-block;" target="_blank" href="<?php echo esc_url(QLWAPP_SUPPORT_URL); ?>"><?php esc_html_e('Get Support', 'wp-whatsapp-chat'); ?></a>
|
11 |
-
</div>
|
12 |
-
<hr/>
|
13 |
-
<div class="feature-section">
|
14 |
-
<h3><?php esc_html_e('Multiple agents', 'wp-whatsapp-chat'); ?></h3>
|
15 |
-
<p>
|
16 |
-
<?php printf(esc_html__('%s allows you to include unlimited agent accounts with their names and labels inside the box to provide direct contact to the different support areas of your site.', 'wp-whatsapp-chat'), QLWAPP_PLUGIN_NAME); ?>
|
17 |
-
</p>
|
18 |
-
</div>
|
19 |
-
<div class="feature-section">
|
20 |
-
<h3><?php esc_html_e('Customize colors', 'wp-whatsapp-chat'); ?></h3>
|
21 |
-
<p>
|
22 |
-
<?php esc_html_e('Customize the colors to match your site theme through the WordPress live customizer interface.', 'wp-whatsapp-chat'); ?>
|
23 |
-
</p>
|
24 |
-
</div>
|
25 |
-
<div class="feature-section">
|
26 |
-
<h3><?php esc_html_e('Custom icons', 'wp-whatsapp-chat'); ?></h3>
|
27 |
-
<p>
|
28 |
-
<?php esc_html_e('Our plugin allows you to select between more than forty icons to include in your Whatsapp button.', 'wp-whatsapp-chat'); ?>
|
29 |
-
</p>
|
30 |
-
</div>
|
31 |
-
</div>
|
32 |
-
<div class="column">
|
33 |
-
<img src="<?php echo plugins_url('/assets/img/box1.png', QLWAPP_PLUGIN_FILE); ?>">
|
34 |
-
</div>
|
35 |
-
</div>
|
36 |
-
<br/>
|
37 |
-
<br/>
|
38 |
-
<div class="has-2-columns is-wider-right" style="max-width: 100%">
|
39 |
-
<div class="column">
|
40 |
-
<img src="<?php echo plugins_url('/assets/img/box2.png', QLWAPP_PLUGIN_FILE); ?>">
|
41 |
-
</div>
|
42 |
-
<div class="column">
|
43 |
-
<br/>
|
44 |
-
<div class="welcome-header">
|
45 |
-
<h1><?php esc_html_e('Chatbox interface', 'wp-whatsapp-chat'); ?></h1>
|
46 |
-
<div class="about-description">
|
47 |
-
<?php printf(esc_html__('%s for WordPress allows you to include a chatbox for each agent where your users can type their first message.', 'wp-whatsapp-chat'), QLWAPP_PLUGIN_NAME); ?>
|
48 |
-
<?php //esc_html_e('Take in mind that this chat dosent allow .', 'wp-whatsapp-chat'); ?>
|
49 |
-
</div>
|
50 |
-
</div>
|
51 |
-
<hr/>
|
52 |
-
<div class="feature-section">
|
53 |
-
<h3><?php esc_html_e('Custom agent message', 'wp-whatsapp-chat'); ?></h3>
|
54 |
-
<p>
|
55 |
-
<?php esc_html_e('Allow you to set a custom message for each agent that will be displayed on the chatbox.', 'wp-whatsapp-chat'); ?>
|
56 |
-
</p>
|
57 |
-
</div>
|
58 |
-
<div class="feature-section">
|
59 |
-
<h3><?php esc_html_e('Custom user message', 'wp-whatsapp-chat'); ?></h3>
|
60 |
-
<p>
|
61 |
-
<?php esc_html_e('You can choose the predefined user message that will be sent to the agent phone number.', 'wp-whatsapp-chat'); ?>
|
62 |
-
</p>
|
63 |
-
</div>
|
64 |
-
<div class="feature-section">
|
65 |
-
<h3><?php esc_html_e('Type user message', 'wp-whatsapp-chat'); ?></h3>
|
66 |
-
<p>
|
67 |
-
<?php esc_html_e('Allow your users to type their own messages before sending it to the agent phone number.', 'wp-whatsapp-chat'); ?>
|
68 |
-
</p>
|
69 |
-
</div>
|
70 |
-
</div>
|
71 |
-
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/pages/welcome.php
DELETED
@@ -1,35 +0,0 @@
|
|
1 |
-
<div class="has-2-columns is-wider-left" style="max-width: 100%">
|
2 |
-
<div class="column">
|
3 |
-
<div class="qlwapp-welcome-header">
|
4 |
-
<h1><?php echo QLWAPP_PLUGIN_NAME; ?> <span style="font-size: 24px;color: #555;">v<?php echo QLWAPP_PLUGIN_VERSION; ?></span></h1>
|
5 |
-
<div class="about-text">
|
6 |
-
<?php esc_html_e('Hello we\'re QuadLayers! We\'ve recently acquired this plugin and this is the first update. We have worked very much and very hard to release it, and we will do our absolute best to support it and fix all the issues.', 'wp-whatsapp-chat'); ?>
|
7 |
-
</div>
|
8 |
-
</div>
|
9 |
-
<hr/>
|
10 |
-
<div class="feature-section" style="padding: 15px 0;">
|
11 |
-
<h3><?php esc_html_e('Community', 'wp-whatsapp-chat'); ?></h3>
|
12 |
-
<p>
|
13 |
-
<?php printf(esc_html__('If you want to get in touch with other %s users or be aware of our promotional discounts join our community now.', 'wp-whatsapp-chat'), QLWAPP_PLUGIN_NAME); ?>
|
14 |
-
</p>
|
15 |
-
<a style="background-color: #ffffff;color: #626262;text-decoration: none;padding: 10px 30px;border-radius: 30px;margin: 10px 0 0 0;display: inline-block;" target="_blank" href="<?php echo QLWAPP_GROUP_URL; ?>"><?php esc_html_e('Join us', 'wp-whatsapp-chat'); ?></a>
|
16 |
-
</div>
|
17 |
-
<div class="feature-section" style="padding: 15px 0;">
|
18 |
-
<h3><?php esc_html_e('Demo', 'wp-whatsapp-chat'); ?></h3>
|
19 |
-
<p>
|
20 |
-
<?php printf(esc_html__('Thank you for choosing our %s plugin for WordPress! Here you can see our demo and a description about the features we offer in the premium version.', 'wp-whatsapp-chat'), QLWAPP_PLUGIN_NAME); ?>
|
21 |
-
</p>
|
22 |
-
<a style="background-color: #006cff;color: #ffffff;text-decoration: none;padding: 10px 30px;border-radius: 30px;margin: 10px 0 0 0;display: inline-block;" target="_blank" href="<?php echo QLWAPP_DEMO_URL; ?>"><?php esc_html_e('View demo', 'wp-whatsapp-chat'); ?></a>
|
23 |
-
</div>
|
24 |
-
<div class="feature-section" style="padding: 15px 0;">
|
25 |
-
<h3><?php esc_html_e('Support', 'wp-whatsapp-chat'); ?></h3>
|
26 |
-
<p>
|
27 |
-
<?php printf(esc_html__('If you have any doubt or you find any issue don\'t hesitate to contact us through our ticket system or join our community to meet other %s users.', 'wp-whatsapp-chat'), QLWAPP_PLUGIN_NAME); ?>
|
28 |
-
</p>
|
29 |
-
<a style="background-color: #006cff;color: #ffffff;text-decoration: none;padding: 10px 30px;border-radius: 30px;margin: 10px 0 0 0;display: inline-block;" target="_blank" href="<?php echo QLWAPP_SUPPORT_URL; ?>"><?php esc_html_e('Submit ticket', 'wp-whatsapp-chat'); ?></a>
|
30 |
-
</div>
|
31 |
-
</div>
|
32 |
-
<div class="column">
|
33 |
-
<img src="<?php echo plugins_url('/assets/img/box1.png', QLWAPP_PLUGIN_FILE); ?>">
|
34 |
-
</div>
|
35 |
-
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/settings.php
CHANGED
@@ -1,590 +1,179 @@
|
|
1 |
<?php
|
2 |
-
if (!defined('ABSPATH'))
|
3 |
-
exit;
|
4 |
|
5 |
-
|
6 |
|
7 |
-
|
8 |
|
9 |
-
|
10 |
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'install-plugin') {
|
16 |
-
if (strpos($url, 'plugins.php') !== false) {
|
17 |
-
$url = self_admin_url($path);
|
18 |
-
}
|
19 |
-
}
|
20 |
-
}
|
21 |
|
22 |
-
|
23 |
-
|
24 |
|
25 |
-
|
26 |
|
27 |
-
|
28 |
-
|
29 |
-
wp_redirect(admin_url('admin.php?page=' . QLWAPP_DOMAIN . '_suggestions'));
|
30 |
-
}
|
31 |
-
}
|
32 |
-
}
|
33 |
-
|
34 |
-
function add_action_links($links) {
|
35 |
-
|
36 |
-
$links[] = '<a target="_blank" href="' . QLWAPP_PURCHASE_URL . '">' . esc_html__('Premium', 'wp-whatsapp-chat') . '</a>';
|
37 |
|
38 |
-
|
|
|
|
|
|
|
39 |
|
40 |
-
|
|
|
|
|
|
|
41 |
}
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
if (current_user_can('manage_options')) {
|
46 |
-
|
47 |
-
if (!empty($_REQUEST) && check_admin_referer('qlwapp_get_posts', 'nonce')) {
|
48 |
-
|
49 |
-
$data = array(
|
50 |
-
array('none', esc_html__('Exclude from all', 'wp-whatsapp-chat'))
|
51 |
-
);
|
52 |
-
|
53 |
-
$args = array(
|
54 |
-
'post_type' => sanitize_key($_REQUEST['name']),
|
55 |
-
'post_status' => 'publish',
|
56 |
-
'ignore_sticky_posts' => 1,
|
57 |
-
'posts_per_page' => 10,
|
58 |
-
'exclude' => array_map('intval', (array) $_REQUEST['selected'])
|
59 |
-
);
|
60 |
-
|
61 |
-
if ($_REQUEST['q']) {
|
62 |
-
$args['s'] = sanitize_text_field($_REQUEST['q']);
|
63 |
-
}
|
64 |
-
|
65 |
-
$posts = get_posts($args);
|
66 |
-
|
67 |
-
foreach ($posts as $post) {
|
68 |
-
$data[] = array($post->ID, mb_substr($post->post_title, 0, 49));
|
69 |
-
}
|
70 |
-
|
71 |
-
wp_send_json($data);
|
72 |
-
}
|
73 |
-
}
|
74 |
-
|
75 |
-
wp_die();
|
76 |
}
|
77 |
-
|
78 |
-
|
79 |
-
add_menu_page(QLWAPP_PLUGIN_NAME, QLWAPP_PLUGIN_NAME, 'edit_posts', QLWAPP_DOMAIN, array($this, 'settings_welcome'), plugins_url('/assets/img/icon.png', QLWAPP_PLUGIN_FILE));
|
80 |
-
add_submenu_page(QLWAPP_DOMAIN, esc_html__('Welcome', 'wp-whatsapp-chat'), esc_html__('Welcome', 'wp-whatsapp-chat'), 'edit_posts', QLWAPP_DOMAIN, array($this, 'settings_welcome'));
|
81 |
-
add_submenu_page(QLWAPP_DOMAIN, esc_html__('Button', 'wp-whatsapp-chat'), esc_html__('Button', 'wp-whatsapp-chat'), 'manage_options', QLWAPP_DOMAIN . '_button', array($this, 'settings_button'));
|
82 |
-
add_submenu_page(QLWAPP_DOMAIN, esc_html__('Box', 'wp-whatsapp-chat'), esc_html__('Box', 'wp-whatsapp-chat'), 'manage_options', QLWAPP_DOMAIN . '_box', array($this, 'settings_box'));
|
83 |
-
//add_submenu_page(QLWAPP_DOMAIN, esc_html__('Contacts', 'wp-whatsapp-chat'), esc_html__('Contacts', 'wp-whatsapp-chat'), 'manage_options', QLWAPP_DOMAIN . '_contacts', array($this, 'settings_contacts1'));
|
84 |
-
add_submenu_page(QLWAPP_DOMAIN, esc_html__('Display', 'wp-whatsapp-chat'), esc_html__('Display', 'wp-whatsapp-chat'), 'manage_options', QLWAPP_DOMAIN . '_display', array($this, 'settings_display'));
|
85 |
-
add_submenu_page(QLWAPP_DOMAIN, esc_html__('Colors', 'wp-whatsapp-chat'), esc_html__('Colors', 'wp-whatsapp-chat'), 'manage_options', QLWAPP_DOMAIN . '_colors', array($this, 'settings_colors'));
|
86 |
-
add_submenu_page(QLWAPP_DOMAIN, esc_html__('Suggestions', 'wp-whatsapp-chat'), sprintf('%s', esc_html__('Suggestions', 'wp-whatsapp-chat')), 'edit_posts', QLWAPP_DOMAIN . '_suggestions', array($this, 'settings_suggestions'), 99);
|
87 |
-
add_submenu_page(QLWAPP_DOMAIN, esc_html__('Premium', 'wp-whatsapp-chat'), sprintf('<i class="dashicons dashicons-awards"></i> %s', esc_html__('Premium', 'wp-whatsapp-chat')), 'edit_posts', QLWAPP_DOMAIN . '_premium', array($this, 'settings_premium'));
|
88 |
}
|
89 |
-
|
90 |
-
|
91 |
-
global $submenu;
|
92 |
-
?>
|
93 |
-
<div class="wrap about-wrap full-width-layout qlwrap">
|
94 |
-
|
95 |
-
<h1><?php echo esc_html(QLWAPP_PLUGIN_NAME); ?></h1>
|
96 |
-
|
97 |
-
<p class="about-text"><?php printf(esc_html__('Thanks for using %s! We will do our best to offer you the best and improved communication experience with your users.', 'wp-whatsapp-chat'), QLWAPP_PLUGIN_NAME); ?></p>
|
98 |
-
|
99 |
-
<p class="about-text">
|
100 |
-
<?php printf('<a href="%s" target="_blank">%s</a>', QLWAPP_DEMO_URL, esc_html__('Demo', 'wp-whatsapp-chat')); ?></a> |
|
101 |
-
<?php printf('<a href="%s" target="_blank">%s</a>', QLWAPP_DOCUMENTATION_URL, esc_html__('Documentation', 'wp-whatsapp-chat')); ?></a>
|
102 |
-
</p>
|
103 |
-
|
104 |
-
<?php printf('<a href="%s" target="_blank"><div style="
|
105 |
-
background: #006bff url(%s) no-repeat;
|
106 |
-
background-position: top center;
|
107 |
-
background-size: 130px 130px;
|
108 |
-
color: #fff;
|
109 |
-
font-size: 14px;
|
110 |
-
text-align: center;
|
111 |
-
font-weight: 600;
|
112 |
-
margin: 5px 0 0;
|
113 |
-
padding-top: 120px;
|
114 |
-
height: 40px;
|
115 |
-
display: inline-block;
|
116 |
-
width: 140px;
|
117 |
-
" class="wp-badge">%s</div></a>', 'https://quadlayers.com/?utm_source=qlwapp_admin', plugins_url('/assets/img/quadlayers.jpg', QLWAPP_PLUGIN_FILE), esc_html__('QuadLayers', 'wp-whatsapp-chat')); ?>
|
118 |
-
|
119 |
-
</div>
|
120 |
-
<?php
|
121 |
-
if (isset($submenu[QLWAPP_DOMAIN])) {
|
122 |
-
if (is_array($submenu[QLWAPP_DOMAIN])) {
|
123 |
-
?>
|
124 |
-
<div class="wrap about-wrap full-width-layout qlwrap">
|
125 |
-
<h2 class="nav-tab-wrapper">
|
126 |
-
<?php
|
127 |
-
foreach ($submenu[QLWAPP_DOMAIN] as $tab) {
|
128 |
-
if (strpos($tab[2], '.php') !== false)
|
129 |
-
continue;
|
130 |
-
?>
|
131 |
-
<a href="<?php echo admin_url('admin.php?page=' . esc_attr($tab[2])); ?>" class="nav-tab<?php echo (isset($_GET['page']) && $_GET['page'] == $tab[2]) ? ' nav-tab-active' : ''; ?>"><?php echo $tab[0]; ?></a>
|
132 |
-
<?php
|
133 |
-
}
|
134 |
-
?>
|
135 |
-
</h2>
|
136 |
-
</div>
|
137 |
-
<?php
|
138 |
-
}
|
139 |
-
}
|
140 |
}
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
$settings['button']['layout'] = sanitize_html_class($settings['button']['layout']);
|
146 |
-
}
|
147 |
-
if (isset($settings['button']['position'])) {
|
148 |
-
$settings['button']['position'] = sanitize_html_class($settings['button']['position']);
|
149 |
-
}
|
150 |
-
if (isset($settings['button']['text'])) {
|
151 |
-
$settings['button']['text'] = sanitize_text_field($settings['button']['text']);
|
152 |
-
}
|
153 |
-
// if (isset($settings['button']['contactstimeout'])) {
|
154 |
-
// $settings['box']['contactstimeout'] = sanitize_text_field($settings['box']['contactstimeout']);
|
155 |
-
// }
|
156 |
-
if (isset($settings['button']['icon'])) {
|
157 |
-
$settings['button']['icon'] = sanitize_html_class($settings['button']['icon']);
|
158 |
-
}
|
159 |
-
if (isset($settings['box']['header'])) {
|
160 |
-
$settings['box']['header'] = wp_kses_post($settings['box']['header']);
|
161 |
-
}
|
162 |
-
if (isset($settings['box']['footer'])) {
|
163 |
-
$settings['box']['footer'] = wp_kses_post($settings['box']['footer']);
|
164 |
-
}
|
165 |
-
if (isset($settings['contacts'])) {
|
166 |
-
if (count($settings['contacts'])) {
|
167 |
-
foreach ($settings['contacts'] as $id => $c) {
|
168 |
-
$settings['contacts'][$id]['chat'] = (bool) $settings['contacts'][$id]['chat'];
|
169 |
-
$settings['contacts'][$id]['avatar'] = sanitize_text_field($settings['contacts'][$id]['avatar']);
|
170 |
-
$settings['contacts'][$id]['phone'] = sanitize_text_field($settings['contacts'][$id]['phone']);
|
171 |
-
$settings['contacts'][$id]['firstname'] = sanitize_text_field($settings['contacts'][$id]['firstname']);
|
172 |
-
$settings['contacts'][$id]['lastname'] = sanitize_text_field($settings['contacts'][$id]['lastname']);
|
173 |
-
$settings['contacts'][$id]['label'] = sanitize_text_field($settings['contacts'][$id]['label']);
|
174 |
-
$settings['contacts'][$id]['message'] = wp_kses_post($settings['contacts'][$id]['message']);
|
175 |
-
$settings['contacts'][$id]['timeto'] = wp_kses_post($settings['contacts'][$id]['timeto']);
|
176 |
-
//$settings['contacts'][$id]['message'] = stripslashes($settings['contacts'][$id]['message']);
|
177 |
-
}
|
178 |
-
}
|
179 |
-
}
|
180 |
-
|
181 |
-
return $settings;
|
182 |
}
|
183 |
-
|
184 |
-
|
185 |
-
register_setting(sanitize_key(QLWAPP_DOMAIN . '-group'), sanitize_key(QLWAPP_DOMAIN), array($this, 'settings_sanitize'));
|
186 |
}
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
global $qlwapp;
|
191 |
-
?>
|
192 |
-
<?php $this->settings_header(); ?>
|
193 |
-
<div class="wrap about-wrap full-width-layout qlwrap">
|
194 |
-
<?php include_once('pages/welcome.php'); ?>
|
195 |
-
</div>
|
196 |
-
<?php
|
197 |
-
}
|
198 |
-
|
199 |
-
function settings_button() {
|
200 |
-
|
201 |
-
global $qlwapp;
|
202 |
-
?>
|
203 |
-
<?php $this->settings_header(); ?>
|
204 |
-
<div class="wrap about-wrap full-width-layout qlwrap">
|
205 |
-
<?php include_once('pages/button.php'); ?>
|
206 |
-
</div>
|
207 |
-
<?php
|
208 |
-
}
|
209 |
-
|
210 |
-
function settings_box() {
|
211 |
-
|
212 |
-
global $qlwapp;
|
213 |
-
?>
|
214 |
-
<?php $this->settings_header(); ?>
|
215 |
-
<div class="wrap about-wrap full-width-layout qlwrap">
|
216 |
-
<?php include_once('pages/box.php'); ?>
|
217 |
-
</div>
|
218 |
-
<?php
|
219 |
-
}
|
220 |
-
|
221 |
-
function settings_contacts1() {
|
222 |
-
|
223 |
-
global $qlwapp;
|
224 |
-
?>
|
225 |
-
<?php $this->settings_header(); ?>
|
226 |
-
<div class="wrap about-wrap full-width-layout qlwrap">
|
227 |
-
<?php include_once('pages/contacts.php'); ?>
|
228 |
-
</div>
|
229 |
-
<?php
|
230 |
-
}
|
231 |
-
|
232 |
-
function settings_display() {
|
233 |
-
|
234 |
-
global $qlwapp;
|
235 |
-
?>
|
236 |
-
<?php $this->settings_header(); ?>
|
237 |
-
<div class="wrap about-wrap full-width-layout qlwrap">
|
238 |
-
<?php include_once('pages/display.php'); ?>
|
239 |
-
</div>
|
240 |
-
<?php
|
241 |
-
}
|
242 |
-
|
243 |
-
function settings_colors() {
|
244 |
-
|
245 |
-
global $qlwapp;
|
246 |
-
?>
|
247 |
-
<?php $this->settings_header(); ?>
|
248 |
-
<div class="wrap about-wrap full-width-layout qlwrap">
|
249 |
-
<?php include_once('pages/colors.php'); ?>
|
250 |
-
</div>
|
251 |
-
<?php
|
252 |
-
}
|
253 |
-
|
254 |
-
function settings_premium() {
|
255 |
-
|
256 |
-
global $qlwapp;
|
257 |
-
?>
|
258 |
-
<?php $this->settings_header(); ?>
|
259 |
-
<div class="wrap about-wrap full-width-layout qlwrap">
|
260 |
-
<?php include_once('pages/premium.php'); ?>
|
261 |
-
</div>
|
262 |
-
<?php
|
263 |
-
}
|
264 |
-
|
265 |
-
function settings_suggestions() {
|
266 |
-
|
267 |
-
global $qlwapp;
|
268 |
-
?>
|
269 |
-
<?php $this->settings_header(); ?>
|
270 |
-
<?php include_once('suggestions.php'); ?>
|
271 |
-
<?php include_once('pages/suggestions.php'); ?>
|
272 |
-
<?php
|
273 |
}
|
274 |
-
|
275 |
-
|
276 |
-
?>
|
277 |
-
<table class="form-table widefat" id="qlwapp-contact-form" data-editindex="-1">
|
278 |
-
<?php
|
279 |
-
//gestion de la time zone
|
280 |
-
$current_offset = get_option('gmt_offset');
|
281 |
-
$tzstring = get_option('timezone_string');
|
282 |
-
|
283 |
-
$check_zone_info = true;
|
284 |
-
|
285 |
-
// Remove old Etc mappings. Fallback to gmt_offset.
|
286 |
-
if (false !== strpos($tzstring, 'Etc/GMT')) {
|
287 |
-
$tzstring = '';
|
288 |
-
}
|
289 |
-
if (empty($tzstring)) { // Create a UTC+- zone if no timezone string exists
|
290 |
-
$check_zone_info = false;
|
291 |
-
if (0 == $current_offset) {
|
292 |
-
$tzstring = 'UTC+0';
|
293 |
-
} elseif ($current_offset < 0) {
|
294 |
-
$tzstring = 'UTC' . $current_offset;
|
295 |
-
} else {
|
296 |
-
$tzstring = 'UTC+' . $current_offset;
|
297 |
-
}
|
298 |
-
}
|
299 |
-
// echo 'aca ' . get_option('gmt_offset'). ' aca'.get_option( 'timezone_string');
|
300 |
-
// gestion de los contactos + gmt
|
301 |
-
$this->contact_table();
|
302 |
-
?>
|
303 |
-
</table>
|
304 |
-
<?php
|
305 |
-
}
|
306 |
-
|
307 |
-
function contact_table($id = 0) {
|
308 |
-
global $qlwapp;
|
309 |
-
?>
|
310 |
-
<tr>
|
311 |
-
<td>
|
312 |
-
<div class="upload">
|
313 |
-
<img id="cavatar-img" class="qlwapp-avatar" data-src="<?php echo stripslashes(esc_url($qlwapp['contacts'][$id]['avatar'])); ?>" src="<?php echo esc_url($qlwapp['contacts'][$id]['avatar']); ?>" />
|
314 |
-
<div>
|
315 |
-
<input type="hidden" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[contacts][' . $id . '][avatar]'); ?>" id="cavatar" value="<?php echo esc_url($qlwapp['contacts'][$id]['avatar']); ?>" />
|
316 |
-
<button type="button" class="upload_image_button button"><?php esc_html_e('Upload', 'wp-whatsapp-chat'); ?></button>
|
317 |
-
<button type="button" class="remove_image_button button">×</button>
|
318 |
-
</div>
|
319 |
-
</div>
|
320 |
-
</td>
|
321 |
-
<td>
|
322 |
-
<table>
|
323 |
-
<tr>
|
324 |
-
<td><b><?php esc_html_e('Firstname', 'wp-whatsapp-chat'); ?></b></td>
|
325 |
-
<td><input type="text" id="cfirstname" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[contacts][' . $id . '][firstname]'); ?>" placeholder="<?php echo esc_html($this->defaults['contacts'][0]['firstname']); ?>" value="<?php echo esc_html($qlwapp['contacts'][$id]['firstname']); ?>" /></td>
|
326 |
-
<td><b><?php esc_html_e('Lastname', 'wp-whatsapp-chat'); ?></b></td>
|
327 |
-
<td><input type="text" id="clastname" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[contacts][' . $id . '][lastname]'); ?>" placeholder="<?php echo esc_html($this->defaults['contacts'][0]['lastname']); ?>" value="<?php echo esc_html($qlwapp['contacts'][$id]['lastname']); ?>" /></td>
|
328 |
-
</tr>
|
329 |
-
<tr>
|
330 |
-
<td><b><?php esc_html_e('Phone', 'wp-whatsapp-chat'); ?></b></td><td><input type="text" id="cphone" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[contacts][' . $id . '][phone]'); ?>" placeholder="<?php echo esc_html('+542215677768'); ?>" value="<?php echo esc_html($qlwapp['contacts'][$id]['phone']); ?>"/></td>
|
331 |
-
<td><b><?php esc_html_e('Label', 'wp-whatsapp-chat'); ?></b></td><td><input type="text" id="clabel" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[contacts][' . $id . '][label]'); ?>" placeholder="<?php echo esc_html($this->defaults['contacts'][0]['label']); ?>" value="<?php echo esc_html($qlwapp['contacts'][$id]['label']); ?>" /></td>
|
332 |
-
</tr>
|
333 |
-
<tr>
|
334 |
-
<td >
|
335 |
-
<b><?php esc_html_e('From', 'wp-whatsapp-chat'); ?></b></td>
|
336 |
-
<td class="qlwapp-premium-field">
|
337 |
-
<input type="time" id="ctimefrom" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[contacts][' . $id . '][timefrom]'); ?>" placeholder="<?php echo esc_html($this->defaults['contacts'][0]['timefrom']); ?>" value="<?php echo esc_html($qlwapp['contacts'][$id]['timefrom']); ?>" />
|
338 |
-
<p class="description hidden"><small><?php esc_html_e('This is a premium feature', 'wp-whatsapp-chat'); ?></small></p>
|
339 |
-
|
340 |
-
</td>
|
341 |
-
<td>
|
342 |
-
<b><?php esc_html_e('To', 'wp-whatsapp-chat'); ?></b></td>
|
343 |
-
<td class="qlwapp-premium-field">
|
344 |
-
<input type="time" id="ctimeto" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[contacts][' . $id . '][timeto]'); ?>" placeholder="<?php echo esc_html($this->defaults['contacts'][0]['timeto']); ?>" value="<?php echo esc_html($qlwapp['contacts'][$id]['timeto']); ?>" />
|
345 |
-
<p class="description hidden"><small><?php esc_html_e('This is a premium feature', 'wp-whatsapp-chat'); ?></small></p>
|
346 |
-
</td>
|
347 |
-
</tr>
|
348 |
-
<!--
|
349 |
-
<tr>
|
350 |
-
<td><b><?php esc_html_e('Time is over', 'wp-whatsapp-chat'); ?></b></td>
|
351 |
-
<td class="qlwapp-premium-field">
|
352 |
-
<select id="ctimeout" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[contacts][' . $id . '][timeout]'); ?>">
|
353 |
-
<option value="readonly" ><?php esc_html_e('Show the field as read only', 'wp-whatsapp-chat'); ?></option>
|
354 |
-
<option value="disabled" > <?php esc_html_e('Do not show the field', 'wp-whatsapp-chat'); ?></option>
|
355 |
-
</select>
|
356 |
-
<p class="description hidden"><small><?php esc_html_e('This is a premium feature', 'wp-whatsapp-chat'); ?></small></p>
|
357 |
-
</td> -->
|
358 |
-
<td>
|
359 |
-
<b><label for="timezone"><?php esc_html_e('Timezone', 'wp-whatsapp-chat'); ?></label></b></td>
|
360 |
-
<td class="qlwapp-premium-field">
|
361 |
-
<select id="ctimezone" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[contacts][' . $id . '][timezone]'); ?>" aria-describedby="timezone-description">
|
362 |
-
<?php echo wp_timezone_choice(get_option('timezone_string'), get_user_locale()); ?>
|
363 |
-
</select>
|
364 |
-
<p class="description hidden"><small><?php esc_html_e('This is a premium feature', 'wp-whatsapp-chat'); ?></small></p>
|
365 |
-
|
366 |
-
</td>
|
367 |
-
</tr>
|
368 |
-
</table>
|
369 |
-
</td>
|
370 |
-
</tr>
|
371 |
-
<tr>
|
372 |
-
<td><b><?php esc_html_e('Chat', 'wp-whatsapp-chat'); ?></b></td>
|
373 |
-
<td class="qlwapp-premium-field">
|
374 |
-
<p>
|
375 |
-
<label><input type="radio" class="cchat" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[contacts][' . $id . '][chat]'); ?>" value="1" <?php echo checked(true, (bool) $qlwapp['contacts'][$id]['chat']); ?>/><?php esc_html_e('Enabled', 'wp-whatsapp-chat'); ?></label>
|
376 |
-
<label><input type="radio" class="cchat" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[contacts][' . $id . '][chat]'); ?>" value="0" <?php echo checked(false, (bool) $qlwapp['contacts'][$id]['chat']); ?>/><?php esc_html_e('Disabled', 'wp-whatsapp-chat'); ?></label>
|
377 |
-
</p>
|
378 |
-
<p class="description hidden"><small><?php esc_html_e('This is a premium feature', 'wp-whatsapp-chat'); ?></small></p>
|
379 |
-
|
380 |
-
</td>
|
381 |
-
</tr>
|
382 |
-
<tr>
|
383 |
-
<td colspan="2"><b><?php esc_html_e('Message', 'wp-whatsapp-chat'); ?></b></td>
|
384 |
-
</tr>
|
385 |
-
<tr class="qlwapp-premium-field">
|
386 |
-
<td colspan="2"><?php wp_editor($qlwapp['contacts'][$id]['message'], 'cmessage', array('tinymce' => false, 'editor_height' => 150, 'textarea_name' => esc_attr(QLWAPP_DOMAIN . '[contacts][' . $id . '][message]'))); ?></td>
|
387 |
-
<p class="description hidden"><small><?php esc_html_e('This is a premium feature', 'wp-whatsapp-chat'); ?></small></p>
|
388 |
-
</tr>
|
389 |
-
<?php
|
390 |
}
|
391 |
-
|
392 |
-
|
393 |
-
?>
|
394 |
-
<script type="text/html" id='tmpl-qlwapp-modal-backdrop'>
|
395 |
-
<div class="media-modal-backdrop"> </div>
|
396 |
-
</script>
|
397 |
-
<script type="text/html" id='tmpl-qlwapp-modal-window'>
|
398 |
-
<div id="qlwapp_modal" class="media-modal wp-core-ui">
|
399 |
-
<button type="button" class="media-modal-close close">
|
400 |
-
<span class="media-modal-icon">
|
401 |
-
<span class="screen-reader-text"><?php esc_html_e('Close media panel'); ?></span>
|
402 |
-
</span>
|
403 |
-
</button>
|
404 |
-
<div class="media-frame mode-select wp-core-ui hide-menu">
|
405 |
-
<div class="media-frame-title">
|
406 |
-
<h1><?php echo esc_html(QLWAPP_PLUGIN_NAME); ?><span class="dashicons dashicons-arrow-down"></span></h1>
|
407 |
-
</div>
|
408 |
-
<div class="media-frame-router">
|
409 |
-
<div class="media-router">
|
410 |
-
<a href="#" class="media-menu-item active"><?php esc_html_e('Select icon', 'wp-whatsapp-chat'); ?></a>
|
411 |
-
</div>
|
412 |
-
</div>
|
413 |
-
<div class="media-modal-content">
|
414 |
-
<div class="media-frame mode-select wp-core-ui">
|
415 |
-
<div class="media-frame-menu">
|
416 |
-
<div class="media-menu">
|
417 |
-
<a href="#" class="media-menu-item active"><?php esc_html_e('Featured Image'); ?></a>
|
418 |
-
</div>
|
419 |
-
</div>
|
420 |
-
<div class="media-frame-content" data-columns="10">
|
421 |
-
<div class="attachments-browser">
|
422 |
-
<input type="hidden" id="qlwapp_icon" value="{{ data.icon }}">
|
423 |
-
<ul tabindex="-1" class="attachments">
|
424 |
-
<?php foreach (explode(',', 'qlwf-chat,qlwf-chat1,qlwf-chat2,qlwf-comments,qlwf-chat3,qlwf-bubble1,qlwf-chat-alt-fill,qlwf-chat-alt-stroke,qlwf-comment-alt2-fill,qlwf-comment-alt2-stroke,qlwf-comment-fill,qlwf-comment-stroke,qlwf-comment,qlwf-comment-alt1-stroke,qlwf-chat4,qlwf-comments1,qlwf-chat5,qlwf-comment1,qlwf-bubble,qlwf-bubbles,qlwf-bubbles2,qlwf-bubble2,qlwf-bubbles3,qlwf-bubbles4,qlwf-whatsapp,qlwf-chat6,qlwf-mode_comment,qlwf-insert_comment,qlwf-chat_bubble_outline,qlwf-chat_bubble,qlwf-bubble_chart,qlwf-comment2,qlwf-chat7,qlwf-commenting-o,qlwf-commenting,qlwf-comments-o,qlwf-comment-o,qlwf-wechat,qlwf-comments2,qlwf-comment3,qlwf-chat8,qlwf-chat-bubble-dots,qlwf-bubbles1,qlwf-bubble3') as $id => $icon) : ?>
|
425 |
-
<li tabindex="0" role="checkbox" aria-label="<?php echo esc_attr($icon); ?>" aria-checked="false" data-id="<?php echo esc_attr($id); ?>" class="attachment save-ready icon _<?php echo esc_attr(str_replace(' ', '_', trim($icon))); ?>">
|
426 |
-
<div class="attachment-preview js--select-attachment type-image subtype-jpeg landscape">
|
427 |
-
<div class="thumbnail">
|
428 |
-
<i class="<?php echo esc_attr($icon); ?>"></i>
|
429 |
-
</div>
|
430 |
-
</div>
|
431 |
-
<button type="button" class="check" tabindex="-1">
|
432 |
-
<span class="media-modal-icon"></span>
|
433 |
-
<span class="screen-reader-text"><?php esc_html_e('Deselect'); ?></span>
|
434 |
-
</button>
|
435 |
-
</li>
|
436 |
-
<?php endforeach; ?>
|
437 |
-
</ul>
|
438 |
-
</div>
|
439 |
-
</div>
|
440 |
-
<div class="media-frame-toolbar">
|
441 |
-
<div class="media-toolbar">
|
442 |
-
<div class="media-toolbar-secondary"></div>
|
443 |
-
<div class="media-toolbar-primary search-form">
|
444 |
-
<button type="button" class="button media-button button-large button-primary media-button-select save"><?php esc_html_e('Save'); ?></button>
|
445 |
-
<button type="button" class="button media-button button-large button-secondary remove"><?php esc_html_e('Remove'); ?></button>
|
446 |
-
</div>
|
447 |
-
</div>
|
448 |
-
</div>
|
449 |
-
</div>
|
450 |
-
</div>
|
451 |
-
</div>
|
452 |
-
</div>
|
453 |
-
</script>
|
454 |
-
<?php
|
455 |
}
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
unset($qlwapp['display']);
|
463 |
}
|
464 |
-
|
465 |
-
if (
|
466 |
-
|
467 |
}
|
|
|
468 |
|
469 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
470 |
}
|
471 |
|
472 |
-
|
473 |
-
|
474 |
-
<style>
|
475 |
-
@font-face {
|
476 |
-
font-family: 'qlwf-whatsapp';
|
477 |
-
src: url(data:application/x-font-woff;charset=utf-8;base64,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) format('woff');
|
478 |
-
font-weight: normal;
|
479 |
-
font-style: normal;
|
480 |
-
}
|
481 |
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
</style>
|
486 |
-
<?php
|
487 |
}
|
488 |
-
|
489 |
-
|
490 |
-
if (isset($_GET['page']) && strpos($_GET['page'], QLWAPP_DOMAIN) !== false) {
|
491 |
-
wp_register_style('qlwapp-select2', plugins_url('/assets/css/qlwapp-select2' . QLWAPP::is_min() . '.css', QLWAPP_PLUGIN_FILE), array('wp-color-picker'), QLWAPP_PLUGIN_VERSION, 'all');
|
492 |
-
|
493 |
-
wp_enqueue_style('qlwapp-admin', plugins_url('/assets/css/qlwapp-admin' . QLWAPP::is_min() . '.css', QLWAPP_PLUGIN_FILE), array('wp-color-picker', 'qlwapp-select2'), QLWAPP_PLUGIN_VERSION, 'all');
|
494 |
-
|
495 |
-
wp_enqueue_media();
|
496 |
-
wp_register_script('qlwapp-modal', plugins_url('/assets/js/qlwapp-modal' . QLWAPP::is_min() . '.js', QLWAPP_PLUGIN_FILE), array('jquery', 'backbone'), QLWAPP_PLUGIN_VERSION, true);
|
497 |
-
wp_register_script('qlwapp-select2', plugins_url('/assets/js/select2.min.js', QLWAPP_PLUGIN_FILE), array('jquery'), QLWAPP_PLUGIN_VERSION);
|
498 |
-
wp_enqueue_script('qlwapp-admin', plugins_url('/assets/js/qlwapp-admin' . QLWAPP::is_min() . '.js', QLWAPP_PLUGIN_FILE), array('jquery', 'qlwapp-modal', 'qlwapp-select2', 'wp-color-picker'), QLWAPP_PLUGIN_VERSION, true);
|
499 |
-
|
500 |
-
wp_localize_script('qlwapp-admin', 'qlwapp', array('nonce' => array(
|
501 |
-
'qlwapp_get_posts' => wp_create_nonce('qlwapp_get_posts'),
|
502 |
-
'qlwapp_get_contact' => wp_create_nonce('qlwapp_get_contact'),
|
503 |
-
'qlwapp_edit_contact' => wp_create_nonce('qlwapp_edit_contact'),
|
504 |
-
'qlwapp_add_contact' => wp_create_nonce('qlwapp_add_contact'),
|
505 |
-
'qlwapp_save_contact' => wp_create_nonce('qlwapp_save_contact')
|
506 |
-
))
|
507 |
-
);
|
508 |
-
}
|
509 |
}
|
510 |
-
|
511 |
-
|
512 |
-
add_action('wp_ajax_qlwapp_get_posts', array($this, 'ajax_get_posts'));
|
513 |
-
add_action('admin_enqueue_scripts', array($this, 'add_js'));
|
514 |
-
add_action('admin_head', array($this, 'add_css'));
|
515 |
-
add_action('admin_menu', array($this, 'add_menu'));
|
516 |
-
add_action('admin_init', array($this, 'add_settings_register'));
|
517 |
-
add_action('print_media_templates', array($this, 'add_print_media_templates'));
|
518 |
-
add_filter('pre_update_option_' . sanitize_key(QLWAPP_DOMAIN), array($this, 'filter_pre_update_option'), -1, 3);
|
519 |
-
add_filter('plugin_action_links_' . plugin_basename(QLWAPP_PLUGIN_FILE), array($this, 'add_action_links'));
|
520 |
-
|
521 |
-
////
|
522 |
-
add_action('wp_ajax_qlwapp_add_contact', array($this, 'ajax_add_contact'));
|
523 |
-
add_action('wp_ajax_qlwapp_edit_contact', array($this, 'ajax_edit_contact'));
|
524 |
-
add_action('wp_ajax_qlwapp_save_contact', array($this, 'ajax_save_contact'));
|
525 |
-
|
526 |
-
//
|
527 |
-
add_action('admin_init', array($this, 'add_redirect'));
|
528 |
-
add_filter('network_admin_url', array($this, 'network_admin_url'), 10, 2);
|
529 |
}
|
530 |
-
|
531 |
-
|
532 |
-
function ajax_edit_contact() {
|
533 |
-
global $qlwapp;
|
534 |
-
|
535 |
-
if (check_ajax_referer('qlwapp_edit_contact', 'nonce', false)) {
|
536 |
-
// set -1 if the contact not exist beacouse allways exist contact 0
|
537 |
-
$contact_id = (isset($_REQUEST['contact_id'])) ? absint($_REQUEST['contact_id']) : -1;
|
538 |
-
if (isset($qlwapp['contacts'][$contact_id])) {
|
539 |
-
$qlwapp['contacts'][$contact_id]['id'] = $contact_id;
|
540 |
-
$qlwapp['contacts'][$contact_id]['prev_id'] = $contact_id - 1;
|
541 |
-
$qlwapp['contacts'][$contact_id]['next_id'] = min($contact_id + 1, count($qlwapp['contacts']) - 1);
|
542 |
-
|
543 |
-
wp_send_json_success($qlwapp['contacts'][$contact_id]);
|
544 |
-
}
|
545 |
-
} else {
|
546 |
-
$this->defaults()['contacts'][0]['id'] = $contact_id;
|
547 |
-
wp_send_json_success($this->defaults()['contacts'][0]);
|
548 |
-
}
|
549 |
}
|
|
|
|
|
550 |
|
551 |
-
|
552 |
-
|
553 |
-
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
-
|
560 |
-
|
561 |
-
|
562 |
-
|
563 |
-
|
564 |
-
|
565 |
-
|
566 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
567 |
}
|
568 |
-
|
569 |
-
wp_send_json_error(esc_html__('Undefined contact', 'qlwapp'));
|
570 |
}
|
571 |
}
|
572 |
}
|
|
|
573 |
|
574 |
-
|
575 |
-
|
576 |
-
|
|
|
|
|
|
|
577 |
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
|
582 |
-
self::$instance->init();
|
583 |
-
}
|
584 |
-
return self::$instance;
|
585 |
}
|
586 |
-
|
587 |
}
|
588 |
|
589 |
-
QLWAPP_Settings::instance();
|
590 |
}
|
|
|
|
|
|
1 |
<?php
|
|
|
|
|
2 |
|
3 |
+
include_once(QLWAPP_PLUGIN_DIR . 'includes/helpers.php');
|
4 |
|
5 |
+
class QLWAPP_Settings {
|
6 |
|
7 |
+
protected static $instance;
|
8 |
|
9 |
+
// fix required header in license tab
|
10 |
+
function settings_header() {
|
11 |
+
include (QLWAPP_PLUGIN_DIR . '/includes/view/backend/pages/parts/header.php');
|
12 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
|
14 |
+
// fix settings override with defaults on license save
|
15 |
+
function settings_sanitize($qlwapp) {
|
16 |
|
17 |
+
$current = get_option(QLWAPP_DOMAIN, array());
|
18 |
|
19 |
+
return wp_parse_args($qlwapp, $current);
|
20 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
|
22 |
+
// required to save license
|
23 |
+
function settings_register() {
|
24 |
+
register_setting(sanitize_key(QLWAPP_DOMAIN . '-group'), sanitize_key(QLWAPP_DOMAIN), array($this, 'settings_sanitize'));
|
25 |
+
}
|
26 |
|
27 |
+
function previous_author($qlwapp) {
|
28 |
+
//button
|
29 |
+
if ($phone = get_option('whatsapp_chat_page')) {
|
30 |
+
$qlwapp['button']['phone'] = $phone;
|
31 |
}
|
32 |
+
if ($text = get_option('whatsapp_chat_button')) {
|
33 |
+
$qlwapp['button']['text'] = $text;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
}
|
35 |
+
if (get_option('whatsapp_chat_powered_by')) {
|
36 |
+
$qlwapp['button']['developer'] = 'yes';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
}
|
38 |
+
if (false !== get_option('whatsapp_chat_round')) {
|
39 |
+
$qlwapp['button']['rounded'] = 'no';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
}
|
41 |
+
if (false !== get_option('whatsapp_chat_down')) {
|
42 |
+
$vposition = get_option('whatsapp_chat_down') ? 'bottom' : 'middle';
|
43 |
+
$hposition = get_option('whatsapp_chat_left_side') ? 'left' : 'right';
|
44 |
+
$qlwapp['button']['position'] = "{$vposition}-{$hposition}";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
}
|
46 |
+
if ($message = get_option('whatsapp_chat_msg')) {
|
47 |
+
$qlwapp['button']['message'] = $message;
|
|
|
48 |
}
|
49 |
+
// display
|
50 |
+
if ($mobile = get_option('whatsapp_chat_mobile')) {
|
51 |
+
$qlwapp['display']['devices'] = 'mobile';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
}
|
53 |
+
if (get_option('whatsapp_chat_hide_button')) {
|
54 |
+
$qlwapp['display']['devices'] = 'hide';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
}
|
56 |
+
if (get_option('whatsapp_chat_hide_post')) {
|
57 |
+
$qlwapp['display']['post'] = array('none');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
}
|
59 |
+
if (get_option('whatsapp_chat_hide_page')) {
|
60 |
+
$qlwapp['display']['page'] = array('none');
|
61 |
+
}
|
62 |
+
// No se usa mas
|
63 |
+
/* if (get_option('whatsapp_chat_hide_product')) {
|
64 |
+
$qlwapp['display']['product'] = array('none');
|
|
|
65 |
}
|
66 |
+
// No se usa mas
|
67 |
+
if (get_option('whatsapp_chat_hide_project')) {
|
68 |
+
$qlwapp['display']['project'] = array('none');
|
69 |
}
|
70 |
+
*/
|
71 |
|
72 |
+
//scheme
|
73 |
+
if (get_option('whatsapp_chat_dark')) {
|
74 |
+
$qlwapp['scheme']['brand'] = '#075E54';
|
75 |
+
$qlwapp['scheme']['text'] = '#ffffff';
|
76 |
+
} elseif (get_option('whatsapp_chat_white')) {
|
77 |
+
$qlwapp['scheme']['brand'] = '#ffffff';
|
78 |
+
$qlwapp['scheme']['text'] = '#075E54';
|
79 |
+
} elseif (false !== get_option('whatsapp_chat_white')) {
|
80 |
+
$qlwapp['scheme']['brand'] = '#20B038';
|
81 |
+
$qlwapp['scheme']['text'] = '#ffffff';
|
82 |
}
|
83 |
|
84 |
+
return $qlwapp;
|
85 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
86 |
|
87 |
+
function previous_versions($qlwapp) {
|
88 |
+
if (isset($qlwapp['chat']['response']) && !isset($qlwapp['box']['response'])) {
|
89 |
+
$qlwapp['box']['response'] = $qlwapp['chat']['response'];
|
|
|
|
|
90 |
}
|
91 |
+
if (isset($qlwapp['user']['message'])) {
|
92 |
+
$qlwapp['button']['message'] = $qlwapp['user']['message'];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
93 |
}
|
94 |
+
if (isset($qlwapp['button']['rounded']) && $qlwapp['button']['rounded'] == 1) {
|
95 |
+
$qlwapp['button']['rounded'] = 'yes';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
}
|
97 |
+
if (isset($qlwapp['button']['developer']) && $qlwapp['button']['developer'] == 1) {
|
98 |
+
$qlwapp['button']['developer'] = 'yes';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
99 |
}
|
100 |
+
return $qlwapp;
|
101 |
+
}
|
102 |
|
103 |
+
function premium_version() {
|
104 |
+
global $qlwapp;
|
105 |
+
//includes
|
106 |
+
include_once(QLWAPP_PLUGIN_DIR . 'includes/models/QLWAPP_Model.php');
|
107 |
+
include_once(QLWAPP_PLUGIN_DIR . 'includes/models/Button.php');
|
108 |
+
include_once(QLWAPP_PLUGIN_DIR . 'includes/models/Box.php');
|
109 |
+
include_once(QLWAPP_PLUGIN_DIR . 'includes/models/Contact.php');
|
110 |
+
include_once(QLWAPP_PLUGIN_DIR . 'includes/models/Chat.php');
|
111 |
+
include_once(QLWAPP_PLUGIN_DIR . 'includes/models/Display.php');
|
112 |
+
include_once(QLWAPP_PLUGIN_DIR . 'includes/models/License.php');
|
113 |
+
include_once(QLWAPP_PLUGIN_DIR . 'includes/models/Scheme.php');
|
114 |
+
// models
|
115 |
+
$model = new QLWAPP_Model();
|
116 |
+
$license_model = new QLWAPP_License();
|
117 |
+
$button_model = new QLWAPP_Button();
|
118 |
+
$box_model = new QLWAPP_Box();
|
119 |
+
$contact_model = new QLWAPP_Contact();
|
120 |
+
$chat_model = new QLWAPP_Chat();
|
121 |
+
$display_model = new QLWAPP_Display();
|
122 |
+
$scheme_model = new QLWAPP_Scheme();
|
123 |
+
|
124 |
+
// objects
|
125 |
+
$qlwapp = $model->options();
|
126 |
+
$qlwapp['button'] = $button_model->get();
|
127 |
+
$qlwapp['box'] = $box_model->get();
|
128 |
+
$qlwapp['contacts'] = $contact_model->get_contacts_reorder();
|
129 |
+
$qlwapp['chat'] = $chat_model->get();
|
130 |
+
$qlwapp['display'] = $display_model->get();
|
131 |
+
$qlwapp['license'] = $license_model->get();
|
132 |
+
$qlwapp['scheme'] = $scheme_model->get();
|
133 |
+
|
134 |
+
if (!is_admin()) {
|
135 |
+
if (isset($qlwapp['button']['phone'])) {
|
136 |
+
$qlwapp['button']['phone'] = qlwapp_format_phone($qlwapp['button']['phone']);
|
137 |
+
}
|
138 |
+
if (isset($qlwapp['button']['timezone'])) {
|
139 |
+
$qlwapp['button']['timezone'] = qlwapp_get_timezone_offset($qlwapp['button']['timezone']);
|
140 |
+
}
|
141 |
+
}
|
142 |
+
|
143 |
+
if (isset($qlwapp['contacts'])) {
|
144 |
+
if (count($qlwapp['contacts'])) {
|
145 |
+
foreach ($qlwapp['contacts'] as $id => $c) {
|
146 |
+
$qlwapp['contacts'][$id] = wp_parse_args($c, $contact_model->get_args());
|
147 |
+
|
148 |
+
if (!is_admin()) {
|
149 |
+
if (!empty($qlwapp['contacts'][$id]['phone'])) {
|
150 |
+
$qlwapp['contacts'][$id]['phone'] = qlwapp_format_phone($qlwapp['contacts'][$id]['phone']);
|
151 |
+
}
|
152 |
+
if (!empty($qlwapp['contacts'][$id]['timezone'])) {
|
153 |
+
$qlwapp['contacts'][$id]['timezone'] = qlwapp_get_timezone_offset($qlwapp['contacts'][$id]['timezone']);
|
154 |
+
}
|
155 |
}
|
|
|
|
|
156 |
}
|
157 |
}
|
158 |
}
|
159 |
+
}
|
160 |
|
161 |
+
function init() {
|
162 |
+
add_filter('init', array($this, 'premium_version'));
|
163 |
+
add_action('admin_init', array($this, 'settings_register'));
|
164 |
+
add_filter('option_qlwapp', array($this, 'previous_versions'));
|
165 |
+
add_filter('default_option_qlwapp', array($this, 'previous_author'), 20);
|
166 |
+
}
|
167 |
|
168 |
+
public static function instance() {
|
169 |
+
if (!isset(self::$instance)) {
|
170 |
+
self::$instance = new self();
|
171 |
+
self::$instance->init();
|
|
|
|
|
|
|
172 |
}
|
173 |
+
return self::$instance;
|
174 |
}
|
175 |
|
|
|
176 |
}
|
177 |
+
|
178 |
+
QLWAPP_Settings::instance();
|
179 |
+
|
includes/view/backend/pages/box.php
ADDED
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="wrap about-wrap full-width-layout qlwrap">
|
2 |
+
<form id="qlwapp_box_form" method="post" action="options.php">
|
3 |
+
<table class="form-table">
|
4 |
+
<tbody>
|
5 |
+
<tr>
|
6 |
+
<th scope="row"><?php esc_html_e('Disable', 'wp-whatsapp-chat'); ?></th>
|
7 |
+
<td>
|
8 |
+
<select name="enable" class="qlwapp-select2">
|
9 |
+
<option value="yes" <?php selected($box['enable'], 'yes'); ?>><?php esc_html_e('Enable contact box', 'wp-whatsapp-chat'); ?></option>
|
10 |
+
<option value="no" <?php selected($box['enable'], 'no'); ?>><?php esc_html_e('Disable contact box', 'wp-whatsapp-chat'); ?></option>
|
11 |
+
</select>
|
12 |
+
</td>
|
13 |
+
</tr>
|
14 |
+
<tr>
|
15 |
+
<th scope="row"><?php esc_html_e('Header', 'wp-whatsapp-chat'); ?></th>
|
16 |
+
<td>
|
17 |
+
<?php wp_editor($box['header'], 'qlwapp_box_header', array('editor_height' => 100, 'textarea_name' => 'header', 'tinymce' => array('init_instance_callback' => 'function(editor) { editor.on("change", function(){ $(".button-primary").attr("disabled", false);}); }'))); ?>
|
18 |
+
</td>
|
19 |
+
</tr>
|
20 |
+
<tr>
|
21 |
+
<th scope="row"><?php esc_html_e('Footer', 'wp-whatsapp-chat'); ?></th>
|
22 |
+
<td>
|
23 |
+
<?php //wp_editor($box['footer'], 'qlwapp_box_footer', array('editor_height' => 50, 'textarea_name' => 'footer')); ?>
|
24 |
+
<?php wp_editor($box['footer'], 'qlwapp_box_footer', array('editor_height' => 50, 'textarea_name' => 'footer', 'tinymce' => array('init_instance_callback' => 'function(editor) { editor.on("change", function(){ $(".button-primary").attr("disabled", false);}); }'))); ?>
|
25 |
+
</td>
|
26 |
+
</tr>
|
27 |
+
<tr>
|
28 |
+
<th scope="row"><?php esc_html_e('Response', 'wp-whatsapp-chat'); ?></th>
|
29 |
+
<td>
|
30 |
+
<input type="text" name="response" placeholder="<?php echo esc_html($box['response']); ?>" value="<?php echo esc_attr($box['response']); ?>" class="qlwapp-input"/>
|
31 |
+
<p class="description hidden"><?php esc_html_e('Write a response text.', 'wp-whatsapp-chat'); ?></p>
|
32 |
+
</td>
|
33 |
+
</tr>
|
34 |
+
|
35 |
+
</tbody>
|
36 |
+
</table>
|
37 |
+
<?php wp_nonce_field('qlwapp_save_box', 'qlwapp_box_form_nonce'); ?>
|
38 |
+
<p class="submit">
|
39 |
+
<?php submit_button(esc_html__('Save', 'wp-whatsapp-chat'), 'primary', 'submit', false); ?>
|
40 |
+
<span class="settings-save-status">
|
41 |
+
<span class="saved"><?php esc_html_e('Saved successfully!'); ?></span>
|
42 |
+
<span class="spinner" style="float: none"></span>
|
43 |
+
</span>
|
44 |
+
</p>
|
45 |
+
</form>
|
46 |
+
</div>
|
includes/view/backend/pages/button.php
ADDED
@@ -0,0 +1,121 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="wrap about-wrap full-width-layout qlwrap">
|
2 |
+
<form id="qlwapp_button_form" method="post" action="options.php" >
|
3 |
+
<table class="form-table">
|
4 |
+
<tbody>
|
5 |
+
<tr>
|
6 |
+
<th scope="row"><?php esc_html_e('Layout', 'wp-whatsapp-chat'); ?></th>
|
7 |
+
<td>
|
8 |
+
<select name="layout" class="qlwapp-select2">
|
9 |
+
<option value="button" <?php selected($button['layout'], 'button'); ?>><?php esc_html_e('Button', 'wp-whatsapp-chat'); ?></option>
|
10 |
+
<option value="bubble" <?php selected($button['layout'], 'bubble'); ?>><?php esc_html_e('Bubble', 'wp-whatsapp-chat'); ?></option>
|
11 |
+
</select>
|
12 |
+
<p class="description hidden"><?php esc_html_e('Switch to change the button layout.', 'wp-whatsapp-chat'); ?></p>
|
13 |
+
</td>
|
14 |
+
</tr>
|
15 |
+
<tr>
|
16 |
+
<th scope="row"><?php esc_html_e('Rounded', 'wp-whatsapp-chat'); ?></th>
|
17 |
+
<td>
|
18 |
+
<select name="rounded" class="qlwapp-select2">
|
19 |
+
<option value="yes" <?php selected($button['rounded'], 'yes'); ?>><?php esc_html_e('Add rounded border', 'wp-whatsapp-chat'); ?></option>
|
20 |
+
<option value="no" <?php selected($button['rounded'], 'no'); ?>><?php esc_html_e('Remove rounded border', 'wp-whatsapp-chat'); ?></option>
|
21 |
+
</select>
|
22 |
+
<p class="description hidden"><?php esc_html_e('Add rounded border to the button.', 'wp-whatsapp-chat'); ?></p>
|
23 |
+
</td>
|
24 |
+
</tr>
|
25 |
+
<tr>
|
26 |
+
<th scope="row"><?php esc_html_e('Position', 'wp-whatsapp-chat'); ?></th>
|
27 |
+
<td>
|
28 |
+
<select name="position" class="qlwapp-select2">
|
29 |
+
<option value="middle-left" <?php selected($button['position'], 'middle-left'); ?>><?php esc_html_e('Middle Left', 'wp-whatsapp-chat'); ?></option>
|
30 |
+
<option value="middle-right" <?php selected($button['position'], 'middle-right'); ?>><?php esc_html_e('Middle Right', 'wp-whatsapp-chat'); ?></option>
|
31 |
+
<option value="bottom-left" <?php selected($button['position'], 'bottom-left'); ?>><?php esc_html_e('Bottom Left', 'wp-whatsapp-chat'); ?></option>
|
32 |
+
<option value="bottom-right" <?php selected($button['position'], 'bottom-right'); ?>><?php esc_html_e('Bottom Right', 'wp-whatsapp-chat'); ?></option>
|
33 |
+
</select>
|
34 |
+
<p class="description hidden"><?php esc_html_e('Switch to change the button position.', 'wp-whatsapp-chat'); ?></p>
|
35 |
+
</td>
|
36 |
+
</tr>
|
37 |
+
<tr>
|
38 |
+
<th scope="row"><?php esc_html_e('Icon', 'wp-whatsapp-chat'); ?></th>
|
39 |
+
<td>
|
40 |
+
<div class="submit qlwapp-premium-field">
|
41 |
+
<?php submit_button(esc_html__('Add Icon', 'wp-whatsapp-chat'), 'secondary', null, false, array('id' => 'btn-add-icon')); ?>
|
42 |
+
<p class="description hidden"><small><?php esc_html_e('This is a premium feature', 'wp-whatsapp-chat'); ?></small></p>
|
43 |
+
</div>
|
44 |
+
<input type="text" name="icon" placeholder="<?php echo esc_html($button['icon']); ?>" value="<?php echo esc_attr($button['icon']); ?>" class="qlwapp-input"/>
|
45 |
+
</td>
|
46 |
+
</tr>
|
47 |
+
<!--<tr>
|
48 |
+
<th scope="row"><?php esc_html_e('Discreet link', 'wp-whatsapp-chat'); ?></th>
|
49 |
+
<td>
|
50 |
+
<select name="developer" class="qlwapp-select2">
|
51 |
+
<option value="yes" <?php selected($button['developer'], 'yes'); ?>><?php esc_html_e('Show developer link', 'wp-whatsapp-chat'); ?></option>
|
52 |
+
<option value="no" <?php selected($button['developer'], 'no'); ?>><?php esc_html_e('Hide developer link', 'wp-whatsapp-chat'); ?></option>
|
53 |
+
</select>
|
54 |
+
<p class="description hidden"><?php esc_html_e('Leave a discrete link to developer to help and keep new updates and support.', 'wp-whatsapp-chat'); ?></p>
|
55 |
+
</td>
|
56 |
+
</tr>-->
|
57 |
+
<tr>
|
58 |
+
<th scope="row"><?php esc_html_e('Text', 'wp-whatsapp-chat'); ?></th>
|
59 |
+
<td>
|
60 |
+
<input type="text" name="text" placeholder="<?php echo esc_html($button['text']); ?>" value="<?php echo esc_attr($button['text']); ?>" class="qlwapp-input"/>
|
61 |
+
<p class="description hidden"><?php esc_html_e('Customize your text.', 'wp-whatsapp-chat'); ?></p>
|
62 |
+
</td>
|
63 |
+
</tr>
|
64 |
+
<tr>
|
65 |
+
<th scope="row"><?php esc_html_e('Phone', 'wp-whatsapp-chat'); ?></th>
|
66 |
+
<td>
|
67 |
+
<input type="text" name="phone" placeholder="" value="<?php echo esc_attr($button['phone']); ?>" class="qlwapp-input" required="required"/>
|
68 |
+
<p class="description hidden"><?php esc_html_e('Full phone number in international format.', 'wp-whatsapp-chat'); ?></p>
|
69 |
+
|
70 |
+
</td>
|
71 |
+
</tr>
|
72 |
+
<tr>
|
73 |
+
<th scope="row"><?php esc_html_e('Message', 'wp-whatsapp-chat'); ?></th>
|
74 |
+
<td>
|
75 |
+
<textarea maxlength="500" style="width:75%;height:50px;padding:8px;" name="message" placeholder="<?php echo esc_html($button['message']); ?>"><?php echo esc_html(trim($button['message'])); ?></textarea>
|
76 |
+
<p class="description hidden"><?php esc_html_e('Message that will automatically appear in the text field of a chat.', 'wp-whatsapp-chat'); ?></p>
|
77 |
+
</td>
|
78 |
+
</tr>
|
79 |
+
<tr>
|
80 |
+
<th scope="row"><?php esc_html_e('Schedule', 'wp-whatsapp-chat'); ?></th>
|
81 |
+
<td class="qlwapp-premium-field">
|
82 |
+
<b><?php esc_html_e('From', 'wp-whatsapp-chat'); ?></b>
|
83 |
+
<input type="time" name="timefrom" placeholder="<?php echo esc_html($button['timefrom']); ?>" value="<?php echo esc_html($button['timefrom']); ?>" />
|
84 |
+
<b><?php esc_html_e('To', 'wp-whatsapp-chat'); ?></b>
|
85 |
+
<input type="time" name="timeto" placeholder="<?php echo esc_html($button['timeto']); ?>" value="<?php echo esc_html($button['timeto']); ?>" />
|
86 |
+
<p class="description hidden"><small><?php esc_html_e('This is a premium feature', 'wp-whatsapp-chat'); ?></small></p>
|
87 |
+
</td>
|
88 |
+
</tr>
|
89 |
+
<tr>
|
90 |
+
<th scope="row"><?php esc_html_e('Timezone', 'wp-whatsapp-chat'); ?></th>
|
91 |
+
<td class="qlwapp-premium-field">
|
92 |
+
<select name="timezone" aria-describedby="timezone-description" required="" class="qlwapp-select2">
|
93 |
+
<?php echo wp_timezone_choice($button['timezone'], get_user_locale()); ?>
|
94 |
+
</select>
|
95 |
+
<p class="description"><small><?php esc_html_e('Hide button if the user is out of the available hours.', 'wp-whatsapp-chat'); ?></small></p>
|
96 |
+
<p class="description hidden"><small><?php esc_html_e('This is a premium feature', 'wp-whatsapp-chat'); ?></small></p>
|
97 |
+
</td>
|
98 |
+
</tr>
|
99 |
+
<!-- <tr>
|
100 |
+
<th scope="row"><?php // esc_html_e('Timeout', 'wp-whatsapp-chat'); ?></th>
|
101 |
+
<td class="qlwapp-premium-field">
|
102 |
+
<select name="timeout" class="qlwapp-select2">
|
103 |
+
<option value="yes" <?php // selected($button['timeout'], 'yes'); ?>><?php esc_html_e('Show the button as read only', 'wp-whatsapp-chat'); ?></option>
|
104 |
+
<option value="no" <?php // selected($button['timeout'], 'no'); ?>><?php esc_html_e('Do not show the button', 'wp-whatsapp-chat'); ?></option>
|
105 |
+
</select>
|
106 |
+
<p class="description hidden"><small><?php //esc_html_e('This is a premium feature', 'wp-whatsapp-chat'); ?></small></p>
|
107 |
+
</td>
|
108 |
+
</tr> -->
|
109 |
+
</tbody>
|
110 |
+
</table>
|
111 |
+
<?php wp_nonce_field('qlwapp_save_button', 'qlwapp_button_form_nonce'); ?>
|
112 |
+
<p class="submit">
|
113 |
+
<?php submit_button(esc_html__('Save', 'wp-whatsapp-chat'), 'primary', 'submit', false); ?>
|
114 |
+
<span class="settings-save-status">
|
115 |
+
<span class="saved"><?php esc_html_e('Saved successfully!'); ?></span>
|
116 |
+
<span class="spinner" style="float: none"></span>
|
117 |
+
</span>
|
118 |
+
</p>
|
119 |
+
</form>
|
120 |
+
</div>
|
121 |
+
<?php include_once('modals/icons-modal.php'); ?>
|
includes/view/backend/pages/contacts.php
ADDED
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="wrap about-wrap full-width-layout qlwrap">
|
2 |
+
<form id="qlwapp_contacts_form" method="post" >
|
3 |
+
<p class="submit qlwapp-premium-field">
|
4 |
+
<?php submit_button(esc_html__('+ Contact', 'wp-whatsapp-chat'), 'secondary', 'submit', false, array('id' => 'qlwapp_contact_add')); ?>
|
5 |
+
<?php submit_button(esc_html__('Save reorder', 'wp-whatsapp-chat'), 'primary', 'submit', false, array('id' => 'qlwapp_contact_order', 'disabled' => 'disabled')); ?>
|
6 |
+
<span class="settings-save-status">
|
7 |
+
<span class="spinner"></span>
|
8 |
+
<span class="saved"><?php esc_html_e('Saved successfully!'); ?></span>
|
9 |
+
</span>
|
10 |
+
</p>
|
11 |
+
<table id="qlwapp_contacts_table" class="form-table widefat striped">
|
12 |
+
<thead>
|
13 |
+
<tr>
|
14 |
+
<th style="text-align: center"><?php esc_html_e('Order', 'wp-whatsapp-chat'); ?></th>
|
15 |
+
<th><?php esc_html_e('Avatar', 'wp-whatsapp-chat'); ?></th>
|
16 |
+
<th><?php esc_html_e('Phone', 'wp-whatsapp-chat'); ?></th>
|
17 |
+
<th><?php esc_html_e('Name', 'wp-whatsapp-chat'); ?></th>
|
18 |
+
<th><?php esc_html_e('Label', 'wp-whatsapp-chat'); ?></th>
|
19 |
+
<th><?php esc_html_e('Chat', 'wp-whatsapp-chat'); ?></th>
|
20 |
+
<th><?php esc_html_e('Message', 'wp-whatsapp-chat'); ?></th>
|
21 |
+
<th><?php esc_html_e('Availability', 'wp-whatsapp-chat'); ?></th>
|
22 |
+
<th><?php esc_html_e('Timezone', 'wp-whatsapp-chat'); ?></th>
|
23 |
+
<th ><?php esc_html_e('Actions', 'wp-whatsapp-chat'); ?></th>
|
24 |
+
</tr>
|
25 |
+
</thead>
|
26 |
+
<tbody class="ui-sortable">
|
27 |
+
<?php if (count($contacts)): ?>
|
28 |
+
<?php
|
29 |
+
$position = 0;
|
30 |
+
foreach ($contacts as $id => $c) {
|
31 |
+
?>
|
32 |
+
<tr data-contact_id="<?php echo esc_attr($id) ?>" data-contact_order="<?php echo esc_attr($c['order']) ?>">
|
33 |
+
<td class="sort ui-sortable-handle">
|
34 |
+
<div class="wc-item-reorder-nav">
|
35 |
+
<button type="button" class="wc-move-up " tabindex="-1" aria-hidden="true" aria-label="<?php ///echo ///esc_attr(sprintf(__('Move the "%s" payment method up', 'woocommerce-checkout-manager'), $contact['label'])); ?>"><?php esc_html_e('Move up', 'wp-whatsapp-chat'); ?></button>
|
36 |
+
<button type="button" class="wc-move-down" tabindex="0" aria-hidden="false" aria-label="<?php ///echo esc_attr(sprintf(__('Move the "%s" payment method down', 'woocommerce-checkout-manager'), $field['label'])); ?>"><?php esc_html_e('Move down', 'wp-whatsapp-chat'); ?></button>
|
37 |
+
<input type="hidden" name="contact_order[]" value="<?php echo esc_attr($id); ?>">
|
38 |
+
</div>
|
39 |
+
</td>
|
40 |
+
<td>
|
41 |
+
<img class="qlwapp-avatar" src="<?php echo $c['avatar']; ?>" alt="" width="50" height="50" /> </td>
|
42 |
+
<td><?php echo esc_attr($c['phone']); ?></td>
|
43 |
+
<td><?php echo $c['firstname'] . ', ' . $c['lastname']; ?> </td>
|
44 |
+
<td><?php echo $c['label']; ?></td>
|
45 |
+
<td>
|
46 |
+
<?php
|
47 |
+
if ($c['chat'])
|
48 |
+
esc_html_e('active', 'wp-whatsapp-chat');
|
49 |
+
else
|
50 |
+
esc_html_e('inactive', 'wp-whatsapp-chat');
|
51 |
+
?>
|
52 |
+
</td>
|
53 |
+
<td><?php echo wp_trim_words(substr($c['message'], 0, 36), 3); ?></td>
|
54 |
+
<td><?php echo $c['timefrom']; ?> to <?php echo $c['timeto']; ?></td>
|
55 |
+
<td><?php echo $c['timezone']; ?></td>
|
56 |
+
<td>
|
57 |
+
<a class="qlwapp_settings_edit button" aria-label="<?php esc_html_e('Edit checkout field', 'wp-whatsapp-chat'); ?>" href="javascript:;"><?php esc_html_e('Edit'); ?></a>
|
58 |
+
<a class="qlwapp_settings_delete" aria-label="<?php esc_html_e('Edit checkout field', 'wp-whatsapp-chat'); ?>" href="javascript:;"><?php esc_html_e('Delete'); ?></a>
|
59 |
+
|
60 |
+
</td>
|
61 |
+
</tr>
|
62 |
+
<?php
|
63 |
+
}
|
64 |
+
?>
|
65 |
+
</tbody>
|
66 |
+
<?php endif; ?>
|
67 |
+
</table>
|
68 |
+
<?php wp_nonce_field('qlwapp_delete_contact', 'qlwapp_delete_contact_nonce'); ?>
|
69 |
+
</form>
|
70 |
+
<script type="text/html" id='tmpl-qlwapp-modal-window'>
|
71 |
+
<?php include_once('modals/contact-modal.php'); ?>
|
72 |
+
</script>
|
73 |
+
</div>
|
includes/view/backend/pages/display.php
ADDED
@@ -0,0 +1,133 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="wrap about-wrap full-width-layout qlwrap">
|
2 |
+
<form method="post" id="qlwapp_display_form">
|
3 |
+
<table class="form-table">
|
4 |
+
<tbody>
|
5 |
+
<tr>
|
6 |
+
<th scope="row"><?php esc_html_e('Devices', 'wp-whatsapp-chat'); ?></th>
|
7 |
+
<td>
|
8 |
+
<select name="devices" style="width:350px" data-placeholder="<?php echo esc_attr('Choose target…', 'wp-whatsapp-chat'); ?>" aria-label="<?php echo esc_attr('Posts', 'wp-whatsapp-chat'); ?>" class="qlwapp-select2">
|
9 |
+
<option value="all" <?php selected('all', $display['devices']); ?>><?php esc_html_e('Show in all devices', 'wp-whatsapp-chat'); ?></option>
|
10 |
+
<option value="mobile" <?php selected('mobile', $display['devices']); ?>><?php esc_html_e('Show in mobile devices', 'wp-whatsapp-chat'); ?></option>
|
11 |
+
<option value="desktop" <?php selected('desktop', $display['devices']); ?>><?php esc_html_e('Show in desktop devices', 'wp-whatsapp-chat'); ?></option>
|
12 |
+
<option value="hide" <?php selected('hide', $display['devices']); ?>><?php esc_html_e('Hide in all devices', 'wp-whatsapp-chat'); ?></option>
|
13 |
+
</select>
|
14 |
+
</td>
|
15 |
+
</tr>
|
16 |
+
<tr>
|
17 |
+
<th scope="row"><?php esc_html_e('Target', 'wp-whatsapp-chat'); ?></th>
|
18 |
+
<td>
|
19 |
+
<select multiple="multiple" name="target[]" style="width:350px" data-placeholder="<?php echo esc_attr('Choose target…', 'wp-whatsapp-chat'); ?>" aria-label="<?php echo esc_attr('Posts', 'wp-whatsapp-chat'); ?>" class="qlwapp-select2">
|
20 |
+
<option value="none" <?php echo selected(true, in_array('none', (array) $display['target'])); ?>><?php echo esc_html__('Exclude from all', 'wp-whatsapp-chat'); ?></option>
|
21 |
+
<option value="home" <?php echo selected(true, in_array('home', (array) $display['target'])); ?>><?php echo esc_html__('Home', 'wp-whatsapp-chat'); ?></option>
|
22 |
+
<option value="blog" <?php echo selected(true, in_array('blog', (array) $display['target'])); ?>><?php echo esc_html__('Blog', 'wp-whatsapp-chat'); ?></option>
|
23 |
+
<option value="search" <?php echo selected(true, in_array('search', (array) $display['target'])); ?>><?php echo esc_html__('Search', 'wp-whatsapp-chat'); ?></option>
|
24 |
+
<option value="error" <?php echo selected(true, in_array('error', (array) $display['target'])); ?>><?php echo esc_html('404'); ?></option>
|
25 |
+
</select>
|
26 |
+
<p class="description hidden"><?php esc_html_e('If you select an option all the other will be excluded', 'wp-whatsapp-chat'); ?></p>
|
27 |
+
</td>
|
28 |
+
</tr>
|
29 |
+
<?php
|
30 |
+
foreach (get_post_types(array('public' => true, 'show_in_nav_menus' => true), 'objects') as $type) {
|
31 |
+
if (!isset($display[$type->name])) {
|
32 |
+
$display[$type->name] = array();
|
33 |
+
}
|
34 |
+
|
35 |
+
if ($count = wp_count_posts($type->name)) {
|
36 |
+
?>
|
37 |
+
<tr class="qlwapp-premium-field">
|
38 |
+
<th scope="row"><?php esc_html_e(ucwords($type->label)); ?></th>
|
39 |
+
<td>
|
40 |
+
<!-- <select style="width:80px" class="qlwapp-select2">
|
41 |
+
<option value="include">Include</option>
|
42 |
+
<option value="include">Exclude</option>
|
43 |
+
</select>-->
|
44 |
+
<select id="qlwapp_select2_<?php echo esc_attr($type->name); ?>" multiple="multiple" name="<?php echo esc_attr($type->name . '[]'); ?>" style="width:350px" data-placeholder="<?php printf(esc_html__('Select for %s…', 'wp-whatsapp-chat'), $type->label); ?>" aria-label="<?php echo esc_attr($type->label); ?>" data-name="<?php echo esc_attr($type->name); ?>" class="qlwapp-select2-ajax">
|
45 |
+
<option value="none" <?php echo selected(true, in_array('none', (array) $display[$type->name])); ?>><?php echo esc_html__('Exclude from all', 'wp-whatsapp-chat'); ?></option>
|
46 |
+
<!--<option value="archive" <?php echo selected(true, in_array('archive', (array) $display[$type->name])); ?>><?php echo esc_html__('Archive', 'wp-whatsapp-chat'); ?></option>-->
|
47 |
+
<?php
|
48 |
+
// Print selected posts
|
49 |
+
// -------------------------------------------------------------
|
50 |
+
if (isset($display[$type->name]) && count($display[$type->name])) {
|
51 |
+
foreach ($display[$type->name] as $post_id) {
|
52 |
+
|
53 |
+
if (!$post = get_post($post_id)) {
|
54 |
+
//backward compatibility for $post->post_name
|
55 |
+
$post = get_page_by_path($post_id);
|
56 |
+
}
|
57 |
+
|
58 |
+
if (isset($post->ID)) {
|
59 |
+
?>
|
60 |
+
<option value="<?php echo esc_attr($post->ID); ?>" selected="selected"><?php echo esc_html(mb_substr($post->post_title, 0, 49)); ?></option>
|
61 |
+
<?php
|
62 |
+
}
|
63 |
+
}
|
64 |
+
}
|
65 |
+
// Print firsts 10 posts
|
66 |
+
// -------------------------------------------------------------
|
67 |
+
/* if ($count->publish < 11) {
|
68 |
+
$posts = get_posts(array(
|
69 |
+
'post_type' => $type->name,
|
70 |
+
'post_status' => 'publish',
|
71 |
+
'numberposts' => 10
|
72 |
+
));
|
73 |
+
foreach ($posts as $post) {
|
74 |
+
?>
|
75 |
+
<option value="<?php echo esc_attr($post->post_name); ?>" <?php echo selected(true, in_array($post->post_name, (array) $display[$type->name])); ?>><?php echo esc_html($post->post_title); ?></option>
|
76 |
+
<?php
|
77 |
+
}
|
78 |
+
} */
|
79 |
+
?>
|
80 |
+
</select>
|
81 |
+
<p class="description hidden"><small><?php esc_html_e('This is a premium feature', 'wp-whatsapp-chat'); ?></small></p>
|
82 |
+
</td>
|
83 |
+
</tr>
|
84 |
+
<?php
|
85 |
+
}
|
86 |
+
}
|
87 |
+
?>
|
88 |
+
<?php
|
89 |
+
foreach ($taxonomies = get_taxonomies(array('public' => true), 'objects') as $taxonomy) {
|
90 |
+
|
91 |
+
if (!isset($display[$taxonomy->name])) {
|
92 |
+
$display[$taxonomy->name] = array();
|
93 |
+
}
|
94 |
+
|
95 |
+
$terms = get_terms(array(
|
96 |
+
'taxonomy' => $taxonomy->name,
|
97 |
+
'hide_empty' => false,
|
98 |
+
));
|
99 |
+
|
100 |
+
if (count($terms)) {
|
101 |
+
?>
|
102 |
+
<tr>
|
103 |
+
<th scope="row"><?php esc_html_e(ucwords($taxonomy->label)); ?></th>
|
104 |
+
<td>
|
105 |
+
<select multiple="multiple" name="<?php echo esc_attr($taxonomy->name . '[]'); ?>" style="width:350px" data-placeholder="<?php echo esc_attr('Choose target…', 'wp-whatsapp-chat'); ?>" aria-label="<?php echo esc_attr($taxonomy->label); ?>" class="qlwapp-select2">
|
106 |
+
<option value="none" <?php echo selected(true, in_array('none', (array) $display[$taxonomy->name])); ?>><?php echo esc_html__('Exclude from all', 'wp-whatsapp-chat'); ?></option>
|
107 |
+
<?php
|
108 |
+
foreach ($terms as $term) {
|
109 |
+
//backward compatibility for $term->name
|
110 |
+
?>
|
111 |
+
<option value="<?php echo esc_attr($term->term_id); ?>" <?php echo selected(true, in_array($term->term_id, (array) $display[$taxonomy->name]) || in_array($term->name, (array) $display[$taxonomy->name])); ?>><?php echo esc_html($term->name); ?></option>
|
112 |
+
<?php
|
113 |
+
}
|
114 |
+
?>
|
115 |
+
</select>
|
116 |
+
</td>
|
117 |
+
</tr>
|
118 |
+
<?php
|
119 |
+
}
|
120 |
+
}
|
121 |
+
?>
|
122 |
+
</tbody>
|
123 |
+
</table>
|
124 |
+
<?php wp_nonce_field('qlwapp_save_display', 'qlwapp_display_form_nonce'); ?>
|
125 |
+
<p class="submit">
|
126 |
+
<?php submit_button(esc_html__('Save', 'wp-whatsapp-chat'), 'primary', 'submit', false); ?>
|
127 |
+
<span class="settings-save-status">
|
128 |
+
<span class="saved"><?php esc_html_e('Saved successfully!'); ?></span>
|
129 |
+
<span class="spinner"></span>
|
130 |
+
</span>
|
131 |
+
</p>
|
132 |
+
</form>
|
133 |
+
</div>
|
includes/view/backend/pages/modals/contact-modal.php
ADDED
@@ -0,0 +1,126 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="media-modal-backdrop"> </div>
|
2 |
+
<div tabindex="0" id="<?php echo esc_attr(QLWAPP_DOMAIN . '_modal'); ?>" class="media-modal wp-core-ui upload-php qlwapp-modal-contact" role="dialog" aria-modal="true" aria-labelledby="media-frame-title">
|
3 |
+
<div class="media-modal-content" role="document">
|
4 |
+
<form class="media-modal-form" method="POST" data-contact_id="{{data.id}}">
|
5 |
+
<# if ( data.id != undefined ) { #>
|
6 |
+
<input type="hidden" name="id" value="{{data.id}}" />
|
7 |
+
<input type="hidden" name="order" value="{{data.order}}" />
|
8 |
+
<# } #>
|
9 |
+
<div class="edit-attachment-frame mode-select hide-menu hide-router">
|
10 |
+
<div class="edit-media-header ">
|
11 |
+
<# if (data.id != undefined ) { #>
|
12 |
+
<button type="button" class="media-modal-prev left dashicons <# if ( data.order == 1 ) { #>disabled<# } #>"><span class="screen-reader-text"><?php esc_html_e('Edit previous media item'); ?></span></button>
|
13 |
+
<button type="button" class="media-modal-next right dashicons <# if ( data.order == <?php echo esc_attr(count($contacts)); ?> ) { #>disabled<# } #>"><span class="screen-reader-text"><?php esc_html_e('Edit next media item'); ?></span></button>
|
14 |
+
<# } #>
|
15 |
+
<button type="button" class="media-modal-close"><span class="media-modal-icon"><span class="screen-reader-text"><?php esc_html_e('Close dialog'); ?></span></span></button>
|
16 |
+
</div>
|
17 |
+
<div class="media-frame-title">
|
18 |
+
<h1><?php esc_html_e('Edit contact', 'wp-whatsapp-chat'); ?> #<# if ( data.id != undefined ) { #>{{data.id}}<# } else { #><?php echo esc_html_e('new', 'wp-whatsapp-chat'); ?><# } #></h1>
|
19 |
+
</div>
|
20 |
+
<div class="media-frame-content" style="bottom:61px;">
|
21 |
+
<div class="attachment-details">
|
22 |
+
<div class="attachment-media-view landscape" style="overflow: hidden;">
|
23 |
+
<table class="widefat">
|
24 |
+
<tr>
|
25 |
+
<th><?php esc_html_e('Firstname', 'wp-whatsapp-chat'); ?></th>
|
26 |
+
<td><input type="text" id="cfirstname" name="firstname" placeholder="<?php echo esc_html($contact_args['firstname']); ?>" value="{{data.firstname}}" /></td>
|
27 |
+
<th><?php esc_html_e('Lastname', 'wp-whatsapp-chat'); ?></th>
|
28 |
+
<td><input type="text" id="clastname" name="lastname" placeholder="<?php echo esc_html($contact_args['lastname']); ?>" value="{{data.lastname}}" /></td>
|
29 |
+
</tr>
|
30 |
+
<tr>
|
31 |
+
<th><?php esc_html_e('Phone', 'wp-whatsapp-chat'); ?></td><td><input type="text" id="cphone" name="phone" placeholder="<?php echo esc_html($contact_args['phone']); ?>" value="{{data.phone}}" required="required" pattern="\d[0-9]{6,15}$"/></th>
|
32 |
+
<td><?php esc_html_e('Label', 'wp-whatsapp-chat'); ?></td><td><input type="text" id="clabel" name="label" placeholder="<?php echo esc_html($contact_args['label']); ?>" value="{{data.label}}" /></td>
|
33 |
+
</tr>
|
34 |
+
</table>
|
35 |
+
<table class="widefat">
|
36 |
+
<tr>
|
37 |
+
<th><?php esc_html_e('From', 'wp-whatsapp-chat'); ?></th>
|
38 |
+
<td class="qlwapp-premium-field">
|
39 |
+
<input type="time" name="timefrom" placeholder="<?php echo esc_html($contact_args['timefrom']); ?>" value="{{data.timefrom}}" />
|
40 |
+
<?php esc_html_e('To', 'wp-whatsapp-chat'); ?>
|
41 |
+
<input type="time" name="timeto" placeholder="<?php echo esc_html($contact_args['timeto']); ?>" value="{{data.timeto}}" />
|
42 |
+
</td>
|
43 |
+
<!-- <td><?php esc_html_e('Time is over', 'wp-whatsapp-chat'); ?></td>
|
44 |
+
<td class="qlwapp-premium-field">
|
45 |
+
<select id="ctimeout" name="<?php echo esc_attr(QLWAPP_DOMAIN . '[contacts][' . $id . '][timeout]'); ?>">
|
46 |
+
<option value="readonly" ><?php esc_html_e('Show the field as read only', 'wp-whatsapp-chat'); ?></option>
|
47 |
+
<option value="disabled" > <?php esc_html_e('Do not show the field', 'wp-whatsapp-chat'); ?></option>
|
48 |
+
</select>
|
49 |
+
<p class="description hidden"><small><?php esc_html_e('This is a premium feature', 'wp-whatsapp-chat'); ?></small></p>
|
50 |
+
</td> -->
|
51 |
+
<th><?php esc_html_e('Timezone', 'wp-whatsapp-chat'); ?></th>
|
52 |
+
<td class="qlwapp-premium-field">
|
53 |
+
<select name="timezone" aria-describedby="timezone-description">
|
54 |
+
<?php echo preg_replace('/(.*)value="([^"]*)"(.*)/', '$1value="$2"<# if ( data.timezone == "$2" ) { #> selected="selected"<# } #> $3', wp_timezone_choice('__return_null')); ?>
|
55 |
+
</select>
|
56 |
+
</td>
|
57 |
+
</tr>
|
58 |
+
</table>
|
59 |
+
<table class="widefat">
|
60 |
+
<tr>
|
61 |
+
<th><?php esc_html_e('Chat', 'wp-whatsapp-chat'); ?></th>
|
62 |
+
<td class="qlwapp-premium-field">
|
63 |
+
<p>
|
64 |
+
<label><input type="radio" class="media-modal-change" name="chat" value="1" <# if(data.chat) {#> checked <#}#> /><?php esc_html_e('Enabled', 'wp-whatsapp-chat'); ?></label>
|
65 |
+
<label><input type="radio" class="media-modal-change" name="chat" value="0" <# if(data.chat == false) {#> checked <#}#> /><?php esc_html_e('Disabled', 'wp-whatsapp-chat'); ?></label>
|
66 |
+
</p>
|
67 |
+
<p class="description hidden"><small><?php esc_html_e('This is a premium feature', 'wp-whatsapp-chat'); ?></small></p>
|
68 |
+
</td>
|
69 |
+
</tr>
|
70 |
+
<tr class="qlwapp-premium-field">
|
71 |
+
<th><?php esc_html_e('Message', 'wp-whatsapp-chat'); ?></th>
|
72 |
+
<td colspan="2">
|
73 |
+
<textarea style="width:100%" name="message" <# if(data.chat == false) { #>readonly="readonly"<# } #>>{{ _.escapeHtml(data.message)}}</textarea>
|
74 |
+
</td>
|
75 |
+
<p class="description hidden"><small><?php esc_html_e('This is a premium feature', 'wp-whatsapp-chat'); ?></small></p>
|
76 |
+
</tr>
|
77 |
+
</table>
|
78 |
+
</div>
|
79 |
+
|
80 |
+
<div class="attachment-info">
|
81 |
+
|
82 |
+
<span class="settings-save-status">
|
83 |
+
<span class="spinner"></span>
|
84 |
+
<span class="saved"><?php esc_html_e('Saved.'); ?></span>
|
85 |
+
</span>
|
86 |
+
|
87 |
+
<div class="details">
|
88 |
+
<div class="filename"><strong><?php esc_html_e('Contact id', 'wp-whatsapp-chat'); ?>:</strong> {{data.id}}</div>
|
89 |
+
</div>
|
90 |
+
|
91 |
+
<div class="settings">
|
92 |
+
<div class="upload">
|
93 |
+
<img id="cavatar-img" class="qlwapp-avatar" data-src="{{data.avatar}}" src="{{data.avatar}}" width="150" height="150"/>
|
94 |
+
<div>
|
95 |
+
<input type="hidden" name="avatar" id="cavatar" value="{{data.avatar}}" />
|
96 |
+
<button type="button" class="upload_image_button button"><?php esc_html_e('Upload', 'wp-whatsapp-chat'); ?></button>
|
97 |
+
<button type="button" class="remove_image_button button">×</button>
|
98 |
+
</div>
|
99 |
+
</div>
|
100 |
+
</div>
|
101 |
+
|
102 |
+
<div class="actions">
|
103 |
+
<a target="_blank" href="<?php echo QLWAPP_PURCHASE_URL; ?>"><?php esc_html_e('Premium', 'wp-whatsapp-chat'); ?></a> |
|
104 |
+
<a target="_blank" href="<?php echo QLWAPP_DOCUMENTATION_URL; ?>"><?php esc_html_e('Documentation', 'wp-whatsapp-chat'); ?></a>
|
105 |
+
</div>
|
106 |
+
|
107 |
+
</div>
|
108 |
+
</div>
|
109 |
+
</div>
|
110 |
+
<div class="media-frame-toolbar" style="left:0;">
|
111 |
+
<div class="media-toolbar">
|
112 |
+
<div class="media-toolbar-secondary"></div>
|
113 |
+
<div class="media-toolbar-primary search-form">
|
114 |
+
<button type="submit" class="media-modal-submit button button-primary media-button button-large" disabled="disabled"><?php esc_html_e('Save'); ?></button>
|
115 |
+
<button type="button" class="media-modal-close button button-secondary media-button button-large" style="
|
116 |
+
float: none;
|
117 |
+
position: inherit;
|
118 |
+
padding: inherit;
|
119 |
+
"><?php esc_html_e('Close'); ?></button>
|
120 |
+
</div>
|
121 |
+
</div>
|
122 |
+
</div>
|
123 |
+
</div>
|
124 |
+
</form>
|
125 |
+
</div>
|
126 |
+
</div>
|
includes/view/backend/pages/modals/icons-modal.php
ADDED
@@ -0,0 +1,60 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<script type="text/html" id='tmpl-qlwapp-modal-backdrop'>
|
2 |
+
<div class="media-modal-backdrop"> </div>
|
3 |
+
</script>
|
4 |
+
<script type="text/html" id='tmpl-qlwapp-modal-window'>
|
5 |
+
<div id="qlwapp_modal" class="media-modal wp-core-ui">
|
6 |
+
<button type="button" class="media-modal-close close">
|
7 |
+
<span class="media-modal-icon">
|
8 |
+
<span class="screen-reader-text"><?php esc_html_e('Close media panel'); ?></span>
|
9 |
+
</span>
|
10 |
+
</button>
|
11 |
+
<div class="media-frame mode-select wp-core-ui hide-menu">
|
12 |
+
<div class="media-frame-title">
|
13 |
+
<h1><?php echo esc_html(QLWAPP_PLUGIN_NAME); ?><span class="dashicons dashicons-arrow-down"></span></h1>
|
14 |
+
</div>
|
15 |
+
<div class="media-frame-router">
|
16 |
+
<div class="media-router">
|
17 |
+
<a href="#" class="media-menu-item active"><?php esc_html_e('Select icon', 'wp-whatsapp-chat'); ?></a>
|
18 |
+
</div>
|
19 |
+
</div>
|
20 |
+
<div class="media-modal-content">
|
21 |
+
<div class="media-frame mode-select wp-core-ui">
|
22 |
+
<div class="media-frame-menu">
|
23 |
+
<div class="media-menu">
|
24 |
+
<a href="#" class="media-menu-item active"><?php esc_html_e('Featured Image'); ?></a>
|
25 |
+
</div>
|
26 |
+
</div>
|
27 |
+
<div class="media-frame-content" data-columns="10">
|
28 |
+
<div class="attachments-browser">
|
29 |
+
<input type="hidden" id="qlwapp_icon" value="{{ data.icon }}">
|
30 |
+
<ul tabindex="-1" class="attachments">
|
31 |
+
<?php foreach (explode(',', 'qlwf-chat,qlwf-chat1,qlwf-chat2,qlwf-comments,qlwf-chat3,qlwf-bubble1,qlwf-chat-alt-fill,qlwf-chat-alt-stroke,qlwf-comment-alt2-fill,qlwf-comment-alt2-stroke,qlwf-comment-fill,qlwf-comment-stroke,qlwf-comment,qlwf-comment-alt1-stroke,qlwf-chat4,qlwf-comments1,qlwf-chat5,qlwf-comment1,qlwf-bubble,qlwf-bubbles,qlwf-bubbles2,qlwf-bubble2,qlwf-bubbles3,qlwf-bubbles4,qlwf-whatsapp,qlwf-chat6,qlwf-mode_comment,qlwf-insert_comment,qlwf-chat_bubble_outline,qlwf-chat_bubble,qlwf-bubble_chart,qlwf-comment2,qlwf-chat7,qlwf-commenting-o,qlwf-commenting,qlwf-comments-o,qlwf-comment-o,qlwf-wechat,qlwf-comments2,qlwf-comment3,qlwf-chat8,qlwf-chat-bubble-dots,qlwf-bubbles1,qlwf-bubble3') as $id => $icon) : ?>
|
32 |
+
<li tabindex="0" role="checkbox" aria-label="<?php echo esc_attr($icon); ?>" aria-checked="false" data-id="<?php echo esc_attr($id); ?>" class="attachment save-ready icon _<?php echo esc_attr(str_replace(' ', '_', trim($icon))); ?>">
|
33 |
+
<div class="attachment-preview js--select-attachment type-image subtype-jpeg landscape">
|
34 |
+
<div class="thumbnail">
|
35 |
+
<i class="<?php echo esc_attr($icon); ?>"></i>
|
36 |
+
</div>
|
37 |
+
</div>
|
38 |
+
<button type="button" class="check" tabindex="-1">
|
39 |
+
<span class="media-modal-icon"></span>
|
40 |
+
<span class="screen-reader-text"><?php esc_html_e('Deselect'); ?></span>
|
41 |
+
</button>
|
42 |
+
</li>
|
43 |
+
<?php endforeach; ?>
|
44 |
+
</ul>
|
45 |
+
</div>
|
46 |
+
</div>
|
47 |
+
<div class="media-frame-toolbar">
|
48 |
+
<div class="media-toolbar">
|
49 |
+
<div class="media-toolbar-secondary"></div>
|
50 |
+
<div class="media-toolbar-primary search-form">
|
51 |
+
<button type="button" class="button media-button button-large button-primary media-button-select save"><?php esc_html_e('Save'); ?></button>
|
52 |
+
<button type="button" class="button media-button button-large button-secondary remove"><?php esc_html_e('Remove'); ?></button>
|
53 |
+
</div>
|
54 |
+
</div>
|
55 |
+
</div>
|
56 |
+
</div>
|
57 |
+
</div>
|
58 |
+
</div>
|
59 |
+
</div>
|
60 |
+
</script>
|
includes/view/backend/pages/parts/header.php
ADDED
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
global $submenu;
|
3 |
+
?>
|
4 |
+
<div class="wrap about-wrap full-width-layout qlwrap">
|
5 |
+
|
6 |
+
<h1><?php echo esc_html(QLWAPP_PLUGIN_NAME); ?></h1>
|
7 |
+
|
8 |
+
<p class="about-text"><?php printf(esc_html__('Thanks for using %s! We will do our best to offer you the best and improved communication experience with your users.', 'wp-whatsapp-chat'), QLWAPP_PLUGIN_NAME); ?></p>
|
9 |
+
|
10 |
+
<p class="about-text">
|
11 |
+
<?php printf('<a href="%s" target="_blank">%s</a>', QLWAPP_DEMO_URL, esc_html__('Purchase', 'wp-whatsapp-chat')); ?></a> |
|
12 |
+
<?php printf('<a href="%s" target="_blank">%s</a>', QLWAPP_DEMO_URL, esc_html__('Demo', 'wp-whatsapp-chat')); ?></a> |
|
13 |
+
<?php printf('<a href="%s" target="_blank">%s</a>', QLWAPP_DEMO_URL, esc_html__('Documentation', 'wp-whatsapp-chat')); ?></a>
|
14 |
+
</p>
|
15 |
+
|
16 |
+
<?php printf('<a href="%s" target="_blank"><div style="
|
17 |
+
background: #006bff url(%s) no-repeat;
|
18 |
+
background-position: top center;
|
19 |
+
background-size: 130px 130px;
|
20 |
+
color: #fff;
|
21 |
+
font-size: 14px;
|
22 |
+
text-align: center;
|
23 |
+
font-weight: 600;
|
24 |
+
margin: 5px 0 0;
|
25 |
+
padding-top: 120px;
|
26 |
+
height: 40px;
|
27 |
+
display: inline-block;
|
28 |
+
width: 140px;
|
29 |
+
" class="wp-badge">%s</div></a>', 'https://quadlayers.com/?utm_source=qlwapp_admin', plugins_url('/assets/img/quadlayers.jpg', QLWAPP_PLUGIN_FILE), esc_html__('QuadLayers', 'wp-whatsapp-chat')); ?>
|
30 |
+
|
31 |
+
</div>
|
32 |
+
<?php
|
33 |
+
if (isset($submenu[QLWAPP_DOMAIN])) {
|
34 |
+
if (is_array($submenu[QLWAPP_DOMAIN])) {
|
35 |
+
?>
|
36 |
+
<div class="wrap about-wrap full-width-layout qlwrap">
|
37 |
+
<h2 class="nav-tab-wrapper">
|
38 |
+
<?php
|
39 |
+
foreach ($submenu[QLWAPP_DOMAIN] as $tab) {
|
40 |
+
if (strpos($tab[2], '.php') !== false)
|
41 |
+
continue;
|
42 |
+
?>
|
43 |
+
<a href="<?php echo admin_url('admin.php?page=' . esc_attr($tab[2])); ?>" class="nav-tab<?php echo (isset($_GET['page']) && $_GET['page'] == $tab[2]) ? ' nav-tab-active' : ''; ?>"><?php echo $tab[0]; ?></a>
|
44 |
+
<?php
|
45 |
+
}
|
46 |
+
?>
|
47 |
+
</h2>
|
48 |
+
</div>
|
49 |
+
<?php
|
50 |
+
}
|
51 |
+
}
|
includes/view/backend/pages/premium.php
ADDED
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="wrap about-wrap full-width-layout qlwrap">
|
2 |
+
<div class="has-2-columns is-wider-left" style="max-width: 100%">
|
3 |
+
<div class="column">
|
4 |
+
<div class="welcome-header">
|
5 |
+
<h1><?php esc_html_e('Premium', 'wp-whatsapp-chat'); ?></h1>
|
6 |
+
<div class="about-description">
|
7 |
+
<?php printf(esc_html__('Unlock the power of our premium %s plugin which allows you to include unlimited agent accounts with their names and labels inside the box to provide direct contact to the different support areas of your site.', 'wp-whatsapp-chat'), QLWAPP_PLUGIN_NAME); ?>
|
8 |
+
</div>
|
9 |
+
<br/>
|
10 |
+
<a style="background-color: #006cff;color: #ffffff;text-decoration: none;padding: 10px 30px;border-radius: 30px;margin: 10px 0 0 0;display: inline-block;" target="_blank" href="<?php echo esc_url(QLWAPP_PURCHASE_URL); ?>"><?php esc_html_e('Purchase Now', 'wp-whatsapp-chat'); ?></a>
|
11 |
+
<a style="background-color: #ffffff;color: #626262;text-decoration: none;padding: 10px 30px;border-radius: 30px;margin: 10px 0 0 0;display: inline-block;" target="_blank" href="<?php echo esc_url(QLWAPP_SUPPORT_URL); ?>"><?php esc_html_e('Get Support', 'wp-whatsapp-chat'); ?></a>
|
12 |
+
</div>
|
13 |
+
<hr/>
|
14 |
+
<div class="feature-section">
|
15 |
+
<h3><?php esc_html_e('Multiple agents', 'wp-whatsapp-chat'); ?></h3>
|
16 |
+
<p>
|
17 |
+
<?php printf(esc_html__('%s allows you to include unlimited agent accounts with their names and labels inside the box to provide direct contact to the different support areas of your site.', 'wp-whatsapp-chat'), QLWAPP_PLUGIN_NAME); ?>
|
18 |
+
</p>
|
19 |
+
</div>
|
20 |
+
<div class="feature-section">
|
21 |
+
<h3><?php esc_html_e('Customize colors', 'wp-whatsapp-chat'); ?></h3>
|
22 |
+
<p>
|
23 |
+
<?php esc_html_e('Customize the colors to match your site theme through the WordPress live customizer interface.', 'wp-whatsapp-chat'); ?>
|
24 |
+
</p>
|
25 |
+
</div>
|
26 |
+
<div class="feature-section">
|
27 |
+
<h3><?php esc_html_e('Custom icons', 'wp-whatsapp-chat'); ?></h3>
|
28 |
+
<p>
|
29 |
+
<?php esc_html_e('Our plugin allows you to select between more than forty icons to include in your Whatsapp button.', 'wp-whatsapp-chat'); ?>
|
30 |
+
</p>
|
31 |
+
</div>
|
32 |
+
</div>
|
33 |
+
<div class="column">
|
34 |
+
<img src="<?php echo plugins_url('/assets/img/box1.png', QLWAPP_PLUGIN_FILE); ?>">
|
35 |
+
</div>
|
36 |
+
</div>
|
37 |
+
<br/>
|
38 |
+
<br/>
|
39 |
+
<div class="has-2-columns is-wider-right" style="max-width: 100%">
|
40 |
+
<div class="column">
|
41 |
+
<img src="<?php echo plugins_url('/assets/img/box2.png', QLWAPP_PLUGIN_FILE); ?>">
|
42 |
+
</div>
|
43 |
+
<div class="column">
|
44 |
+
<br/>
|
45 |
+
<div class="welcome-header">
|
46 |
+
<h1><?php esc_html_e('Chatbox interface', 'wp-whatsapp-chat'); ?></h1>
|
47 |
+
<div class="about-description">
|
48 |
+
<?php printf(esc_html__('%s for WordPress allows you to include a chatbox for each agent where your users can type their first message.', 'wp-whatsapp-chat'), QLWAPP_PLUGIN_NAME); ?>
|
49 |
+
<?php //esc_html_e('Take in mind that this chat dosent allow .', 'wp-whatsapp-chat'); ?>
|
50 |
+
</div>
|
51 |
+
</div>
|
52 |
+
<hr/>
|
53 |
+
<div class="feature-section">
|
54 |
+
<h3><?php esc_html_e('Custom agent message', 'wp-whatsapp-chat'); ?></h3>
|
55 |
+
<p>
|
56 |
+
<?php esc_html_e('Allow you to set a custom message for each agent that will be displayed on the chatbox.', 'wp-whatsapp-chat'); ?>
|
57 |
+
</p>
|
58 |
+
</div>
|
59 |
+
<div class="feature-section">
|
60 |
+
<h3><?php esc_html_e('Custom user message', 'wp-whatsapp-chat'); ?></h3>
|
61 |
+
<p>
|
62 |
+
<?php esc_html_e('You can choose the predefined user message that will be sent to the agent phone number.', 'wp-whatsapp-chat'); ?>
|
63 |
+
</p>
|
64 |
+
</div>
|
65 |
+
<div class="feature-section">
|
66 |
+
<h3><?php esc_html_e('Type user message', 'wp-whatsapp-chat'); ?></h3>
|
67 |
+
<p>
|
68 |
+
<?php esc_html_e('Allow your users to type their own messages before sending it to the agent phone number.', 'wp-whatsapp-chat'); ?>
|
69 |
+
</p>
|
70 |
+
</div>
|
71 |
+
</div>
|
72 |
+
</div
|
73 |
+
</div>
|
includes/view/backend/pages/scheme.php
ADDED
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="wrap about-wrap full-width-layout qlwrap">
|
2 |
+
<form method="post" id="qlwapp_scheme_form">
|
3 |
+
<table class="form-table">
|
4 |
+
<tbody>
|
5 |
+
<tr>
|
6 |
+
<th scope="row"><?php esc_html_e('Background', 'wp-whatsapp-chat'); ?></th>
|
7 |
+
<td>
|
8 |
+
<input class="qlwapp-color-field" type="text" name="brand" value="<?php echo esc_attr($scheme['brand']); ?>" />
|
9 |
+
</td>
|
10 |
+
</tr>
|
11 |
+
<tr>
|
12 |
+
<th scope="row"><?php esc_html_e('Color', 'wp-whatsapp-chat'); ?></th>
|
13 |
+
<td>
|
14 |
+
<input class="qlwapp-color-field" type="text" name="text" value="<?php echo esc_attr($scheme['text']); ?>" />
|
15 |
+
</td>
|
16 |
+
</tr>
|
17 |
+
<tr class="qlwapp-premium-field">
|
18 |
+
<th scope="row"><?php esc_html_e('Link', 'wp-whatsapp-chat'); ?></th>
|
19 |
+
<td>
|
20 |
+
<input class="qlwapp-color-field" type="link" name="link" value="<?php echo esc_attr($scheme['link']); ?>" />
|
21 |
+
<p class="description hidden"><small><?php esc_html_e('This is a premium feature', 'wp-whatsapp-chat'); ?></small></p>
|
22 |
+
</td>
|
23 |
+
</tr>
|
24 |
+
<tr class="qlwapp-premium-field">
|
25 |
+
<th scope="row"><?php esc_html_e('Message', 'wp-whatsapp-chat'); ?></th>
|
26 |
+
<td>
|
27 |
+
<input class="qlwapp-color-field" type="link" name="message" value="<?php echo esc_attr($scheme['message']); ?>" />
|
28 |
+
<p class="description hidden"><small><?php esc_html_e('This is a premium feature', 'wp-whatsapp-chat'); ?></small></p>
|
29 |
+
</td>
|
30 |
+
</tr>
|
31 |
+
<tr class="qlwapp-premium-field">
|
32 |
+
<th scope="row"><?php esc_html_e('Label', 'wp-whatsapp-chat'); ?></th>
|
33 |
+
<td>
|
34 |
+
<input class="qlwapp-color-field" type="link" name="label" value="<?php echo esc_attr($scheme['label']); ?>" />
|
35 |
+
<p class="description hidden"><small><?php esc_html_e('This is a premium feature', 'wp-whatsapp-chat'); ?></small></p>
|
36 |
+
</td>
|
37 |
+
</tr>
|
38 |
+
<tr class="qlwapp-premium-field">
|
39 |
+
<th scope="row"><?php esc_html_e('Name', 'wp-whatsapp-chat'); ?></th>
|
40 |
+
<td>
|
41 |
+
<input class="qlwapp-color-field" type="link" name="name" value="<?php echo esc_attr($scheme['name']); ?>" />
|
42 |
+
<p class="description hidden"><small><?php esc_html_e('This is a premium feature', 'wp-whatsapp-chat'); ?></small></p>
|
43 |
+
</td>
|
44 |
+
</tr>
|
45 |
+
</tbody>
|
46 |
+
</table>
|
47 |
+
<?php wp_nonce_field('qlwapp_save_scheme', 'qlwapp_scheme_form_nonce'); ?>
|
48 |
+
<p class="submit">
|
49 |
+
<?php submit_button(esc_html__('Save', 'wp-whatsapp-chat'), 'primary', 'submit', false); ?>
|
50 |
+
<span class="settings-save-status">
|
51 |
+
<span class="saved"><?php esc_html_e('Saved successfully!'); ?></span>
|
52 |
+
<span class="spinner" style="float: none"></span>
|
53 |
+
</span>
|
54 |
+
</p>
|
55 |
+
</form>
|
56 |
+
</div>
|
includes/{pages → view/backend/pages}/suggestions.php
RENAMED
@@ -1,11 +1,7 @@
|
|
1 |
<div class="wrap" style="
|
2 |
position: relative;
|
3 |
margin: 25px 40px 0 20px;
|
4 |
-
max-width: 1200px;">
|
5 |
-
<?php
|
6 |
-
$wp_list_table = new QLWAPP_Suggestions_List_Table();
|
7 |
-
$wp_list_table->prepare_items();
|
8 |
-
?>
|
9 |
<form id="plugin-filter" method="post" class="importer-item">
|
10 |
<?php $wp_list_table->display(); ?>
|
11 |
</form>
|
1 |
<div class="wrap" style="
|
2 |
position: relative;
|
3 |
margin: 25px 40px 0 20px;
|
4 |
+
max-width: 1200px;">
|
|
|
|
|
|
|
|
|
5 |
<form id="plugin-filter" method="post" class="importer-item">
|
6 |
<?php $wp_list_table->display(); ?>
|
7 |
</form>
|
includes/view/backend/pages/welcome.php
ADDED
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="wrap about-wrap full-width-layout qlwrap">
|
2 |
+
<div class="has-2-columns is-wider-left" style="max-width: 100%">
|
3 |
+
<div class="column">
|
4 |
+
<div class="qlwapp-welcome-header">
|
5 |
+
<h1><?php echo QLWAPP_PLUGIN_NAME; ?> <span style="font-size: 24px;color: #555;">v<?php echo QLWAPP_PLUGIN_VERSION; ?></span></h1>
|
6 |
+
<div class="about-text">
|
7 |
+
<?php esc_html_e('Hello we\'re QuadLayers! We\'ve recently acquired this plugin and this is the first update. We have worked very much and very hard to release it, and we will do our absolute best to support it and fix all the issues.', 'wp-whatsapp-chat'); ?>
|
8 |
+
</div>
|
9 |
+
</div>
|
10 |
+
<hr/>
|
11 |
+
<div class="feature-section" style="padding: 15px 0;">
|
12 |
+
<h3><?php esc_html_e('Community', 'wp-whatsapp-chat'); ?></h3>
|
13 |
+
<p>
|
14 |
+
<?php printf(esc_html__('If you want to get in touch with other %s users or be aware of our promotional discounts join our community now.', 'wp-whatsapp-chat'), QLWAPP_PLUGIN_NAME); ?>
|
15 |
+
</p>
|
16 |
+
<a style="background-color: #ffffff;color: #626262;text-decoration: none;padding: 10px 30px;border-radius: 30px;margin: 10px 0 0 0;display: inline-block;" target="_blank" href="<?php echo QLWAPP_GROUP_URL; ?>"><?php esc_html_e('Join us', 'wp-whatsapp-chat'); ?></a>
|
17 |
+
</div>
|
18 |
+
<div class="feature-section" style="padding: 15px 0;">
|
19 |
+
<h3><?php esc_html_e('Demo', 'wp-whatsapp-chat'); ?></h3>
|
20 |
+
<p>
|
21 |
+
<?php printf(esc_html__('Thank you for choosing our %s plugin for WordPress! Here you can see our demo and a description about the features we offer in the premium version.', 'wp-whatsapp-chat'), QLWAPP_PLUGIN_NAME); ?>
|
22 |
+
</p>
|
23 |
+
<a style="background-color: #006cff;color: #ffffff;text-decoration: none;padding: 10px 30px;border-radius: 30px;margin: 10px 0 0 0;display: inline-block;" target="_blank" href="<?php echo QLWAPP_DEMO_URL; ?>"><?php esc_html_e('View demo', 'wp-whatsapp-chat'); ?></a>
|
24 |
+
</div>
|
25 |
+
<div class="feature-section" style="padding: 15px 0;">
|
26 |
+
<h3><?php esc_html_e('Support', 'wp-whatsapp-chat'); ?></h3>
|
27 |
+
<p>
|
28 |
+
<?php printf(esc_html__('If you have any doubt or you find any issue don\'t hesitate to contact us through our ticket system or join our community to meet other %s users.', 'wp-whatsapp-chat'), QLWAPP_PLUGIN_NAME); ?>
|
29 |
+
</p>
|
30 |
+
<a style="background-color: #006cff;color: #ffffff;text-decoration: none;padding: 10px 30px;border-radius: 30px;margin: 10px 0 0 0;display: inline-block;" target="_blank" href="<?php echo QLWAPP_SUPPORT_URL; ?>"><?php esc_html_e('Submit ticket', 'wp-whatsapp-chat'); ?></a>
|
31 |
+
</div>
|
32 |
+
</div>
|
33 |
+
<div class="column">
|
34 |
+
<img src="<?php echo plugins_url('/assets/img/box1.png', QLWAPP_PLUGIN_FILE); ?>">
|
35 |
+
</div>
|
36 |
+
</div>
|
37 |
+
</div>
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Donate link: https://quadlayers.com/portfolio/wordpress-whatsapp-chat/
|
|
4 |
Tags: whatsapp, whatsapp button, whatsapp chat, whatsapp support, contact, click to chat, directly message whatsapp, floating whatsapp, whatsapp business, messaging, help desk
|
5 |
Requires at least: 4.6
|
6 |
Tested up to: 5.2.2
|
7 |
-
Stable tag: 4.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
4 |
Tags: whatsapp, whatsapp button, whatsapp chat, whatsapp support, contact, click to chat, directly message whatsapp, floating whatsapp, whatsapp business, messaging, help desk
|
5 |
Requires at least: 4.6
|
6 |
Tested up to: 5.2.2
|
7 |
+
Stable tag: 4.5.0
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
template/box.php
CHANGED
@@ -1,49 +1,49 @@
|
|
1 |
-
<div id="qlwapp" class="qlwapp-free <?php printf("qlwapp-%s qlwapp-%s qlwapp-%s qlwapp-%s", esc_attr($
|
2 |
<div class="qlwapp-container">
|
3 |
-
<?php if ($
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
</div>
|
11 |
-
</div>
|
12 |
-
<?php endif; ?>
|
13 |
-
<div class="qlwapp-body">
|
14 |
-
<?php if (isset($qlwapp['contacts'][0])): ?>
|
15 |
-
<a class="qlwapp-account" data-action="open" data-phone="<?php echo esc_attr($qlwapp['contacts'][0]['phone']); ?>" data-message="<?php echo esc_html($qlwapp['button']['message']); ?>" href="javascript:void(0);" target="_blank">
|
16 |
-
<?php if (!empty($qlwapp['contacts'][0]['avatar'])): ?>
|
17 |
-
<div class="qlwapp-avatar">
|
18 |
-
<div class="qlwapp-avatar-container">
|
19 |
-
<img alt="<?php printf("%s %s", esc_html($qlwapp['contacts'][0]['firstname']), esc_html($qlwapp['contacts'][0]['lastname'])); ?>" src="<?php echo esc_url($qlwapp['contacts'][0]['avatar']); ?>">
|
20 |
-
</div>
|
21 |
</div>
|
22 |
-
<?php endif; ?>
|
23 |
-
<div class="qlwapp-info">
|
24 |
-
<span class="qlwapp-label"><?php echo esc_html($qlwapp['contacts'][0]['label']); ?></span>
|
25 |
-
<span class="qlwapp-name"><?php printf("%s %s", esc_html($qlwapp['contacts'][0]['firstname']), esc_html($qlwapp['contacts'][0]['lastname'])); ?></span>
|
26 |
</div>
|
27 |
-
</a>
|
28 |
<?php endif; ?>
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
</div>
|
34 |
-
|
35 |
-
|
|
|
|
|
|
|
|
|
36 |
<?php endif; ?>
|
37 |
-
<a class="qlwapp-toggle" data-action="<?php echo ($
|
38 |
-
<?php if ($
|
39 |
-
|
40 |
<?php endif; ?>
|
41 |
<i class="qlwapp-close" data-action="close">×</i>
|
42 |
-
<?php if ($
|
43 |
-
|
44 |
<?php endif; ?>
|
45 |
</a>
|
46 |
-
<!--<?php //if ($
|
47 |
<a class="qlwapp-developer" href="<?php echo esc_url(QLWAPP_DEMO_URL); ?>" target="_blank"><?php esc_html_e('Powered by QuadLayers'); ?></a>
|
48 |
<?php //endif; ?>-->
|
49 |
</div>
|
1 |
+
<div id="qlwapp" class="qlwapp-free <?php printf("qlwapp-%s qlwapp-%s qlwapp-%s qlwapp-%s", esc_attr($button['layout']), esc_attr($button['position']), esc_attr($display['devices']), esc_attr($button['rounded'] === 'yes' ? 'rounded' : 'square')); ?>">
|
2 |
<div class="qlwapp-container">
|
3 |
+
<?php if ($box['enable'] === 'yes'): ?>
|
4 |
+
<div class="qlwapp-box">
|
5 |
+
<?php if (!empty($box['header'])): ?>
|
6 |
+
<div class="qlwapp-header">
|
7 |
+
<i class="qlwapp-close" data-action="close">×</i>
|
8 |
+
<div class="qlwapp-description">
|
9 |
+
<?php echo wpautop(wp_kses_post(wpautop($box['header']))); ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
</div>
|
|
|
|
|
|
|
|
|
11 |
</div>
|
|
|
12 |
<?php endif; ?>
|
13 |
+
<div class="qlwapp-body">
|
14 |
+
<?php if (isset($contacts[0])): ?>
|
15 |
+
<a class="qlwapp-account" data-action="open" data-phone="<?php echo esc_attr($contacts[0]['phone']); ?>" data-message="<?php echo esc_html($button['message']); ?>" href="javascript:void(0);" target="_blank">
|
16 |
+
<?php if (!empty($contacts[0]['avatar'])): ?>
|
17 |
+
<div class="qlwapp-avatar">
|
18 |
+
<div class="qlwapp-avatar-container">
|
19 |
+
<img alt="<?php printf("%s %s", esc_html($contacts[0]['firstname']), esc_html($contacts[0]['lastname'])); ?>" src="<?php echo esc_url($contacts[0]['avatar']); ?>">
|
20 |
+
</div>
|
21 |
+
</div>
|
22 |
+
<?php endif; ?>
|
23 |
+
<div class="qlwapp-info">
|
24 |
+
<span class="qlwapp-label"><?php echo esc_html($contacts[0]['label']); ?></span>
|
25 |
+
<span class="qlwapp-name"><?php printf("%s %s", esc_html($contacts[0]['firstname']), esc_html($contacts[0]['lastname'])); ?></span>
|
26 |
+
</div>
|
27 |
+
</a>
|
28 |
+
<?php endif; ?>
|
29 |
</div>
|
30 |
+
<?php if (!empty($box['footer'])): ?>
|
31 |
+
<div class="qlwapp-footer">
|
32 |
+
<?php echo wpautop(wp_kses_post($box['footer'])); ?>
|
33 |
+
</div>
|
34 |
+
<?php endif; ?>
|
35 |
+
</div>
|
36 |
<?php endif; ?>
|
37 |
+
<a class="qlwapp-toggle" data-action="<?php echo ($box['enable'] === 'yes' ? 'box' : 'open'); ?>" data-phone="<?php echo esc_attr($button['phone']); ?>" data-message="<?php echo esc_html($button['message']); ?>" href="#" target="_blank">
|
38 |
+
<?php if ($button['icon']): ?>
|
39 |
+
<i class="qlwapp-icon <?php echo esc_attr($button['icon']); ?>"></i>
|
40 |
<?php endif; ?>
|
41 |
<i class="qlwapp-close" data-action="close">×</i>
|
42 |
+
<?php if ($button['text']): ?>
|
43 |
+
<span class="qlwapp-text"><?php echo esc_html($button['text']); ?></span>
|
44 |
<?php endif; ?>
|
45 |
</a>
|
46 |
+
<!--<?php //if ($button['developer'] === 'yes'): ?>
|
47 |
<a class="qlwapp-developer" href="<?php echo esc_url(QLWAPP_DEMO_URL); ?>" target="_blank"><?php esc_html_e('Powered by QuadLayers'); ?></a>
|
48 |
<?php //endif; ?>-->
|
49 |
</div>
|
wp-whatsapp-chat.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: WhatsApp Chat
|
4 |
* Plugin URI: https://quadlayers.com/portfolio/wordpress-whatsapp-chat/
|
5 |
* Description: WhatsApp Chat allows your visitors to contact you or your team through WhatsApp chat with a single click.
|
6 |
-
* Version: 4.
|
7 |
* Author: QuadLayers
|
8 |
* Author URI: https://quadlayers.com
|
9 |
* License: GPL-2.0+
|
@@ -12,168 +12,178 @@
|
|
12 |
* Domain Path: /languages
|
13 |
*/
|
14 |
if (!defined('ABSPATH')) {
|
15 |
-
|
16 |
}
|
17 |
if (!defined('QLWAPP_PLUGIN_NAME')) {
|
18 |
-
|
19 |
}
|
20 |
if (!defined('QLWAPP_PLUGIN_VERSION')) {
|
21 |
-
|
22 |
}
|
23 |
if (!defined('QLWAPP_PLUGIN_FILE')) {
|
24 |
-
|
25 |
}
|
26 |
if (!defined('QLWAPP_PLUGIN_DIR')) {
|
27 |
-
|
28 |
}
|
29 |
if (!defined('QLWAPP_DOMAIN')) {
|
30 |
-
|
31 |
}
|
32 |
if (!defined('QLWAPP_WORDPRESS_URL')) {
|
33 |
-
|
34 |
}
|
35 |
if (!defined('QLWAPP_REVIEW_URL')) {
|
36 |
-
|
37 |
}
|
38 |
if (!defined('QLWAPP_DEMO_URL')) {
|
39 |
-
|
40 |
}
|
41 |
if (!defined('QLWAPP_PURCHASE_URL')) {
|
42 |
-
|
43 |
}
|
44 |
if (!defined('QLWAPP_SUPPORT_URL')) {
|
45 |
-
|
46 |
}
|
47 |
if (!defined('QLWAPP_DOCUMENTATION_URL')) {
|
48 |
define('QLWAPP_DOCUMENTATION_URL', 'https://quadlayers.com/documentation/whatsapp-chat/?utm_source=qlwapp_admin');
|
49 |
}
|
50 |
if (!defined('QLWAPP_GROUP_URL')) {
|
51 |
-
|
52 |
}
|
53 |
|
54 |
if (!class_exists('QLWAPP')) {
|
55 |
|
56 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
|
58 |
-
protected static $instance;
|
59 |
-
|
60 |
-
function ajax_dismiss_notice() {
|
61 |
-
|
62 |
-
if (check_admin_referer('qlwapp_dismiss_notice', 'nonce') && isset($_REQUEST['notice_id'])) {
|
63 |
-
|
64 |
-
$notice_id = sanitize_key($_REQUEST['notice_id']);
|
65 |
-
|
66 |
-
update_user_meta(get_current_user_id(), $notice_id, true);
|
67 |
-
|
68 |
-
wp_send_json($notice_id);
|
69 |
-
}
|
70 |
-
|
71 |
-
wp_die();
|
72 |
-
}
|
73 |
-
|
74 |
-
function add_notices() {
|
75 |
-
|
76 |
-
if (!get_transient('qlwapp-first-rating') && !get_user_meta(get_current_user_id(), 'qlwapp-user-rating', true)) {
|
77 |
-
?>
|
78 |
-
<div id="qlwapp-admin-rating" class="qlwapp-notice notice is-dismissible" data-notice_id="qlwapp-user-rating">
|
79 |
-
<div class="notice-container" style="padding-top: 10px; padding-bottom: 10px; display: flex; justify-content: left; align-items: center;">
|
80 |
-
<div class="notice-image">
|
81 |
-
<img style="border-radius:50%;max-width: 90px;" src="<?php echo plugins_url('/assets/img/logo.jpg', QLWAPP_PLUGIN_FILE); ?>" alt="<?php echo esc_html(QLWAPP_PLUGIN_NAME); ?>>">
|
82 |
-
</div>
|
83 |
-
<div class="notice-content" style="margin-left: 15px;">
|
84 |
-
<p>
|
85 |
-
<?php printf(esc_html__('Hello! Thank you for choosing the %s plugin!', 'wp-whatsapp-chat'), QLWAPP_PLUGIN_NAME); ?>
|
86 |
-
<br/>
|
87 |
-
<?php esc_html_e('Could you please give it a 5-star rating on WordPress? We know its a big favor, but we\'ve worked very much and very hard to release this great product. Your feedback will boost our motivation and help us promote and continue to improve this product.', 'wp-whatsapp-chat'); ?>
|
88 |
-
</p>
|
89 |
-
<a href="<?php echo esc_url(QLWAPP_REVIEW_URL); ?>" class="button-primary" target="_blank">
|
90 |
-
<?php esc_html_e('Yes, of course!', 'wp-whatsapp-chat'); ?>
|
91 |
-
</a>
|
92 |
-
<a href="<?php echo esc_url(QLWAPP_SUPPORT_URL); ?>" class="button-secondary" target="_blank">
|
93 |
-
<?php esc_html_e('Report a bug', 'wp-whatsapp-chat'); ?>
|
94 |
-
</a>
|
95 |
-
</div>
|
96 |
-
</div>
|
97 |
-
</div>
|
98 |
-
<script>
|
99 |
-
(function ($) {
|
100 |
-
$('.qlwapp-notice').on('click', '.notice-dismiss', function (e) {
|
101 |
-
e.preventDefault();
|
102 |
-
var notice_id = $(e.delegateTarget).data('notice_id');
|
103 |
-
$.ajax({
|
104 |
-
type: 'POST',
|
105 |
-
url: ajaxurl,
|
106 |
-
data: {
|
107 |
-
notice_id: notice_id,
|
108 |
-
action: 'qlwapp_dismiss_notice',
|
109 |
-
nonce: '<?php echo wp_create_nonce('qlwapp_dismiss_notice'); ?>'
|
110 |
-
},
|
111 |
-
success: function (response) {
|
112 |
-
console.log(response);
|
113 |
-
},
|
114 |
-
});
|
115 |
-
});
|
116 |
-
})(jQuery);
|
117 |
-
</script>
|
118 |
-
<?php
|
119 |
-
}
|
120 |
-
}
|
121 |
-
|
122 |
-
function includes() {
|
123 |
-
include_once('includes/defaults.php');
|
124 |
-
include_once('includes/frontend.php');
|
125 |
-
include_once('includes/settings.php');
|
126 |
-
}
|
127 |
-
|
128 |
-
public static function is_min() {
|
129 |
-
if (!defined('SCRIPT_DEBUG') || !SCRIPT_DEBUG) {
|
130 |
-
return '.min';
|
131 |
-
}
|
132 |
}
|
133 |
|
134 |
-
|
135 |
-
load_plugin_textdomain('wp-whatsapp-chat', false, dirname(plugin_basename(__FILE__)) . '/languages/');
|
136 |
-
}
|
137 |
-
|
138 |
-
function add_premium_js() {
|
139 |
-
if (!class_exists('QLWAPP_PRO')) {
|
140 |
-
?>
|
141 |
-
<style>
|
142 |
-
.qlwapp-premium-field {
|
143 |
-
opacity: 0.5;
|
144 |
-
pointer-events: none;
|
145 |
-
}
|
146 |
-
.qlwapp-premium-field .description {
|
147 |
-
display: block!important;
|
148 |
-
}
|
149 |
-
</style>
|
150 |
-
<?php
|
151 |
-
}
|
152 |
-
}
|
153 |
-
|
154 |
-
function init() {
|
155 |
-
add_action('admin_footer', array($this, 'add_premium_js'));
|
156 |
-
add_action('admin_notices', array($this, 'add_notices'));
|
157 |
-
add_action('wp_ajax_qlwapp_dismiss_notice', array($this, 'ajax_dismiss_notice'));
|
158 |
-
}
|
159 |
-
|
160 |
-
public static function do_activation() {
|
161 |
-
set_transient('qlwapp-first-rating', true, MONTH_IN_SECONDS);
|
162 |
-
}
|
163 |
-
|
164 |
-
public static function instance() {
|
165 |
-
if (!isset(self::$instance)) {
|
166 |
-
self::$instance = new self();
|
167 |
-
self::$instance->languages();
|
168 |
-
self::$instance->includes();
|
169 |
-
self::$instance->init();
|
170 |
-
}
|
171 |
-
return self::$instance;
|
172 |
-
}
|
173 |
-
|
174 |
-
}
|
175 |
-
|
176 |
-
add_action('plugins_loaded', array('QLWAPP', 'instance'));
|
177 |
|
178 |
-
|
179 |
}
|
3 |
* Plugin Name: WhatsApp Chat
|
4 |
* Plugin URI: https://quadlayers.com/portfolio/wordpress-whatsapp-chat/
|
5 |
* Description: WhatsApp Chat allows your visitors to contact you or your team through WhatsApp chat with a single click.
|
6 |
+
* Version: 4.5.0
|
7 |
* Author: QuadLayers
|
8 |
* Author URI: https://quadlayers.com
|
9 |
* License: GPL-2.0+
|
12 |
* Domain Path: /languages
|
13 |
*/
|
14 |
if (!defined('ABSPATH')) {
|
15 |
+
die('-1');
|
16 |
}
|
17 |
if (!defined('QLWAPP_PLUGIN_NAME')) {
|
18 |
+
define('QLWAPP_PLUGIN_NAME', 'WhatsApp Chat');
|
19 |
}
|
20 |
if (!defined('QLWAPP_PLUGIN_VERSION')) {
|
21 |
+
define('QLWAPP_PLUGIN_VERSION', '4.5.0');
|
22 |
}
|
23 |
if (!defined('QLWAPP_PLUGIN_FILE')) {
|
24 |
+
define('QLWAPP_PLUGIN_FILE', __FILE__);
|
25 |
}
|
26 |
if (!defined('QLWAPP_PLUGIN_DIR')) {
|
27 |
+
define('QLWAPP_PLUGIN_DIR', __DIR__ . DIRECTORY_SEPARATOR);
|
28 |
}
|
29 |
if (!defined('QLWAPP_DOMAIN')) {
|
30 |
+
define('QLWAPP_DOMAIN', 'qlwapp');
|
31 |
}
|
32 |
if (!defined('QLWAPP_WORDPRESS_URL')) {
|
33 |
+
define('QLWAPP_WORDPRESS_URL', 'https://wordpress.org/plugins/wp-whatsapp-chat/');
|
34 |
}
|
35 |
if (!defined('QLWAPP_REVIEW_URL')) {
|
36 |
+
define('QLWAPP_REVIEW_URL', 'https://wordpress.org/support/plugin/wp-whatsapp-chat/reviews/?filter=5#new-post');
|
37 |
}
|
38 |
if (!defined('QLWAPP_DEMO_URL')) {
|
39 |
+
define('QLWAPP_DEMO_URL', 'https://quadlayers.com/portfolio/wordpress-whatsapp-chat/?utm_source=qlwapp_admin');
|
40 |
}
|
41 |
if (!defined('QLWAPP_PURCHASE_URL')) {
|
42 |
+
define('QLWAPP_PURCHASE_URL', QLWAPP_DEMO_URL);
|
43 |
}
|
44 |
if (!defined('QLWAPP_SUPPORT_URL')) {
|
45 |
+
define('QLWAPP_SUPPORT_URL', 'https://quadlayers.com/account/support/?utm_source=qlwapp_admin');
|
46 |
}
|
47 |
if (!defined('QLWAPP_DOCUMENTATION_URL')) {
|
48 |
define('QLWAPP_DOCUMENTATION_URL', 'https://quadlayers.com/documentation/whatsapp-chat/?utm_source=qlwapp_admin');
|
49 |
}
|
50 |
if (!defined('QLWAPP_GROUP_URL')) {
|
51 |
+
define('QLWAPP_GROUP_URL', 'https://www.facebook.com/groups/quadlayers');
|
52 |
}
|
53 |
|
54 |
if (!class_exists('QLWAPP')) {
|
55 |
|
56 |
+
class QLWAPP {
|
57 |
+
|
58 |
+
protected static $instance;
|
59 |
+
|
60 |
+
function ajax_dismiss_notice() {
|
61 |
+
|
62 |
+
if (check_admin_referer('qlwapp_dismiss_notice', 'nonce') && isset($_REQUEST['notice_id'])) {
|
63 |
+
|
64 |
+
$notice_id = sanitize_key($_REQUEST['notice_id']);
|
65 |
+
|
66 |
+
update_user_meta(get_current_user_id(), $notice_id, true);
|
67 |
+
|
68 |
+
wp_send_json($notice_id);
|
69 |
+
}
|
70 |
+
|
71 |
+
wp_die();
|
72 |
+
}
|
73 |
+
|
74 |
+
function add_notices() {
|
75 |
+
|
76 |
+
if (!get_transient('qlwapp-first-rating') && !get_user_meta(get_current_user_id(), 'qlwapp-user-rating', true)) {
|
77 |
+
?>
|
78 |
+
<div id="qlwapp-admin-rating" class="qlwapp-notice notice is-dismissible" data-notice_id="qlwapp-user-rating">
|
79 |
+
<div class="notice-container" style="padding-top: 10px; padding-bottom: 10px; display: flex; justify-content: left; align-items: center;">
|
80 |
+
<div class="notice-image">
|
81 |
+
<img style="border-radius:50%;max-width: 90px;" src="<?php echo plugins_url('/assets/img/logo.jpg', QLWAPP_PLUGIN_FILE); ?>" alt="<?php echo esc_html(QLWAPP_PLUGIN_NAME); ?>>">
|
82 |
+
</div>
|
83 |
+
<div class="notice-content" style="margin-left: 15px;">
|
84 |
+
<p>
|
85 |
+
<?php printf(esc_html__('Hello! Thank you for choosing the %s plugin!', 'wp-whatsapp-chat'), QLWAPP_PLUGIN_NAME); ?>
|
86 |
+
<br/>
|
87 |
+
<?php esc_html_e('Could you please give it a 5-star rating on WordPress? We know its a big favor, but we\'ve worked very much and very hard to release this great product. Your feedback will boost our motivation and help us promote and continue to improve this product.', 'wp-whatsapp-chat'); ?>
|
88 |
+
</p>
|
89 |
+
<a href="<?php echo esc_url(QLWAPP_REVIEW_URL); ?>" class="button-primary" target="_blank">
|
90 |
+
<?php esc_html_e('Yes, of course!', 'wp-whatsapp-chat'); ?>
|
91 |
+
</a>
|
92 |
+
<a href="<?php echo esc_url(QLWAPP_SUPPORT_URL); ?>" class="button-secondary" target="_blank">
|
93 |
+
<?php esc_html_e('Report a bug', 'wp-whatsapp-chat'); ?>
|
94 |
+
</a>
|
95 |
+
</div>
|
96 |
+
</div>
|
97 |
+
</div>
|
98 |
+
<script>
|
99 |
+
(function ($) {
|
100 |
+
$('.qlwapp-notice').on('click', '.notice-dismiss', function (e) {
|
101 |
+
e.preventDefault();
|
102 |
+
var notice_id = $(e.delegateTarget).data('notice_id');
|
103 |
+
$.ajax({
|
104 |
+
type: 'POST',
|
105 |
+
url: ajaxurl,
|
106 |
+
data: {
|
107 |
+
notice_id: notice_id,
|
108 |
+
action: 'qlwapp_dismiss_notice',
|
109 |
+
nonce: '<?php echo wp_create_nonce('qlwapp_dismiss_notice'); ?>'
|
110 |
+
},
|
111 |
+
success: function (response) {
|
112 |
+
console.log(response);
|
113 |
+
},
|
114 |
+
});
|
115 |
+
});
|
116 |
+
})(jQuery);
|
117 |
+
</script>
|
118 |
+
<?php
|
119 |
+
}
|
120 |
+
}
|
121 |
+
|
122 |
+
function includes() {
|
123 |
+
include_once('includes/settings.php');
|
124 |
+
include_once('includes/frontend.php');
|
125 |
+
include_once('includes/backend.php');
|
126 |
+
}
|
127 |
+
|
128 |
+
public static function is_min() {
|
129 |
+
if (!defined('SCRIPT_DEBUG') || !SCRIPT_DEBUG) {
|
130 |
+
return '.min';
|
131 |
+
}
|
132 |
+
}
|
133 |
+
|
134 |
+
function languages() {
|
135 |
+
load_plugin_textdomain('wp-whatsapp-chat', false, dirname(plugin_basename(__FILE__)) . '/languages/');
|
136 |
+
}
|
137 |
+
|
138 |
+
function add_premium_js() {
|
139 |
+
if (!class_exists('QLWAPP_PRO')) {
|
140 |
+
?>
|
141 |
+
<style>
|
142 |
+
.qlwapp-premium-field {
|
143 |
+
opacity: 0.5;
|
144 |
+
pointer-events: none;
|
145 |
+
}
|
146 |
+
.qlwapp-premium-field .description {
|
147 |
+
display: block!important;
|
148 |
+
}
|
149 |
+
</style>
|
150 |
+
<?php
|
151 |
+
}
|
152 |
+
}
|
153 |
+
|
154 |
+
function add_action_links($links) {
|
155 |
+
|
156 |
+
$links[] = '<a target="_blank" href="' . QLWAPP_PURCHASE_URL . '">' . esc_html__('Premium', 'wp-whatsapp-chat') . '</a>';
|
157 |
+
|
158 |
+
$links[] = '<a href="' . admin_url('admin.php?page=' . QLWAPP_DOMAIN) . '">' . esc_html__('Settings', 'wp-whatsapp-chat') . '</a>';
|
159 |
+
|
160 |
+
return $links;
|
161 |
+
}
|
162 |
+
|
163 |
+
function init() {
|
164 |
+
add_filter('plugin_action_links_' . plugin_basename(QLWAPP_PLUGIN_FILE), array($this, 'add_action_links'));
|
165 |
+
add_action('admin_footer', array($this, 'add_premium_js'));
|
166 |
+
add_action('admin_notices', array($this, 'add_notices'));
|
167 |
+
add_action('wp_ajax_qlwapp_dismiss_notice', array($this, 'ajax_dismiss_notice'));
|
168 |
+
}
|
169 |
+
|
170 |
+
public static function do_activation() {
|
171 |
+
set_transient('qlwapp-first-rating', true, MONTH_IN_SECONDS);
|
172 |
+
}
|
173 |
+
|
174 |
+
public static function instance() {
|
175 |
+
if (!isset(self::$instance)) {
|
176 |
+
self::$instance = new self();
|
177 |
+
self::$instance->languages();
|
178 |
+
self::$instance->includes();
|
179 |
+
self::$instance->init();
|
180 |
+
}
|
181 |
+
return self::$instance;
|
182 |
+
}
|
183 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
184 |
}
|
185 |
|
186 |
+
add_action('plugins_loaded', array('QLWAPP', 'instance'));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
187 |
|
188 |
+
register_activation_hook(QLWAPP_PLUGIN_FILE, array('QLWAPP', 'do_activation'));
|
189 |
}
|
wpml-config.xml
CHANGED
@@ -4,10 +4,8 @@
|
|
4 |
<key name="box">
|
5 |
<key name="header"></key>
|
6 |
<key name="footer"></key>
|
7 |
-
</key>
|
8 |
-
<key name="chat">
|
9 |
<key name="response"></key>
|
10 |
-
</key>
|
11 |
<key name="button">
|
12 |
<key name="text"></key>
|
13 |
<key name="phone"></key>
|
4 |
<key name="box">
|
5 |
<key name="header"></key>
|
6 |
<key name="footer"></key>
|
|
|
|
|
7 |
<key name="response"></key>
|
8 |
+
</key>
|
9 |
<key name="button">
|
10 |
<key name="text"></key>
|
11 |
<key name="phone"></key>
|