Version Description
- 2018-01-05
Download this release
Release Info
Developer | codeinwp |
Plugin | FEEDZY RSS Feeds Lite |
Version | 3.2.7 |
Comparing to | |
See all releases |
Code changes from version 3.2.6 to 3.2.7
- CHANGELOG.md +10 -0
- css/feedzy-rss-feeds.css +1 -1
- feedzy-rss-feed.php +1 -1
- includes/abstract/feedzy-rss-feeds-admin-abstract.php +16 -17
- includes/admin/feedzy-wp-widget.php +5 -0
- includes/feedzy-rss-feeds.php +1 -1
- languages/feedzy-rss-feeds.pot +6 -6
- readme.md +11 -0
- readme.txt +105 -0
- themeisle-hash.json +1 -0
- vendor/autoload.php +1 -1
- vendor/autoload_52.php +1 -1
- vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-endpoints.php +312 -0
- vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-feedback-deactivate.php +145 -59
- vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-feedback-review.php +1 -1
- vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-feedback-translate.php +1 -1
- vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-licenser.php +6 -24
- vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-loader.php +4 -1
- vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-logger.php +13 -4
- vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-product.php +1 -1
- vendor/codeinwp/themeisle-sdk/load.php +1 -1
- vendor/codeinwp/themeisle-sdk/start.php +1 -0
- vendor/composer/autoload_real.php +5 -5
- vendor/composer/autoload_real_52.php +3 -3
- vendor/composer/installed.json +4 -4
CHANGELOG.md
CHANGED
@@ -1,4 +1,14 @@
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
### v3.2.6 - 2017-11-16
|
3 |
**Changes:**
|
4 |
* Adds compatibility with WordPress 4.9
|
1 |
|
2 |
+
### v3.2.7 - 2018-02-20
|
3 |
+
**Changes:**
|
4 |
+
* debug being printed on the site
|
5 |
+
|
6 |
+
### v3.2.7 - 2018-01-05
|
7 |
+
**Changes:**
|
8 |
+
* Fix compatibility with SiteOrigin Page Builder.
|
9 |
+
* Adds full content import from feed.
|
10 |
+
* Fix issue with img scraped from articles.
|
11 |
+
|
12 |
### v3.2.6 - 2017-11-16
|
13 |
**Changes:**
|
14 |
* Adds compatibility with WordPress 4.9
|
css/feedzy-rss-feeds.css
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
* feedzy-rss-feeds.css
|
3 |
* Feedzy RSS Feed
|
4 |
* Copyright: (c) 2016 Themeisle, themeisle.com
|
5 |
-
* Version: 3.2.
|
6 |
* Plugin Name: FEEDZY RSS Feeds
|
7 |
* Plugin URI: http://themeisle.com/plugins/feedzy-rss-feeds/
|
8 |
* Author: Themeisle
|
2 |
* feedzy-rss-feeds.css
|
3 |
* Feedzy RSS Feed
|
4 |
* Copyright: (c) 2016 Themeisle, themeisle.com
|
5 |
+
* Version: 3.2.7
|
6 |
* Plugin Name: FEEDZY RSS Feeds
|
7 |
* Plugin URI: http://themeisle.com/plugins/feedzy-rss-feeds/
|
8 |
* Author: Themeisle
|
feedzy-rss-feed.php
CHANGED
@@ -15,7 +15,7 @@
|
|
15 |
* Plugin Name: Feedzy RSS Feeds Lite
|
16 |
* Plugin URI: https://themeisle.com/plugins/feedzy-rss-feeds-lite/
|
17 |
* Description: A small and lightweight RSS aggregator plugin. Fast and very easy to use, it allows you to aggregate multiple RSS feeds into your WordPress site through fully customizable shortcodes & widgets.
|
18 |
-
* Version: 3.2.
|
19 |
* Author: Themeisle
|
20 |
* Author URI: http://themeisle.com
|
21 |
* License: GPL-2.0+
|
15 |
* Plugin Name: Feedzy RSS Feeds Lite
|
16 |
* Plugin URI: https://themeisle.com/plugins/feedzy-rss-feeds-lite/
|
17 |
* Description: A small and lightweight RSS aggregator plugin. Fast and very easy to use, it allows you to aggregate multiple RSS feeds into your WordPress site through fully customizable shortcodes & widgets.
|
18 |
+
* Version: 3.2.7
|
19 |
* Author: Themeisle
|
20 |
* Author URI: http://themeisle.com
|
21 |
* License: GPL-2.0+
|
includes/abstract/feedzy-rss-feeds-admin-abstract.php
CHANGED
@@ -52,7 +52,7 @@ abstract class Feedzy_Rss_Feeds_Admin_Abstract {
|
|
52 |
* @return string
|
53 |
*/
|
54 |
public function feedzy_default_error_notice( $error, $feedURL ) {
|
55 |
-
error_log( 'Feedzy RSS Feeds - related feed: ' . print_r( $feedURL ) . ' - Error message: ' . $this->feedzy_array_obj_string( $error ) );
|
56 |
|
57 |
return '<div id="message" class="error" data-error"' . esc_attr( $this->feedzy_array_obj_string( $error ) ) . '"><p>' . __( 'Sorry, this feed is currently unavailable or does not exists anymore.', 'feedzy-rss-feeds' ) . '</p></div>';
|
58 |
}
|
@@ -754,6 +754,7 @@ abstract class Feedzy_Rss_Feeds_Admin_Abstract {
|
|
754 |
'item_date' => $item->get_date( 'U' ),
|
755 |
'item_author' => $item->get_author(),
|
756 |
'item_description' => $contentSummary,
|
|
|
757 |
);
|
758 |
$itemArray = apply_filters( 'feedzy_item_filter', $itemArray, $item );
|
759 |
|
@@ -837,28 +838,28 @@ abstract class Feedzy_Rss_Feeds_Admin_Abstract {
|
|
837 |
public function feedzy_return_image( $string ) {
|
838 |
$img = html_entity_decode( $string, ENT_QUOTES, 'UTF-8' );
|
839 |
$pattern = '/<img[^>]+\>/i';
|
840 |
-
|
|
|
|
|
841 |
if ( isset( $matches[0] ) ) {
|
842 |
-
$
|
843 |
-
|
844 |
-
$
|
845 |
-
$
|
846 |
-
$blacklist = apply_filters( 'feedzy_feed_blacklist_images', $this->feedzy_blacklist_images( $blacklist ) );
|
847 |
foreach ( $blacklist as $string ) {
|
848 |
if ( strpos( (string) $link, $string ) !== false ) {
|
849 |
-
$
|
|
|
850 |
}
|
851 |
}
|
852 |
-
if ( $
|
|
|
853 |
break;
|
854 |
}
|
855 |
}
|
856 |
-
if ( $blacklistCount == 0 ) {
|
857 |
-
return $link;
|
858 |
-
}
|
859 |
}
|
860 |
|
861 |
-
return
|
862 |
}
|
863 |
|
864 |
/**
|
@@ -889,11 +890,9 @@ abstract class Feedzy_Rss_Feeds_Admin_Abstract {
|
|
889 |
* @since 3.0.0
|
890 |
* @access public
|
891 |
*
|
892 |
-
* @param array $blacklist An array with blacklisted resources.
|
893 |
-
*
|
894 |
* @return array
|
895 |
*/
|
896 |
-
public function feedzy_blacklist_images(
|
897 |
$blacklist = array(
|
898 |
'frownie.png',
|
899 |
'icon_arrow.gif',
|
@@ -923,7 +922,7 @@ abstract class Feedzy_Rss_Feeds_Admin_Abstract {
|
|
923 |
'simple-smile.png',
|
924 |
);
|
925 |
|
926 |
-
return $blacklist;
|
927 |
}
|
928 |
|
929 |
/**
|
52 |
* @return string
|
53 |
*/
|
54 |
public function feedzy_default_error_notice( $error, $feedURL ) {
|
55 |
+
error_log( 'Feedzy RSS Feeds - related feed: ' . print_r( $feedURL, true ) . ' - Error message: ' . $this->feedzy_array_obj_string( $error ) );
|
56 |
|
57 |
return '<div id="message" class="error" data-error"' . esc_attr( $this->feedzy_array_obj_string( $error ) ) . '"><p>' . __( 'Sorry, this feed is currently unavailable or does not exists anymore.', 'feedzy-rss-feeds' ) . '</p></div>';
|
58 |
}
|
754 |
'item_date' => $item->get_date( 'U' ),
|
755 |
'item_author' => $item->get_author(),
|
756 |
'item_description' => $contentSummary,
|
757 |
+
'item_content' => apply_filters( 'feedzy_content', $item->get_content( false ) ),
|
758 |
);
|
759 |
$itemArray = apply_filters( 'feedzy_item_filter', $itemArray, $item );
|
760 |
|
838 |
public function feedzy_return_image( $string ) {
|
839 |
$img = html_entity_decode( $string, ENT_QUOTES, 'UTF-8' );
|
840 |
$pattern = '/<img[^>]+\>/i';
|
841 |
+
preg_match_all( $pattern, $img, $matches );
|
842 |
+
|
843 |
+
$image = null;
|
844 |
if ( isset( $matches[0] ) ) {
|
845 |
+
foreach ( $matches[0] as $match ) {
|
846 |
+
$link = $this->feedzy_scrape_image( $match );
|
847 |
+
$blacklist = $this->feedzy_blacklist_images();
|
848 |
+
$is_blacklist = false;
|
|
|
849 |
foreach ( $blacklist as $string ) {
|
850 |
if ( strpos( (string) $link, $string ) !== false ) {
|
851 |
+
$is_blacklist = true;
|
852 |
+
break;
|
853 |
}
|
854 |
}
|
855 |
+
if ( ! $is_blacklist ) {
|
856 |
+
$image = $link;
|
857 |
break;
|
858 |
}
|
859 |
}
|
|
|
|
|
|
|
860 |
}
|
861 |
|
862 |
+
return $image;
|
863 |
}
|
864 |
|
865 |
/**
|
890 |
* @since 3.0.0
|
891 |
* @access public
|
892 |
*
|
|
|
|
|
893 |
* @return array
|
894 |
*/
|
895 |
+
public function feedzy_blacklist_images() {
|
896 |
$blacklist = array(
|
897 |
'frownie.png',
|
898 |
'icon_arrow.gif',
|
922 |
'simple-smile.png',
|
923 |
);
|
924 |
|
925 |
+
return apply_filters( 'feedzy_feed_blacklist_images', $blacklist );
|
926 |
}
|
927 |
|
928 |
/**
|
includes/admin/feedzy-wp-widget.php
CHANGED
@@ -78,6 +78,11 @@ class feedzy_wp_widget extends WP_Widget {
|
|
78 |
* @return mixed
|
79 |
*/
|
80 |
public function form( $instance ) {
|
|
|
|
|
|
|
|
|
|
|
81 |
$instance = wp_parse_args( $instance, $this->get_widget_defaults() );
|
82 |
$widget_form = '<p>
|
83 |
<label for="' . $this->get_field_id( 'title' ) . '">' . __( 'Widget Title', 'feedzy-rss-feeds' ) . '</label>
|
78 |
* @return mixed
|
79 |
*/
|
80 |
public function form( $instance ) {
|
81 |
+
$screen = get_current_screen();
|
82 |
+
// to prevent conflicts with plugins such as siteorigin page builder that call this function from outside of the 'widgets' screen.
|
83 |
+
if ( 'widgets' !== $screen->id ) {
|
84 |
+
return;
|
85 |
+
}
|
86 |
$instance = wp_parse_args( $instance, $this->get_widget_defaults() );
|
87 |
$widget_form = '<p>
|
88 |
<label for="' . $this->get_field_id( 'title' ) . '">' . __( 'Widget Title', 'feedzy-rss-feeds' ) . '</label>
|
includes/feedzy-rss-feeds.php
CHANGED
@@ -104,7 +104,7 @@ class Feedzy_Rss_Feeds {
|
|
104 |
*/
|
105 |
public function init() {
|
106 |
self::$plugin_name = 'feedzy-rss-feeds';
|
107 |
-
self::$version = '3.2.
|
108 |
self::$instance->load_dependencies();
|
109 |
self::$instance->set_locale();
|
110 |
self::$instance->define_admin_hooks();
|
104 |
*/
|
105 |
public function init() {
|
106 |
self::$plugin_name = 'feedzy-rss-feeds';
|
107 |
+
self::$version = '3.2.7';
|
108 |
self::$instance->load_dependencies();
|
109 |
self::$instance->set_locale();
|
110 |
self::$instance->define_admin_hooks();
|
languages/feedzy-rss-feeds.pot
CHANGED
@@ -1,14 +1,14 @@
|
|
1 |
-
# Copyright (C)
|
2 |
# This file is distributed under the GPL-2.0+.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: Feedzy RSS Feeds Lite 3.2.
|
6 |
"Report-Msgid-Bugs-To: https://github.com/Codeinwp/feedzy-rss-feeds/issues\n"
|
7 |
-
"POT-Creation-Date:
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
-
"PO-Revision-Date:
|
12 |
"Last-Translator: Themeisle Translate Team <friends@themeisle.com>\n"
|
13 |
"Language-Team: Themeisle Translate <friends@themeisle.com>\n"
|
14 |
"X-Generator: grunt-wp-i18n 0.5.4\n"
|
@@ -391,11 +391,11 @@ msgstr ""
|
|
391 |
msgid "Style 2"
|
392 |
msgstr ""
|
393 |
|
394 |
-
#: includes/admin/feedzy-wp-widget.php:
|
395 |
msgid "Widget Title"
|
396 |
msgstr ""
|
397 |
|
398 |
-
#: includes/admin/feedzy-wp-widget.php:
|
399 |
msgid "Intro text"
|
400 |
msgstr ""
|
401 |
|
1 |
+
# Copyright (C) 2018 Themeisle
|
2 |
# This file is distributed under the GPL-2.0+.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: Feedzy RSS Feeds Lite 3.2.6\n"
|
6 |
"Report-Msgid-Bugs-To: https://github.com/Codeinwp/feedzy-rss-feeds/issues\n"
|
7 |
+
"POT-Creation-Date: 2018-01-05 12:16:57+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"PO-Revision-Date: 2018-MO-DA HO:MI+ZONE\n"
|
12 |
"Last-Translator: Themeisle Translate Team <friends@themeisle.com>\n"
|
13 |
"Language-Team: Themeisle Translate <friends@themeisle.com>\n"
|
14 |
"X-Generator: grunt-wp-i18n 0.5.4\n"
|
391 |
msgid "Style 2"
|
392 |
msgstr ""
|
393 |
|
394 |
+
#: includes/admin/feedzy-wp-widget.php:88
|
395 |
msgid "Widget Title"
|
396 |
msgstr ""
|
397 |
|
398 |
+
#: includes/admin/feedzy-wp-widget.php:92
|
399 |
msgid "Intro text"
|
400 |
msgstr ""
|
401 |
|
readme.md
CHANGED
@@ -139,6 +139,7 @@ Become a translator and send me your translation! [Contact-me](http://themeisle.
|
|
139 |
## Frequently Asked Questions ##
|
140 |
|
141 |
|
|
|
142 |
### Is it responsive friendly? ###
|
143 |
|
144 |
Yes it is.
|
@@ -240,6 +241,9 @@ You have to check first if your feed is valid. Please test it here: https://vali
|
|
240 |
= How to use WordAI to Rephrase RSS content in Feedzy =
|
241 |
[http://docs.themeisle.com/article/746-how-to-use-wordai-to-rephrase-rss-content-in-feedzy](http://docs.themeisle.com/article/746-how-to-use-wordai-to-rephrase-rss-content-in-feedzy)
|
242 |
|
|
|
|
|
|
|
243 |
== Screenshots ==
|
244 |
|
245 |
1. Simple example
|
@@ -249,6 +253,13 @@ You have to check first if your feed is valid. Please test it here: https://vali
|
|
249 |
|
250 |
|
251 |
## Changelog ##
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
252 |
### 3.2.6 - 2017-11-16 ###
|
253 |
|
254 |
* Adds compatibility with WordPress 4.9
|
139 |
## Frequently Asked Questions ##
|
140 |
|
141 |
|
142 |
+
|
143 |
### Is it responsive friendly? ###
|
144 |
|
145 |
Yes it is.
|
241 |
= How to use WordAI to Rephrase RSS content in Feedzy =
|
242 |
[http://docs.themeisle.com/article/746-how-to-use-wordai-to-rephrase-rss-content-in-feedzy](http://docs.themeisle.com/article/746-how-to-use-wordai-to-rephrase-rss-content-in-feedzy)
|
243 |
|
244 |
+
= Install and use the premium version of Feedzy RSS Feeds =
|
245 |
+
[http://docs.themeisle.com/article/783-install-and-use-the-premium-version-of-feedzy-rss-feeds](http://docs.themeisle.com/article/783-install-and-use-the-premium-version-of-feedzy-rss-feeds)
|
246 |
+
|
247 |
== Screenshots ==
|
248 |
|
249 |
1. Simple example
|
253 |
|
254 |
|
255 |
## Changelog ##
|
256 |
+
### 3.2.7 - 2018-01-05 ###
|
257 |
+
|
258 |
+
* Fix compatibility with SiteOrigin Page Builder.
|
259 |
+
* Adds full content import from feed.
|
260 |
+
* Fix issue with img scraped from articles.
|
261 |
+
|
262 |
+
|
263 |
### 3.2.6 - 2017-11-16 ###
|
264 |
|
265 |
* Adds compatibility with WordPress 4.9
|
readme.txt
CHANGED
@@ -139,6 +139,8 @@ Become a translator and send me your translation! [Contact-me](http://themeisle.
|
|
139 |
== Frequently Asked Questions ==
|
140 |
|
141 |
|
|
|
|
|
142 |
= Is it responsive friendly? =
|
143 |
|
144 |
Yes it is.
|
@@ -240,6 +242,102 @@ You have to check first if your feed is valid. Please test it here: https://vali
|
|
240 |
= How to use WordAI to Rephrase RSS content in Feedzy =
|
241 |
[http://docs.themeisle.com/article/746-how-to-use-wordai-to-rephrase-rss-content-in-feedzy](http://docs.themeisle.com/article/746-how-to-use-wordai-to-rephrase-rss-content-in-feedzy)
|
242 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
243 |
== Screenshots ==
|
244 |
|
245 |
1. Simple example
|
@@ -249,6 +347,13 @@ You have to check first if your feed is valid. Please test it here: https://vali
|
|
249 |
|
250 |
|
251 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
252 |
= 3.2.6 - 2017-11-16 =
|
253 |
|
254 |
* Adds compatibility with WordPress 4.9
|
139 |
== Frequently Asked Questions ==
|
140 |
|
141 |
|
142 |
+
|
143 |
+
|
144 |
= Is it responsive friendly? =
|
145 |
|
146 |
Yes it is.
|
242 |
= How to use WordAI to Rephrase RSS content in Feedzy =
|
243 |
[http://docs.themeisle.com/article/746-how-to-use-wordai-to-rephrase-rss-content-in-feedzy](http://docs.themeisle.com/article/746-how-to-use-wordai-to-rephrase-rss-content-in-feedzy)
|
244 |
|
245 |
+
= Install and use the premium version of Feedzy RSS Feeds =
|
246 |
+
[http://docs.themeisle.com/article/783-install-and-use-the-premium-version-of-feedzy-rss-feeds](http://docs.themeisle.com/article/783-install-and-use-the-premium-version-of-feedzy-rss-feeds)
|
247 |
+
|
248 |
+
= Feedzy RSS Feeds Documentation =
|
249 |
+
[https://docs.themeisle.com/article/658-feedzy-rss-feeds-documentation](https://docs.themeisle.com/article/658-feedzy-rss-feeds-documentation)
|
250 |
+
|
251 |
+
= What actions and filters are available in Feedzy =
|
252 |
+
[https://docs.themeisle.com/article/540-what-actions-and-filters-are-available-in-feedzy](https://docs.themeisle.com/article/540-what-actions-and-filters-are-available-in-feedzy)
|
253 |
+
|
254 |
+
= How to change thumbs size and aspect ratio Feedzy =
|
255 |
+
[https://docs.themeisle.com/article/551-how-to-change-thumbs-size-and-aspect-ratio-feedzy](https://docs.themeisle.com/article/551-how-to-change-thumbs-size-and-aspect-ratio-feedzy)
|
256 |
+
|
257 |
+
= How to display RSS feed time and date in local time =
|
258 |
+
[https://docs.themeisle.com/article/567-how-to-display-rss-feed-time-and-date-in-local-time](https://docs.themeisle.com/article/567-how-to-display-rss-feed-time-and-date-in-local-time)
|
259 |
+
|
260 |
+
= How to add a read more link to Feedzy =
|
261 |
+
[https://docs.themeisle.com/article/544-how-to-add-a-read-more-link-to-feedzy](https://docs.themeisle.com/article/544-how-to-add-a-read-more-link-to-feedzy)
|
262 |
+
|
263 |
+
= How to use feedzy categories =
|
264 |
+
[https://docs.themeisle.com/article/640-how-to-use-feedzy-categories](https://docs.themeisle.com/article/640-how-to-use-feedzy-categories)
|
265 |
+
|
266 |
+
= How to use your own inline css =
|
267 |
+
[https://docs.themeisle.com/article/546-how-to-use-your-own-inline-css](https://docs.themeisle.com/article/546-how-to-use-your-own-inline-css)
|
268 |
+
|
269 |
+
= How to change cache lifetime for a specific feed =
|
270 |
+
[https://docs.themeisle.com/article/547-how-to-change-cache-lifetime-for-a-specific-feed](https://docs.themeisle.com/article/547-how-to-change-cache-lifetime-for-a-specific-feed)
|
271 |
+
|
272 |
+
= How to remove featured image from blog feed =
|
273 |
+
[https://docs.themeisle.com/article/554-how-to-remove-featured-image-from-blog-feed](https://docs.themeisle.com/article/554-how-to-remove-featured-image-from-blog-feed)
|
274 |
+
|
275 |
+
= How to handle publication date and author content =
|
276 |
+
[https://docs.themeisle.com/article/549-how-to-handle-publication-date-and-author-content](https://docs.themeisle.com/article/549-how-to-handle-publication-date-and-author-content)
|
277 |
+
|
278 |
+
= How to keep html in feed items content =
|
279 |
+
[https://docs.themeisle.com/article/542-how-to-keep-html-in-feed-items-content](https://docs.themeisle.com/article/542-how-to-keep-html-in-feed-items-content)
|
280 |
+
|
281 |
+
= How to fix images that are not showing in the feed =
|
282 |
+
[https://docs.themeisle.com/article/666-how-to-fix-images-that-are-not-showing-in-the-feed](https://docs.themeisle.com/article/666-how-to-fix-images-that-are-not-showing-in-the-feed)
|
283 |
+
|
284 |
+
= How to display items in a random order =
|
285 |
+
[https://docs.themeisle.com/article/550-how-to-display-items-in-a-random-order](https://docs.themeisle.com/article/550-how-to-display-items-in-a-random-order)
|
286 |
+
|
287 |
+
= How to remove links =
|
288 |
+
[https://docs.themeisle.com/article/541-how-to-remove-links](https://docs.themeisle.com/article/541-how-to-remove-links)
|
289 |
+
|
290 |
+
= How to move Feedzy templates to your theme =
|
291 |
+
[https://docs.themeisle.com/article/573-how-to-move-feedzy-templates-to-your-theme](https://docs.themeisle.com/article/573-how-to-move-feedzy-templates-to-your-theme)
|
292 |
+
|
293 |
+
= How to remove time from publication date =
|
294 |
+
[https://docs.themeisle.com/article/553-how-to-remove-time-from-publication-date](https://docs.themeisle.com/article/553-how-to-remove-time-from-publication-date)
|
295 |
+
|
296 |
+
= How to remove plugin css =
|
297 |
+
[https://docs.themeisle.com/article/545-how-to-remove-plugin-css](https://docs.themeisle.com/article/545-how-to-remove-plugin-css)
|
298 |
+
|
299 |
+
= How to remove the end hellip =
|
300 |
+
[https://docs.themeisle.com/article/543-how-to-remove-the-end-hellip](https://docs.themeisle.com/article/543-how-to-remove-the-end-hellip)
|
301 |
+
|
302 |
+
= How to decode item title =
|
303 |
+
[https://docs.themeisle.com/article/548-how-to-decode-item-title](https://docs.themeisle.com/article/548-how-to-decode-item-title)
|
304 |
+
|
305 |
+
= How to sort feed items by title =
|
306 |
+
[https://docs.themeisle.com/article/633-how-to-sort-feed-items-by-title](https://docs.themeisle.com/article/633-how-to-sort-feed-items-by-title)
|
307 |
+
|
308 |
+
= How to import posts from feeds in Feedzy =
|
309 |
+
[https://docs.themeisle.com/article/742-how-to-import-posts-from-feeds-in-feedzy](https://docs.themeisle.com/article/742-how-to-import-posts-from-feeds-in-feedzy)
|
310 |
+
|
311 |
+
= How to change author url =
|
312 |
+
[https://docs.themeisle.com/article/636-how-to-change-author-url](https://docs.themeisle.com/article/636-how-to-change-author-url)
|
313 |
+
|
314 |
+
= How to eliminate duplicate feed items. =
|
315 |
+
[https://docs.themeisle.com/article/638-how-to-eliminate-duplicate-feed-items](https://docs.themeisle.com/article/638-how-to-eliminate-duplicate-feed-items)
|
316 |
+
|
317 |
+
= How to check whether the RSS feed is valid or not in Feedzy =
|
318 |
+
[https://docs.themeisle.com/article/716-how-to-check-whether-the-rss-feed-is-valid-or-not-in-feedzy](https://docs.themeisle.com/article/716-how-to-check-whether-the-rss-feed-is-valid-or-not-in-feedzy)
|
319 |
+
|
320 |
+
= How to change the blacklist image name =
|
321 |
+
[https://docs.themeisle.com/article/552-how-to-change-the-blacklist-image-name](https://docs.themeisle.com/article/552-how-to-change-the-blacklist-image-name)
|
322 |
+
|
323 |
+
= How to use proxy settings in Feedzy =
|
324 |
+
[https://docs.themeisle.com/article/714-how-to-use-proxy-settings-in-feedzy](https://docs.themeisle.com/article/714-how-to-use-proxy-settings-in-feedzy)
|
325 |
+
|
326 |
+
= Where can I find the import posts options in Feedzy =
|
327 |
+
[https://docs.themeisle.com/article/743-where-can-i-find-the-import-posts-options-in-feedzy](https://docs.themeisle.com/article/743-where-can-i-find-the-import-posts-options-in-feedzy)
|
328 |
+
|
329 |
+
= How to change user agent in Feedzy =
|
330 |
+
[https://docs.themeisle.com/article/713-how-to-change-user-agent-in-feedzy](https://docs.themeisle.com/article/713-how-to-change-user-agent-in-feedzy)
|
331 |
+
|
332 |
+
= How to use WordAI to Rephrase RSS content in Feedzy =
|
333 |
+
[https://docs.themeisle.com/article/746-how-to-use-wordai-to-rephrase-rss-content-in-feedzy](https://docs.themeisle.com/article/746-how-to-use-wordai-to-rephrase-rss-content-in-feedzy)
|
334 |
+
|
335 |
+
= Install and use the premium version of Feedzy RSS Feeds =
|
336 |
+
[https://docs.themeisle.com/article/783-install-and-use-the-premium-version-of-feedzy-rss-feeds](https://docs.themeisle.com/article/783-install-and-use-the-premium-version-of-feedzy-rss-feeds)
|
337 |
+
|
338 |
+
= How to sort feed items by date =
|
339 |
+
[https://docs.themeisle.com/article/817-how-to-sort-feed-items-by-date](https://docs.themeisle.com/article/817-how-to-sort-feed-items-by-date)
|
340 |
+
|
341 |
== Screenshots ==
|
342 |
|
343 |
1. Simple example
|
347 |
|
348 |
|
349 |
== Changelog ==
|
350 |
+
= 3.2.7 - 2018-01-05 =
|
351 |
+
|
352 |
+
* Fix compatibility with SiteOrigin Page Builder.
|
353 |
+
* Adds full content import from feed.
|
354 |
+
* Fix issue with img scraped from articles.
|
355 |
+
|
356 |
+
|
357 |
= 3.2.6 - 2017-11-16 =
|
358 |
|
359 |
* Adds compatibility with WordPress 4.9
|
themeisle-hash.json
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
{"feedzy-rss-feed.php":"1c7cbe7208bf1abab30466c491afe9ae","index.php":"71c0755260138a4b7b2182c3c61179f6","uninstall.php":"0ef18b49fd2c8fa27b1c1ee8fe679428"}
|
vendor/autoload.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once __DIR__ . '/composer' . '/autoload_real.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once __DIR__ . '/composer' . '/autoload_real.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInitfe5ae92a3fab081fcfe3c82ee105d10e::getLoader();
|
vendor/autoload_52.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInit8af7adeba1b95861ad18dfa88d59ccdf::getLoader();
|
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-endpoints.php
ADDED
@@ -0,0 +1,312 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The class that exposes endpoints.
|
4 |
+
*
|
5 |
+
* @package ThemeIsleSDK
|
6 |
+
* @subpackage Endpoints
|
7 |
+
* @copyright Copyright (c) 2017, Marius Cristea
|
8 |
+
* @license http://opensource.org/licenses/gpl-3.0.php GNU Public License
|
9 |
+
* @since 1.0.0
|
10 |
+
*/
|
11 |
+
// Exit if accessed directly.
|
12 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
13 |
+
exit;
|
14 |
+
}
|
15 |
+
if ( ! class_exists( 'ThemeIsle_SDK_Endpoints' ) ) :
|
16 |
+
/**
|
17 |
+
* Expose endpoints for ThemeIsle SDK.
|
18 |
+
*/
|
19 |
+
final class ThemeIsle_SDK_Endpoints {
|
20 |
+
|
21 |
+
const SDK_ENDPOINT = 'themeisle-sdk';
|
22 |
+
const SDK_ENDPOINT_VERSION = 1;
|
23 |
+
|
24 |
+
const HASH_FILE = 'themeisle-hash.json';
|
25 |
+
|
26 |
+
// if true, the endpoint will expect a product slug and will return the value only for that.
|
27 |
+
const PRODUCT_SPECIFIC = false;
|
28 |
+
|
29 |
+
/**
|
30 |
+
* @var ThemeIsle_SDK_Product $products Array of Themeisle Product.
|
31 |
+
*/
|
32 |
+
static protected $products = array();
|
33 |
+
|
34 |
+
/**
|
35 |
+
* ThemeIsle_SDK_Endpoints constructor.
|
36 |
+
*
|
37 |
+
* @param ThemeIsle_SDK_Product $product_object Product Object.
|
38 |
+
*/
|
39 |
+
public function __construct( $product_object ) {
|
40 |
+
if ( $product_object instanceof ThemeIsle_SDK_Product ) {
|
41 |
+
self::$products[] = $product_object;
|
42 |
+
}
|
43 |
+
$this->setup_endpoints();
|
44 |
+
}
|
45 |
+
|
46 |
+
/**
|
47 |
+
* Setup endpoints.
|
48 |
+
*/
|
49 |
+
private function setup_endpoints() {
|
50 |
+
global $wp_version;
|
51 |
+
if ( version_compare( $wp_version, '4.4', '<' ) ) {
|
52 |
+
// no REST support.
|
53 |
+
return;
|
54 |
+
}
|
55 |
+
|
56 |
+
$this->setup_rest();
|
57 |
+
}
|
58 |
+
|
59 |
+
/**
|
60 |
+
* Setup REST endpoints.
|
61 |
+
*/
|
62 |
+
private function setup_rest() {
|
63 |
+
add_action( 'rest_api_init', array( $this, 'rest_register' ) );
|
64 |
+
}
|
65 |
+
|
66 |
+
/**
|
67 |
+
* Registers the endpoints
|
68 |
+
*/
|
69 |
+
function rest_register() {
|
70 |
+
register_rest_route(
|
71 |
+
self::SDK_ENDPOINT . '/v' . self::SDK_ENDPOINT_VERSION,
|
72 |
+
'/checksum/' . ( self::PRODUCT_SPECIFIC ? '(?P<slug>.*)/' : '' ),
|
73 |
+
array(
|
74 |
+
'methods' => 'GET',
|
75 |
+
'callback' => array( $this, 'checksum' ),
|
76 |
+
)
|
77 |
+
);
|
78 |
+
}
|
79 |
+
|
80 |
+
/**
|
81 |
+
* The checksum endpoint.
|
82 |
+
*
|
83 |
+
* @param WP_REST_Request $data the request.
|
84 |
+
*
|
85 |
+
* @return WP_REST_Response Response or the error
|
86 |
+
*/
|
87 |
+
function checksum( WP_REST_Request $data ) {
|
88 |
+
$products = self::$products;
|
89 |
+
if ( self::PRODUCT_SPECIFIC ) {
|
90 |
+
$params = $this->validate_params( $data, array( 'slug' ) );
|
91 |
+
foreach ( self::$products as $product ) {
|
92 |
+
if ( $params['slug'] === $product->get_slug() ) {
|
93 |
+
$products = array( $product );
|
94 |
+
break;
|
95 |
+
}
|
96 |
+
}
|
97 |
+
}
|
98 |
+
$response = array();
|
99 |
+
$custom_css = $this->has_custom_css();
|
100 |
+
if ( is_bool( $custom_css ) ) {
|
101 |
+
$response['custom_css'] = $custom_css;
|
102 |
+
}
|
103 |
+
|
104 |
+
$response['child_theme'] = $this->get_theme_properties();
|
105 |
+
|
106 |
+
foreach ( $products as $product ) {
|
107 |
+
$files = array();
|
108 |
+
switch ( $product->get_type() ) {
|
109 |
+
case 'plugin':
|
110 |
+
$files = array();
|
111 |
+
break;
|
112 |
+
case 'theme':
|
113 |
+
$files = array( 'style.css', 'functions.php' );
|
114 |
+
break;
|
115 |
+
}
|
116 |
+
|
117 |
+
$error = '';
|
118 |
+
|
119 |
+
// if any element in the $files array contains a '/', this would imply recursion is required.
|
120 |
+
$diff = $this->generate_diff( $product, $files, array_reduce( $files, array( $this, 'is_recursion_required' ), false ) );
|
121 |
+
if ( is_wp_error( $diff ) ) {
|
122 |
+
$error = $diff->get_error_message();
|
123 |
+
$diff = array();
|
124 |
+
}
|
125 |
+
|
126 |
+
$response['products'][] = array(
|
127 |
+
'slug' => $product->get_slug(),
|
128 |
+
'version' => $product->get_version(),
|
129 |
+
'diffs' => $diff,
|
130 |
+
'error' => $error,
|
131 |
+
);
|
132 |
+
}
|
133 |
+
|
134 |
+
return new WP_REST_Response( array( 'checksum' => $response ) );
|
135 |
+
}
|
136 |
+
|
137 |
+
/**
|
138 |
+
* Get the current theme properties.
|
139 |
+
*
|
140 |
+
* @return array Properties of the current theme.
|
141 |
+
*/
|
142 |
+
function get_theme_properties() {
|
143 |
+
if ( ! is_child_theme() ) {
|
144 |
+
return false;
|
145 |
+
}
|
146 |
+
|
147 |
+
$properties = array();
|
148 |
+
$theme = wp_get_theme();
|
149 |
+
// @codingStandardsIgnoreStart
|
150 |
+
$properties['name'] = $theme->Name;
|
151 |
+
// @codingStandardsIgnoreEnd
|
152 |
+
|
153 |
+
// get the files in the child theme.
|
154 |
+
require_once( ABSPATH . 'wp-admin/includes/file.php' );
|
155 |
+
WP_Filesystem();
|
156 |
+
global $wp_filesystem;
|
157 |
+
$path = str_replace( ABSPATH, $wp_filesystem->abspath(), get_stylesheet_directory() );
|
158 |
+
$list = $wp_filesystem->dirlist( $path, false, false );
|
159 |
+
if ( $list ) {
|
160 |
+
$list = array_keys( self::flatten_dirlist( $list ) );
|
161 |
+
$properties['files'] = $list;
|
162 |
+
}
|
163 |
+
return $properties;
|
164 |
+
}
|
165 |
+
|
166 |
+
/**
|
167 |
+
* Check if custom css has been added to the theme.
|
168 |
+
*
|
169 |
+
* @return bool Whether custom css has been added to the theme.
|
170 |
+
*/
|
171 |
+
private function has_custom_css() {
|
172 |
+
$query = new WP_Query(
|
173 |
+
array(
|
174 |
+
'post_type' => 'custom_css',
|
175 |
+
'post_status' => 'publish',
|
176 |
+
'numberposts' => 1,
|
177 |
+
'update_post_meta_cache' => false,
|
178 |
+
'update_post_term_cache' => false,
|
179 |
+
)
|
180 |
+
);
|
181 |
+
|
182 |
+
if ( $query->have_posts() ) {
|
183 |
+
$query->the_post();
|
184 |
+
$content = get_the_content();
|
185 |
+
// if the content contains a colon, a CSS rule has been added.
|
186 |
+
return strpos( $content, ':' ) === false ? false : true;
|
187 |
+
}
|
188 |
+
return false;
|
189 |
+
}
|
190 |
+
|
191 |
+
/**
|
192 |
+
* Check if recursion needs to be enabled on the WP_Filesystem by reducing the array of files to a boolean.
|
193 |
+
*
|
194 |
+
* @param string $carry Value of the previous iteration.
|
195 |
+
* @param string $item Value of the current iteration.
|
196 |
+
*
|
197 |
+
* @return bool Whether to recurse or not.
|
198 |
+
*/
|
199 |
+
function is_recursion_required( $carry, $item ) {
|
200 |
+
if ( ! $carry ) {
|
201 |
+
return ( strpos( $item, '/' ) !== false );
|
202 |
+
}
|
203 |
+
return $carry;
|
204 |
+
}
|
205 |
+
|
206 |
+
/**
|
207 |
+
* Generate the diff of the files.
|
208 |
+
*
|
209 |
+
* @param ThemeIsle_SDK_Product $product Themeisle Product.
|
210 |
+
* @param array $files Array of files.
|
211 |
+
* @param bool $recurse Whether to recurse or not.
|
212 |
+
*
|
213 |
+
* @return string
|
214 |
+
*/
|
215 |
+
private function generate_diff( $product, $files, $recurse = false ) {
|
216 |
+
require_once( ABSPATH . 'wp-admin/includes/file.php' );
|
217 |
+
WP_Filesystem();
|
218 |
+
global $wp_filesystem;
|
219 |
+
|
220 |
+
$diff = array();
|
221 |
+
$path = str_replace( ABSPATH, $wp_filesystem->abspath(), plugin_dir_path( $product->get_basefile() ) );
|
222 |
+
$list = $wp_filesystem->dirlist( $path, false, $recurse );
|
223 |
+
// nothing found.
|
224 |
+
if ( ! $list ) {
|
225 |
+
return $diff;
|
226 |
+
}
|
227 |
+
$list = array_keys( self::flatten_dirlist( $list ) );
|
228 |
+
|
229 |
+
// now let's get the valid files that actually exist.
|
230 |
+
if ( empty( $files ) ) {
|
231 |
+
$files = $list;
|
232 |
+
} else {
|
233 |
+
$files = array_intersect( $files, $list );
|
234 |
+
}
|
235 |
+
|
236 |
+
// fetch the calculated hashes.
|
237 |
+
if ( ! $wp_filesystem->is_readable( $path . '/' . self::HASH_FILE ) ) {
|
238 |
+
return new WP_Error( 'themeisle_sdk_hash_not_found', sprintf( '%s not found', self::HASH_FILE ) );
|
239 |
+
}
|
240 |
+
|
241 |
+
$hashes = json_decode( $wp_filesystem->get_contents( $path . '/' . self::HASH_FILE ), true );
|
242 |
+
ksort( $hashes );
|
243 |
+
|
244 |
+
$diff = array();
|
245 |
+
foreach ( $files as $file ) {
|
246 |
+
// file does not exist in the hashes.
|
247 |
+
if ( ! array_key_exists( $file, $hashes ) ) {
|
248 |
+
continue;
|
249 |
+
}
|
250 |
+
$new = md5( $wp_filesystem->get_contents( $path . $file ) );
|
251 |
+
$old = $hashes[ $file ];
|
252 |
+
|
253 |
+
// same hash, bail.
|
254 |
+
if ( $new === $old ) {
|
255 |
+
continue;
|
256 |
+
}
|
257 |
+
$diff[] = $file;
|
258 |
+
}
|
259 |
+
return $diff;
|
260 |
+
}
|
261 |
+
|
262 |
+
/**
|
263 |
+
* Flatten the results of WP_Filesystem::dirlist() for iterating over.
|
264 |
+
*
|
265 |
+
* @access private
|
266 |
+
*
|
267 |
+
* @param array $nested_files Array of files as returned by WP_Filesystem::dirlist().
|
268 |
+
* @param string $path Relative path to prepend to child nodes. Optional.
|
269 |
+
* @return array $files A flattened array of the $nested_files specified.
|
270 |
+
*/
|
271 |
+
private static function flatten_dirlist( $nested_files, $path = '' ) {
|
272 |
+
$files = array();
|
273 |
+
foreach ( $nested_files as $name => $details ) {
|
274 |
+
$files[ $path . $name ] = $details;
|
275 |
+
// Append children recursively
|
276 |
+
if ( ! empty( $details['files'] ) ) {
|
277 |
+
$children = self::flatten_dirlist( $details['files'], $path . $name . '/' );
|
278 |
+
// Merge keeping possible numeric keys, which array_merge() will reindex from 0..n
|
279 |
+
$files = $files + $children;
|
280 |
+
}
|
281 |
+
}
|
282 |
+
return $files;
|
283 |
+
}
|
284 |
+
|
285 |
+
/**
|
286 |
+
* Validates the parameters to the API
|
287 |
+
*
|
288 |
+
* @param WP_REST_Request $data the request.
|
289 |
+
* @param array $params the parameters to validate.
|
290 |
+
*
|
291 |
+
* @return array of parameter name=>value
|
292 |
+
*/
|
293 |
+
private function validate_params( WP_REST_Request $data, $params ) {
|
294 |
+
$collect = array();
|
295 |
+
foreach ( $params as $param ) {
|
296 |
+
$value = sanitize_text_field( $data[ $param ] );
|
297 |
+
if ( empty( $value ) ) {
|
298 |
+
return new WP_Error(
|
299 |
+
'themeisle_' . $param . '_invalid', sprintf( 'Invalid %', $param ), array(
|
300 |
+
'status' => 403,
|
301 |
+
)
|
302 |
+
);
|
303 |
+
} else {
|
304 |
+
$collect[ $param ] = $value;
|
305 |
+
}
|
306 |
+
}
|
307 |
+
|
308 |
+
return $collect;
|
309 |
+
}
|
310 |
+
|
311 |
+
}
|
312 |
+
endif;
|
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-feedback-deactivate.php
CHANGED
@@ -22,21 +22,15 @@ if ( ! class_exists( 'ThemeIsle_SDK_Feedback_Deactivate' ) ) :
|
|
22 |
* @var array $options_plugin The main options list for plugins.
|
23 |
*/
|
24 |
private $options_plugin = array(
|
25 |
-
'I
|
26 |
-
'id' => 1,
|
27 |
-
),
|
28 |
-
'The plugin broke my site' => array(
|
29 |
-
'id' => 2,
|
30 |
-
),
|
31 |
-
'I found a better plugin' => array(
|
32 |
'id' => 3,
|
33 |
'type' => 'text',
|
34 |
'placeholder' => 'What\'s the plugin\'s name?',
|
35 |
),
|
36 |
-
'
|
37 |
'id' => 4,
|
38 |
),
|
39 |
-
'I no longer need the plugin'
|
40 |
'id' => 5,
|
41 |
'type' => 'textarea',
|
42 |
'placeholder' => 'If you could improve one thing about our product, what would it be?',
|
@@ -80,12 +74,12 @@ if ( ! class_exists( 'ThemeIsle_SDK_Feedback_Deactivate' ) ) :
|
|
80 |
/**
|
81 |
* @var string $heading_plugin The heading of the modal
|
82 |
*/
|
83 |
-
private $heading_plugin = '
|
84 |
|
85 |
/**
|
86 |
* @var string $heading_theme The heading of the modal
|
87 |
*/
|
88 |
-
private $heading_theme = 'Looking to change {theme}
|
89 |
|
90 |
/**
|
91 |
* @var string $button_submit_before The text of the deactivate button before an option is chosen
|
@@ -100,7 +94,7 @@ if ( ! class_exists( 'ThemeIsle_SDK_Feedback_Deactivate' ) ) :
|
|
100 |
/**
|
101 |
* @var string $button_cancel The text of the cancel button
|
102 |
*/
|
103 |
-
private $button_cancel = '
|
104 |
|
105 |
/**
|
106 |
* @var int how many seconds before the deactivation window is triggered for themes
|
@@ -170,46 +164,110 @@ if ( ! class_exists( 'ThemeIsle_SDK_Feedback_Deactivate' ) ) :
|
|
170 |
}
|
171 |
|
172 |
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container #TB_title {
|
173 |
-
|
174 |
-
|
175 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
176 |
}
|
177 |
|
178 |
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container div.actions {
|
179 |
-
|
180 |
-
|
181 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
182 |
}
|
183 |
|
184 |
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container input.button.button-primary {
|
185 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
186 |
}
|
187 |
|
188 |
-
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container input.button {
|
189 |
-
|
190 |
}
|
191 |
|
192 |
-
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container
|
193 |
-
|
194 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
195 |
}
|
196 |
|
197 |
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container div.revive_network-container {
|
198 |
background-color: #ffffff;
|
199 |
}
|
200 |
|
|
|
|
|
|
|
|
|
201 |
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container ul.ti-list li {
|
202 |
-
|
|
|
|
|
203 |
}
|
204 |
|
205 |
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container ul.ti-list li label {
|
206 |
margin-left: 10px;
|
207 |
-
line-height:
|
208 |
-
font-size:
|
|
|
|
|
|
|
|
|
209 |
}
|
210 |
|
211 |
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container #TB_ajaxContent {
|
212 |
-
|
|
|
|
|
|
|
213 |
}
|
214 |
|
215 |
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container li div textarea {
|
@@ -222,24 +280,31 @@ if ( ! class_exists( 'ThemeIsle_SDK_Feedback_Deactivate' ) ) :
|
|
222 |
}
|
223 |
|
224 |
.<?php echo $key; ?>-container #TB_title #TB_ajaxWindowTitle {
|
|
|
225 |
display: block;
|
|
|
|
|
|
|
|
|
|
|
|
|
226 |
}
|
227 |
|
228 |
-
|
229 |
-
|
230 |
-
width: 100%;
|
231 |
display: block;
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
text-
|
236 |
}
|
237 |
|
238 |
-
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container
|
239 |
-
|
240 |
-
height: 33px;
|
241 |
width: 100%;
|
242 |
-
|
|
|
|
|
|
|
243 |
}
|
244 |
|
245 |
.theme-install-php .<?php echo $key; ?>-container #TB_closeWindowButton .tb-close-icon:before {
|
@@ -247,24 +312,40 @@ if ( ! class_exists( 'ThemeIsle_SDK_Feedback_Deactivate' ) ) :
|
|
247 |
}
|
248 |
|
249 |
.<?php echo $key; ?>-container #TB_closeWindowButton .tb-close-icon {
|
250 |
-
|
251 |
color: #eee;
|
252 |
}
|
253 |
|
254 |
.<?php echo $key; ?>-container #TB_closeWindowButton {
|
255 |
left: auto;
|
256 |
-
right: -
|
|
|
257 |
color: #eee;
|
258 |
}
|
259 |
|
260 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
261 |
|
|
|
262 |
margin: auto !important;
|
263 |
-
height:
|
264 |
top: 0 !important;
|
265 |
left: 0 !important;
|
266 |
bottom: 0 !important;
|
267 |
right: 0 !important;
|
|
|
268 |
}
|
269 |
</style>
|
270 |
<?php
|
@@ -303,25 +384,29 @@ if ( ! class_exists( 'ThemeIsle_SDK_Feedback_Deactivate' ) ) :
|
|
303 |
$('a.ti-auto-anchor').trigger('click');
|
304 |
}, <?php echo self::AUTO_TRIGGER_DEACTIVATE_WINDOW_SECONDS * 1000; ?> );
|
305 |
}
|
306 |
-
$(
|
307 |
$.ajax({
|
308 |
url: ajaxurl,
|
309 |
method: 'post',
|
310 |
data: {
|
311 |
-
'action'
|
312 |
-
'nonce'
|
313 |
-
'type'
|
314 |
-
'key'
|
315 |
},
|
316 |
});
|
317 |
});
|
318 |
var href = $(target_element).attr('href');
|
319 |
-
$('#<?php echo $key; ?>ti-deactivate-no').on('click', function (e) {
|
320 |
e.preventDefault();
|
321 |
e.stopPropagation();
|
322 |
|
323 |
$('body').unbind('thickbox:removed');
|
324 |
tb_remove();
|
|
|
|
|
|
|
|
|
325 |
});
|
326 |
|
327 |
$('#<?php echo $key; ?> ul.ti-list label, #<?php echo $key; ?> ul.ti-list input[name="ti-deactivate-option"]').on('click', function (e) {
|
@@ -349,12 +434,12 @@ if ( ! class_exists( 'ThemeIsle_SDK_Feedback_Deactivate' ) ) :
|
|
349 |
url: ajaxurl,
|
350 |
method: 'post',
|
351 |
data: {
|
352 |
-
'action'
|
353 |
-
'nonce'
|
354 |
-
'id'
|
355 |
-
'msg'
|
356 |
-
'type'
|
357 |
-
'key'
|
358 |
},
|
359 |
});
|
360 |
var redirect = $(this).attr('data-ti-action');
|
@@ -366,7 +451,7 @@ if ( ! class_exists( 'ThemeIsle_SDK_Feedback_Deactivate' ) ) :
|
|
366 |
}
|
367 |
});
|
368 |
|
369 |
-
$(target_element).attr('name', '<?php echo
|
370 |
var thicbox_timer;
|
371 |
$(target_element).on('click', function () {
|
372 |
tiBindThickbox();
|
@@ -409,10 +494,10 @@ if ( ! class_exists( 'ThemeIsle_SDK_Feedback_Deactivate' ) ) :
|
|
409 |
|
410 |
$list = '';
|
411 |
foreach ( $options as $title => $attributes ) {
|
412 |
-
$id
|
413 |
$list .= '<li ti-option-id="' . $id . '"><input type="radio" name="ti-deactivate-option" id="' . $key . $id . '"><label for="' . $key . $id . '">' . str_replace( '{theme}', $this->product->get_name(), $title ) . '</label>';
|
414 |
if ( array_key_exists( 'type', $attributes ) ) {
|
415 |
-
$list
|
416 |
$placeholder = array_key_exists( 'placeholder', $attributes ) ? $attributes['placeholder'] : '';
|
417 |
switch ( $attributes['type'] ) {
|
418 |
case 'text':
|
@@ -431,8 +516,9 @@ if ( ! class_exists( 'ThemeIsle_SDK_Feedback_Deactivate' ) ) :
|
|
431 |
. '<ul class="ti-list">' . $list . '</ul>'
|
432 |
. '<div class="actions">'
|
433 |
. get_submit_button(
|
434 |
-
$
|
435 |
'data-after-text' => $button_submit,
|
|
|
436 |
)
|
437 |
)
|
438 |
. get_submit_button( $button_cancel, 'primary', $this->product->get_key() . 'ti-deactivate-no', false )
|
22 |
* @var array $options_plugin The main options list for plugins.
|
23 |
*/
|
24 |
private $options_plugin = array(
|
25 |
+
'I found a better plugin' => array(
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
'id' => 3,
|
27 |
'type' => 'text',
|
28 |
'placeholder' => 'What\'s the plugin\'s name?',
|
29 |
),
|
30 |
+
'I could not get the plugin to work' => array(
|
31 |
'id' => 4,
|
32 |
),
|
33 |
+
'I no longer need the plugin' => array(
|
34 |
'id' => 5,
|
35 |
'type' => 'textarea',
|
36 |
'placeholder' => 'If you could improve one thing about our product, what would it be?',
|
74 |
/**
|
75 |
* @var string $heading_plugin The heading of the modal
|
76 |
*/
|
77 |
+
private $heading_plugin = 'Quick Feedback <span>Because we care about our clients, please leave us a feedback.</span>';
|
78 |
|
79 |
/**
|
80 |
* @var string $heading_theme The heading of the modal
|
81 |
*/
|
82 |
+
private $heading_theme = 'Looking to change {theme} <span> What does not work for you?</span>';
|
83 |
|
84 |
/**
|
85 |
* @var string $button_submit_before The text of the deactivate button before an option is chosen
|
94 |
/**
|
95 |
* @var string $button_cancel The text of the cancel button
|
96 |
*/
|
97 |
+
private $button_cancel = 'Skip & Deactivate';
|
98 |
|
99 |
/**
|
100 |
* @var int how many seconds before the deactivation window is triggered for themes
|
164 |
}
|
165 |
|
166 |
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container #TB_title {
|
167 |
+
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDNkVDM0M4RkYxMzMxMUU3OEMyMkQ0NTIxRTVEQ0ZBRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDNkVDM0M5MEYxMzMxMUU3OEMyMkQ0NTIxRTVEQ0ZBRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkM2RUMzQzhERjEzMzExRTc4QzIyRDQ1MjFFNURDRkFGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkM2RUMzQzhFRjEzMzExRTc4QzIyRDQ1MjFFNURDRkFGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+KBNOswAAFtFJREFUeNrkWwmUXVWV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') 40px 30px no-repeat;
|
168 |
+
border: none;
|
169 |
+
box-sizing: border-box;
|
170 |
+
color: #373e40;
|
171 |
+
font-size: 24px;
|
172 |
+
font-weight: 700;
|
173 |
+
height: 90px;
|
174 |
+
padding: 40px 40px 0 120px;
|
175 |
+
text-transform: uppercase;
|
176 |
+
width: 100%;
|
177 |
}
|
178 |
|
179 |
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container div.actions {
|
180 |
+
box-sizing: border-box;
|
181 |
+
padding: 30px 40px;
|
182 |
+
background-color: #eaeaea;
|
183 |
+
}
|
184 |
+
|
185 |
+
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container input.button {
|
186 |
+
background: #ec5d60;
|
187 |
+
border: none;
|
188 |
+
box-shadow: none;
|
189 |
+
color: #ffffff;
|
190 |
+
font-size: 15px;
|
191 |
+
font-weight: 700;
|
192 |
+
height: auto;
|
193 |
+
line-height: 20px;
|
194 |
+
padding: 10px 15px;
|
195 |
+
text-transform: uppercase;
|
196 |
+
-webkit-transition: 0.3s ease;
|
197 |
+
-moz-transition: 0.3s ease;
|
198 |
+
-ms-transition: 0.3s ease;
|
199 |
+
-o-transition: 0.3s ease;
|
200 |
+
transition: 0.3s ease;
|
201 |
}
|
202 |
|
203 |
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container input.button.button-primary {
|
204 |
+
background: transparent;
|
205 |
+
box-shadow: none;
|
206 |
+
color: #8d9192;
|
207 |
+
font-weight: 400;
|
208 |
+
float: right;
|
209 |
+
line-height: 40px;
|
210 |
+
padding: 0;
|
211 |
+
text-decoration: underline;
|
212 |
+
text-shadow: none;
|
213 |
+
text-transform: none;
|
214 |
}
|
215 |
|
216 |
+
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container input.button:hover {
|
217 |
+
background: #e83f42;
|
218 |
}
|
219 |
|
220 |
+
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container input.button.button-primary:hover {
|
221 |
+
background: transparent;
|
222 |
+
}
|
223 |
+
|
224 |
+
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container input.button:focus {
|
225 |
+
box-shadow: none;
|
226 |
+
outline: none;
|
227 |
+
}
|
228 |
+
|
229 |
+
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container input.button:active {
|
230 |
+
box-shadow: none;
|
231 |
+
transform: translateY(0);
|
232 |
+
}
|
233 |
+
|
234 |
+
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container input.button:disabled {
|
235 |
+
cursor: not-allowed;
|
236 |
+
}
|
237 |
+
|
238 |
+
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container input.button.button-primary:hover {
|
239 |
+
text-decoration: none;
|
240 |
}
|
241 |
|
242 |
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container div.revive_network-container {
|
243 |
background-color: #ffffff;
|
244 |
}
|
245 |
|
246 |
+
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container ul.ti-list {
|
247 |
+
margin: 0;
|
248 |
+
}
|
249 |
+
|
250 |
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container ul.ti-list li {
|
251 |
+
color: #373e40;
|
252 |
+
font-size: 13px;
|
253 |
+
margin-bottom: 5px;
|
254 |
}
|
255 |
|
256 |
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container ul.ti-list li label {
|
257 |
margin-left: 10px;
|
258 |
+
line-height: 28px;
|
259 |
+
font-size: 15px;
|
260 |
+
}
|
261 |
+
|
262 |
+
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container ul.ti-list input[type=radio] {
|
263 |
+
margin-top: 1px;
|
264 |
}
|
265 |
|
266 |
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container #TB_ajaxContent {
|
267 |
+
box-sizing: border-box;
|
268 |
+
height: auto !important;
|
269 |
+
padding: 20px 40px;
|
270 |
+
width: 100% !important;
|
271 |
}
|
272 |
|
273 |
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container li div textarea {
|
280 |
}
|
281 |
|
282 |
.<?php echo $key; ?>-container #TB_title #TB_ajaxWindowTitle {
|
283 |
+
box-sizing: border-box;
|
284 |
display: block;
|
285 |
+
float: none;
|
286 |
+
font-weight: 700;
|
287 |
+
line-height: 1;
|
288 |
+
padding: 0;
|
289 |
+
text-align: left;
|
290 |
+
width: 100%;
|
291 |
}
|
292 |
|
293 |
+
.<?php echo $key; ?>-container #TB_title #TB_ajaxWindowTitle span {
|
294 |
+
color: #8d9192;
|
|
|
295 |
display: block;
|
296 |
+
font-size: 15px;
|
297 |
+
font-weight: 400;
|
298 |
+
margin-top: 5px;
|
299 |
+
text-transform: none;
|
300 |
}
|
301 |
|
302 |
+
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container .actions {
|
|
|
|
|
303 |
width: 100%;
|
304 |
+
display: block;
|
305 |
+
position: absolute;
|
306 |
+
left: 0;
|
307 |
+
bottom: 0;
|
308 |
}
|
309 |
|
310 |
.theme-install-php .<?php echo $key; ?>-container #TB_closeWindowButton .tb-close-icon:before {
|
312 |
}
|
313 |
|
314 |
.<?php echo $key; ?>-container #TB_closeWindowButton .tb-close-icon {
|
|
|
315 |
color: #eee;
|
316 |
}
|
317 |
|
318 |
.<?php echo $key; ?>-container #TB_closeWindowButton {
|
319 |
left: auto;
|
320 |
+
right: -5px;
|
321 |
+
top: -35px;
|
322 |
color: #eee;
|
323 |
}
|
324 |
|
325 |
+
.<?php echo $key; ?>-container #TB_closeWindowButton .tb-close-icon {
|
326 |
+
text-align: right;
|
327 |
+
line-height: 25px;
|
328 |
+
width: 25px;
|
329 |
+
height: 25px;
|
330 |
+
}
|
331 |
+
|
332 |
+
.<?php echo $key; ?>-container #TB_closeWindowButton:focus .tb-close-icon {
|
333 |
+
box-shadow: none;
|
334 |
+
outline: none;
|
335 |
+
}
|
336 |
+
|
337 |
+
.<?php echo $key; ?>-container #TB_closeWindowButton .tb-close-icon:before {
|
338 |
+
font: normal 25px dashicons;
|
339 |
+
}
|
340 |
|
341 |
+
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container {
|
342 |
margin: auto !important;
|
343 |
+
height: 500px !important;
|
344 |
top: 0 !important;
|
345 |
left: 0 !important;
|
346 |
bottom: 0 !important;
|
347 |
right: 0 !important;
|
348 |
+
width: 600px !important;
|
349 |
}
|
350 |
</style>
|
351 |
<?php
|
384 |
$('a.ti-auto-anchor').trigger('click');
|
385 |
}, <?php echo self::AUTO_TRIGGER_DEACTIVATE_WINDOW_SECONDS * 1000; ?> );
|
386 |
}
|
387 |
+
$(document).on('thickbox:removed', function () {
|
388 |
$.ajax({
|
389 |
url: ajaxurl,
|
390 |
method: 'post',
|
391 |
data: {
|
392 |
+
'action': '<?php echo $key . __CLASS__; ?>',
|
393 |
+
'nonce': '<?php echo wp_create_nonce( (string) __CLASS__ ); ?>',
|
394 |
+
'type': '<?php echo $type; ?>',
|
395 |
+
'key': '<?php echo $key; ?>'
|
396 |
},
|
397 |
});
|
398 |
});
|
399 |
var href = $(target_element).attr('href');
|
400 |
+
$('#<?php echo $key; ?>ti-deactivate-no').attr('data-ti-action', href).on('click', function (e) {
|
401 |
e.preventDefault();
|
402 |
e.stopPropagation();
|
403 |
|
404 |
$('body').unbind('thickbox:removed');
|
405 |
tb_remove();
|
406 |
+
var redirect = $(this).attr('data-ti-action');
|
407 |
+
if (redirect != '') {
|
408 |
+
location.href = redirect;
|
409 |
+
}
|
410 |
});
|
411 |
|
412 |
$('#<?php echo $key; ?> ul.ti-list label, #<?php echo $key; ?> ul.ti-list input[name="ti-deactivate-option"]').on('click', function (e) {
|
434 |
url: ajaxurl,
|
435 |
method: 'post',
|
436 |
data: {
|
437 |
+
'action': '<?php echo $key . __CLASS__; ?>',
|
438 |
+
'nonce': '<?php echo wp_create_nonce( (string) __CLASS__ ); ?>',
|
439 |
+
'id': $('#<?php echo $key; ?> input[name="ti-deactivate-option"]:checked').parent().attr('ti-option-id'),
|
440 |
+
'msg': $('#<?php echo $key; ?> input[name="ti-deactivate-option"]:checked').parent().find('textarea').val(),
|
441 |
+
'type': '<?php echo $type; ?>',
|
442 |
+
'key': '<?php echo $key; ?>'
|
443 |
},
|
444 |
});
|
445 |
var redirect = $(this).attr('data-ti-action');
|
451 |
}
|
452 |
});
|
453 |
|
454 |
+
$(target_element).attr('name', '<?php echo wp_kses( $heading, array( 'span' => array() ) ); ?>').attr('href', '<?php echo $src; ?>').addClass('thickbox');
|
455 |
var thicbox_timer;
|
456 |
$(target_element).on('click', function () {
|
457 |
tiBindThickbox();
|
494 |
|
495 |
$list = '';
|
496 |
foreach ( $options as $title => $attributes ) {
|
497 |
+
$id = $attributes['id'];
|
498 |
$list .= '<li ti-option-id="' . $id . '"><input type="radio" name="ti-deactivate-option" id="' . $key . $id . '"><label for="' . $key . $id . '">' . str_replace( '{theme}', $this->product->get_name(), $title ) . '</label>';
|
499 |
if ( array_key_exists( 'type', $attributes ) ) {
|
500 |
+
$list .= '<div>';
|
501 |
$placeholder = array_key_exists( 'placeholder', $attributes ) ? $attributes['placeholder'] : '';
|
502 |
switch ( $attributes['type'] ) {
|
503 |
case 'text':
|
516 |
. '<ul class="ti-list">' . $list . '</ul>'
|
517 |
. '<div class="actions">'
|
518 |
. get_submit_button(
|
519 |
+
$button_submit, 'secondary', $this->product->get_key() . 'ti-deactivate-yes', false, array(
|
520 |
'data-after-text' => $button_submit,
|
521 |
+
'disabled' => true,
|
522 |
)
|
523 |
)
|
524 |
. get_submit_button( $button_cancel, 'primary', $this->product->get_key() . 'ti-deactivate-no', false )
|
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-feedback-review.php
CHANGED
@@ -146,7 +146,7 @@ if ( ! class_exists( 'ThemeIsle_SDK_Feedback_Review' ) ) :
|
|
146 |
'action': '<?php echo $this->product->get_key() . __CLASS__; ?>'
|
147 |
},
|
148 |
success: function () {
|
149 |
-
$('#<?php echo $key; ?>_review').
|
150 |
}
|
151 |
});
|
152 |
});
|
146 |
'action': '<?php echo $this->product->get_key() . __CLASS__; ?>'
|
147 |
},
|
148 |
success: function () {
|
149 |
+
$('#<?php echo $key; ?>_review').html('<p><b>Thanks for your answer.</b></p>');
|
150 |
}
|
151 |
});
|
152 |
});
|
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-feedback-translate.php
CHANGED
@@ -888,7 +888,7 @@ The process is easy, and you can join by following the link below!';
|
|
888 |
'action': '<?php echo $this->product->get_key() . __CLASS__; ?>'
|
889 |
},
|
890 |
success: function () {
|
891 |
-
$('#<?php echo $key; ?>_translate').
|
892 |
}
|
893 |
});
|
894 |
});
|
888 |
'action': '<?php echo $this->product->get_key() . __CLASS__; ?>'
|
889 |
},
|
890 |
success: function () {
|
891 |
+
$('#<?php echo $key; ?>_translate').html('<p><b>Thanks for your answer.</b></p>');
|
892 |
}
|
893 |
});
|
894 |
});
|
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-licenser.php
CHANGED
@@ -73,6 +73,7 @@ if ( ! class_exists( 'ThemeIsle_SDK_Licenser' ) ) :
|
|
73 |
add_action( 'admin_init', array( $this, 'activate_license' ) );
|
74 |
add_action( 'admin_init', array( $this, 'product_valid' ), 99999999 );
|
75 |
add_action( 'admin_notices', array( $this, 'show_notice' ) );
|
|
|
76 |
}
|
77 |
|
78 |
/**
|
@@ -203,19 +204,6 @@ if ( ! class_exists( 'ThemeIsle_SDK_Licenser' ) ) :
|
|
203 |
* @return bool Either hide them or not.
|
204 |
*/
|
205 |
function check_hide( $hide ) {
|
206 |
-
if ( isset( $_GET[ $this->product->get_key() . '_hide_' . $hide ] ) ) {
|
207 |
-
if ( $_GET[ $this->product->get_key() . '_hide_' . $hide ] === 'yes' ) {
|
208 |
-
update_option( $this->product->get_key() . '_hide_' . $hide, 'yes' );
|
209 |
-
|
210 |
-
return false;
|
211 |
-
}
|
212 |
-
} else {
|
213 |
-
$license = get_option( $this->product->get_key() . '_hide_' . $hide, '' );
|
214 |
-
if ( $license === 'yes' ) {
|
215 |
-
return false;
|
216 |
-
}
|
217 |
-
}
|
218 |
-
|
219 |
return true;
|
220 |
}
|
221 |
|
@@ -236,15 +224,14 @@ if ( ! class_exists( 'ThemeIsle_SDK_Licenser' ) ) :
|
|
236 |
Staff for more details.'
|
237 |
);
|
238 |
$no_valid_string = apply_filters(
|
239 |
-
$this->product->get_key() . '_lc_no_valid_string', 'In order to benefit from updates and support for %s
|
240 |
your license code from your <a href="%s" target="_blank">purchase history</a> and validate it <a
|
241 |
-
href="%s">here</a
|
242 |
);
|
243 |
$expiration_string = apply_filters(
|
244 |
$this->product->get_key() . '_lc_expiration_string', 'Your license is about to expire
|
245 |
for %s. You can go to %s and renew it '
|
246 |
);
|
247 |
-
$hide_notice_string = apply_filters( $this->product->get_key() . '_lc_hide_notice_string', 'Hide Notice' );
|
248 |
if ( $status != 'valid' ) {
|
249 |
if ( $this->check_activation() ) {
|
250 |
if ( $this->check_hide( 'activation' ) ) {
|
@@ -257,8 +244,7 @@ if ( ! class_exists( 'ThemeIsle_SDK_Licenser' ) ) :
|
|
257 |
target="_blank">' . $this->product->get_store_name() . '</a>'
|
258 |
);
|
259 |
?>
|
260 |
-
</strong>
|
261 |
-
href="<?php echo add_query_arg( $this->product->get_key() . '_activation', 'yes' ); ?> "><?php echo $hide_notice_string; ?></a>
|
262 |
</p>
|
263 |
</div>
|
264 |
<?php
|
@@ -269,9 +255,7 @@ if ( ! class_exists( 'ThemeIsle_SDK_Licenser' ) ) :
|
|
269 |
<?php if ( $this->check_hide( 'valid' ) ) : ?>
|
270 |
<div class="error">
|
271 |
<p>
|
272 |
-
<strong><?php echo sprintf( $no_valid_string, $this->product->get_name() . ' ' . $this->product->get_type(), $this->product->get_store_url(), admin_url( 'options-general.php' ) . '#' . $this->product->get_key() ); ?> </strong
|
273 |
-
<a
|
274 |
-
href="<?php echo add_query_arg( $this->product->get_key() . '_hide_valid', 'yes' ); ?> "><?php echo $hide_notice_string; ?></a>
|
275 |
</p>
|
276 |
</div>
|
277 |
<?php endif; ?>
|
@@ -290,9 +274,7 @@ if ( ! class_exists( 'ThemeIsle_SDK_Licenser' ) ) :
|
|
290 |
target="_blank">' . $this->product->get_store_name() . '</a>'
|
291 |
);
|
292 |
?>
|
293 |
-
</strong>
|
294 |
-
<a
|
295 |
-
href="<?php echo add_query_arg( $this->product->get_key() . '_hide_expiration', 'yes' ); ?> "><?php echo $hide_notice_string; ?></a>
|
296 |
</p>
|
297 |
</div>
|
298 |
<?php
|
73 |
add_action( 'admin_init', array( $this, 'activate_license' ) );
|
74 |
add_action( 'admin_init', array( $this, 'product_valid' ), 99999999 );
|
75 |
add_action( 'admin_notices', array( $this, 'show_notice' ) );
|
76 |
+
add_filter( $this->product->get_key() . '_license_status', array( $this, 'get_license_status' ) );
|
77 |
}
|
78 |
|
79 |
/**
|
204 |
* @return bool Either hide them or not.
|
205 |
*/
|
206 |
function check_hide( $hide ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
207 |
return true;
|
208 |
}
|
209 |
|
224 |
Staff for more details.'
|
225 |
);
|
226 |
$no_valid_string = apply_filters(
|
227 |
+
$this->product->get_key() . '_lc_no_valid_string', 'In order to benefit from updates and support for %s, please add
|
228 |
your license code from your <a href="%s" target="_blank">purchase history</a> and validate it <a
|
229 |
+
href="%s">here</a>. '
|
230 |
);
|
231 |
$expiration_string = apply_filters(
|
232 |
$this->product->get_key() . '_lc_expiration_string', 'Your license is about to expire
|
233 |
for %s. You can go to %s and renew it '
|
234 |
);
|
|
|
235 |
if ( $status != 'valid' ) {
|
236 |
if ( $this->check_activation() ) {
|
237 |
if ( $this->check_hide( 'activation' ) ) {
|
244 |
target="_blank">' . $this->product->get_store_name() . '</a>'
|
245 |
);
|
246 |
?>
|
247 |
+
</strong>
|
|
|
248 |
</p>
|
249 |
</div>
|
250 |
<?php
|
255 |
<?php if ( $this->check_hide( 'valid' ) ) : ?>
|
256 |
<div class="error">
|
257 |
<p>
|
258 |
+
<strong><?php echo sprintf( $no_valid_string, $this->product->get_name() . ' ' . $this->product->get_type(), $this->product->get_store_url(), admin_url( 'options-general.php' ) . '#' . $this->product->get_key() ); ?> </strong>
|
|
|
|
|
259 |
</p>
|
260 |
</div>
|
261 |
<?php endif; ?>
|
274 |
target="_blank">' . $this->product->get_store_name() . '</a>'
|
275 |
);
|
276 |
?>
|
277 |
+
</strong>
|
|
|
|
|
278 |
</p>
|
279 |
</div>
|
280 |
<?php
|
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-loader.php
CHANGED
@@ -48,7 +48,7 @@ if ( ! class_exists( 'ThemeIsle_SDK_Loader' ) ) :
|
|
48 |
|
49 |
$notifications = array();
|
50 |
// Based on the WordPress Available file header we enable the logger or not.
|
51 |
-
if ( ! $product_object->is_wordpress_available() ) {
|
52 |
$licenser = new ThemeIsle_SDK_Licenser( $product_object );
|
53 |
$licenser->enable();
|
54 |
}
|
@@ -76,6 +76,9 @@ if ( ! class_exists( 'ThemeIsle_SDK_Loader' ) ) :
|
|
76 |
if ( ! $product_object->is_external_author() ) {
|
77 |
new ThemeIsle_SDK_Rollback( $product_object );
|
78 |
}
|
|
|
|
|
|
|
79 |
return self::$instance;
|
80 |
}
|
81 |
|
48 |
|
49 |
$notifications = array();
|
50 |
// Based on the WordPress Available file header we enable the logger or not.
|
51 |
+
if ( ! $product_object->is_wordpress_available() && apply_filters( $product_object->get_key() . '_enable_licenser', true ) === true ) {
|
52 |
$licenser = new ThemeIsle_SDK_Licenser( $product_object );
|
53 |
$licenser->enable();
|
54 |
}
|
76 |
if ( ! $product_object->is_external_author() ) {
|
77 |
new ThemeIsle_SDK_Rollback( $product_object );
|
78 |
}
|
79 |
+
|
80 |
+
new ThemeIsle_SDK_Endpoints( $product_object );
|
81 |
+
|
82 |
return self::$instance;
|
83 |
}
|
84 |
|
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-logger.php
CHANGED
@@ -77,6 +77,13 @@ if ( ! class_exists( 'ThemeIsle_SDK_Logger' ) ) :
|
|
77 |
* Send the statistics to the api endpoint
|
78 |
*/
|
79 |
public function send_log() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
80 |
wp_remote_post(
|
81 |
$this->logging_url, array(
|
82 |
'method' => 'POST',
|
@@ -86,10 +93,12 @@ if ( ! class_exists( 'ThemeIsle_SDK_Logger' ) ) :
|
|
86 |
'X-ThemeIsle-Event' => 'log_site',
|
87 |
),
|
88 |
'body' => array(
|
89 |
-
'site'
|
90 |
-
'slug'
|
91 |
-
'version'
|
92 |
-
'data'
|
|
|
|
|
93 |
),
|
94 |
)
|
95 |
);
|
77 |
* Send the statistics to the api endpoint
|
78 |
*/
|
79 |
public function send_log() {
|
80 |
+
$environment = array();
|
81 |
+
$theme = wp_get_theme();
|
82 |
+
$environment['theme'] = array();
|
83 |
+
$environment['theme']['name'] = $theme->get( 'Name' );
|
84 |
+
$environment['theme']['author'] = $theme->get( 'Author' );
|
85 |
+
$environment['plugins'] = get_option( 'active_plugins' );
|
86 |
+
|
87 |
wp_remote_post(
|
88 |
$this->logging_url, array(
|
89 |
'method' => 'POST',
|
93 |
'X-ThemeIsle-Event' => 'log_site',
|
94 |
),
|
95 |
'body' => array(
|
96 |
+
'site' => get_site_url(),
|
97 |
+
'slug' => $this->product->get_slug(),
|
98 |
+
'version' => $this->product->get_version(),
|
99 |
+
'data' => apply_filters( $this->product->get_key() . '_logger_data', array() ),
|
100 |
+
'environment' => $environment,
|
101 |
+
'license' => apply_filters( $this->product->get_key() . '_license_status', '' ),
|
102 |
),
|
103 |
)
|
104 |
);
|
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-product.php
CHANGED
@@ -60,7 +60,7 @@ if ( ! class_exists( 'ThemeIsle_SDK_Product' ) ) :
|
|
60 |
/**
|
61 |
* @var array $allowed_authors The allowed authors.
|
62 |
*/
|
63 |
-
private $allowed_authors = array( 'proteusthemes.com', 'anarieldesign.com', 'prothemedesign.com' );
|
64 |
/**
|
65 |
* @var bool $requires_license Either user needs to activate it with license.
|
66 |
*/
|
60 |
/**
|
61 |
* @var array $allowed_authors The allowed authors.
|
62 |
*/
|
63 |
+
private $allowed_authors = array( 'proteusthemes.com', 'anarieldesign.com', 'prothemedesign.com', 'cssigniter.com' );
|
64 |
/**
|
65 |
* @var bool $requires_license Either user needs to activate it with license.
|
66 |
*/
|
vendor/codeinwp/themeisle-sdk/load.php
CHANGED
@@ -11,7 +11,7 @@
|
|
11 |
*/
|
12 |
|
13 |
// Current SDK version and path.
|
14 |
-
$themeisle_sdk_version = '1.
|
15 |
$themeisle_sdk_path = dirname( __FILE__ );
|
16 |
|
17 |
global $themeisle_sdk_max_version;
|
11 |
*/
|
12 |
|
13 |
// Current SDK version and path.
|
14 |
+
$themeisle_sdk_version = '2.1.1';
|
15 |
$themeisle_sdk_path = dirname( __FILE__ );
|
16 |
|
17 |
global $themeisle_sdk_max_version;
|
vendor/codeinwp/themeisle-sdk/start.php
CHANGED
@@ -24,6 +24,7 @@ $files_to_load = array(
|
|
24 |
'class-themeisle-sdk-widget.php',
|
25 |
'class-themeisle-sdk-widget-dashboard-blog.php',
|
26 |
'class-themeisle-sdk-widgets-factory.php',
|
|
|
27 |
);
|
28 |
|
29 |
foreach ( $files_to_load as $file ) {
|
24 |
'class-themeisle-sdk-widget.php',
|
25 |
'class-themeisle-sdk-widget-dashboard-blog.php',
|
26 |
'class-themeisle-sdk-widgets-factory.php',
|
27 |
+
'class-themeisle-sdk-endpoints.php',
|
28 |
);
|
29 |
|
30 |
foreach ( $files_to_load as $file ) {
|
vendor/composer/autoload_real.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
-
class
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
@@ -19,9 +19,9 @@ class ComposerAutoloaderInit715431a4486c2274dc1a3d8cb9376500
|
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
-
spl_autoload_register(array('
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
-
spl_autoload_unregister(array('
|
25 |
|
26 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
27 |
foreach ($map as $namespace => $path) {
|
@@ -42,14 +42,14 @@ class ComposerAutoloaderInit715431a4486c2274dc1a3d8cb9376500
|
|
42 |
|
43 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
44 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
45 |
-
|
46 |
}
|
47 |
|
48 |
return $loader;
|
49 |
}
|
50 |
}
|
51 |
|
52 |
-
function
|
53 |
{
|
54 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
55 |
require $file;
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
+
class ComposerAutoloaderInitfe5ae92a3fab081fcfe3c82ee105d10e
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
+
spl_autoload_register(array('ComposerAutoloaderInitfe5ae92a3fab081fcfe3c82ee105d10e', 'loadClassLoader'), true, true);
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
+
spl_autoload_unregister(array('ComposerAutoloaderInitfe5ae92a3fab081fcfe3c82ee105d10e', 'loadClassLoader'));
|
25 |
|
26 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
27 |
foreach ($map as $namespace => $path) {
|
42 |
|
43 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
44 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
45 |
+
composerRequirefe5ae92a3fab081fcfe3c82ee105d10e($fileIdentifier, $file);
|
46 |
}
|
47 |
|
48 |
return $loader;
|
49 |
}
|
50 |
}
|
51 |
|
52 |
+
function composerRequirefe5ae92a3fab081fcfe3c82ee105d10e($fileIdentifier, $file)
|
53 |
{
|
54 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
55 |
require $file;
|
vendor/composer/autoload_real_52.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real_52.php generated by xrstf/composer-php52
|
4 |
|
5 |
-
class
|
6 |
private static $loader;
|
7 |
|
8 |
public static function loadClassLoader($class) {
|
@@ -19,9 +19,9 @@ class ComposerAutoloaderInit7834e6ad306641d049f3a4bade9cbd68 {
|
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
-
spl_autoload_register(array('
|
23 |
self::$loader = $loader = new xrstf_Composer52_ClassLoader();
|
24 |
-
spl_autoload_unregister(array('
|
25 |
|
26 |
$vendorDir = dirname(dirname(__FILE__));
|
27 |
$baseDir = dirname($vendorDir);
|
2 |
|
3 |
// autoload_real_52.php generated by xrstf/composer-php52
|
4 |
|
5 |
+
class ComposerAutoloaderInit8af7adeba1b95861ad18dfa88d59ccdf {
|
6 |
private static $loader;
|
7 |
|
8 |
public static function loadClassLoader($class) {
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
+
spl_autoload_register(array('ComposerAutoloaderInit8af7adeba1b95861ad18dfa88d59ccdf', 'loadClassLoader'), true /*, true */);
|
23 |
self::$loader = $loader = new xrstf_Composer52_ClassLoader();
|
24 |
+
spl_autoload_unregister(array('ComposerAutoloaderInit8af7adeba1b95861ad18dfa88d59ccdf', 'loadClassLoader'));
|
25 |
|
26 |
$vendorDir = dirname(dirname(__FILE__));
|
27 |
$baseDir = dirname($vendorDir);
|
vendor/composer/installed.json
CHANGED
@@ -6,15 +6,15 @@
|
|
6 |
"source": {
|
7 |
"type": "git",
|
8 |
"url": "https://github.com/Codeinwp/themeisle-sdk.git",
|
9 |
-
"reference": "
|
10 |
},
|
11 |
"dist": {
|
12 |
"type": "zip",
|
13 |
-
"url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/
|
14 |
-
"reference": "
|
15 |
"shasum": ""
|
16 |
},
|
17 |
-
"time": "
|
18 |
"type": "library",
|
19 |
"installation-source": "dist",
|
20 |
"autoload": {
|
6 |
"source": {
|
7 |
"type": "git",
|
8 |
"url": "https://github.com/Codeinwp/themeisle-sdk.git",
|
9 |
+
"reference": "9d866559c6090f0e7e70fe3e5a4be8672461a11a"
|
10 |
},
|
11 |
"dist": {
|
12 |
"type": "zip",
|
13 |
+
"url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/9d866559c6090f0e7e70fe3e5a4be8672461a11a",
|
14 |
+
"reference": "9d866559c6090f0e7e70fe3e5a4be8672461a11a",
|
15 |
"shasum": ""
|
16 |
},
|
17 |
+
"time": "2018-02-16 16:31:29",
|
18 |
"type": "library",
|
19 |
"installation-source": "dist",
|
20 |
"autoload": {
|