Version Description
Download this release
Release Info
Developer | DvanKooten |
Plugin | Boxzilla |
Version | 3.2.7 |
Comparing to | |
See all releases |
Code changes from version 3.2.6 to 3.2.7
- bootstrap.php +4 -2
- boxzilla.php +2 -2
- languages/boxzilla-cs_CZ.mo +0 -0
- languages/boxzilla-es_ES.mo +0 -0
- languages/boxzilla-fr_FR.mo +0 -0
- languages/boxzilla-nl_NL.mo +0 -0
- languages/boxzilla-ro_RO.mo +0 -0
- readme.txt +9 -2
- src/class-box.php +1 -2
- src/class-boxzilla-service-provider.php +8 -3
- src/class-collection.php +0 -154
- src/class-loader.php +1 -1
- src/licensing/class-license-manager.php +4 -4
- src/licensing/class-update-manager.php +20 -17
- src/licensing/views/license-form.php +5 -1
bootstrap.php
CHANGED
@@ -42,9 +42,11 @@ add_action( 'plugins_loaded', function() use( $boxzilla ) {
|
|
42 |
$boxzilla['license_poller']->hook();
|
43 |
});
|
44 |
|
|
|
45 |
if( is_admin() || ( defined( 'DOING_CRON' ) && DOING_CRON ) || ( defined( 'WP_CLI' ) && WP_CLI ) ) {
|
46 |
-
|
47 |
-
|
|
|
48 |
$boxzilla['update_manager']->hook();
|
49 |
}
|
50 |
}
|
42 |
$boxzilla['license_poller']->hook();
|
43 |
});
|
44 |
|
45 |
+
// license manager
|
46 |
if( is_admin() || ( defined( 'DOING_CRON' ) && DOING_CRON ) || ( defined( 'WP_CLI' ) && WP_CLI ) ) {
|
47 |
+
$boxzilla['license_manager']->hook();
|
48 |
+
|
49 |
+
if( count( $boxzilla->plugins ) > 0 ) {
|
50 |
$boxzilla['update_manager']->hook();
|
51 |
}
|
52 |
}
|
boxzilla.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
Plugin Name: Boxzilla
|
4 |
-
Version: 3.2.
|
5 |
Plugin URI: https://boxzillaplugin.com/#utm_source=wp-plugin&utm_medium=boxzilla&utm_campaign=plugins-page
|
6 |
Description: Call-To-Action Boxes that display after visitors scroll down far enough. Unobtrusive, but highly conversing!
|
7 |
Author: ibericode
|
@@ -41,7 +41,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
41 |
function _load_boxzilla() {
|
42 |
|
43 |
define( 'BOXZILLA_FILE', __FILE__ );
|
44 |
-
define( 'BOXZILLA_VERSION', '3.2.
|
45 |
|
46 |
require __DIR__ . '/bootstrap.php';
|
47 |
}
|
1 |
<?php
|
2 |
/*
|
3 |
Plugin Name: Boxzilla
|
4 |
+
Version: 3.2.7
|
5 |
Plugin URI: https://boxzillaplugin.com/#utm_source=wp-plugin&utm_medium=boxzilla&utm_campaign=plugins-page
|
6 |
Description: Call-To-Action Boxes that display after visitors scroll down far enough. Unobtrusive, but highly conversing!
|
7 |
Author: ibericode
|
41 |
function _load_boxzilla() {
|
42 |
|
43 |
define( 'BOXZILLA_FILE', __FILE__ );
|
44 |
+
define( 'BOXZILLA_VERSION', '3.2.7' );
|
45 |
|
46 |
require __DIR__ . '/bootstrap.php';
|
47 |
}
|
languages/boxzilla-cs_CZ.mo
CHANGED
Binary file
|
languages/boxzilla-es_ES.mo
CHANGED
Binary file
|
languages/boxzilla-fr_FR.mo
CHANGED
Binary file
|
languages/boxzilla-nl_NL.mo
CHANGED
Binary file
|
languages/boxzilla-ro_RO.mo
CHANGED
Binary file
|
readme.txt
CHANGED
@@ -3,8 +3,8 @@ Contributors: Ibericode, DvanKooten, hchouhan, lapzor
|
|
3 |
Donate link: https://boxzillaplugin.com/#utm_source=wp-plugin-repo&utm_medium=boxzilla&utm_campaign=donate-link
|
4 |
Tags: scroll triggered box, cta, social, pop-up, newsletter, call to action, mailchimp, contact form 7, social media, mc4wp, ibericode
|
5 |
Requires at least: 4.1
|
6 |
-
Tested up to: 4.9.
|
7 |
-
Stable tag: 3.2.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
Requires PHP: 5.3
|
@@ -150,6 +150,13 @@ Have a look at the [frequently asked questions](https://wordpress.org/plugins/bo
|
|
150 |
== Changelog ==
|
151 |
|
152 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
153 |
#### 3.2.6 - June 27, 2018
|
154 |
|
155 |
**Improvements**
|
3 |
Donate link: https://boxzillaplugin.com/#utm_source=wp-plugin-repo&utm_medium=boxzilla&utm_campaign=donate-link
|
4 |
Tags: scroll triggered box, cta, social, pop-up, newsletter, call to action, mailchimp, contact form 7, social media, mc4wp, ibericode
|
5 |
Requires at least: 4.1
|
6 |
+
Tested up to: 4.9.7
|
7 |
+
Stable tag: 3.2.7
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
Requires PHP: 5.3
|
150 |
== Changelog ==
|
151 |
|
152 |
|
153 |
+
#### 3.2.7 - July 31, 2018
|
154 |
+
|
155 |
+
**Fixes**
|
156 |
+
|
157 |
+
- Issue with boxes with only an iframe, image or video and no text not being loaded.
|
158 |
+
|
159 |
+
|
160 |
#### 3.2.6 - June 27, 2018
|
161 |
|
162 |
**Improvements**
|
src/class-box.php
CHANGED
@@ -71,8 +71,7 @@ class Box {
|
|
71 |
* @return array Array of box options
|
72 |
*/
|
73 |
protected function load_options() {
|
74 |
-
|
75 |
-
static $defaults = array(
|
76 |
'css' => array(
|
77 |
'background_color' => '',
|
78 |
'color' => '',
|
71 |
* @return array Array of box options
|
72 |
*/
|
73 |
protected function load_options() {
|
74 |
+
$defaults = array(
|
|
|
75 |
'css' => array(
|
76 |
'background_color' => '',
|
77 |
'color' => '',
|
src/class-boxzilla-service-provider.php
CHANGED
@@ -56,8 +56,13 @@ class BoxzillaServiceProvider implements ServiceProviderInterface {
|
|
56 |
);
|
57 |
|
58 |
$container['plugins'] = function( $container ) {
|
59 |
-
$
|
60 |
-
|
|
|
|
|
|
|
|
|
|
|
61 |
};
|
62 |
|
63 |
|
@@ -66,4 +71,4 @@ class BoxzillaServiceProvider implements ServiceProviderInterface {
|
|
66 |
|
67 |
|
68 |
}
|
69 |
-
}
|
56 |
);
|
57 |
|
58 |
$container['plugins'] = function( $container ) {
|
59 |
+
$raw = (array) apply_filters( 'boxzilla_extensions', array() );
|
60 |
+
|
61 |
+
$plugins = array();
|
62 |
+
foreach( $raw as $p ) {
|
63 |
+
$plugins[ $p->id() ] = $p;
|
64 |
+
}
|
65 |
+
return $plugins;
|
66 |
};
|
67 |
|
68 |
|
71 |
|
72 |
|
73 |
}
|
74 |
+
}
|
src/class-collection.php
DELETED
@@ -1,154 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace Boxzilla;
|
4 |
-
|
5 |
-
use Iterator;
|
6 |
-
use Countable;
|
7 |
-
use ArrayAccess;
|
8 |
-
|
9 |
-
class Collection implements Iterator, Countable, ArrayAccess {
|
10 |
-
|
11 |
-
protected $elements = array();
|
12 |
-
private $position = 0;
|
13 |
-
|
14 |
-
public function __construct( array $elements ) {
|
15 |
-
$this->elements = $elements;
|
16 |
-
$this->position = 0;
|
17 |
-
}
|
18 |
-
|
19 |
-
function rewind() {
|
20 |
-
$this->position = 0;
|
21 |
-
}
|
22 |
-
|
23 |
-
function current() {
|
24 |
-
return $this->elements[ $this->position ];
|
25 |
-
}
|
26 |
-
|
27 |
-
function key() {
|
28 |
-
return $this->position;
|
29 |
-
}
|
30 |
-
|
31 |
-
function next() {
|
32 |
-
++$this->position;
|
33 |
-
}
|
34 |
-
|
35 |
-
function valid() {
|
36 |
-
return isset( $this->elements[ $this->position ] );
|
37 |
-
}
|
38 |
-
|
39 |
-
/**
|
40 |
-
* @param $callback
|
41 |
-
*
|
42 |
-
* @return array
|
43 |
-
*/
|
44 |
-
function map($callback) {
|
45 |
-
$result = array();
|
46 |
-
|
47 |
-
foreach( $this->elements as $element ) {
|
48 |
-
$result[] = $callback( $element );
|
49 |
-
}
|
50 |
-
|
51 |
-
return $result;
|
52 |
-
}
|
53 |
-
|
54 |
-
/**
|
55 |
-
* @param $callback
|
56 |
-
*
|
57 |
-
* @return null
|
58 |
-
*/
|
59 |
-
function find($callback) {
|
60 |
-
|
61 |
-
foreach( $this->elements as $element ) {
|
62 |
-
if( $callback( $element ) ) {
|
63 |
-
return $element;
|
64 |
-
}
|
65 |
-
}
|
66 |
-
|
67 |
-
return null;
|
68 |
-
}
|
69 |
-
|
70 |
-
/**
|
71 |
-
* (PHP 5 >= 5.1.0)<br/>
|
72 |
-
* Count elements of an object
|
73 |
-
* @link http://php.net/manual/en/countable.count.php
|
74 |
-
* @return int The custom count as an integer.
|
75 |
-
* </p>
|
76 |
-
* <p>
|
77 |
-
* The return value is cast to an integer.
|
78 |
-
*/
|
79 |
-
public function count() {
|
80 |
-
return count( $this->elements );
|
81 |
-
}
|
82 |
-
|
83 |
-
/**
|
84 |
-
* Whether a offset exists
|
85 |
-
* @link http://php.net/manual/en/arrayaccess.offsetexists.php
|
86 |
-
* @param mixed $offset <p>
|
87 |
-
* An offset to check for.
|
88 |
-
* </p>
|
89 |
-
* @return boolean true on success or false on failure.
|
90 |
-
* </p>
|
91 |
-
* <p>
|
92 |
-
* The return value will be casted to boolean if non-boolean was returned.
|
93 |
-
* @since 5.0.0
|
94 |
-
*/
|
95 |
-
public function offsetExists($offset)
|
96 |
-
{
|
97 |
-
return isset( $this->elements[ $offset ] );
|
98 |
-
}
|
99 |
-
|
100 |
-
/**
|
101 |
-
* Offset to retrieve
|
102 |
-
* @link http://php.net/manual/en/arrayaccess.offsetget.php
|
103 |
-
* @param mixed $offset <p>
|
104 |
-
* The offset to retrieve.
|
105 |
-
* </p>
|
106 |
-
* @return mixed Can return all value types.
|
107 |
-
* @since 5.0.0
|
108 |
-
*/
|
109 |
-
public function offsetGet($offset)
|
110 |
-
{
|
111 |
-
return $this->elements[ $offset ];
|
112 |
-
}
|
113 |
-
|
114 |
-
/**
|
115 |
-
* Offset to set
|
116 |
-
* @link http://php.net/manual/en/arrayaccess.offsetset.php
|
117 |
-
* @param mixed $offset <p>
|
118 |
-
* The offset to assign the value to.
|
119 |
-
* </p>
|
120 |
-
* @param mixed $value <p>
|
121 |
-
* The value to set.
|
122 |
-
* </p>
|
123 |
-
* @return void
|
124 |
-
* @since 5.0.0
|
125 |
-
*/
|
126 |
-
public function offsetSet($offset, $value)
|
127 |
-
{
|
128 |
-
$this->elements[ $offset ] = $value;
|
129 |
-
}
|
130 |
-
|
131 |
-
/**
|
132 |
-
* Offset to unset
|
133 |
-
* @link http://php.net/manual/en/arrayaccess.offsetunset.php
|
134 |
-
* @param mixed $offset <p>
|
135 |
-
* The offset to unset.
|
136 |
-
* </p>
|
137 |
-
* @return void
|
138 |
-
* @since 5.0.0
|
139 |
-
*/
|
140 |
-
public function offsetUnset($offset)
|
141 |
-
{
|
142 |
-
unset( $this->elements[ $offset] );
|
143 |
-
}
|
144 |
-
|
145 |
-
/**
|
146 |
-
* Return a random value out of the collection.
|
147 |
-
*
|
148 |
-
* @return mixed
|
149 |
-
*/
|
150 |
-
public function random() {
|
151 |
-
$key = array_rand( $this->elements );
|
152 |
-
return $this->elements[ $key ];
|
153 |
-
}
|
154 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/class-loader.php
CHANGED
@@ -315,7 +315,7 @@ class BoxLoader {
|
|
315 |
$boxes = array();
|
316 |
foreach ( $posts as $key => $post ) {
|
317 |
// skip posts with no content
|
318 |
-
$post_content = trim(
|
319 |
if( empty( $post_content ) ) {
|
320 |
continue;
|
321 |
}
|
315 |
$boxes = array();
|
316 |
foreach ( $posts as $key => $post ) {
|
317 |
// skip posts with no content
|
318 |
+
$post_content = trim( $post->post_content );
|
319 |
if( empty( $post_content ) ) {
|
320 |
continue;
|
321 |
}
|
src/licensing/class-license-manager.php
CHANGED
@@ -29,12 +29,12 @@ class LicenseManager {
|
|
29 |
protected $notices = array();
|
30 |
|
31 |
/**
|
32 |
-
* @param
|
33 |
* @param API $api
|
34 |
* @param License $license
|
35 |
* @param Notices $notices
|
36 |
*/
|
37 |
-
public function __construct(
|
38 |
$this->extensions = $extensions;
|
39 |
$this->license = $license;
|
40 |
$this->api = $api;
|
@@ -57,7 +57,7 @@ class LicenseManager {
|
|
57 |
public function hook() {
|
58 |
|
59 |
// do nothing if no extensions are registered at this point
|
60 |
-
if(
|
61 |
return;
|
62 |
}
|
63 |
|
@@ -83,7 +83,7 @@ class LicenseManager {
|
|
83 |
return;
|
84 |
}
|
85 |
|
86 |
-
$plugin = $this->extensions->
|
87 |
$message = sprintf( 'Please <a href="%s">activate your Boxzilla license</a> to use %s.', admin_url( 'edit.php?post_type=boxzilla-box&page=boxzilla-settings' ), '<strong>' . $plugin->name() . '</strong>' );
|
88 |
echo sprintf( '<div class="notice notice-%s"><p>%s</p></div>', 'warning', $message );
|
89 |
}
|
29 |
protected $notices = array();
|
30 |
|
31 |
/**
|
32 |
+
* @param array $extensions
|
33 |
* @param API $api
|
34 |
* @param License $license
|
35 |
* @param Notices $notices
|
36 |
*/
|
37 |
+
public function __construct( array $extensions, API $api, License $license ) {
|
38 |
$this->extensions = $extensions;
|
39 |
$this->license = $license;
|
40 |
$this->api = $api;
|
57 |
public function hook() {
|
58 |
|
59 |
// do nothing if no extensions are registered at this point
|
60 |
+
if( empty( $this->extensions ) ) {
|
61 |
return;
|
62 |
}
|
63 |
|
83 |
return;
|
84 |
}
|
85 |
|
86 |
+
$plugin = $this->extensions[ array_rand( $this->extensions ) ];
|
87 |
$message = sprintf( 'Please <a href="%s">activate your Boxzilla license</a> to use %s.', admin_url( 'edit.php?post_type=boxzilla-box&page=boxzilla-settings' ), '<strong>' . $plugin->name() . '</strong>' );
|
88 |
echo sprintf( '<div class="notice notice-%s"><p>%s</p></div>', 'warning', $message );
|
89 |
}
|
src/licensing/class-update-manager.php
CHANGED
@@ -9,9 +9,9 @@ use Boxzilla\Collection,
|
|
9 |
class UpdateManager {
|
10 |
|
11 |
/**
|
12 |
-
* @var
|
13 |
*/
|
14 |
-
protected $extensions;
|
15 |
|
16 |
/**
|
17 |
* @var API
|
@@ -33,7 +33,7 @@ class UpdateManager {
|
|
33 |
* @param API $api
|
34 |
* @param License $license
|
35 |
*/
|
36 |
-
public function __construct(
|
37 |
$this->extensions = $extensions;
|
38 |
$this->license = $license;
|
39 |
$this->api = $api;
|
@@ -90,13 +90,17 @@ class UpdateManager {
|
|
90 |
return $result;
|
91 |
}
|
92 |
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
|
|
|
|
|
|
|
|
98 |
// was it a plugin of ours?
|
99 |
-
if( $plugin ) {
|
100 |
return $this->get_update_info( $plugin );
|
101 |
}
|
102 |
|
@@ -110,7 +114,7 @@ class UpdateManager {
|
|
110 |
public function add_updates( $updates ) {
|
111 |
|
112 |
// do nothing if no plugins registered
|
113 |
-
if(
|
114 |
return $updates;
|
115 |
}
|
116 |
|
@@ -149,7 +153,7 @@ class UpdateManager {
|
|
149 |
|
150 |
// fetch remote info
|
151 |
try {
|
152 |
-
$remote_plugins = $this->api->get_plugins(
|
153 |
} catch( API_Exception $e ) {
|
154 |
// set flag for 5 minutes
|
155 |
set_transient( 'boxzilla_request_failed', strtotime('now'), 300 );
|
@@ -174,14 +178,13 @@ class UpdateManager {
|
|
174 |
// find new versions
|
175 |
foreach( $remote_plugins as $remote_plugin ) {
|
176 |
|
|
|
|
|
|
|
|
|
177 |
// find corresponding local plugin
|
178 |
/** @var Plugin $local_plugin */
|
179 |
-
$local_plugin = $this->extensions->
|
180 |
-
function( $local_plugin ) use( $remote_plugin ){
|
181 |
-
/** @var Plugin $local_plugin */
|
182 |
-
return $local_plugin->id() == $remote_plugin->sid;
|
183 |
-
}
|
184 |
-
);
|
185 |
|
186 |
// plugin found and local plugin version not same as remote version?
|
187 |
if( ! $local_plugin || version_compare( $local_plugin->version(), $remote_plugin->new_version, '>=' ) ) {
|
9 |
class UpdateManager {
|
10 |
|
11 |
/**
|
12 |
+
* @var array
|
13 |
*/
|
14 |
+
protected $extensions = array();
|
15 |
|
16 |
/**
|
17 |
* @var API
|
33 |
* @param API $api
|
34 |
* @param License $license
|
35 |
*/
|
36 |
+
public function __construct( array $extensions, API $api, License $license ) {
|
37 |
$this->extensions = $extensions;
|
38 |
$this->license = $license;
|
39 |
$this->api = $api;
|
90 |
return $result;
|
91 |
}
|
92 |
|
93 |
+
$plugin = null;
|
94 |
+
foreach( $this->extensions as $p ) {
|
95 |
+
// find plugin by slug
|
96 |
+
if( dirname( $p->slug() ) == $args->slug ) {
|
97 |
+
$plugin = $p;
|
98 |
+
break;
|
99 |
+
}
|
100 |
+
}
|
101 |
+
|
102 |
// was it a plugin of ours?
|
103 |
+
if( ! empty( $plugin ) ) {
|
104 |
return $this->get_update_info( $plugin );
|
105 |
}
|
106 |
|
114 |
public function add_updates( $updates ) {
|
115 |
|
116 |
// do nothing if no plugins registered
|
117 |
+
if( empty( $this->extensions ) ) {
|
118 |
return $updates;
|
119 |
}
|
120 |
|
153 |
|
154 |
// fetch remote info
|
155 |
try {
|
156 |
+
$remote_plugins = $this->api->get_plugins();
|
157 |
} catch( API_Exception $e ) {
|
158 |
// set flag for 5 minutes
|
159 |
set_transient( 'boxzilla_request_failed', strtotime('now'), 300 );
|
178 |
// find new versions
|
179 |
foreach( $remote_plugins as $remote_plugin ) {
|
180 |
|
181 |
+
if( ! isset( $this->extensions[ $remote_plugin->sid ] ) ) {
|
182 |
+
continue;
|
183 |
+
}
|
184 |
+
|
185 |
// find corresponding local plugin
|
186 |
/** @var Plugin $local_plugin */
|
187 |
+
$local_plugin = $this->extensions[ $remote_plugin->sid ];
|
|
|
|
|
|
|
|
|
|
|
188 |
|
189 |
// plugin found and local plugin version not same as remote version?
|
190 |
if( ! $local_plugin || version_compare( $local_plugin->version(), $remote_plugin->new_version, '>=' ) ) {
|
src/licensing/views/license-form.php
CHANGED
@@ -13,7 +13,11 @@ defined( 'ABSPATH' ) or exit;
|
|
13 |
<strong><?php _e( 'Warning! You are <u>not</u> receiving plugin updates for the following plugin(s):', 'boxzilla' ); ?></strong>
|
14 |
</p>
|
15 |
<ul class="ul-square">
|
16 |
-
|
|
|
|
|
|
|
|
|
17 |
</ul>
|
18 |
<p>
|
19 |
To fix this, please activate your license using the form below.
|
13 |
<strong><?php _e( 'Warning! You are <u>not</u> receiving plugin updates for the following plugin(s):', 'boxzilla' ); ?></strong>
|
14 |
</p>
|
15 |
<ul class="ul-square">
|
16 |
+
<?php
|
17 |
+
foreach( $this->extensions as $p ) {
|
18 |
+
echo '<li>' . esc_html( $p->name() ) . '</li>';
|
19 |
+
}
|
20 |
+
?>
|
21 |
</ul>
|
22 |
<p>
|
23 |
To fix this, please activate your license using the form below.
|