PluginProbe ʕ •ᴥ•ʔ
Gallery : FooGallery / 3.3.2
Gallery : FooGallery v3.3.2
3.3.2 3.3.3 3.3.0 3.1.31 3.1.32 3.1.34 3.1.36 3.2.0 3.2.6 trunk 1.10.3 2.0.24 2.1.34 2.2.44 2.3.3 2.4.32 3.0.6 3.1.11 3.1.12 3.1.13 3.1.20 3.1.25 3.1.26 3.1.26.1 3.1.26.2
foogallery / freemius / templates / account.php
foogallery / freemius / templates Last commit date
account 2 days ago checkout 2 days ago connect 2 days ago debug 2 days ago forms 2 days ago js 2 days ago partials 2 days ago plugin-info 2 days ago account.php 2 days ago add-ons.php 2 days ago add-trial-to-pricing.php 2 days ago admin-notice.php 2 days ago ajax-loader.php 2 days ago api-connectivity-message-js.php 2 days ago auto-installation.php 2 days ago checkout.php 2 days ago clone-resolution-js.php 2 days ago connect.php 2 days ago contact.php 2 days ago debug.php 2 days ago email.php 2 days ago gdpr-optin-js.php 2 days ago index.php 2 days ago plugin-icon.php 2 days ago pricing.php 2 days ago secure-https-header.php 2 days ago sticky-admin-notice-js.php 2 days ago tabs-capture-js.php 2 days ago tabs.php 2 days ago
account.php
1133 lines
1 <?php
2 /**
3 * @package Freemius
4 * @copyright Copyright (c) 2015, Freemius, Inc.
5 * @license https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3
6 * @since 1.0.3
7 */
8
9 if ( ! defined( 'ABSPATH' ) ) {
10 exit;
11 }
12
13 /**
14 * @var array $VARS
15 * @var Freemius $fs
16 */
17 $fs = freemius( $VARS['id'] );
18
19 $slug = $fs->get_slug();
20
21 /**
22 * @var FS_Plugin_Tag $update
23 */
24 $update = $fs->has_release_on_freemius() ?
25 $fs->get_update( false, false ) :
26 null;
27
28 if ( is_object($update) ) {
29 /**
30 * This logic is particularly required for multisite environment.
31 * If a module is site activated (not network) and not on the main site,
32 * the module will NOT be executed on the network level, therefore, the
33 * custom updates logic will not be executed as well, so unless we force
34 * the injection of the update into the updates transient, premium updates
35 * will not work.
36 *
37 * @author Vova Feldman (@svovaf)
38 * @since 2.0.0
39 */
40 $updater = FS_Plugin_Updater::instance( $fs );
41 $updater->set_update_data( $update );
42 }
43
44 $is_paying = $fs->is_paying();
45 $user = $fs->get_user();
46 $site = $fs->get_site();
47 $name = $user->get_name();
48 $license = $fs->_get_license();
49 $is_license_foreign = ( is_object( $license ) && $user->id != $license->user_id );
50 $is_data_debug_mode = $fs->is_data_debug_mode();
51 $is_whitelabeled = $fs->is_whitelabeled();
52 $subscription = ( is_object( $license ) ?
53 $fs->_get_subscription( $license->id ) :
54 null );
55 $plan = $fs->get_plan();
56 $is_active_subscription = ( is_object( $subscription ) && $subscription->is_active() );
57 $is_paid_trial = $fs->is_paid_trial();
58 $has_paid_plan = $fs->apply_filters( 'has_paid_plan_account', $fs->has_paid_plan() );
59 $show_upgrade = ( ! $is_whitelabeled && $has_paid_plan && ! $is_paying && ! $is_paid_trial );
60 $trial_plan = $fs->get_trial_plan();
61
62 $is_plan_change_supported = (
63 ! $fs->is_single_plan() &&
64 ! $fs->apply_filters( 'hide_plan_change', false )
65 );
66
67 if ( $has_paid_plan ) {
68 $fs->_add_license_activation_dialog_box();
69 }
70
71 if ( $fs->should_handle_user_change() ) {
72 $fs->_add_email_address_update_dialog_box();
73 }
74
75 $ids_of_installs_activated_with_foreign_licenses = $fs->should_handle_user_change() ?
76 $fs->get_installs_ids_with_foreign_licenses() :
77 array();
78
79 if ( ! empty( $ids_of_installs_activated_with_foreign_licenses ) ) {
80 $fs->_add_user_change_dialog_box( $ids_of_installs_activated_with_foreign_licenses );
81 }
82
83 if ( $fs->is_whitelabeled( true ) || $fs->is_data_debug_mode() ) {
84 $fs->_add_data_debug_mode_dialog_box();
85 }
86
87 if ( fs_request_get_bool( 'auto_install' ) ) {
88 $fs->_add_auto_installation_dialog_box();
89 }
90
91 if ( fs_request_get_bool( 'activate_license' ) ) {
92 // Open the license activation dialog box on the account page.
93 add_action( 'admin_footer', array(
94 &$fs,
95 '_open_license_activation_dialog_box'
96 ) );
97 }
98
99 $show_billing = ( ! $is_whitelabeled && ! $fs->apply_filters( 'hide_billing_and_payments_info', false ) );
100 if ( $show_billing ) {
101 $payments = $fs->_fetch_payments();
102
103 $show_billing = ( is_array( $payments ) && 0 < count( $payments ) );
104 }
105
106
107 $has_tabs = $fs->_add_tabs_before_content();
108
109 // Aliases.
110 $download_latest_text = fs_text_x_inline( 'Download Latest', 'as download latest version', 'download-latest', $slug );
111 $downgrading_plan_text = fs_text_inline( 'Downgrading your plan', 'downgrading-plan', $slug );
112 $cancelling_subscription_text = fs_text_inline( 'Cancelling the subscription', 'cancelling-subscription', $slug );
113 /* translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the subscription' */
114 $downgrade_x_confirm_text = fs_text_inline( '%1$s will immediately stop all future recurring payments and your %2$s plan license will expire in %3$s.', 'downgrade-x-confirm', $slug );
115 $prices_increase_text = fs_text_inline( 'Please note that we will not be able to grandfather outdated pricing for renewals/new subscriptions after a cancellation. If you choose to renew the subscription manually in the future, after a price increase, which typically occurs once a year, you will be charged the updated price.', 'pricing-increase-warning', $slug );
116 $cancel_trial_confirm_text = fs_text_inline( 'Cancelling the trial will immediately block access to all premium features. Are you sure?', 'cancel-trial-confirm', $slug );
117 $after_downgrade_non_blocking_text = fs_text_inline( 'You can still enjoy all %s features but you will not have access to %s security & feature updates, nor support.', 'after-downgrade-non-blocking', $slug );
118 $after_downgrade_blocking_text = fs_text_inline( 'Once your license expires you can still use the Free version but you will NOT have access to the %s features.', 'after-downgrade-blocking', $slug );
119 /* translators: %s: Plan title (e.g. "Professional") */
120 $activate_plan_text = fs_text_inline( 'Activate %s Plan', 'activate-x-plan', $slug );
121 $version_text = fs_text_x_inline( 'Version', 'product version', 'version', $slug );
122 /* translators: %s: Time period (e.g. Auto renews in "2 months") */
123 $renews_in_text = fs_text_inline( 'Auto renews in %s', 'renews-in', $slug );
124 /* translators: %s: Time period (e.g. Expires in "2 months") */
125 $expires_in_text = fs_text_inline( 'Expires in %s', 'expires-in', $slug );
126 $sync_license_text = fs_text_x_inline( 'Sync License', 'as synchronize license', 'sync-license', $slug );
127 $cancel_trial_text = fs_text_inline( 'Cancel Trial', 'cancel-trial', $slug );
128 $change_plan_text = fs_text_inline( 'Change Plan', 'change-plan', $slug );
129 $upgrade_text = fs_text_x_inline( 'Upgrade', 'verb', 'upgrade', $slug );
130 $addons_text = fs_text_inline( 'Add-Ons', 'add-ons', $slug );
131 $downgrade_text = fs_text_x_inline( 'Downgrade', 'verb', 'downgrade', $slug );
132 $trial_text = fs_text_x_inline( 'Trial', 'trial period', 'trial', $slug );
133 $free_text = fs_text_inline( 'Free', 'free', $slug );
134 $activate_text = fs_text_inline( 'Activate', 'activate', $slug );
135 $plan_text = fs_text_x_inline( 'Plan', 'as product pricing plan', 'plan', $slug );
136 $bundle_plan_text = fs_text_inline( 'Bundle Plan', 'bundle-plan', $slug );
137
138 $show_plan_row = true;
139 $show_license_row = is_object( $license );
140
141 $site_view_params = array();
142
143 if ( fs_is_network_admin() ) {
144 $sites = Freemius::get_sites();
145 $all_installs_plan_id = null;
146 $all_installs_license_id = ( $show_license_row ? $license->id : null );
147 foreach ( $sites as $s ) {
148 $site_info = $fs->get_site_info( $s );
149 $install = $fs->get_install_by_blog_id( $site_info['blog_id'] );
150 $view_params = array(
151 'freemius' => $fs,
152 'user' => $fs->get_user(),
153 'license' => $license,
154 'site' => $site_info,
155 'install' => $install,
156 );
157
158 $site_view_params[] = $view_params;
159
160 if ( empty( $install ) ) {
161 continue;
162 }
163
164 if ( $show_plan_row ) {
165 if ( is_null( $all_installs_plan_id ) ) {
166 $all_installs_plan_id = $install->plan_id;
167 } else if ( $all_installs_plan_id != $install->plan_id ) {
168 $show_plan_row = false;
169 }
170 }
171
172 if ( $show_license_row && $all_installs_license_id != $install->license_id ) {
173 $show_license_row = false;
174 }
175 }
176 }
177
178 $has_bundle_license = false;
179
180 if ( is_object( $license ) &&
181 FS_Plugin_License::is_valid_id( $license->parent_license_id )
182 ) {
183 // Context license has a parent license, therefore, the account has a bundle license.
184 $has_bundle_license = true;
185 }
186
187 $bundle_subscription = null;
188 $is_bundle_first_payment_pending = false;
189
190 if (
191 $show_plan_row &&
192 is_object( $license ) &&
193 $has_bundle_license
194 ) {
195 $bundle_plan_title = strtoupper( $license->parent_plan_title );
196 $bundle_subscription = $fs->_get_subscription( $license->parent_license_id );
197 $is_bundle_first_payment_pending = $license->is_first_payment_pending();
198 }
199
200 $fs_blog_id = ( is_multisite() && ! is_network_admin() ) ?
201 get_current_blog_id() :
202 0;
203
204 $active_plugins_directories_map = Freemius::get_active_plugins_directories_map( $fs_blog_id );
205
206 $is_premium = $fs->is_premium();
207
208 $account_addons = $fs->get_updated_account_addons();
209 $installed_addons = $fs->get_installed_addons();
210 $installed_addons_ids = array();
211
212 /**
213 * Store the installed add-ons' IDs into a collection which will be used in determining the add-ons to show on the "Account" page, and at the same time try to find an add-on that is activated with a bundle license if the core product is not.
214 *
215 * @author Leo Fajardo
216 *
217 * @since 2.4.0
218 */
219 foreach ( $installed_addons as $fs_addon ) {
220 $installed_addons_ids[] = $fs_addon->get_id();
221
222 if ( $has_bundle_license ) {
223 // We already have the context bundle license details, skip.
224 continue;
225 }
226
227 if (
228 $show_plan_row &&
229 $fs_addon->has_active_valid_license()
230 ) {
231 $addon_license = $fs_addon->_get_license();
232
233 if ( FS_Plugin_License::is_valid_id( $addon_license->parent_license_id ) ) {
234 // Add-on's license is associated with a parent/bundle license.
235 $has_bundle_license = true;
236
237 $bundle_plan_title = strtoupper( $addon_license->parent_plan_title );
238 $bundle_subscription = $fs_addon->_get_subscription( $addon_license->parent_license_id );
239 $is_bundle_first_payment_pending = $addon_license->is_first_payment_pending();
240 }
241 }
242 }
243
244 $addons_to_show = array_unique( array_merge( $installed_addons_ids, $account_addons ) );
245
246 $is_active_bundle_subscription = ( is_object( $bundle_subscription ) && $bundle_subscription->is_active() );
247
248 $available_license = ( $fs->is_free_plan() && ! fs_is_network_admin() ) ?
249 $fs->_get_available_premium_license( $site->is_localhost() ) :
250 null;
251
252 $available_license_paid_plan = is_object( $available_license ) ?
253 $fs->_get_plan_by_id( $available_license->plan_id ) :
254 null;
255
256 $is_dev_mode = ( defined( 'WP_FS__DEV_MODE' ) && WP_FS__DEV_MODE );
257 ?>
258 <div class="wrap fs-section">
259 <?php if ( ! $has_tabs && ! $fs->apply_filters( 'hide_account_tabs', false ) ) : ?>
260 <h2 class="nav-tab-wrapper">
261 <a href="<?php echo esc_url( $fs->get_account_url() ) ?>"
262 class="nav-tab nav-tab-active"><?php fs_esc_html_echo_inline( 'Account', 'account', $slug ) ?></a>
263 <?php if ( $fs->has_addons() ) : ?>
264 <a href="<?php echo esc_url( $fs->_get_admin_page_url( 'addons' ) ) ?>"
265 class="nav-tab"><?php echo esc_html( $addons_text ) ?></a>
266 <?php endif ?>
267 <?php if ( $show_upgrade ) : ?>
268 <a href="<?php echo esc_url( $fs->get_upgrade_url() ) ?>" class="nav-tab"><?php echo esc_html( $upgrade_text ) ?></a>
269 <?php if ( $fs->apply_filters( 'show_trial', true ) && ! $fs->is_trial_utilized() && $fs->has_trial_plan() ) : ?>
270 <a href="<?php echo esc_url( $fs->get_trial_url() ) ?>" class="nav-tab"><?php fs_esc_html_echo_inline( 'Free Trial', 'free-trial', $slug ) ?></a>
271 <?php endif ?>
272 <?php endif ?>
273 </h2>
274 <?php endif ?>
275
276 <div id="poststuff">
277 <div id="fs_account">
278 <div class="has-sidebar has-right-sidebar">
279 <div class="has-sidebar-content">
280 <div class="postbox">
281 <h3><span class="dashicons dashicons-businessman"></span> <?php fs_esc_html_echo_inline( 'Account Details', 'account-details', $slug ) ?></h3>
282 <div class="fs-header-actions">
283 <ul>
284 <?php if ( $fs->is_whitelabeled( true ) ) : ?>
285 <li>
286 <a href="#" class="debug-license-trigger"><i class="dashicons dashicons-<?php echo $is_whitelabeled ? 'editor-code' : 'controls-pause' ?>"></i> <span><?php
287 if ( $is_whitelabeled ) {
288 fs_esc_html_echo_inline( 'Start Debug', 'start-debug-license', $slug );
289 } else {
290 fs_esc_html_echo_inline( 'Stop Debug', 'stop-debug-license', $slug );
291 }
292 ?></span></a>
293 </li>
294 <li>&nbsp;&bull;&nbsp;</li>
295 <?php endif ?>
296 <?php if ( $show_billing ) : ?>
297 <li><a href="#fs_billing"><i class="dashicons dashicons-portfolio"></i> <?php fs_esc_html_echo_inline( 'Billing & Invoices', 'billing-invoices', $slug ) ?></a></li>
298 <li>&nbsp;&bull;&nbsp;</li>
299 <?php endif ?>
300 <?php if ( ! $is_whitelabeled ) : ?>
301 <?php if ( ! $is_paying ) : ?>
302 <li>
303 <?php
304 $view_params = array(
305 'freemius' => $fs,
306 'license' => $available_license,
307 'license_paid_plan' => $available_license_paid_plan,
308 );
309 fs_require_template( 'account/partials/disconnect-button.php', $view_params ); ?>
310 </li>
311 <li>&nbsp;&bull;&nbsp;</li>
312 <?php endif ?>
313 <?php if ( $is_paying ) : ?>
314 <?php if ( ! fs_is_network_admin() ) : ?>
315 <li>
316 <form action="<?php echo esc_url( $fs->_get_admin_page_url( 'account' ) ) ?>" method="POST">
317 <input type="hidden" name="fs_action" value="deactivate_license">
318 <?php wp_nonce_field( 'deactivate_license' ) ?>
319 <a href="#" class="fs-deactivate-license"><i
320 class="dashicons dashicons-admin-network"></i> <?php fs_echo_inline( 'Deactivate License', 'deactivate-license', $slug ) ?>
321 </a>
322 </form>
323 </li>
324 <li>&nbsp;&bull;&nbsp;</li>
325 <?php endif ?>
326 <?php if ( ! $license->is_lifetime() &&
327 $is_active_subscription
328 ) : ?>
329 <li>
330 <form action="<?php echo esc_url( $fs->_get_admin_page_url( 'account' ) ) ?>" method="POST">
331 <input type="hidden" name="fs_action" value="downgrade_account">
332 <?php wp_nonce_field( 'downgrade_account' ) ?>
333 <a href="#"
334 onclick="if ( confirm('<?php echo esc_attr( sprintf(
335 $downgrade_x_confirm_text,
336 ( $fs->is_only_premium() ? $cancelling_subscription_text : $downgrading_plan_text ),
337 $plan->title,
338 human_time_diff( time(), strtotime( $license->expiration ) )
339 ) ) ?> <?php if ( ! $license->is_block_features ) {
340 echo esc_attr( sprintf( $after_downgrade_non_blocking_text, $plan->title, $fs->get_module_label( true ) ) );
341 } else {
342 echo esc_attr( sprintf( $after_downgrade_blocking_text, $plan->title ) );
343 }?> <?php echo esc_attr( $prices_increase_text ) ?> <?php fs_esc_attr_echo_inline( 'Are you sure you want to proceed?', 'proceed-confirmation', $slug ) ?>') ) this.parentNode.submit(); return false;"><i class="dashicons dashicons-download"></i> <?php echo esc_html( $fs->is_only_premium() ? fs_text_inline( 'Cancel Subscription', 'cancel-subscription', $slug ) : $downgrade_text ) ?></a>
344 </form>
345 </li>
346 <li>&nbsp;&bull;&nbsp;</li>
347 <?php endif ?>
348 <?php if ( $is_plan_change_supported ) : ?>
349 <li>
350 <a href="<?php echo esc_url( $fs->get_upgrade_url() ) ?>"><i
351 class="dashicons dashicons-grid-view"></i> <?php echo esc_html( $change_plan_text ) ?></a>
352 </li>
353 <li>&nbsp;&bull;&nbsp;</li>
354 <?php endif ?>
355 <?php elseif ( $is_paid_trial ) : ?>
356 <li>
357 <form action="<?php echo esc_url( $fs->_get_admin_page_url( 'account' ) ) ?>" method="POST">
358 <input type="hidden" name="fs_action" value="cancel_trial">
359 <?php wp_nonce_field( 'cancel_trial' ) ?>
360 <a href="#" class="fs-cancel-trial"><i
361 class="dashicons dashicons-download"></i> <?php echo esc_html( $cancel_trial_text ) ?></a>
362 </form>
363 </li>
364 <li>&nbsp;&bull;&nbsp;</li>
365 <?php endif ?>
366 <?php endif ?>
367 <li>
368 <form action="<?php echo esc_url( $fs->_get_admin_page_url( 'account' ) ) ?>" method="POST">
369 <input type="hidden" name="fs_action" value="<?php echo esc_attr( $fs->get_unique_affix() ) ?>_sync_license">
370 <?php wp_nonce_field( $fs->get_unique_affix() . '_sync_license' ) ?>
371 <a href="#" onclick="this.parentNode.submit(); return false;"><i
372 class="dashicons dashicons-image-rotate"></i> <?php fs_esc_html_echo_x_inline( 'Sync', 'as synchronize', 'sync', $slug ) ?></a>
373 </form>
374 </li>
375 </ul>
376 </div>
377 <div class="inside">
378 <table id="fs_account_details" cellspacing="0" class="fs-key-value-table">
379 <?php
380 $hide_license_key = ( ! $show_license_row || $fs->apply_filters( 'hide_license_key', false ) );
381
382 $profile = array();
383
384 if ( ! $is_whitelabeled ) {
385 $profile[] = array(
386 'id' => 'user_name',
387 'title' => fs_text_inline( 'Name', 'name', $slug ),
388 'value' => $name
389 );
390 // if (isset($user->email) && false !== strpos($user->email, '@'))
391 $profile[] = array(
392 'id' => 'email',
393 'title' => fs_text_inline( 'Email', 'email', $slug ),
394 'value' => $user->email
395 );
396
397 if ( is_numeric( $user->id ) ) {
398 $profile[] = array(
399 'id' => 'user_id',
400 'title' => fs_text_inline( 'User ID', 'user-id', $slug ),
401 'value' => $user->id
402 );
403 }
404 }
405
406 $profile[] = array(
407 'id' => 'product',
408 'title' => ( $fs->is_plugin() ?
409 fs_text_inline( 'Plugin', 'plugin', $slug ) :
410 fs_text_inline( 'Theme', 'theme', $slug ) ),
411 'value' => $fs->get_plugin_title()
412 );
413
414 $profile[] = array(
415 'id' => 'product_id',
416 'title' => ( $fs->is_plugin() ?
417 fs_text_inline( 'Plugin', 'plugin', $slug ) :
418 fs_text_inline( 'Theme', 'theme', $slug ) ) . ' ' . fs_text_inline( 'ID', 'id', $slug ),
419 'value' => $fs->get_id()
420 );
421
422 if ( ! fs_is_network_admin()) {
423 $profile[] = array(
424 'id' => 'site_id',
425 'title' => fs_text_inline( 'Site ID', 'site-id', $slug ),
426 'value' => is_string( $site->id ) ?
427 $site->id :
428 fs_text_inline( 'No ID', 'no-id', $slug )
429 );
430
431 $profile[] = array(
432 'id' => 'site_public_key',
433 'title' => fs_text_inline( 'Public Key', 'public-key', $slug ),
434 'value' => $site->public_key
435 );
436
437 $profile[] = array(
438 'id' => 'site_secret_key',
439 'title' => fs_text_inline( 'Secret Key', 'secret-key', $slug ),
440 'value' => ( ( is_string( $site->secret_key ) ) ?
441 $site->secret_key :
442 fs_text_x_inline( 'No Secret', 'as secret encryption key missing', 'no-secret', $slug )
443 )
444 );
445 }
446
447 $profile[] = array(
448 'id' => 'version',
449 'title' => $version_text,
450 'value' => $fs->get_plugin_version()
451 );
452
453 if ( ! fs_is_network_admin() && $is_premium ) {
454 $profile[] = array(
455 'id' => 'beta_program',
456 'title' => '',
457 'value' => $site->is_beta
458 );
459 }
460
461 if ( $has_paid_plan || $has_bundle_license ) {
462 if ( $fs->is_trial() ) {
463 if ( $show_plan_row ) {
464 $profile[] = array(
465 'id' => 'plan',
466 'title' => $plan_text,
467 'value' => ( is_string( $trial_plan->name ) ?
468 strtoupper( $trial_plan->title ) :
469 fs_text_inline( 'Trial', 'trial', $slug ) )
470 );
471 }
472 } else {
473 if ( $show_plan_row ) {
474 $profile[] = array(
475 'id' => 'plan',
476 'title' => ( $has_bundle_license ? ucfirst( $fs->get_module_type() ) . ' ' : '' ) . $plan_text,
477 'value' => strtoupper( is_string( $plan->name ) ?
478 $plan->title :
479 strtoupper( $free_text )
480 )
481 );
482
483 if ( $has_bundle_license ) {
484 $profile[] = array(
485 'id' => 'bundle_plan',
486 'title' => $bundle_plan_text,
487 'value' => $bundle_plan_title
488 );
489 }
490 }
491
492 if ( is_object( $license ) ) {
493 if ( ! $hide_license_key ) {
494 $profile[] = array(
495 'id' => 'license_key',
496 'title' => fs_text_inline( 'License Key', $slug ),
497 'value' => $license->secret_key,
498 );
499 }
500 }
501 }
502 }
503 ?>
504 <?php $odd = true;
505 foreach ( $profile as $p ) : ?>
506 <?php
507 if ( 'plan' === $p['id'] && ! $has_paid_plan ) {
508 // If plugin don't have any paid plans, there's no reason
509 // to show current plan.
510 continue;
511 }
512 ?>
513 <tr class="fs-field-<?php echo esc_attr( $p['id'] ) ?><?php if ( $odd ) : ?> alternate<?php endif ?>">
514 <td>
515 <nobr><?php echo esc_html( $p['title'] ) ?><?php echo ( ! empty( $p['title'] ) ) ? ':' : '' ?></nobr>
516 </td>
517 <td<?php if ( 'plan' === $p['id'] || 'bundle_plan' === $p['id'] ) { echo ' colspan="2"'; }?>>
518 <?php if ( in_array( $p['id'], array( 'license_key', 'site_secret_key' ) ) ) : ?>
519 <code><?php echo FS_Plugin_License::mask_secret_key_for_html( $p['value'] ) ?></code>
520 <?php if ( ! $is_whitelabeled ) : ?>
521 <input type="text" value="<?php echo htmlspecialchars( $p['value'] ) ?>" style="display: none"
522 readonly/>
523 <?php endif ?>
524 <?php elseif ( 'beta_program' === $p['id'] ) : ?>
525 <label>
526 <input type="checkbox" class="fs-toggle-beta-mode" <?php checked( true, $p['value'] ) ?>/><span><?php
527 fs_esc_html_echo_inline( 'Join the Beta program', 'join-beta', $slug )
528 ?></span></label>
529 <?php else : ?>
530 <code><?php echo htmlspecialchars( $p['value'] ) ?></code>
531 <?php endif ?>
532 <?php if ( 'email' === $p['id'] && ! $user->is_verified() ) : ?>
533 <label class="fs-tag fs-warn"><?php fs_esc_html_echo_inline( 'not verified', 'not-verified', $slug ) ?></label>
534 <?php endif ?>
535 <?php if ( 'plan' === $p['id'] ) : ?>
536 <?php if ( $fs->is_trial() ) : ?>
537 <label class="fs-tag fs-success"><?php echo esc_html( $trial_text ) ?></label>
538 <?php endif ?>
539 <?php if ( is_object( $license ) && ! $license->is_lifetime() ) : ?>
540 <?php if ( ! $is_active_subscription && ! $is_active_bundle_subscription && ! $license->is_first_payment_pending() ) : ?>
541 <?php $is_license_expired = $license->is_expired() ?>
542 <?php $expired_ago_text = ( fs_text_inline( 'Expired', 'expired', $slug ) . ' ' . fs_text_x_inline( '%s ago', 'x-ago', $slug ) ) ?>
543 <label
544 class="fs-tag <?php echo $is_license_expired ? 'fs-error' : 'fs-warn' ?>"><?php
545 echo esc_html( sprintf( $is_license_expired ? $expired_ago_text : $expires_in_text, human_time_diff( time(), strtotime( $license->expiration ) ) ) )
546 ?></label>
547 <?php elseif ( $is_active_subscription && ! $subscription->is_first_payment_pending() ) : ?>
548 <label class="fs-tag fs-success"><?php echo esc_html( sprintf( $renews_in_text, human_time_diff( time(), strtotime( $subscription->next_payment ) ) ) ) ?></label>
549 <?php endif ?>
550 <?php elseif ( $fs->is_trial() ) : ?>
551 <label class="fs-tag fs-warn"><?php echo esc_html( sprintf( $expires_in_text, human_time_diff( time(), strtotime( $site->trial_ends ) ) ) ) ?></label>
552 <?php endif ?>
553 <?php if ( ! $is_whitelabeled ) : ?>
554 <div class="button-group">
555 <?php if ( is_object( $available_license ) ) : ?>
556 <?php
557 $view_params = array(
558 'freemius' => $fs,
559 'slug' => $slug,
560 'license' => $available_license,
561 'plan' => $available_license_paid_plan,
562 'is_localhost' => $site->is_localhost(),
563 'install_id' => $site->id,
564 'class' => 'button-primary',
565 );
566 fs_require_template( 'account/partials/activate-license-button.php', $view_params ); ?>
567 <?php else : ?>
568 <form action="<?php echo esc_url( $fs->_get_admin_page_url( 'account' ) ) ?>"
569 method="POST" class="button-group">
570 <?php if ( $show_upgrade && $is_premium ) : ?>
571 <a class="button activate-license-trigger <?php echo esc_attr( $fs->get_unique_affix() ) ?>" href="#"><?php fs_esc_html_echo_inline( 'Activate License', 'activate-license', $slug ) ?></a>
572 <?php endif ?>
573 <input type="submit" class="button"
574 value="<?php echo esc_attr( $sync_license_text ) ?>">
575 <input type="hidden" name="fs_action"
576 value="<?php echo esc_attr( $fs->get_unique_affix() ) ?>_sync_license">
577 <?php wp_nonce_field( $fs->get_unique_affix() . '_sync_license' ) ?>
578 <?php if ( $show_upgrade || $is_plan_change_supported ) : ?>
579 <a href="<?php echo esc_url( $fs->get_upgrade_url() ) ?>"
580 class="button<?php
581 echo $show_upgrade ?
582 ' button-primary fs-upgrade' :
583 ' fs-change-plan'; ?> button-upgrade"><i
584 class="dashicons dashicons-cart"></i> <?php echo esc_html( $show_upgrade ? $upgrade_text : $change_plan_text ) ?></a>
585 <?php endif ?>
586 </form>
587 <?php endif ?>
588 </div>
589 <?php endif ?>
590 <?php elseif ( 'bundle_plan' === $p['id'] ) : ?>
591 <?php if ( is_object( $bundle_subscription ) ) : ?>
592 <?php if ( $is_active_bundle_subscription && ! $is_bundle_first_payment_pending ) : ?>
593 <label class="fs-tag fs-success"><?php echo esc_html( sprintf( $renews_in_text, human_time_diff( time(), strtotime( $bundle_subscription->next_payment ) ) ) ) ?></label>
594 <?php endif ?>
595 <?php endif ?>
596 <?php elseif ( 'version' === $p['id'] && $has_paid_plan ) : ?>
597 <?php if ( $fs->has_premium_version() ) : ?>
598 <?php if ( $is_premium ) : ?>
599 <label
600 class="fs-tag fs-<?php echo $fs->can_use_premium_code() ? 'success' : 'warn' ?>"><?php fs_esc_html_echo_inline( 'Premium version', 'premium-version', $slug ) ?></label>
601 <?php elseif ( $fs->can_use_premium_code() ) : ?>
602 <label class="fs-tag fs-warn"><?php fs_esc_html_echo_inline( 'Free version', 'free-version', $slug ) ?></label>
603 <?php endif ?>
604 <?php endif ?>
605 <?php endif ?>
606 </td>
607 <?php if ( 'plan' !== $p['id'] && 'bundle_plan' !== $p['id'] ) : ?>
608 <td class="fs-right">
609 <?php if ( 'email' === $p['id'] && ! $user->is_verified() ) : ?>
610 <form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>" method="POST">
611 <input type="hidden" name="fs_action" value="verify_email">
612 <?php wp_nonce_field( 'verify_email' ) ?>
613 <input type="submit" class="button button-small"
614 value="<?php fs_esc_attr_echo_inline( 'Verify Email', 'verify-email', $slug ) ?>">
615 </form>
616 <?php endif ?>
617 <?php if ( 'version' === $p['id'] ) : ?>
618 <?php if ( $fs->has_release_on_freemius() ) : ?>
619 <div class="button-group">
620 <?php if ( $is_paying || $fs->is_trial() ) : ?>
621 <?php if ( ! $fs->is_allowed_to_install() ) : ?>
622 <a target="_blank" rel="noopener" class="button button-primary"
623 href="<?php echo $fs->_get_latest_download_local_url() ?>"><?php
624 $download_version_text_suffix = ( is_object( $update ) ? ' [' . $update->version . ']' : '' );
625
626 $download_version_text = sprintf(
627 /* translators: %s: plan name (e.g. Download "Professional" Version) */
628 fs_text_inline( 'Download %s Version', 'download-x-version', $slug ),
629 ( $fs->is_trial() ? $trial_plan->title : $plan->title )
630 ) .
631 $download_version_text_suffix;
632
633 $download_version_text_length = function_exists( 'mb_strlen' ) ?
634 mb_strlen( $download_version_text ) :
635 strlen( $download_version_text );
636
637 if ( $download_version_text_length > 31 ) {
638 /**
639 * Try to limit the number of characters to 31 for now.
640 *
641 * @author Leo Fajardo (@leorw)
642 * @aince 2.3.2
643 */
644 $download_version_text = fs_text_inline( 'Download Paid Version', 'download-paid-version', $slug ) . $download_version_text_suffix;
645 }
646
647 echo $download_version_text;
648 ?></a>
649 <?php elseif ( is_object( $update ) ) : ?>
650 <?php
651 $module_type = $fs->get_module_type();
652 ?>
653 <a class="button button-primary"
654 href="<?php echo wp_nonce_url( self_admin_url( "update.php?action=upgrade-{$module_type}&{$module_type}=" . $fs->get_plugin_basename() ), "upgrade-{$module_type}_" . $fs->get_plugin_basename() ) ?>"><?php echo fs_esc_html_inline( 'Install Update Now', 'install-update-now', $slug ) . ' [' . $update->version . ']' ?></a>
655 <?php endif ?>
656 <?php endif; ?>
657 </div>
658 <?php endif ?>
659 <?php
660 elseif ( in_array( $p['id'], array( 'license_key', 'site_secret_key' ) ) ) : ?>
661 <?php if ( ! $is_whitelabeled && ( 'site_secret_key' === $p['id'] || ! $is_license_foreign ) ) : ?>
662 <button class="button button-small fs-toggle-visibility"><?php fs_esc_html_echo_x_inline( 'Show', 'verb', 'show', $slug ) ?></button>
663 <?php endif ?>
664 <?php if ('license_key' === $p['id']) : ?>
665 <button class="button button-small activate-license-trigger <?php echo $fs->get_unique_affix() ?>"><?php fs_esc_html_echo_inline( 'Change License', 'change-license', $slug ) ?></button>
666 <?php endif ?>
667 <?php
668 elseif (/*in_array($p['id'], array('site_secret_key', 'site_id', 'site_public_key')) ||*/
669 ( is_string( $user->secret_key ) && in_array( $p['id'], array(
670 'email',
671 'user_name'
672 ) ) )
673 ) : ?>
674 <?php if ( 'email' !== $p['id'] || ! fs_is_network_admin() ) : ?>
675 <form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>" method="POST"
676 onsubmit="var val = prompt('<?php echo esc_attr( sprintf(
677 /* translators: %s: User's account property (e.g. name, email) */
678 fs_text_inline( 'What is your %s?', 'what-is-your-x', $slug ),
679 $p['title']
680 ) ) ?>', '<?php echo $p['value'] ?>'); if (null == val || '' === val) return false; jQuery('input[name=fs_<?php echo $p['id'] ?>_<?php echo $fs->get_unique_affix() ?>]').val(val); return true;">
681 <input type="hidden" name="fs_action" value="update_<?php echo $p['id'] ?>">
682 <input type="hidden" name="fs_<?php echo $p['id'] ?>_<?php echo $fs->get_unique_affix() ?>"
683 value="">
684 <?php wp_nonce_field( 'update_' . $p['id'] ) ?>
685 <input type="submit" class="button button-small <?php if ( 'email' === $p['id'] ) echo 'button-edit-email-address' ?>"
686 value="<?php echo fs_esc_attr_x_inline( 'Edit', 'verb', 'edit', $slug ) ?>">
687 </form>
688 <?php endif ?>
689 <?php elseif ( 'user_id' === $p['id'] && ! empty( $ids_of_installs_activated_with_foreign_licenses ) ) : ?>
690 <input id="fs_change_user" type="submit" class="button button-small"
691 value="<?php echo fs_esc_attr_inline( 'Change User', 'change-user', $slug ) ?>">
692 <?php endif ?>
693 </td>
694 <?php endif ?>
695 </tr>
696 <?php
697 if ( 'version' === $p['id'] && $is_premium ) {
698 /**
699 * If there's a row for the beta program, keep its background color
700 * the same as the version info row.
701 *
702 * @author Leo Fajardo (@leorw)
703 * @since 2.3.0
704 */
705 continue;
706 }
707
708 $odd = ! $odd;
709 endforeach ?>
710 </table>
711 </div>
712 </div>
713 <?php if ( fs_is_network_admin() ) : ?>
714 <div id="fs_sites" class="postbox">
715 <h3><span class="dashicons dashicons-networking"></span> <?php fs_esc_html_echo_inline( 'Sites', 'sites', $slug ) ?></h3>
716 <div class="fs-header-actions">
717 <?php if ( ! $is_whitelabeled ) : ?>
718 <?php $has_license = is_object( $license ) ?>
719 <?php if ( $has_license || ( $show_upgrade && $is_premium ) ) : ?>
720 <?php
721 $activate_license_button_text = $has_license ?
722 fs_esc_html_inline( 'Change License', 'change-license', $slug ) :
723 fs_esc_html_inline( 'Activate License', 'activate-license', $slug );
724 ?>
725 <a class="button<?php echo ( ! $has_license ? ' button-primary' : '' ) ?> activate-license-trigger <?php echo $fs->get_unique_affix() ?>" href="#"><?php echo $activate_license_button_text ?></a>
726 <?php endif ?>
727 <?php endif ?>
728 <input class="fs-search" type="text" placeholder="<?php fs_esc_attr_echo_inline( 'Search by address', 'search-by-address', $slug ) ?>..."><span class="dashicons dashicons-search"></span>
729 </div>
730 <div class="inside">
731 <div id="" class="fs-scrollable-table">
732 <div class="fs-table-head">
733 <table class="widefat">
734 <thead>
735 <tr>
736 <td><?php fs_esc_html_echo_inline('ID', 'id', $slug) ?></td>
737 <td><?php fs_esc_html_echo_inline('Address', 'address', $slug) ?></td>
738 <td><?php fs_esc_html_echo_inline('License', 'license', $slug) ?></td>
739 <td><?php fs_esc_html_echo_inline('Plan', 'plan', $slug) ?></td>
740 <td></td>
741 </tr>
742 </thead>
743 </table>
744 </div>
745 <div class="fs-table-body">
746 <table class="widefat">
747 <?php
748 $current_blog_id = get_current_blog_id();
749
750 foreach ( $site_view_params as $view_params ) {
751 fs_require_template(
752 'account/partials/site.php',
753 $view_params
754 );
755 }
756
757 /**
758 * It's possible for the `Freemius::switch_to_blog()` method to be called within the `site.php` template and this changes the Freemius instance's context, so this check is for restoring the previous context based on the previously retrieved site.
759 *
760 * @author Leo Fajardo (@leorw)
761 * @since 2.5.0
762 */
763 $current_install = $fs->get_site();
764
765 if (
766 is_object( $site ) &&
767 ( ! is_object( $current_install ) || $current_install->id != $site->id )
768 ) {
769 $fs->switch_to_blog( $current_blog_id, $site, true );
770 }
771 ?>
772 </table>
773 </div>
774 </div>
775 </div>
776 </div>
777 <?php endif ?>
778 <?php if ( 0 < count( $addons_to_show ) ) : ?>
779 <!-- Add-Ons -->
780 <div class="postbox">
781 <div class="">
782 <!-- <div class="inside">-->
783 <table id="fs_addons" class="widefat">
784 <thead>
785 <tr>
786 <th><h3><?php echo esc_html( $addons_text ) ?></h3></th>
787 <th><?php fs_esc_html_echo_inline( 'ID', 'id', $slug ) ?></th>
788 <th><?php echo esc_html( $version_text ) ?></th>
789 <th><?php echo esc_html( $plan_text ) ?></th>
790 <th><?php fs_esc_html_echo_x_inline( 'License', 'as software license', 'license', $slug ) ?></th>
791 <th></th>
792 <?php if ( $is_dev_mode ) : ?>
793 <th></th>
794 <?php endif ?>
795 </tr>
796 </thead>
797 <tbody>
798 <?php
799 $odd = true;
800
801 $installed_addons_ids_map = array_flip( $installed_addons_ids );
802
803 $addon_info_by_id = array();
804 $hide_all_addons_data = false;
805
806 if ( $fs->is_whitelabeled_by_flag() ) {
807 $hide_all_addons_data = true;
808
809 foreach ( $addons_to_show as $addon_id ) {
810 $is_addon_installed = isset( $installed_addons_ids_map[ $addon_id ] );
811 $addon_info = $fs->_get_addon_info( $addon_id, $is_addon_installed );
812 $is_addon_connected = $addon_info['is_connected'];
813
814 $fs_addon = ( $is_addon_connected && $is_addon_installed ) ?
815 freemius( $addon_id ) :
816 null;
817
818 $is_whitelabeled = is_object( $fs_addon ) ?
819 $fs_addon->is_whitelabeled( true ) :
820 $addon_info['is_whitelabeled'];
821
822 if ( ! $is_whitelabeled ) {
823 $hide_all_addons_data = false;
824 }
825
826 if ( $is_data_debug_mode ) {
827 $is_whitelabeled = false;
828 }
829
830 $addon_info_by_id[ $addon_id ] = $addon_info;
831 }
832 }
833
834 foreach ( $addons_to_show as $addon_id ) {
835 $is_addon_installed = isset( $installed_addons_ids_map[ $addon_id ] );
836
837 if (
838 $hide_all_addons_data &&
839 ! $is_addon_installed &&
840 ! file_exists( fs_normalize_path( WP_PLUGIN_DIR . '/' . $fs->get_addon_basename( $addon_id ) ) )
841 ) {
842 continue;
843 }
844
845 $addon_view_params = array(
846 'parent_fs' => $fs,
847 'addon_id' => $addon_id,
848 'odd' => $odd,
849 'fs_blog_id' => $fs_blog_id,
850 'active_plugins_directories_map' => &$active_plugins_directories_map,
851 'is_addon_installed' => $is_addon_installed,
852 'addon_info' => isset( $addon_info_by_id[ $addon_id ] ) ?
853 $addon_info_by_id[ $addon_id ] :
854 $fs->_get_addon_info( $addon_id, $is_addon_installed ),
855 'is_whitelabeled' => ( $is_whitelabeled && ! $is_data_debug_mode )
856 );
857
858 if ( ! empty($addon_view_params['addon_info'] ) ) {
859 fs_require_template(
860 'account/partials/addon.php',
861 $addon_view_params
862 );
863 } else {
864 // If we are here it means there is an activation of an unreleased add-on and yet the SDK is not in development mode.
865 echo '<tr>';
866 echo '<td style="text-align: right;">' . esc_html( $addon_id ) . '</td>';
867 echo '<td colspan="' . ( $is_dev_mode ? 6 : 5 ) . '" style="text-align: left;">';
868 echo 'The add-on you have activated is no longer <a href="https://freemius.com/help/documentation/wordpress/selling-add-ons-extensions/#preparing-the-add-on-for-sale" rel="noreferrer noopener" target="_blank">listed</a> by the product owner, or the SDK is not running in <a href="https://freemius.com/help/documentation/wordpress-sdk/testing/" rel="noreferrer noopener" target="_blank">test mode</a>. Please <a href="' . esc_url( $fs->contact_url() ) . '">contact support</a> if you need further assistance.';
869 echo '</td>';
870 echo '</tr>';
871 }
872
873 $odd = ! $odd;
874 } ?>
875 </tbody>
876 </table>
877 </div>
878 </div>
879 <?php endif ?>
880
881 <?php $fs->do_action( 'after_account_details' ) ?>
882
883 <?php
884 if ( $show_billing ) {
885 $view_params = array( 'id' => $VARS['id'], 'payments' => $payments );
886 fs_require_once_template( 'account/billing.php', $view_params );
887 fs_require_once_template( 'account/payments.php', $view_params );
888 }
889 ?>
890 </div>
891 </div>
892 </div>
893 </div>
894 </div>
895 <?php
896 $subscription_cancellation_dialog_box_template_params = $fs->_get_subscription_cancellation_dialog_box_template_params( true );
897 if ( ! empty( $subscription_cancellation_dialog_box_template_params ) ) {
898 fs_require_template( 'forms/subscription-cancellation.php', $subscription_cancellation_dialog_box_template_params );
899 }
900 ?>
901 <script type="text/javascript">
902 (function ($) {
903 var setLoading = function ($this, label) {
904 // Set loading mode.
905 $(document.body).css({'cursor': 'wait'});
906
907 $this.css({'cursor': 'wait'});
908
909 if ($this.is('input'))
910 $this.val(label);
911 else
912 $this.html(label);
913
914 setTimeout(function () {
915 $this.attr('disabled', 'disabled');
916 }, 200);
917 };
918
919 $('.fs-toggle-visibility').click(function () {
920 var
921 $this = $(this),
922 $parent = $this.closest('tr'),
923 $input = $parent.find('input');
924
925 $parent.find('code').toggle();
926 $input.toggle();
927
928 if ($input.is(':visible')) {
929 $this.html('<?php fs_esc_js_echo_x_inline( 'Hide', 'verb', 'hide', $slug ) ?>');
930 setTimeout(function () {
931 $input.select().focus();
932 }, 100);
933 }
934 else {
935 $this.html( '<?php fs_esc_js_echo_x_inline( 'Show', 'verb', 'show', $slug ) ?>' );
936 }
937 });
938
939 $('.fs-toggle-tracking').click(function () {
940 setLoading(
941 $(this),
942 ($(this).data('is-disconnected') ?
943 '<?php fs_esc_js_echo_inline('Opting in', 'opting-in' ) ?>' :
944 '<?php fs_esc_js_echo_inline('Opting out', 'opting-out' ) ?>') +
945 '...'
946 );
947 });
948
949 <?php
950 $plugin_title = $fs->get_plugin_title();
951 $processing_text = fs_esc_js_inline( 'Processing', 'processing' );
952 $confirmation_message = sprintf(
953 '%s %s',
954 sprintf( fs_esc_attr_inline( 'Get updates for bleeding edge Beta versions of %s.', 'get-beta-versions', $slug ), $plugin_title ),
955 sprintf( fs_esc_attr_inline( 'An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned.', 'beta-version-update-caution', $slug ), $plugin_title )
956 );
957 ?>
958
959 $( '.fs-toggle-beta-mode' ).click( function () {
960 var $checkbox = $( this ),
961 isChecked = $checkbox.is( ':checked' );
962
963 if ( ! isChecked || confirm( '<?php echo $confirmation_message ?>' ) ) {
964 $.ajax( {
965 url : <?php echo Freemius::ajax_url() ?>,
966 method: 'POST',
967 data : {
968 action : '<?php echo $fs->get_ajax_action( 'set_beta_mode' ) ?>',
969 security : '<?php echo $fs->get_ajax_security( 'set_beta_mode' ) ?>',
970 is_beta : isChecked,
971 module_id: <?php echo $fs->get_id() ?>
972 },
973 beforeSend: function () {
974 $checkbox.prop( 'disabled', true );
975 $checkbox.parent().find( 'span' ).text( '<?php echo $processing_text ?>' + '...' );
976 },
977 complete: function () {
978 $checkbox.prop( 'disabled', false );
979 $checkbox.parent().find( 'span' ).text( '<?php fs_esc_js_echo_inline( 'Join the Beta Program', 'join-beta', $slug ) ?>' );
980 }
981 } );
982
983 return true;
984 }
985
986 return false;
987 });
988
989 $('.fs-opt-in').click(function () {
990 setLoading($(this), '<?php fs_esc_js_echo_inline('Opting in', 'opting-in' ) ?>...');
991 });
992
993 $( '#fs_downgrade' ).submit(function( event ) {
994 event.preventDefault();
995
996 setLoading( $( this ).find( '.button' ), '<?php fs_esc_js_echo_inline( 'Downgrading', 'downgrading' ) ?>...' );
997 });
998
999 $('.fs-activate-license').click(function () {
1000 setLoading($(this), '<?php fs_esc_js_echo_inline('Activating', 'activating' ) ?>...');
1001 });
1002
1003 var $deactivateLicenseOrCancelTrial = $( '.fs-deactivate-license, .fs-cancel-trial' ),
1004 $subscriptionCancellationModal = $( '.fs-modal-subscription-cancellation-<?php echo $fs->get_id() ?>' );
1005
1006 if ( 0 !== $subscriptionCancellationModal.length ) {
1007 $subscriptionCancellationModal.on( '<?php echo $fs->get_action_tag( 'subscription_cancellation_action' ) ?>', function( evt, cancelSubscription ) {
1008 setLoading(
1009 $deactivateLicenseOrCancelTrial,
1010 ( ! $deactivateLicenseOrCancelTrial.hasClass( 'fs-cancel-trial' ) ?
1011 '<?php fs_esc_js_echo_inline( 'Deactivating', 'deactivating', $slug ) ?>' :
1012 '<?php echo esc_html( sprintf( fs_text_inline( 'Cancelling %s', 'cancelling-x', $slug ), fs_text_inline( 'trial', 'trial', $slug ) ) ) ?>' ) + '...'
1013 );
1014
1015 $subscriptionCancellationModal.find( '.fs-modal-footer .button' ).addClass( 'disabled' );
1016 $deactivateLicenseOrCancelTrial.unbind( 'click' );
1017
1018 if ( false === cancelSubscription || $deactivateLicenseOrCancelTrial.hasClass( 'fs-cancel-trial' ) ) {
1019 $subscriptionCancellationModal.find( '.fs-modal-footer .button-primary' ).text( $deactivateLicenseOrCancelTrial.text() );
1020
1021 $deactivateLicenseOrCancelTrial[0].parentNode.submit();
1022 } else {
1023 var $form = $( 'input[value="downgrade_account"],input[value="cancel_trial"]' ).parent();
1024 $form.prepend( '<input type="hidden" name="deactivate_license" value="true" />' );
1025
1026 $subscriptionCancellationModal.find( '.fs-modal-footer .button-primary' ).text( '<?php echo esc_js( sprintf(
1027 fs_text_inline( 'Cancelling %s...', 'cancelling-x' , $slug ),
1028 $is_paid_trial ?
1029 fs_text_inline( 'trial', 'trial', $slug ) :
1030 fs_text_inline( 'subscription', 'subscription', $slug )
1031 ) ) ?>' );
1032
1033 $form.submit();
1034 }
1035 });
1036 }
1037
1038 $deactivateLicenseOrCancelTrial.click(function() {
1039 var $this = $( this );
1040 if ( $this.hasClass( 'fs-cancel-trial' ) ) {
1041 $subscriptionCancellationModal.find( '.fs-modal-panel' ).find( 'ul.subscription-actions, .fs-price-increase-warning' ).remove();
1042 $subscriptionCancellationModal.find( '.fs-modal-panel > p' ).text( <?php echo json_encode( $cancel_trial_confirm_text ) ?> );
1043 $subscriptionCancellationModal.trigger( 'showModal' );
1044 } else if (confirm('<?php fs_esc_attr_echo_inline( 'Deactivating your license will block all premium features, but will enable activating the license on another site. Are you sure you want to proceed?', 'deactivate-license-confirm', $slug ) ?>')) {
1045 var $this = $(this);
1046
1047 if ( 0 !== $subscriptionCancellationModal.length ) {
1048 $subscriptionCancellationModal.trigger( 'showModal' );
1049 } else {
1050 setLoading( $this, '<?php fs_esc_js_echo_inline( 'Deactivating', 'deactivating', $slug ) ?>...' );
1051 $this[0].parentNode.submit();
1052 }
1053 }
1054
1055 return false;
1056 });
1057
1058 var $sitesSection = $('#fs_sites'),
1059 $sitesTable = $sitesSection.find('.fs-scrollable-table'),
1060 $sitesTableRows = $sitesTable.find('.fs-site-details');
1061
1062 $('.fs-show-install-details').click(function(){
1063 var installID = $(this).parents('.fs-site-details').attr('data-install-id');
1064 $sitesSection.find('.fs-install-details[data-install-id=' + installID + ']').toggle();
1065 });
1066
1067
1068 var adjustColumnWidth = function($table) {
1069 var $headerColumns = $table.find('.fs-table-head td'),
1070 $bodyColumns = $table.find('.fs-table-body tr:first > td');
1071
1072 for (var i = 0, len = $headerColumns.length; i < len; i++) {
1073 $($headerColumns[i]).width($($bodyColumns[i]).width());
1074 }
1075 for (i = 0, len = $headerColumns.length; i < len; i++) {
1076 $($bodyColumns[i]).width($($headerColumns[i]).width());
1077 }
1078 };
1079
1080 adjustColumnWidth($sitesTable);
1081
1082 $sitesSection.find('.fs-search').keyup(function(){
1083 var search = $(this).val().trim();
1084
1085 if ('' === search){
1086 // Show all.
1087 $sitesTableRows.show();
1088 return;
1089 }
1090
1091 var url;
1092
1093 $sitesTableRows.each(function(index){
1094 url = $(this).find('.fs-field-url').html();
1095
1096 if (-1 < url.indexOf(search)){
1097 $(this).show();
1098 } else {
1099 $(this).hide();
1100 }
1101 });
1102 });
1103
1104 $( '.fs-toggle-whitelabel-mode' ).click( function () {
1105 var $toggleLink = $( this );
1106
1107 $.ajax( {
1108 url : <?php echo Freemius::ajax_url() ?>,
1109 method: 'POST',
1110 data : {
1111 action : '<?php echo $fs->get_ajax_action( 'toggle_whitelabel_mode' ) ?>',
1112 security : '<?php echo $fs->get_ajax_security( 'toggle_whitelabel_mode' ) ?>',
1113 module_id: <?php echo $fs->get_id() ?>
1114 },
1115 beforeSend: function () {
1116 $toggleLink.parent().text( '<?php
1117 $is_whitelabeled ?
1118 fs_esc_html_echo_inline( 'Disabling white-label mode', 'disabling-whitelabel-mode' ) :
1119 fs_esc_html_echo_inline( 'Enabling white-label mode', 'enabling-whitelabel-mode' )
1120 ?>' + '...' );
1121 },
1122 complete: function () {
1123 location.reload();
1124 }
1125 } );
1126 });
1127 })(jQuery);
1128 </script>
1129 <?php
1130 if ( $has_tabs ) {
1131 $fs->_add_tabs_after_content();
1132 }
1133