Version Description
(2015-12-30) = * Fixed bug: Licensing notices will now be displayed again. * Enhanced: Major licensing system improvements.
Download this release
Release Info
Developer | markzahra |
Plugin | WP RSS Aggregator |
Version | 4.8 |
Comparing to | |
See all releases |
Code changes from version 4.7.8 to 4.8
- includes/Aventura/Wprss/Core/Licensing/License.php +46 -0
- includes/Aventura/Wprss/Core/Licensing/License/Status.php +5 -4
- includes/Aventura/Wprss/Core/Licensing/Manager.php +76 -46
- includes/Aventura/Wprss/Core/Licensing/Settings.php +64 -22
- includes/admin.php +0 -27
- includes/licensing.php +35 -21
- nbproject/project.properties +7 -0
- nbproject/project.xml +9 -0
- readme.txt +6 -2
- wp-rss-aggregator.php +4 -5
includes/Aventura/Wprss/Core/Licensing/License.php
CHANGED
@@ -160,6 +160,52 @@ class License {
|
|
160 |
return $this->_addonCode;
|
161 |
}
|
162 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
163 |
/**
|
164 |
* Gets the default values for all properties of the license.
|
165 |
*
|
160 |
return $this->_addonCode;
|
161 |
}
|
162 |
|
163 |
+
/**
|
164 |
+
* Checks if the license status is valid.
|
165 |
+
*
|
166 |
+
* @return boolean True if the status is valid, false otherwise.
|
167 |
+
*/
|
168 |
+
public function isValid() {
|
169 |
+
return $this->getStatus() === Status::VALID;
|
170 |
+
}
|
171 |
+
|
172 |
+
/**
|
173 |
+
* Checks if the license is invalid.
|
174 |
+
*
|
175 |
+
* @return boolean True if the license is invalid, false if otherwise.
|
176 |
+
*/
|
177 |
+
public function isInvalid() {
|
178 |
+
return $this->getStatus() === Status::INVALID;
|
179 |
+
}
|
180 |
+
|
181 |
+
/**
|
182 |
+
* Checks if the license is expired.
|
183 |
+
*
|
184 |
+
* @return boolean True if the license is expired, false if otherwise.
|
185 |
+
*/
|
186 |
+
public function isExpired() {
|
187 |
+
return $this->getStatus() === Status::EXPIRED;
|
188 |
+
}
|
189 |
+
|
190 |
+
/**
|
191 |
+
* Alias method for License::isValid(). Checks if the license is active.
|
192 |
+
*
|
193 |
+
* @uses Aventura\Wprss\Core\Licensing\License::isValid()
|
194 |
+
* @return boolean True if the license is active, false if otherwise.
|
195 |
+
*/
|
196 |
+
public function isActive() {
|
197 |
+
return $this->isValid();
|
198 |
+
}
|
199 |
+
|
200 |
+
/**
|
201 |
+
* Checks if the license is inactive.
|
202 |
+
*
|
203 |
+
* @return boolean True if the license is inactive, false if otherwise.
|
204 |
+
*/
|
205 |
+
public function isInactive() {
|
206 |
+
return $this->getStatus() === Status::INACTIVE || $this->getStatus() === Status::SITE_INACTIVE;
|
207 |
+
}
|
208 |
+
|
209 |
/**
|
210 |
* Gets the default values for all properties of the license.
|
211 |
*
|
includes/Aventura/Wprss/Core/Licensing/License/Status.php
CHANGED
@@ -6,8 +6,9 @@ namespace Aventura\Wprss\Core\Licensing\License;
|
|
6 |
* Enum-style abstract class for license statuses.
|
7 |
*/
|
8 |
abstract class Status {
|
9 |
-
const VALID
|
10 |
-
const INVALID
|
11 |
-
const INACTIVE
|
12 |
-
const
|
|
|
13 |
}
|
6 |
* Enum-style abstract class for license statuses.
|
7 |
*/
|
8 |
abstract class Status {
|
9 |
+
const VALID = 'valid';
|
10 |
+
const INVALID = 'invalid';
|
11 |
+
const INACTIVE = 'inactive';
|
12 |
+
const SITE_INACTIVE = 'site_inactive';
|
13 |
+
const EXPIRED = 'expired';
|
14 |
}
|
includes/Aventura/Wprss/Core/Licensing/Manager.php
CHANGED
@@ -263,7 +263,7 @@ class Manager {
|
|
263 |
/**
|
264 |
* Gets all licenses with the given status.
|
265 |
*
|
266 |
-
* @param
|
267 |
* @param boolean $negation If true, the method will search for licenses that do NOT have the given status.
|
268 |
* If false, the method will search for licenses with the given status.
|
269 |
* Default: false
|
@@ -272,7 +272,10 @@ class Manager {
|
|
272 |
public function getLicensesWithStatus( $status, $negation = false ) {
|
273 |
$licenses = array();
|
274 |
foreach ( $this->_licenses as $_addonId => $_license ) {
|
275 |
-
|
|
|
|
|
|
|
276 |
$licenses[ $_addonId ] = $_license;
|
277 |
}
|
278 |
}
|
@@ -283,7 +286,7 @@ class Manager {
|
|
283 |
/**
|
284 |
* Checks if a license with the given status exists, stopping at the first match.
|
285 |
*
|
286 |
-
* @param
|
287 |
* @param boolean $negation If true, the method will search for licenses that do NOT have the given status.
|
288 |
* If false, the method will search for licenses with the given status.
|
289 |
* Default: false
|
@@ -294,6 +297,23 @@ class Manager {
|
|
294 |
}
|
295 |
|
296 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
297 |
/**
|
298 |
* Gets the licenses that are soon to be expired.
|
299 |
*
|
@@ -307,21 +327,36 @@ class Manager {
|
|
307 |
// Prepare the list
|
308 |
$expiringLicences = array();
|
309 |
// Iterate all licenses
|
310 |
-
foreach ( $this->_licenses as $
|
311 |
-
|
312 |
-
|
313 |
-
// Split using space and get first part only (date only)
|
314 |
-
$parts = explode( ' ', $expires );
|
315 |
-
$dateOnly = strtotime( $parts[0] );
|
316 |
-
// Check if the expiry date is zero, or is within the expiration notice period
|
317 |
-
if ( $dateOnly == 0 || $dateOnly < $ste ) {
|
318 |
-
$expiringLicences[ $addonId ] = $license;
|
319 |
}
|
320 |
}
|
321 |
return $expiringLicences;
|
322 |
}
|
323 |
|
324 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
325 |
/**
|
326 |
* Checks if there are licenses that will soon expire.
|
327 |
*
|
@@ -487,41 +522,36 @@ class Manager {
|
|
487 |
|
488 |
|
489 |
/**
|
490 |
-
*
|
491 |
-
*
|
492 |
-
* @
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
if ( $license === null || $license->getStatus() !== Status::VALID ) continue;
|
507 |
-
$uid = strtoupper( $id );
|
508 |
-
$name = constant("WPRSS_{$uid}_SL_ITEM_NAME");
|
509 |
-
$version = constant("WPRSS_{$uid}_VERSION");
|
510 |
-
$path = constant("WPRSS_{$uid}_PATH");
|
511 |
-
$storeUrl = defined( "WPRSS_{$uid}_SL_STORE_URL")
|
512 |
-
? constant( "WPRSS_{$uid}_SL_STORE_URL" )
|
513 |
-
: WPRSS_SL_STORE_URL;
|
514 |
-
|
515 |
-
// Set up an updater and register the instance
|
516 |
-
$this->_setUpdaterInstance(
|
517 |
-
$id,
|
518 |
-
$this->newUpdater($storeUrl, $path, array(
|
519 |
-
'version' => $version, // current version number
|
520 |
-
'license' => $license, // license key (used get_option above to retrieve from DB)
|
521 |
-
'item_name' => $name, // name of this plugin
|
522 |
-
))
|
523 |
-
);
|
524 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
525 |
}
|
526 |
|
527 |
|
263 |
/**
|
264 |
* Gets all licenses with the given status.
|
265 |
*
|
266 |
+
* @param mixed $status The status to search for, or an array of statuses.
|
267 |
* @param boolean $negation If true, the method will search for licenses that do NOT have the given status.
|
268 |
* If false, the method will search for licenses with the given status.
|
269 |
* Default: false
|
272 |
public function getLicensesWithStatus( $status, $negation = false ) {
|
273 |
$licenses = array();
|
274 |
foreach ( $this->_licenses as $_addonId => $_license ) {
|
275 |
+
$_isStatus = is_array($status)
|
276 |
+
? in_array($_license->getStatus())
|
277 |
+
: $_license->getStatus() === $status;
|
278 |
+
if ( $_isStatus xor $negation === true ) {
|
279 |
$licenses[ $_addonId ] = $_license;
|
280 |
}
|
281 |
}
|
286 |
/**
|
287 |
* Checks if a license with the given status exists, stopping at the first match.
|
288 |
*
|
289 |
+
* @param mixed $status The status to search for, or an array of statuses.
|
290 |
* @param boolean $negation If true, the method will search for licenses that do NOT have the given status.
|
291 |
* If false, the method will search for licenses with the given status.
|
292 |
* Default: false
|
297 |
}
|
298 |
|
299 |
|
300 |
+
/**
|
301 |
+
* Gets inactive licenses.
|
302 |
+
*
|
303 |
+
* @uses self::getLicensesWithStatus
|
304 |
+
* @return array
|
305 |
+
*/
|
306 |
+
public function getInactiveLicenses() {
|
307 |
+
$licenses = array();
|
308 |
+
foreach ( $this->_licenses as $_addonId => $_license ) {
|
309 |
+
if ($_license->isInactive()) {
|
310 |
+
$licenses[ $_addonId ] = $_license;
|
311 |
+
}
|
312 |
+
}
|
313 |
+
return $licenses;
|
314 |
+
}
|
315 |
+
|
316 |
+
|
317 |
/**
|
318 |
* Gets the licenses that are soon to be expired.
|
319 |
*
|
327 |
// Prepare the list
|
328 |
$expiringLicences = array();
|
329 |
// Iterate all licenses
|
330 |
+
foreach ( $this->_licenses as $_addonId => $_license ) {
|
331 |
+
if ($this->isLicenseExpiring($_addonId)) {
|
332 |
+
$expiringLicences[ $addonId ] = $_license;
|
|
|
|
|
|
|
|
|
|
|
|
|
333 |
}
|
334 |
}
|
335 |
return $expiringLicences;
|
336 |
}
|
337 |
|
338 |
|
339 |
+
/**
|
340 |
+
* Checks if a license is about to expire, according to the expiration period.
|
341 |
+
*
|
342 |
+
* @param string $addonId The ID of the addon whose license is to be checked for expiry.
|
343 |
+
* @return boolean True if the addon's license is about to expire, false if the addon license does not exist or is not about to expire.
|
344 |
+
*/
|
345 |
+
public function isLicenseExpiring( $addonId ) {
|
346 |
+
if (!$this->licenseExists($addonId)) {
|
347 |
+
return false;
|
348 |
+
}
|
349 |
+
$license = $this->getLicense($addonId);
|
350 |
+
// Get expiry
|
351 |
+
$expires = $license->getExpiry();
|
352 |
+
// Split using space and get first part only (date only)
|
353 |
+
$parts = explode( ' ', $expires );
|
354 |
+
$dateOnly = strtotime( $parts[0] );
|
355 |
+
// Check if the expiry date is zero, or is within the expiration notice period
|
356 |
+
return $dateOnly == 0 || $dateOnly < $this->getSteTimestamp();
|
357 |
+
}
|
358 |
+
|
359 |
+
|
360 |
/**
|
361 |
* Checks if there are licenses that will soon expire.
|
362 |
*
|
522 |
|
523 |
|
524 |
/**
|
525 |
+
* Creates an updater instance for an addon.
|
526 |
+
*
|
527 |
+
* @param string $id The ID of the addon.
|
528 |
+
* @param string $itemName The name of the addon as registered in EDD on our servers.
|
529 |
+
* @param string $version The current version of the addon.
|
530 |
+
* @param string $path The path to the addon's main file.
|
531 |
+
* @param string $storeUrl The URL of the server that handles the licensing and serves the updates.
|
532 |
+
* @return boolean True if the updater was initialized, false on failure due to an invalid license.
|
533 |
+
*/
|
534 |
+
public function initUpdaterInstance($id, $itemName, $version, $path, $storeUrl = WPRSS_SL_STORE_URL) {
|
535 |
+
// Prepare the data
|
536 |
+
$license = $this->getLicense( $id );
|
537 |
+
// If the addon doesn't have a license or the license is not valid, do not set the updater.
|
538 |
+
// Returns false to indicate this failure.
|
539 |
+
if ( $license === null || $license->getStatus() !== Status::VALID ) {
|
540 |
+
return false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
541 |
}
|
542 |
+
|
543 |
+
// Create an updater
|
544 |
+
$updater = $this->newUpdater($storeUrl, $path, array(
|
545 |
+
'version' => $version, // current version number
|
546 |
+
'license' => $license, // license key (used get_option above to retrieve from DB)
|
547 |
+
'item_name' => $itemName, // name of this plugin
|
548 |
+
));
|
549 |
+
|
550 |
+
// Register the updater
|
551 |
+
$this->_setUpdaterInstance($id, $updater);
|
552 |
+
|
553 |
+
// Return true to indicate success
|
554 |
+
return true;
|
555 |
}
|
556 |
|
557 |
|
includes/Aventura/Wprss/Core/Licensing/Settings.php
CHANGED
@@ -41,7 +41,7 @@ class Settings {
|
|
41 |
public function __construct() {
|
42 |
$this->_setManager( wprss_licensing_get_manager() );
|
43 |
// Only load notices if on admin side
|
44 |
-
if ( is_admin() ) {
|
45 |
$this->_initNotices();
|
46 |
}
|
47 |
}
|
@@ -74,14 +74,44 @@ class Settings {
|
|
74 |
protected function _initNotices() {
|
75 |
$noticesCollection = wprss_admin_notice_get_collection();
|
76 |
foreach ( $this->getManager()->getAddons() as $_addonId => $_addonName ) {
|
77 |
-
$
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
83 |
);
|
84 |
-
$noticesCollection->add_notice( $_notice );
|
85 |
}
|
86 |
|
87 |
return $this;
|
@@ -92,28 +122,40 @@ class Settings {
|
|
92 |
*
|
93 |
* @return boolean True if the notice is to be shown, false if not.
|
94 |
*/
|
95 |
-
public function
|
96 |
-
if ( isset( $args['addon'] ) ) return false;
|
97 |
$license = $this->getManager()->getLicense( $args['addon'] );
|
98 |
-
return $license !== null && $license->
|
99 |
}
|
100 |
|
|
|
101 |
/**
|
102 |
-
*
|
103 |
*
|
104 |
-
* @
|
105 |
-
* @return string
|
106 |
*/
|
107 |
-
public function
|
108 |
-
|
109 |
-
$
|
110 |
-
return
|
111 |
-
__( '<p>Remember to <a href="%s">enter your plugin license code</a> for the WP RSS Aggregator <strong>%s</strong> add-on to benefit from updates and support.</p>', WPRSS_TEXT_DOMAIN ),
|
112 |
-
esc_attr( admin_url( 'edit.php?post_type=wprss_feed&page=wprss-aggregator-settings&tab=licenses_settings' ) ),
|
113 |
-
$addonName
|
114 |
-
);
|
115 |
}
|
116 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
117 |
/**
|
118 |
* Registers the WordPress settings.
|
119 |
*/
|
41 |
public function __construct() {
|
42 |
$this->_setManager( wprss_licensing_get_manager() );
|
43 |
// Only load notices if on admin side
|
44 |
+
if ( is_main_site() && is_admin() ) {
|
45 |
$this->_initNotices();
|
46 |
}
|
47 |
}
|
74 |
protected function _initNotices() {
|
75 |
$noticesCollection = wprss_admin_notice_get_collection();
|
76 |
foreach ( $this->getManager()->getAddons() as $_addonId => $_addonName ) {
|
77 |
+
$_year = date('Y');
|
78 |
+
$noticesCollection->add_notice(
|
79 |
+
array(
|
80 |
+
'id' => sprintf( 'empty_license_notice_%s', $_addonId ),
|
81 |
+
'addon' => $_addonId,
|
82 |
+
'notice_type' => 'error',
|
83 |
+
'condition' => array( array( $this, 'emptyLicenseKeyNoticeCondition' ) ),
|
84 |
+
'content' => sprintf(
|
85 |
+
__( '<p>Remember to <a href="%1$s">enter your license key</a> for the <strong>WP RSS Aggregator - %2$s</strong> add-on to benefit from updates and support.</p>', WPRSS_TEXT_DOMAIN ),
|
86 |
+
esc_attr( admin_url( 'edit.php?post_type=wprss_feed&page=wprss-aggregator-settings&tab=licenses_settings' ) ),
|
87 |
+
$_addonName
|
88 |
+
)
|
89 |
+
)
|
90 |
+
)->add_notice(
|
91 |
+
array(
|
92 |
+
'id' => sprintf( 'saved_inactive_license_notice_%s', $_addonId ),
|
93 |
+
'addon' => $_addonId,
|
94 |
+
'notice_type' => 'error',
|
95 |
+
'condition' => array( array( $this, 'savedInactiveLicenseNoticeCondition' ) ),
|
96 |
+
'content' => sprintf(
|
97 |
+
__( '<p>The license key for the <strong>WP RSS Aggregator - %2$s</strong> add-on is saved but not activated. In order to benefit from updates and support, it must be <a href="%1$s">activated</a>.</p>', WPRSS_TEXT_DOMAIN ),
|
98 |
+
esc_attr( admin_url( 'edit.php?post_type=wprss_feed&page=wprss-aggregator-settings&tab=licenses_settings' ) ),
|
99 |
+
$_addonName
|
100 |
+
)
|
101 |
+
)
|
102 |
+
)->add_notice(
|
103 |
+
array(
|
104 |
+
'id' => sprintf( 'soon_to_expire_license_notice_%s_%s', $_addonId, $_year ),
|
105 |
+
'addon' => $_addonId,
|
106 |
+
'notice_type' => 'error',
|
107 |
+
'condition' => array( array( $this, 'soonToExpireLicenseNoticeCondition' ) ),
|
108 |
+
'content' => sprintf(
|
109 |
+
__( '<p>The license for the <strong>WP RSS Aggregator - %2$s</strong> add-on is about to expire. Make sure to renew it to keep receiving updates and benefit from support.</p>', WPRSS_TEXT_DOMAIN ),
|
110 |
+
esc_attr( admin_url( 'edit.php?post_type=wprss_feed&page=wprss-aggregator-settings&tab=licenses_settings' ) ),
|
111 |
+
$_addonName
|
112 |
+
)
|
113 |
+
)
|
114 |
);
|
|
|
115 |
}
|
116 |
|
117 |
return $this;
|
122 |
*
|
123 |
* @return boolean True if the notice is to be shown, false if not.
|
124 |
*/
|
125 |
+
public function emptyLicenseKeyNoticeCondition( $args ) {
|
126 |
+
if ( ! isset( $args['addon'] ) ) return false;
|
127 |
$license = $this->getManager()->getLicense( $args['addon'] );
|
128 |
+
return $license !== null && ! $license->isValid();
|
129 |
}
|
130 |
|
131 |
+
|
132 |
/**
|
133 |
+
* Condition callback for the "inactive saved license" notice.
|
134 |
*
|
135 |
+
* @return boolean True if the notice is to be shown, false if not.
|
|
|
136 |
*/
|
137 |
+
public function savedInactiveLicenseNoticeCondition( $args ) {
|
138 |
+
if ( ! isset( $args['addon'] ) ) return false;
|
139 |
+
$license = $this->getManager()->getLicense( $args['addon'] );
|
140 |
+
return $license !== null && strlen( $license->getKey() ) > 0 && $license->isInactive();
|
|
|
|
|
|
|
|
|
141 |
}
|
142 |
|
143 |
+
|
144 |
+
/**
|
145 |
+
* Condition callback for the "soon to expire license" notice.
|
146 |
+
*
|
147 |
+
* @return boolean True if the notice is to be shown, false if not.
|
148 |
+
*/
|
149 |
+
public function soonToExpireLicenseNoticeCondition( $args ) {
|
150 |
+
if ( ! isset( $args['addon'] ) ) return false;
|
151 |
+
$manager = $this->getManager();
|
152 |
+
if ( !($license = $manager->getLicense( $args['addon'] )) ) {
|
153 |
+
return false;
|
154 |
+
}
|
155 |
+
return $license->isValid() && $manager->isLicenseExpiring($args['addon']);
|
156 |
+
}
|
157 |
+
|
158 |
+
|
159 |
/**
|
160 |
* Registers the WordPress settings.
|
161 |
*/
|
includes/admin.php
CHANGED
@@ -115,30 +115,3 @@
|
|
115 |
}
|
116 |
return $action_links;
|
117 |
}
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
if ( is_main_site() ) {
|
122 |
-
add_action( 'admin_notices', 'wprss_notify_inactive_licenses' );
|
123 |
-
}
|
124 |
-
/**
|
125 |
-
* Shows a notification that tells the user that there are saved licenses that have not been activated.
|
126 |
-
*
|
127 |
-
* @since 3.8.1
|
128 |
-
*/
|
129 |
-
function wprss_notify_inactive_licenses() {
|
130 |
-
// Check if a transient to show the notice is set
|
131 |
-
$transient = get_transient( 'wprss_notify_inactive_licenses' );
|
132 |
-
// If it is not set, then do nothing and return
|
133 |
-
if ( $transient === FALSE ) return;
|
134 |
-
// If it is set, delete it
|
135 |
-
delete_transient( 'wprss_notify_inactive_licenses' );
|
136 |
-
|
137 |
-
// Show the notice ?>
|
138 |
-
<div class="wprss-license-notice updated">
|
139 |
-
<?php echo wpautop( sprintf( __('<b>WP RSS Aggregator</b>:'
|
140 |
-
. ' There are saved licenses that have not yet been activated. Go to the'
|
141 |
-
. ' <a href="%1$s">License page</a> to activate them.', WPRSS_TEXT_DOMAIN ), admin_url() . 'edit.php?post_type=wprss_feed&page=wprss-aggregator-settings&tab=licenses_settings' ) ) ?>
|
142 |
-
</div>
|
143 |
-
<?php
|
144 |
-
}
|
115 |
}
|
116 |
return $action_links;
|
117 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/licensing.php
CHANGED
@@ -62,25 +62,39 @@ function wprss_get_addons($noCache = false) {
|
|
62 |
/**
|
63 |
* Hooks the licensing system into WordPress.
|
64 |
*/
|
65 |
-
function
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
86 |
}
|
62 |
/**
|
63 |
* Hooks the licensing system into WordPress.
|
64 |
*/
|
65 |
+
function wprss_licensing() {
|
66 |
+
static $licensing = null;
|
67 |
+
|
68 |
+
if ( is_null( $licensing ) ) {
|
69 |
+
// Get licensing class instances
|
70 |
+
$manager = wprss_licensing_get_manager();
|
71 |
+
$settingsController = wprss_licensing_get_settings_controller();
|
72 |
+
$ajaxController = wprss_licensing_get_ajax_controller();
|
73 |
+
|
74 |
+
// Set up Ajax Controller pointers
|
75 |
+
$ajaxController->setManager( $manager );
|
76 |
+
$ajaxController->setSettingsController( $settingsController );
|
77 |
+
|
78 |
+
// Licensing Ajax Controller hooks
|
79 |
+
add_action( 'wp_ajax_wprss_ajax_manage_license', array( $ajaxController, 'handleAjaxManageLicense' ) );
|
80 |
+
add_action( 'wp_ajax_wprss_ajax_fetch_license', array( $ajaxController, 'handleAjaxFetchLicense' ) );
|
81 |
+
|
82 |
+
// Licensing Settings Controller hooks
|
83 |
+
add_action( 'wprss_admin_init', array( $settingsController, 'registerSettings' ), 100 );
|
84 |
+
add_action( 'admin_init', array( $settingsController, 'handleLicenseStatusChange' ), 10 );
|
85 |
+
add_action( 'wprss_settings_license_key_is_valid', array( $settingsController, 'validateLicenseKeyForSave' ) );
|
86 |
+
|
87 |
+
$licensing = (object) compact( 'manager', 'settingsController', 'ajaxController' );
|
88 |
+
|
89 |
+
// Action for hooking after licensing has been initialized
|
90 |
+
do_action( 'wprss_init_licensing' );
|
91 |
+
|
92 |
+
// Backwards compatibility with old licensing lib
|
93 |
+
// This ensures that, if an addon is loading an older version of the licensing library, the old method for initializing the updaters is called.
|
94 |
+
if ( method_exists($manager, 'initUpdaterInstances') ) {
|
95 |
+
add_action( 'admin_init', array($manager, 'initUpdaterInstances') );
|
96 |
+
}
|
97 |
+
}
|
98 |
+
|
99 |
+
return $licensing;
|
100 |
}
|
nbproject/project.properties
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
include.path=${php.global.include.path}
|
2 |
+
php.version=PHP_53
|
3 |
+
source.encoding=UTF-8
|
4 |
+
src.dir=.
|
5 |
+
tags.asp=false
|
6 |
+
tags.short=false
|
7 |
+
web.root=.
|
nbproject/project.xml
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<project xmlns="http://www.netbeans.org/ns/project/1">
|
3 |
+
<type>org.netbeans.modules.php.project</type>
|
4 |
+
<configuration>
|
5 |
+
<data xmlns="http://www.netbeans.org/ns/php-project/1">
|
6 |
+
<name>WPRACORE</name>
|
7 |
+
</data>
|
8 |
+
</configuration>
|
9 |
+
</project>
|
readme.txt
CHANGED
@@ -3,8 +3,8 @@ Contributors: jeangalea, Mekku, xedin.unknown, markzahra, doytch, chiragswadia
|
|
3 |
Plugin URI: http://www.wprssaggregator.com
|
4 |
Tags: rss, aggregation, autoblog, autoblog aggregator, autoblogger, autoblogging, autopost, content curation, feed aggregation, feed aggregator, feed import, feed reader, feed to post, feeds, multi feed import, multi feed importer, multi rss feeds, multiple feed import, multiple rss feeds,rss aggregator, rss feader, RSS Feed, rss feed to post, rss feeder, RSS import, rss multi importer, rss post importer, rss retriever, rss to post, syndication
|
5 |
Requires at least: 4.0
|
6 |
-
Tested up to: 4.
|
7 |
-
Stable tag: 4.
|
8 |
License: GPLv2 or later
|
9 |
The no.1 RSS feed importer for WordPress. Premium add-ons available for more functionality.
|
10 |
|
@@ -193,6 +193,10 @@ The full documentation section can be found on the [WP RSS Aggregator website](h
|
|
193 |
|
194 |
== Changelog ==
|
195 |
|
|
|
|
|
|
|
|
|
196 |
= 4.7.8 (2015-11-18) =
|
197 |
* Fixed bug: Sticky posts no longer get deleted when truncating, unless imported from a feed source.
|
198 |
* Enhanced: Added autoloading and refactored licensing.
|
3 |
Plugin URI: http://www.wprssaggregator.com
|
4 |
Tags: rss, aggregation, autoblog, autoblog aggregator, autoblogger, autoblogging, autopost, content curation, feed aggregation, feed aggregator, feed import, feed reader, feed to post, feeds, multi feed import, multi feed importer, multi rss feeds, multiple feed import, multiple rss feeds,rss aggregator, rss feader, RSS Feed, rss feed to post, rss feeder, RSS import, rss multi importer, rss post importer, rss retriever, rss to post, syndication
|
5 |
Requires at least: 4.0
|
6 |
+
Tested up to: 4.4
|
7 |
+
Stable tag: 4.8
|
8 |
License: GPLv2 or later
|
9 |
The no.1 RSS feed importer for WordPress. Premium add-ons available for more functionality.
|
10 |
|
193 |
|
194 |
== Changelog ==
|
195 |
|
196 |
+
= 4.8 (2015-12-30) =
|
197 |
+
* Fixed bug: Licensing notices will now be displayed again.
|
198 |
+
* Enhanced: Major licensing system improvements.
|
199 |
+
|
200 |
= 4.7.8 (2015-11-18) =
|
201 |
* Fixed bug: Sticky posts no longer get deleted when truncating, unless imported from a feed source.
|
202 |
* Enhanced: Added autoloading and refactored licensing.
|
wp-rss-aggregator.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: WP RSS Aggregator
|
4 |
Plugin URI: http://www.wprssaggregator.com
|
5 |
Description: Imports and aggregates multiple RSS Feeds using SimplePie
|
6 |
-
Version: 4.
|
7 |
Author: Jean Galea
|
8 |
Author URI: http://www.wprssaggregator.com
|
9 |
License: GPLv2
|
@@ -29,7 +29,7 @@
|
|
29 |
|
30 |
/**
|
31 |
* @package WPRSSAggregator
|
32 |
-
* @version 4.
|
33 |
* @since 1.0
|
34 |
* @author Jean Galea <info@wprssaggregator.com>
|
35 |
* @copyright Copyright (c) 2012-2015, Jean Galea
|
@@ -43,7 +43,7 @@
|
|
43 |
|
44 |
// Set the version number of the plugin.
|
45 |
if( !defined( 'WPRSS_VERSION' ) )
|
46 |
-
define( 'WPRSS_VERSION', '4.
|
47 |
|
48 |
if( !defined( 'WPRSS_WP_MIN_VERSION' ) )
|
49 |
define( 'WPRSS_WP_MIN_VERSION', '4.0', true );
|
@@ -240,8 +240,7 @@
|
|
240 |
require_once ( WPRSS_INC . 'fallback-mbstring.php' );
|
241 |
|
242 |
// Initializes licensing
|
243 |
-
|
244 |
-
// add_action( 'plugins_loaded', 'wprss_init_licensing' );
|
245 |
|
246 |
register_activation_hook( __FILE__ , 'wprss_activate' );
|
247 |
register_deactivation_hook( __FILE__ , 'wprss_deactivate' );
|
3 |
Plugin Name: WP RSS Aggregator
|
4 |
Plugin URI: http://www.wprssaggregator.com
|
5 |
Description: Imports and aggregates multiple RSS Feeds using SimplePie
|
6 |
+
Version: 4.8
|
7 |
Author: Jean Galea
|
8 |
Author URI: http://www.wprssaggregator.com
|
9 |
License: GPLv2
|
29 |
|
30 |
/**
|
31 |
* @package WPRSSAggregator
|
32 |
+
* @version 4.8
|
33 |
* @since 1.0
|
34 |
* @author Jean Galea <info@wprssaggregator.com>
|
35 |
* @copyright Copyright (c) 2012-2015, Jean Galea
|
43 |
|
44 |
// Set the version number of the plugin.
|
45 |
if( !defined( 'WPRSS_VERSION' ) )
|
46 |
+
define( 'WPRSS_VERSION', '4.8', true );
|
47 |
|
48 |
if( !defined( 'WPRSS_WP_MIN_VERSION' ) )
|
49 |
define( 'WPRSS_WP_MIN_VERSION', '4.0', true );
|
240 |
require_once ( WPRSS_INC . 'fallback-mbstring.php' );
|
241 |
|
242 |
// Initializes licensing
|
243 |
+
add_action( 'plugins_loaded', 'wprss_licensing' );
|
|
|
244 |
|
245 |
register_activation_hook( __FILE__ , 'wprss_activate' );
|
246 |
register_deactivation_hook( __FILE__ , 'wprss_deactivate' );
|