Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/clone/wp-conte.../plugins/content-.../inc/freemius/includes
File: class-freemius.php
$install
[12500] Fix | Delete
);
[12501] Fix | Delete
}
[12502] Fix | Delete
[12503] Fix | Delete
return true;
[12504] Fix | Delete
}
[12505] Fix | Delete
[12506] Fix | Delete
/**
[12507] Fix | Delete
* Activate a given license on a collection of blogs/sites that are not yet opted-in.
[12508] Fix | Delete
*
[12509] Fix | Delete
* @author Vova Feldman (@svovaf)
[12510] Fix | Delete
* @since 2.3.1
[12511] Fix | Delete
*
[12512] Fix | Delete
* @param \FS_User $user
[12513] Fix | Delete
* @param string $license_key
[12514] Fix | Delete
*
[12515] Fix | Delete
* @return true|mixed True if successful, otherwise, the API result.
[12516] Fix | Delete
*/
[12517] Fix | Delete
private function activate_license_on_site( FS_User $user, $license_key ) {
[12518] Fix | Delete
return $this->activate_license_on_many_sites( $user, $license_key );
[12519] Fix | Delete
}
[12520] Fix | Delete
[12521] Fix | Delete
/**
[12522] Fix | Delete
* Activate a given license on a collection of blogs/sites that are not yet opted-in.
[12523] Fix | Delete
*
[12524] Fix | Delete
* @author Vova Feldman (@svovaf)
[12525] Fix | Delete
* @since 2.0.0
[12526] Fix | Delete
*
[12527] Fix | Delete
* @param \FS_User $user
[12528] Fix | Delete
* @param string $license_key
[12529] Fix | Delete
* @param int[] $site_ids
[12530] Fix | Delete
*
[12531] Fix | Delete
* @return true|mixed True if successful, otherwise, the API result.
[12532] Fix | Delete
*/
[12533] Fix | Delete
private function activate_license_on_many_sites(
[12534] Fix | Delete
FS_User $user,
[12535] Fix | Delete
$license_key,
[12536] Fix | Delete
array $site_ids = array()
[12537] Fix | Delete
) {
[12538] Fix | Delete
$sites = array();
[12539] Fix | Delete
foreach ( $site_ids as $site_id ) {
[12540] Fix | Delete
$sites[] = $this->get_site_info( array( 'blog_id' => $site_id ) );
[12541] Fix | Delete
}
[12542] Fix | Delete
[12543] Fix | Delete
// Install the plugin.
[12544] Fix | Delete
$result = $this->create_installs_with_user(
[12545] Fix | Delete
$user,
[12546] Fix | Delete
$license_key,
[12547] Fix | Delete
false,
[12548] Fix | Delete
$sites,
[12549] Fix | Delete
false,
[12550] Fix | Delete
true
[12551] Fix | Delete
);
[12552] Fix | Delete
[12553] Fix | Delete
if ( ! $this->is_api_result_entity( $result ) &&
[12554] Fix | Delete
! $this->is_api_result_object( $result, 'installs' )
[12555] Fix | Delete
) {
[12556] Fix | Delete
return $result;
[12557] Fix | Delete
}
[12558] Fix | Delete
[12559] Fix | Delete
$installs = array();
[12560] Fix | Delete
[12561] Fix | Delete
if ( $this->is_api_result_entity( $result ) ) {
[12562] Fix | Delete
$install = new FS_Site( $result );
[12563] Fix | Delete
[12564] Fix | Delete
$this->_user = $user;
[12565] Fix | Delete
[12566] Fix | Delete
$this->_store_site( true, null, $install );
[12567] Fix | Delete
[12568] Fix | Delete
$this->_site = $install;
[12569] Fix | Delete
[12570] Fix | Delete
$this->reset_anonymous_mode();
[12571] Fix | Delete
} else {
[12572] Fix | Delete
foreach ( $result->installs as $install ) {
[12573] Fix | Delete
$installs[] = new FS_Site( $install );
[12574] Fix | Delete
}
[12575] Fix | Delete
[12576] Fix | Delete
// Map site addresses to their blog IDs.
[12577] Fix | Delete
$address_to_blog_map = $this->get_address_to_blog_map();
[12578] Fix | Delete
[12579] Fix | Delete
$first_blog_id = null;
[12580] Fix | Delete
[12581] Fix | Delete
foreach ( $installs as $install ) {
[12582] Fix | Delete
$address = trailingslashit( fs_strip_url_protocol( $install->url ) );
[12583] Fix | Delete
$blog_id = $address_to_blog_map[ $address ];
[12584] Fix | Delete
[12585] Fix | Delete
$this->_store_site( true, $blog_id, $install );
[12586] Fix | Delete
[12587] Fix | Delete
$this->reset_anonymous_mode( $blog_id );
[12588] Fix | Delete
[12589] Fix | Delete
if ( is_null( $first_blog_id ) ) {
[12590] Fix | Delete
$first_blog_id = $blog_id;
[12591] Fix | Delete
}
[12592] Fix | Delete
}
[12593] Fix | Delete
[12594] Fix | Delete
if ( ! FS_Site::is_valid_id( $this->_storage->network_install_blog_id ) ) {
[12595] Fix | Delete
$this->_storage->network_install_blog_id = $first_blog_id;
[12596] Fix | Delete
}
[12597] Fix | Delete
}
[12598] Fix | Delete
[12599] Fix | Delete
return true;
[12600] Fix | Delete
}
[12601] Fix | Delete
[12602] Fix | Delete
/**
[12603] Fix | Delete
* Sync site's license with user licenses.
[12604] Fix | Delete
*
[12605] Fix | Delete
* @author Vova Feldman (@svovaf)
[12606] Fix | Delete
* @since 1.0.6
[12607] Fix | Delete
*
[12608] Fix | Delete
* @param FS_Plugin_License|null $new_license
[12609] Fix | Delete
*
[12610] Fix | Delete
* @return FS_Plugin_License|null
[12611] Fix | Delete
*/
[12612] Fix | Delete
function _update_site_license( $new_license ) {
[12613] Fix | Delete
$this->_logger->entrance();
[12614] Fix | Delete
[12615] Fix | Delete
/**
[12616] Fix | Delete
* In case this call will be removed in the future, the `_sync_licenses()` method needs to be updated
[12617] Fix | Delete
* accordingly so that it will also handle the case when an ownership change is done via license
[12618] Fix | Delete
* activation.
[12619] Fix | Delete
*
[12620] Fix | Delete
* @author Leo Fajardo (@leorw)
[12621] Fix | Delete
* @since 2.3.2
[12622] Fix | Delete
*/
[12623] Fix | Delete
$this->set_license( $new_license );
[12624] Fix | Delete
[12625] Fix | Delete
if ( ! is_object( $new_license ) ) {
[12626] Fix | Delete
$this->_site->license_id = null;
[12627] Fix | Delete
$this->_sync_site_subscription( null );
[12628] Fix | Delete
[12629] Fix | Delete
return $this->_license;
[12630] Fix | Delete
}
[12631] Fix | Delete
[12632] Fix | Delete
$this->_site->license_id = $this->_license->id;
[12633] Fix | Delete
[12634] Fix | Delete
if ( ! is_array( $this->_licenses ) ) {
[12635] Fix | Delete
$this->_licenses = array();
[12636] Fix | Delete
}
[12637] Fix | Delete
[12638] Fix | Delete
$is_license_found = false;
[12639] Fix | Delete
for ( $i = 0, $len = count( $this->_licenses ); $i < $len; $i ++ ) {
[12640] Fix | Delete
if ( $new_license->id == $this->_licenses[ $i ]->id ) {
[12641] Fix | Delete
$this->_licenses[ $i ] = $new_license;
[12642] Fix | Delete
[12643] Fix | Delete
$is_license_found = true;
[12644] Fix | Delete
break;
[12645] Fix | Delete
}
[12646] Fix | Delete
}
[12647] Fix | Delete
[12648] Fix | Delete
// If new license just append.
[12649] Fix | Delete
if ( ! $is_license_found ) {
[12650] Fix | Delete
$this->_licenses[] = $new_license;
[12651] Fix | Delete
}
[12652] Fix | Delete
[12653] Fix | Delete
$this->_sync_site_subscription( $new_license );
[12654] Fix | Delete
[12655] Fix | Delete
return $this->_license;
[12656] Fix | Delete
}
[12657] Fix | Delete
[12658] Fix | Delete
/**
[12659] Fix | Delete
* @author Vova Feldman (@svovaf)
[12660] Fix | Delete
* @since 2.3.1
[12661] Fix | Delete
*
[12662] Fix | Delete
* @param \FS_Plugin_License $license
[12663] Fix | Delete
*/
[12664] Fix | Delete
private function set_license( FS_Plugin_License $license = null ) {
[12665] Fix | Delete
$this->_license = $license;
[12666] Fix | Delete
[12667] Fix | Delete
$this->maybe_update_whitelabel_flag( $license );
[12668] Fix | Delete
}
[12669] Fix | Delete
[12670] Fix | Delete
/**
[12671] Fix | Delete
* @author Leo Fajardo (@leorw)
[12672] Fix | Delete
* @since 2.3.1
[12673] Fix | Delete
*
[12674] Fix | Delete
* @param FS_Plugin_License $license
[12675] Fix | Delete
*/
[12676] Fix | Delete
private function maybe_update_whitelabel_flag( $license ) {
[12677] Fix | Delete
$is_whitelabeled = isset( $this->_storage->is_whitelabeled ) ?
[12678] Fix | Delete
$this->_storage->is_whitelabeled :
[12679] Fix | Delete
false;
[12680] Fix | Delete
[12681] Fix | Delete
if ( is_object( $license ) ) {
[12682] Fix | Delete
$license_user = self::_get_user_by_id( $license->user_id );
[12683] Fix | Delete
[12684] Fix | Delete
if ( ! is_object( $license_user ) ) {
[12685] Fix | Delete
// If foreign license, do not update the `is_whitelabeled` flag.
[12686] Fix | Delete
return;
[12687] Fix | Delete
}
[12688] Fix | Delete
[12689] Fix | Delete
if ( $this->is_addon() ) {
[12690] Fix | Delete
/**
[12691] Fix | Delete
* Store the last license data to the parent's storage since it's needed only when showing the
[12692] Fix | Delete
* "Start Debug" dialog which is triggered from the "Account" page. This way, there's no need to
[12693] Fix | Delete
* iterate over the add-ons just to get the last license data.
[12694] Fix | Delete
*/
[12695] Fix | Delete
$this->get_parent_instance()->store_last_activated_license_data( $license, $license_user );
[12696] Fix | Delete
} else {
[12697] Fix | Delete
$this->store_last_activated_license_data( $license );
[12698] Fix | Delete
}
[12699] Fix | Delete
[12700] Fix | Delete
if ( $license->is_whitelabeled ) {
[12701] Fix | Delete
// Activated a developer license, data should be hidden.
[12702] Fix | Delete
$is_whitelabeled = true;
[12703] Fix | Delete
} else if ( $this->is_registered() && $this->_user->id == $license->user_id ) {
[12704] Fix | Delete
// The account owner activated a regular license key, no need to hide the data.
[12705] Fix | Delete
$is_whitelabeled = false;
[12706] Fix | Delete
}
[12707] Fix | Delete
}
[12708] Fix | Delete
[12709] Fix | Delete
$this->_storage->is_whitelabeled = $is_whitelabeled;
[12710] Fix | Delete
[12711] Fix | Delete
// Reset the whitelabeled status after update.
[12712] Fix | Delete
$this->is_whitelabeled = null;
[12713] Fix | Delete
if ( $this->is_addon() ) {
[12714] Fix | Delete
$parent_fs = $this->get_parent_instance();
[12715] Fix | Delete
[12716] Fix | Delete
if ( is_object( $parent_fs ) ) {
[12717] Fix | Delete
$parent_fs->is_whitelabeled = null;
[12718] Fix | Delete
}
[12719] Fix | Delete
}
[12720] Fix | Delete
}
[12721] Fix | Delete
[12722] Fix | Delete
/**
[12723] Fix | Delete
* @author Leo Fajardo (@leorw)
[12724] Fix | Delete
* @since 2.3.1
[12725] Fix | Delete
*
[12726] Fix | Delete
* @param FS_Plugin_License $license
[12727] Fix | Delete
* @param FS_User $license_user
[12728] Fix | Delete
*/
[12729] Fix | Delete
private function store_last_activated_license_data( FS_Plugin_License $license, $license_user = null ) {
[12730] Fix | Delete
if ( ! is_object( $license_user ) ) {
[12731] Fix | Delete
$this->_storage->last_license_key = md5( $license->secret_key );
[12732] Fix | Delete
$this->_storage->last_license_user_id = null;
[12733] Fix | Delete
} else {
[12734] Fix | Delete
$this->_storage->last_license_user_key = md5( $license_user->secret_key );
[12735] Fix | Delete
$this->_storage->last_license_user_id = $license_user->id;
[12736] Fix | Delete
}
[12737] Fix | Delete
}
[12738] Fix | Delete
[12739] Fix | Delete
/**
[12740] Fix | Delete
* @author Leo Fajardo (@leorw)
[12741] Fix | Delete
* @since 2.3.1
[12742] Fix | Delete
*
[12743] Fix | Delete
* @param bool $ignore_data_debug_mode
[12744] Fix | Delete
*
[12745] Fix | Delete
* @return bool
[12746] Fix | Delete
*/
[12747] Fix | Delete
function is_whitelabeled_by_flag( $ignore_data_debug_mode = false ) {
[12748] Fix | Delete
if ( true !== $this->_storage->is_whitelabeled ) {
[12749] Fix | Delete
return false;
[12750] Fix | Delete
} else if ( $ignore_data_debug_mode ) {
[12751] Fix | Delete
return true;
[12752] Fix | Delete
}
[12753] Fix | Delete
[12754] Fix | Delete
$fs = $this->is_addon() ?
[12755] Fix | Delete
$this->get_parent_instance() :
[12756] Fix | Delete
$this;
[12757] Fix | Delete
[12758] Fix | Delete
return ! $fs->is_data_debug_mode();
[12759] Fix | Delete
}
[12760] Fix | Delete
[12761] Fix | Delete
/**
[12762] Fix | Delete
* @author Leo Fajardo (@leorw)
[12763] Fix | Delete
* @since 2.3.1
[12764] Fix | Delete
*
[12765] Fix | Delete
* @return number
[12766] Fix | Delete
*/
[12767] Fix | Delete
function get_last_license_user_id() {
[12768] Fix | Delete
return ( FS_User::is_valid_id( $this->_storage->last_license_user_id ) ) ?
[12769] Fix | Delete
$this->_storage->last_license_user_id :
[12770] Fix | Delete
null;
[12771] Fix | Delete
}
[12772] Fix | Delete
[12773] Fix | Delete
/**
[12774] Fix | Delete
* @author Leo Fajardo (@leorw)
[12775] Fix | Delete
* @since 2.3.1
[12776] Fix | Delete
*
[12777] Fix | Delete
* @param int $blog_id
[12778] Fix | Delete
* @param bool $ignore_data_debug_mode
[12779] Fix | Delete
*
[12780] Fix | Delete
* @return bool
[12781] Fix | Delete
*/
[12782] Fix | Delete
function is_whitelabeled( $ignore_data_debug_mode = false, $blog_id = null ) {
[12783] Fix | Delete
if ( ! is_null( $blog_id ) ) {
[12784] Fix | Delete
$this->switch_to_blog( $blog_id );
[12785] Fix | Delete
}
[12786] Fix | Delete
[12787] Fix | Delete
if ( ! is_null( $this->is_whitelabeled ) ) {
[12788] Fix | Delete
$is_whitelabeled = $this->is_whitelabeled;
[12789] Fix | Delete
} else {
[12790] Fix | Delete
$is_whitelabeled = false;
[12791] Fix | Delete
[12792] Fix | Delete
$is_whitelabeled_flag = $this->is_whitelabeled_by_flag( true );
[12793] Fix | Delete
[12794] Fix | Delete
if ( ! $this->has_addons() ) {
[12795] Fix | Delete
$is_whitelabeled = $is_whitelabeled_flag;
[12796] Fix | Delete
} else if ( $is_whitelabeled_flag ) {
[12797] Fix | Delete
$is_whitelabeled = true;
[12798] Fix | Delete
} else {
[12799] Fix | Delete
if ( $this->is_registered() || $this->is_premium() ) {
[12800] Fix | Delete
$addon_ids = $this->get_updated_account_addons();
[12801] Fix | Delete
} else {
[12802] Fix | Delete
$addons = self::get_all_addons();
[12803] Fix | Delete
[12804] Fix | Delete
$plugin_addons = isset( $addons[ $this->_plugin->id ] ) ?
[12805] Fix | Delete
$addons[ $this->_plugin->id ] :
[12806] Fix | Delete
array();
[12807] Fix | Delete
[12808] Fix | Delete
$addon_ids = array();
[12809] Fix | Delete
foreach ( $plugin_addons as $addon ) {
[12810] Fix | Delete
$addon_ids[] = $addon->id;
[12811] Fix | Delete
}
[12812] Fix | Delete
}
[12813] Fix | Delete
[12814] Fix | Delete
$installed_addons = $this->get_installed_addons();
[12815] Fix | Delete
foreach ( $installed_addons as $fs_addon ) {
[12816] Fix | Delete
$addon_ids[] = $fs_addon->get_id();
[12817] Fix | Delete
}
[12818] Fix | Delete
[12819] Fix | Delete
if ( ! empty( $addon_ids ) ) {
[12820] Fix | Delete
$addon_ids = array_unique( $addon_ids );
[12821] Fix | Delete
[12822] Fix | Delete
$is_network_level = (
[12823] Fix | Delete
fs_is_network_admin() &&
[12824] Fix | Delete
$this->is_network_active()
[12825] Fix | Delete
);
[12826] Fix | Delete
[12827] Fix | Delete
foreach ( $addon_ids as $addon_id ) {
[12828] Fix | Delete
$addon = $this->get_addon( $addon_id );
[12829] Fix | Delete
[12830] Fix | Delete
if ( ! is_object( $addon ) ) {
[12831] Fix | Delete
continue;
[12832] Fix | Delete
}
[12833] Fix | Delete
[12834] Fix | Delete
$addon_storage = FS_Storage::instance( WP_FS__MODULE_TYPE_PLUGIN, $addon->slug );
[12835] Fix | Delete
$fs_addon = $this->is_addon_activated( $addon_id ) ?
[12836] Fix | Delete
self::get_addon_instance( $addon_id ) :
[12837] Fix | Delete
null;
[12838] Fix | Delete
[12839] Fix | Delete
$was_addon_network_activated = false;
[12840] Fix | Delete
[12841] Fix | Delete
if ( is_object( $fs_addon ) ) {
[12842] Fix | Delete
$was_addon_network_activated = $fs_addon->is_network_active();
[12843] Fix | Delete
} else if ( $is_network_level ) {
[12844] Fix | Delete
$was_addon_network_activated = $addon_storage->get( 'was_plugin_loaded', false, true );
[12845] Fix | Delete
}
[12846] Fix | Delete
[12847] Fix | Delete
$network_delegated_connection = (
[12848] Fix | Delete
$was_addon_network_activated &&
[12849] Fix | Delete
$addon_storage->get( 'is_delegated_connection', false, true )
[12850] Fix | Delete
);
[12851] Fix | Delete
[12852] Fix | Delete
if (
[12853] Fix | Delete
$is_network_level &&
[12854] Fix | Delete
( ! $was_addon_network_activated || $network_delegated_connection )
[12855] Fix | Delete
) {
[12856] Fix | Delete
$sites = self::get_sites();
[12857] Fix | Delete
[12858] Fix | Delete
/**
[12859] Fix | Delete
* If in network admin area and the add-on was not network-activated or network-activated
[12860] Fix | Delete
* and network-delegated, find any add-on whose is_whitelabeled flag is true.
[12861] Fix | Delete
*/
[12862] Fix | Delete
foreach ( $sites as $site ) {
[12863] Fix | Delete
$site_info = $this->get_site_info( $site );
[12864] Fix | Delete
[12865] Fix | Delete
if ( $addon_storage->get( 'is_whitelabeled', false, $site_info['blog_id'] ) ) {
[12866] Fix | Delete
$is_whitelabeled = true;
[12867] Fix | Delete
break;
[12868] Fix | Delete
}
[12869] Fix | Delete
}
[12870] Fix | Delete
[12871] Fix | Delete
if ( $is_whitelabeled ) {
[12872] Fix | Delete
break;
[12873] Fix | Delete
}
[12874] Fix | Delete
} else {
[12875] Fix | Delete
/**
[12876] Fix | Delete
* This will be executed when any of the following is met:
[12877] Fix | Delete
* 1. Add-on was network-activated, not network-delegated, and in network admin area.
[12878] Fix | Delete
* 2. Add-on was network-activated, network-delegated, and in site admin area.
[12879] Fix | Delete
* 3. Add-on was not network-activated and in site admin area.
[12880] Fix | Delete
*/
[12881] Fix | Delete
if ( true === $addon_storage->is_whitelabeled ) {
[12882] Fix | Delete
$is_whitelabeled = true;
[12883] Fix | Delete
break;
[12884] Fix | Delete
}
[12885] Fix | Delete
}
[12886] Fix | Delete
}
[12887] Fix | Delete
}
[12888] Fix | Delete
}
[12889] Fix | Delete
[12890] Fix | Delete
$this->is_whitelabeled = $is_whitelabeled;
[12891] Fix | Delete
[12892] Fix | Delete
if ( ! $is_whitelabeled || ! $this->is_data_debug_mode() ) {
[12893] Fix | Delete
$this->_admin_notices->remove_sticky( 'data_debug_mode_enabled' );
[12894] Fix | Delete
}
[12895] Fix | Delete
[12896] Fix | Delete
if ( ! is_null( $blog_id ) ) {
[12897] Fix | Delete
$this->restore_current_blog();
[12898] Fix | Delete
}
[12899] Fix | Delete
}
[12900] Fix | Delete
[12901] Fix | Delete
return (
[12902] Fix | Delete
$is_whitelabeled &&
[12903] Fix | Delete
( $ignore_data_debug_mode || ! $this->is_data_debug_mode() )
[12904] Fix | Delete
);
[12905] Fix | Delete
}
[12906] Fix | Delete
[12907] Fix | Delete
/**
[12908] Fix | Delete
* Sync site's subscription.
[12909] Fix | Delete
*
[12910] Fix | Delete
* @author Vova Feldman (@svovaf)
[12911] Fix | Delete
* @since 1.0.9
[12912] Fix | Delete
*
[12913] Fix | Delete
* @param FS_Plugin_License|null $license
[12914] Fix | Delete
*
[12915] Fix | Delete
* @return bool|\FS_Subscription
[12916] Fix | Delete
*/
[12917] Fix | Delete
private function _sync_site_subscription( $license ) {
[12918] Fix | Delete
if ( ! is_object( $license ) ) {
[12919] Fix | Delete
$this->delete_unused_subscriptions();
[12920] Fix | Delete
[12921] Fix | Delete
return false;
[12922] Fix | Delete
}
[12923] Fix | Delete
[12924] Fix | Delete
// Load subscription details if not lifetime.
[12925] Fix | Delete
$subscription = $license->is_lifetime() ?
[12926] Fix | Delete
false :
[12927] Fix | Delete
$this->_fetch_site_license_subscription();
[12928] Fix | Delete
[12929] Fix | Delete
if ( is_object( $subscription ) && ! isset( $subscription->error ) ) {
[12930] Fix | Delete
$this->store_subscription( $subscription );
[12931] Fix | Delete
} else {
[12932] Fix | Delete
$this->delete_unused_subscriptions();
[12933] Fix | Delete
}
[12934] Fix | Delete
[12935] Fix | Delete
return $subscription;
[12936] Fix | Delete
}
[12937] Fix | Delete
[12938] Fix | Delete
/**
[12939] Fix | Delete
* @author Vova Feldman (@svovaf)
[12940] Fix | Delete
* @since 1.0.6
[12941] Fix | Delete
*
[12942] Fix | Delete
* @return bool|\FS_Plugin_License
[12943] Fix | Delete
*/
[12944] Fix | Delete
function _get_license() {
[12945] Fix | Delete
if ( ! fs_is_network_admin() || is_object( $this->_license ) ) {
[12946] Fix | Delete
return $this->_license;
[12947] Fix | Delete
}
[12948] Fix | Delete
[12949] Fix | Delete
return $this->_get_available_premium_license();
[12950] Fix | Delete
}
[12951] Fix | Delete
[12952] Fix | Delete
/**
[12953] Fix | Delete
* @param number $license_id
[12954] Fix | Delete
*
[12955] Fix | Delete
* @return null|\FS_Subscription
[12956] Fix | Delete
*/
[12957] Fix | Delete
function _get_subscription( $license_id ) {
[12958] Fix | Delete
if ( ! isset( $this->_storage->subscriptions ) ||
[12959] Fix | Delete
empty( $this->_storage->subscriptions )
[12960] Fix | Delete
) {
[12961] Fix | Delete
return null;
[12962] Fix | Delete
}
[12963] Fix | Delete
[12964] Fix | Delete
foreach ( fs_get_entities( $this->_storage->subscriptions, FS_Subscription::get_class_name() ) as $subscription ) {
[12965] Fix | Delete
if ( $subscription->license_id == $license_id ) {
[12966] Fix | Delete
return $subscription;
[12967] Fix | Delete
}
[12968] Fix | Delete
}
[12969] Fix | Delete
[12970] Fix | Delete
return null;
[12971] Fix | Delete
}
[12972] Fix | Delete
[12973] Fix | Delete
/**
[12974] Fix | Delete
* @author Leo Fajardo (@leorw)
[12975] Fix | Delete
* @since 2.0.0
[12976] Fix | Delete
*
[12977] Fix | Delete
* @param FS_Subscription $subscription
[12978] Fix | Delete
*/
[12979] Fix | Delete
function store_subscription( FS_Subscription $subscription ) {
[12980] Fix | Delete
if ( ! isset( $this->_storage->subscriptions ) ) {
[12981] Fix | Delete
$this->_storage->subscriptions = array();
[12982] Fix | Delete
}
[12983] Fix | Delete
[12984] Fix | Delete
if ( empty( $this->_storage->subscriptions ) || ! is_multisite() ) {
[12985] Fix | Delete
$this->_storage->subscriptions = array( $subscription );
[12986] Fix | Delete
[12987] Fix | Delete
return;
[12988] Fix | Delete
}
[12989] Fix | Delete
[12990] Fix | Delete
$subscriptions = fs_get_entities( $this->_storage->subscriptions, FS_Subscription::get_class_name() );
[12991] Fix | Delete
[12992] Fix | Delete
$updated_subscription = false;
[12993] Fix | Delete
foreach ( $subscriptions as $key => $existing_subscription ) {
[12994] Fix | Delete
if ( $existing_subscription->id == $subscription->id ) {
[12995] Fix | Delete
$subscriptions[ $key ] = $subscription;
[12996] Fix | Delete
$updated_subscription = true;
[12997] Fix | Delete
break;
[12998] Fix | Delete
}
[12999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function