1130 lines
		
	
	
		
			64 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			1130 lines
		
	
	
		
			64 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
	/**
 | 
						|
	 * @package     Freemius
 | 
						|
	 * @copyright   Copyright (c) 2015, Freemius, Inc.
 | 
						|
	 * @license     https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3
 | 
						|
	 * @since       1.0.3
 | 
						|
	 */
 | 
						|
 | 
						|
	if ( ! defined( 'ABSPATH' ) ) {
 | 
						|
		exit;
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * @var array $VARS
 | 
						|
	 * @var Freemius $fs
 | 
						|
	 */
 | 
						|
	$fs   = freemius( $VARS['id'] );
 | 
						|
 | 
						|
	$slug = $fs->get_slug();
 | 
						|
 | 
						|
	/**
 | 
						|
	 * @var FS_Plugin_Tag $update
 | 
						|
	 */
 | 
						|
	$update = $fs->has_release_on_freemius() ?
 | 
						|
        $fs->get_update( false, false, WP_FS__TIME_24_HOURS_IN_SEC / 24 ) :
 | 
						|
        null;
 | 
						|
 | 
						|
	if ( is_object($update) ) {
 | 
						|
		/**
 | 
						|
		 * This logic is particularly required for multisite environment.
 | 
						|
         * If a module is site activated (not network) and not on the main site,
 | 
						|
         * the module will NOT be executed on the network level, therefore, the
 | 
						|
         * custom updates logic will not be executed as well, so unless we force
 | 
						|
         * the injection of the update into the updates transient, premium updates
 | 
						|
         * will not work.
 | 
						|
         *
 | 
						|
         * @author Vova Feldman (@svovaf)
 | 
						|
         * @since  2.0.0
 | 
						|
         */
 | 
						|
		$updater = FS_Plugin_Updater::instance( $fs );
 | 
						|
		$updater->set_update_data( $update );
 | 
						|
	}
 | 
						|
 | 
						|
    $is_paying              = $fs->is_paying();
 | 
						|
    $user                   = $fs->get_user();
 | 
						|
    $site                   = $fs->get_site();
 | 
						|
    $name                   = $user->get_name();
 | 
						|
    $license                = $fs->_get_license();
 | 
						|
    $is_license_foreign     = ( is_object( $license ) && $user->id != $license->user_id );
 | 
						|
    $is_data_debug_mode     = $fs->is_data_debug_mode();
 | 
						|
    $is_whitelabeled        = $fs->is_whitelabeled();
 | 
						|
    $subscription           = ( is_object( $license ) ?
 | 
						|
                                  $fs->_get_subscription( $license->id ) :
 | 
						|
                                  null );
 | 
						|
    $plan                   = $fs->get_plan();
 | 
						|
    $is_active_subscription = ( is_object( $subscription ) && $subscription->is_active() );
 | 
						|
    $is_paid_trial          = $fs->is_paid_trial();
 | 
						|
    $has_paid_plan          = $fs->apply_filters( 'has_paid_plan_account', $fs->has_paid_plan() );
 | 
						|
    $show_upgrade           = ( ! $is_whitelabeled && $has_paid_plan && ! $is_paying && ! $is_paid_trial );
 | 
						|
    $trial_plan             = $fs->get_trial_plan();
 | 
						|
 | 
						|
    $is_plan_change_supported = (
 | 
						|
        ! $fs->is_single_plan() &&
 | 
						|
        ! $fs->apply_filters( 'hide_plan_change', false )
 | 
						|
    );
 | 
						|
 | 
						|
	if ( $has_paid_plan ) {
 | 
						|
        $fs->_add_license_activation_dialog_box();
 | 
						|
	}
 | 
						|
 | 
						|
	if ( $fs->should_handle_user_change() ) {
 | 
						|
        $fs->_add_email_address_update_dialog_box();
 | 
						|
    }
 | 
						|
 | 
						|
    $ids_of_installs_activated_with_foreign_licenses = $fs->should_handle_user_change() ?
 | 
						|
        $fs->get_installs_ids_with_foreign_licenses() :
 | 
						|
        array();
 | 
						|
 | 
						|
    if ( ! empty( $ids_of_installs_activated_with_foreign_licenses ) ) {
 | 
						|
        $fs->_add_user_change_dialog_box( $ids_of_installs_activated_with_foreign_licenses );
 | 
						|
    }
 | 
						|
 | 
						|
    if ( $fs->is_whitelabeled( true ) || $fs->is_data_debug_mode() ) {
 | 
						|
        $fs->_add_data_debug_mode_dialog_box();
 | 
						|
    }
 | 
						|
 | 
						|
	if ( fs_request_get_bool( 'auto_install' ) ) {
 | 
						|
		$fs->_add_auto_installation_dialog_box();
 | 
						|
	}
 | 
						|
 | 
						|
	if ( fs_request_get_bool( 'activate_license' ) ) {
 | 
						|
		// Open the license activation dialog box on the account page.
 | 
						|
		add_action( 'admin_footer', array(
 | 
						|
			&$fs,
 | 
						|
			'_open_license_activation_dialog_box'
 | 
						|
		) );
 | 
						|
	}
 | 
						|
 | 
						|
    $show_billing = ( ! $is_whitelabeled && ! $fs->apply_filters( 'hide_billing_and_payments_info', false ) );
 | 
						|
    if ( $show_billing ) {
 | 
						|
        $payments = $fs->_fetch_payments();
 | 
						|
 | 
						|
        $show_billing = ( is_array( $payments ) && 0 < count( $payments ) );
 | 
						|
    }
 | 
						|
 | 
						|
 | 
						|
    $has_tabs = $fs->_add_tabs_before_content();
 | 
						|
 | 
						|
	// Aliases.
 | 
						|
	$download_latest_text         = fs_text_x_inline( 'Download Latest', 'as download latest version', 'download-latest', $slug );
 | 
						|
	$downgrading_plan_text        = fs_text_inline( 'Downgrading your plan', 'downgrading-plan', $slug );
 | 
						|
	$cancelling_subscription_text = fs_text_inline( 'Cancelling the subscription', 'cancelling-subscription', $slug );
 | 
						|
	/* translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the subscription' */
 | 
						|
	$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 );
 | 
						|
	$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 );
 | 
						|
	$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 );
 | 
						|
	$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 );
 | 
						|
	$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 );
 | 
						|
	/* translators: %s: Plan title (e.g. "Professional") */
 | 
						|
	$activate_plan_text = fs_text_inline( 'Activate %s Plan', 'activate-x-plan', $slug );
 | 
						|
	$version_text       = fs_text_x_inline( 'Version', 'product version', 'version', $slug );
 | 
						|
	/* translators: %s: Time period (e.g. Auto renews in "2 months") */
 | 
						|
	$renews_in_text = fs_text_inline( 'Auto renews in %s', 'renews-in', $slug );
 | 
						|
	/* translators: %s: Time period (e.g. Expires in "2 months") */
 | 
						|
	$expires_in_text   = fs_text_inline( 'Expires in %s', 'expires-in', $slug );
 | 
						|
	$sync_license_text = fs_text_x_inline( 'Sync License', 'as synchronize license', 'sync-license', $slug );
 | 
						|
	$cancel_trial_text = fs_text_inline( 'Cancel Trial', 'cancel-trial', $slug );
 | 
						|
	$change_plan_text  = fs_text_inline( 'Change Plan', 'change-plan', $slug );
 | 
						|
	$upgrade_text      = fs_text_x_inline( 'Upgrade', 'verb', 'upgrade', $slug );
 | 
						|
	$addons_text       = fs_text_inline( 'Add-Ons', 'add-ons', $slug );
 | 
						|
	$downgrade_text    = fs_text_x_inline( 'Downgrade', 'verb', 'downgrade', $slug );
 | 
						|
	$trial_text        = fs_text_x_inline( 'Trial', 'trial period', 'trial', $slug );
 | 
						|
	$free_text         = fs_text_inline( 'Free', 'free', $slug );
 | 
						|
	$activate_text     = fs_text_inline( 'Activate', 'activate', $slug );
 | 
						|
	$plan_text         = fs_text_x_inline( 'Plan', 'as product pricing plan', 'plan', $slug );
 | 
						|
	$bundle_plan_text  = fs_text_inline( 'Bundle Plan', 'bundle-plan', $slug );
 | 
						|
 | 
						|
    $show_plan_row    = true;
 | 
						|
    $show_license_row = is_object( $license );
 | 
						|
 | 
						|
	$site_view_params        = array();
 | 
						|
 | 
						|
    if ( fs_is_network_admin() ) {
 | 
						|
        $sites                   = Freemius::get_sites();
 | 
						|
        $all_installs_plan_id    = null;
 | 
						|
        $all_installs_license_id = ( $show_license_row ? $license->id : null );
 | 
						|
        foreach ( $sites as $s ) {
 | 
						|
            $site_info   = $fs->get_site_info( $s );
 | 
						|
            $install     = $fs->get_install_by_blog_id( $site_info['blog_id'] );
 | 
						|
            $view_params = array(
 | 
						|
                'freemius' => $fs,
 | 
						|
                'user'     => $fs->get_user(),
 | 
						|
                'license'  => $license,
 | 
						|
                'site'     => $site_info,
 | 
						|
                'install'  => $install,
 | 
						|
            );
 | 
						|
 | 
						|
            $site_view_params[] = $view_params;
 | 
						|
 | 
						|
            if ( empty( $install ) ) {
 | 
						|
                continue;
 | 
						|
            }
 | 
						|
 | 
						|
            if ( $show_plan_row ) {
 | 
						|
                if ( is_null( $all_installs_plan_id ) ) {
 | 
						|
                    $all_installs_plan_id = $install->plan_id;
 | 
						|
                } else if ( $all_installs_plan_id != $install->plan_id ) {
 | 
						|
                    $show_plan_row = false;
 | 
						|
                }
 | 
						|
            }
 | 
						|
 | 
						|
            if ( $show_license_row && $all_installs_license_id != $install->license_id ) {
 | 
						|
                $show_license_row = false;
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    $has_bundle_license = false;
 | 
						|
 | 
						|
    if ( is_object( $license ) &&
 | 
						|
        FS_Plugin_License::is_valid_id( $license->parent_license_id )
 | 
						|
    ) {
 | 
						|
        // Context license has a parent license, therefore, the account has a bundle license.
 | 
						|
        $has_bundle_license = true;
 | 
						|
    }
 | 
						|
 | 
						|
    $bundle_subscription             = null;
 | 
						|
    $is_bundle_first_payment_pending = false;
 | 
						|
 | 
						|
    if (
 | 
						|
        $show_plan_row &&
 | 
						|
        is_object( $license ) &&
 | 
						|
        $has_bundle_license
 | 
						|
    ) {
 | 
						|
        $bundle_plan_title               = strtoupper( $license->parent_plan_title );
 | 
						|
        $bundle_subscription             = $fs->_get_subscription( $license->parent_license_id );
 | 
						|
        $is_bundle_first_payment_pending = $license->is_first_payment_pending();
 | 
						|
    }
 | 
						|
 | 
						|
    $fs_blog_id = ( is_multisite() && ! is_network_admin() ) ?
 | 
						|
        get_current_blog_id() :
 | 
						|
        0;
 | 
						|
 | 
						|
    $active_plugins_directories_map = Freemius::get_active_plugins_directories_map( $fs_blog_id );
 | 
						|
 | 
						|
    $is_premium = $fs->is_premium();
 | 
						|
 | 
						|
    $account_addons       = $fs->get_updated_account_addons();
 | 
						|
    $installed_addons     = $fs->get_installed_addons();
 | 
						|
    $installed_addons_ids = array();
 | 
						|
 | 
						|
    /**
 | 
						|
     * 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.
 | 
						|
     *
 | 
						|
     * @author Leo Fajardo
 | 
						|
     *
 | 
						|
     * @since 2.4.0
 | 
						|
     */
 | 
						|
    foreach ( $installed_addons as $fs_addon ) {
 | 
						|
        $installed_addons_ids[] = $fs_addon->get_id();
 | 
						|
 | 
						|
        if ( $has_bundle_license ) {
 | 
						|
            // We already have the context bundle license details, skip.
 | 
						|
            continue;
 | 
						|
        }
 | 
						|
 | 
						|
        if (
 | 
						|
            $show_plan_row &&
 | 
						|
            $fs_addon->has_active_valid_license()
 | 
						|
        ) {
 | 
						|
            $addon_license = $fs_addon->_get_license();
 | 
						|
 | 
						|
            if ( FS_Plugin_License::is_valid_id( $addon_license->parent_license_id ) ) {
 | 
						|
                // Add-on's license is associated with a parent/bundle license.
 | 
						|
                $has_bundle_license = true;
 | 
						|
 | 
						|
                $bundle_plan_title               = strtoupper( $addon_license->parent_plan_title );
 | 
						|
                $bundle_subscription             = $fs_addon->_get_subscription( $addon_license->parent_license_id );
 | 
						|
                $is_bundle_first_payment_pending = $addon_license->is_first_payment_pending();
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    $addons_to_show = array_unique( array_merge( $installed_addons_ids, $account_addons ) );
 | 
						|
 | 
						|
    $is_active_bundle_subscription = ( is_object( $bundle_subscription ) && $bundle_subscription->is_active() );
 | 
						|
 | 
						|
    $available_license = ( $fs->is_free_plan() && ! fs_is_network_admin() ) ?
 | 
						|
        $fs->_get_available_premium_license( $site->is_localhost() ) :
 | 
						|
        null;
 | 
						|
 | 
						|
    $available_license_paid_plan = is_object( $available_license ) ?
 | 
						|
        $fs->_get_plan_by_id( $available_license->plan_id ) :
 | 
						|
        null;
 | 
						|
?>
 | 
						|
	<div class="wrap fs-section">
 | 
						|
		<?php if ( ! $has_tabs && ! $fs->apply_filters( 'hide_account_tabs', false ) ) : ?>
 | 
						|
		<h2 class="nav-tab-wrapper">
 | 
						|
			<a href="<?php echo esc_url( $fs->get_account_url() ) ?>"
 | 
						|
			   class="nav-tab nav-tab-active"><?php fs_esc_html_echo_inline( 'Account', 'account', $slug ) ?></a>
 | 
						|
			<?php if ( $fs->has_addons() ) : ?>
 | 
						|
				<a href="<?php echo esc_url( $fs->_get_admin_page_url( 'addons' ) ) ?>"
 | 
						|
				   class="nav-tab"><?php echo esc_html( $addons_text ) ?></a>
 | 
						|
			<?php endif ?>
 | 
						|
			<?php if ( $show_upgrade ) : ?>
 | 
						|
				<a href="<?php echo esc_url( $fs->get_upgrade_url() ) ?>" class="nav-tab"><?php echo esc_html( $upgrade_text ) ?></a>
 | 
						|
				<?php if ( $fs->apply_filters( 'show_trial', true ) && ! $fs->is_trial_utilized() && $fs->has_trial_plan() ) : ?>
 | 
						|
					<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>
 | 
						|
				<?php endif ?>
 | 
						|
			<?php endif ?>
 | 
						|
		</h2>
 | 
						|
		<?php endif ?>
 | 
						|
 | 
						|
		<div id="poststuff">
 | 
						|
			<div id="fs_account">
 | 
						|
				<div class="has-sidebar has-right-sidebar">
 | 
						|
					<div class="has-sidebar-content">
 | 
						|
						<div class="postbox">
 | 
						|
							<h3><span class="dashicons dashicons-businessman"></span> <?php fs_esc_html_echo_inline( 'Account Details', 'account-details', $slug ) ?></h3>
 | 
						|
							<div class="fs-header-actions">
 | 
						|
								<ul>
 | 
						|
                                    <?php if ( $fs->is_whitelabeled( true ) ) : ?>
 | 
						|
                                        <li>
 | 
						|
                                            <a href="#" class="debug-license-trigger"><i class="dashicons dashicons-<?php echo $is_whitelabeled ? 'editor-code' : 'controls-pause' ?>"></i> <span><?php
 | 
						|
                                                if ( $is_whitelabeled ) {
 | 
						|
                                                    fs_esc_html_echo_inline( 'Start Debug', 'start-debug-license', $slug );
 | 
						|
                                                } else {
 | 
						|
                                                    fs_esc_html_echo_inline( 'Stop Debug', 'stop-debug-license', $slug );
 | 
						|
                                                }
 | 
						|
                                            ?></span></a>
 | 
						|
                                        </li>
 | 
						|
                                        <li> • </li>
 | 
						|
                                    <?php endif ?>
 | 
						|
									<?php if ( $show_billing ) : ?>
 | 
						|
                                        <li><a href="#fs_billing"><i class="dashicons dashicons-portfolio"></i> <?php fs_esc_html_echo_inline( 'Billing & Invoices', 'billing-invoices', $slug ) ?></a></li>
 | 
						|
										<li> • </li>
 | 
						|
									<?php endif ?>
 | 
						|
                                    <?php if ( ! $is_whitelabeled ) : ?>
 | 
						|
                                        <?php if ( ! $is_paying ) : ?>
 | 
						|
                                            <li>
 | 
						|
                                                <?php
 | 
						|
                                                    $view_params = array(
 | 
						|
                                                        'freemius'          => $fs,
 | 
						|
                                                        'license'           => $available_license,
 | 
						|
                                                        'license_paid_plan' => $available_license_paid_plan,
 | 
						|
                                                    );
 | 
						|
                                                    fs_require_template( 'account/partials/disconnect-button.php', $view_params ); ?>
 | 
						|
                                            </li>
 | 
						|
                                            <li> • </li>
 | 
						|
                                        <?php endif ?>
 | 
						|
                                        <?php if ( $is_paying ) : ?>
 | 
						|
                                            <?php if ( ! fs_is_network_admin() ) : ?>
 | 
						|
                                            <li>
 | 
						|
                                                <form action="<?php echo esc_url( $fs->_get_admin_page_url( 'account' ) ) ?>" method="POST">
 | 
						|
                                                    <input type="hidden" name="fs_action" value="deactivate_license">
 | 
						|
                                                    <?php wp_nonce_field( 'deactivate_license' ) ?>
 | 
						|
                                                    <a href="#" class="fs-deactivate-license"><i
 | 
						|
                                                            class="dashicons dashicons-admin-network"></i> <?php fs_echo_inline( 'Deactivate License', 'deactivate-license', $slug ) ?>
 | 
						|
                                                    </a>
 | 
						|
                                                </form>
 | 
						|
                                            </li>
 | 
						|
                                            <li> • </li>
 | 
						|
                                            <?php endif ?>
 | 
						|
                                            <?php if ( ! $license->is_lifetime() &&
 | 
						|
                                                       $is_active_subscription
 | 
						|
                                            ) : ?>
 | 
						|
                                                <li>
 | 
						|
                                                    <form action="<?php echo esc_url( $fs->_get_admin_page_url( 'account' ) ) ?>" method="POST">
 | 
						|
                                                        <input type="hidden" name="fs_action" value="downgrade_account">
 | 
						|
                                                        <?php wp_nonce_field( 'downgrade_account' ) ?>
 | 
						|
                                                        <a href="#"
 | 
						|
                                                           onclick="if ( confirm('<?php echo esc_attr( sprintf(
 | 
						|
                                                               $downgrade_x_confirm_text,
 | 
						|
                                                               ( $fs->is_only_premium() ? $cancelling_subscription_text : $downgrading_plan_text ),
 | 
						|
                                                               $plan->title,
 | 
						|
                                                               human_time_diff( time(), strtotime( $license->expiration ) )
 | 
						|
                                                           ) ) ?> <?php if ( ! $license->is_block_features ) {
 | 
						|
                                                               echo esc_attr( sprintf( $after_downgrade_non_blocking_text, $plan->title, $fs->get_module_label( true ) ) );
 | 
						|
                                                           } else {
 | 
						|
                                                               echo esc_attr( sprintf( $after_downgrade_blocking_text, $plan->title ) );
 | 
						|
                                                           }?> <?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>
 | 
						|
                                                    </form>
 | 
						|
                                                </li>
 | 
						|
                                                <li> • </li>
 | 
						|
                                            <?php endif ?>
 | 
						|
                                            <?php if ( $is_plan_change_supported ) : ?>
 | 
						|
                                                <li>
 | 
						|
                                                    <a href="<?php echo esc_url( $fs->get_upgrade_url() ) ?>"><i
 | 
						|
                                                            class="dashicons dashicons-grid-view"></i> <?php echo esc_html( $change_plan_text ) ?></a>
 | 
						|
                                                </li>
 | 
						|
                                                <li> • </li>
 | 
						|
                                            <?php endif ?>
 | 
						|
                                        <?php elseif ( $is_paid_trial ) : ?>
 | 
						|
                                            <li>
 | 
						|
                                                <form action="<?php echo esc_url( $fs->_get_admin_page_url( 'account' ) ) ?>" method="POST">
 | 
						|
                                                    <input type="hidden" name="fs_action" value="cancel_trial">
 | 
						|
                                                    <?php wp_nonce_field( 'cancel_trial' ) ?>
 | 
						|
                                                    <a href="#" class="fs-cancel-trial"><i
 | 
						|
                                                            class="dashicons dashicons-download"></i> <?php echo esc_html( $cancel_trial_text ) ?></a>
 | 
						|
                                                </form>
 | 
						|
                                            </li>
 | 
						|
                                            <li> • </li>
 | 
						|
                                        <?php endif ?>
 | 
						|
                                    <?php endif ?>
 | 
						|
                                    <li>
 | 
						|
                                        <form action="<?php echo esc_url( $fs->_get_admin_page_url( 'account' ) ) ?>" method="POST">
 | 
						|
                                            <input type="hidden" name="fs_action" value="<?php echo esc_attr( $fs->get_unique_affix() ) ?>_sync_license">
 | 
						|
                                            <?php wp_nonce_field( $fs->get_unique_affix() . '_sync_license' ) ?>
 | 
						|
                                            <a href="#" onclick="this.parentNode.submit(); return false;"><i
 | 
						|
                                                    class="dashicons dashicons-image-rotate"></i> <?php fs_esc_html_echo_x_inline( 'Sync', 'as synchronize', 'sync', $slug ) ?></a>
 | 
						|
                                        </form>
 | 
						|
                                    </li>
 | 
						|
								</ul>
 | 
						|
							</div>
 | 
						|
							<div class="inside">
 | 
						|
								<table id="fs_account_details" cellspacing="0" class="fs-key-value-table">
 | 
						|
									<?php
 | 
						|
										$hide_license_key = ( ! $show_license_row || $fs->apply_filters( 'hide_license_key', false ) );
 | 
						|
 | 
						|
										$profile   = array();
 | 
						|
 | 
						|
    									if ( ! $is_whitelabeled ) {
 | 
						|
                                            $profile[] = array(
 | 
						|
                                                'id'    => 'user_name',
 | 
						|
                                                'title' => fs_text_inline( 'Name', 'name', $slug ),
 | 
						|
                                                'value' => $name
 | 
						|
                                            );
 | 
						|
                                            //					if (isset($user->email) && false !== strpos($user->email, '@'))
 | 
						|
                                            $profile[] = array(
 | 
						|
                                                'id'    => 'email',
 | 
						|
                                                'title' => fs_text_inline( 'Email', 'email', $slug ),
 | 
						|
                                                'value' => $user->email
 | 
						|
                                            );
 | 
						|
 | 
						|
                                            if ( is_numeric( $user->id ) ) {
 | 
						|
                                                $profile[] = array(
 | 
						|
                                                    'id'    => 'user_id',
 | 
						|
                                                    'title' => fs_text_inline( 'User ID', 'user-id', $slug ),
 | 
						|
                                                    'value' => $user->id
 | 
						|
                                                );
 | 
						|
                                            }
 | 
						|
                                        }
 | 
						|
 | 
						|
										$profile[] = array(
 | 
						|
											'id'    => 'product',
 | 
						|
											'title' => ( $fs->is_plugin() ?
 | 
						|
												fs_text_inline( 'Plugin', 'plugin', $slug ) :
 | 
						|
												fs_text_inline( 'Theme', 'theme', $slug ) ),
 | 
						|
											'value' => $fs->get_plugin_title()
 | 
						|
										);
 | 
						|
 | 
						|
										$profile[] = array(
 | 
						|
											'id'    => 'product_id',
 | 
						|
											'title' => ( $fs->is_plugin() ?
 | 
						|
												fs_text_inline( 'Plugin', 'plugin', $slug ) :
 | 
						|
												fs_text_inline( 'Theme', 'theme', $slug ) ) . ' ' . fs_text_inline( 'ID', 'id', $slug ),
 | 
						|
											'value' => $fs->get_id()
 | 
						|
										);
 | 
						|
 | 
						|
										if ( ! fs_is_network_admin()) {
 | 
						|
                                            $profile[] = array(
 | 
						|
                                                'id'    => 'site_id',
 | 
						|
                                                'title' => fs_text_inline( 'Site ID', 'site-id', $slug ),
 | 
						|
                                                'value' => is_string( $site->id ) ?
 | 
						|
                                                    $site->id :
 | 
						|
                                                    fs_text_inline( 'No ID', 'no-id', $slug )
 | 
						|
                                            );
 | 
						|
 | 
						|
                                            $profile[] = array(
 | 
						|
                                                'id'    => 'site_public_key',
 | 
						|
                                                'title' => fs_text_inline( 'Public Key', 'public-key', $slug ),
 | 
						|
                                                'value' => $site->public_key
 | 
						|
                                            );
 | 
						|
 | 
						|
                                            $profile[] = array(
 | 
						|
                                                'id'    => 'site_secret_key',
 | 
						|
                                                'title' => fs_text_inline( 'Secret Key', 'secret-key', $slug ),
 | 
						|
                                                'value' => ( ( is_string( $site->secret_key ) ) ?
 | 
						|
                                                    $site->secret_key :
 | 
						|
                                                    fs_text_x_inline( 'No Secret', 'as secret encryption key missing', 'no-secret', $slug )
 | 
						|
                                                )
 | 
						|
                                            );
 | 
						|
                                        }
 | 
						|
 | 
						|
										$profile[] = array(
 | 
						|
											'id'    => 'version',
 | 
						|
											'title' => $version_text,
 | 
						|
											'value' => $fs->get_plugin_version()
 | 
						|
										);
 | 
						|
 | 
						|
										if ( ! fs_is_network_admin() && $is_premium ) {
 | 
						|
										    $profile[] = array(
 | 
						|
                                                'id'    => 'beta_program',
 | 
						|
                                                'title' => '',
 | 
						|
                                                'value' => $site->is_beta
 | 
						|
                                            );
 | 
						|
                                        }
 | 
						|
 | 
						|
										if ( $has_paid_plan || $has_bundle_license ) {
 | 
						|
											if ( $fs->is_trial() ) {
 | 
						|
											    if ( $show_plan_row ) {
 | 
						|
                                                    $profile[] = array(
 | 
						|
                                                        'id'    => 'plan',
 | 
						|
                                                        'title' => $plan_text,
 | 
						|
                                                        'value' => ( is_string( $trial_plan->name ) ?
 | 
						|
                                                            strtoupper( $trial_plan->title ) :
 | 
						|
                                                            fs_text_inline( 'Trial', 'trial', $slug ) )
 | 
						|
                                                    );
 | 
						|
                                                }
 | 
						|
											} else {
 | 
						|
                                                if ( $show_plan_row ) {
 | 
						|
                                                    $profile[] = array(
 | 
						|
                                                        'id'    => 'plan',
 | 
						|
                                                        'title' => ( $has_bundle_license ? ucfirst( $fs->get_module_type() ) . ' ' : '' ) . $plan_text,
 | 
						|
                                                        'value' => strtoupper( is_string( $plan->name ) ?
 | 
						|
                                                            $plan->title :
 | 
						|
                                                            strtoupper( $free_text )
 | 
						|
                                                        )
 | 
						|
                                                    );
 | 
						|
 | 
						|
                                                    if ( $has_bundle_license ) {
 | 
						|
                                                        $profile[] = array(
 | 
						|
                                                            'id'    => 'bundle_plan',
 | 
						|
                                                            'title' => $bundle_plan_text,
 | 
						|
                                                            'value' => $bundle_plan_title
 | 
						|
                                                        );
 | 
						|
                                                    }
 | 
						|
                                                }
 | 
						|
 | 
						|
												if ( is_object( $license ) ) {
 | 
						|
													if ( ! $hide_license_key ) {
 | 
						|
														$profile[] = array(
 | 
						|
															'id'    => 'license_key',
 | 
						|
															'title' => fs_text_inline( 'License Key', $slug ),
 | 
						|
															'value' => $license->secret_key,
 | 
						|
														);
 | 
						|
													}
 | 
						|
												}
 | 
						|
											}
 | 
						|
										}
 | 
						|
									?>
 | 
						|
									<?php $odd = true;
 | 
						|
										foreach ( $profile as $p ) : ?>
 | 
						|
											<?php
 | 
						|
											if ( 'plan' === $p['id'] && ! $has_paid_plan ) {
 | 
						|
												// If plugin don't have any paid plans, there's no reason
 | 
						|
												// to show current plan.
 | 
						|
												continue;
 | 
						|
											}
 | 
						|
											?>
 | 
						|
											<tr class="fs-field-<?php echo esc_attr( $p['id'] ) ?><?php if ( $odd ) : ?> alternate<?php endif ?>">
 | 
						|
												<td>
 | 
						|
													<nobr><?php echo esc_attr( $p['title'] ) ?><?php echo ( ! empty( $p['title'] ) ) ? ':' : '' ?></nobr>
 | 
						|
												</td>
 | 
						|
												<td<?php if ( 'plan' === $p['id'] || 'bundle_plan' === $p['id'] ) { echo ' colspan="2"'; }?>>
 | 
						|
													<?php if ( in_array( $p['id'], array( 'license_key', 'site_secret_key' ) ) ) : ?>
 | 
						|
														<code><?php echo FS_Plugin_License::mask_secret_key_for_html( $p['value'] ) ?></code>
 | 
						|
														<?php if ( ! $is_whitelabeled ) : ?>
 | 
						|
                                                        <input type="text" value="<?php echo htmlspecialchars( $p['value'] ) ?>" style="display: none"
 | 
						|
														       readonly/>
 | 
						|
                                                        <?php endif ?>
 | 
						|
                                                    <?php elseif ( 'beta_program' === $p['id'] ) : ?>
 | 
						|
                                                        <label>
 | 
						|
                                                            <input type="checkbox" class="fs-toggle-beta-mode" <?php checked( true, $p['value'] ) ?>/><span><?php
 | 
						|
                                                                fs_esc_html_echo_inline( 'Join the Beta program', 'join-beta', $slug )
 | 
						|
                                                        ?></span></label>
 | 
						|
													<?php else : ?>
 | 
						|
														<code><?php echo htmlspecialchars( $p['value'] ) ?></code>
 | 
						|
													<?php endif ?>
 | 
						|
													<?php if ( 'email' === $p['id'] && ! $user->is_verified() ) : ?>
 | 
						|
														<label class="fs-tag fs-warn"><?php fs_esc_html_echo_inline( 'not verified', 'not-verified', $slug ) ?></label>
 | 
						|
													<?php endif ?>
 | 
						|
													<?php if ( 'plan' === $p['id'] ) : ?>
 | 
						|
														<?php if ( $fs->is_trial() ) : ?>
 | 
						|
															<label class="fs-tag fs-success"><?php echo esc_html( $trial_text ) ?></label>
 | 
						|
														<?php endif ?>
 | 
						|
														<?php if ( is_object( $license ) && ! $license->is_lifetime() ) : ?>
 | 
						|
															<?php if ( ! $is_active_subscription && ! $is_active_bundle_subscription && ! $license->is_first_payment_pending() ) : ?>
 | 
						|
                                                                <?php $is_license_expired = $license->is_expired() ?>
 | 
						|
                                                                <?php $expired_ago_text   = ( fs_text_inline( 'Expired', 'expired', $slug ) . ' ' . fs_text_x_inline( '%s ago', 'x-ago', $slug ) ) ?>
 | 
						|
																<label
 | 
						|
																	class="fs-tag <?php echo $is_license_expired ? 'fs-error' : 'fs-warn' ?>"><?php
 | 
						|
                                                                        echo esc_html( sprintf( $is_license_expired ? $expired_ago_text : $expires_in_text, human_time_diff( time(), strtotime( $license->expiration ) ) ) )
 | 
						|
                                                                    ?></label>
 | 
						|
															<?php elseif ( $is_active_subscription && ! $subscription->is_first_payment_pending() ) : ?>
 | 
						|
																<label class="fs-tag fs-success"><?php echo esc_html( sprintf( $renews_in_text, human_time_diff( time(), strtotime( $subscription->next_payment ) ) ) ) ?></label>
 | 
						|
															<?php endif ?>
 | 
						|
														<?php elseif ( $fs->is_trial() ) : ?>
 | 
						|
															<label class="fs-tag fs-warn"><?php echo esc_html( sprintf( $expires_in_text, human_time_diff( time(), strtotime( $site->trial_ends ) ) ) ) ?></label>
 | 
						|
														<?php endif ?>
 | 
						|
                                                        <?php if ( ! $is_whitelabeled ) : ?>
 | 
						|
														<div class="button-group">
 | 
						|
                                                            <?php if ( is_object( $available_license ) ) : ?>
 | 
						|
                                                                <?php
 | 
						|
                                                                $view_params = array(
 | 
						|
                                                                    'freemius'     => $fs,
 | 
						|
                                                                    'slug'         => $slug,
 | 
						|
                                                                    'license'      => $available_license,
 | 
						|
                                                                    'plan'         => $available_license_paid_plan,
 | 
						|
                                                                    'is_localhost' => $site->is_localhost(),
 | 
						|
                                                                    'install_id'   => $site->id,
 | 
						|
                                                                    'class'        => 'button-primary',
 | 
						|
                                                                );
 | 
						|
                                                                fs_require_template( 'account/partials/activate-license-button.php', $view_params ); ?>
 | 
						|
															<?php else : ?>
 | 
						|
																<form action="<?php echo esc_url( $fs->_get_admin_page_url( 'account' ) ) ?>"
 | 
						|
																      method="POST" class="button-group">
 | 
						|
																	<?php if ( $show_upgrade && $is_premium ) : ?>
 | 
						|
																		<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>
 | 
						|
																	<?php endif ?>
 | 
						|
																	<input type="submit" class="button"
 | 
						|
																	       value="<?php echo esc_attr( $sync_license_text ) ?>">
 | 
						|
																	<input type="hidden" name="fs_action"
 | 
						|
																	       value="<?php echo esc_attr( $fs->get_unique_affix() ) ?>_sync_license">
 | 
						|
																	<?php wp_nonce_field( $fs->get_unique_affix() . '_sync_license' ) ?>
 | 
						|
																	<?php if ( $show_upgrade || $is_plan_change_supported ) : ?>
 | 
						|
																	<a href="<?php echo esc_url( $fs->get_upgrade_url() ) ?>"
 | 
						|
																	   class="button<?php
 | 
						|
																		   echo $show_upgrade ?
 | 
						|
																			   ' button-primary fs-upgrade' :
 | 
						|
																			   ' fs-change-plan'; ?> button-upgrade"><i
 | 
						|
																			class="dashicons dashicons-cart"></i> <?php echo esc_html( $show_upgrade ? $upgrade_text : $change_plan_text ) ?></a>
 | 
						|
																	<?php endif ?>
 | 
						|
																</form>
 | 
						|
															<?php endif ?>
 | 
						|
														</div>
 | 
						|
                                                        <?php endif ?>
 | 
						|
													<?php elseif ( 'bundle_plan' === $p['id'] ) : ?>
 | 
						|
														<?php if ( is_object( $bundle_subscription ) ) : ?>
 | 
						|
															<?php if ( $is_active_bundle_subscription && ! $is_bundle_first_payment_pending ) : ?>
 | 
						|
																<label class="fs-tag fs-success"><?php echo esc_html( sprintf( $renews_in_text, human_time_diff( time(), strtotime( $bundle_subscription->next_payment ) ) ) ) ?></label>
 | 
						|
															<?php endif ?>
 | 
						|
                                                        <?php endif ?>
 | 
						|
													<?php elseif ( 'version' === $p['id'] && $has_paid_plan ) : ?>
 | 
						|
														<?php if ( $fs->has_premium_version() ) : ?>
 | 
						|
															<?php if ( $is_premium ) : ?>
 | 
						|
																<label
 | 
						|
																	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>
 | 
						|
															<?php elseif ( $fs->can_use_premium_code() ) : ?>
 | 
						|
																<label class="fs-tag fs-warn"><?php fs_esc_html_echo_inline( 'Free version', 'free-version', $slug ) ?></label>
 | 
						|
															<?php endif ?>
 | 
						|
														<?php endif ?>
 | 
						|
													<?php endif ?>
 | 
						|
												</td>
 | 
						|
                                                <?php if ( 'plan' !== $p['id'] && 'bundle_plan' !== $p['id'] ) : ?>
 | 
						|
													<td class="fs-right">
 | 
						|
														<?php if ( 'email' === $p['id'] && ! $user->is_verified() ) : ?>
 | 
						|
															<form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>" method="POST">
 | 
						|
																<input type="hidden" name="fs_action" value="verify_email">
 | 
						|
																<?php wp_nonce_field( 'verify_email' ) ?>
 | 
						|
																<input type="submit" class="button button-small"
 | 
						|
																       value="<?php fs_esc_attr_echo_inline( 'Verify Email', 'verify-email', $slug ) ?>">
 | 
						|
															</form>
 | 
						|
														<?php endif ?>
 | 
						|
														<?php if ( 'version' === $p['id'] ) : ?>
 | 
						|
															<?php if ( $fs->has_release_on_freemius() ) : ?>
 | 
						|
																<div class="button-group">
 | 
						|
																	<?php if ( $is_paying || $fs->is_trial() ) : ?>
 | 
						|
																		<?php if ( ! $fs->is_allowed_to_install() ) : ?>
 | 
						|
                                                                            <a target="_blank" rel="noopener" class="button button-primary"
 | 
						|
                                                                                href="<?php echo $fs->_get_latest_download_local_url() ?>"><?php
 | 
						|
                                                                                $download_version_text_suffix = ( is_object( $update ) ? ' [' . $update->version . ']' : '' );
 | 
						|
 | 
						|
                                                                                $download_version_text = sprintf(
 | 
						|
                                                                                    /* translators: %s: plan name (e.g. Download "Professional" Version) */
 | 
						|
                                                                                    fs_text_inline( 'Download %s Version', 'download-x-version', $slug ),
 | 
						|
                                                                                    ( $fs->is_trial() ? $trial_plan->title : $plan->title )
 | 
						|
                                                                                ) .
 | 
						|
                                                                                $download_version_text_suffix;
 | 
						|
 | 
						|
                                                                                $download_version_text_length = function_exists( 'mb_strlen' ) ?
 | 
						|
                                                                                    mb_strlen( $download_version_text ) :
 | 
						|
                                                                                    strlen( $download_version_text );
 | 
						|
 | 
						|
                                                                                if ( $download_version_text_length > 31 ) {
 | 
						|
                                                                                    /**
 | 
						|
                                                                                     * Try to limit the number of characters to 31 for now.
 | 
						|
                                                                                     *
 | 
						|
                                                                                     * @author Leo Fajardo (@leorw)
 | 
						|
                                                                                     * @aince 2.3.2
 | 
						|
                                                                                     */
 | 
						|
                                                                                    $download_version_text = fs_text_inline( 'Download Paid Version', 'download-paid-version', $slug ) . $download_version_text_suffix;
 | 
						|
                                                                                }
 | 
						|
 | 
						|
                                                                                echo $download_version_text;
 | 
						|
                                                                            ?></a>
 | 
						|
																		<?php elseif ( is_object( $update ) ) : ?>
 | 
						|
																			<?php
 | 
						|
																			$module_type = $fs->get_module_type();
 | 
						|
																			?>
 | 
						|
																			<a class="button button-primary"
 | 
						|
																			   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>
 | 
						|
																		<?php endif ?>
 | 
						|
																	<?php endif; ?>
 | 
						|
																</div>
 | 
						|
															<?php endif ?>
 | 
						|
															<?php
 | 
						|
														elseif ( in_array( $p['id'], array( 'license_key', 'site_secret_key' ) ) ) : ?>
 | 
						|
                                                            <?php if ( ! $is_whitelabeled && ( 'site_secret_key' === $p['id'] || ! $is_license_foreign ) ) : ?>
 | 
						|
                                                                <button class="button button-small fs-toggle-visibility"><?php fs_esc_html_echo_x_inline( 'Show', 'verb', 'show', $slug ) ?></button>
 | 
						|
                                                            <?php endif ?>
 | 
						|
                                                            <?php if ('license_key' === $p['id']) : ?>
 | 
						|
                                                                <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>
 | 
						|
                                                            <?php endif ?>
 | 
						|
															<?php
 | 
						|
														elseif (/*in_array($p['id'], array('site_secret_key', 'site_id', 'site_public_key')) ||*/
 | 
						|
														( is_string( $user->secret_key ) && in_array( $p['id'], array(
 | 
						|
																'email',
 | 
						|
																'user_name'
 | 
						|
															) ) )
 | 
						|
														) : ?>
 | 
						|
                                                            <?php if ( 'email' !== $p['id'] || ! fs_is_network_admin() ) : ?>
 | 
						|
															<form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>" method="POST"
 | 
						|
															      onsubmit="var val = prompt('<?php echo esc_attr( sprintf(
 | 
						|
                                                                      /* translators: %s: User's account property (e.g. name, email) */
 | 
						|
															          fs_text_inline( 'What is your %s?', 'what-is-your-x', $slug ),
 | 
						|
                                                                      $p['title']
 | 
						|
                                                                  ) ) ?>', '<?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;">
 | 
						|
																<input type="hidden" name="fs_action" value="update_<?php echo $p['id'] ?>">
 | 
						|
																<input type="hidden" name="fs_<?php echo $p['id'] ?>_<?php echo $fs->get_unique_affix() ?>"
 | 
						|
																       value="">
 | 
						|
																<?php wp_nonce_field( 'update_' . $p['id'] ) ?>
 | 
						|
																<input type="submit" class="button button-small <?php if ( 'email' === $p['id'] ) echo 'button-edit-email-address' ?>"
 | 
						|
																       value="<?php echo fs_esc_attr_x_inline( 'Edit', 'verb', 'edit', $slug ) ?>">
 | 
						|
															</form>
 | 
						|
                                                            <?php endif ?>
 | 
						|
                                                        <?php elseif ( 'user_id' === $p['id'] && ! empty( $ids_of_installs_activated_with_foreign_licenses ) ) : ?>
 | 
						|
                                                                <input id="fs_change_user" type="submit" class="button button-small"
 | 
						|
                                                                       value="<?php echo fs_esc_attr_inline( 'Change User', 'change-user', $slug ) ?>">
 | 
						|
														<?php endif ?>
 | 
						|
													</td>
 | 
						|
												<?php endif ?>
 | 
						|
											</tr>
 | 
						|
											<?php
 | 
						|
                                                if ( 'version' === $p['id'] && $is_premium ) {
 | 
						|
                                                    /**
 | 
						|
                                                     * If there's a row for the beta program, keep its background color
 | 
						|
                                                     * the same as the version info row.
 | 
						|
                                                     *
 | 
						|
                                                     * @author Leo Fajardo (@leorw)
 | 
						|
                                                     * @since 2.3.0
 | 
						|
                                                     */
 | 
						|
                                                    continue;
 | 
						|
                                                }
 | 
						|
 | 
						|
                                                $odd = ! $odd;
 | 
						|
                                        endforeach ?>
 | 
						|
								</table>
 | 
						|
							</div>
 | 
						|
						</div>
 | 
						|
						<?php if ( fs_is_network_admin() ) : ?>
 | 
						|
						<div id="fs_sites" class="postbox">
 | 
						|
							<h3><span class="dashicons dashicons-networking"></span> <?php fs_esc_html_echo_inline( 'Sites', 'sites', $slug ) ?></h3>
 | 
						|
							<div class="fs-header-actions">
 | 
						|
                                <?php if ( ! $is_whitelabeled ) : ?>
 | 
						|
                                    <?php $has_license = is_object( $license ) ?>
 | 
						|
                                    <?php if ( $has_license || ( $show_upgrade && $is_premium ) ) : ?>
 | 
						|
                                        <?php
 | 
						|
                                            $activate_license_button_text = $has_license ?
 | 
						|
                                                fs_esc_html_inline( 'Change License', 'change-license', $slug ) :
 | 
						|
                                                fs_esc_html_inline( 'Activate License', 'activate-license', $slug );
 | 
						|
                                        ?>
 | 
						|
                                        <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>
 | 
						|
                                    <?php endif ?>
 | 
						|
                                <?php endif ?>
 | 
						|
								<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>
 | 
						|
							</div>
 | 
						|
							<div class="inside">
 | 
						|
                                <div id="" class="fs-scrollable-table">
 | 
						|
                                    <div class="fs-table-head">
 | 
						|
                                        <table class="widefat">
 | 
						|
                                            <thead>
 | 
						|
                                            <tr>
 | 
						|
                                                <td><?php fs_esc_html_echo_inline('ID', 'id', $slug) ?></td>
 | 
						|
                                                <td><?php fs_esc_html_echo_inline('Address', 'address', $slug) ?></td>
 | 
						|
                                                <td><?php fs_esc_html_echo_inline('License', 'license', $slug) ?></td>
 | 
						|
                                                <td><?php fs_esc_html_echo_inline('Plan', 'plan', $slug) ?></td>
 | 
						|
                                                <td></td>
 | 
						|
                                            </tr>
 | 
						|
                                            </thead>
 | 
						|
                                        </table>
 | 
						|
                                    </div>
 | 
						|
                                    <div class="fs-table-body">
 | 
						|
                                        <table class="widefat">
 | 
						|
                                            <?php
 | 
						|
                                                $current_blog_id = get_current_blog_id();
 | 
						|
 | 
						|
                                                foreach ( $site_view_params as $view_params ) {
 | 
						|
                                                    fs_require_template(
 | 
						|
                                                    	'account/partials/site.php',
 | 
						|
	                                                    $view_params
 | 
						|
                                                    );
 | 
						|
                                                }
 | 
						|
 | 
						|
                                                /**
 | 
						|
                                                 * 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.
 | 
						|
                                                 *
 | 
						|
                                                 * @author Leo Fajardo (@leorw)
 | 
						|
                                                 * @since 2.5.0
 | 
						|
                                                 */
 | 
						|
                                                $current_install = $fs->get_site();
 | 
						|
 | 
						|
                                                if (
 | 
						|
                                                    is_object( $site ) &&
 | 
						|
                                                    ( ! is_object( $current_install ) || $current_install->id != $site->id )
 | 
						|
                                                ) {
 | 
						|
                                                    $fs->switch_to_blog( $current_blog_id, $site, true );
 | 
						|
                                                }
 | 
						|
                                            ?>
 | 
						|
                                        </table>
 | 
						|
                                    </div>
 | 
						|
                                </div>
 | 
						|
							</div>
 | 
						|
						</div>
 | 
						|
						<?php endif ?>
 | 
						|
						<?php if ( 0 < count( $addons_to_show ) ) : ?>
 | 
						|
							<!-- Add-Ons -->
 | 
						|
							<div class="postbox">
 | 
						|
								<div class="">
 | 
						|
									<!--				<div class="inside">-->
 | 
						|
									<table id="fs_addons" class="widefat">
 | 
						|
										<thead>
 | 
						|
										<tr>
 | 
						|
											<th><h3><?php echo esc_html( $addons_text ) ?></h3></th>
 | 
						|
											<th><?php fs_esc_html_echo_inline( 'ID', 'id', $slug ) ?></th>
 | 
						|
											<th><?php echo esc_html( $version_text ) ?></th>
 | 
						|
											<th><?php echo esc_html( $plan_text ) ?></th>
 | 
						|
											<th><?php fs_esc_html_echo_x_inline( 'License', 'as software license', 'license', $slug ) ?></th>
 | 
						|
											<th></th>
 | 
						|
											<?php if ( defined( 'WP_FS__DEV_MODE' ) && WP_FS__DEV_MODE ) : ?>
 | 
						|
												<th></th>
 | 
						|
											<?php endif ?>
 | 
						|
										</tr>
 | 
						|
										</thead>
 | 
						|
										<tbody>
 | 
						|
										<?php
 | 
						|
                                            $odd = true;
 | 
						|
 | 
						|
                                            $installed_addons_ids_map = array_flip( $installed_addons_ids );
 | 
						|
 | 
						|
                                            $addon_info_by_id     = array();
 | 
						|
                                            $hide_all_addons_data = false;
 | 
						|
 | 
						|
                                            if ( $fs->is_whitelabeled_by_flag() ) {
 | 
						|
                                                $hide_all_addons_data = true;
 | 
						|
 | 
						|
                                                foreach ( $addons_to_show as $addon_id ) {
 | 
						|
                                                    $is_addon_installed = isset( $installed_addons_ids_map[ $addon_id ] );
 | 
						|
                                                    $addon_info         = $fs->_get_addon_info( $addon_id, $is_addon_installed );
 | 
						|
                                                    $is_addon_connected = $addon_info['is_connected'];
 | 
						|
 | 
						|
                                                    $fs_addon = ( $is_addon_connected && $is_addon_installed ) ?
 | 
						|
                                                        freemius( $addon_id ) :
 | 
						|
                                                        null;
 | 
						|
 | 
						|
                                                    $is_whitelabeled = is_object( $fs_addon ) ?
 | 
						|
                                                        $fs_addon->is_whitelabeled( true ) :
 | 
						|
                                                        $addon_info['is_whitelabeled'];
 | 
						|
 | 
						|
                                                    if ( ! $is_whitelabeled ) {
 | 
						|
                                                        $hide_all_addons_data = false;
 | 
						|
                                                    }
 | 
						|
 | 
						|
                                                    if ( $is_data_debug_mode ) {
 | 
						|
                                                        $is_whitelabeled = false;
 | 
						|
                                                    }
 | 
						|
 | 
						|
                                                    $addon_info_by_id[ $addon_id ] = $addon_info;
 | 
						|
                                                }
 | 
						|
                                            }
 | 
						|
 | 
						|
											foreach ( $addons_to_show as $addon_id ) {
 | 
						|
											    $is_addon_installed = isset( $installed_addons_ids_map[ $addon_id ] );
 | 
						|
 | 
						|
											    if (
 | 
						|
                                                    $hide_all_addons_data &&
 | 
						|
                                                    ! $is_addon_installed &&
 | 
						|
                                                    ! file_exists( fs_normalize_path( WP_PLUGIN_DIR . '/' . $fs->get_addon_basename( $addon_id ) ) )
 | 
						|
                                                ) {
 | 
						|
											        continue;
 | 
						|
                                                }
 | 
						|
 | 
						|
												$addon_view_params = array(
 | 
						|
													'parent_fs'                      => $fs,
 | 
						|
													'addon_id'                       => $addon_id,
 | 
						|
													'odd'                            => $odd,
 | 
						|
													'fs_blog_id'                     => $fs_blog_id,
 | 
						|
                                                    'active_plugins_directories_map' => &$active_plugins_directories_map,
 | 
						|
                                                    'is_addon_installed'             => $is_addon_installed,
 | 
						|
                                                    'addon_info'                     => isset( $addon_info_by_id[ $addon_id ] ) ?
 | 
						|
                                                        $addon_info_by_id[ $addon_id ] :
 | 
						|
                                                        $fs->_get_addon_info( $addon_id, $is_addon_installed ),
 | 
						|
                                                    'is_whitelabeled'                => ( $is_whitelabeled && ! $is_data_debug_mode )
 | 
						|
												);
 | 
						|
 | 
						|
												fs_require_template(
 | 
						|
													'account/partials/addon.php',
 | 
						|
													$addon_view_params
 | 
						|
												);
 | 
						|
 | 
						|
												$odd = ! $odd;
 | 
						|
											} ?>
 | 
						|
										</tbody>
 | 
						|
									</table>
 | 
						|
								</div>
 | 
						|
							</div>
 | 
						|
						<?php endif ?>
 | 
						|
 | 
						|
						<?php $fs->do_action( 'after_account_details' ) ?>
 | 
						|
 | 
						|
						<?php
 | 
						|
							if ( $show_billing ) {
 | 
						|
								$view_params = array( 'id' => $VARS['id'], 'payments' => $payments );
 | 
						|
								fs_require_once_template( 'account/billing.php', $view_params );
 | 
						|
								fs_require_once_template( 'account/payments.php', $view_params );
 | 
						|
							}
 | 
						|
						?>
 | 
						|
					</div>
 | 
						|
				</div>
 | 
						|
			</div>
 | 
						|
		</div>
 | 
						|
	</div>
 | 
						|
    <?php
 | 
						|
        $subscription_cancellation_dialog_box_template_params = $fs->_get_subscription_cancellation_dialog_box_template_params( true );
 | 
						|
        if ( ! empty( $subscription_cancellation_dialog_box_template_params ) ) {
 | 
						|
            fs_require_template( 'forms/subscription-cancellation.php', $subscription_cancellation_dialog_box_template_params );
 | 
						|
        }
 | 
						|
    ?>
 | 
						|
    <script type="text/javascript">
 | 
						|
        (function ($) {
 | 
						|
            var setLoading = function ($this, label) {
 | 
						|
                // Set loading mode.
 | 
						|
                $(document.body).css({'cursor': 'wait'});
 | 
						|
 | 
						|
                $this.css({'cursor': 'wait'});
 | 
						|
 | 
						|
                if ($this.is('input'))
 | 
						|
                    $this.val(label);
 | 
						|
                else
 | 
						|
                    $this.html(label);
 | 
						|
 | 
						|
                setTimeout(function () {
 | 
						|
                    $this.attr('disabled', 'disabled');
 | 
						|
                }, 200);
 | 
						|
            };
 | 
						|
 | 
						|
	        $('.fs-toggle-visibility').click(function () {
 | 
						|
		        var
 | 
						|
			        $this = $(this),
 | 
						|
			        $parent = $this.closest('tr'),
 | 
						|
			        $input = $parent.find('input');
 | 
						|
 | 
						|
		        $parent.find('code').toggle();
 | 
						|
		        $input.toggle();
 | 
						|
 | 
						|
		        if ($input.is(':visible')) {
 | 
						|
			        $this.html('<?php fs_esc_js_echo_x_inline( 'Hide', 'verb', 'hide', $slug ) ?>');
 | 
						|
			        setTimeout(function () {
 | 
						|
				        $input.select().focus();
 | 
						|
			        }, 100);
 | 
						|
		        }
 | 
						|
		        else {
 | 
						|
			        $this.html( '<?php fs_esc_js_echo_x_inline( 'Show', 'verb', 'show', $slug ) ?>' );
 | 
						|
		        }
 | 
						|
	        });
 | 
						|
 | 
						|
            $('.fs-toggle-tracking').click(function () {
 | 
						|
                setLoading(
 | 
						|
                	$(this),
 | 
						|
	                ($(this).data('is-disconnected') ?
 | 
						|
		                '<?php fs_esc_js_echo_inline('Opting in', 'opting-in' ) ?>' :
 | 
						|
		                '<?php fs_esc_js_echo_inline('Opting out', 'opting-out' ) ?>') +
 | 
						|
		                '...'
 | 
						|
                );
 | 
						|
            });
 | 
						|
 | 
						|
            <?php
 | 
						|
                $plugin_title         = $fs->get_plugin_title();
 | 
						|
                $processing_text      = fs_esc_js_inline( 'Processing', 'processing' );
 | 
						|
                $confirmation_message = sprintf(
 | 
						|
                    '%s %s',
 | 
						|
                    sprintf( fs_esc_attr_inline( 'Get updates for bleeding edge Beta versions of %s.', 'get-beta-versions', $slug ), $plugin_title ),
 | 
						|
                    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 )
 | 
						|
                );
 | 
						|
            ?>
 | 
						|
 | 
						|
            $( '.fs-toggle-beta-mode' ).click( function () {
 | 
						|
                var $checkbox = $( this ),
 | 
						|
                    isChecked = $checkbox.is( ':checked' );
 | 
						|
 | 
						|
                if ( ! isChecked || confirm( '<?php echo $confirmation_message ?>' ) ) {
 | 
						|
                    $.ajax( {
 | 
						|
                        url   : <?php echo Freemius::ajax_url() ?>,
 | 
						|
                        method: 'POST',
 | 
						|
                        data  : {
 | 
						|
                            action   : '<?php echo $fs->get_ajax_action( 'set_beta_mode' ) ?>',
 | 
						|
                            security : '<?php echo $fs->get_ajax_security( 'set_beta_mode' ) ?>',
 | 
						|
                            is_beta  : isChecked,
 | 
						|
                            module_id: <?php echo $fs->get_id() ?>
 | 
						|
                        },
 | 
						|
                        beforeSend: function () {
 | 
						|
                            $checkbox.prop( 'disabled', true );
 | 
						|
                            $checkbox.parent().find( 'span' ).text( '<?php echo $processing_text ?>' + '...' );
 | 
						|
                        },
 | 
						|
                        complete: function () {
 | 
						|
                            $checkbox.prop( 'disabled', false );
 | 
						|
                            $checkbox.parent().find( 'span' ).text( '<?php fs_esc_js_echo_inline( 'Join the Beta Program', 'join-beta', $slug ) ?>' );
 | 
						|
                        }
 | 
						|
                    } );
 | 
						|
 | 
						|
                    return true;
 | 
						|
                }
 | 
						|
 | 
						|
                return false;
 | 
						|
            });
 | 
						|
 | 
						|
	        $('.fs-opt-in').click(function () {
 | 
						|
		        setLoading($(this), '<?php fs_esc_js_echo_inline('Opting in', 'opting-in' ) ?>...');
 | 
						|
	        });
 | 
						|
 | 
						|
	        $( '#fs_downgrade' ).submit(function( event ) {
 | 
						|
                event.preventDefault();
 | 
						|
 | 
						|
		        setLoading( $( this ).find( '.button' ), '<?php fs_esc_js_echo_inline( 'Downgrading', 'downgrading' ) ?>...' );
 | 
						|
	        });
 | 
						|
 | 
						|
            $('.fs-activate-license').click(function () {
 | 
						|
                setLoading($(this), '<?php fs_esc_js_echo_inline('Activating', 'activating' ) ?>...');
 | 
						|
            });
 | 
						|
 | 
						|
            var $deactivateLicenseOrCancelTrial = $( '.fs-deactivate-license, .fs-cancel-trial' ),
 | 
						|
                $subscriptionCancellationModal  = $( '.fs-modal-subscription-cancellation-<?php echo $fs->get_id() ?>' );
 | 
						|
 | 
						|
            if ( 0 !== $subscriptionCancellationModal.length ) {
 | 
						|
                $subscriptionCancellationModal.on( '<?php echo $fs->get_action_tag( 'subscription_cancellation_action' ) ?>', function( evt, cancelSubscription ) {
 | 
						|
                    setLoading(
 | 
						|
                        $deactivateLicenseOrCancelTrial,
 | 
						|
                        ( ! $deactivateLicenseOrCancelTrial.hasClass( 'fs-cancel-trial' ) ?
 | 
						|
                            '<?php fs_esc_js_echo_inline( 'Deactivating', 'deactivating', $slug ) ?>' :
 | 
						|
                            '<?php echo esc_html( sprintf( fs_text_inline( 'Cancelling %s', 'cancelling-x', $slug ), fs_text_inline( 'trial', 'trial', $slug ) ) ) ?>' ) + '...'
 | 
						|
                    );
 | 
						|
 | 
						|
                    $subscriptionCancellationModal.find( '.fs-modal-footer .button' ).addClass( 'disabled' );
 | 
						|
                    $deactivateLicenseOrCancelTrial.unbind( 'click' );
 | 
						|
 | 
						|
                    if ( false === cancelSubscription || $deactivateLicenseOrCancelTrial.hasClass( 'fs-cancel-trial' ) ) {
 | 
						|
                        $subscriptionCancellationModal.find( '.fs-modal-footer .button-primary' ).text( $deactivateLicenseOrCancelTrial.text() );
 | 
						|
 | 
						|
                        $deactivateLicenseOrCancelTrial[0].parentNode.submit();
 | 
						|
                    } else {
 | 
						|
                        var $form = $( 'input[value="downgrade_account"],input[value="cancel_trial"]' ).parent();
 | 
						|
                        $form.prepend( '<input type="hidden" name="deactivate_license" value="true" />' );
 | 
						|
 | 
						|
                        $subscriptionCancellationModal.find( '.fs-modal-footer .button-primary' ).text( '<?php echo esc_js( sprintf(
 | 
						|
                            fs_text_inline( 'Cancelling %s...', 'cancelling-x' , $slug ),
 | 
						|
                            $is_paid_trial ?
 | 
						|
                                fs_text_inline( 'trial', 'trial', $slug ) :
 | 
						|
                                fs_text_inline( 'subscription', 'subscription', $slug )
 | 
						|
                        ) ) ?>' );
 | 
						|
 | 
						|
                        $form.submit();
 | 
						|
                    }
 | 
						|
                });
 | 
						|
            }
 | 
						|
 | 
						|
            $deactivateLicenseOrCancelTrial.click(function() {
 | 
						|
                var $this = $( this );
 | 
						|
                if ( $this.hasClass( 'fs-cancel-trial' ) ) {
 | 
						|
                    $subscriptionCancellationModal.find( '.fs-modal-panel' ).find( 'ul.subscription-actions, .fs-price-increase-warning' ).remove();
 | 
						|
                    $subscriptionCancellationModal.find( '.fs-modal-panel > p' ).text( <?php echo json_encode( $cancel_trial_confirm_text ) ?> );
 | 
						|
                    $subscriptionCancellationModal.trigger( 'showModal' );
 | 
						|
                } 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 ) ?>')) {
 | 
						|
                    var $this = $(this);
 | 
						|
 | 
						|
                    if ( 0 !== $subscriptionCancellationModal.length ) {
 | 
						|
                        $subscriptionCancellationModal.trigger( 'showModal' );
 | 
						|
                    } else {
 | 
						|
                        setLoading( $this, '<?php fs_esc_js_echo_inline( 'Deactivating', 'deactivating', $slug ) ?>...' );
 | 
						|
                        $this[0].parentNode.submit();
 | 
						|
                    }
 | 
						|
                }
 | 
						|
 | 
						|
                return false;
 | 
						|
            });
 | 
						|
 | 
						|
            var $sitesSection = $('#fs_sites'),
 | 
						|
                $sitesTable = $sitesSection.find('.fs-scrollable-table'),
 | 
						|
                $sitesTableRows = $sitesTable.find('.fs-site-details');
 | 
						|
 | 
						|
            $('.fs-show-install-details').click(function(){
 | 
						|
                var installID = $(this).parents('.fs-site-details').attr('data-install-id');
 | 
						|
                $sitesSection.find('.fs-install-details[data-install-id=' + installID + ']').toggle();
 | 
						|
            });
 | 
						|
 | 
						|
 | 
						|
            var adjustColumnWidth = function($table) {
 | 
						|
                var $headerColumns = $table.find('.fs-table-head td'),
 | 
						|
                    $bodyColumns   = $table.find('.fs-table-body tr:first > td');
 | 
						|
 | 
						|
                for (var i = 0, len = $headerColumns.length; i < len; i++) {
 | 
						|
                    $($headerColumns[i]).width($($bodyColumns[i]).width());
 | 
						|
                }
 | 
						|
                for (i = 0, len = $headerColumns.length; i < len; i++) {
 | 
						|
                    $($bodyColumns[i]).width($($headerColumns[i]).width());
 | 
						|
                }
 | 
						|
            };
 | 
						|
 | 
						|
            adjustColumnWidth($sitesTable);
 | 
						|
 | 
						|
            $sitesSection.find('.fs-search').keyup(function(){
 | 
						|
                var search = $(this).val().trim();
 | 
						|
 | 
						|
                if ('' === search){
 | 
						|
                    // Show all.
 | 
						|
                    $sitesTableRows.show();
 | 
						|
                    return;
 | 
						|
                }
 | 
						|
 | 
						|
                var url;
 | 
						|
 | 
						|
                $sitesTableRows.each(function(index){
 | 
						|
                    url = $(this).find('.fs-field-url').html();
 | 
						|
 | 
						|
                    if (-1 < url.indexOf(search)){
 | 
						|
                        $(this).show();
 | 
						|
                    } else {
 | 
						|
                        $(this).hide();
 | 
						|
                    }
 | 
						|
                });
 | 
						|
            });
 | 
						|
 | 
						|
            $( '.fs-toggle-whitelabel-mode' ).click( function () {
 | 
						|
                var $toggleLink = $( this );
 | 
						|
 | 
						|
                $.ajax( {
 | 
						|
                    url   : <?php echo Freemius::ajax_url() ?>,
 | 
						|
                    method: 'POST',
 | 
						|
                    data  : {
 | 
						|
                        action   : '<?php echo $fs->get_ajax_action( 'toggle_whitelabel_mode' ) ?>',
 | 
						|
                        security : '<?php echo $fs->get_ajax_security( 'toggle_whitelabel_mode' ) ?>',
 | 
						|
                        module_id: <?php echo $fs->get_id() ?>
 | 
						|
                    },
 | 
						|
                    beforeSend: function () {
 | 
						|
                        $toggleLink.parent().text( '<?php
 | 
						|
                            $is_whitelabeled ?
 | 
						|
                                fs_esc_html_echo_inline( 'Disabling white-label mode', 'disabling-whitelabel-mode' ) :
 | 
						|
                                fs_esc_html_echo_inline( 'Enabling white-label mode', 'enabling-whitelabel-mode' )
 | 
						|
                        ?>' + '...' );
 | 
						|
                    },
 | 
						|
                    complete: function () {
 | 
						|
                        location.reload();
 | 
						|
                    }
 | 
						|
                } );
 | 
						|
            });
 | 
						|
        })(jQuery);
 | 
						|
    </script>
 | 
						|
<?php
 | 
						|
	if ( $has_tabs ) {
 | 
						|
		$fs->_add_tabs_after_content();
 | 
						|
	}
 | 
						|
 | 
						|
	$params = array(
 | 
						|
		'page'           => 'account',
 | 
						|
		'module_id'      => $fs->get_id(),
 | 
						|
		'module_type'    => $fs->get_module_type(),
 | 
						|
		'module_slug'    => $slug,
 | 
						|
		'module_version' => $fs->get_plugin_version(),
 | 
						|
	);
 | 
						|
    fs_require_template( 'powered-by.php', $params );
 |