Version Description
- NEW: show tooltip on hover button
- NEW: hide on mobile when user fill forms
- CHANGED by default clear all plugin data on uninstall.
- FIX remove unnecessary get option 'whatsappme'
Download this release
Release Info
Developer | creapuntome |
Plugin | WhatsApp me |
Version | 4.0.10 |
Comparing to | |
See all releases |
Code changes from version 4.0.9 to 4.0.10
- README.txt +7 -1
- admin/class-joinchat-admin.php +22 -1
- includes/class-joinchat.php +9 -26
- joinchat.php +2 -2
- languages/creame-whatsapp-me.pot +9 -4
- public/css/joinchat.css +9 -0
- public/css/joinchat.min.css +1 -1
- public/js/joinchat.js +31 -21
- public/js/joinchat.min.js +1 -1
- uninstall.php +4 -4
README.txt
CHANGED
@@ -5,7 +5,7 @@ Tags: whatsapp business, whatsapp, click to chat, button, whatsapp support chat,
|
|
5 |
Requires at least: 3.0.1
|
6 |
Tested up to: 5.5
|
7 |
Requires PHP: 5.3
|
8 |
-
Stable tag: 4.0.
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
@@ -170,6 +170,12 @@ Join.chat general text settings can be translated with the strings translation o
|
|
170 |
|
171 |
== Changelog ==
|
172 |
|
|
|
|
|
|
|
|
|
|
|
|
|
173 |
= 4.0.9 =
|
174 |
* FIX notification balloon text color white
|
175 |
* New js event 'joinchat:starting'
|
5 |
Requires at least: 3.0.1
|
6 |
Tested up to: 5.5
|
7 |
Requires PHP: 5.3
|
8 |
+
Stable tag: 4.0.10
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
170 |
|
171 |
== Changelog ==
|
172 |
|
173 |
+
= 4.0.10 =
|
174 |
+
* **NEW:** show tooltip on hover button
|
175 |
+
* **NEW:** hide on mobile when user fill forms
|
176 |
+
* CHANGED by default clear all plugin data on uninstall.
|
177 |
+
* FIX remove unnecessary get option 'whatsappme'
|
178 |
+
|
179 |
= 4.0.9 =
|
180 |
* FIX notification balloon text color white
|
181 |
* New js event 'joinchat:starting'
|
admin/class-joinchat-admin.php
CHANGED
@@ -737,7 +737,7 @@ class JoinChatAdmin {
|
|
737 |
'<li>' . __( 'To show Chat Window when an HTML element appears on screen when user scrolls:', 'creame-whatsapp-me' ) .
|
738 |
'<ul>' .
|
739 |
'<li><code>joinchat_show</code> ' . __( 'only show if it\'s an not seen CTA.', 'creame-whatsapp-me' ) . '</li>' .
|
740 |
-
'<li><code>joinchat_force_show</code> ' . __( 'to show
|
741 |
'</ul></li>' .
|
742 |
'</ul>',
|
743 |
),
|
@@ -1055,4 +1055,25 @@ class JoinChatAdmin {
|
|
1055 |
|
1056 |
}
|
1057 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1058 |
}
|
737 |
'<li>' . __( 'To show Chat Window when an HTML element appears on screen when user scrolls:', 'creame-whatsapp-me' ) .
|
738 |
'<ul>' .
|
739 |
'<li><code>joinchat_show</code> ' . __( 'only show if it\'s an not seen CTA.', 'creame-whatsapp-me' ) . '</li>' .
|
740 |
+
'<li><code>joinchat_force_show</code> ' . __( 'to show always.', 'creame-whatsapp-me' ) . '</li>' .
|
741 |
'</ul></li>' .
|
742 |
'</ul>',
|
743 |
),
|
1055 |
|
1056 |
}
|
1057 |
|
1058 |
+
/**
|
1059 |
+
* Modifies the "Thank you" text displayed in the admin footer.
|
1060 |
+
*
|
1061 |
+
* @since 4.0.10
|
1062 |
+
* @access public
|
1063 |
+
* @param string $footer_text The content that will be printed.
|
1064 |
+
* @return string The content that will be printed.
|
1065 |
+
*/
|
1066 |
+
public function admin_footer_text( $footer_text ) {
|
1067 |
+
$current_screen = get_current_screen();
|
1068 |
+
|
1069 |
+
if ( $current_screen && 'settings_page_joinchat' === $current_screen->id ) {
|
1070 |
+
$footer_text = sprintf(
|
1071 |
+
__( 'Do you like %1$s? Please leave us a %2$s rating.', 'creame-whatsapp-me' ),
|
1072 |
+
'<strong>Join.chat</strong>',
|
1073 |
+
'<a href="https://wordpress.org/support/plugin/creame-whatsapp-me/reviews/#new-post" target="_blank">★★★★★</a>'
|
1074 |
+
);
|
1075 |
+
}
|
1076 |
+
|
1077 |
+
return $footer_text;
|
1078 |
+
}
|
1079 |
}
|
includes/class-joinchat.php
CHANGED
@@ -60,7 +60,7 @@ class JoinChat {
|
|
60 |
$this->load_dependencies();
|
61 |
$this->set_locale();
|
62 |
$this->load_integrations();
|
63 |
-
|
64 |
is_admin() ? $this->define_admin_hooks() : $this->define_public_hooks();
|
65 |
|
66 |
}
|
@@ -131,27 +131,6 @@ class JoinChat {
|
|
131 |
|
132 |
}
|
133 |
|
134 |
-
/**
|
135 |
-
* Run checks.
|
136 |
-
*
|
137 |
-
* Check if exists 'whatsappme' settings of previous versions (<4.0)
|
138 |
-
*
|
139 |
-
* @since 4.0.0
|
140 |
-
* @access private
|
141 |
-
* @return boolean true if pass checks, false otherwise
|
142 |
-
*/
|
143 |
-
private function checks() {
|
144 |
-
|
145 |
-
$whatsappme = false !== get_option( 'whatsappme' );
|
146 |
-
|
147 |
-
if ( $whatsappme ) {
|
148 |
-
add_action( 'admin_notices', array( $this, 'need_reactivate_notice' ) );
|
149 |
-
}
|
150 |
-
|
151 |
-
return ! $whatsappme;
|
152 |
-
|
153 |
-
}
|
154 |
-
|
155 |
/**
|
156 |
* Register all of the hooks related to the admin area functionality
|
157 |
* of the plugin.
|
@@ -176,6 +155,7 @@ class JoinChat {
|
|
176 |
|
177 |
$this->loader->add_filter( "plugin_action_links_creame-whatsapp-me/{$this->plugin_name}.php", $plugin_admin, 'settings_link' );
|
178 |
$this->loader->add_filter( 'plugin_row_meta', $plugin_admin, 'plugin_links', 10, 2 );
|
|
|
179 |
|
180 |
}
|
181 |
|
@@ -206,14 +186,15 @@ class JoinChat {
|
|
206 |
* @access private
|
207 |
* @return void
|
208 |
*/
|
209 |
-
public function update_wame() {
|
210 |
global $wpdb;
|
211 |
|
212 |
-
$
|
213 |
|
214 |
-
if ( false !== $
|
215 |
// General option
|
216 |
-
|
|
|
217 |
delete_option( 'whatsappme' );
|
218 |
|
219 |
// Post metas
|
@@ -237,6 +218,8 @@ class JoinChat {
|
|
237 |
}
|
238 |
}
|
239 |
|
|
|
|
|
240 |
}
|
241 |
|
242 |
/**
|
60 |
$this->load_dependencies();
|
61 |
$this->set_locale();
|
62 |
$this->load_integrations();
|
63 |
+
|
64 |
is_admin() ? $this->define_admin_hooks() : $this->define_public_hooks();
|
65 |
|
66 |
}
|
131 |
|
132 |
}
|
133 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
134 |
/**
|
135 |
* Register all of the hooks related to the admin area functionality
|
136 |
* of the plugin.
|
155 |
|
156 |
$this->loader->add_filter( "plugin_action_links_creame-whatsapp-me/{$this->plugin_name}.php", $plugin_admin, 'settings_link' );
|
157 |
$this->loader->add_filter( 'plugin_row_meta', $plugin_admin, 'plugin_links', 10, 2 );
|
158 |
+
$this->loader->add_filter( 'admin_footer_text', $plugin_admin, 'admin_footer_text', PHP_INT_MAX );
|
159 |
|
160 |
}
|
161 |
|
186 |
* @access private
|
187 |
* @return void
|
188 |
*/
|
189 |
+
public function update_wame( $option = false ) {
|
190 |
global $wpdb;
|
191 |
|
192 |
+
$wame_option = get_option( 'whatsappme' );
|
193 |
|
194 |
+
if ( false !== $wame_option ) {
|
195 |
// General option
|
196 |
+
$option = $wame_option;
|
197 |
+
update_option( 'joinchat', $option );
|
198 |
delete_option( 'whatsappme' );
|
199 |
|
200 |
// Post metas
|
218 |
}
|
219 |
}
|
220 |
|
221 |
+
return $option;
|
222 |
+
|
223 |
}
|
224 |
|
225 |
/**
|
joinchat.php
CHANGED
@@ -9,7 +9,7 @@
|
|
9 |
* Plugin Name: Join.chat
|
10 |
* Plugin URI: https://join.chat
|
11 |
* Description: Connects a WordPress chat with WhatsApp. The best solution for marketing and support. Stop losing customers and increase your sales.
|
12 |
-
* Version: 4.0.
|
13 |
* Author: Creame
|
14 |
* Author URI: https://crea.me
|
15 |
* License: GPL-2.0+
|
@@ -27,7 +27,7 @@ if ( ! defined( 'WPINC' ) ) {
|
|
27 |
* Currently plugin version.
|
28 |
* Start at version 1.0.0 and use SemVer - https://semver.org
|
29 |
*/
|
30 |
-
define( 'JOINCHAT_VERSION', '4.0.
|
31 |
|
32 |
/**
|
33 |
* The core plugin class that is used to define internationalization,
|
9 |
* Plugin Name: Join.chat
|
10 |
* Plugin URI: https://join.chat
|
11 |
* Description: Connects a WordPress chat with WhatsApp. The best solution for marketing and support. Stop losing customers and increase your sales.
|
12 |
+
* Version: 4.0.10
|
13 |
* Author: Creame
|
14 |
* Author URI: https://crea.me
|
15 |
* License: GPL-2.0+
|
27 |
* Currently plugin version.
|
28 |
* Start at version 1.0.0 and use SemVer - https://semver.org
|
29 |
*/
|
30 |
+
define( 'JOINCHAT_VERSION', '4.0.10' );
|
31 |
|
32 |
/**
|
33 |
* The core plugin class that is used to define internationalization,
|
languages/creame-whatsapp-me.pot
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
msgid ""
|
3 |
msgstr ""
|
4 |
"Project-Id-Version: Join.chat\n"
|
5 |
-
"POT-Creation-Date: 2020-
|
6 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
7 |
"Last-Translator: Your Name <you@example.com>\n"
|
8 |
"Language-Team: Creame <hola@crea.me>\n"
|
@@ -26,13 +26,13 @@ msgstr ""
|
|
26 |
msgid "Open chat"
|
27 |
msgstr ""
|
28 |
|
29 |
-
#: public/class-joinchat-public.php:
|
30 |
#: admin/class-joinchat-admin.php:686 admin/class-joinchat-admin.php:782
|
31 |
msgctxt "url lang slug (only available for spanish \"es\")"
|
32 |
msgid "en"
|
33 |
msgstr ""
|
34 |
|
35 |
-
#: public/class-joinchat-public.php:
|
36 |
msgid "Close"
|
37 |
msgstr ""
|
38 |
|
@@ -449,7 +449,7 @@ msgid "only show if it's an not seen CTA."
|
|
449 |
msgstr ""
|
450 |
|
451 |
#: admin/class-joinchat-admin.php:740
|
452 |
-
msgid "to show
|
453 |
msgstr ""
|
454 |
|
455 |
#: admin/class-joinchat-admin.php:762
|
@@ -493,6 +493,11 @@ msgstr ""
|
|
493 |
msgid "You can use vars"
|
494 |
msgstr ""
|
495 |
|
|
|
|
|
|
|
|
|
|
|
496 |
#: admin/class-joinchat-wooadmin.php:128
|
497 |
msgid "Shop"
|
498 |
msgstr ""
|
2 |
msgid ""
|
3 |
msgstr ""
|
4 |
"Project-Id-Version: Join.chat\n"
|
5 |
+
"POT-Creation-Date: 2020-09-17 10:40+0000\n"
|
6 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
7 |
"Last-Translator: Your Name <you@example.com>\n"
|
8 |
"Language-Team: Creame <hola@crea.me>\n"
|
26 |
msgid "Open chat"
|
27 |
msgstr ""
|
28 |
|
29 |
+
#: public/class-joinchat-public.php:251 admin/class-joinchat-admin.php:507
|
30 |
#: admin/class-joinchat-admin.php:686 admin/class-joinchat-admin.php:782
|
31 |
msgctxt "url lang slug (only available for spanish \"es\")"
|
32 |
msgid "en"
|
33 |
msgstr ""
|
34 |
|
35 |
+
#: public/class-joinchat-public.php:313
|
36 |
msgid "Close"
|
37 |
msgstr ""
|
38 |
|
449 |
msgstr ""
|
450 |
|
451 |
#: admin/class-joinchat-admin.php:740
|
452 |
+
msgid "to show always."
|
453 |
msgstr ""
|
454 |
|
455 |
#: admin/class-joinchat-admin.php:762
|
493 |
msgid "You can use vars"
|
494 |
msgstr ""
|
495 |
|
496 |
+
#: admin/class-joinchat-admin.php:1071
|
497 |
+
#, php-format
|
498 |
+
msgid "Do you like %1$s? Please leave us a %2$s rating."
|
499 |
+
msgstr ""
|
500 |
+
|
501 |
#: admin/class-joinchat-wooadmin.php:128
|
502 |
msgid "Shop"
|
503 |
msgstr ""
|
public/css/joinchat.css
CHANGED
@@ -262,6 +262,7 @@
|
|
262 |
line-height: 31px;
|
263 |
white-space: nowrap;
|
264 |
opacity: 0;
|
|
|
265 |
filter: drop-shadow(0 1px 4px rgba(0, 0, 0, 0.4));
|
266 |
transform: translateZ(0);
|
267 |
pointer-events: none;
|
@@ -287,6 +288,14 @@
|
|
287 |
animation: joinchat_tootlip 20s linear 5s 1 normal both;
|
288 |
}
|
289 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
290 |
.joinchat--chatbox .joinchat__tooltip {
|
291 |
display: none;
|
292 |
}
|
262 |
line-height: 31px;
|
263 |
white-space: nowrap;
|
264 |
opacity: 0;
|
265 |
+
transition: opacity 0.3s ease-out 0.4s;
|
266 |
filter: drop-shadow(0 1px 4px rgba(0, 0, 0, 0.4));
|
267 |
transform: translateZ(0);
|
268 |
pointer-events: none;
|
288 |
animation: joinchat_tootlip 20s linear 5s 1 normal both;
|
289 |
}
|
290 |
|
291 |
+
@media (hover: hover) {
|
292 |
+
.joinchat__button:hover .joinchat__tooltip {
|
293 |
+
opacity: 1;
|
294 |
+
animation: none;
|
295 |
+
transition: opacity 0.2s;
|
296 |
+
}
|
297 |
+
}
|
298 |
+
|
299 |
.joinchat--chatbox .joinchat__tooltip {
|
300 |
display: none;
|
301 |
}
|
public/css/joinchat.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.joinchat{--bottom:20px;--sep:20px;--header:70px;--btn:60px;--red:37;--green:211;--blue:102;--rgb:var(--red),var(--green),var(--blue);--color:rgb(var(--rgb));--dark:rgb(calc(var(--red) - 75),calc(var(--green) - 75),calc(var(--blue) - 75));--hover:rgb(calc(var(--red) + 50),calc(var(--green) + 50),calc(var(--blue) + 50));--bg:rgba(var(--rgb),0.04);--tolerance:210;--bw:calc((var(--red)*0.2126 + var(--green)*0.7152 + var(--blue)*0.0722 - var(--tolerance))*-100000);--text:rgba(var(--bw),var(--bw),var(--bw),min(1,max(0.7,var(--bw))));--msg:var(--color);position:fixed;z-index:1000;right:var(--sep);bottom:var(--bottom);color:var(--text);font:normal normal normal 16px/1.625em -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;letter-spacing:0;transform:scale3d(0,0,0);transition:transform .3s ease-in-out;-webkit-user-select:none;-ms-user-select:none;user-select:none;-webkit-font-smoothing:antialiased}.joinchat *,.joinchat :after,.joinchat :before{box-sizing:border-box}.joinchat--show{transform:scaleX(1);transition:transform .5s cubic-bezier(.18,.89,.32,1.28)}.joinchat.joinchat--left{right:auto;left:var(--sep)}@media (max-width:480px),(orientation:landscape) and (max-width:767px){.joinchat{--bottom:6px;--sep:6px;--header:55px}}.joinchat.joinchat--dark{--msg:var(--dark)}@media (color-index:48){.joinchat.joinchat--dark-auto{--msg:var(--dark)}}@media (prefers-color-scheme:dark){.joinchat.joinchat--dark-auto{--msg:var(--dark)}}.joinchat__button{display:flex;flex-direction:row;position:absolute;z-index:2;bottom:8px;right:8px;height:var(--btn);min-width:var(--btn);max-width:95vw;background:#25d366;color:inherit;border-radius:calc(var(--btn)/2);box-shadow:1px 6px 24px 0 rgba(7,94,84,.24);cursor:pointer;transition:background .2s linear;-webkit-tap-highlight-color:rgba(0,0,0,0);will-change:background-color,width}.joinchat__button:hover{background:#128c7e;transition:background 1.5s linear}.joinchat__button:active{background:#128c7e;transition:none}.joinchat--chatbox .joinchat__button{background:var(--color);transition:background .2s linear;box-shadow:0 1px 2px 0 rgba(0,0,0,.3)}.joinchat--chatbox .joinchat__button:active,.joinchat--chatbox .joinchat__button:hover{background:var(--hover)}[dir=rtl] .joinchat__button{flex-direction:row-reverse}.joinchat--left .joinchat__button{right:auto;left:8px;flex-direction:row-reverse}[dir=rtl] .joinchat--left .joinchat__button{flex-direction:row}.joinchat__button__open{width:var(--btn);height:var(--btn);background:transparent url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M3.516 3.516c4.686-4.686 12.284-4.686 16.97 0 4.686 4.686 4.686 12.283 0 16.97a12.004 12.004 0 01-13.754 2.299l-5.814.735a.392.392 0 01-.438-.44l.748-5.788A12.002 12.002 0 013.517 3.517zm3.61 17.043l.3.158a9.846 9.846 0 0011.534-1.758c3.843-3.843 3.843-10.074 0-13.918-3.843-3.843-10.075-3.843-13.918 0a9.846 9.846 0 00-1.747 11.554l.16.303-.51 3.942a.196.196 0 00.219.22l3.961-.501zm6.534-7.003l-.933 1.164a9.843 9.843 0 01-3.497-3.495l1.166-.933a.792.792 0 00.23-.94L9.561 6.96a.793.793 0 00-.924-.445 1291.6 1291.6 0 00-2.023.524.797.797 0 00-.588.88 11.754 11.754 0 0010.005 10.005.797.797 0 00.88-.587l.525-2.023a.793.793 0 00-.445-.923L14.6 13.327a.792.792 0 00-.94.23z'/%3E%3C/svg%3E") 50% no-repeat;background-size:60%}.joinchat--chatbox .joinchat__button__open{display:none}.joinchat__button__image{position:absolute;top:1px;right:1px;width:calc(var(--btn) - 2px);height:calc(var(--btn) - 2px);border-radius:50%;overflow:hidden;opacity:0}.joinchat__button__image img{display:block;width:100%;height:100%;object-fit:cover}.joinchat--show .joinchat__button__image{animation:joinchat_image_loop 20s linear 5s infinite normal both}.joinchat--image .joinchat__button__image{opacity:1;animation:none}.joinchat--chatbox .joinchat__button__image{display:none}.joinchat__button__send{display:none;width:var(--btn);height:var(--btn);max-width:var(--btn);padding:12px 11px 12px 13px;margin:0;flex-shrink:0}.joinchat--chatbox .joinchat__button__send{display:block}.joinchat__button__send path{fill:none!important;stroke:var(--text)!important}.joinchat__button__send .joinchat_svg__plain{stroke-dasharray:1097;stroke-dashoffset:1097;animation:joinchat_plain 6s .2s ease-in-out infinite}.joinchat__button__send .joinchat_svg__chat{stroke-dasharray:1020;stroke-dashoffset:1020;animation:joinchat_chat 6s 3.2s ease-in-out infinite}.joinchat__button__sendtext{padding:0;max-width:0;font-weight:600;line-height:var(--btn);white-space:nowrap;opacity:0;overflow:hidden;transition:none}.joinchat--chatbox .joinchat__button__sendtext{padding:0 4px 0 24px;max-width:200px;opacity:1;transition:max-width .2s linear,opacity .4s ease-out .2s}.joinchat--chatbox.joinchat--left .joinchat__button__sendtext{padding:0 24px 0 4px}.joinchat__badge{position:absolute;top:-4px;right:-4px;width:20px;height:20px;border:none;border-radius:50%;background:#e82c0c;color:#fff;font-size:12px;font-weight:600;line-height:20px;text-align:center;box-shadow:none;opacity:0;pointer-events:none}.joinchat__badge.joinchat__badge--in{animation:joinchat_badge_in .5s cubic-bezier(.27,.9,.41,1.28) 1 both}.joinchat__badge.joinchat__badge--out{animation:joinchat_badge_out .4s cubic-bezier(.215,.61,.355,1) 1 both}.joinchat__tooltip{position:absolute;top:14px;right:76px;max-width:calc(100vw - 105px);height:32px;padding:0 14px;border:none;border-radius:16px;background:#fff;color:rgba(0,0,0,.8);line-height:31px;white-space:nowrap;opacity:0;filter:drop-shadow(0 1px 4px rgba(0,0,0,.4));transform:translateZ(0);pointer-events:none}.joinchat__tooltip:after{content:"";display:block;position:absolute;top:10px;right:-6px;border:8px solid transparent;border-width:6px 0 6px 8px;border-left-color:#fff}.joinchat__tooltip div{overflow:hidden;text-overflow:ellipsis}.joinchat--tooltip .joinchat__tooltip{animation:joinchat_tootlip 20s linear 5s 1 normal both}.joinchat--chatbox .joinchat__tooltip{display:none}.joinchat--left .joinchat__tooltip{right:auto;left:76px}.joinchat--left .joinchat__tooltip:after{left:-6px;right:auto;border-color:transparent;border-width:6px 8px 6px 0;border-right-color:#fff}.joinchat__box{display:flex;flex-direction:column;position:absolute;bottom:0;right:0;z-index:1;width:calc(100vw - var(--sep)*2);max-width:400px;min-height:170px;max-height:calc(100vh - var(--bottom) - var(--sep));border-radius:32px;background:transparent;box-shadow:0 2px 6px 0 rgba(0,0,0,.5);text-align:left;overflow:hidden;transform:scale3d(0,0,0);opacity:0;transition:opacity .4s ease-out,transform 0ms linear .3s}.joinchat--chatbox .joinchat__box{opacity:1;transform:scaleX(1);transition:opacity .2s ease-out,transform 0ms linear}.joinchat--left .joinchat__box{right:auto;left:0}.joinchat__header{position:relative;flex-shrink:0;height:var(--header);line-height:var(--header);padding:0 26px;margin:0;background:var(--color);text-align:left}[dir=rtl] .joinchat__header{text-align:right}.joinchat--dark .joinchat__header{background:var(--dark)}.joinchat__copy{font-size:11px;line-height:18px;color:inherit!important;text-decoration:none!important;fill:currentColor;opacity:.8}.joinchat__copy svg{display:inline-block;width:auto;height:18px;vertical-align:-26%}a.joinchat__copy:active,a.joinchat__copy:hover{color:inherit!important;text-decoration:none!important;opacity:.9}.joinchat__close{position:absolute;top:50%;right:24px;width:34px;height:34px;margin-top:-16px;border-radius:50%;background:rgba(0,0,0,.4) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M24 2.4L21.6 0 12 9.6 2.4 0 0 2.4 9.6 12 0 21.6 2.4 24l9.6-9.6 9.6 9.6 2.4-2.4-9.6-9.6L24 2.4z'/%3E%3C/svg%3E") 50% no-repeat;background-size:12px;cursor:pointer;transition:background-color .3s ease-out;-webkit-tap-highlight-color:rgba(0,0,0,0)}.joinchat__close:hover{background-color:rgba(0,0,0,.6)}[dir=rtl] .joinchat__close{right:auto;left:24px}.joinchat__box__scroll{padding:20px 0 70px;padding-bottom:calc(var(--btn) + 10px);background:#fff linear-gradient(0deg,var(--bg),var(--bg));overflow-x:hidden;overflow-y:auto;will-change:scroll-position}.joinchat__box__scroll::-webkit-scrollbar{width:5px;background:transparent}.joinchat__box__scroll::-webkit-scrollbar-thumb{border-radius:3px;background:transparent}.joinchat__box__scroll:hover::-webkit-scrollbar-thumb{background:rgba(0,0,0,.2)}.joinchat--blur .joinchat__box__scroll{background:rgba(var(--rgb),.2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.joinchat--dark .joinchat__box__scroll{background:#1a1a1a}@supports (-webkit-overflow-scrolling:touch){.joinchat__box__scroll{overflow-y:scroll;-webkit-overflow-scrolling:touch}}@media (max-width:480px),(orientation:landscape) and (max-width:767px){.joinchat__close{margin-top:-14px;width:28px;height:28px}.joinchat__box__scroll{padding-top:15px}}@media (color-index:48){.joinchat--dark-auto .joinchat__box__scroll{background:#1a1a1a}.joinchat--dark-auto .joinchat__header{background:var(--dark)}}@media (prefers-color-scheme:dark){.joinchat--dark-auto .joinchat__box__scroll{background:#1a1a1a}.joinchat--dark-auto .joinchat__header{background:var(--dark)}}.joinchat__message{position:relative;min-height:60px;padding:17px 20px;margin:0 26px 26px;border-radius:32px;background:#fff;color:#4a4a4a;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3));transform:translateZ(0)}.joinchat__message:before{content:"";display:block;position:absolute;bottom:20px;left:-15px;width:17px;height:25px;background:inherit;-webkit-clip-path:url(#joinchat__message__peak);clip-path:url(#joinchat__message__peak)}.joinchat--dark .joinchat__message{background:#505050;color:#d8d8d8}@media (color-index:48){.joinchat--dark-auto .joinchat__message{background:#505050;color:#d8d8d8}}@media (prefers-color-scheme:dark){.joinchat--dark-auto .joinchat__message{background:#505050;color:#d8d8d8}}@media (max-width:480px),(orientation:landscape) and (max-width:767px){.joinchat__message{padding:18px 16px;line-height:24px;margin:0 20px 20px}}@keyframes joinchat_badge_in{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}@keyframes joinchat_badge_out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}@keyframes joinchat_plain{0%,50%,to{stroke-dashoffset:1097}5%,45%{stroke-dashoffset:0}}@keyframes joinchat_chat{0%,50%,to{stroke-dashoffset:1020}5%,45%{stroke-dashoffset:0}}@keyframes joinchat_image_loop{0%{opacity:0}3%,20%{opacity:1}25%,to{opacity:0}}@keyframes joinchat_tootlip{0%{opacity:0;transform:scaleY(0)}1%,20%{opacity:1;transform:scaleY(1)}25%,to{opacity:0;transform:scaleY(1)}}
|
1 |
+
.joinchat{--bottom:20px;--sep:20px;--header:70px;--btn:60px;--red:37;--green:211;--blue:102;--rgb:var(--red),var(--green),var(--blue);--color:rgb(var(--rgb));--dark:rgb(calc(var(--red) - 75),calc(var(--green) - 75),calc(var(--blue) - 75));--hover:rgb(calc(var(--red) + 50),calc(var(--green) + 50),calc(var(--blue) + 50));--bg:rgba(var(--rgb),0.04);--tolerance:210;--bw:calc((var(--red)*0.2126 + var(--green)*0.7152 + var(--blue)*0.0722 - var(--tolerance))*-100000);--text:rgba(var(--bw),var(--bw),var(--bw),min(1,max(0.7,var(--bw))));--msg:var(--color);position:fixed;z-index:1000;right:var(--sep);bottom:var(--bottom);color:var(--text);font:normal normal normal 16px/1.625em -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;letter-spacing:0;transform:scale3d(0,0,0);transition:transform .3s ease-in-out;-webkit-user-select:none;-ms-user-select:none;user-select:none;-webkit-font-smoothing:antialiased}.joinchat *,.joinchat :after,.joinchat :before{box-sizing:border-box}.joinchat--show{transform:scaleX(1);transition:transform .5s cubic-bezier(.18,.89,.32,1.28)}.joinchat.joinchat--left{right:auto;left:var(--sep)}@media (max-width:480px),(orientation:landscape) and (max-width:767px){.joinchat{--bottom:6px;--sep:6px;--header:55px}}.joinchat.joinchat--dark{--msg:var(--dark)}@media (color-index:48){.joinchat.joinchat--dark-auto{--msg:var(--dark)}}@media (prefers-color-scheme:dark){.joinchat.joinchat--dark-auto{--msg:var(--dark)}}.joinchat__button{display:flex;flex-direction:row;position:absolute;z-index:2;bottom:8px;right:8px;height:var(--btn);min-width:var(--btn);max-width:95vw;background:#25d366;color:inherit;border-radius:calc(var(--btn)/2);box-shadow:1px 6px 24px 0 rgba(7,94,84,.24);cursor:pointer;transition:background .2s linear;-webkit-tap-highlight-color:rgba(0,0,0,0);will-change:background-color,width}.joinchat__button:hover{background:#128c7e;transition:background 1.5s linear}.joinchat__button:active{background:#128c7e;transition:none}.joinchat--chatbox .joinchat__button{background:var(--color);transition:background .2s linear;box-shadow:0 1px 2px 0 rgba(0,0,0,.3)}.joinchat--chatbox .joinchat__button:active,.joinchat--chatbox .joinchat__button:hover{background:var(--hover)}[dir=rtl] .joinchat__button{flex-direction:row-reverse}.joinchat--left .joinchat__button{right:auto;left:8px;flex-direction:row-reverse}[dir=rtl] .joinchat--left .joinchat__button{flex-direction:row}.joinchat__button__open{width:var(--btn);height:var(--btn);background:transparent url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M3.516 3.516c4.686-4.686 12.284-4.686 16.97 0 4.686 4.686 4.686 12.283 0 16.97a12.004 12.004 0 01-13.754 2.299l-5.814.735a.392.392 0 01-.438-.44l.748-5.788A12.002 12.002 0 013.517 3.517zm3.61 17.043l.3.158a9.846 9.846 0 0011.534-1.758c3.843-3.843 3.843-10.074 0-13.918-3.843-3.843-10.075-3.843-13.918 0a9.846 9.846 0 00-1.747 11.554l.16.303-.51 3.942a.196.196 0 00.219.22l3.961-.501zm6.534-7.003l-.933 1.164a9.843 9.843 0 01-3.497-3.495l1.166-.933a.792.792 0 00.23-.94L9.561 6.96a.793.793 0 00-.924-.445 1291.6 1291.6 0 00-2.023.524.797.797 0 00-.588.88 11.754 11.754 0 0010.005 10.005.797.797 0 00.88-.587l.525-2.023a.793.793 0 00-.445-.923L14.6 13.327a.792.792 0 00-.94.23z'/%3E%3C/svg%3E") 50% no-repeat;background-size:60%}.joinchat--chatbox .joinchat__button__open{display:none}.joinchat__button__image{position:absolute;top:1px;right:1px;width:calc(var(--btn) - 2px);height:calc(var(--btn) - 2px);border-radius:50%;overflow:hidden;opacity:0}.joinchat__button__image img{display:block;width:100%;height:100%;object-fit:cover}.joinchat--show .joinchat__button__image{animation:joinchat_image_loop 20s linear 5s infinite normal both}.joinchat--image .joinchat__button__image{opacity:1;animation:none}.joinchat--chatbox .joinchat__button__image{display:none}.joinchat__button__send{display:none;width:var(--btn);height:var(--btn);max-width:var(--btn);padding:12px 11px 12px 13px;margin:0;flex-shrink:0}.joinchat--chatbox .joinchat__button__send{display:block}.joinchat__button__send path{fill:none!important;stroke:var(--text)!important}.joinchat__button__send .joinchat_svg__plain{stroke-dasharray:1097;stroke-dashoffset:1097;animation:joinchat_plain 6s .2s ease-in-out infinite}.joinchat__button__send .joinchat_svg__chat{stroke-dasharray:1020;stroke-dashoffset:1020;animation:joinchat_chat 6s 3.2s ease-in-out infinite}.joinchat__button__sendtext{padding:0;max-width:0;font-weight:600;line-height:var(--btn);white-space:nowrap;opacity:0;overflow:hidden;transition:none}.joinchat--chatbox .joinchat__button__sendtext{padding:0 4px 0 24px;max-width:200px;opacity:1;transition:max-width .2s linear,opacity .4s ease-out .2s}.joinchat--chatbox.joinchat--left .joinchat__button__sendtext{padding:0 24px 0 4px}.joinchat__badge{position:absolute;top:-4px;right:-4px;width:20px;height:20px;border:none;border-radius:50%;background:#e82c0c;color:#fff;font-size:12px;font-weight:600;line-height:20px;text-align:center;box-shadow:none;opacity:0;pointer-events:none}.joinchat__badge.joinchat__badge--in{animation:joinchat_badge_in .5s cubic-bezier(.27,.9,.41,1.28) 1 both}.joinchat__badge.joinchat__badge--out{animation:joinchat_badge_out .4s cubic-bezier(.215,.61,.355,1) 1 both}.joinchat__tooltip{position:absolute;top:14px;right:76px;max-width:calc(100vw - 105px);height:32px;padding:0 14px;border:none;border-radius:16px;background:#fff;color:rgba(0,0,0,.8);line-height:31px;white-space:nowrap;opacity:0;transition:opacity .3s ease-out .4s;filter:drop-shadow(0 1px 4px rgba(0,0,0,.4));transform:translateZ(0);pointer-events:none}.joinchat__tooltip:after{content:"";display:block;position:absolute;top:10px;right:-6px;border:8px solid transparent;border-width:6px 0 6px 8px;border-left-color:#fff}.joinchat__tooltip div{overflow:hidden;text-overflow:ellipsis}.joinchat--tooltip .joinchat__tooltip{animation:joinchat_tootlip 20s linear 5s 1 normal both}@media (hover:hover){.joinchat__button:hover .joinchat__tooltip{opacity:1;animation:none;transition:opacity .2s}}.joinchat--chatbox .joinchat__tooltip{display:none}.joinchat--left .joinchat__tooltip{right:auto;left:76px}.joinchat--left .joinchat__tooltip:after{left:-6px;right:auto;border-color:transparent;border-width:6px 8px 6px 0;border-right-color:#fff}.joinchat__box{display:flex;flex-direction:column;position:absolute;bottom:0;right:0;z-index:1;width:calc(100vw - var(--sep)*2);max-width:400px;min-height:170px;max-height:calc(100vh - var(--bottom) - var(--sep));border-radius:32px;background:transparent;box-shadow:0 2px 6px 0 rgba(0,0,0,.5);text-align:left;overflow:hidden;transform:scale3d(0,0,0);opacity:0;transition:opacity .4s ease-out,transform 0ms linear .3s}.joinchat--chatbox .joinchat__box{opacity:1;transform:scaleX(1);transition:opacity .2s ease-out,transform 0ms linear}.joinchat--left .joinchat__box{right:auto;left:0}.joinchat__header{position:relative;flex-shrink:0;height:var(--header);line-height:var(--header);padding:0 26px;margin:0;background:var(--color);text-align:left}[dir=rtl] .joinchat__header{text-align:right}.joinchat--dark .joinchat__header{background:var(--dark)}.joinchat__copy{font-size:11px;line-height:18px;color:inherit!important;text-decoration:none!important;fill:currentColor;opacity:.8}.joinchat__copy svg{display:inline-block;width:auto;height:18px;vertical-align:-26%}a.joinchat__copy:active,a.joinchat__copy:hover{color:inherit!important;text-decoration:none!important;opacity:.9}.joinchat__close{position:absolute;top:50%;right:24px;width:34px;height:34px;margin-top:-16px;border-radius:50%;background:rgba(0,0,0,.4) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M24 2.4L21.6 0 12 9.6 2.4 0 0 2.4 9.6 12 0 21.6 2.4 24l9.6-9.6 9.6 9.6 2.4-2.4-9.6-9.6L24 2.4z'/%3E%3C/svg%3E") 50% no-repeat;background-size:12px;cursor:pointer;transition:background-color .3s ease-out;-webkit-tap-highlight-color:rgba(0,0,0,0)}.joinchat__close:hover{background-color:rgba(0,0,0,.6)}[dir=rtl] .joinchat__close{right:auto;left:24px}.joinchat__box__scroll{padding:20px 0 70px;padding-bottom:calc(var(--btn) + 10px);background:#fff linear-gradient(0deg,var(--bg),var(--bg));overflow-x:hidden;overflow-y:auto;will-change:scroll-position}.joinchat__box__scroll::-webkit-scrollbar{width:5px;background:transparent}.joinchat__box__scroll::-webkit-scrollbar-thumb{border-radius:3px;background:transparent}.joinchat__box__scroll:hover::-webkit-scrollbar-thumb{background:rgba(0,0,0,.2)}.joinchat--blur .joinchat__box__scroll{background:rgba(var(--rgb),.2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.joinchat--dark .joinchat__box__scroll{background:#1a1a1a}@supports (-webkit-overflow-scrolling:touch){.joinchat__box__scroll{overflow-y:scroll;-webkit-overflow-scrolling:touch}}@media (max-width:480px),(orientation:landscape) and (max-width:767px){.joinchat__close{margin-top:-14px;width:28px;height:28px}.joinchat__box__scroll{padding-top:15px}}@media (color-index:48){.joinchat--dark-auto .joinchat__box__scroll{background:#1a1a1a}.joinchat--dark-auto .joinchat__header{background:var(--dark)}}@media (prefers-color-scheme:dark){.joinchat--dark-auto .joinchat__box__scroll{background:#1a1a1a}.joinchat--dark-auto .joinchat__header{background:var(--dark)}}.joinchat__message{position:relative;min-height:60px;padding:17px 20px;margin:0 26px 26px;border-radius:32px;background:#fff;color:#4a4a4a;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3));transform:translateZ(0)}.joinchat__message:before{content:"";display:block;position:absolute;bottom:20px;left:-15px;width:17px;height:25px;background:inherit;-webkit-clip-path:url(#joinchat__message__peak);clip-path:url(#joinchat__message__peak)}.joinchat--dark .joinchat__message{background:#505050;color:#d8d8d8}@media (color-index:48){.joinchat--dark-auto .joinchat__message{background:#505050;color:#d8d8d8}}@media (prefers-color-scheme:dark){.joinchat--dark-auto .joinchat__message{background:#505050;color:#d8d8d8}}@media (max-width:480px),(orientation:landscape) and (max-width:767px){.joinchat__message{padding:18px 16px;line-height:24px;margin:0 20px 20px}}@keyframes joinchat_badge_in{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}@keyframes joinchat_badge_out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}@keyframes joinchat_plain{0%,50%,to{stroke-dashoffset:1097}5%,45%{stroke-dashoffset:0}}@keyframes joinchat_chat{0%,50%,to{stroke-dashoffset:1020}5%,45%{stroke-dashoffset:0}}@keyframes joinchat_image_loop{0%{opacity:0}3%,20%{opacity:1}25%,to{opacity:0}}@keyframes joinchat_tootlip{0%{opacity:0;transform:scaleY(0)}1%,20%{opacity:1;transform:scaleY(1)}25%,to{opacity:0;transform:scaleY(1)}}
|
public/js/joinchat.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
-
(function ($,
|
2 |
'use strict';
|
3 |
|
4 |
-
|
5 |
|
6 |
joinchat_obj = $.extend({
|
7 |
$div: null,
|
@@ -17,7 +17,7 @@
|
|
17 |
|
18 |
// Trigger Google Analytics event
|
19 |
joinchat_obj.send_event = function (label, action) {
|
20 |
-
var ga_tracker =
|
21 |
label = label || '';
|
22 |
action = action || 'click';
|
23 |
|
@@ -68,7 +68,7 @@
|
|
68 |
this.$('.joinchat__badge').toggleClass('joinchat__badge--in joinchat__badge--out');
|
69 |
}
|
70 |
// Trigger custom event
|
71 |
-
$(
|
72 |
}
|
73 |
};
|
74 |
|
@@ -81,7 +81,7 @@
|
|
81 |
this.$('.joinchat__badge').removeClass('joinchat__badge--out');
|
82 |
}
|
83 |
// Trigger custom event
|
84 |
-
$(
|
85 |
}
|
86 |
};
|
87 |
|
@@ -100,14 +100,14 @@
|
|
100 |
var secure_link = new RegExp("^https?:\/\/(wa\.me|(api|web|chat)\.whatsapp\.com|" + location.hostname.replace('.', '\.') + ")\/.*", 'i');
|
101 |
|
102 |
// Trigger custom event (args obj allow edit link by third party scripts)
|
103 |
-
$(
|
104 |
|
105 |
// Ensure the link is safe
|
106 |
if (secure_link.test(args.link)) {
|
107 |
// Send analytics events
|
108 |
this.send_event(args.link);
|
109 |
// Open WhatsApp link
|
110 |
-
|
111 |
} else {
|
112 |
console.error("Join.chat: the link doesn't seem safe, it must point to the current domain or whatsapp.com");
|
113 |
}
|
@@ -145,7 +145,7 @@
|
|
145 |
joinchat_magic();
|
146 |
} else {
|
147 |
// Launch WhatsApp when click on nodes with class "joinchat_open"
|
148 |
-
$(
|
149 |
e.preventDefault();
|
150 |
joinchat_obj.open_whatsapp();
|
151 |
});
|
@@ -155,7 +155,7 @@
|
|
155 |
joinchat_obj.store.setItem('joinchat_views', parseInt(joinchat_obj.store.getItem('joinchat_views') || 0) + 1);
|
156 |
|
157 |
function joinchat_magic() {
|
158 |
-
$(
|
159 |
|
160 |
var button_delay = joinchat_obj.settings.button_delay * 1000;
|
161 |
var chat_delay = joinchat_obj.settings.message_delay * 1000;
|
@@ -221,35 +221,45 @@
|
|
221 |
this.scrollTop += (delta < 0 ? 1 : -1) * 30;
|
222 |
});
|
223 |
|
224 |
-
// Hide on mobile when virtual keyboard is open
|
225 |
if (joinchat_obj.is_mobile) {
|
226 |
-
var initial_height = window.innerHeight;
|
227 |
var timeoutKB;
|
228 |
|
229 |
-
|
230 |
-
if (
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
231 |
clearTimeout(timeoutKB);
|
232 |
-
timeoutKB = setTimeout(
|
233 |
-
joinchat_obj.$div.toggleClass('joinchat--show', window.innerHeight > initial_height * 0.7);
|
234 |
-
}, 800);
|
235 |
}
|
236 |
});
|
237 |
}
|
238 |
|
239 |
// Open Join.chat or launch WhatsApp when click on nodes with class "joinchat_open"
|
240 |
-
$(
|
241 |
e.preventDefault();
|
242 |
if (!joinchat_obj.chatbox) joinchat_click();
|
243 |
});
|
244 |
|
245 |
// Close Join.chat when click on nodes with class "joinchat_close"
|
246 |
-
$(
|
247 |
e.preventDefault();
|
248 |
chatbox_hide();
|
249 |
});
|
250 |
|
251 |
// Open Join.chat when "joinchat_open" or "joinchat_force_show" on viewport
|
252 |
-
if (has_chatbox && 'IntersectionObserver' in
|
253 |
var $show_on_scroll = $('.joinchat_show, .joinchat_force_show');
|
254 |
|
255 |
function joinchat_observed(objs) {
|
@@ -268,9 +278,9 @@
|
|
268 |
}
|
269 |
}
|
270 |
|
271 |
-
$(
|
272 |
}
|
273 |
|
274 |
});
|
275 |
|
276 |
-
}(jQuery, window));
|
1 |
+
(function ($, win, doc) {
|
2 |
'use strict';
|
3 |
|
4 |
+
win.joinchat_obj = win.joinchat_obj || {};
|
5 |
|
6 |
joinchat_obj = $.extend({
|
7 |
$div: null,
|
17 |
|
18 |
// Trigger Google Analytics event
|
19 |
joinchat_obj.send_event = function (label, action) {
|
20 |
+
var ga_tracker = win[this.settings.ga_tracker || 'ga'];
|
21 |
label = label || '';
|
22 |
action = action || 'click';
|
23 |
|
68 |
this.$('.joinchat__badge').toggleClass('joinchat__badge--in joinchat__badge--out');
|
69 |
}
|
70 |
// Trigger custom event
|
71 |
+
$(doc).trigger('joinchat:show');
|
72 |
}
|
73 |
};
|
74 |
|
81 |
this.$('.joinchat__badge').removeClass('joinchat__badge--out');
|
82 |
}
|
83 |
// Trigger custom event
|
84 |
+
$(doc).trigger('joinchat:hide');
|
85 |
}
|
86 |
};
|
87 |
|
100 |
var secure_link = new RegExp("^https?:\/\/(wa\.me|(api|web|chat)\.whatsapp\.com|" + location.hostname.replace('.', '\.') + ")\/.*", 'i');
|
101 |
|
102 |
// Trigger custom event (args obj allow edit link by third party scripts)
|
103 |
+
$(doc).trigger('joinchat:open', [args, this.settings]);
|
104 |
|
105 |
// Ensure the link is safe
|
106 |
if (secure_link.test(args.link)) {
|
107 |
// Send analytics events
|
108 |
this.send_event(args.link);
|
109 |
// Open WhatsApp link
|
110 |
+
win.open(args.link, 'joinchat');
|
111 |
} else {
|
112 |
console.error("Join.chat: the link doesn't seem safe, it must point to the current domain or whatsapp.com");
|
113 |
}
|
145 |
joinchat_magic();
|
146 |
} else {
|
147 |
// Launch WhatsApp when click on nodes with class "joinchat_open"
|
148 |
+
$(doc).on('click', '.joinchat_open', function (e) {
|
149 |
e.preventDefault();
|
150 |
joinchat_obj.open_whatsapp();
|
151 |
});
|
155 |
joinchat_obj.store.setItem('joinchat_views', parseInt(joinchat_obj.store.getItem('joinchat_views') || 0) + 1);
|
156 |
|
157 |
function joinchat_magic() {
|
158 |
+
$(doc).trigger('joinchat:starting');
|
159 |
|
160 |
var button_delay = joinchat_obj.settings.button_delay * 1000;
|
161 |
var chat_delay = joinchat_obj.settings.message_delay * 1000;
|
221 |
this.scrollTop += (delta < 0 ? 1 : -1) * 30;
|
222 |
});
|
223 |
|
224 |
+
// Hide on mobile when virtual keyboard is open (on fill forms)
|
225 |
if (joinchat_obj.is_mobile) {
|
|
|
226 |
var timeoutKB;
|
227 |
|
228 |
+
function form_focus_toggle() {
|
229 |
+
if (['input', 'textarea', 'select'].indexOf(doc.activeElement.tagName.toLowerCase()) >= 0) {
|
230 |
+
if (joinchat_obj.chatbox) {
|
231 |
+
joinchat_obj.chatbox_hide();
|
232 |
+
setTimeout(function () { joinchat_obj.$div.removeClass('joinchat--show'); }, 400);
|
233 |
+
} else {
|
234 |
+
joinchat_obj.$div.removeClass('joinchat--show');
|
235 |
+
}
|
236 |
+
} else {
|
237 |
+
joinchat_obj.$div.addClass('joinchat--show');
|
238 |
+
}
|
239 |
+
}
|
240 |
+
|
241 |
+
$(doc).on('focus blur', 'input, textarea, select', function (e) {
|
242 |
+
if (!$(e.target).closest(joinchat_obj.$div).length) {
|
243 |
clearTimeout(timeoutKB);
|
244 |
+
timeoutKB = setTimeout(form_focus_toggle, 200);
|
|
|
|
|
245 |
}
|
246 |
});
|
247 |
}
|
248 |
|
249 |
// Open Join.chat or launch WhatsApp when click on nodes with class "joinchat_open"
|
250 |
+
$(doc).on('click', '.joinchat_open', function (e) {
|
251 |
e.preventDefault();
|
252 |
if (!joinchat_obj.chatbox) joinchat_click();
|
253 |
});
|
254 |
|
255 |
// Close Join.chat when click on nodes with class "joinchat_close"
|
256 |
+
$(doc).on('click', '.joinchat_close', function (e) {
|
257 |
e.preventDefault();
|
258 |
chatbox_hide();
|
259 |
});
|
260 |
|
261 |
// Open Join.chat when "joinchat_open" or "joinchat_force_show" on viewport
|
262 |
+
if (has_chatbox && 'IntersectionObserver' in win) {
|
263 |
var $show_on_scroll = $('.joinchat_show, .joinchat_force_show');
|
264 |
|
265 |
function joinchat_observed(objs) {
|
278 |
}
|
279 |
}
|
280 |
|
281 |
+
$(doc).trigger('joinchat:start');
|
282 |
}
|
283 |
|
284 |
});
|
285 |
|
286 |
+
}(jQuery, window, document));
|
public/js/joinchat.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(t,o){"use strict";o.joinchat_obj=o.joinchat_obj||{},joinchat_obj=t.extend({$div:null,settings:null,store:null,chatbox:!1,is_mobile:!1},joinchat_obj),joinchat_obj.$=function(o){return t(o||this.$div,this.$div)},joinchat_obj.send_event=function(t,e){var n=o[this.settings.ga_tracker||"ga"];(t=t||"",e=e||"click","function"==typeof n&&"function"==typeof n.getAll)?(n("set","transport","beacon"),n.getAll().forEach(function(o){o.send("event","JoinChat",e,t)})):"function"==typeof gtag&>ag("event",e,{event_category:"JoinChat",event_label:t,transport_type:"beacon"});"object"==typeof dataLayer&&dataLayer.push({event:"JoinChat",eventAction:e,eventLabel:t}),"function"==typeof fbq&&fbq("trackCustom","JoinChat",{eventAction:e,eventLabel:t})},joinchat_obj.whatsapp_link=function(t,o,e){return((e=void 0!==e?e:this.settings.whatsapp_web&&!this.is_mobile)?"https://web.whatsapp.com/send":"https://api.whatsapp.com/send")+"?phone="+encodeURIComponent(t)+"&text="+encodeURIComponent(o||"")},joinchat_obj.chatbox_show=function(){this.chatbox||(this.chatbox=!0,this.$div.addClass("joinchat--chatbox"),this.settings.message_badge&&this.$(".joinchat__badge").hasClass("joinchat__badge--in")&&this.$(".joinchat__badge").toggleClass("joinchat__badge--in joinchat__badge--out"),t(
|
1 |
+
!function(t,o,e){"use strict";o.joinchat_obj=o.joinchat_obj||{},joinchat_obj=t.extend({$div:null,settings:null,store:null,chatbox:!1,is_mobile:!1},joinchat_obj),joinchat_obj.$=function(o){return t(o||this.$div,this.$div)},joinchat_obj.send_event=function(t,e){var n=o[this.settings.ga_tracker||"ga"];(t=t||"",e=e||"click","function"==typeof n&&"function"==typeof n.getAll)?(n("set","transport","beacon"),n.getAll().forEach(function(o){o.send("event","JoinChat",e,t)})):"function"==typeof gtag&>ag("event",e,{event_category:"JoinChat",event_label:t,transport_type:"beacon"});"object"==typeof dataLayer&&dataLayer.push({event:"JoinChat",eventAction:e,eventLabel:t}),"function"==typeof fbq&&fbq("trackCustom","JoinChat",{eventAction:e,eventLabel:t})},joinchat_obj.whatsapp_link=function(t,o,e){return((e=void 0!==e?e:this.settings.whatsapp_web&&!this.is_mobile)?"https://web.whatsapp.com/send":"https://api.whatsapp.com/send")+"?phone="+encodeURIComponent(t)+"&text="+encodeURIComponent(o||"")},joinchat_obj.chatbox_show=function(){this.chatbox||(this.chatbox=!0,this.$div.addClass("joinchat--chatbox"),this.settings.message_badge&&this.$(".joinchat__badge").hasClass("joinchat__badge--in")&&this.$(".joinchat__badge").toggleClass("joinchat__badge--in joinchat__badge--out"),t(e).trigger("joinchat:show"))},joinchat_obj.chatbox_hide=function(){this.chatbox&&(this.chatbox=!1,this.$div.removeClass("joinchat--chatbox joinchat--tooltip"),this.settings.message_badge&&this.$(".joinchat__badge").removeClass("joinchat__badge--out"),t(e).trigger("joinchat:hide"))},joinchat_obj.save_hash=function(){var t=this.settings.message_hash||"none",o=(this.store.getItem("joinchat_hashes")||"").split(",").filter(Boolean);-1===o.indexOf(t)&&(o.push(t),this.store.setItem("joinchat_hashes",o.join(",")))},joinchat_obj.open_whatsapp=function(n,i){var a={link:this.whatsapp_link(n||this.settings.telephone,i||this.settings.message_send)},s=new RegExp("^https?://(wa.me|(api|web|chat).whatsapp.com|"+location.hostname.replace(".",".")+")/.*","i");t(e).trigger("joinchat:open",[a,this.settings]),s.test(a.link)?(this.send_event(a.link),o.open(a.link,"joinchat")):console.error("Join.chat: the link doesn't seem safe, it must point to the current domain or whatsapp.com")},t(function(){joinchat_obj.$div=t(".joinchat"),joinchat_obj.settings=joinchat_obj.$div.data("settings"),joinchat_obj.is_mobile=!!navigator.userAgent.match(/Android|iPhone|BlackBerry|IEMobile|Opera Mini/i);try{localStorage.setItem("test",1),localStorage.removeItem("test"),joinchat_obj.store=localStorage}catch(t){joinchat_obj.store={_data:{},setItem:function(t,o){this._data[t]=String(o)},getItem:function(t){return this._data.hasOwnProperty(t)?this._data[t]:null}}}if(void 0===joinchat_obj.settings)try{joinchat_obj.settings=JSON.parse(joinchat_obj.$div.attr("data-settings"))}catch(t){joinchat_obj.settings=void 0}joinchat_obj.$div.length&&joinchat_obj.settings&&joinchat_obj.settings.telephone&&(joinchat_obj.is_mobile||!joinchat_obj.settings.mobile_only?function(){t(e).trigger("joinchat:starting");var n,i,a=1e3*joinchat_obj.settings.button_delay,s=1e3*joinchat_obj.settings.message_delay,h=!!joinchat_obj.settings.message_hash,c=!!joinchat_obj.$(".joinchat__box").length,j=parseInt(joinchat_obj.store.getItem("joinchat_views")||1)>=joinchat_obj.settings.message_views,_=-1!==(joinchat_obj.store.getItem("joinchat_hashes")||"").split(",").filter(Boolean).indexOf(joinchat_obj.settings.message_hash||"none");function b(){clearTimeout(i),joinchat_obj.chatbox_show()}function r(){joinchat_obj.save_hash(),joinchat_obj.chatbox_hide()}function l(){c&&!joinchat_obj.chatbox?b():(r(),joinchat_obj.open_whatsapp())}var g="joinchat--show";_||h&&s&&!joinchat_obj.settings.message_badge&&j||(g+=" joinchat--tooltip");setTimeout(function(){joinchat_obj.$div.addClass(g)},a),h&&!_&&s&&(joinchat_obj.settings.message_badge?i=setTimeout(function(){joinchat_obj.$(".joinchat__badge").addClass("joinchat__badge--in")},a+s):j&&(i=setTimeout(b,a+s)));c&&!joinchat_obj.is_mobile&&joinchat_obj.$(".joinchat__button").mouseenter(function(){n=setTimeout(b,1500)}).mouseleave(function(){clearTimeout(n)});if(joinchat_obj.$(".joinchat__button").click(l),joinchat_obj.$(".joinchat__close").click(r),joinchat_obj.$(".joinchat__box__scroll").on("mousewheel DOMMouseScroll",function(t){t.preventDefault();var o=t.originalEvent.wheelDelta||-t.originalEvent.detail;this.scrollTop+=30*(o<0?1:-1)}),joinchat_obj.is_mobile){var u;function d(){["input","textarea","select"].indexOf(e.activeElement.tagName.toLowerCase())>=0?joinchat_obj.chatbox?(joinchat_obj.chatbox_hide(),setTimeout(function(){joinchat_obj.$div.removeClass("joinchat--show")},400)):joinchat_obj.$div.removeClass("joinchat--show"):joinchat_obj.$div.addClass("joinchat--show")}t(e).on("focus blur","input, textarea, select",function(o){t(o.target).closest(joinchat_obj.$div).length||(clearTimeout(u),u=setTimeout(d,200))})}if(t(e).on("click",".joinchat_open",function(t){t.preventDefault(),joinchat_obj.chatbox||l()}),t(e).on("click",".joinchat_close",function(t){t.preventDefault(),r()}),c&&"IntersectionObserver"in o){var p=t(".joinchat_show, .joinchat_force_show");if(p.length>0){var f=new IntersectionObserver(function(o){t.each(o,function(){if(this.intersectionRatio>0&&(!_||t(this.target).hasClass("joinchat_force_show")))return b(),f.disconnect(),!1})});p.each(function(){f.observe(this)})}}t(e).trigger("joinchat:start")}():t(e).on("click",".joinchat_open",function(t){t.preventDefault(),joinchat_obj.open_whatsapp()})),joinchat_obj.store.setItem("joinchat_views",parseInt(joinchat_obj.store.getItem("joinchat_views")||0)+1)})}(jQuery,window,document);
|
uninstall.php
CHANGED
@@ -15,12 +15,12 @@ if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
|
|
15 |
}
|
16 |
|
17 |
/**
|
18 |
-
* By default
|
19 |
*
|
20 |
-
* Use "add_filter( 'joinchat_delete_all', '
|
21 |
-
* before uninstall Join.chat to
|
22 |
*/
|
23 |
-
if ( apply_filters( 'joinchat_delete_all',
|
24 |
global $wpdb;
|
25 |
|
26 |
// Delete general option 'joinchat' added by plugin
|
15 |
}
|
16 |
|
17 |
/**
|
18 |
+
* By default delete all plugin data.
|
19 |
*
|
20 |
+
* Use "add_filter( 'joinchat_delete_all', '__return_false' );"
|
21 |
+
* before uninstall Join.chat to prevent clear all plugin data.
|
22 |
*/
|
23 |
+
if ( apply_filters( 'joinchat_delete_all', true ) ) {
|
24 |
global $wpdb;
|
25 |
|
26 |
// Delete general option 'joinchat' added by plugin
|