Version Description
- New: Introduced player types (JavaScript, Iframe).
- New: Introduced Video SEO.
- Tweak: "Self Hosted / External URL" source type supports the relative file paths and the encoded (%20) file names.
- Tweak: "Iframe Embed Code" source type supports non-iframe player embeds. Example: TikTok Videos.
- Tweak: The "videos count" info on the categories page, includes the subcategory videos too.
- Fix: Security Fix. Prevent XSS (Cross-Site Scripting) attempt on the title fields.
- Fix: Conflict with the Autoptimize plugin.
- Fix: [+] few minor bug fixes.
Download this release
Release Info
Developer | plugins360 |
Plugin | ![]() |
Version | 2.4.0 |
Comparing to | |
See all releases |
Code changes from version 2.3.0 to 2.4.0
- README.txt +16 -6
- admin/admin.php +40 -18
- admin/partials/shortcode-builder.php +0 -1
- admin/partials/video-sources.php +10 -0
- admin/settings.php +113 -78
- admin/videos.php +11 -12
- all-in-one-video-gallery.php +2 -2
- blocks/blocks.php +4 -0
- freemius/assets/css/admin/account.css +1 -1
- freemius/assets/css/admin/common.css +2 -2
- freemius/assets/css/admin/connect.css +1 -1
- freemius/assets/css/admin/debug.css +1 -1
- freemius/assets/css/admin/dialog-boxes.css +1 -1
- freemius/assets/img/all-in-one-video-gallery.png +0 -0
- freemius/includes/class-freemius.php +618 -63
- freemius/includes/class-fs-plugin-updater.php +6 -0
- freemius/includes/class-fs-storage.php +11 -10
- freemius/includes/fs-essential-functions.php +5 -1
- freemius/languages/freemius-cs_CZ.mo +0 -0
- freemius/languages/freemius-cs_CZ.po +243 -457
- freemius/languages/freemius-da_DK.mo +0 -0
- freemius/languages/freemius-da_DK.po +468 -430
- freemius/languages/freemius-es_ES.mo +0 -0
- freemius/languages/freemius-es_ES.po +30 -30
- freemius/languages/freemius-it_IT.mo +0 -0
- freemius/languages/freemius-it_IT.po +62 -61
- freemius/languages/freemius-ja.mo +0 -0
- freemius/languages/{freemius-ja_JP.po → freemius-ja.po} +379 -166
- freemius/languages/freemius-ja_JP.mo +0 -0
- freemius/languages/freemius.pot +434 -361
- freemius/start.php +1 -1
- freemius/templates/account.php +38 -5
- freemius/templates/connect.php +76 -22
- freemius/templates/debug.php +13 -13
- freemius/templates/forms/deactivation/form.php +1 -1
- freemius/templates/forms/license-activation.php +865 -698
- freemius/templates/forms/optout.php +329 -269
- freemius/templates/forms/user-change.php +296 -0
- includes/functions.php +77 -85
- includes/init.php +15 -2
- includes/player.php +841 -0
- includes/uninstall.php +5 -5
- languages/all-in-one-video-gallery.pot +489 -425
- public/assets/css/public.css +171 -24
- public/assets/images/spinner-dark.gif +0 -0
- public/assets/images/spinner.gif +0 -0
- public/assets/js/player.js +302 -0
- public/assets/js/public.js +0 -13
- public/assets/player/videojs-plugins/dailymotion/videojs-dailymotion.min.js +2 -2
- public/assets/player/videojs-plugins/facebook/videojs-facebook.min.js +2 -2
- public/assets/player/videojs-plugins/vimeo/videojs-vimeo2.min.js +2 -2
- public/assets/player/videojs-plugins/youtube/Youtube.min.js +1 -1
- public/categories.php +12 -1
- public/conflict.php +43 -0
- public/public.php +163 -20
- public/templates/category-thumbnail.php +2 -2
- public/templates/player-amp.php +0 -258
- public/templates/player-gdpr.php +5 -5
- public/templates/player-html5.php +44 -32
- public/templates/player-iframe.php +37 -19
- public/templates/single-video.php +1 -1
- public/templates/video-thumbnail-image-left.php +1 -1
- public/templates/video-thumbnail.php +1 -1
- public/video.php +1 -1
- public/videos.php +28 -16
- widgets/videos.php +0 -1
README.txt
CHANGED
@@ -4,9 +4,9 @@ Contributors: plugins360, wpvideogallery, freemius
|
|
4 |
Donate link: https://plugins360.com
|
5 |
Tags: video player, video gallery, youtube gallery, vimeo gallery, livestream
|
6 |
Requires at least: 4.7.0
|
7 |
-
Tested up to: 5.
|
8 |
Requires PHP: 5.3.0
|
9 |
-
Stable tag: 2.
|
10 |
License: GPLv2 or later
|
11 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
12 |
|
@@ -42,6 +42,7 @@ https://www.youtube.com/watch?v=w47PU9ppuF8
|
|
42 |
|
43 |
**Premium Features**
|
44 |
|
|
|
45 |
* Auto Thumbnail Generator
|
46 |
* Auto import videos from YouTube playlist, channel, etc.
|
47 |
* Custom Logo & Branding
|
@@ -110,11 +111,21 @@ Please describe your issue and submit a ticket on our plugin support forum, you
|
|
110 |
|
111 |
== Changelog ==
|
112 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
113 |
= 2.3.0 =
|
114 |
|
115 |
* Fix: Third-party videos like YouTube, Vimeo, Dailymotion & Facebook not working on iOS devices.
|
116 |
* Fix: Video zoomed inside the player in IE.
|
117 |
-
* Fix: Conflict with the Autoptimize plugin.
|
118 |
|
119 |
= 2.2.0 =
|
120 |
|
@@ -149,7 +160,6 @@ Please describe your issue and submit a ticket on our plugin support forum, you
|
|
149 |
* Tweak: Plugin backend access to users with the required capability.
|
150 |
* Fix: M4V, MOV videos not working in the "AIOVG - Video Player" Gutenberg block.
|
151 |
* Fix: WordPress 5.3 compatibility issues.
|
152 |
-
* Fix: Autoptimize conflict issue.
|
153 |
* Fix: [+] few minor bug fixes.
|
154 |
|
155 |
= 1.6.5 =
|
@@ -271,6 +281,6 @@ Please describe your issue and submit a ticket on our plugin support forum, you
|
|
271 |
|
272 |
== Upgrade Notice ==
|
273 |
|
274 |
-
= 2.
|
275 |
|
276 |
-
Introduces
|
4 |
Donate link: https://plugins360.com
|
5 |
Tags: video player, video gallery, youtube gallery, vimeo gallery, livestream
|
6 |
Requires at least: 4.7.0
|
7 |
+
Tested up to: 5.4
|
8 |
Requires PHP: 5.3.0
|
9 |
+
Stable tag: 2.4.0
|
10 |
License: GPLv2 or later
|
11 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
12 |
|
42 |
|
43 |
**Premium Features**
|
44 |
|
45 |
+
* Video SEO: Schema.org Markup (via JSON-LD)
|
46 |
* Auto Thumbnail Generator
|
47 |
* Auto import videos from YouTube playlist, channel, etc.
|
48 |
* Custom Logo & Branding
|
111 |
|
112 |
== Changelog ==
|
113 |
|
114 |
+
= 2.4.0 =
|
115 |
+
|
116 |
+
* New: Introduced player types (JavaScript, Iframe).
|
117 |
+
* New: Introduced Video SEO.
|
118 |
+
* Tweak: "Self Hosted / External URL" source type supports the relative file paths and the encoded (%20) file names.
|
119 |
+
* Tweak: "Iframe Embed Code" source type supports non-iframe player embeds. Example: TikTok Videos.
|
120 |
+
* Tweak: The "videos count" info on the categories page, includes the subcategory videos too.
|
121 |
+
* Fix: Security Fix. Prevent XSS (Cross-Site Scripting) attempt on the title fields.
|
122 |
+
* Fix: Conflict with the Autoptimize plugin.
|
123 |
+
* Fix: [+] few minor bug fixes.
|
124 |
+
|
125 |
= 2.3.0 =
|
126 |
|
127 |
* Fix: Third-party videos like YouTube, Vimeo, Dailymotion & Facebook not working on iOS devices.
|
128 |
* Fix: Video zoomed inside the player in IE.
|
|
|
129 |
|
130 |
= 2.2.0 =
|
131 |
|
160 |
* Tweak: Plugin backend access to users with the required capability.
|
161 |
* Fix: M4V, MOV videos not working in the "AIOVG - Video Player" Gutenberg block.
|
162 |
* Fix: WordPress 5.3 compatibility issues.
|
|
|
163 |
* Fix: [+] few minor bug fixes.
|
164 |
|
165 |
= 1.6.5 =
|
281 |
|
282 |
== Upgrade Notice ==
|
283 |
|
284 |
+
= 2.4.0 =
|
285 |
|
286 |
+
Introduces several bug fixes, new features & enhancements. [See changelog](https://wordpress.org/plugins/all-in-one-video-gallery/#developers)
|
admin/admin.php
CHANGED
@@ -32,20 +32,16 @@ class AIOVG_Admin {
|
|
32 |
|
33 |
// Update the plugin version
|
34 |
update_option( 'aiovg_version', AIOVG_PLUGIN_VERSION );
|
35 |
-
|
36 |
-
// Insert the missing general settings
|
37 |
-
$general_settings = get_option( 'aiovg_general_settings' );
|
38 |
-
|
39 |
-
if ( ! array_key_exists( 'delete_media_files', $general_settings ) ) {
|
40 |
-
$general_settings['delete_media_files'] = $defaults['aiovg_general_settings']['delete_media_files'];
|
41 |
-
update_option( 'aiovg_general_settings', $general_settings );
|
42 |
-
}
|
43 |
|
44 |
// Insert the missing player settings
|
45 |
$player_settings = get_option( 'aiovg_player_settings' );
|
46 |
|
47 |
$new_player_settings = array();
|
48 |
|
|
|
|
|
|
|
|
|
49 |
if ( ! array_key_exists( 'muted', $player_settings ) ) {
|
50 |
$new_player_settings['muted'] = $defaults['aiovg_player_settings']['muted'];
|
51 |
}
|
@@ -56,8 +52,25 @@ class AIOVG_Admin {
|
|
56 |
|
57 |
if ( count( $new_player_settings ) ) {
|
58 |
update_option( 'aiovg_player_settings', array_merge( $player_settings, $new_player_settings ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
}
|
60 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
// Insert the missing categories settings
|
62 |
$categories_settings = get_option( 'aiovg_categories_settings' );
|
63 |
|
@@ -75,23 +88,31 @@ class AIOVG_Admin {
|
|
75 |
update_option( 'aiovg_categories_settings', array_merge( $categories_settings, $new_categories_settings ) );
|
76 |
}
|
77 |
|
78 |
-
// Insert the missing
|
79 |
-
$
|
80 |
|
81 |
-
$
|
82 |
|
83 |
-
if ( ! array_key_exists( '
|
84 |
-
$
|
85 |
}
|
86 |
|
87 |
-
if ( ! array_key_exists( '
|
88 |
-
$
|
89 |
}
|
90 |
|
91 |
-
if ( count( $
|
92 |
-
update_option( '
|
93 |
}
|
94 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
95 |
// Insert the privacy settings
|
96 |
if ( false == get_option( 'aiovg_privacy_settings' ) ) {
|
97 |
add_option( 'aiovg_privacy_settings', $defaults['aiovg_privacy_settings'] );
|
@@ -154,6 +175,7 @@ class AIOVG_Admin {
|
|
154 |
'aiovg_admin',
|
155 |
array(
|
156 |
'ajax_nonce' => wp_create_nonce( 'aiovg_ajax_nonce' ),
|
|
|
157 |
'i18n' => array(
|
158 |
'no_issues_slected' => __( 'Please select at least one issue.', 'all-in-one-video-gallery' )
|
159 |
)
|
32 |
|
33 |
// Update the plugin version
|
34 |
update_option( 'aiovg_version', AIOVG_PLUGIN_VERSION );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
|
36 |
// Insert the missing player settings
|
37 |
$player_settings = get_option( 'aiovg_player_settings' );
|
38 |
|
39 |
$new_player_settings = array();
|
40 |
|
41 |
+
if ( ! array_key_exists( 'player', $player_settings ) ) {
|
42 |
+
$new_player_settings['player'] = 'iframe';
|
43 |
+
}
|
44 |
+
|
45 |
if ( ! array_key_exists( 'muted', $player_settings ) ) {
|
46 |
$new_player_settings['muted'] = $defaults['aiovg_player_settings']['muted'];
|
47 |
}
|
52 |
|
53 |
if ( count( $new_player_settings ) ) {
|
54 |
update_option( 'aiovg_player_settings', array_merge( $player_settings, $new_player_settings ) );
|
55 |
+
}
|
56 |
+
|
57 |
+
// Insert the missing videos settings
|
58 |
+
$videos_settings = get_option( 'aiovg_videos_settings' );
|
59 |
+
|
60 |
+
$new_videos_settings = array();
|
61 |
+
|
62 |
+
if ( ! array_key_exists( 'template', $videos_settings ) ) {
|
63 |
+
$new_videos_settings['template'] = $defaults['aiovg_videos_settings']['template'];
|
64 |
}
|
65 |
+
|
66 |
+
if ( ! array_key_exists( 'thumbnail_style', $videos_settings ) ) {
|
67 |
+
$new_videos_settings['thumbnail_style'] = $defaults['aiovg_videos_settings']['thumbnail_style'];
|
68 |
+
}
|
69 |
+
|
70 |
+
if ( count( $new_videos_settings ) ) {
|
71 |
+
update_option( 'aiovg_videos_settings', array_merge( $videos_settings, $new_videos_settings ) );
|
72 |
+
}
|
73 |
+
|
74 |
// Insert the missing categories settings
|
75 |
$categories_settings = get_option( 'aiovg_categories_settings' );
|
76 |
|
88 |
update_option( 'aiovg_categories_settings', array_merge( $categories_settings, $new_categories_settings ) );
|
89 |
}
|
90 |
|
91 |
+
// Insert the missing socialshare settings
|
92 |
+
$socialshare_settings = get_option( 'aiovg_socialshare_settings' );
|
93 |
|
94 |
+
$new_socialshare_settings = array();
|
95 |
|
96 |
+
if ( ! array_key_exists( 'open_graph_tags', $socialshare_settings ) ) {
|
97 |
+
$new_socialshare_settings['open_graph_tags'] = $defaults['aiovg_socialshare_settings']['open_graph_tags'];
|
98 |
}
|
99 |
|
100 |
+
if ( ! array_key_exists( 'twitter_username', $socialshare_settings ) ) {
|
101 |
+
$new_socialshare_settings['twitter_username'] = $defaults['aiovg_socialshare_settings']['twitter_username'];
|
102 |
}
|
103 |
|
104 |
+
if ( count( $new_socialshare_settings ) ) {
|
105 |
+
update_option( 'aiovg_socialshare_settings', array_merge( $socialshare_settings, $new_socialshare_settings ) );
|
106 |
}
|
107 |
|
108 |
+
// Insert the missing general settings
|
109 |
+
$general_settings = get_option( 'aiovg_general_settings' );
|
110 |
+
|
111 |
+
if ( ! array_key_exists( 'delete_media_files', $general_settings ) ) {
|
112 |
+
$general_settings['delete_media_files'] = $defaults['aiovg_general_settings']['delete_media_files'];
|
113 |
+
update_option( 'aiovg_general_settings', $general_settings );
|
114 |
+
}
|
115 |
+
|
116 |
// Insert the privacy settings
|
117 |
if ( false == get_option( 'aiovg_privacy_settings' ) ) {
|
118 |
add_option( 'aiovg_privacy_settings', $defaults['aiovg_privacy_settings'] );
|
175 |
'aiovg_admin',
|
176 |
array(
|
177 |
'ajax_nonce' => wp_create_nonce( 'aiovg_ajax_nonce' ),
|
178 |
+
'site_url' => esc_url_raw( get_site_url() ),
|
179 |
'i18n' => array(
|
180 |
'no_issues_slected' => __( 'Please select at least one issue.', 'all-in-one-video-gallery' )
|
181 |
)
|
admin/partials/shortcode-builder.php
CHANGED
@@ -16,7 +16,6 @@ $is_video_found = 0;
|
|
16 |
|
17 |
$args = array(
|
18 |
'post_type' => 'aiovg_videos',
|
19 |
-
'post_status' => 'publish',
|
20 |
'posts_per_page' => 500,
|
21 |
'orderby' => 'title',
|
22 |
'order' => 'ASC',
|
16 |
|
17 |
$args = array(
|
18 |
'post_type' => 'aiovg_videos',
|
|
|
19 |
'posts_per_page' => 500,
|
20 |
'orderby' => 'title',
|
21 |
'order' => 'ASC',
|
admin/partials/video-sources.php
CHANGED
@@ -172,6 +172,16 @@
|
|
172 |
</p>
|
173 |
|
174 |
<textarea name="embedcode" id="aiovg-embedcode" class="textarea" rows="6" placeholder="<?php esc_attr_e( 'Enter your Iframe Embed Code', 'all-in-one-video-gallery' ); ?>"><?php echo esc_textarea( $embedcode ); ?></textarea>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
175 |
</td>
|
176 |
</tr>
|
177 |
<?php do_action( 'aiovg_admin_add_video_source_fields', $post->ID ); ?>
|
172 |
</p>
|
173 |
|
174 |
<textarea name="embedcode" id="aiovg-embedcode" class="textarea" rows="6" placeholder="<?php esc_attr_e( 'Enter your Iframe Embed Code', 'all-in-one-video-gallery' ); ?>"><?php echo esc_textarea( $embedcode ); ?></textarea>
|
175 |
+
|
176 |
+
<p>
|
177 |
+
<?php
|
178 |
+
printf(
|
179 |
+
'<span class="aiovg-text-error"><strong>%s</strong></span>: %s',
|
180 |
+
esc_html__( 'Warning', 'all-in-one-video-gallery' ),
|
181 |
+
esc_html__( 'This field allows "iframe" and "script" tags. So, make sure the code you\'re adding with this field is harmless to your website.', 'all-in-one-video-gallery' )
|
182 |
+
);
|
183 |
+
?>
|
184 |
+
</p>
|
185 |
</td>
|
186 |
</tr>
|
187 |
<?php do_action( 'aiovg_admin_add_video_source_fields', $post->ID ); ?>
|
admin/settings.php
CHANGED
@@ -96,7 +96,8 @@ class AIOVG_Admin_Settings {
|
|
96 |
public function get_tabs() {
|
97 |
$tabs = array(
|
98 |
'general' => __( 'General', 'all-in-one-video-gallery' ),
|
99 |
-
|
|
|
100 |
'advanced' => __( 'Advanced', 'all-in-one-video-gallery' )
|
101 |
);
|
102 |
|
@@ -110,52 +111,59 @@ class AIOVG_Admin_Settings {
|
|
110 |
* @return array $sections Setting sections array.
|
111 |
*/
|
112 |
public function get_sections() {
|
113 |
-
$sections = array(
|
114 |
-
array(
|
115 |
-
'id' => 'aiovg_general_settings',
|
116 |
-
'title' => __( 'General Settings', 'all-in-one-video-gallery' ),
|
117 |
-
'tab' => 'general'
|
118 |
-
),
|
119 |
array(
|
120 |
-
'id'
|
121 |
-
'title'
|
122 |
-
|
|
|
123 |
),
|
124 |
array(
|
125 |
-
'id'
|
126 |
-
'title'
|
127 |
-
|
|
|
128 |
),
|
129 |
array(
|
130 |
-
'id'
|
131 |
-
'title'
|
132 |
-
|
|
|
133 |
),
|
134 |
array(
|
135 |
-
'id'
|
136 |
-
'title'
|
137 |
-
|
|
|
138 |
),
|
139 |
array(
|
140 |
-
'id'
|
141 |
-
'title'
|
142 |
-
|
|
|
143 |
),
|
144 |
array(
|
145 |
-
'id'
|
146 |
-
'title'
|
147 |
-
'
|
148 |
-
|
|
|
149 |
array(
|
150 |
'id' => 'aiovg_permalink_settings',
|
151 |
'title' => __( 'Permalink Slugs', 'all-in-one-video-gallery' ),
|
152 |
'description' => __( 'NOTE: Just make sure that, after updating the fields in this section, you flush the rewrite rules by visiting "Settings > Permalinks". Otherwise you\'ll still see the old links.', 'all-in-one-video-gallery' ),
|
|
|
|
|
|
|
|
|
|
|
|
|
153 |
'tab' => 'advanced'
|
154 |
),
|
155 |
-
|
156 |
-
'id' => '
|
157 |
-
'title' => __( '
|
158 |
-
|
159 |
'tab' => 'advanced'
|
160 |
),
|
161 |
array(
|
@@ -168,9 +176,10 @@ class AIOVG_Admin_Settings {
|
|
168 |
|
169 |
if ( false !== get_option( 'aiovg_brand_settings' ) ) {
|
170 |
$sections[] = array(
|
171 |
-
'id'
|
172 |
-
'title'
|
173 |
-
|
|
|
174 |
);
|
175 |
}
|
176 |
|
@@ -186,24 +195,19 @@ class AIOVG_Admin_Settings {
|
|
186 |
public function get_fields() {
|
187 |
$video_templates = aiovg_get_video_templates();
|
188 |
|
189 |
-
$fields = array(
|
190 |
-
'aiovg_general_settings' => array(
|
191 |
-
array(
|
192 |
-
'name' => 'delete_plugin_data',
|
193 |
-
'label' => __( 'Remove data on uninstall?', 'all-in-one-video-gallery' ),
|
194 |
-
'description' => __( 'Check this box to delete all of the plugin data (database stored content) when uninstalled', 'all-in-one-video-gallery' ),
|
195 |
-
'type' => 'checkbox',
|
196 |
-
'sanitize_callback' => 'intval'
|
197 |
-
),
|
198 |
-
array(
|
199 |
-
'name' => 'delete_media_files',
|
200 |
-
'label' => __( 'Delete media files?', 'all-in-one-video-gallery' ),
|
201 |
-
'description' => __( 'Check this box to also delete the associated media files when a video post or a video category is deleted', 'all-in-one-video-gallery' ),
|
202 |
-
'type' => 'checkbox',
|
203 |
-
'sanitize_callback' => 'intval'
|
204 |
-
)
|
205 |
-
),
|
206 |
'aiovg_player_settings' => array(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
207 |
array(
|
208 |
'name' => 'width',
|
209 |
'label' => __( 'Width', 'all-in-one-video-gallery' ),
|
@@ -496,6 +500,62 @@ class AIOVG_Admin_Settings {
|
|
496 |
'sanitize_callback' => 'floatval'
|
497 |
),
|
498 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
499 |
'aiovg_page_settings' => array(
|
500 |
array(
|
501 |
'name' => 'category',
|
@@ -525,32 +585,7 @@ class AIOVG_Admin_Settings {
|
|
525 |
'type' => 'pages',
|
526 |
'sanitize_callback' => 'sanitize_key'
|
527 |
)
|
528 |
-
),
|
529 |
-
'aiovg_permalink_settings' => array(
|
530 |
-
array(
|
531 |
-
'name' => 'video',
|
532 |
-
'label' => __( 'Video Detail Page', 'all-in-one-video-gallery' ),
|
533 |
-
'description' => __( 'Replaces the SLUG value used by custom post type "aiovg_videos".', 'all-in-one-video-gallery' ),
|
534 |
-
'type' => 'text',
|
535 |
-
'sanitize_callback' => 'sanitize_text_field'
|
536 |
-
)
|
537 |
-
),
|
538 |
-
'aiovg_socialshare_settings' => array(
|
539 |
-
array(
|
540 |
-
'name' => 'services',
|
541 |
-
'label' => __( 'Enable Services', 'all-in-one-video-gallery' ),
|
542 |
-
'description' => '',
|
543 |
-
'type' => 'multicheck',
|
544 |
-
'options' => array(
|
545 |
-
'facebook' => __( 'Facebook', 'all-in-one-video-gallery' ),
|
546 |
-
'twitter' => __( 'Twitter', 'all-in-one-video-gallery' ),
|
547 |
-
'linkedin' => __( 'Linkedin', 'all-in-one-video-gallery' ),
|
548 |
-
'pinterest' => __( 'Pinterest', 'all-in-one-video-gallery' ),
|
549 |
-
'whatsapp' => __( 'WhatsApp', 'all-in-one-video-gallery' )
|
550 |
-
),
|
551 |
-
'sanitize_callback' => 'aiovg_sanitize_array'
|
552 |
-
)
|
553 |
-
),
|
554 |
'aiovg_privacy_settings' => array(
|
555 |
array(
|
556 |
'name' => 'show_consent',
|
@@ -590,7 +625,7 @@ class AIOVG_Admin_Settings {
|
|
590 |
'label' => __( 'Logo Image', 'all-in-one-video-gallery' ),
|
591 |
'description' => __( 'Upload the image file of your logo. We recommend using the transparent PNG format with width below 100 pixels. If you do not enter any image, no logo will displayed.', 'all-in-one-video-gallery' ),
|
592 |
'type' => 'file',
|
593 |
-
'sanitize_callback' => '
|
594 |
),
|
595 |
array(
|
596 |
'name' => 'logo_link',
|
@@ -699,7 +734,7 @@ class AIOVG_Admin_Settings {
|
|
699 |
public function settings_section_callback( $args ) {
|
700 |
foreach ( $this->sections as $section ) {
|
701 |
if ( $section['id'] == $args['id'] ) {
|
702 |
-
printf( '<div class="inside">%s</div>',
|
703 |
break;
|
704 |
}
|
705 |
}
|
96 |
public function get_tabs() {
|
97 |
$tabs = array(
|
98 |
'general' => __( 'General', 'all-in-one-video-gallery' ),
|
99 |
+
'display' => __( 'Display', 'all-in-one-video-gallery' ),
|
100 |
+
'seo' => __( 'SEO', 'all-in-one-video-gallery' ),
|
101 |
'advanced' => __( 'Advanced', 'all-in-one-video-gallery' )
|
102 |
);
|
103 |
|
111 |
* @return array $sections Setting sections array.
|
112 |
*/
|
113 |
public function get_sections() {
|
114 |
+
$sections = array(
|
|
|
|
|
|
|
|
|
|
|
115 |
array(
|
116 |
+
'id' => 'aiovg_player_settings',
|
117 |
+
'title' => __( 'Player Settings', 'all-in-one-video-gallery' ),
|
118 |
+
'description' => '',
|
119 |
+
'tab' => 'general'
|
120 |
),
|
121 |
array(
|
122 |
+
'id' => 'aiovg_videos_settings',
|
123 |
+
'title' => __( 'Videos Layout', 'all-in-one-video-gallery' ),
|
124 |
+
'description' => '',
|
125 |
+
'tab' => 'display'
|
126 |
),
|
127 |
array(
|
128 |
+
'id' => 'aiovg_categories_settings',
|
129 |
+
'title' => __( 'Categories Layout', 'all-in-one-video-gallery' ),
|
130 |
+
'description' => '',
|
131 |
+
'tab' => 'display'
|
132 |
),
|
133 |
array(
|
134 |
+
'id' => 'aiovg_video_settings',
|
135 |
+
'title' => __( 'Single Video Page', 'all-in-one-video-gallery' ),
|
136 |
+
'description' => '',
|
137 |
+
'tab' => 'display'
|
138 |
),
|
139 |
array(
|
140 |
+
'id' => 'aiovg_image_settings',
|
141 |
+
'title' => __( 'Image Settings', 'all-in-one-video-gallery' ),
|
142 |
+
'description' => '',
|
143 |
+
'tab' => 'display'
|
144 |
),
|
145 |
array(
|
146 |
+
'id' => 'aiovg_socialshare_settings',
|
147 |
+
'title' => __( 'Social Sharing', 'all-in-one-video-gallery' ),
|
148 |
+
'description' => '',
|
149 |
+
'tab' => 'seo'
|
150 |
+
),
|
151 |
array(
|
152 |
'id' => 'aiovg_permalink_settings',
|
153 |
'title' => __( 'Permalink Slugs', 'all-in-one-video-gallery' ),
|
154 |
'description' => __( 'NOTE: Just make sure that, after updating the fields in this section, you flush the rewrite rules by visiting "Settings > Permalinks". Otherwise you\'ll still see the old links.', 'all-in-one-video-gallery' ),
|
155 |
+
'tab' => 'seo'
|
156 |
+
),
|
157 |
+
array(
|
158 |
+
'id' => 'aiovg_general_settings',
|
159 |
+
'title' => __( 'Misc Settings', 'all-in-one-video-gallery' ),
|
160 |
+
'description' => '',
|
161 |
'tab' => 'advanced'
|
162 |
),
|
163 |
+
array(
|
164 |
+
'id' => 'aiovg_page_settings',
|
165 |
+
'title' => __( 'Page Settings', 'all-in-one-video-gallery' ),
|
166 |
+
'description' => '',
|
167 |
'tab' => 'advanced'
|
168 |
),
|
169 |
array(
|
176 |
|
177 |
if ( false !== get_option( 'aiovg_brand_settings' ) ) {
|
178 |
$sections[] = array(
|
179 |
+
'id' => 'aiovg_brand_settings',
|
180 |
+
'title' => __( 'Logo & Branding', 'all-in-one-video-gallery' ),
|
181 |
+
'description' => '',
|
182 |
+
'tab' => 'general'
|
183 |
);
|
184 |
}
|
185 |
|
195 |
public function get_fields() {
|
196 |
$video_templates = aiovg_get_video_templates();
|
197 |
|
198 |
+
$fields = array(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
199 |
'aiovg_player_settings' => array(
|
200 |
+
array(
|
201 |
+
'name' => 'player',
|
202 |
+
'label' => __( 'Player Type', 'all-in-one-video-gallery' ),
|
203 |
+
'description' => '',
|
204 |
+
'type' => 'radio',
|
205 |
+
'options' => array(
|
206 |
+
'standard' => __( 'JavaScript', 'all-in-one-video-gallery' ),
|
207 |
+
'iframe' => __( 'Iframe', 'all-in-one-video-gallery' )
|
208 |
+
),
|
209 |
+
'sanitize_callback' => 'sanitize_key'
|
210 |
+
),
|
211 |
array(
|
212 |
'name' => 'width',
|
213 |
'label' => __( 'Width', 'all-in-one-video-gallery' ),
|
500 |
'sanitize_callback' => 'floatval'
|
501 |
),
|
502 |
),
|
503 |
+
'aiovg_socialshare_settings' => array(
|
504 |
+
array(
|
505 |
+
'name' => 'services',
|
506 |
+
'label' => __( 'Share Buttons', 'all-in-one-video-gallery' ),
|
507 |
+
'description' => __( 'Select social share buttons displayed on the single video pages.', 'all-in-one-video-gallery' ),
|
508 |
+
'type' => 'multicheck',
|
509 |
+
'options' => array(
|
510 |
+
'facebook' => __( 'Facebook', 'all-in-one-video-gallery' ),
|
511 |
+
'twitter' => __( 'Twitter', 'all-in-one-video-gallery' ),
|
512 |
+
'linkedin' => __( 'Linkedin', 'all-in-one-video-gallery' ),
|
513 |
+
'pinterest' => __( 'Pinterest', 'all-in-one-video-gallery' ),
|
514 |
+
'whatsapp' => __( 'WhatsApp', 'all-in-one-video-gallery' )
|
515 |
+
),
|
516 |
+
'sanitize_callback' => 'aiovg_sanitize_array'
|
517 |
+
),
|
518 |
+
array(
|
519 |
+
'name' => 'open_graph_tags',
|
520 |
+
'label' => __( 'Open Graph Tags', 'all-in-one-video-gallery' ),
|
521 |
+
'description' => __( 'Check this option to enable Facebook Open Graph meta tags and Twitter cards on the single video pages', 'all-in-one-video-gallery' ),
|
522 |
+
'type' => 'checkbox',
|
523 |
+
'sanitize_callback' => 'intval'
|
524 |
+
),
|
525 |
+
array(
|
526 |
+
'name' => 'twitter_username',
|
527 |
+
'label' => __( 'Twitter Username', 'all-in-one-video-gallery' ),
|
528 |
+
'description' => __( 'The Twitter @username the player card should be attributed to. Required for sharing videos in Twitter.', 'all-in-one-video-gallery' ),
|
529 |
+
'placeholder' => '@username',
|
530 |
+
'type' => 'text',
|
531 |
+
'sanitize_callback' => 'sanitize_text_field'
|
532 |
+
)
|
533 |
+
),
|
534 |
+
'aiovg_permalink_settings' => array(
|
535 |
+
array(
|
536 |
+
'name' => 'video',
|
537 |
+
'label' => __( 'Video Detail Page', 'all-in-one-video-gallery' ),
|
538 |
+
'description' => __( 'Replaces the SLUG value used by custom post type "aiovg_videos".', 'all-in-one-video-gallery' ),
|
539 |
+
'type' => 'text',
|
540 |
+
'sanitize_callback' => 'sanitize_text_field'
|
541 |
+
)
|
542 |
+
),
|
543 |
+
'aiovg_general_settings' => array(
|
544 |
+
array(
|
545 |
+
'name' => 'delete_plugin_data',
|
546 |
+
'label' => __( 'Remove data on uninstall?', 'all-in-one-video-gallery' ),
|
547 |
+
'description' => __( 'Check this box to delete all of the plugin data (database stored content) when uninstalled', 'all-in-one-video-gallery' ),
|
548 |
+
'type' => 'checkbox',
|
549 |
+
'sanitize_callback' => 'intval'
|
550 |
+
),
|
551 |
+
array(
|
552 |
+
'name' => 'delete_media_files',
|
553 |
+
'label' => __( 'Delete media files?', 'all-in-one-video-gallery' ),
|
554 |
+
'description' => __( 'Check this box to also delete the associated media files when a video post or a video category is deleted', 'all-in-one-video-gallery' ),
|
555 |
+
'type' => 'checkbox',
|
556 |
+
'sanitize_callback' => 'intval'
|
557 |
+
)
|
558 |
+
),
|
559 |
'aiovg_page_settings' => array(
|
560 |
array(
|
561 |
'name' => 'category',
|
585 |
'type' => 'pages',
|
586 |
'sanitize_callback' => 'sanitize_key'
|
587 |
)
|
588 |
+
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
589 |
'aiovg_privacy_settings' => array(
|
590 |
array(
|
591 |
'name' => 'show_consent',
|
625 |
'label' => __( 'Logo Image', 'all-in-one-video-gallery' ),
|
626 |
'description' => __( 'Upload the image file of your logo. We recommend using the transparent PNG format with width below 100 pixels. If you do not enter any image, no logo will displayed.', 'all-in-one-video-gallery' ),
|
627 |
'type' => 'file',
|
628 |
+
'sanitize_callback' => 'aiovg_sanitize_url'
|
629 |
),
|
630 |
array(
|
631 |
'name' => 'logo_link',
|
734 |
public function settings_section_callback( $args ) {
|
735 |
foreach ( $this->sections as $section ) {
|
736 |
if ( $section['id'] == $args['id'] ) {
|
737 |
+
printf( '<div class="inside">%s</div>', $section['description'] );
|
738 |
break;
|
739 |
}
|
740 |
}
|
admin/videos.php
CHANGED
@@ -107,8 +107,9 @@ class AIOVG_Admin_Videos {
|
|
107 |
'hierarchical' => false,
|
108 |
'public' => true,
|
109 |
'show_ui' => true,
|
110 |
-
'
|
111 |
'show_in_nav_menus' => false,
|
|
|
112 |
'show_in_rest' => false,
|
113 |
'can_export' => true,
|
114 |
'has_archive' => true,
|
@@ -118,9 +119,7 @@ class AIOVG_Admin_Videos {
|
|
118 |
'map_meta_cap' => true,
|
119 |
);
|
120 |
|
121 |
-
if ( current_user_can( '
|
122 |
-
$args['show_in_menu'] = false;
|
123 |
-
} else {
|
124 |
$args['show_in_menu'] = true;
|
125 |
$args['menu_position'] = 5;
|
126 |
$args['menu_icon'] = 'dashicons-playlist-video';
|
@@ -270,21 +269,21 @@ class AIOVG_Admin_Videos {
|
|
270 |
$type = isset( $_POST['type'] ) ? sanitize_text_field( $_POST['type'] ) : 'default';
|
271 |
update_post_meta( $post_id, 'type', $type );
|
272 |
|
273 |
-
$mp4 = isset( $_POST['mp4'] ) ?
|
274 |
update_post_meta( $post_id, 'mp4', $mp4 );
|
275 |
update_post_meta( $post_id, 'mp4_id', aiovg_get_attachment_id( $mp4, 'video' ) );
|
276 |
|
277 |
$has_webm = isset( $_POST['has_webm'] ) ? 1 : 0;
|
278 |
update_post_meta( $post_id, 'has_webm', $has_webm );
|
279 |
|
280 |
-
$webm = isset( $_POST['webm'] ) ?
|
281 |
update_post_meta( $post_id, 'webm', $webm );
|
282 |
update_post_meta( $post_id, 'webm_id', aiovg_get_attachment_id( $webm, 'video' ) );
|
283 |
|
284 |
$has_ogv = isset( $_POST['has_ogv'] ) ? 1 : 0;
|
285 |
update_post_meta( $post_id, 'has_ogv', $has_ogv );
|
286 |
|
287 |
-
$ogv = isset( $_POST['ogv'] ) ?
|
288 |
update_post_meta( $post_id, 'ogv', $ogv );
|
289 |
update_post_meta( $post_id, 'ogv_id', aiovg_get_attachment_id( $ogv, 'video' ) );
|
290 |
|
@@ -305,15 +304,15 @@ class AIOVG_Admin_Videos {
|
|
305 |
$facebook = isset( $_POST['facebook'] ) ? esc_url_raw( $_POST['facebook'] ) : '';
|
306 |
update_post_meta( $post_id, 'facebook', $facebook );
|
307 |
|
308 |
-
add_filter( 'wp_kses_allowed_html', '
|
309 |
-
$embedcode = isset( $_POST['embedcode'] ) ? wp_kses_post( $_POST['embedcode'] ) : '';
|
310 |
update_post_meta( $post_id, 'embedcode', $embedcode );
|
311 |
-
remove_filter( 'wp_kses_allowed_html', '
|
312 |
|
313 |
$image = '';
|
314 |
$image_id = 0;
|
315 |
if ( ! empty( $_POST['image'] ) ) {
|
316 |
-
$image =
|
317 |
$image_id = aiovg_get_attachment_id( $image, 'image' );
|
318 |
} else {
|
319 |
if ( 'youtube' == $type && ! empty( $youtube ) ) {
|
@@ -351,7 +350,7 @@ class AIOVG_Admin_Videos {
|
|
351 |
|
352 |
foreach ( $sources as $key => $source ) {
|
353 |
$track = array(
|
354 |
-
'src' =>
|
355 |
'src_id' => aiovg_get_attachment_id( $source, 'track' ),
|
356 |
'label' => sanitize_text_field( $_POST['track_label'][ $key ] ),
|
357 |
'srclang' => sanitize_text_field( $_POST['track_srclang'][ $key ] )
|
107 |
'hierarchical' => false,
|
108 |
'public' => true,
|
109 |
'show_ui' => true,
|
110 |
+
'show_in_menu' => false,
|
111 |
'show_in_nav_menus' => false,
|
112 |
+
'show_in_admin_bar' => true,
|
113 |
'show_in_rest' => false,
|
114 |
'can_export' => true,
|
115 |
'has_archive' => true,
|
119 |
'map_meta_cap' => true,
|
120 |
);
|
121 |
|
122 |
+
if ( current_user_can( 'editor' ) ) {
|
|
|
|
|
123 |
$args['show_in_menu'] = true;
|
124 |
$args['menu_position'] = 5;
|
125 |
$args['menu_icon'] = 'dashicons-playlist-video';
|
269 |
$type = isset( $_POST['type'] ) ? sanitize_text_field( $_POST['type'] ) : 'default';
|
270 |
update_post_meta( $post_id, 'type', $type );
|
271 |
|
272 |
+
$mp4 = isset( $_POST['mp4'] ) ? aiovg_sanitize_url( $_POST['mp4'] ) : '';
|
273 |
update_post_meta( $post_id, 'mp4', $mp4 );
|
274 |
update_post_meta( $post_id, 'mp4_id', aiovg_get_attachment_id( $mp4, 'video' ) );
|
275 |
|
276 |
$has_webm = isset( $_POST['has_webm'] ) ? 1 : 0;
|
277 |
update_post_meta( $post_id, 'has_webm', $has_webm );
|
278 |
|
279 |
+
$webm = isset( $_POST['webm'] ) ? aiovg_sanitize_url( $_POST['webm'] ) : '';
|
280 |
update_post_meta( $post_id, 'webm', $webm );
|
281 |
update_post_meta( $post_id, 'webm_id', aiovg_get_attachment_id( $webm, 'video' ) );
|
282 |
|
283 |
$has_ogv = isset( $_POST['has_ogv'] ) ? 1 : 0;
|
284 |
update_post_meta( $post_id, 'has_ogv', $has_ogv );
|
285 |
|
286 |
+
$ogv = isset( $_POST['ogv'] ) ? aiovg_sanitize_url( $_POST['ogv'] ) : '';
|
287 |
update_post_meta( $post_id, 'ogv', $ogv );
|
288 |
update_post_meta( $post_id, 'ogv_id', aiovg_get_attachment_id( $ogv, 'video' ) );
|
289 |
|
304 |
$facebook = isset( $_POST['facebook'] ) ? esc_url_raw( $_POST['facebook'] ) : '';
|
305 |
update_post_meta( $post_id, 'facebook', $facebook );
|
306 |
|
307 |
+
add_filter( 'wp_kses_allowed_html', 'aiovg_allow_iframe_script_tags' );
|
308 |
+
$embedcode = isset( $_POST['embedcode'] ) ? wp_kses_post( str_replace( "'", '"', $_POST['embedcode'] ) ) : '';
|
309 |
update_post_meta( $post_id, 'embedcode', $embedcode );
|
310 |
+
remove_filter( 'wp_kses_allowed_html', 'aiovg_allow_iframe_script_tags' );
|
311 |
|
312 |
$image = '';
|
313 |
$image_id = 0;
|
314 |
if ( ! empty( $_POST['image'] ) ) {
|
315 |
+
$image = aiovg_sanitize_url( $_POST['image'] );
|
316 |
$image_id = aiovg_get_attachment_id( $image, 'image' );
|
317 |
} else {
|
318 |
if ( 'youtube' == $type && ! empty( $youtube ) ) {
|
350 |
|
351 |
foreach ( $sources as $key => $source ) {
|
352 |
$track = array(
|
353 |
+
'src' => aiovg_sanitize_url( $source ),
|
354 |
'src_id' => aiovg_get_attachment_id( $source, 'track' ),
|
355 |
'label' => sanitize_text_field( $_POST['track_label'][ $key ] ),
|
356 |
'srclang' => sanitize_text_field( $_POST['track_srclang'][ $key ] )
|
all-in-one-video-gallery.php
CHANGED
@@ -11,7 +11,7 @@
|
|
11 |
* Plugin Name: All-in-One Video Gallery
|
12 |
* Plugin URI: https://plugins360.com/all-in-one-video-gallery/
|
13 |
* Description: No coding required. A Responsive & Lightweight video gallery plugin. HTML5 Player, Categories, Visual Builder (Gutenberg), Search Form, Comments, Social Sharing and everything you will need to build a YouTube/Vimeo like video sharing website.
|
14 |
-
* Version: 2.
|
15 |
* Author: Team Plugins360
|
16 |
* Author URI: https://plugins360.com
|
17 |
* License: GPL-2.0+
|
@@ -76,7 +76,7 @@ if ( !function_exists( 'aiovg_fs' ) ) {
|
|
76 |
|
77 |
// The current version of the plugin
|
78 |
if ( !defined( 'AIOVG_PLUGIN_VERSION' ) ) {
|
79 |
-
define( 'AIOVG_PLUGIN_VERSION', '2.
|
80 |
}
|
81 |
// The unique identifier of the plugin
|
82 |
if ( !defined( 'AIOVG_PLUGIN_SLUG' ) ) {
|
11 |
* Plugin Name: All-in-One Video Gallery
|
12 |
* Plugin URI: https://plugins360.com/all-in-one-video-gallery/
|
13 |
* Description: No coding required. A Responsive & Lightweight video gallery plugin. HTML5 Player, Categories, Visual Builder (Gutenberg), Search Form, Comments, Social Sharing and everything you will need to build a YouTube/Vimeo like video sharing website.
|
14 |
+
* Version: 2.4.0
|
15 |
* Author: Team Plugins360
|
16 |
* Author URI: https://plugins360.com
|
17 |
* License: GPL-2.0+
|
76 |
|
77 |
// The current version of the plugin
|
78 |
if ( !defined( 'AIOVG_PLUGIN_VERSION' ) ) {
|
79 |
+
define( 'AIOVG_PLUGIN_VERSION', '2.4.0' );
|
80 |
}
|
81 |
// The unique identifier of the plugin
|
82 |
if ( !defined( 'AIOVG_PLUGIN_SLUG' ) ) {
|
blocks/blocks.php
CHANGED
@@ -433,6 +433,10 @@ class AIOVG_Blocks {
|
|
433 |
}
|
434 |
}
|
435 |
|
|
|
|
|
|
|
|
|
436 |
unset( $atts['src'] );
|
437 |
|
438 |
foreach ( $atts as $key => $value ) {
|
433 |
}
|
434 |
}
|
435 |
|
436 |
+
if ( defined( 'REST_REQUEST' ) && REST_REQUEST ) {
|
437 |
+
$atts['player'] = 'iframe';
|
438 |
+
}
|
439 |
+
|
440 |
unset( $atts['src'] );
|
441 |
|
442 |
foreach ( $atts as $key => $value ) {
|
freemius/assets/css/admin/account.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
label.fs-tag,span.fs-tag{background:#ffba00;color:#fff;display:inline-block;border-radius:3px;padding:5px;font-size:11px;line-height:11px;vertical-align:baseline}label.fs-tag.fs-warn,span.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-info,span.fs-tag.fs-info{background:#00a0d2}label.fs-tag.fs-success,span.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error,span.fs-tag.fs-error{background:#dc3232}#fs_account .postbox,#fs_account .widefat{max-width:
|
1 |
+
label.fs-tag,span.fs-tag{background:#ffba00;color:#fff;display:inline-block;border-radius:3px;padding:5px;font-size:11px;line-height:11px;vertical-align:baseline}label.fs-tag.fs-warn,span.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-info,span.fs-tag.fs-info{background:#00a0d2}label.fs-tag.fs-success,span.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error,span.fs-tag.fs-error{background:#dc3232}#fs_account .postbox,#fs_account .widefat{max-width:800px}#fs_account h3{font-size:1.3em;padding:12px 15px;margin:0 0 12px 0;line-height:1.4;border-bottom:1px solid #F1F1F1}#fs_account h3 .dashicons{width:26px;height:26px;font-size:1.3em}#fs_account i.dashicons{font-size:1.2em;height:1.2em;width:1.2em}#fs_account .dashicons{vertical-align:middle}#fs_account .fs-header-actions{position:absolute;top:17px;right:15px;font-size:0.9em}#fs_account .fs-header-actions ul{margin:0}#fs_account .fs-header-actions li{float:left}#fs_account .fs-header-actions li form{display:inline-block}#fs_account .fs-header-actions li a{text-decoration:none}#fs_account_details .button-group{float:right}.rtl #fs_account .fs-header-actions{left:15px;right:auto}.fs-key-value-table{width:100%}.fs-key-value-table form{display:inline-block}.fs-key-value-table tr td:first-child{text-align:right}.fs-key-value-table tr td:first-child nobr{font-weight:bold}.fs-key-value-table tr td:first-child form{display:block}.fs-key-value-table tr td.fs-right{text-align:right}.fs-key-value-table tr.fs-odd{background:#ebebeb}.fs-key-value-table td,.fs-key-value-table th{padding:10px}.fs-key-value-table code{line-height:28px}.fs-key-value-table var,.fs-key-value-table code,.fs-key-value-table input[type="text"]{color:#0073AA;font-size:16px;background:none}.fs-key-value-table input[type="text"]{width:100%;font-weight:bold}.fs-field-beta_program label{margin-left:7px}label.fs-tag{background:#ffba00;color:#fff;display:inline-block;border-radius:3px;padding:5px;font-size:11px;line-height:11px;vertical-align:baseline}label.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error{background:#dc3232}#fs_sites .fs-scrollable-table .fs-table-body{max-height:200px;overflow:auto;border:1px solid #e5e5e5}#fs_sites .fs-scrollable-table .fs-table-body>table.widefat{border:none !important}#fs_sites .fs-scrollable-table .fs-main-column{width:100%}#fs_sites .fs-scrollable-table .fs-site-details td:first-of-type{text-align:right;color:grey;width:1px}#fs_sites .fs-scrollable-table .fs-site-details td:last-of-type{text-align:right}#fs_sites .fs-scrollable-table .fs-install-details table tr td{width:1px;white-space:nowrap}#fs_sites .fs-scrollable-table .fs-install-details table tr td:last-of-type{width:auto}#fs_addons h3{border:none;margin-bottom:0;padding:4px 5px}#fs_addons td{vertical-align:middle}#fs_addons thead{white-space:nowrap}#fs_addons td:first-child,#fs_addons th:first-child{text-align:left;font-weight:bold}#fs_addons td:last-child,#fs_addons th:last-child{text-align:right}#fs_addons th{font-weight:bold}#fs_billing_address{width:100%}#fs_billing_address tr td{width:50%;padding:5px}#fs_billing_address tr:first-of-type td{padding-top:0}#fs_billing_address span{font-weight:bold}#fs_billing_address input,#fs_billing_address select{display:block;width:100%;margin-top:5px}#fs_billing_address input::-moz-placeholder,#fs_billing_address select::-moz-placeholder{color:transparent;opacity:1}#fs_billing_address input:-ms-input-placeholder,#fs_billing_address select:-ms-input-placeholder{color:transparent}#fs_billing_address input::-webkit-input-placeholder,#fs_billing_address select::-webkit-input-placeholder{color:transparent}#fs_billing_address input.fs-read-mode,#fs_billing_address select.fs-read-mode{border-color:transparent;color:#777;border-bottom:1px dashed #ccc;padding-left:0;background:none}#fs_billing_address.fs-read-mode td span{display:none}#fs_billing_address.fs-read-mode input,#fs_billing_address.fs-read-mode select{border-color:transparent;color:#777;border-bottom:1px dashed #ccc;padding-left:0;background:none}#fs_billing_address.fs-read-mode input::-moz-placeholder,#fs_billing_address.fs-read-mode select::-moz-placeholder{color:#ccc;opacity:1}#fs_billing_address.fs-read-mode input:-ms-input-placeholder,#fs_billing_address.fs-read-mode select:-ms-input-placeholder{color:#ccc}#fs_billing_address.fs-read-mode input::-webkit-input-placeholder,#fs_billing_address.fs-read-mode select::-webkit-input-placeholder{color:#ccc}#fs_billing_address button{display:block;width:100%}
|
freemius/assets/css/admin/common.css
CHANGED
@@ -1,2 +1,2 @@
|
|
1 |
-
.fs-badge{position:absolute;top:10px;right:0;background:#71ae00;color:white;text-transform:uppercase;padding:5px 10px;-moz-border-radius:3px 0 0 3px;-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;font-weight:bold;border-right:0;-moz-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);box-shadow:0 2px 1px -1px rgba(0,0,0,0.3)}.theme-browser .theme .fs-premium-theme-badge-container{position:absolute;right:0;top:0}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge{position:relative;top:0;margin-top:10px;text-align:center}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge.fs-premium-theme-badge{font-size:1.1em}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge.fs-beta-theme-badge{background:#00a0d2}#fs_frame{line-height:0;font-size:0}.fs-full-size-wrapper{margin:40px 0 -65px -20px}@media (max-width: 600px){.fs-full-size-wrapper{margin:0 0 -65px -10px}}
|
2 |
-
.fs-notice{position:relative}.fs-notice.fs-has-title{margin-bottom:30px !important}.fs-notice.success{color:green}.fs-notice.promotion{border-color:#00a0d2 !important;background-color:#f2fcff !important}.fs-notice .fs-notice-body{margin:.5em 0;padding:2px}.fs-notice .fs-close{cursor:pointer;color:#aaa;float:right}.fs-notice .fs-close:hover{color:#666}.fs-notice .fs-close>*{margin-top:7px;display:inline-block}.fs-notice label.fs-plugin-title{background:rgba(0,0,0,0.3);color:#fff;padding:2px 10px;position:absolute;top:100%;bottom:auto;right:auto;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;left:10px;font-size:12px;font-weight:bold;cursor:auto}div.fs-notice.updated,div.fs-notice.success,div.fs-notice.promotion{display:block !important}.rtl .fs-notice .fs-close{float:left}.fs-secure-notice{position:fixed;top:32px;left:160px;right:0;background:#ebfdeb;padding:10px 20px;color:green;z-index:9999;-moz-box-shadow:0 2px 2px rgba(6,113,6,0.3);-webkit-box-shadow:0 2px 2px rgba(6,113,6,0.3);box-shadow:0 2px 2px rgba(6,113,6,0.3);opacity:0.95;filter:alpha(opacity=95)}.fs-secure-notice:hover{opacity:1;filter:alpha(opacity=100)}.fs-secure-notice a.fs-security-proof{color:green;text-decoration:none}@media screen and (max-width: 960px){.fs-secure-notice{left:36px}}@media screen and (max-width: 600px){.fs-secure-notice{display:none}}@media screen and (max-width: 500px){#fs_promo_tab{display:none}}@media screen and (max-width: 782px){.fs-secure-notice{left:0;top:46px;text-align:center}}span.fs-submenu-item.fs-sub:before{content:'\21B3';padding:0 5px}.rtl span.fs-submenu-item.fs-sub:before{content:'\21B2'}.fs-submenu-item.pricing.upgrade-mode{color:greenyellow}.fs-submenu-item.pricing.trial-mode{color:#83e2ff}#adminmenu .update-plugins.fs-trial{background-color:#00b9eb}.fs-ajax-spinner{border:0;width:20px;height:20px;margin-right:5px;vertical-align:sub;display:inline-block;background:url("/wp-admin/images/wpspin_light-2x.gif");background-size:contain}.wrap.fs-section h2{text-align:left}.plugins p.fs-upgrade-notice{border:0;background-color:#d54e21;padding:10px;color:#f9f9f9;margin-top:10px}
|
1 |
+
.fs-badge{position:absolute;top:10px;right:0;background:#71ae00;color:white;text-transform:uppercase;padding:5px 10px;-moz-border-radius:3px 0 0 3px;-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;font-weight:bold;border-right:0;-moz-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);box-shadow:0 2px 1px -1px rgba(0,0,0,0.3)}.theme-browser .theme .fs-premium-theme-badge-container{position:absolute;right:0;top:0}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge{position:relative;top:0;margin-top:10px;text-align:center}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge.fs-premium-theme-badge{font-size:1.1em}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge.fs-beta-theme-badge{background:#00a0d2}.fs-switch{position:relative;display:inline-block;color:#ccc;text-shadow:0 1px 1px rgba(255,255,255,0.8);height:18px;padding:6px 6px 5px 6px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);background:#ececec;box-shadow:0 0 4px rgba(0,0,0,0.1),inset 0 1px 3px 0 rgba(0,0,0,0.1);cursor:pointer}.fs-switch span{display:inline-block;width:35px;text-transform:uppercase}.fs-switch .fs-toggle{position:absolute;top:1px;width:37px;height:25px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.3);border-radius:4px;background:#fff;background-color:#fff;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #ececec), color-stop(1, #fff));background-image:-webkit-linear-gradient(top, #ececec, #fff);background-image:-moz-linear-gradient(top, #ececec, #fff);background-image:-ms-linear-gradient(top, #ececec, #fff);background-image:-o-linear-gradient(top, #ececec, #fff);background-image:linear-gradient(top, bottom, #ececec, #fff);box-shadow:inset 0 1px 0 0 rgba(255,255,255,0.5);z-index:999;-moz-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);-o-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);-ms-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);-webkit-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1)}.fs-switch.fs-off .fs-toggle{left:2%}.fs-switch.fs-on .fs-toggle{left:54%}.fs-switch.fs-round{top:8px;padding:4px 25px;-moz-border-radius:24px;-webkit-border-radius:24px;border-radius:24px}.fs-switch.fs-round .fs-toggle{top:0;width:24px;height:24px;-moz-border-radius:24px;-webkit-border-radius:24px;border-radius:24px}.fs-switch.fs-round.fs-off .fs-toggle{left:-1px}.fs-switch.fs-round.fs-on{background:#0085ba}.fs-switch.fs-round.fs-on .fs-toggle{left:25px}.fs-switch.fs-small.fs-round{padding:1px 19px}.fs-switch.fs-small.fs-round .fs-toggle{top:0;width:18px;height:18px;-moz-border-radius:18px;-webkit-border-radius:18px;border-radius:18px}.fs-switch.fs-small.fs-round.fs-on .fs-toggle{left:19px}.fs-switch-feedback{margin-left:10px}.fs-switch-feedback.success{color:#71ae00}.rtl .fs-switch-feedback{margin-left:0;margin-right:10px}#fs_frame{line-height:0;font-size:0}.fs-full-size-wrapper{margin:40px 0 -65px -20px}@media (max-width: 600px){.fs-full-size-wrapper{margin:0 0 -65px -10px}}
|
2 |
+
.fs-notice{position:relative}.fs-notice.fs-has-title{margin-bottom:30px !important}.fs-notice.success{color:green}.fs-notice.promotion{border-color:#00a0d2 !important;background-color:#f2fcff !important}.fs-notice .fs-notice-body{margin:.5em 0;padding:2px}.fs-notice .fs-close{cursor:pointer;color:#aaa;float:right}.fs-notice .fs-close:hover{color:#666}.fs-notice .fs-close>*{margin-top:7px;display:inline-block}.fs-notice label.fs-plugin-title{background:rgba(0,0,0,0.3);color:#fff;padding:2px 10px;position:absolute;top:100%;bottom:auto;right:auto;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;left:10px;font-size:12px;font-weight:bold;cursor:auto}div.fs-notice.updated,div.fs-notice.success,div.fs-notice.promotion{display:block !important}.rtl .fs-notice .fs-close{float:left}.fs-secure-notice{position:fixed;top:32px;left:160px;right:0;background:#ebfdeb;padding:10px 20px;color:green;z-index:9999;-moz-box-shadow:0 2px 2px rgba(6,113,6,0.3);-webkit-box-shadow:0 2px 2px rgba(6,113,6,0.3);box-shadow:0 2px 2px rgba(6,113,6,0.3);opacity:0.95;filter:alpha(opacity=95)}.fs-secure-notice:hover{opacity:1;filter:alpha(opacity=100)}.fs-secure-notice a.fs-security-proof{color:green;text-decoration:none}@media screen and (max-width: 960px){.fs-secure-notice{left:36px}}@media screen and (max-width: 600px){.fs-secure-notice{display:none}}@media screen and (max-width: 500px){#fs_promo_tab{display:none}}@media screen and (max-width: 782px){.fs-secure-notice{left:0;top:46px;text-align:center}}span.fs-submenu-item.fs-sub:before{content:'\21B3';padding:0 5px}.rtl span.fs-submenu-item.fs-sub:before{content:'\21B2'}.fs-submenu-item.pricing.upgrade-mode{color:greenyellow}.fs-submenu-item.pricing.trial-mode{color:#83e2ff}#adminmenu .update-plugins.fs-trial{background-color:#00b9eb}.fs-ajax-spinner{border:0;width:20px;height:20px;margin-right:5px;vertical-align:sub;display:inline-block;background:url("/wp-admin/images/wpspin_light-2x.gif");background-size:contain;margin-bottom:-2px}.wrap.fs-section h2{text-align:left}.plugins p.fs-upgrade-notice{border:0;background-color:#d54e21;padding:10px;color:#f9f9f9;margin-top:10px}
|
freemius/assets/css/admin/connect.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
#fs_connect{width:480px;-moz-box-shadow:0px 1px 2px rgba(0,0,0,0.3);-webkit-box-shadow:0px 1px 2px rgba(0,0,0,0.3);box-shadow:0px 1px 2px rgba(0,0,0,0.3);margin:20px 0}@media screen and (max-width: 479px){#fs_connect{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;width:auto;margin:0 0 0 -10px}}#fs_connect .fs-content{background:#fff;padding:15px 20px}#fs_connect .fs-content .fs-error{background:snow;color:#d3135a;border:1px solid #d3135a;-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);text-align:center;padding:5px;margin-bottom:10px}#fs_connect .fs-content p{margin:0;padding:0;font-size:1.2em}#fs_connect .fs-license-key-container{position:relative;width:280px;margin:10px auto 0 auto}#fs_connect .fs-license-key-container input{width:100%}#fs_connect .fs-license-key-container .dashicons{position:absolute;top:5px;right:5px}#fs_connect.require-license-key .fs-sites-list-container td{cursor:pointer}#fs_connect #delegate_to_site_admins{margin-right:15px;float:right;height:26px;vertical-align:middle;line-height:37px;font-weight:bold;border-bottom:1px dashed;text-decoration:none}#fs_connect #delegate_to_site_admins.rtl{margin-left:15px;margin-right:0}#fs_connect .fs-actions{padding:10px 20px;background:#C0C7CA}#fs_connect .fs-actions .button{padding:0 10px 1px;line-height:35px;height:37px;font-size:16px;margin-bottom:0}#fs_connect .fs-actions .button .dashicons{font-size:37px;margin-left:-8px;margin-right:12px}#fs_connect .fs-actions .button.button-primary{padding-right:15px;padding-left:15px}#fs_connect .fs-actions .button.button-primary:after{content:' \279C'}#fs_connect .fs-actions .button.button-primary.fs-loading:after{content:''}#fs_connect .fs-actions .button.button-secondary{float:right}#fs_connect.fs-anonymous-disabled .fs-actions .button.button-primary{width:100%}#fs_connect .fs-permissions{padding:10px 20px;background:#FEFEFE;-moz-transition:background 0.5s ease;-o-transition:background 0.5s ease;-ms-transition:background 0.5s ease;-webkit-transition:background 0.5s ease;transition:background 0.5s ease}#fs_connect .fs-permissions .fs-license-sync-disclaimer{text-align:center;margin-top:0}#fs_connect .fs-permissions .fs-trigger{font-size:0.9em;text-decoration:none;text-align:center;display:block}#fs_connect .fs-permissions ul{height:0;overflow:hidden;margin:0}#fs_connect .fs-permissions ul li{margin-bottom:12px}#fs_connect .fs-permissions ul li:last-child{margin-bottom:0}#fs_connect .fs-permissions ul li i.dashicons{float:left;font-size:40px;width:40px;height:40px}#fs_connect .fs-permissions ul li
|
1 |
+
#fs_connect{width:480px;-moz-box-shadow:0px 1px 2px rgba(0,0,0,0.3);-webkit-box-shadow:0px 1px 2px rgba(0,0,0,0.3);box-shadow:0px 1px 2px rgba(0,0,0,0.3);margin:20px 0}@media screen and (max-width: 479px){#fs_connect{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;width:auto;margin:0 0 0 -10px}}#fs_connect .fs-content{background:#fff;padding:15px 20px}#fs_connect .fs-content .fs-error{background:snow;color:#d3135a;border:1px solid #d3135a;-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);text-align:center;padding:5px;margin-bottom:10px}#fs_connect .fs-content p{margin:0;padding:0;font-size:1.2em}#fs_connect .fs-license-key-container{position:relative;width:280px;margin:10px auto 0 auto}#fs_connect .fs-license-key-container input{width:100%}#fs_connect .fs-license-key-container .dashicons{position:absolute;top:5px;right:5px}#fs_connect.require-license-key .fs-sites-list-container td{cursor:pointer}#fs_connect #delegate_to_site_admins{margin-right:15px;float:right;height:26px;vertical-align:middle;line-height:37px;font-weight:bold;border-bottom:1px dashed;text-decoration:none}#fs_connect #delegate_to_site_admins.rtl{margin-left:15px;margin-right:0}#fs_connect .fs-actions{padding:10px 20px;background:#C0C7CA}#fs_connect .fs-actions .button{padding:0 10px 1px;line-height:35px;height:37px;font-size:16px;margin-bottom:0}#fs_connect .fs-actions .button .dashicons{font-size:37px;margin-left:-8px;margin-right:12px}#fs_connect .fs-actions .button.button-primary{padding-right:15px;padding-left:15px}#fs_connect .fs-actions .button.button-primary:after{content:' \279C'}#fs_connect .fs-actions .button.button-primary.fs-loading:after{content:''}#fs_connect .fs-actions .button.button-secondary{float:right}#fs_connect.fs-anonymous-disabled .fs-actions .button.button-primary{width:100%}#fs_connect .fs-permissions{padding:10px 20px;background:#FEFEFE;-moz-transition:background 0.5s ease;-o-transition:background 0.5s ease;-ms-transition:background 0.5s ease;-webkit-transition:background 0.5s ease;transition:background 0.5s ease}#fs_connect .fs-permissions .fs-license-sync-disclaimer{text-align:center;margin-top:0}#fs_connect .fs-permissions .fs-trigger{font-size:0.9em;text-decoration:none;text-align:center;display:block}#fs_connect .fs-permissions ul{height:0;overflow:hidden;margin:0}#fs_connect .fs-permissions ul li{margin-bottom:12px}#fs_connect .fs-permissions ul li:last-child{margin-bottom:0}#fs_connect .fs-permissions ul li i.dashicons{float:left;font-size:40px;width:40px;height:40px}#fs_connect .fs-permissions ul li .fs-switch{float:right}#fs_connect .fs-permissions ul li .fs-permission-description{margin-left:55px}#fs_connect .fs-permissions ul li .fs-permission-description span{font-weight:bold;text-transform:uppercase;color:#23282d}#fs_connect .fs-permissions ul li .fs-permission-description p{margin:2px 0 0 0}#fs_connect .fs-permissions.fs-open{background:#fff}#fs_connect .fs-permissions.fs-open ul{height:auto;margin:20px 20px 10px 20px}@media screen and (max-width: 479px){#fs_connect .fs-permissions{background:#fff}#fs_connect .fs-permissions .fs-trigger{display:none}#fs_connect .fs-permissions ul{height:auto;margin:20px}}#fs_connect .fs-freemium-licensing{padding:8px;background:#777;color:#fff}#fs_connect .fs-freemium-licensing p{text-align:center;display:block;margin:0;padding:0}#fs_connect .fs-freemium-licensing a{color:#C2EEFF;text-decoration:underline}#fs_connect .fs-visual{padding:12px;line-height:0;background:#fafafa;height:80px;position:relative}#fs_connect .fs-visual .fs-site-icon{position:absolute;left:20px;top:10px}#fs_connect .fs-visual .fs-connect-logo{position:absolute;right:20px;top:10px}#fs_connect .fs-visual .fs-plugin-icon{position:absolute;top:10px;left:50%;margin-left:-40px}#fs_connect .fs-visual .fs-plugin-icon,#fs_connect .fs-visual .fs-site-icon,#fs_connect .fs-visual img,#fs_connect .fs-visual object{width:80px;height:80px}#fs_connect .fs-visual .dashicons-wordpress{font-size:64px;background:#01749a;color:#fff;width:64px;height:64px;padding:8px}#fs_connect .fs-visual .dashicons-plus{position:absolute;top:50%;font-size:30px;margin-top:-10px;color:#bbb}#fs_connect .fs-visual .dashicons-plus.fs-first{left:28%}#fs_connect .fs-visual .dashicons-plus.fs-second{left:65%}#fs_connect .fs-visual .fs-plugin-icon,#fs_connect .fs-visual .fs-connect-logo,#fs_connect .fs-visual .fs-site-icon{border:1px solid #ccc;padding:1px;background:#fff}#fs_connect .fs-terms{text-align:center;font-size:0.85em;padding:5px;background:rgba(0,0,0,0.05)}#fs_connect .fs-terms,#fs_connect .fs-terms a{color:#999}#fs_connect .fs-terms a{text-decoration:none}.fs-multisite-options-container{margin-top:10px;border:1px solid #ccc;padding:5px}.fs-multisite-options-container a{text-decoration:none}.fs-multisite-options-container a:focus{box-shadow:none}.fs-multisite-options-container a.selected{font-weight:bold}.fs-multisite-options-container.fs-apply-on-all-sites{border:0 none;padding:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options{border-spacing:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options td:not(:first-child){display:none}.fs-multisite-options-container .fs-sites-list-container{display:none;overflow:auto}.fs-multisite-options-container .fs-sites-list-container table td{border-top:1px solid #ccc;padding:4px 2px}.fs-tooltip-trigger{position:relative}.fs-tooltip-trigger:not(a){cursor:help}.fs-tooltip-trigger .fs-tooltip{opacity:0;visibility:hidden;-moz-transition:opacity 0.3s ease-in-out;-o-transition:opacity 0.3s ease-in-out;-ms-transition:opacity 0.3s ease-in-out;-webkit-transition:opacity 0.3s ease-in-out;transition:opacity 0.3s ease-in-out;position:absolute;background:rgba(0,0,0,0.8);color:#fff;font-family:'arial', serif;font-size:12px;padding:10px;z-index:999999;bottom:100%;margin-bottom:5px;left:0;right:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-moz-box-shadow:1px 1px 1px rgba(0,0,0,0.2);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.2);box-shadow:1px 1px 1px rgba(0,0,0,0.2);line-height:1.3em;font-weight:bold;text-align:left}.rtl .fs-tooltip-trigger .fs-tooltip{text-align:right}.fs-tooltip-trigger .fs-tooltip::after{content:' ';display:block;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:rgba(0,0,0,0.8) transparent transparent transparent;position:absolute;top:100%;left:21px}.rtl .fs-tooltip-trigger .fs-tooltip::after{right:21px;left:auto}.fs-tooltip-trigger:hover .fs-tooltip{visibility:visible;opacity:1}#fs_marketing_optin{display:none;margin-top:10px;border:1px solid #ccc;padding:10px;line-height:1.5em}#fs_marketing_optin .fs-message{display:block;margin-bottom:5px;font-size:1.05em;font-weight:600}#fs_marketing_optin.error{border:1px solid #d3135a;background:#fee}#fs_marketing_optin.error .fs-message{color:#d3135a}#fs_marketing_optin .fs-input-container{margin-top:5px}#fs_marketing_optin .fs-input-container label{margin-top:5px;display:block}#fs_marketing_optin .fs-input-container label input{float:left;margin:1px 0 0 0}#fs_marketing_optin .fs-input-container label:first-child{display:block;margin-bottom:2px}#fs_marketing_optin .fs-input-label{display:block;margin-left:20px}#fs_marketing_optin .fs-input-label .underlined{text-decoration:underline}.rtl #fs_marketing_optin .fs-input-container label input{float:right}.rtl #fs_marketing_optin .fs-input-label{margin-left:0;margin-right:20px}.rtl #fs_connect .fs-actions{padding:10px 20px;background:#C0C7CA}.rtl #fs_connect .fs-actions .button .dashicons{font-size:37px;margin-left:-8px;margin-right:12px}.rtl #fs_connect .fs-actions .button.button-primary:after{content:' \000bb'}.rtl #fs_connect .fs-actions .button.button-primary.fs-loading:after{content:''}.rtl #fs_connect .fs-actions .button.button-secondary{float:left}.rtl #fs_connect .fs-permissions ul li .fs-permission-description{margin-right:55px;margin-left:0}.rtl #fs_connect .fs-permissions ul li .fs-switch{float:left}.rtl #fs_connect .fs-permissions ul li i.dashicons{float:right}.rtl #fs_connect .fs-visual .fs-site-icon{right:20px;left:auto}.rtl #fs_connect .fs-visual .fs-connect-logo{right:auto;left:20px}#fs_theme_connect_wrapper{position:fixed;top:0;height:100%;width:100%;z-index:99990;background:rgba(0,0,0,0.75);text-align:center;overflow-y:auto}#fs_theme_connect_wrapper:before{content:"";display:inline-block;vertical-align:middle;height:100%}#fs_theme_connect_wrapper>button.close{color:white;cursor:pointer;height:40px;width:40px;position:absolute;right:0;border:0;background-color:transparent;top:32px}#fs_theme_connect_wrapper #fs_connect{top:0;text-align:left;display:inline-block;vertical-align:middle;margin-top:52px;margin-bottom:20px}#fs_theme_connect_wrapper #fs_connect .fs-terms{background:rgba(140,140,140,0.64)}#fs_theme_connect_wrapper #fs_connect .fs-terms,#fs_theme_connect_wrapper #fs_connect .fs-terms a{color:#c5c5c5}.wp-pointer-content #fs_connect{margin:0;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.fs-opt-in-pointer .wp-pointer-content{padding:0}.fs-opt-in-pointer.wp-pointer-top .wp-pointer-arrow{border-bottom-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-top .wp-pointer-arrow-inner{border-bottom-color:#fafafa}.fs-opt-in-pointer.wp-pointer-bottom .wp-pointer-arrow{border-top-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-bottom .wp-pointer-arrow-inner{border-top-color:#fafafa}.fs-opt-in-pointer.wp-pointer-left .wp-pointer-arrow{border-right-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-left .wp-pointer-arrow-inner{border-right-color:#fafafa}.fs-opt-in-pointer.wp-pointer-right .wp-pointer-arrow{border-left-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-right .wp-pointer-arrow-inner{border-left-color:#fafafa}
|
freemius/assets/css/admin/debug.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.
|
1 |
+
.fs-switch-label{font-size:20px;line-height:31px;margin:0 5px}#fs_log_book table{font-family:Consolas,Monaco,monospace;font-size:12px}#fs_log_book table th{color:#ccc}#fs_log_book table tr{background:#232525}#fs_log_book table tr.alternate{background:#2b2b2b}#fs_log_book table tr td.fs-col--logger{color:#5a7435}#fs_log_book table tr td.fs-col--type{color:#ffc861}#fs_log_book table tr td.fs-col--function{color:#a7b7b1;font-weight:bold}#fs_log_book table tr td.fs-col--message,#fs_log_book table tr td.fs-col--message a{color:#9a73ac !important}#fs_log_book table tr td.fs-col--file{color:#d07922}#fs_log_book table tr td.fs-col--timestamp{color:#6596be}
|
freemius/assets/css/admin/dialog-boxes.css
CHANGED
@@ -1,2 +1,2 @@
|
|
1 |
-
.fs-modal{position:fixed;overflow:auto;height:100%;width:100%;top:0;z-index:100000;display:none;background:rgba(0,0,0,0.6)}.fs-modal .fs-modal-dialog{background:transparent;position:absolute;left:50%;margin-left:-298px;padding-bottom:30px;top:-100%;z-index:100001;width:596px}@media (max-width: 650px){.fs-modal .fs-modal-dialog{margin-left:-50%;box-sizing:border-box;padding-left:10px;padding-right:10px;width:100%}.fs-modal .fs-modal-dialog .fs-modal-panel>h3>strong{font-size:1.3em}}.fs-modal.active{display:block}.fs-modal.active:before{display:block}.fs-modal.active .fs-modal-dialog{top:10%}.fs-modal.fs-success .fs-modal-header{border-bottom-color:#46b450}.fs-modal.fs-success .fs-modal-body{background-color:#f7fff7}.fs-modal.fs-warn .fs-modal-header{border-bottom-color:#ffb900}.fs-modal.fs-warn .fs-modal-body{background-color:#fff8e5}.fs-modal.fs-error .fs-modal-header{border-bottom-color:#dc3232}.fs-modal.fs-error .fs-modal-body{background-color:#ffeaea}.fs-modal .fs-modal-body,.fs-modal .fs-modal-footer{border:0;background:#fefefe;padding:20px}.fs-modal .fs-modal-header{border-bottom:#eeeeee solid 1px;background:#fbfbfb;padding:15px 20px;position:relative;margin-bottom:-10px}.fs-modal .fs-modal-header h4{margin:0;padding:0;text-transform:uppercase;font-size:1.2em;font-weight:bold;color:#cacaca;text-shadow:1px 1px 1px #fff;letter-spacing:0.6px;-webkit-font-smoothing:antialiased}.fs-modal .fs-modal-header .fs-close{position:absolute;right:10px;top:12px;cursor:pointer;color:#bbb;-moz-border-radius:20px;-webkit-border-radius:20px;border-radius:20px;padding:3px;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;-ms-transition:all 0.2s ease-in-out;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.fs-modal .fs-modal-header .fs-close:hover{color:#fff;background:#aaa}.fs-modal .fs-modal-header .fs-close .dashicons,.fs-modal .fs-modal-header .fs-close:hover .dashicons{text-decoration:none}.fs-modal .fs-modal-body{border-bottom:0}.fs-modal .fs-modal-body p{font-size:14px}.fs-modal .fs-modal-body h2{font-size:20px;line-height:1.5em}.fs-modal .fs-modal-body>div{margin-top:10px}.fs-modal .fs-modal-body>div h2{font-weight:bold;font-size:20px;margin-top:0}.fs-modal .fs-modal-footer{border-top:#eeeeee solid 1px;text-align:right}.fs-modal .fs-modal-footer>.button{margin:0 7px}.fs-modal .fs-modal-footer>.button:first-child{margin:0}.fs-modal .fs-modal-panel>.notice.inline{margin:0;display:none}.fs-modal .fs-modal-panel:not(.active){display:none}.rtl .fs-modal .fs-modal-header .fs-close{right:auto;left:20px}body.has-fs-modal{overflow:hidden}.fs-modal.fs-modal-deactivation-feedback .reason-input,.fs-modal.fs-modal-deactivation-feedback .internal-message{margin:3px 0 3px 22px}.fs-modal.fs-modal-deactivation-feedback .reason-input input,.fs-modal.fs-modal-deactivation-feedback .reason-input textarea,.fs-modal.fs-modal-deactivation-feedback .internal-message input,.fs-modal.fs-modal-deactivation-feedback .internal-message textarea{width:100%}.fs-modal.fs-modal-deactivation-feedback li.reason.has-internal-message .internal-message{border:1px solid #ccc;padding:7px;display:none}@media (max-width: 650px){.fs-modal.fs-modal-deactivation-feedback li.reason li.reason{margin-bottom:10px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .reason-input,.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .internal-message{margin-left:29px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label{display:table}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label>span{display:table-cell;font-size:1.3em}}.fs-modal.fs-modal-deactivation-feedback .anonymous-feedback-label{float:left}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel{margin-top:0 !important}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel h3{margin-top:0;line-height:1.5em}#the-list .deactivate>.fs-slug{display:none}.fs-modal.fs-modal-subscription-cancellation .fs-price-increase-warning{color:red;font-weight:bold;padding:0 25px;margin-bottom:0}.fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label input{float:left;top:5px;position:relative}.rtl .fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label input{float:right}.fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label span{display:block;margin-left:24px}.rtl .fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label span{margin-left:0;margin-right:24px}.fs-modal.fs-modal-license-activation .fs-modal-body input.fs-license-key{width:100%}.fs-license-options-container table,.fs-license-options-container table select,.fs-license-options-container table .fs-available-license-key{width:100%}.fs-license-options-container table td:first-child{width:1%}.fs-license-options-container table .fs-other-license-key-container label{position:relative;top:6px;float:left;margin-right:5px}.fs-license-options-container table .fs-other-license-key-container div{overflow:hidden;width:auto;height:30px;display:block;top:2px;position:relative}.fs-license-options-container table .fs-other-license-key-container div input{margin:0}.fs-sites-list-container td{cursor:pointer}.fs-modal.fs-modal-developer-license-debug-mode .fs-modal-body input.fs-license-or-user-key{width:100%}.fs-multisite-options-container{margin-top:10px;border:1px solid #ccc;padding:5px}.fs-multisite-options-container a{text-decoration:none}.fs-multisite-options-container a:focus{box-shadow:none}.fs-multisite-options-container a.selected{font-weight:bold}.fs-multisite-options-container.fs-apply-on-all-sites{border:0 none;padding:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options{border-spacing:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options td:not(:first-child){display:none}.fs-multisite-options-container .fs-sites-list-container{display:none;overflow:auto}.fs-multisite-options-container .fs-sites-list-container table td{border-top:1px solid #ccc;padding:4px 2px}.fs-modal.fs-modal-license-key-resend .email-address-container{overflow:hidden;padding-right:2px}.fs-modal.fs-modal-license-key-resend.fs-freemium input.email-address{width:300px}.fs-modal.fs-modal-license-key-resend.fs-freemium label{display:block;margin-bottom:10px}.fs-modal.fs-modal-license-key-resend.fs-premium input.email-address{width:100%}.fs-modal.fs-modal-license-key-resend.fs-premium .button-container{float:right;margin-left:7px}@media (max-width: 650px){.fs-modal.fs-modal-license-key-resend.fs-premium .button-container{margin-top:2px}}
|
2 |
.rtl .fs-modal.fs-modal-license-key-resend .fs-modal-body .input-container>.email-address-container{padding-left:2px;padding-right:0}.rtl .fs-modal.fs-modal-license-key-resend .fs-modal-body .button-container{float:left;margin-right:7px;margin-left:0}a.show-license-resend-modal{margin-top:4px;display:inline-block}.fs-ajax-loader{position:relative;width:170px;height:20px;margin:auto}.fs-ajax-loader .fs-ajax-loader-bar{position:absolute;top:0;background-color:#0074a3;width:20px;height:20px;-webkit-animation-name:bounce_ajaxLoader;-moz-animation-name:bounce_ajaxLoader;-ms-animation-name:bounce_ajaxLoader;-o-animation-name:bounce_ajaxLoader;animation-name:bounce_ajaxLoader;-webkit-animation-duration:1.5s;-moz-animation-duration:1.5s;-ms-animation-duration:1.5s;-o-animation-duration:1.5s;animation-duration:1.5s;animation-iteration-count:infinite;-o-animation-iteration-count:infinite;-ms-animation-iteration-count:infinite;-webkit-animation-iteration-count:infinite;-moz-animation-iteration-count:infinite;-webkit-animation-direction:normal;-moz-animation-direction:normal;-ms-animation-direction:normal;-o-animation-direction:normal;animation-direction:normal;-moz-transform:0.3;-o-transform:0.3;-ms-transform:0.3;-webkit-transform:0.3;transform:0.3}.fs-ajax-loader .fs-ajax-loader-bar-1{left:0px;animation-delay:0.6s;-o-animation-delay:0.6s;-ms-animation-delay:0.6s;-webkit-animation-delay:0.6s;-moz-animation-delay:0.6s}.fs-ajax-loader .fs-ajax-loader-bar-2{left:19px;animation-delay:0.75s;-o-animation-delay:0.75s;-ms-animation-delay:0.75s;-webkit-animation-delay:0.75s;-moz-animation-delay:0.75s}.fs-ajax-loader .fs-ajax-loader-bar-3{left:38px;animation-delay:0.9s;-o-animation-delay:0.9s;-ms-animation-delay:0.9s;-webkit-animation-delay:0.9s;-moz-animation-delay:0.9s}.fs-ajax-loader .fs-ajax-loader-bar-4{left:57px;animation-delay:1.05s;-o-animation-delay:1.05s;-ms-animation-delay:1.05s;-webkit-animation-delay:1.05s;-moz-animation-delay:1.05s}.fs-ajax-loader .fs-ajax-loader-bar-5{left:76px;animation-delay:1.2s;-o-animation-delay:1.2s;-ms-animation-delay:1.2s;-webkit-animation-delay:1.2s;-moz-animation-delay:1.2s}.fs-ajax-loader .fs-ajax-loader-bar-6{left:95px;animation-delay:1.35s;-o-animation-delay:1.35s;-ms-animation-delay:1.35s;-webkit-animation-delay:1.35s;-moz-animation-delay:1.35s}.fs-ajax-loader .fs-ajax-loader-bar-7{left:114px;animation-delay:1.5s;-o-animation-delay:1.5s;-ms-animation-delay:1.5s;-webkit-animation-delay:1.5s;-moz-animation-delay:1.5s}.fs-ajax-loader .fs-ajax-loader-bar-8{left:133px;animation-delay:1.65s;-o-animation-delay:1.65s;-ms-animation-delay:1.65s;-webkit-animation-delay:1.65s;-moz-animation-delay:1.65s}@-moz-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@-ms-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@-o-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@-webkit-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}.fs-modal-auto-install #request-filesystem-credentials-form h2,.fs-modal-auto-install #request-filesystem-credentials-form .request-filesystem-credentials-action-buttons{display:none}.fs-modal-auto-install #request-filesystem-credentials-form input[type=password],.fs-modal-auto-install #request-filesystem-credentials-form input[type=email],.fs-modal-auto-install #request-filesystem-credentials-form input[type=text]{-webkit-appearance:none;padding:10px 10px 5px 10px;width:300px;max-width:100%}.fs-modal-auto-install #request-filesystem-credentials-form>div,.fs-modal-auto-install #request-filesystem-credentials-form label,.fs-modal-auto-install #request-filesystem-credentials-form fieldset{width:300px;max-width:100%;margin:0 auto;display:block}.button-primary.warn{box-shadow:0 1px 0 #d2593c;text-shadow:0 -1px 1px #d2593c,1px 0 1px #d2593c,0 1px 1px #d2593c,-1px 0 1px #d2593c;background:#f56a48;border-color:#ec6544 #d2593c #d2593c}.button-primary.warn:hover{background:#fd6d4a;border-color:#d2593c}.button-primary.warn:focus{box-shadow:0 1px 0 #dd6041,0 0 2px 1px #e4a796}.button-primary.warn:active{background:#dd6041;border-color:#d2593c;box-shadow:inset 0 2px 0 #d2593c}.button-primary.warn.disabled{color:#f5b3a1 !important;background:#e76444 !important;border-color:#d85e40 !important;text-shadow:0 -1px 0 rgba(0,0,0,0.1) !important}
|
1 |
+
.fs-modal{position:fixed;overflow:auto;height:100%;width:100%;top:0;z-index:100000;display:none;background:rgba(0,0,0,0.6)}.fs-modal .dashicons{vertical-align:middle}.fs-modal .fs-modal-dialog{background:transparent;position:absolute;left:50%;margin-left:-298px;padding-bottom:30px;top:-100%;z-index:100001;width:596px}@media (max-width: 650px){.fs-modal .fs-modal-dialog{margin-left:-50%;box-sizing:border-box;padding-left:10px;padding-right:10px;width:100%}.fs-modal .fs-modal-dialog .fs-modal-panel>h3>strong{font-size:1.3em}}.fs-modal.active{display:block}.fs-modal.active:before{display:block}.fs-modal.active .fs-modal-dialog{top:10%}.fs-modal.fs-success .fs-modal-header{border-bottom-color:#46b450}.fs-modal.fs-success .fs-modal-body{background-color:#f7fff7}.fs-modal.fs-warn .fs-modal-header{border-bottom-color:#ffb900}.fs-modal.fs-warn .fs-modal-body{background-color:#fff8e5}.fs-modal.fs-error .fs-modal-header{border-bottom-color:#dc3232}.fs-modal.fs-error .fs-modal-body{background-color:#ffeaea}.fs-modal .fs-modal-body,.fs-modal .fs-modal-footer{border:0;background:#fefefe;padding:20px}.fs-modal .fs-modal-header{border-bottom:#eeeeee solid 1px;background:#fbfbfb;padding:15px 20px;position:relative;margin-bottom:-10px}.fs-modal .fs-modal-header h4{margin:0;padding:0;text-transform:uppercase;font-size:1.2em;font-weight:bold;color:#cacaca;text-shadow:1px 1px 1px #fff;letter-spacing:0.6px;-webkit-font-smoothing:antialiased}.fs-modal .fs-modal-header .fs-close{position:absolute;right:10px;top:12px;cursor:pointer;color:#bbb;-moz-border-radius:20px;-webkit-border-radius:20px;border-radius:20px;padding:3px;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;-ms-transition:all 0.2s ease-in-out;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.fs-modal .fs-modal-header .fs-close:hover{color:#fff;background:#aaa}.fs-modal .fs-modal-header .fs-close .dashicons,.fs-modal .fs-modal-header .fs-close:hover .dashicons{text-decoration:none}.fs-modal .fs-modal-body{border-bottom:0}.fs-modal .fs-modal-body p{font-size:14px}.fs-modal .fs-modal-body h2{font-size:20px;line-height:1.5em}.fs-modal .fs-modal-body>div{margin-top:10px}.fs-modal .fs-modal-body>div h2{font-weight:bold;font-size:20px;margin-top:0}.fs-modal .fs-modal-footer{border-top:#eeeeee solid 1px;text-align:right}.fs-modal .fs-modal-footer>.button{margin:0 7px}.fs-modal .fs-modal-footer>.button:first-child{margin:0}.fs-modal .fs-modal-panel>.notice.inline{margin:0;display:none}.fs-modal .fs-modal-panel:not(.active){display:none}.rtl .fs-modal .fs-modal-header .fs-close{right:auto;left:20px}body.has-fs-modal{overflow:hidden}.fs-modal.fs-modal-deactivation-feedback .reason-input,.fs-modal.fs-modal-deactivation-feedback .internal-message{margin:3px 0 3px 22px}.fs-modal.fs-modal-deactivation-feedback .reason-input input,.fs-modal.fs-modal-deactivation-feedback .reason-input textarea,.fs-modal.fs-modal-deactivation-feedback .internal-message input,.fs-modal.fs-modal-deactivation-feedback .internal-message textarea{width:100%}.fs-modal.fs-modal-deactivation-feedback li.reason.has-internal-message .internal-message{border:1px solid #ccc;padding:7px;display:none}@media (max-width: 650px){.fs-modal.fs-modal-deactivation-feedback li.reason li.reason{margin-bottom:10px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .reason-input,.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .internal-message{margin-left:29px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label{display:table}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label>span{display:table-cell;font-size:1.3em}}.fs-modal.fs-modal-deactivation-feedback .anonymous-feedback-label{float:left}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel{margin-top:0 !important}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel h3{margin-top:0;line-height:1.5em}#the-list .deactivate>.fs-slug{display:none}.fs-modal.fs-modal-subscription-cancellation .fs-price-increase-warning{color:red;font-weight:bold;padding:0 25px;margin-bottom:0}.fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label input{float:left;top:5px;position:relative}.rtl .fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label input{float:right}.fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label span{display:block;margin-left:24px}.rtl .fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label span{margin-left:0;margin-right:24px}.fs-modal.fs-modal-license-activation .fs-modal-body input.fs-license-key{width:100%}.fs-license-options-container table,.fs-license-options-container table select,.fs-license-options-container table .fs-available-license-key{width:100%}.fs-license-options-container table td:first-child{width:1%}.fs-license-options-container table .fs-other-license-key-container label{position:relative;top:6px;float:left;margin-right:5px}.fs-license-options-container table .fs-other-license-key-container div{overflow:hidden;width:auto;height:30px;display:block;top:2px;position:relative}.fs-license-options-container table .fs-other-license-key-container div input{margin:0}.fs-sites-list-container td{cursor:pointer}.fs-modal.fs-modal-user-change .fs-modal-body input#fs_other_email_address{width:100%}.fs-user-change-options-container table{width:100%;border-collapse:collapse}.fs-user-change-options-container table tr{display:block;margin-bottom:2px}.fs-user-change-options-container table .fs-email-address-container td{display:inline-block}.fs-user-change-options-container table .fs-email-address-container input[type="radio"]{margin-bottom:0;margin-top:0}.fs-user-change-options-container table .fs-other-email-address-container{width:100%}.fs-user-change-options-container table .fs-other-email-address-container>div{display:table;width:100%}.fs-user-change-options-container table .fs-other-email-address-container>div label,.fs-user-change-options-container table .fs-other-email-address-container>div>div{display:table-cell}.fs-user-change-options-container table .fs-other-email-address-container>div label{width:1%;padding-left:3px;padding-right:3px}.fs-user-change-options-container table .fs-other-email-address-container>div>div{width:auto}.fs-user-change-options-container table .fs-other-email-address-container>div>div input{width:100%}.fs-modal.fs-modal-developer-license-debug-mode .fs-modal-body input.fs-license-or-user-key{width:100%}.fs-multisite-options-container{margin-top:10px;border:1px solid #ccc;padding:5px}.fs-multisite-options-container a{text-decoration:none}.fs-multisite-options-container a:focus{box-shadow:none}.fs-multisite-options-container a.selected{font-weight:bold}.fs-multisite-options-container.fs-apply-on-all-sites{border:0 none;padding:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options{border-spacing:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options td:not(:first-child){display:none}.fs-multisite-options-container .fs-sites-list-container{display:none;overflow:auto}.fs-multisite-options-container .fs-sites-list-container table td{border-top:1px solid #ccc;padding:4px 2px}.fs-modal.fs-modal-license-key-resend .email-address-container{overflow:hidden;padding-right:2px}.fs-modal.fs-modal-license-key-resend.fs-freemium input.email-address{width:300px}.fs-modal.fs-modal-license-key-resend.fs-freemium label{display:block;margin-bottom:10px}.fs-modal.fs-modal-license-key-resend.fs-premium input.email-address{width:100%}.fs-modal.fs-modal-license-key-resend.fs-premium .button-container{float:right;margin-left:7px}@media (max-width: 650px){.fs-modal.fs-modal-license-key-resend.fs-premium .button-container{margin-top:2px}}
|
2 |
.rtl .fs-modal.fs-modal-license-key-resend .fs-modal-body .input-container>.email-address-container{padding-left:2px;padding-right:0}.rtl .fs-modal.fs-modal-license-key-resend .fs-modal-body .button-container{float:left;margin-right:7px;margin-left:0}a.show-license-resend-modal{margin-top:4px;display:inline-block}.fs-ajax-loader{position:relative;width:170px;height:20px;margin:auto}.fs-ajax-loader .fs-ajax-loader-bar{position:absolute;top:0;background-color:#0074a3;width:20px;height:20px;-webkit-animation-name:bounce_ajaxLoader;-moz-animation-name:bounce_ajaxLoader;-ms-animation-name:bounce_ajaxLoader;-o-animation-name:bounce_ajaxLoader;animation-name:bounce_ajaxLoader;-webkit-animation-duration:1.5s;-moz-animation-duration:1.5s;-ms-animation-duration:1.5s;-o-animation-duration:1.5s;animation-duration:1.5s;animation-iteration-count:infinite;-o-animation-iteration-count:infinite;-ms-animation-iteration-count:infinite;-webkit-animation-iteration-count:infinite;-moz-animation-iteration-count:infinite;-webkit-animation-direction:normal;-moz-animation-direction:normal;-ms-animation-direction:normal;-o-animation-direction:normal;animation-direction:normal;-moz-transform:0.3;-o-transform:0.3;-ms-transform:0.3;-webkit-transform:0.3;transform:0.3}.fs-ajax-loader .fs-ajax-loader-bar-1{left:0px;animation-delay:0.6s;-o-animation-delay:0.6s;-ms-animation-delay:0.6s;-webkit-animation-delay:0.6s;-moz-animation-delay:0.6s}.fs-ajax-loader .fs-ajax-loader-bar-2{left:19px;animation-delay:0.75s;-o-animation-delay:0.75s;-ms-animation-delay:0.75s;-webkit-animation-delay:0.75s;-moz-animation-delay:0.75s}.fs-ajax-loader .fs-ajax-loader-bar-3{left:38px;animation-delay:0.9s;-o-animation-delay:0.9s;-ms-animation-delay:0.9s;-webkit-animation-delay:0.9s;-moz-animation-delay:0.9s}.fs-ajax-loader .fs-ajax-loader-bar-4{left:57px;animation-delay:1.05s;-o-animation-delay:1.05s;-ms-animation-delay:1.05s;-webkit-animation-delay:1.05s;-moz-animation-delay:1.05s}.fs-ajax-loader .fs-ajax-loader-bar-5{left:76px;animation-delay:1.2s;-o-animation-delay:1.2s;-ms-animation-delay:1.2s;-webkit-animation-delay:1.2s;-moz-animation-delay:1.2s}.fs-ajax-loader .fs-ajax-loader-bar-6{left:95px;animation-delay:1.35s;-o-animation-delay:1.35s;-ms-animation-delay:1.35s;-webkit-animation-delay:1.35s;-moz-animation-delay:1.35s}.fs-ajax-loader .fs-ajax-loader-bar-7{left:114px;animation-delay:1.5s;-o-animation-delay:1.5s;-ms-animation-delay:1.5s;-webkit-animation-delay:1.5s;-moz-animation-delay:1.5s}.fs-ajax-loader .fs-ajax-loader-bar-8{left:133px;animation-delay:1.65s;-o-animation-delay:1.65s;-ms-animation-delay:1.65s;-webkit-animation-delay:1.65s;-moz-animation-delay:1.65s}@-moz-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@-ms-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@-o-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@-webkit-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}.fs-modal-auto-install #request-filesystem-credentials-form h2,.fs-modal-auto-install #request-filesystem-credentials-form .request-filesystem-credentials-action-buttons{display:none}.fs-modal-auto-install #request-filesystem-credentials-form input[type=password],.fs-modal-auto-install #request-filesystem-credentials-form input[type=email],.fs-modal-auto-install #request-filesystem-credentials-form input[type=text]{-webkit-appearance:none;padding:10px 10px 5px 10px;width:300px;max-width:100%}.fs-modal-auto-install #request-filesystem-credentials-form>div,.fs-modal-auto-install #request-filesystem-credentials-form label,.fs-modal-auto-install #request-filesystem-credentials-form fieldset{width:300px;max-width:100%;margin:0 auto;display:block}.button-primary.warn{box-shadow:0 1px 0 #d2593c;text-shadow:0 -1px 1px #d2593c,1px 0 1px #d2593c,0 1px 1px #d2593c,-1px 0 1px #d2593c;background:#f56a48;border-color:#ec6544 #d2593c #d2593c}.button-primary.warn:hover{background:#fd6d4a;border-color:#d2593c}.button-primary.warn:focus{box-shadow:0 1px 0 #dd6041,0 0 2px 1px #e4a796}.button-primary.warn:active{background:#dd6041;border-color:#d2593c;box-shadow:inset 0 2px 0 #d2593c}.button-primary.warn.disabled{color:#f5b3a1 !important;background:#e76444 !important;border-color:#d85e40 !important;text-shadow:0 -1px 0 rgba(0,0,0,0.1) !important}
|
freemius/assets/img/all-in-one-video-gallery.png
DELETED
Binary file
|
freemius/includes/class-freemius.php
CHANGED
@@ -1639,6 +1639,7 @@
|
|
1639 |
add_action( 'admin_init', array( &$this, '_add_license_activation' ) );
|
1640 |
add_action( 'admin_init', array( &$this, '_add_premium_version_upgrade_selection' ) );
|
1641 |
add_action( 'admin_init', array( &$this, '_add_beta_mode_update_handler' ) );
|
|
|
1642 |
|
1643 |
$this->add_ajax_action( 'update_billing', array( &$this, '_update_billing_ajax_action' ) );
|
1644 |
$this->add_ajax_action( 'start_trial', array( &$this, '_start_trial_ajax_action' ) );
|
@@ -5407,6 +5408,62 @@
|
|
5407 |
}
|
5408 |
}
|
5409 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5410 |
/**
|
5411 |
* Parse plugin's settings (as defined by the plugin dev).
|
5412 |
*
|
@@ -5915,12 +5972,16 @@
|
|
5915 |
* @return Freemius[]
|
5916 |
*/
|
5917 |
function get_installed_addons() {
|
|
|
|
|
|
|
|
|
|
|
5918 |
$installed_addons = array();
|
|
|
5919 |
foreach ( self::$_instances as $instance ) {
|
5920 |
-
if ( $instance->
|
5921 |
-
|
5922 |
-
$installed_addons[] = $instance;
|
5923 |
-
}
|
5924 |
}
|
5925 |
}
|
5926 |
|
@@ -5970,7 +6031,25 @@
|
|
5970 |
* @return bool
|
5971 |
*/
|
5972 |
function is_addon() {
|
5973 |
-
return
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5974 |
}
|
5975 |
|
5976 |
/**
|
@@ -6727,6 +6806,8 @@
|
|
6727 |
} else {
|
6728 |
$this->sync_install();
|
6729 |
}
|
|
|
|
|
6730 |
}
|
6731 |
}
|
6732 |
}
|
@@ -6939,6 +7020,8 @@
|
|
6939 |
} else {
|
6940 |
$this->sync_install( array(), true );
|
6941 |
}
|
|
|
|
|
6942 |
}
|
6943 |
}
|
6944 |
|
@@ -8006,6 +8089,10 @@
|
|
8006 |
foreach ( $sites as $site ) {
|
8007 |
$blog_id = self::get_site_blog_id( $site );
|
8008 |
|
|
|
|
|
|
|
|
|
8009 |
$install_id = $this->_delete_site( true, $blog_id );
|
8010 |
|
8011 |
// Clear all storage data.
|
@@ -8783,26 +8870,28 @@
|
|
8783 |
$include_themes = true,
|
8784 |
$include_blog_data = true
|
8785 |
) {
|
8786 |
-
if (
|
8787 |
-
|
8788 |
-
|
8789 |
-
|
8790 |
-
|
8791 |
-
$
|
8792 |
-
|
8793 |
-
$
|
|
|
|
|
8794 |
}
|
8795 |
}
|
8796 |
-
}
|
8797 |
|
8798 |
-
|
8799 |
-
|
8800 |
-
|
8801 |
-
|
8802 |
-
|
8803 |
-
|
8804 |
-
|
8805 |
-
|
|
|
8806 |
}
|
8807 |
}
|
8808 |
}
|
@@ -9158,6 +9247,21 @@
|
|
9158 |
}
|
9159 |
}
|
9160 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9161 |
/**
|
9162 |
* Update install only if changed.
|
9163 |
*
|
@@ -9441,6 +9545,8 @@
|
|
9441 |
$fs = self::get_instance_by_file( $plugin_file );
|
9442 |
|
9443 |
if ( is_object( $fs ) ) {
|
|
|
|
|
9444 |
self::require_plugin_essentials();
|
9445 |
|
9446 |
if ( is_plugin_active( $fs->_free_plugin_basename ) ||
|
@@ -11322,7 +11428,22 @@
|
|
11322 |
|
11323 |
// Update current license.
|
11324 |
if ( is_object( $this->_license ) ) {
|
11325 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11326 |
}
|
11327 |
|
11328 |
return $this->_licenses;
|
@@ -11771,6 +11892,14 @@
|
|
11771 |
function _update_site_license( $new_license ) {
|
11772 |
$this->_logger->entrance();
|
11773 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11774 |
$this->set_license( $new_license );
|
11775 |
|
11776 |
if ( ! is_object( $new_license ) ) {
|
@@ -12219,7 +12348,7 @@
|
|
12219 |
}
|
12220 |
|
12221 |
$current_plan_order = - 1;
|
12222 |
-
$required_plan_order =
|
12223 |
for ( $i = 0, $len = count( $this->_plans ); $i < $len; $i ++ ) {
|
12224 |
if ( $plan === $this->_plans[ $i ]->name ) {
|
12225 |
$required_plan_order = $i;
|
@@ -12376,6 +12505,65 @@
|
|
12376 |
fs_require_template( 'forms/resend-key.php', $vars );
|
12377 |
}
|
12378 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12379 |
/**
|
12380 |
* @author Leo Fajardo (@leorw)
|
12381 |
* @since 2.3.1
|
@@ -12497,7 +12685,17 @@
|
|
12497 |
return;
|
12498 |
}
|
12499 |
|
12500 |
-
if (
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12501 |
// Only add license activation logic to the premium version, or in case of a serviceware plugin, also in the free version.
|
12502 |
return;
|
12503 |
}
|
@@ -12524,6 +12722,55 @@
|
|
12524 |
$this->add_ajax_action( 'resend_license_key', array( &$this, '_resend_license_key_ajax_action' ) );
|
12525 |
}
|
12526 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12527 |
/**
|
12528 |
* @author Leo Fajardo (@leorw)
|
12529 |
* @since 2.0.2
|
@@ -12629,7 +12876,9 @@
|
|
12629 |
array(),
|
12630 |
fs_request_get_bool( 'is_marketing_allowed', null ),
|
12631 |
fs_request_get( 'blog_id', null ),
|
12632 |
-
fs_request_get( 'module_id', null, 'post' )
|
|
|
|
|
12633 |
);
|
12634 |
|
12635 |
echo json_encode( $result );
|
@@ -12637,6 +12886,86 @@
|
|
12637 |
exit;
|
12638 |
}
|
12639 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12640 |
/**
|
12641 |
* A helper method to activate migrated licenses. If the product is network activated and integrated, the method will network activate the license.
|
12642 |
*
|
@@ -12689,6 +13018,7 @@
|
|
12689 |
* @param null|bool $is_marketing_allowed
|
12690 |
* @param null|int $blog_id
|
12691 |
* @param null|number $plugin_id
|
|
|
12692 |
*
|
12693 |
* @return array {
|
12694 |
* @var bool $success
|
@@ -12701,7 +13031,9 @@
|
|
12701 |
$sites = array(),
|
12702 |
$is_marketing_allowed = null,
|
12703 |
$blog_id = null,
|
12704 |
-
$plugin_id = null
|
|
|
|
|
12705 |
) {
|
12706 |
$this->_logger->entrance();
|
12707 |
|
@@ -12716,6 +13048,8 @@
|
|
12716 |
$this :
|
12717 |
$this->get_addon_instance( $plugin_id );
|
12718 |
|
|
|
|
|
12719 |
$error = false;
|
12720 |
$next_page = false;
|
12721 |
|
@@ -12789,6 +13123,22 @@
|
|
12789 |
'license_key' => $fs->apply_filters( 'license_key', $license_key )
|
12790 |
);
|
12791 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12792 |
$api = $fs->get_api_site_scope();
|
12793 |
|
12794 |
$install = $api->call( $fs->add_show_pending( '/' ), 'put', $params );
|
@@ -12799,6 +13149,14 @@
|
|
12799 |
var_export( $install->error, true );
|
12800 |
} else {
|
12801 |
$fs->reconnect_locally( $has_valid_blog_id );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12802 |
}
|
12803 |
} else /* ( $fs->is_addon() && $fs->get_parent_instance()->is_registered() ) */ {
|
12804 |
$result = $fs->activate_license_on_site( $user, $license_key );
|
@@ -12816,6 +13174,8 @@
|
|
12816 |
|
12817 |
$fs->_sync_license( true, $has_valid_blog_id );
|
12818 |
|
|
|
|
|
12819 |
$next_page = $fs->is_addon() ?
|
12820 |
$fs->get_parent_instance()->get_account_url() :
|
12821 |
$fs->get_account_url();
|
@@ -12922,6 +13282,64 @@
|
|
12922 |
return $result;
|
12923 |
}
|
12924 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12925 |
/**
|
12926 |
* @author Leo Fajardo (@leorw)
|
12927 |
* @since 1.2.3.1
|
@@ -15360,7 +15778,7 @@
|
|
15360 |
/**
|
15361 |
* This is a special fault tolerance mechanism to handle a scenario that the user data is missing.
|
15362 |
*/
|
15363 |
-
$user = $this->
|
15364 |
}
|
15365 |
|
15366 |
$this->_user = ( $user instanceof FS_User ) ?
|
@@ -15400,13 +15818,19 @@
|
|
15400 |
* @author Vova Feldman (@svovaf)
|
15401 |
* @since 2.0.0
|
15402 |
*
|
|
|
|
|
15403 |
* @return \FS_User|mixed
|
15404 |
*/
|
15405 |
-
private function
|
|
|
|
|
|
|
|
|
15406 |
$api = $this->get_api_site_scope();
|
15407 |
|
15408 |
$uid = $this->get_anonymous_id();
|
15409 |
-
$request_path = "/users/{$
|
15410 |
|
15411 |
$result = $api->get( $request_path, false, WP_FS__TIME_10_MIN_IN_SEC );
|
15412 |
|
@@ -15836,6 +16260,9 @@
|
|
15836 |
( isset( $decoded->is_marketing_allowed ) && ! is_null( $decoded->is_marketing_allowed ) ?
|
15837 |
$decoded->is_marketing_allowed :
|
15838 |
null ),
|
|
|
|
|
|
|
15839 |
$decoded->install_id,
|
15840 |
$decoded->install_public_key,
|
15841 |
$decoded->install_secret_key,
|
@@ -15849,6 +16276,9 @@
|
|
15849 |
( isset( $decoded->is_marketing_allowed ) && ! is_null( $decoded->is_marketing_allowed ) ?
|
15850 |
$decoded->is_marketing_allowed :
|
15851 |
null ),
|
|
|
|
|
|
|
15852 |
$decoded->installs,
|
15853 |
false
|
15854 |
);
|
@@ -16075,6 +16505,7 @@
|
|
16075 |
fs_request_get( 'user_public_key' ),
|
16076 |
fs_request_get( 'user_secret_key' ),
|
16077 |
fs_request_get_bool( 'is_marketing_allowed', null ),
|
|
|
16078 |
$pending_sites_info['blog_ids'],
|
16079 |
$pending_sites_info['license_key'],
|
16080 |
$pending_sites_info['trial_plan_id']
|
@@ -16085,6 +16516,7 @@
|
|
16085 |
fs_request_get( 'user_public_key' ),
|
16086 |
fs_request_get( 'user_secret_key' ),
|
16087 |
fs_request_get_bool( 'is_marketing_allowed', null ),
|
|
|
16088 |
fs_request_get( 'install_id' ),
|
16089 |
fs_request_get( 'install_public_key' ),
|
16090 |
fs_request_get( 'install_secret_key' ),
|
@@ -16140,13 +16572,12 @@
|
|
16140 |
* @param string $user_public_key
|
16141 |
* @param string $user_secret_key
|
16142 |
* @param bool|null $is_marketing_allowed
|
|
|
16143 |
* @param number $install_id
|
16144 |
* @param string $install_public_key
|
16145 |
* @param string $install_secret_key
|
16146 |
* @param bool $redirect
|
16147 |
-
* @param bool $auto_install
|
16148 |
-
* redirect (or return a URL) to the account page with a special parameter to
|
16149 |
-
* trigger the auto installation processes.
|
16150 |
*
|
16151 |
* @return string If redirect is `false`, returns the next page the user should be redirected to.
|
16152 |
*/
|
@@ -16155,6 +16586,7 @@
|
|
16155 |
$user_public_key,
|
16156 |
$user_secret_key,
|
16157 |
$is_marketing_allowed,
|
|
|
16158 |
$install_id,
|
16159 |
$install_public_key,
|
16160 |
$install_secret_key,
|
@@ -16196,6 +16628,10 @@
|
|
16196 |
$this->disable_opt_in_notice_and_lock_user();
|
16197 |
}
|
16198 |
|
|
|
|
|
|
|
|
|
16199 |
return $this->setup_account(
|
16200 |
$this->_user,
|
16201 |
$this->_site,
|
@@ -16214,6 +16650,7 @@
|
|
16214 |
* @param string $user_public_key
|
16215 |
* @param string $user_secret_key
|
16216 |
* @param bool|null $is_marketing_allowed
|
|
|
16217 |
* @param array $site_ids
|
16218 |
* @param bool $license_key
|
16219 |
* @param bool $trial_plan_id
|
@@ -16226,6 +16663,7 @@
|
|
16226 |
$user_public_key,
|
16227 |
$user_secret_key,
|
16228 |
$is_marketing_allowed,
|
|
|
16229 |
$site_ids,
|
16230 |
$license_key = false,
|
16231 |
$trial_plan_id = false,
|
@@ -16237,6 +16675,10 @@
|
|
16237 |
$this->disable_opt_in_notice_and_lock_user();
|
16238 |
}
|
16239 |
|
|
|
|
|
|
|
|
|
16240 |
$sites = array();
|
16241 |
foreach ( $site_ids as $site_id ) {
|
16242 |
$sites[] = $this->get_site_info( array( 'blog_id' => $site_id ) );
|
@@ -16255,11 +16697,10 @@
|
|
16255 |
* @param string $user_public_key
|
16256 |
* @param string $user_secret_key
|
16257 |
* @param bool|null $is_marketing_allowed
|
|
|
16258 |
* @param object[] $installs
|
16259 |
* @param bool $redirect
|
16260 |
-
* @param bool $auto_install
|
16261 |
-
* redirect (or return a URL) to the account page with a special parameter to
|
16262 |
-
* trigger the auto installation processes.
|
16263 |
*
|
16264 |
* @return string If redirect is `false`, returns the next page the user should be redirected to.
|
16265 |
*/
|
@@ -16268,6 +16709,7 @@
|
|
16268 |
$user_public_key,
|
16269 |
$user_secret_key,
|
16270 |
$is_marketing_allowed,
|
|
|
16271 |
array $installs,
|
16272 |
$redirect = true,
|
16273 |
$auto_install = false
|
@@ -16278,6 +16720,10 @@
|
|
16278 |
$this->disable_opt_in_notice_and_lock_user();
|
16279 |
}
|
16280 |
|
|
|
|
|
|
|
|
|
16281 |
$install_ids = array();
|
16282 |
|
16283 |
foreach ( $installs as $install ) {
|
@@ -16387,6 +16833,8 @@
|
|
16387 |
*/
|
16388 |
$license_key = fs_request_get( 'license_secret_key' );
|
16389 |
|
|
|
|
|
16390 |
$this->install_with_current_user( $license_key );
|
16391 |
}
|
16392 |
}
|
@@ -18100,23 +18548,27 @@
|
|
18100 |
|
18101 |
$sites = self::get_all_sites( $this->_module_type, $network_level_or_blog_id );
|
18102 |
|
18103 |
-
$
|
|
|
18104 |
|
18105 |
-
|
18106 |
-
|
18107 |
-
|
18108 |
-
|
18109 |
-
|
18110 |
-
|
18111 |
-
|
18112 |
-
|
18113 |
-
|
18114 |
-
|
18115 |
-
|
18116 |
-
|
18117 |
-
|
18118 |
-
|
18119 |
-
|
|
|
|
|
|
|
18120 |
}
|
18121 |
|
18122 |
$sites[ $this->_slug ] = $site_clone;
|
@@ -19948,7 +20400,11 @@
|
|
19948 |
|
19949 |
if ( $show_notice ) {
|
19950 |
$this->_admin_notices->add(
|
19951 |
-
sprintf( $this->
|
|
|
|
|
|
|
|
|
19952 |
$this->get_text_inline( 'O.K', 'ok' )
|
19953 |
);
|
19954 |
}
|
@@ -20755,6 +21211,39 @@
|
|
20755 |
return true;
|
20756 |
}
|
20757 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20758 |
/**
|
20759 |
* Handle user name update.
|
20760 |
*
|
@@ -20923,8 +21412,9 @@
|
|
20923 |
// Alias.
|
20924 |
$oops_text = $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...';
|
20925 |
|
20926 |
-
$is_network_action
|
20927 |
-
$blog_id
|
|
|
20928 |
|
20929 |
if ( is_numeric( $blog_id ) ) {
|
20930 |
$this->switch_to_blog( $blog_id );
|
@@ -20936,7 +21426,7 @@
|
|
20936 |
case 'opt_in':
|
20937 |
check_admin_referer( trim( "{$action}:{$blog_id}:{$install_id}", ':' ) );
|
20938 |
|
20939 |
-
if ( $
|
20940 |
if ( $is_network_action && ! empty( $blog_id ) ) {
|
20941 |
if ( ! $this->is_registered() ) {
|
20942 |
$this->install_with_user(
|
@@ -20959,7 +21449,7 @@
|
|
20959 |
case 'toggle_tracking':
|
20960 |
check_admin_referer( trim( "{$action}:{$blog_id}:{$install_id}", ':' ) );
|
20961 |
|
20962 |
-
if ( $
|
20963 |
if ( $is_network_action && ! empty( $blog_id ) ) {
|
20964 |
if ( $this->is_registered() ) {
|
20965 |
if ( $this->is_tracking_prohibited() ) {
|
@@ -20994,8 +21484,20 @@
|
|
20994 |
case 'delete_account':
|
20995 |
check_admin_referer( trim( "{$action}:{$blog_id}:{$install_id}", ':' ) );
|
20996 |
|
20997 |
-
|
20998 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20999 |
$this->delete_network_account_event();
|
21000 |
} else {
|
21001 |
$this->delete_account_event();
|
@@ -21011,7 +21513,12 @@
|
|
21011 |
} else {
|
21012 |
if ( $this->is_addon_activated( $plugin_id ) ) {
|
21013 |
$fs_addon = self::get_instance_by_id( $plugin_id );
|
21014 |
-
|
|
|
|
|
|
|
|
|
|
|
21015 |
|
21016 |
fs_redirect( $this->_get_admin_page_url( 'account' ) );
|
21017 |
}
|
@@ -22154,9 +22661,18 @@
|
|
22154 |
|
22155 |
$this->_logger->entrance();
|
22156 |
|
22157 |
-
|
|
|
|
|
|
|
|
|
22158 |
// Don't add opt-in/out for premium code base.
|
22159 |
return;
|
|
|
|
|
|
|
|
|
|
|
22160 |
}
|
22161 |
|
22162 |
if ( fs_is_network_admin() ) {
|
@@ -22209,6 +22725,10 @@
|
|
22209 |
return;
|
22210 |
}
|
22211 |
|
|
|
|
|
|
|
|
|
22212 |
$link_text_id = '';
|
22213 |
$url = '#';
|
22214 |
|
@@ -23863,10 +24383,45 @@
|
|
23863 |
*
|
23864 |
* @author Vova Feldman (@svovaf)
|
23865 |
*/
|
23866 |
-
self::shoot_ajax_success( array(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23867 |
}
|
23868 |
|
23869 |
-
|
23870 |
}
|
23871 |
|
23872 |
/**
|
1639 |
add_action( 'admin_init', array( &$this, '_add_license_activation' ) );
|
1640 |
add_action( 'admin_init', array( &$this, '_add_premium_version_upgrade_selection' ) );
|
1641 |
add_action( 'admin_init', array( &$this, '_add_beta_mode_update_handler' ) );
|
1642 |
+
add_action( 'admin_init', array( &$this, '_add_user_change_option' ) );
|
1643 |
|
1644 |
$this->add_ajax_action( 'update_billing', array( &$this, '_update_billing_ajax_action' ) );
|
1645 |
$this->add_ajax_action( 'start_trial', array( &$this, '_start_trial_ajax_action' ) );
|
5408 |
}
|
5409 |
}
|
5410 |
|
5411 |
+
/**
|
5412 |
+
* @author Vova Feldman (@svovaf)
|
5413 |
+
* @since 2.3.2
|
5414 |
+
*
|
5415 |
+
* @return bool
|
5416 |
+
*/
|
5417 |
+
function is_extensions_tracking_allowed() {
|
5418 |
+
return (true === $this->_storage->get( 'is_extensions_tracking_allowed', true ) );
|
5419 |
+
}
|
5420 |
+
|
5421 |
+
/**
|
5422 |
+
* @author Vova Feldman (@svovaf)
|
5423 |
+
* @since 2.3.2
|
5424 |
+
*/
|
5425 |
+
function _update_tracking_permission_callback() {
|
5426 |
+
$this->_logger->entrance();
|
5427 |
+
|
5428 |
+
$this->check_ajax_referer( 'update_tracking_permission' );
|
5429 |
+
|
5430 |
+
$is_enabled = fs_request_get_bool( 'is_enabled', null );
|
5431 |
+
|
5432 |
+
if ( ! is_bool( $is_enabled ) ) {
|
5433 |
+
self::shoot_ajax_failure();
|
5434 |
+
}
|
5435 |
+
|
5436 |
+
$permission = fs_request_get( 'permission' );
|
5437 |
+
|
5438 |
+
switch ( $permission ) {
|
5439 |
+
case 'extensions':
|
5440 |
+
$this->update_extensions_tracking_flag( $is_enabled );
|
5441 |
+
break;
|
5442 |
+
default:
|
5443 |
+
$permission = 'no_match';
|
5444 |
+
}
|
5445 |
+
|
5446 |
+
if ( 'no_match' === $permission ) {
|
5447 |
+
self::shoot_ajax_failure();
|
5448 |
+
}
|
5449 |
+
|
5450 |
+
self::shoot_ajax_success( array(
|
5451 |
+
'permissions' => array(
|
5452 |
+
$permission => $is_enabled,
|
5453 |
+
)
|
5454 |
+
) );
|
5455 |
+
}
|
5456 |
+
|
5457 |
+
/**
|
5458 |
+
* @author Leo Fajardo (@leorw)
|
5459 |
+
* @since 2.3.2
|
5460 |
+
*
|
5461 |
+
* @param bool $is_enabled
|
5462 |
+
*/
|
5463 |
+
private function update_extensions_tracking_flag( $is_enabled ) {
|
5464 |
+
$this->_storage->store( 'is_extensions_tracking_allowed', $is_enabled );
|
5465 |
+
}
|
5466 |
+
|
5467 |
/**
|
5468 |
* Parse plugin's settings (as defined by the plugin dev).
|
5469 |
*
|
5972 |
* @return Freemius[]
|
5973 |
*/
|
5974 |
function get_installed_addons() {
|
5975 |
+
if ( $this->is_addon() ) {
|
5976 |
+
// Add-on cannot have add-ons.
|
5977 |
+
return array();
|
5978 |
+
}
|
5979 |
+
|
5980 |
$installed_addons = array();
|
5981 |
+
|
5982 |
foreach ( self::$_instances as $instance ) {
|
5983 |
+
if ( $instance->is_addon_of( $this->_plugin->id ) ) {
|
5984 |
+
$installed_addons[] = $instance;
|
|
|
|
|
5985 |
}
|
5986 |
}
|
5987 |
|
6031 |
* @return bool
|
6032 |
*/
|
6033 |
function is_addon() {
|
6034 |
+
return (
|
6035 |
+
isset( $this->_plugin->parent_plugin_id ) &&
|
6036 |
+
is_numeric( $this->_plugin->parent_plugin_id )
|
6037 |
+
);
|
6038 |
+
}
|
6039 |
+
|
6040 |
+
/**
|
6041 |
+
* @author Vova Feldman (@svovaf)
|
6042 |
+
* @since 2.3.2
|
6043 |
+
*
|
6044 |
+
* @param number $parent_product_id
|
6045 |
+
*
|
6046 |
+
* @return bool
|
6047 |
+
*/
|
6048 |
+
function is_addon_of( $parent_product_id ) {
|
6049 |
+
return (
|
6050 |
+
$this->is_addon() &&
|
6051 |
+
$parent_product_id == $this->_plugin->parent_plugin_id
|
6052 |
+
);
|
6053 |
}
|
6054 |
|
6055 |
/**
|
6806 |
} else {
|
6807 |
$this->sync_install();
|
6808 |
}
|
6809 |
+
|
6810 |
+
$this->maybe_sync_install_user();
|
6811 |
}
|
6812 |
}
|
6813 |
}
|
7020 |
} else {
|
7021 |
$this->sync_install( array(), true );
|
7022 |
}
|
7023 |
+
|
7024 |
+
$this->maybe_sync_install_user();
|
7025 |
}
|
7026 |
}
|
7027 |
|
8089 |
foreach ( $sites as $site ) {
|
8090 |
$blog_id = self::get_site_blog_id( $site );
|
8091 |
|
8092 |
+
if ( $this->is_site_delegated_connection( $blog_id ) ) {
|
8093 |
+
continue;
|
8094 |
+
}
|
8095 |
+
|
8096 |
$install_id = $this->_delete_site( true, $blog_id );
|
8097 |
|
8098 |
// Clear all storage data.
|
8870 |
$include_themes = true,
|
8871 |
$include_blog_data = true
|
8872 |
) {
|
8873 |
+
if ( $this->is_extensions_tracking_allowed() ) {
|
8874 |
+
if ( ! defined( 'WP_FS__TRACK_PLUGINS' ) || false !== WP_FS__TRACK_PLUGINS ) {
|
8875 |
+
/**
|
8876 |
+
* @since 1.1.8 Also send plugin updates.
|
8877 |
+
*/
|
8878 |
+
if ( $include_plugins && ! isset( $override['plugins'] ) ) {
|
8879 |
+
$plugins = $this->get_plugins_data_for_api();
|
8880 |
+
if ( ! empty( $plugins ) ) {
|
8881 |
+
$override['plugins'] = $plugins;
|
8882 |
+
}
|
8883 |
}
|
8884 |
}
|
|
|
8885 |
|
8886 |
+
if ( ! defined( 'WP_FS__TRACK_THEMES' ) || false !== WP_FS__TRACK_THEMES ) {
|
8887 |
+
/**
|
8888 |
+
* @since 1.1.8 Also send themes updates.
|
8889 |
+
*/
|
8890 |
+
if ( $include_themes && ! isset( $override['themes'] ) ) {
|
8891 |
+
$themes = $this->get_themes_data_for_api();
|
8892 |
+
if ( ! empty( $themes ) ) {
|
8893 |
+
$override['themes'] = $themes;
|
8894 |
+
}
|
8895 |
}
|
8896 |
}
|
8897 |
}
|
9247 |
}
|
9248 |
}
|
9249 |
|
9250 |
+
/**
|
9251 |
+
* Syncs the install owner's data if needed (i.e., if the install owner is different from the loaded user).
|
9252 |
+
*
|
9253 |
+
* @author Leo Fajardo (@leorw)
|
9254 |
+
* @since 2.3.2
|
9255 |
+
*/
|
9256 |
+
private function maybe_sync_install_user() {
|
9257 |
+
if ( $this->_user->id == $this->_site->user_id ) {
|
9258 |
+
return;
|
9259 |
+
}
|
9260 |
+
|
9261 |
+
// Fetch user data and store if found.
|
9262 |
+
$this->sync_user_by_current_install();
|
9263 |
+
}
|
9264 |
+
|
9265 |
/**
|
9266 |
* Update install only if changed.
|
9267 |
*
|
9545 |
$fs = self::get_instance_by_file( $plugin_file );
|
9546 |
|
9547 |
if ( is_object( $fs ) ) {
|
9548 |
+
$fs->remove_sdk_reference();
|
9549 |
+
|
9550 |
self::require_plugin_essentials();
|
9551 |
|
9552 |
if ( is_plugin_active( $fs->_free_plugin_basename ) ||
|
11428 |
|
11429 |
// Update current license.
|
11430 |
if ( is_object( $this->_license ) ) {
|
11431 |
+
$license = $this->_get_license_by_id( $this->_license->id );
|
11432 |
+
|
11433 |
+
if ( is_object( $license ) ) {
|
11434 |
+
/**
|
11435 |
+
* `$license` can be `false` in case a user change action has just been completed and this method
|
11436 |
+
* has synced the `$this->_licenses` collection for the new user. In this case, the
|
11437 |
+
* `$this->_licenses` collection may have only the newly activated license that is associated with
|
11438 |
+
* the new user. `set_license` will eventually be called in the same request by the logic that
|
11439 |
+
* follows outside this method which will detect that the install's license has been updated, and
|
11440 |
+
* then `_update_site_license` will be called which in turn will call `set_license`.
|
11441 |
+
*
|
11442 |
+
* @author Leo Fajardo (@leorw)
|
11443 |
+
* @since 2.3.2
|
11444 |
+
*/
|
11445 |
+
$this->set_license( $license );
|
11446 |
+
}
|
11447 |
}
|
11448 |
|
11449 |
return $this->_licenses;
|
11892 |
function _update_site_license( $new_license ) {
|
11893 |
$this->_logger->entrance();
|
11894 |
|
11895 |
+
/**
|
11896 |
+
* In case this call will be removed in the future, the `_sync_licenses()` method needs to be updated
|
11897 |
+
* accordingly so that it will also handle the case when an ownership change is done via license
|
11898 |
+
* activation.
|
11899 |
+
*
|
11900 |
+
* @author Leo Fajardo (@leorw)
|
11901 |
+
* @since 2.3.2
|
11902 |
+
*/
|
11903 |
$this->set_license( $new_license );
|
11904 |
|
11905 |
if ( ! is_object( $new_license ) ) {
|
12348 |
}
|
12349 |
|
12350 |
$current_plan_order = - 1;
|
12351 |
+
$required_plan_order = PHP_INT_MAX;
|
12352 |
for ( $i = 0, $len = count( $this->_plans ); $i < $len; $i ++ ) {
|
12353 |
if ( $plan === $this->_plans[ $i ]->name ) {
|
12354 |
$required_plan_order = $i;
|
12505 |
fs_require_template( 'forms/resend-key.php', $vars );
|
12506 |
}
|
12507 |
|
12508 |
+
/**
|
12509 |
+
* Returns a collection of IDs of installs that are associated with the context product and its add-ons, and activated with foreign licenses.
|
12510 |
+
*
|
12511 |
+
* @author Leo Fajardo (@leorw)
|
12512 |
+
* @since 2.3.2
|
12513 |
+
*
|
12514 |
+
* @return number[]
|
12515 |
+
*/
|
12516 |
+
function get_installs_ids_with_foreign_licenses() {
|
12517 |
+
$installs = array();
|
12518 |
+
|
12519 |
+
if (
|
12520 |
+
is_object( $this->_license ) &&
|
12521 |
+
$this->_site->user_id != $this->_license->user_id
|
12522 |
+
) {
|
12523 |
+
$installs[] = $this->_site->id;
|
12524 |
+
}
|
12525 |
+
|
12526 |
+
/**
|
12527 |
+
* Also try to get foreign licenses for the context product's add-ons.
|
12528 |
+
*/
|
12529 |
+
$installs_by_slug_map = $this->get_parent_and_addons_installs_info();
|
12530 |
+
|
12531 |
+
foreach ( $installs_by_slug_map as $slug => $install_info ) {
|
12532 |
+
if ( $slug == $this->get_slug() ) {
|
12533 |
+
continue;
|
12534 |
+
}
|
12535 |
+
|
12536 |
+
$install = $install_info['install'];
|
12537 |
+
$license = $install_info['license'];
|
12538 |
+
|
12539 |
+
if (
|
12540 |
+
is_object( $license ) &&
|
12541 |
+
$install->user_id != $license->user_id
|
12542 |
+
) {
|
12543 |
+
$installs[] = $install->id;
|
12544 |
+
}
|
12545 |
+
}
|
12546 |
+
|
12547 |
+
return $installs;
|
12548 |
+
}
|
12549 |
+
|
12550 |
+
/**
|
12551 |
+
* Displays the "Change User" dialog box when the user clicks on the "Change User" button on the "Account" page.
|
12552 |
+
*
|
12553 |
+
* @author Leo Fajardo (@leorw)
|
12554 |
+
* @since 2.3.2
|
12555 |
+
*
|
12556 |
+
* @param number[] $install_ids
|
12557 |
+
*/
|
12558 |
+
function _add_user_change_dialog_box( $install_ids ) {
|
12559 |
+
$vars = array(
|
12560 |
+
'id' => $this->_module_id,
|
12561 |
+
'license_owners' => $this->fetch_installs_licenses_owners_data( $install_ids )
|
12562 |
+
);
|
12563 |
+
|
12564 |
+
fs_require_template( 'forms/user-change.php', $vars );
|
12565 |
+
}
|
12566 |
+
|
12567 |
/**
|
12568 |
* @author Leo Fajardo (@leorw)
|
12569 |
* @since 2.3.1
|
12685 |
return;
|
12686 |
}
|
12687 |
|
12688 |
+
if (
|
12689 |
+
$this->has_premium_version() &&
|
12690 |
+
! $this->is_premium() &&
|
12691 |
+
/**
|
12692 |
+
* Also handle the case when an upgrade was made using the free version.
|
12693 |
+
*
|
12694 |
+
* @author Leo Fajardo (@leorw)
|
12695 |
+
* @since 2.3.2
|
12696 |
+
*/
|
12697 |
+
! is_object( $this->_get_license() )
|
12698 |
+
) {
|
12699 |
// Only add license activation logic to the premium version, or in case of a serviceware plugin, also in the free version.
|
12700 |
return;
|
12701 |
}
|
12722 |
$this->add_ajax_action( 'resend_license_key', array( &$this, '_resend_license_key_ajax_action' ) );
|
12723 |
}
|
12724 |
|
12725 |
+
/**
|
12726 |
+
* Prepares page to include all required UI and logic for the "Change User" dialog.
|
12727 |
+
*
|
12728 |
+
* @author Leo Fajardo (@leorw)
|
12729 |
+
* @since 2.3.2
|
12730 |
+
*/
|
12731 |
+
function _add_user_change_option() {
|
12732 |
+
if ( ! $this->should_handle_user_change() ) {
|
12733 |
+
return;
|
12734 |
+
}
|
12735 |
+
|
12736 |
+
if ( empty( $this->get_installs_ids_with_foreign_licenses() ) ) {
|
12737 |
+
// Handle user change only when the parent product or one of its add-ons is activated with a foreign license.
|
12738 |
+
return;
|
12739 |
+
}
|
12740 |
+
|
12741 |
+
// Add user change AJAX handler.
|
12742 |
+
$this->add_ajax_action( 'change_user', array( &$this, '_user_change_ajax_action' ) );
|
12743 |
+
}
|
12744 |
+
|
12745 |
+
/**
|
12746 |
+
* @author Leo Fajardo (@leorw)
|
12747 |
+
* @since 2.3.2
|
12748 |
+
*/
|
12749 |
+
function should_handle_user_change() {
|
12750 |
+
if ( ! $this->is_user_admin() ) {
|
12751 |
+
// Only admins can change user.
|
12752 |
+
return false;
|
12753 |
+
}
|
12754 |
+
|
12755 |
+
if ( $this->is_addon() ) {
|
12756 |
+
return false;
|
12757 |
+
}
|
12758 |
+
|
12759 |
+
if ( ! $this->is_registered() ) {
|
12760 |
+
return false;
|
12761 |
+
}
|
12762 |
+
|
12763 |
+
if (
|
12764 |
+
$this->is_network_active() &&
|
12765 |
+
( fs_is_network_admin() || ! $this->is_site_delegated_connection() )
|
12766 |
+
) {
|
12767 |
+
// Handle only on site-level "Account" section for now.
|
12768 |
+
return false;
|
12769 |
+
}
|
12770 |
+
|
12771 |
+
return true;
|
12772 |
+
}
|
12773 |
+
|
12774 |
/**
|
12775 |
* @author Leo Fajardo (@leorw)
|
12776 |
* @since 2.0.2
|
12876 |
array(),
|
12877 |
fs_request_get_bool( 'is_marketing_allowed', null ),
|
12878 |
fs_request_get( 'blog_id', null ),
|
12879 |
+
fs_request_get( 'module_id', null, 'post' ),
|
12880 |
+
fs_request_get( 'user_id', null ),
|
12881 |
+
fs_request_get_bool( 'is_extensions_tracking_allowed', true )
|
12882 |
);
|
12883 |
|
12884 |
echo json_encode( $result );
|
12886 |
exit;
|
12887 |
}
|
12888 |
|
12889 |
+
/**
|
12890 |
+
* User change WP AJAX handler.
|
12891 |
+
*
|
12892 |
+
* @author Leo Fajardo (@leorw)
|
12893 |
+
* @since 2.3.2
|
12894 |
+
*/
|
12895 |
+
function _user_change_ajax_action() {
|
12896 |
+
$this->_logger->entrance();
|
12897 |
+
|
12898 |
+
$this->check_ajax_referer( 'change_user' );
|
12899 |
+
|
12900 |
+
$new_email_address = trim( fs_request_get( 'email_address', '' ) );
|
12901 |
+
$new_user_id = fs_request_get( 'user_id' );
|
12902 |
+
|
12903 |
+
if ( empty( $new_email_address ) && ! FS_User::is_valid_id( $new_user_id ) ) {
|
12904 |
+
self::shoot_ajax_failure( fs_text_inline( 'Invalid new user ID or email address.', 'invalid-new-user-id-or-email', $this->get_slug() ) );
|
12905 |
+
}
|
12906 |
+
|
12907 |
+
$params = array();
|
12908 |
+
|
12909 |
+
if ( ! empty( $new_email_address ) ) {
|
12910 |
+
$params['user_email'] = $new_email_address;
|
12911 |
+
} else {
|
12912 |
+
$params['user_id'] = $new_user_id;
|
12913 |
+
}
|
12914 |
+
|
12915 |
+
$installs_info_by_slug_map = $this->get_parent_and_addons_installs_info();
|
12916 |
+
$install_ids = array();
|
12917 |
+
|
12918 |
+
foreach ( $installs_info_by_slug_map as $slug => $install_info ) {
|
12919 |
+
$install_ids[ $slug ] = $install_info['install']->id;
|
12920 |
+
}
|
12921 |
+
|
12922 |
+
$params['install_ids'] = implode( ',', array_values( $install_ids ) );
|
12923 |
+
|
12924 |
+
$install = $this->get_api_site_scope()->call( $this->add_show_pending( '/' ), 'put', $params );
|
12925 |
+
|
12926 |
+
if ( FS_Api::is_api_error( $install ) ) {
|
12927 |
+
$error = '';
|
12928 |
+
|
12929 |
+
if ( is_object( $install ) ) {
|
12930 |
+
switch ( $install->error->code ) {
|
12931 |
+
case 'user_exist':
|
12932 |
+
$error = (
|
12933 |
+
$this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...' .
|
12934 |
+
$this->get_text_inline( 'Sorry, we could not complete the email update. Another user with the same email is already registered.', 'user-exist-message' ) . ' ' .
|
12935 |
+
sprintf( $this->get_text_inline( 'If you would like to give up the ownership of the %s\'s account to %s click the Change Ownership button.', 'user-exist-message_ownership' ), $this->_module_type, '<b>' . $new_email_address . '</b>' ) .
|
12936 |
+
sprintf(
|
12937 |
+
'<a style="line-height: 40px;" href="%s"><button class="button button-primary">%s ➜</button></a>',
|
12938 |
+
$this->get_account_url( 'change_owner', array(
|
12939 |
+
'state' => 'init',
|
12940 |
+
'candidate_email' => $new_email_address
|
12941 |
+
) ),
|
12942 |
+
$this->get_text_inline( 'Change Ownership', 'change-ownership' )
|
12943 |
+
)
|
12944 |
+
);
|
12945 |
+
break;
|
12946 |
+
}
|
12947 |
+
}
|
12948 |
+
|
12949 |
+
if ( empty( $error ) ) {
|
12950 |
+
$error = FS_Api::is_api_error_object( $install ) ?
|
12951 |
+
$install->error->message :
|
12952 |
+
var_export( $install->error, true );
|
12953 |
+
}
|
12954 |
+
|
12955 |
+
self::shoot_ajax_failure( $error );
|
12956 |
+
} else {
|
12957 |
+
if (
|
12958 |
+
// If successful ownership change.
|
12959 |
+
$this->get_user()->id != $install->user_id ||
|
12960 |
+
! empty( $new_email_address )
|
12961 |
+
) {
|
12962 |
+
$this->complete_ownership_change_by_license( $install->user_id, $install_ids );
|
12963 |
+
}
|
12964 |
+
}
|
12965 |
+
|
12966 |
+
self::shoot_ajax_success();
|
12967 |
+
}
|
12968 |
+
|
12969 |
/**
|
12970 |
* A helper method to activate migrated licenses. If the product is network activated and integrated, the method will network activate the license.
|
12971 |
*
|
13018 |
* @param n |