Smart Floating / Sticky Buttons – Call, Sharing, Chat Widgets & More – Buttonizer - Version 1.0.3

Version Description

Added new feature: - Exit intent: Buttons will expand

Download this release

Release Info

Developer buttonizer
Plugin Icon wp plugin Smart Floating / Sticky Buttons – Call, Sharing, Chat Widgets & More – Buttonizer
Version 1.0.3
Comparing to
See all releases

Code changes from version 1.0.2 to 1.0.3

buttonizer.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Buttonizer - Smart Floating Action Button
4
  Plugin URI: https://buttonizer.pro
5
  Description: The Buttonizer is a new way to give a boost to your number of interactions, actions and conversions from your website visitor by adding one or multiple Customizable Smart Floating Button in the corner of your website.
6
- Version: 1.0.2
7
  Author: Buttonizer
8
  Author URI: https://buttonizer.pro
9
  License: GPL2
@@ -31,7 +31,7 @@ Copyright 2017 Buttonizer
31
  define('BUTTONIZER_NAME', 'buttonizer');
32
  define('BUTTONIZER_DIR', dirname(__FILE__));
33
  define('BUTTONIZER_PLUGIN_DIR', __FILE__ );
34
- define('BUTTONIZER_VERSION','1.0.2');
35
 
36
  # No script kiddies
37
  defined( 'ABSPATH' ) or die('No script kiddies please!');
@@ -137,11 +137,11 @@ $oButtonizer->get()->add_action('after_uninstall', 'buttonizer_uninstall_cleanup
137
  // System, buttonizer is loaded
138
  do_action('buttonizer_loaded');
139
 
140
- if(defined("BUTTONIZER_DEFINED")) {
141
- echo "<div style='clear: both;'></div><img src='". plugins_url('/assets/buttonizer.png', BUTTONIZER_PLUGIN_DIR) ."' style='height: 40px; margin-right: 10px; float: left; vertical-align: top;'> Hey, looks like you try to install me (Buttonizer), while you already have an older version (or the free version) installed and activated? Deactivate all older Buttonizer plugins before trying again.<div style='clear: both; height: 20px'></div>";
142
- trigger_error("Error", E_USER_ERROR);
143
- exit;
144
- }
145
 
146
  // Ok, define
147
  define('BUTTONIZER_DEFINED','1.0');
3
  Plugin Name: Buttonizer - Smart Floating Action Button
4
  Plugin URI: https://buttonizer.pro
5
  Description: The Buttonizer is a new way to give a boost to your number of interactions, actions and conversions from your website visitor by adding one or multiple Customizable Smart Floating Button in the corner of your website.
6
+ Version: 1.0.3
7
  Author: Buttonizer
8
  Author URI: https://buttonizer.pro
9
  License: GPL2
31
  define('BUTTONIZER_NAME', 'buttonizer');
32
  define('BUTTONIZER_DIR', dirname(__FILE__));
33
  define('BUTTONIZER_PLUGIN_DIR', __FILE__ );
34
+ define('BUTTONIZER_VERSION','1.0.3');
35
 
36
  # No script kiddies
37
  defined( 'ABSPATH' ) or die('No script kiddies please!');
137
  // System, buttonizer is loaded
138
  do_action('buttonizer_loaded');
139
 
140
+ // if(defined("BUTTONIZER_DEFINED")) {
141
+ // echo "<div style='clear: both;'></div><img src='". plugins_url('/assets/buttonizer.png', BUTTONIZER_PLUGIN_DIR) ."' style='height: 40px; margin-right: 10px; float: left; vertical-align: top;'> Hey, looks like you try to install me (Buttonizer), while you already have an older version (or the free version) installed and activated? Deactivate all older Buttonizer plugins before trying again.<div style='clear: both; height: 20px'></div>";
142
+ // trigger_error("Error", E_USER_ERROR);
143
+ // exit;
144
+ // }
145
 
146
  // Ok, define
147
  define('BUTTONIZER_DEFINED','1.0');
classes/admin/CompanyOpened.php CHANGED
@@ -37,80 +37,34 @@ class CompanyOpened
37
 
38
  public function createTable()
39
  {
40
- echo '<table class="opening_hours">' ;
41
- echo '<thead><td></td><td>Monday</td><td>Tuesday</td><td>Wednesday</td><td>Thursday</td><td>Friday</td><td>Saturday</td><td>Sunday</td></thead>' ;
42
- echo '<tbody>' ;
43
- // Opened
44
- echo '<tr>
45
- <td><b>Opened from ' . (( ButtonizerLicense()->is__premium_only() ? ( !ButtonizerLicense()->is_plan( 'premium' ) ? '<span class="buttonizer-pro-feature">PRO</span>' : '' ) : '<span class="buttonizer-pro-feature">PRO</span>' )) . '</b></td>
46
- <td>' . $this->fieldOpeningTimeSelector( 'monday', false ) . '</td>
47
- <td>' . $this->fieldOpeningTimeSelector( 'tuesday', false ) . '</td>
48
- <td>' . $this->fieldOpeningTimeSelector( 'wednesday', false ) . '</td>
49
- <td>' . $this->fieldOpeningTimeSelector( 'thursday', false ) . '</td>
50
- <td>' . $this->fieldOpeningTimeSelector( 'friday', false ) . '</td>
51
- <td>' . $this->fieldOpeningTimeSelector( 'saturday', false ) . '</td>
52
- <td>' . $this->fieldOpeningTimeSelector( 'sunday', false ) . '</td>
53
- </tr>' ;
54
- // Opened
55
- echo '<tr>
56
- <td><b>Closing at ' . (( ButtonizerLicense()->is__premium_only() ? ( !ButtonizerLicense()->is_plan( 'premium' ) ? '<span class="buttonizer-pro-feature">PRO</span>' : '' ) : '<span class="buttonizer-pro-feature">PRO</span>' )) . '</b></td>
57
- <td>' . $this->fieldOpeningTimeSelector( 'monday', true ) . '</td>
58
- <td>' . $this->fieldOpeningTimeSelector( 'tuesday', true ) . '</td>
59
- <td>' . $this->fieldOpeningTimeSelector( 'wednesday', true ) . '</td>
60
- <td>' . $this->fieldOpeningTimeSelector( 'thursday', true ) . '</td>
61
- <td>' . $this->fieldOpeningTimeSelector( 'friday', true ) . '</td>
62
- <td>' . $this->fieldOpeningTimeSelector( 'saturday', true ) . '</td>
63
- <td>' . $this->fieldOpeningTimeSelector( 'sunday', true ) . '</td>
64
- </tr>' ;
65
- // Closed today
66
- echo '<tr>
67
- <td><b>Is it closed today? ' . (( ButtonizerLicense()->is__premium_only() ? ( !ButtonizerLicense()->is_plan( 'premium' ) ? '<span class="buttonizer-pro-feature">PRO</span>' : '' ) : '<span class="buttonizer-pro-feature">PRO</span>' )) . '</b></td>
68
- <td>' . $this->fieldClosedToday( 'monday' ) . '</td>
69
- <td>' . $this->fieldClosedToday( 'tuesday' ) . '</td>
70
- <td>' . $this->fieldClosedToday( 'wednesday' ) . '</td>
71
- <td>' . $this->fieldClosedToday( 'thursday' ) . '</td>
72
- <td>' . $this->fieldClosedToday( 'friday' ) . '</td>
73
- <td>' . $this->fieldClosedToday( 'saturday' ) . '</td>
74
- <td>' . $this->fieldClosedToday( 'sunday' ) . '</td>
75
- </tr>' ;
76
- echo '</tbody>' ;
77
- echo '</table>' ;
78
  echo '<div class="buttonizer-pro-text"><i class="fa fa-lock"></i> You are missing the fun! When upgrading to <a href="admin.php?page=Buttonizer-pricing">Buttonizer Pro</a> you will unlock opening hours.</div>' ;
79
  }
80
 
81
- public function fieldOpeningTimeManager( $value )
82
  {
83
- $sSelectBuilder = '';
84
- // Get all 24-hours from a day
85
- for ( $i = 0 ; $i < 24 ; $i++ ) {
86
- // Set a zero before the hours less than 10 hours. (00, 01, 02 ...)
87
- if ( $i < 10 ) {
88
- $i = '0' . $i;
89
- }
90
- // Get all minutes in this hour
91
- for ( $j = 0 ; $j < 60 ; $j++ ) {
92
- // Set a zero before the minutes less than 10 minutes. (00, 01, 02 ...)
93
- if ( $j < 10 ) {
94
- $j = '0' . $j;
95
- }
96
- // Make a readable string. 00:00, 12:43, 16:16, ...
97
- $sTime = $i . ':' . $j;
98
- // Make a query
99
- $sSelectBuilder .= '<option value=\'' . $sTime . '\'' . (( $value == $sTime ? 'selected="selected"' : '' )) . '>' . $sTime . '</option>';
100
- }
101
- }
102
- return $sSelectBuilder;
103
  }
104
 
105
- public function fieldOpeningTimeSelector( $sDay, $bIsClosedSelector = false )
106
  {
107
- $sName = 'buttonizer_' . $sDay . '_' . (( $bIsClosedSelector == false ? 'opened_from' : 'closing_on' ));
108
- return '<select class="buttonizer-click-to-pro" readonly><option disabled selected>' . (( $bIsClosedSelector == false ? '10:00' : '17:00' )) . '</option></select>';
109
- }
110
-
111
- public function fieldClosedToday( $sDay = 'monday' )
112
- {
113
- return '<input type="checkbox" class="buttonizer-click-to-pro" readonly />';
114
  }
115
 
116
  }
37
 
38
  public function createTable()
39
  {
40
+ echo '<div class="time-table">' ;
41
+ echo '<h4>' . $this->fieldOpenedToday( 'monday' ) . '</h4>' ;
42
+ echo $this->fieldOpeningTimeSelector( 'monday', false ) ;
43
+ echo '<h4>' . $this->fieldOpenedToday( 'tuesday' ) . '</h4>' ;
44
+ echo $this->fieldOpeningTimeSelector( 'tuesday', false ) ;
45
+ echo '<h4>' . $this->fieldOpenedToday( 'wednesday' ) . '</h4>' ;
46
+ echo $this->fieldOpeningTimeSelector( 'wednesday', false ) ;
47
+ echo '<h4>' . $this->fieldOpenedToday( 'thursday' ) . '</h4>' ;
48
+ echo $this->fieldOpeningTimeSelector( 'thursday', false ) ;
49
+ echo '<h4>' . $this->fieldOpenedToday( 'friday' ) . '</h4>' ;
50
+ echo $this->fieldOpeningTimeSelector( 'friday', false ) ;
51
+ echo '<h4>' . $this->fieldOpenedToday( 'saturday' ) . '</h4>' ;
52
+ echo $this->fieldOpeningTimeSelector( 'saturday', false ) ;
53
+ echo '<h4>' . $this->fieldOpenedToday( 'sunday' ) . '</h4>' ;
54
+ echo $this->fieldOpeningTimeSelector( 'sunday', false ) ;
55
+ echo '</div>' ;
56
+ echo '<script>initOpeningTimes()</script>' ;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
57
  echo '<div class="buttonizer-pro-text"><i class="fa fa-lock"></i> You are missing the fun! When upgrading to <a href="admin.php?page=Buttonizer-pricing">Buttonizer Pro</a> you will unlock opening hours.</div>' ;
58
  }
59
 
60
+ public function fieldOpeningTimeSelector( $sDay )
61
  {
62
+ return '<div class="buttonizer-slider buttonizer-click-to-pro" data-day="' . $sDay . '"></div>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63
  }
64
 
65
+ public function fieldOpenedToday( $sDay = 'monday' )
66
  {
67
+ return '<input type="checkbox" class="buttonizer-click-to-pro" readonly /> <span class="buttonizer-click-to-pro">Opened on ' . $sDay . ' (<span class="opening-' . $sDay . '"></span>)</span>';
 
 
 
 
 
 
68
  }
69
 
70
  }
classes/admin/General.php CHANGED
@@ -27,10 +27,12 @@ class General
27
  private $aSubCatagories = array() ;
28
  private $aSubPages = array() ;
29
  private $aFontAwesome = array() ;
 
30
  private $bHasProFeature = false ;
31
- public function __construct( $aFontAwesome )
32
  {
33
  $this->aFontAwesome = $aFontAwesome;
 
34
  $this->loadData();
35
  $this->registerStylingSettings();
36
  $this->registerAdvancedSettings();
@@ -128,8 +130,27 @@ class General
128
  </span>
129
  </span>
130
  Milliseconds: ', array( &$this, 'field_time_to_timeout' ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
131
  $this->aSubPages['advanced'] .= '</tbody></table>';
132
- if ( !ButtonizerLicense()->is_not_paying() ) {
133
  $this->aSubPages['advanced'] .= '<div class="buttonizer-pro-text"><i class="fa fa-lock"></i> You are missing the fun! When upgrading to <a href="admin.php?page=Buttonizer-pricing">Buttonizer Pro</a> you will get these features.</div>';
134
  }
135
  }
@@ -183,33 +204,12 @@ class General
183
 
184
  public function field_icon_icon()
185
  {
186
- $fieldName = 'icon_icon';
187
- $icon_image = ( isset( $this->aSavedData[$fieldName] ) ? $this->aSavedData[$fieldName] : '' );
188
- $sValueImage = ( isset( $this->aSavedData['custom_icon'] ) ? $this->aSavedData['custom_icon'] : '' );
189
- if ( $sValueImage != '' ) {
190
- $this->bHasProFeature = true;
191
- }
192
- $p = '<div class="icon-or-image" data-type="' . (( $sValueImage != '' ? 'image' : 'icon' )) . '">
193
- <div class="icon-placeholder" ' . (( $sValueImage != '' ? 'style="display: none;"' : '' )) . '>
194
- <div class="placeholder-choose">
195
- or <a href="javascript:void(0)">upload image</a>
196
- </div>';
197
- $p .= '<select name="buttonizer_general_settings[' . $fieldName . ']" id="' . $fieldName . '" style="font-family: \'FontAwesome\', \'Helvetica\';" class="fa-chooser">';
198
- $p .= '<option value="+">+</option>';
199
- foreach ( $this->aFontAwesome as $key => $row ) {
200
- $p .= '<option value="' . $key . '" ' . (( $icon_image == $key ? 'selected="selected"' : '' )) . '>' . $row . ' ' . $key . '</option>';
201
- }
202
- $p .= '</select>';
203
- $p .= '</div><div class="image-placeholder" ' . (( $sValueImage == '' ? 'style="display: none;"' : '' )) . '>';
204
- $p .= '
205
- <div class="placeholder-choose">
206
- or <a href="javascript:void(0)">use an icon</a>
207
- </div>
208
-
209
- <div class="form-group smartcat-uploader" data-image="' . $sValueImage . '">
210
- <input type="hidden" name="buttonizer_general_settings[custom_icon]" value="' . $sValueImage . '">
211
- </div>
212
- </div>';
213
  return $p;
214
  }
215
 
@@ -254,6 +254,17 @@ class General
254
  return '<input type="text" class="buttonizer-click-to-pro" readonly value="0" /><span class="buttonizer-pro-feature">PRO</span>';
255
  }
256
 
 
 
 
 
 
 
 
 
 
 
 
257
  // Share page
258
  public function field_share_facebook()
259
  {
27
  private $aSubCatagories = array() ;
28
  private $aSubPages = array() ;
29
  private $aFontAwesome = array() ;
30
+ private $oIconManager = array() ;
31
  private $bHasProFeature = false ;
32
+ public function __construct( $aFontAwesome, $oIconManager )
33
  {
34
  $this->aFontAwesome = $aFontAwesome;
35
+ $this->oIconManager = $oIconManager;
36
  $this->loadData();
37
  $this->registerStylingSettings();
38
  $this->registerAdvancedSettings();
130
  </span>
131
  </span>
132
  Milliseconds: ', array( &$this, 'field_time_to_timeout' ) );
133
+ // Exit intent
134
+ $this->aSubPages['advanced'] .= $this->createFormField( '
135
+ <span class="info-class">
136
+ <i class="fa fa-info-circle"></i>
137
+ <span>
138
+ When selected, the buttons will open with a effect when your guest/user tries to escape from your website. The user gets attracted from your buttons.
139
+ </span>
140
+ </span>
141
+ Exit intent', array( &$this, 'field_exit_intent' ) );
142
+ $this->aSubPages['advanced'] .= $this->createFormField( '
143
+ <span class="info-class">
144
+ <i class="fa fa-info-circle"></i>
145
+ <span>
146
+ When the exit intent activates, there will be shown some text next to the head-button. You can edit that here.<br />
147
+ <br />
148
+ When empty, no message will be shown.
149
+ </span>
150
+ </span>
151
+ Exit intent text', array( &$this, 'field_exit_intent_text' ) );
152
  $this->aSubPages['advanced'] .= '</tbody></table>';
153
+ if ( !ButtonizerLicense()->is_not_paying() && !ButtonizerLicense()->is_plan( 'premium' ) ) {
154
  $this->aSubPages['advanced'] .= '<div class="buttonizer-pro-text"><i class="fa fa-lock"></i> You are missing the fun! When upgrading to <a href="admin.php?page=Buttonizer-pricing">Buttonizer Pro</a> you will get these features.</div>';
155
  }
156
  }
204
 
205
  public function field_icon_icon()
206
  {
207
+ $p = $this->oIconManager->generator( array(
208
+ 'icon' => ( isset( $this->aSavedData['icon_icon'] ) ? $this->aSavedData['icon_icon'] : '' ),
209
+ 'icon_fieldname' => 'buttonizer_general_settings[icon_icon]',
210
+ 'image' => ( isset( $this->aSavedData['custom_icon'] ) ? $this->aSavedData['custom_icon'] : '' ),
211
+ 'image_fieldname' => 'buttonizer_general_settings[custom_icon]',
212
+ ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
213
  return $p;
214
  }
215
 
254
  return '<input type="text" class="buttonizer-click-to-pro" readonly value="0" /><span class="buttonizer-pro-feature">PRO</span>';
255
  }
256
 
257
+ // Exit intent
258
+ public function field_exit_intent()
259
+ {
260
+ return '<input type="checkbox" class="buttonizer-click-to-pro" readonly /> <span class="buttonizer-pro-feature">PRO</span>';
261
+ }
262
+
263
+ public function field_exit_intent_text()
264
+ {
265
+ return '<input type="text" class="buttonizer-click-to-pro" readonly value="" /><span class="buttonizer-pro-feature">PRO</span>';
266
+ }
267
+
268
  // Share page
269
  public function field_share_facebook()
270
  {
classes/admin/IconManager.php ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ This program is free software; you can redistribute it and/or
5
+ modify it under the terms of the GNU General Public License
6
+ as published by the Free Software Foundation; either version 2
7
+ of the License, or (at your option) any later version.
8
+
9
+ This program is distributed in the hope that it will be useful,
10
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ GNU General Public License for more details.
13
+
14
+ You should have received a copy of the GNU General Public License
15
+ along with this program; if not, write to the Free Software
16
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
+
18
+ Copyright 2017 Buttonizer
19
+ */
20
+ namespace Buttonizer\Admin;
21
+
22
+ # No script kiddies
23
+ defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
24
+ class IconManager
25
+ {
26
+ private $aFontAwesome = array() ;
27
+ public function __construct( $aFontAwesome )
28
+ {
29
+ $this->aFontAwesome = $aFontAwesome;
30
+ }
31
+
32
+ public function generator( $aData )
33
+ {
34
+ if ( !isset( $aData['image'] ) || !isset( $aData['icon'] ) || !isset( $aData['image_fieldname'] ) || !isset( $aData['icon_fieldname'] ) ) {
35
+ return 'Invalid.';
36
+ }
37
+ $p = $this->generator_start( $aData );
38
+ return $p;
39
+ }
40
+
41
+ private function generator_start( $aData )
42
+ {
43
+ $p = '<div class="icon-or-image" data-type="' . (( $aData['image'] != '' ? 'image' : 'icon' )) . '">
44
+ <div class="icon-placeholder" ' . (( $aData['image'] != '' ? 'style="display: none;"' : '' )) . '>
45
+ <div class="placeholder-choose">
46
+ or <span class="buttonizer-click-to-pro" style="color: #0073aa; text-decoration: underline; cursor: pointer;">upload image (PRO ONLY)</span>
47
+ </div>';
48
+ $p .= '<select name="' . $aData['icon_fieldname'] . '" id="' . $fieldName . '" style="font-family: \'FontAwesome\', \'Helvetica\';" class="fa-chooser">';
49
+ $p .= '<option value="+">+</option>';
50
+ foreach ( $this->aFontAwesome as $key => $row ) {
51
+ $p .= '<option value="' . $key . '" ' . (( $aData['icon'] == $key ? 'selected="selected"' : '' )) . '>' . $row . ' ' . $key . '</option>';
52
+ }
53
+ $p .= '</select>';
54
+ $p .= '</div>';
55
+ return $p;
56
+ }
57
+
58
+ }
classes/admin/InitializeAdmin.php CHANGED
@@ -26,6 +26,7 @@ class InitializeAdmin {
26
  // Define some data
27
  private $aButtonizerPageButtons;
28
  private $aPluginTabs = array();
 
29
  private $aFontAwesome = null;
30
 
31
  // Construct
@@ -65,9 +66,9 @@ class InitializeAdmin {
65
  /* Get media */
66
  public function getPluginScripts() {
67
  wp_enqueue_media();
68
- wp_enqueue_style( 'wp-color-picker' );
69
- wp_enqueue_script( /*'fab-script', plugins_url( 'js/fab-script.js', __FILE__ ),*/
70
- array( 'jquery','wp-color-picker' ),
71
  false,
72
  true
73
  );
@@ -96,6 +97,10 @@ class InitializeAdmin {
96
  * Tabs and things
97
  */
98
  function plugin_options_page() {
 
 
 
 
99
  $tab = isset($_GET['tab']) ? $_GET['tab'] : 'buttonizer_buttons';
100
 
101
  ?>
@@ -227,7 +232,7 @@ class InitializeAdmin {
227
  public function getPageGeneralSettings() {
228
  require BUTTONIZER_DIR . '/classes/admin/General.php';
229
 
230
- new General($this->aFontAwesome);
231
  }
232
 
233
  /* Buttonizer opening times */
26
  // Define some data
27
  private $aButtonizerPageButtons;
28
  private $aPluginTabs = array();
29
+ private $oIconManager = null;
30
  private $aFontAwesome = null;
31
 
32
  // Construct
66
  /* Get media */
67
  public function getPluginScripts() {
68
  wp_enqueue_media();
69
+ wp_enqueue_style(array('wp-color-picker'));
70
+ wp_enqueue_script(
71
+ array( 'jquery','wp-color-picker','jquery-ui-slider'),
72
  false,
73
  true
74
  );
97
  * Tabs and things
98
  */
99
  function plugin_options_page() {
100
+ // Add IconManager
101
+ require BUTTONIZER_DIR . '/classes/admin/IconManager.php';
102
+ $this->oIconManager = new IconManager($this->aFontAwesome);
103
+
104
  $tab = isset($_GET['tab']) ? $_GET['tab'] : 'buttonizer_buttons';
105
 
106
  ?>
232
  public function getPageGeneralSettings() {
233
  require BUTTONIZER_DIR . '/classes/admin/General.php';
234
 
235
+ new General($this->aFontAwesome, $this->oIconManager);
236
  }
237
 
238
  /* Buttonizer opening times */
classes/default/main.php CHANGED
@@ -156,7 +156,7 @@ class Button
156
  $linkNewTab = ( isset( $this->aButtons['button_' . $bNmbr . '_url_newtab'] ) ? 'target="_blank"' : '' );
157
  $hideLabel = ( isset( $this->aButtons['button_' . $bNmbr . '_hide_label'] ) ? $this->aButtons['button_' . $bNmbr . '_hide_label'] : '' );
158
 
159
- if ( $link != '#' && strpos( 'javascript:', $link ) !== false ) {
160
  $linkInfo = parse_url( $link );
161
  if ( !$buttonIsPhone && empty($linkInfo['scheme']) && substr( $link, 0, 1 ) != '/' ) {
162
  $link = 'http://' . $link;
@@ -179,16 +179,28 @@ class Button
179
  return '0';
180
  }
181
 
 
 
 
 
 
 
 
 
 
 
 
 
182
  // Is the store opened right now?
183
  private function isOpened()
184
  {
185
  $sDayOfWeek = $this->getDay( date( 'N' ) );
186
  $bIsOpened = true;
187
  // Result
188
- $bTodayClosed = ( isset( $this->aOpeningData['buttonizer_' . $sDayOfWeek . '_closed'] ) ? $this->aOpeningData['buttonizer_' . $sDayOfWeek . '_closed'] : '' );
189
- // If result == 1 => Closed
190
 
191
- if ( $bTodayClosed == '1' ) {
192
  $bIsOpened = false;
193
  } else {
194
  // Get the time right now
@@ -290,7 +302,7 @@ class Button
290
  } else {
291
 
292
  if ( $this->iAmountOfButtons > 1 || $this->iAmountOfShareButtons > 0 ) {
293
- $output = '<a href="javascript:void(0)" class="buttonizer_head" id="buttonizer-sys" onclick="onButtonizerClickEvent(\'Open/Close Buttonizer button\')">' . $sIcon . '</a>' . $this->sOutput;
294
  } else {
295
  $output = '';
296
  }
@@ -301,11 +313,14 @@ class Button
301
  if ( isset( $this->aSettings['google_analytics'] ) && $this->aSettings['google_analytics'] != '' ) {
302
  $output .= '<script>(function(i,s,o,g,r,a,m){i[\'GoogleAnalyticsObject\']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,\'script\',\'https://www.google-analytics.com/analytics.js\',\'ga\');ga(\'create\', \'' . $this->aSettings['google_analytics'] . '\', \'auto\');</script>';
303
  }
 
304
  echo '<div class="buttonizer-button ' . (( $showOnScroll > 0 || $showAfterTimeout > 0 ? 'hide' : '' )) . '" id="buttonizer-button"><div class="buttonizer_inner" id="buttonizer-sys">' . $output . '</div></div>
305
  <script type="text/javascript">
306
  buttonizer.init({
307
  scrollBarTop: ' . $showOnScroll . ',
308
  showAfter: ' . $showAfterTimeout . ',
 
 
309
  });
310
  </script>
311
  <style>.buttonizer-button { right: ' . $this->aSettings['position_right'] . '%; bottom: ' . $this->aSettings['position_bottom'] . '%; } .buttonizer-button a:hover, .buttonizer-button a:focus{ background:' . $this->aSettings['button_pushed'] . '; } .buttonizer-button a { background:' . $this->aSettings['button_unpushed'] . '; } .buttonizer-button a i { color: ' . $this->aSettings['icon_color'] . '; }</style>' ;
156
  $linkNewTab = ( isset( $this->aButtons['button_' . $bNmbr . '_url_newtab'] ) ? 'target="_blank"' : '' );
157
  $hideLabel = ( isset( $this->aButtons['button_' . $bNmbr . '_hide_label'] ) ? $this->aButtons['button_' . $bNmbr . '_hide_label'] : '' );
158
 
159
+ if ( $link != '#' && $link != '' && strpos( 'javascript:', $link ) !== false ) {
160
  $linkInfo = parse_url( $link );
161
  if ( !$buttonIsPhone && empty($linkInfo['scheme']) && substr( $link, 0, 1 ) != '/' ) {
162
  $link = 'http://' . $link;
179
  return '0';
180
  }
181
 
182
+ // Exit intent
183
+ private function enableExitIntent()
184
+ {
185
+ return '0';
186
+ }
187
+
188
+ // Exit intent
189
+ private function enableExitIntentText()
190
+ {
191
+ return '';
192
+ }
193
+
194
  // Is the store opened right now?
195
  private function isOpened()
196
  {
197
  $sDayOfWeek = $this->getDay( date( 'N' ) );
198
  $bIsOpened = true;
199
  // Result
200
+ $bTodayOpened = ( isset( $this->aOpeningData['buttonizer_' . $sDayOfWeek . '_opened'] ) ? $this->aOpeningData['buttonizer_' . $sDayOfWeek . '_opened'] : '' );
201
+ // If result == 1 => Opened
202
 
203
+ if ( $bTodayOpened != '1' ) {
204
  $bIsOpened = false;
205
  } else {
206
  // Get the time right now
302
  } else {
303
 
304
  if ( $this->iAmountOfButtons > 1 || $this->iAmountOfShareButtons > 0 ) {
305
+ $output = '<a href="javascript:void(0)" class="buttonizer_head" onclick="onButtonizerClickEvent(\'Open/Close Buttonizer button\')">' . $sIcon . '</a>' . $this->sOutput;
306
  } else {
307
  $output = '';
308
  }
313
  if ( isset( $this->aSettings['google_analytics'] ) && $this->aSettings['google_analytics'] != '' ) {
314
  $output .= '<script>(function(i,s,o,g,r,a,m){i[\'GoogleAnalyticsObject\']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,\'script\',\'https://www.google-analytics.com/analytics.js\',\'ga\');ga(\'create\', \'' . $this->aSettings['google_analytics'] . '\', \'auto\');</script>';
315
  }
316
+ list($sShadowColorRed, $sShadowColorGreen, $sShadowColorBlue) = sscanf( $this->aSettings['button_unpushed'], '#%02x%02x%02x' );
317
  echo '<div class="buttonizer-button ' . (( $showOnScroll > 0 || $showAfterTimeout > 0 ? 'hide' : '' )) . '" id="buttonizer-button"><div class="buttonizer_inner" id="buttonizer-sys">' . $output . '</div></div>
318
  <script type="text/javascript">
319
  buttonizer.init({
320
  scrollBarTop: ' . $showOnScroll . ',
321
  showAfter: ' . $showAfterTimeout . ',
322
+ ' . (( ButtonizerLicense()->is__premium_only() ? 'exitIntent: ' . $this->enableExitIntent() . ',' : '' )) . '
323
+ ' . (( ButtonizerLicense()->is__premium_only() ? 'exitIntentText: "' . $this->enableExitIntentText() . '",' : '' )) . '
324
  });
325
  </script>
326
  <style>.buttonizer-button { right: ' . $this->aSettings['position_right'] . '%; bottom: ' . $this->aSettings['position_bottom'] . '%; } .buttonizer-button a:hover, .buttonizer-button a:focus{ background:' . $this->aSettings['button_pushed'] . '; } .buttonizer-button a { background:' . $this->aSettings['button_unpushed'] . '; } .buttonizer-button a i { color: ' . $this->aSettings['icon_color'] . '; }</style>' ;
classes/default/maintain.php CHANGED
@@ -84,37 +84,37 @@ class Maintain {
84
  // Monday
85
  'monday_opened_from' => '10:00',
86
  'monday_closing_on' => '17:00',
87
- 'monday_closed' => false,
88
 
89
  // Tuesday
90
  'tuesday_opened_from' => '10:00',
91
  'tuesday_closing_on' => '17:00',
92
- 'tuesday_closed' => false,
93
 
94
  // Wednesday
95
  'wednesday_opened_from' => '10:00',
96
  'wednesday_closing_on' => '17:00',
97
- 'wednesday_closed' => false,
98
 
99
  // Thursday
100
  'thursday_opened_from' => '10:00',
101
  'thursday_closing_on' => '17:00',
102
- 'thursday_closed' => false,
103
 
104
  // Friday
105
  'friday_opened_from' => '10:00',
106
  'friday_closing_on' => '17:00',
107
- 'friday_closed' => false,
108
 
109
  // Saturday
110
  'saturday_opened_from' => '10:00',
111
  'saturday_closing_on' => '17:00',
112
- 'saturday_closed' => true,
113
 
114
  // Sunday
115
  'sunday_opened_from' => '10:00',
116
  'sunday_closing_on' => '17:00',
117
- 'sunday_closed' => true,
118
  );
119
 
120
  // Update and save default opening settings
84
  // Monday
85
  'monday_opened_from' => '10:00',
86
  'monday_closing_on' => '17:00',
87
+ 'monday_opened' => false,
88
 
89
  // Tuesday
90
  'tuesday_opened_from' => '10:00',
91
  'tuesday_closing_on' => '17:00',
92
+ 'tuesday_opened' => false,
93
 
94
  // Wednesday
95
  'wednesday_opened_from' => '10:00',
96
  'wednesday_closing_on' => '17:00',
97
+ 'wednesday_opened' => false,
98
 
99
  // Thursday
100
  'thursday_opened_from' => '10:00',
101
  'thursday_closing_on' => '17:00',
102
+ 'thursday_opened' => false,
103
 
104
  // Friday
105
  'friday_opened_from' => '10:00',
106
  'friday_closing_on' => '17:00',
107
+ 'friday_opened' => false,
108
 
109
  // Saturday
110
  'saturday_opened_from' => '10:00',
111
  'saturday_closing_on' => '17:00',
112
+ 'saturday_opened' => true,
113
 
114
  // Sunday
115
  'sunday_opened_from' => '10:00',
116
  'sunday_closing_on' => '17:00',
117
+ 'sunday_opened' => true,
118
  );
119
 
120
  // Update and save default opening settings
css/buttonizer.css CHANGED
@@ -83,6 +83,10 @@
83
  text-align: center;
84
  }
85
 
 
 
 
 
86
  .buttonizer-button a.buttonizer_head .text {
87
  top: 15px;
88
  right: 70px;
@@ -90,7 +94,7 @@
90
  visibility: hidden;
91
  }
92
 
93
- .buttonizer-button a.buttonizer_head.onlyone:hover .text {
94
  opacity: 1;
95
  visibility: visible;
96
  }
83
  text-align: center;
84
  }
85
 
86
+ .buttonizer-button .buttonizer_inner.exit_intent_animation a.buttonizer_head {
87
+ animation: buttonizer_exit_intent 1s;
88
+ }
89
+
90
  .buttonizer-button a.buttonizer_head .text {
91
  top: 15px;
92
  right: 70px;
94
  visibility: hidden;
95
  }
96
 
97
+ .buttonizer-button a.buttonizer_head.onlyone:hover .text, .buttonizer-button a.buttonizer_head .text.showlabel {
98
  opacity: 1;
99
  visibility: visible;
100
  }
css/style.css CHANGED
@@ -550,3 +550,57 @@ h2 .button {
550
  vertical-align: top;
551
  color: #FFFFFF;
552
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
550
  vertical-align: top;
551
  color: #FFFFFF;
552
  }
553
+
554
+ .time-table {
555
+ max-width: 700px;
556
+ }
557
+
558
+ /* jQuery slider */
559
+ .ui-slider {
560
+ position: relative;
561
+ text-align: left;
562
+ height: 4px;
563
+ border: 1px solid rgba(46, 119, 137, 0.17);
564
+ background-color: #e5e5e5;
565
+ border-radius: 3px;
566
+ -webkit-border-radius: 3px;
567
+ -moz-border-radius: 3px;
568
+ }
569
+
570
+ .ui-slider.ui-slider-disabled {
571
+ opacity: 0.5;
572
+ }
573
+
574
+ .ui-slider .ui-slider-handle {
575
+ position: absolute;
576
+ z-index: 2;
577
+ width: 25px;
578
+ height: 25px;
579
+ cursor: default;
580
+ -ms-touch-action: none;
581
+ touch-action: none;
582
+
583
+ border-radius: 100%;
584
+ -webkit-border-radius: 100%;
585
+ -moz-border-radius: 100%;
586
+
587
+ margin-left: -8px;
588
+
589
+ border: 1px solid #c5c5c5;
590
+ background: #f6f6f6;
591
+ font-weight: normal;
592
+ color: #454545;
593
+
594
+ top: -12px;
595
+ }
596
+
597
+ .ui-slider .ui-slider-range {
598
+ position: absolute;
599
+ z-index: 1;
600
+ height: 4px;
601
+ top: -1px;
602
+ font-size: .7em;
603
+ display: block;
604
+ border: 1px solid rgba(48, 120, 138, 0.29);
605
+ background: #ee8216;
606
+ }
js/buttonizer.js CHANGED
@@ -1,21 +1,29 @@
1
  var buttonizer = {
2
  settings: {
3
  buttonizerOpened: false,
 
4
  wHeight: 0,
5
  scrollBarTop: 0,
6
  showAfter: 0,
 
 
7
  currentPageUrl: '',
8
- currentPageTitle: ''
 
9
  },
10
  init: function(options) {
11
  options = jQuery.extend({
12
  scrollBarTop: 0,
13
  showAfter: 0,
 
 
14
  }, options);
15
 
16
  this.settings.scrollBarTop = options.scrollBarTop;
17
  this.settings.showAfter = options.showAfter;
18
  this.settings.wHeight = Math.max(document.body.scrollHeight, document.body.offsetHeight, document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight);
 
 
19
 
20
  document.addEventListener('DOMContentLoaded', this.ready);
21
  },
@@ -25,6 +33,10 @@ var buttonizer = {
25
  if(buttonizer.settings.buttonizerOpened && !document.getElementById("buttonizer-button").contains(e.target)) {
26
  document.getElementById("buttonizer-sys").className = 'buttonizer_inner';
27
  buttonizer.settings.buttonizerOpened = false;
 
 
 
 
28
  }
29
  }, false);
30
 
@@ -32,6 +44,10 @@ var buttonizer = {
32
  if(buttonizer.settings.buttonizerOpened == true) {
33
  document.getElementById("buttonizer-sys").className = 'buttonizer_inner';
34
  buttonizer.settings.buttonizerOpened = false;
 
 
 
 
35
  }else{
36
  document.getElementById("buttonizer-sys").className = 'buttonizer_inner opened';
37
  buttonizer.settings.buttonizerOpened = true;
1
  var buttonizer = {
2
  settings: {
3
  buttonizerOpened: false,
4
+ buttonizerHasOpened: false,
5
  wHeight: 0,
6
  scrollBarTop: 0,
7
  showAfter: 0,
8
+ exitIntent: 0,
9
+ exitIntentText: 'Are you looking for this?',
10
  currentPageUrl: '',
11
+ currentPageTitle: '',
12
+ showedExitIntent: false,
13
  },
14
  init: function(options) {
15
  options = jQuery.extend({
16
  scrollBarTop: 0,
17
  showAfter: 0,
18
+ exitIntent: 0,
19
+ exitIntentText: 'Are you looking for this?'
20
  }, options);
21
 
22
  this.settings.scrollBarTop = options.scrollBarTop;
23
  this.settings.showAfter = options.showAfter;
24
  this.settings.wHeight = Math.max(document.body.scrollHeight, document.body.offsetHeight, document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight);
25
+ this.settings.exitIntent = options.exitIntent;
26
+ this.settings.exitIntentText = options.exitIntentText;
27
 
28
  document.addEventListener('DOMContentLoaded', this.ready);
29
  },
33
  if(buttonizer.settings.buttonizerOpened && !document.getElementById("buttonizer-button").contains(e.target)) {
34
  document.getElementById("buttonizer-sys").className = 'buttonizer_inner';
35
  buttonizer.settings.buttonizerOpened = false;
36
+
37
+ if(document.querySelector("#buttonizer-sys .buttonizer_head .text") != null) {
38
+ document.querySelector("#buttonizer-sys .buttonizer_head .text").remove();
39
+ }
40
  }
41
  }, false);
42
 
44
  if(buttonizer.settings.buttonizerOpened == true) {
45
  document.getElementById("buttonizer-sys").className = 'buttonizer_inner';
46
  buttonizer.settings.buttonizerOpened = false;
47
+
48
+ if(document.querySelector("#buttonizer-sys .buttonizer_head .text") != null) {
49
+ document.querySelector("#buttonizer-sys .buttonizer_head .text").remove();
50
+ }
51
  }else{
52
  document.getElementById("buttonizer-sys").className = 'buttonizer_inner opened';
53
  buttonizer.settings.buttonizerOpened = true;
js/company-openingtimes.js CHANGED
@@ -1,33 +1,31 @@
1
- function check_day_closed(day) {
2
- var closedButton = document.getElementById("buttonizer_" + day + "_closed");
 
 
 
 
 
 
3
 
4
- if(closedButton.checked == true) {
5
- document.getElementById("buttonizer_" + day + "_opened_from").disabled = true;
6
- document.getElementById("buttonizer_" + day + "_closing_on").disabled = true;
7
- }else{
8
- document.getElementById("buttonizer_" + day + "_opened_from").disabled = false;
9
- document.getElementById("buttonizer_" + day + "_closing_on").disabled = false;
10
- }
11
- }
12
 
13
- function initialize_day_closed(day) {
14
- var dayButton = document.getElementById("buttonizer_"+ day +"_closed");
15
 
16
- dayButton.onchange = function(){
17
- check_day_closed(day);
18
- };
 
 
 
 
 
19
 
20
- check_day_closed(day);
 
 
 
21
  }
22
 
23
- function initOpeningTimes() {
24
- document.addEventListener('DOMContentLoaded', function() {
25
- initialize_day_closed("monday");
26
- initialize_day_closed("tuesday");
27
- initialize_day_closed("wednesday");
28
- initialize_day_closed("thursday");
29
- initialize_day_closed("friday");
30
- initialize_day_closed("saturday");
31
- initialize_day_closed("sunday");
32
- }, false);
33
- }
1
+ function initOpeningTimes() {
2
+ jQuery(document).ready(function() {
3
+ jQuery(".buttonizer-slider").each(function() {
4
+ var day = jQuery(this).data("day");
5
+ var disabled = jQuery("#buttonizer_"+ day +"_opened").is(":checked");
6
+ var openedFrom = jQuery("#buttonizer_" + day + "_opened_from");
7
+ var closingOn = jQuery("#buttonizer_" + day + "_closing_on");
8
+ var slider = jQuery(this);
9
 
10
+
11
+ /* Premium Code Stripped by Freemius */
 
 
 
 
 
 
12
 
 
 
13
 
14
+ if(slider.hasClass("buttonizer-click-to-pro")) {
15
+ slider.slider({
16
+ range: true,
17
+ min: 0,
18
+ max: 1440,
19
+ disabled: true,
20
+ values: [ 420, 1020 ]
21
+ });
22
 
23
+ jQuery(".opening-" + day).html("10:00-17:00");
24
+ }
25
+ });
26
+ });
27
  }
28
 
29
+
30
+ /* Premium Code Stripped by Freemius */
31
+
 
 
 
 
 
 
 
 
js/dashboard.js CHANGED
@@ -128,7 +128,7 @@ var buttonizer = {
128
  '<div class="color-buttonizer-orange buttonizer-pro-checklist"><i class="fa fa-check"></i> Show buttons on specific pages: Use page rules</div>' +
129
  '<div class="color-buttonizer-blue buttonizer-pro-checklist"><i class="fa fa-check"></i> Unlimited page rules</div>' +
130
  '<div class="color-buttonizer-orange buttonizer-pro-checklist"><i class="fa fa-check"></i> Add custom image or button-icon</div>' +
131
- '<div class="color-buttonizer-blue buttonizer-pro-checklist"><i class="fa fa-check"></i> Exit intend (very soon :))</div>' +
132
  '<div class="color-buttonizer-orange buttonizer-pro-checklist"><i class="fa fa-check"></i> Show on scroll</div>' +
133
  '<div class="color-buttonizer-blue buttonizer-pro-checklist"><i class="fa fa-check"></i> Show on timeout</div>' +
134
  '<br />' +
128
  '<div class="color-buttonizer-orange buttonizer-pro-checklist"><i class="fa fa-check"></i> Show buttons on specific pages: Use page rules</div>' +
129
  '<div class="color-buttonizer-blue buttonizer-pro-checklist"><i class="fa fa-check"></i> Unlimited page rules</div>' +
130
  '<div class="color-buttonizer-orange buttonizer-pro-checklist"><i class="fa fa-check"></i> Add custom image or button-icon</div>' +
131
+ '<div class="color-buttonizer-blue buttonizer-pro-checklist"><i class="fa fa-check"></i> Exit intend</div>' +
132
  '<div class="color-buttonizer-orange buttonizer-pro-checklist"><i class="fa fa-check"></i> Show on scroll</div>' +
133
  '<div class="color-buttonizer-blue buttonizer-pro-checklist"><i class="fa fa-check"></i> Show on timeout</div>' +
134
  '<br />' +
readme.txt CHANGED
@@ -4,7 +4,7 @@ Buy plugin: https://buttonizer.pro
4
  Tags: conversion button, smart action button, call button, smart button, buttonizer, floating action button, google event tracking, material design, call to action, conversion, Social Sharing, button
5
  Requires at least: 4.2
6
  Tested up to: 4.8.1
7
- Stable tag: 1.0.2
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -14,9 +14,9 @@ Add & manage floating action buttons. From call buttons to social sharing button
14
 
15
  The Buttonizer is a smart conversion-targeted button that will make your website more efficient. From making a simple call button, to a navigation button to open Facebook messenger. The Buttonizer is a new way to give a boost to your number of interactions, actions and conversions from your website visitor by adding one or multiple Customizable Smart Multifunctional Floating Button in the corner of your website.
16
 
17
- With the Buttonizer its possible to add buttons to a select number of pages with page rules�, decide for each button if it shows on mobile and/or desktop, style your button with your own icons & colors, add social sharing buttons, Show the button on opening hours and make use of many more rules.
18
 
19
- And the beauty of all: All actions are hidden in one button. The moment a visitor clicks on your Floating Action Button it will *pop* all specific buttons youve set for that page. Track each single button in Google Analytics so you can see which actions your visitors prefer.
20
 
21
  Download the Buttonizer for free and make your first Smart Conversion Button in just five minutes.
22
 
@@ -47,7 +47,7 @@ Next to choosing the color of your button, the color when someone click / hover
47
 
48
  = SHOW ON DESKTOP, MOBILE OR BOTH =
49
 
50
- Decide for each button if you want to show it on your desktop, mobile or both. Sometimes you want your visitors to do specific actions on your mobile website than your desktop and the other way around. For instance navigating to your address, or direct calling your business or share your content on Whatsapp. Buttonizer lets you make an infinite number of combination of floating action buttons which are hidden on one clear simple button on the right corner of your screen.
51
 
52
  = PAGE CATEGORIES =
53
 
@@ -55,7 +55,7 @@ Of Course you can add a button for all your pages. But it is also possible to sh
55
 
56
  = OPENING HOURS =
57
 
58
- Show a floating action button only when your business is open. As an example: Add Facebook Messenger as a button and set it to show only on opening hours so your clients wont chat with your company outside opening hours.
59
 
60
  = AUTO EVENT TRACKING IN GOOGLE ANALYTICS =
61
 
@@ -83,25 +83,25 @@ You can decide if you want your Buttonizer to show after a specific amount of ti
83
  * Click the Activate Plugin link.
84
 
85
  = For manual installation: =
86
- * You should have access to the server where WordPress is installed. If you dont, see your system administrator.
87
  * Copy the plugin zip file up to your server and unzip it somewhere on the file system.
88
- * Copy the Buttonizer folder into the /wp-content/plugins directory of your WordPress installation.
89
  * Login to your website and go to the Plugins section of your admin panel.
90
- * Look for Buttonizer and click Activate.
91
 
92
  == Frequently Asked Questions ==
93
 
94
  = What is a Floating Action Button and why should I use it? =
95
 
96
- A floating action button is a button that float on the right corner of your website.
97
 
98
  Maybe you noticed already that a lot of applications (mobile and web) have their primary floating action button (FAB), on the right corner of their website or app. You see this a lot with chat funtions. The Floating Action Button is becoming a standard in application and webdesign. Webvisitors are getting more and more used to the fact that there is a floating action button which is the primary action you can make on that page, on the right corner of a website.
99
 
100
  The Buttonizer is a new way to give a boost to your number of interactions, actions and conversions from your website visitor by adding a Customizable Smart Multifunctional Floating Button in the corner of your website.
101
 
102
- = Whats the difference between floating action buttons or other conversion buttons? =
103
 
104
- With Buttonizer you dont just add the same button to every page on your website. No, the key is that each action must be relevant. With the Buttonizer its possible to add buttons to a select number of pages with page rules�, decide for each button if it shows on mobile and/or desktop, style your button with your own icons & colors, add social sharing buttons, Show the button on opening hours and make use of many more rules.
105
 
106
  And the beauty of all: All actions are hidden in one button. The moment a visitor clicks on your Floating Action Button it will *pop* all specific buttons you�ve set for that page. Track each single button in Google Analytics so you can see which actions your visitors prefer.
107
 
@@ -109,5 +109,11 @@ In fact the Buttonizer is an addiction to use. You
109
 
110
  == Changelog ==
111
 
112
- = 1.0 =
 
 
 
 
 
 
113
  Launch of the Buttonizer Floating Action Button Plugin!
4
  Tags: conversion button, smart action button, call button, smart button, buttonizer, floating action button, google event tracking, material design, call to action, conversion, Social Sharing, button
5
  Requires at least: 4.2
6
  Tested up to: 4.8.1
7
+ Stable tag: 1.0.3
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
14
 
15
  The Buttonizer is a smart conversion-targeted button that will make your website more efficient. From making a simple call button, to a navigation button to open Facebook messenger. The Buttonizer is a new way to give a boost to your number of interactions, actions and conversions from your website visitor by adding one or multiple Customizable Smart Multifunctional Floating Button in the corner of your website.
16
 
17
+ With the Buttonizer it's possible to add buttons to a select number of pages with "page rules", decide for each button if it shows on mobile and/or desktop, style your button with your own icons & colors, add social sharing buttons, Show the button on opening hours and make use of many more rules.
18
 
19
+ And the beauty of all: All actions are hidden in one button. The moment a visitor clicks on your Floating Action Button it will *pop* all specific buttons you've set for that page. Track each single button in Google Analytics so you can see which actions your visitors prefer.
20
 
21
  Download the Buttonizer for free and make your first Smart Conversion Button in just five minutes.
22
 
47
 
48
  = SHOW ON DESKTOP, MOBILE OR BOTH =
49
 
50
+ Decide for each button if you want to show it on your desktop, mobile or both. Sometimes you want your visitors to do specific actions on your mobile website than your desktop and the other way around. For instance navigating to your address, or direct calling your business or share your content on Whats'app. Buttonizer lets you make an infinite number of combination of floating action buttons which are hidden on one clear simple button on the right corner of your screen.
51
 
52
  = PAGE CATEGORIES =
53
 
55
 
56
  = OPENING HOURS =
57
 
58
+ Show a floating action button only when your business is open. As an example: Add Facebook Messenger as a button and set it to show only on opening hours so your clients won't chat with your company outside opening hours.
59
 
60
  = AUTO EVENT TRACKING IN GOOGLE ANALYTICS =
61
 
83
  * Click the Activate Plugin link.
84
 
85
  = For manual installation: =
86
+ * You should have access to the server where WordPress is installed. If you don't, see your system administrator.
87
  * Copy the plugin zip file up to your server and unzip it somewhere on the file system.
88
+ * Copy the "Buttonizer" folder into the /wp-content/plugins directory of your WordPress installation.
89
  * Login to your website and go to the Plugins section of your admin panel.
90
+ * Look for "Buttonizer" and click Activate.
91
 
92
  == Frequently Asked Questions ==
93
 
94
  = What is a Floating Action Button and why should I use it? =
95
 
96
+ A floating action button is a button that 'float' on the right corner of your website.
97
 
98
  Maybe you noticed already that a lot of applications (mobile and web) have their primary floating action button (FAB), on the right corner of their website or app. You see this a lot with chat funtions. The Floating Action Button is becoming a standard in application and webdesign. Webvisitors are getting more and more used to the fact that there is a floating action button which is the primary action you can make on that page, on the right corner of a website.
99
 
100
  The Buttonizer is a new way to give a boost to your number of interactions, actions and conversions from your website visitor by adding a Customizable Smart Multifunctional Floating Button in the corner of your website.
101
 
102
+ = What's the difference between floating action buttons or other conversion buttons? =
103
 
104
+ With Buttonizer you don't just add the same button to every page on your website. No, the key is that each action must be relevant. With the Buttonizer it's possible to add buttons to a select number of pages with "page rules", decide for each button if it shows on mobile and/or desktop, style your button with your own icons & colors, add social sharing buttons, Show the button on opening hours and make use of many more rules.
105
 
106
  And the beauty of all: All actions are hidden in one button. The moment a visitor clicks on your Floating Action Button it will *pop* all specific buttons you�ve set for that page. Track each single button in Google Analytics so you can see which actions your visitors prefer.
107
 
109
 
110
  == Changelog ==
111
 
112
+ = 1.0.3 =
113
+ Added new feature:
114
+ - Exit intent: Buttons will expand
115
+
116
+
117
+
118
+ = 1.0.2 =
119
  Launch of the Buttonizer Floating Action Button Plugin!