WhatsApp me - Version 4.0.10

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 Icon 128x128 WhatsApp me
Version 4.0.10
Comparing to
See all releases

Code changes from version 4.0.9 to 4.0.10

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
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 allways.', 'creame-whatsapp-me' ) . '</li>' .
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
- $this->update_wame();
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
- $general_option = get_option( 'whatsappme' );
213
 
214
- if ( false !== $general_option ) {
215
  // General option
216
- update_option( 'joinchat', $general_option );
 
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.9
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.9' );
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-06-25 11:09+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,13 +26,13 @@ msgstr ""
26
  msgid "Open chat"
27
  msgstr ""
28
 
29
- #: public/class-joinchat-public.php:257 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:319
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 allways."
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 ($, window) {
2
  'use strict';
3
 
4
- window.joinchat_obj = window.joinchat_obj || {};
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 = window[this.settings.ga_tracker || 'ga'];
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
- $(document).trigger('joinchat:show');
72
  }
73
  };
74
 
@@ -81,7 +81,7 @@
81
  this.$('.joinchat__badge').removeClass('joinchat__badge--out');
82
  }
83
  // Trigger custom event
84
- $(document).trigger('joinchat:hide');
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
- $(document).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
- window.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,7 +145,7 @@
145
  joinchat_magic();
146
  } else {
147
  // Launch WhatsApp when click on nodes with class "joinchat_open"
148
- $(document).on('click', '.joinchat_open', function (e) {
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
- $(document).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,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
- $(document).on('focus blur', 'input, textarea', function (e) {
230
- if (!$(e.target).closest(joinchat_obj.$div)) {
 
 
 
 
 
 
 
 
 
 
 
 
 
231
  clearTimeout(timeoutKB);
232
- timeoutKB = setTimeout(function () {
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
- $(document).on('click', '.joinchat_open', function (e) {
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
- $(document).on('click', '.joinchat_close', function (e) {
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 window) {
253
  var $show_on_scroll = $('.joinchat_show, .joinchat_force_show');
254
 
255
  function joinchat_observed(objs) {
@@ -268,9 +278,9 @@
268
  }
269
  }
270
 
271
- $(document).trigger('joinchat:start');
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&&gtag("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(document).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(document).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(e,n){var i={link:this.whatsapp_link(e||this.settings.telephone,n||this.settings.message_send)},a=new RegExp("^https?://(wa.me|(api|web|chat).whatsapp.com|"+location.hostname.replace(".",".")+")/.*","i");t(document).trigger("joinchat:open",[i,this.settings]),a.test(i.link)?(this.send_event(i.link),o.open(i.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(document).trigger("joinchat:starting");var e,n,i=1e3*joinchat_obj.settings.button_delay,a=1e3*joinchat_obj.settings.message_delay,s=!!joinchat_obj.settings.message_hash,c=!!joinchat_obj.$(".joinchat__box").length,h=parseInt(joinchat_obj.store.getItem("joinchat_views")||1)>=joinchat_obj.settings.message_views,j=-1!==(joinchat_obj.store.getItem("joinchat_hashes")||"").split(",").filter(Boolean).indexOf(joinchat_obj.settings.message_hash||"none");function _(){clearTimeout(n),joinchat_obj.chatbox_show()}function r(){joinchat_obj.save_hash(),joinchat_obj.chatbox_hide()}function b(){c&&!joinchat_obj.chatbox?_():(r(),joinchat_obj.open_whatsapp())}var l="joinchat--show";j||s&&a&&!joinchat_obj.settings.message_badge&&h||(l+=" joinchat--tooltip");setTimeout(function(){joinchat_obj.$div.addClass(l)},i),s&&!j&&a&&(joinchat_obj.settings.message_badge?n=setTimeout(function(){joinchat_obj.$(".joinchat__badge").addClass("joinchat__badge--in")},i+a):h&&(n=setTimeout(_,i+a)));c&&!joinchat_obj.is_mobile&&joinchat_obj.$(".joinchat__button").mouseenter(function(){e=setTimeout(_,1500)}).mouseleave(function(){clearTimeout(e)});if(joinchat_obj.$(".joinchat__button").click(b),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 g,u=o.innerHeight;t(document).on("focus blur","input, textarea",function(e){t(e.target).closest(joinchat_obj.$div)||(clearTimeout(g),g=setTimeout(function(){joinchat_obj.$div.toggleClass("joinchat--show",o.innerHeight>.7*u)},800))})}if(t(document).on("click",".joinchat_open",function(t){t.preventDefault(),joinchat_obj.chatbox||b()}),t(document).on("click",".joinchat_close",function(t){t.preventDefault(),r()}),c&&"IntersectionObserver"in o){var d=t(".joinchat_show, .joinchat_force_show");if(d.length>0){var p=new IntersectionObserver(function(o){t.each(o,function(){if(this.intersectionRatio>0&&(!j||t(this.target).hasClass("joinchat_force_show")))return _(),p.disconnect(),!1})});d.each(function(){p.observe(this)})}}t(document).trigger("joinchat:start")}():t(document).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);
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&&gtag("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 don't delete plugin data.
19
  *
20
- * Use "add_filter( 'joinchat_delete_all', '__return_true' );"
21
- * before uninstall Join.chat to completely clear all plugin data.
22
  */
23
- if ( apply_filters( 'joinchat_delete_all', false ) ) {
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