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/wp-conte.../plugins/content-.../inc/freemius/includes
File: class-freemius.php
* @param number|bool $module_id
[20000] Fix | Delete
* @param FS_Plugin_License[] $licenses
[20001] Fix | Delete
*/
[20002] Fix | Delete
private function _store_licenses( $store = true, $module_id = false, $licenses = array() ) {
[20003] Fix | Delete
$this->_logger->entrance();
[20004] Fix | Delete
[20005] Fix | Delete
$all_licenses = self::get_all_licenses();
[20006] Fix | Delete
[20007] Fix | Delete
if ( ! FS_Plugin::is_valid_id( $module_id ) ) {
[20008] Fix | Delete
$module_id = $this->_module_id;
[20009] Fix | Delete
[20010] Fix | Delete
$user_licenses = is_array( $this->_licenses ) ?
[20011] Fix | Delete
$this->_licenses :
[20012] Fix | Delete
array();
[20013] Fix | Delete
[20014] Fix | Delete
if ( empty( $user_licenses ) ) {
[20015] Fix | Delete
// If the context user doesn't have any license, don't update the licenses collection.
[20016] Fix | Delete
return;
[20017] Fix | Delete
}
[20018] Fix | Delete
[20019] Fix | Delete
$new_user_licenses_map = array();
[20020] Fix | Delete
foreach ( $user_licenses as $user_license ) {
[20021] Fix | Delete
$new_user_licenses_map[ $user_license->id ] = $user_license;
[20022] Fix | Delete
}
[20023] Fix | Delete
[20024] Fix | Delete
self::store_user_id_license_ids_map( array_keys( $new_user_licenses_map ), $this->_module_id, $this->_user->id );
[20025] Fix | Delete
[20026] Fix | Delete
// Update user licenses.
[20027] Fix | Delete
$licenses_to_update_count = count( $new_user_licenses_map );
[20028] Fix | Delete
foreach ( $all_licenses[ $module_id ] as $key => $license ) {
[20029] Fix | Delete
if ( 0 === $licenses_to_update_count ) {
[20030] Fix | Delete
break;
[20031] Fix | Delete
}
[20032] Fix | Delete
[20033] Fix | Delete
if ( isset( $new_user_licenses_map[ $license->id ] ) ) {
[20034] Fix | Delete
// Update license.
[20035] Fix | Delete
$all_licenses[ $module_id ][ $key ] = $new_user_licenses_map[ $license->id ];
[20036] Fix | Delete
unset( $new_user_licenses_map[ $license->id ] );
[20037] Fix | Delete
[20038] Fix | Delete
$licenses_to_update_count --;
[20039] Fix | Delete
}
[20040] Fix | Delete
}
[20041] Fix | Delete
[20042] Fix | Delete
if ( ! empty( $new_user_licenses_map ) ) {
[20043] Fix | Delete
// Add new licenses.
[20044] Fix | Delete
$all_licenses[ $module_id ] = array_merge( array_values( $new_user_licenses_map ), $all_licenses[ $module_id ] );
[20045] Fix | Delete
}
[20046] Fix | Delete
[20047] Fix | Delete
$licenses = $all_licenses[ $module_id ];
[20048] Fix | Delete
}
[20049] Fix | Delete
[20050] Fix | Delete
if ( ! isset( $all_licenses[ $module_id ] ) ) {
[20051] Fix | Delete
$all_licenses[ $module_id ] = array();
[20052] Fix | Delete
}
[20053] Fix | Delete
[20054] Fix | Delete
$all_licenses[ $module_id ] = $licenses;
[20055] Fix | Delete
[20056] Fix | Delete
self::$_accounts->set_option( 'all_licenses', $all_licenses, $store );
[20057] Fix | Delete
}
[20058] Fix | Delete
[20059] Fix | Delete
/**
[20060] Fix | Delete
* Update user information.
[20061] Fix | Delete
*
[20062] Fix | Delete
* @author Vova Feldman (@svovaf)
[20063] Fix | Delete
* @since 1.0.1
[20064] Fix | Delete
*
[20065] Fix | Delete
* @param bool $store Flush to Database if true.
[20066] Fix | Delete
*/
[20067] Fix | Delete
private function _store_user( $store = true ) {
[20068] Fix | Delete
$this->_logger->entrance();
[20069] Fix | Delete
[20070] Fix | Delete
if ( empty( $this->_user->id ) ) {
[20071] Fix | Delete
$this->_logger->error( "Empty user ID, can't store user." );
[20072] Fix | Delete
[20073] Fix | Delete
return;
[20074] Fix | Delete
}
[20075] Fix | Delete
[20076] Fix | Delete
$users = self::get_all_users();
[20077] Fix | Delete
$users[ $this->_user->id ] = $this->_user;
[20078] Fix | Delete
self::$_accounts->set_option( 'users', $users, $store );
[20079] Fix | Delete
}
[20080] Fix | Delete
[20081] Fix | Delete
/**
[20082] Fix | Delete
* Update new updates information.
[20083] Fix | Delete
*
[20084] Fix | Delete
* @author Vova Feldman (@svovaf)
[20085] Fix | Delete
* @since 1.0.4
[20086] Fix | Delete
*
[20087] Fix | Delete
* @param FS_Plugin_Tag|null $update
[20088] Fix | Delete
* @param bool $store Flush to Database if true.
[20089] Fix | Delete
* @param bool|number $plugin_id
[20090] Fix | Delete
*/
[20091] Fix | Delete
private function _store_update( $update, $store = true, $plugin_id = false ) {
[20092] Fix | Delete
$this->_logger->entrance();
[20093] Fix | Delete
[20094] Fix | Delete
if ( $update instanceof FS_Plugin_Tag ) {
[20095] Fix | Delete
$update->updated = time();
[20096] Fix | Delete
}
[20097] Fix | Delete
[20098] Fix | Delete
if ( ! is_numeric( $plugin_id ) ) {
[20099] Fix | Delete
$plugin_id = $this->_plugin->id;
[20100] Fix | Delete
}
[20101] Fix | Delete
[20102] Fix | Delete
$updates = self::get_all_updates();
[20103] Fix | Delete
$updates[ $plugin_id ] = $update;
[20104] Fix | Delete
self::$_accounts->set_option( 'updates', $updates, $store );
[20105] Fix | Delete
}
[20106] Fix | Delete
[20107] Fix | Delete
/**
[20108] Fix | Delete
* Update new updates information.
[20109] Fix | Delete
*
[20110] Fix | Delete
* @author Vova Feldman (@svovaf)
[20111] Fix | Delete
* @since 1.0.6
[20112] Fix | Delete
*
[20113] Fix | Delete
* @param FS_Plugin[] $plugin_addons
[20114] Fix | Delete
* @param bool $store Flush to Database if true.
[20115] Fix | Delete
*/
[20116] Fix | Delete
private function _store_addons( $plugin_addons, $store = true ) {
[20117] Fix | Delete
$this->_logger->entrance();
[20118] Fix | Delete
[20119] Fix | Delete
$addons = self::get_all_addons();
[20120] Fix | Delete
$addons[ $this->_plugin->id ] = $plugin_addons;
[20121] Fix | Delete
self::$_accounts->set_option( 'addons', $addons, $store );
[20122] Fix | Delete
}
[20123] Fix | Delete
[20124] Fix | Delete
/**
[20125] Fix | Delete
* Delete plugin's associated add-ons.
[20126] Fix | Delete
*
[20127] Fix | Delete
* @author Vova Feldman (@svovaf)
[20128] Fix | Delete
* @since 1.0.8
[20129] Fix | Delete
*
[20130] Fix | Delete
* @param bool $store
[20131] Fix | Delete
*
[20132] Fix | Delete
* @return bool
[20133] Fix | Delete
*/
[20134] Fix | Delete
private function _delete_account_addons( $store = true ) {
[20135] Fix | Delete
$all_addons = self::get_all_account_addons();
[20136] Fix | Delete
[20137] Fix | Delete
if ( ! isset( $all_addons[ $this->_plugin->id ] ) ) {
[20138] Fix | Delete
return false;
[20139] Fix | Delete
}
[20140] Fix | Delete
[20141] Fix | Delete
unset( $all_addons[ $this->_plugin->id ] );
[20142] Fix | Delete
[20143] Fix | Delete
self::$_accounts->set_option( 'account_addons', $all_addons, $store );
[20144] Fix | Delete
[20145] Fix | Delete
return true;
[20146] Fix | Delete
}
[20147] Fix | Delete
[20148] Fix | Delete
/**
[20149] Fix | Delete
* Update account add-ons list.
[20150] Fix | Delete
*
[20151] Fix | Delete
* @author Vova Feldman (@svovaf)
[20152] Fix | Delete
* @since 1.0.6
[20153] Fix | Delete
*
[20154] Fix | Delete
* @param FS_Plugin[] $addons
[20155] Fix | Delete
* @param bool $store Flush to Database if true.
[20156] Fix | Delete
*/
[20157] Fix | Delete
private function _store_account_addons( $addons, $store = true ) {
[20158] Fix | Delete
$this->_logger->entrance();
[20159] Fix | Delete
[20160] Fix | Delete
$all_addons = self::get_all_account_addons();
[20161] Fix | Delete
$all_addons[ $this->_plugin->id ] = $addons;
[20162] Fix | Delete
self::$_accounts->set_option( 'account_addons', $all_addons, $store );
[20163] Fix | Delete
}
[20164] Fix | Delete
[20165] Fix | Delete
/**
[20166] Fix | Delete
* Purges the cache for the valid user licenses API call so that when the `Account` or `Add-Ons` page is loaded,
[20167] Fix | Delete
* the valid user licenses will be fetched again and the account add-ons may be updated.
[20168] Fix | Delete
*
[20169] Fix | Delete
* @author Leo Fajardo (@leorw)
[20170] Fix | Delete
* @since 2.2.4
[20171] Fix | Delete
*/
[20172] Fix | Delete
private function purge_valid_user_licenses_cache() {
[20173] Fix | Delete
if ( ! $this->is_registered() ) {
[20174] Fix | Delete
return;
[20175] Fix | Delete
}
[20176] Fix | Delete
[20177] Fix | Delete
$this->get_api_user_scope()->purge_cache( $this->get_valid_user_licenses_endpoint() );
[20178] Fix | Delete
}
[20179] Fix | Delete
[20180] Fix | Delete
/**
[20181] Fix | Delete
* @author Leo Fajardo (@leorw)
[20182] Fix | Delete
* @since 2.3.0
[20183] Fix | Delete
*
[20184] Fix | Delete
* @param array $all_licenses
[20185] Fix | Delete
* @param number|null $site_license_id
[20186] Fix | Delete
* @param bool $include_parent_licenses
[20187] Fix | Delete
*
[20188] Fix | Delete
* @return array
[20189] Fix | Delete
*/
[20190] Fix | Delete
private function get_foreign_licenses_info( $all_licenses, $site_license_id = null, $include_parent_licenses = false ) {
[20191] Fix | Delete
$foreign_licenses = array(
[20192] Fix | Delete
'ids' => array(),
[20193] Fix | Delete
'license_keys' => array()
[20194] Fix | Delete
);
[20195] Fix | Delete
[20196] Fix | Delete
$parent_license_ids_map = array();
[20197] Fix | Delete
[20198] Fix | Delete
foreach ( $all_licenses as $license ) {
[20199] Fix | Delete
if ( $license->user_id == $this->_user->id || $license->id == $site_license_id ) {
[20200] Fix | Delete
continue;
[20201] Fix | Delete
}
[20202] Fix | Delete
[20203] Fix | Delete
$foreign_licenses['ids'][] = $license->id;
[20204] Fix | Delete
$foreign_licenses['license_keys'][] = $license->secret_key;
[20205] Fix | Delete
[20206] Fix | Delete
if (
[20207] Fix | Delete
$include_parent_licenses &&
[20208] Fix | Delete
is_object( $this->_license ) &&
[20209] Fix | Delete
FS_Plugin_License::is_valid_id( $this->_license->parent_license_id ) &&
[20210] Fix | Delete
! isset( $parent_license_ids_map[ $this->_license->parent_license_id ] )
[20211] Fix | Delete
) {
[20212] Fix | Delete
/**
[20213] Fix | Delete
* Include the parent license's info only if it has not been included before since child licenses
[20214] Fix | Delete
* can have the same parent license.
[20215] Fix | Delete
*/
[20216] Fix | Delete
$foreign_licenses['ids'][] = $this->_license->parent_license_id;
[20217] Fix | Delete
$foreign_licenses['license_keys'][] = $license->secret_key;
[20218] Fix | Delete
[20219] Fix | Delete
$parent_license_ids_map[ $this->_license->parent_license_id ] = true;
[20220] Fix | Delete
}
[20221] Fix | Delete
}
[20222] Fix | Delete
[20223] Fix | Delete
if ( empty( $foreign_licenses['ids'] ) ) {
[20224] Fix | Delete
$foreign_licenses = array();
[20225] Fix | Delete
}
[20226] Fix | Delete
[20227] Fix | Delete
return $foreign_licenses;
[20228] Fix | Delete
}
[20229] Fix | Delete
[20230] Fix | Delete
/**
[20231] Fix | Delete
* @author Leo Fajardo (@leorw)
[20232] Fix | Delete
* @since 2.3.0
[20233] Fix | Delete
*
[20234] Fix | Delete
* @return string
[20235] Fix | Delete
*/
[20236] Fix | Delete
private function get_valid_user_licenses_endpoint() {
[20237] Fix | Delete
$user_licenses_endpoint = '/licenses.json?type=active' .
[20238] Fix | Delete
( FS_Plugin::is_valid_id( $this->get_bundle_id() ) ? '&is_enriched=true' : '' );
[20239] Fix | Delete
[20240] Fix | Delete
$foreign_licenses = $this->get_foreign_licenses_info( self::get_all_licenses( $this->_module_id ), null, true );
[20241] Fix | Delete
[20242] Fix | Delete
if ( ! empty ( $foreign_licenses ) ) {
[20243] Fix | Delete
$foreign_licenses = array(
[20244] Fix | Delete
// Prefix with `+` to tell the server to include foreign licenses in the licenses collection.
[20245] Fix | Delete
'ids' => ( urlencode( '+' ) . implode( ',', $foreign_licenses['ids'] ) ),
[20246] Fix | Delete
'license_keys' => implode( ',', array_map( 'urlencode', $foreign_licenses['license_keys'] ) )
[20247] Fix | Delete
);
[20248] Fix | Delete
[20249] Fix | Delete
$user_licenses_endpoint = add_query_arg( $foreign_licenses, $user_licenses_endpoint );
[20250] Fix | Delete
}
[20251] Fix | Delete
[20252] Fix | Delete
return $user_licenses_endpoint;
[20253] Fix | Delete
}
[20254] Fix | Delete
[20255] Fix | Delete
/**
[20256] Fix | Delete
* Fetches active licenses that are enriched with product type if there's a context `bundle_id` and bundle
[20257] Fix | Delete
* licenses enriched with product IDs if there are any. From the licenses, the `get_updated_account_addons`
[20258] Fix | Delete
* method filters out non–add-on product IDs and stores the add-on IDs.
[20259] Fix | Delete
*
[20260] Fix | Delete
* @author Leo Fajardo (@leorw)
[20261] Fix | Delete
* @since 2.2.4
[20262] Fix | Delete
*
[20263] Fix | Delete
* @return stdClass[] array
[20264] Fix | Delete
*/
[20265] Fix | Delete
private function fetch_valid_user_licenses() {
[20266] Fix | Delete
$this->_logger->entrance();
[20267] Fix | Delete
[20268] Fix | Delete
$result = $this->get_api_user_scope()->get( $this->get_valid_user_licenses_endpoint() );
[20269] Fix | Delete
[20270] Fix | Delete
if ( ! $this->is_api_result_object( $result, 'licenses' ) ||
[20271] Fix | Delete
! is_array( $result->licenses )
[20272] Fix | Delete
) {
[20273] Fix | Delete
return array();
[20274] Fix | Delete
}
[20275] Fix | Delete
[20276] Fix | Delete
return $result->licenses;
[20277] Fix | Delete
}
[20278] Fix | Delete
[20279] Fix | Delete
/**
[20280] Fix | Delete
* @author Leo Fajardo (@leorw)
[20281] Fix | Delete
* @since 2.2.4
[20282] Fix | Delete
*
[20283] Fix | Delete
* @return number[] Account add-on IDs.
[20284] Fix | Delete
*/
[20285] Fix | Delete
function get_updated_account_addons() {
[20286] Fix | Delete
$addons = $this->get_addons();
[20287] Fix | Delete
if ( empty( $addons ) ) {
[20288] Fix | Delete
return array();
[20289] Fix | Delete
}
[20290] Fix | Delete
[20291] Fix | Delete
$account_addons = $this->get_account_addons();
[20292] Fix | Delete
if ( ! is_array( $account_addons ) ) {
[20293] Fix | Delete
$account_addons = array();
[20294] Fix | Delete
}
[20295] Fix | Delete
[20296] Fix | Delete
$user_licenses = $this->is_registered() ?
[20297] Fix | Delete
$this->fetch_valid_user_licenses() :
[20298] Fix | Delete
array();
[20299] Fix | Delete
[20300] Fix | Delete
if ( empty( $user_licenses ) ) {
[20301] Fix | Delete
return $account_addons;
[20302] Fix | Delete
}
[20303] Fix | Delete
[20304] Fix | Delete
$addon_ids = array();
[20305] Fix | Delete
foreach ( $addons as $addon ) {
[20306] Fix | Delete
$addon_ids[] = $addon->id;
[20307] Fix | Delete
}
[20308] Fix | Delete
[20309] Fix | Delete
$license_product_ids = array();
[20310] Fix | Delete
[20311] Fix | Delete
foreach ( $user_licenses as $license ) {
[20312] Fix | Delete
if ( isset( $license->plugin_type ) && 'bundle' === $license->plugin_type ) {
[20313] Fix | Delete
$license_product_ids = array_merge( $license_product_ids, $license->products );
[20314] Fix | Delete
} else {
[20315] Fix | Delete
$license_product_ids[] = $license->plugin_id;
[20316] Fix | Delete
}
[20317] Fix | Delete
}
[20318] Fix | Delete
[20319] Fix | Delete
// Filter out non–add-on IDs.
[20320] Fix | Delete
$new_account_addons = array_intersect( $addon_ids, $license_product_ids );
[20321] Fix | Delete
if ( count( $new_account_addons ) !== count( $account_addons ) ) {
[20322] Fix | Delete
$this->_store_account_addons( array_unique( $new_account_addons ) );
[20323] Fix | Delete
}
[20324] Fix | Delete
[20325] Fix | Delete
return $new_account_addons;
[20326] Fix | Delete
}
[20327] Fix | Delete
[20328] Fix | Delete
/**
[20329] Fix | Delete
* Store account params in the Database.
[20330] Fix | Delete
*
[20331] Fix | Delete
* @author Vova Feldman (@svovaf)
[20332] Fix | Delete
* @since 1.0.1
[20333] Fix | Delete
*
[20334] Fix | Delete
* @param null|int $blog_id Since 2.0.0
[20335] Fix | Delete
*/
[20336] Fix | Delete
private function _store_account( $blog_id = null ) {
[20337] Fix | Delete
$this->_logger->entrance();
[20338] Fix | Delete
[20339] Fix | Delete
$this->_store_site( false, $blog_id );
[20340] Fix | Delete
$this->_store_user( false );
[20341] Fix | Delete
$this->_store_plans( false );
[20342] Fix | Delete
$this->_store_licenses( false );
[20343] Fix | Delete
[20344] Fix | Delete
self::$_accounts->store( $blog_id );
[20345] Fix | Delete
}
[20346] Fix | Delete
[20347] Fix | Delete
/**
[20348] Fix | Delete
* Sync user's information.
[20349] Fix | Delete
*
[20350] Fix | Delete
* @author Vova Feldman (@svovaf)
[20351] Fix | Delete
* @since 1.0.3
[20352] Fix | Delete
* @uses FS_Api
[20353] Fix | Delete
*/
[20354] Fix | Delete
private function _handle_account_user_sync() {
[20355] Fix | Delete
$this->_logger->entrance();
[20356] Fix | Delete
[20357] Fix | Delete
$api = $this->get_api_user_scope();
[20358] Fix | Delete
[20359] Fix | Delete
// Get user's information.
[20360] Fix | Delete
$user = $api->get( '/', true );
[20361] Fix | Delete
[20362] Fix | Delete
if ( isset( $user->id ) ) {
[20363] Fix | Delete
$this->_user->first = $user->first;
[20364] Fix | Delete
$this->_user->last = $user->last;
[20365] Fix | Delete
$this->_user->email = $user->email;
[20366] Fix | Delete
[20367] Fix | Delete
$is_menu_item_account_visible = $this->is_submenu_item_visible( 'account' );
[20368] Fix | Delete
[20369] Fix | Delete
if ( $user->is_verified &&
[20370] Fix | Delete
( ! isset( $this->_user->is_verified ) || false === $this->_user->is_verified )
[20371] Fix | Delete
) {
[20372] Fix | Delete
$this->_user->is_verified = true;
[20373] Fix | Delete
[20374] Fix | Delete
$this->do_action( 'account_email_verified', $user->email );
[20375] Fix | Delete
[20376] Fix | Delete
$this->_admin_notices->add(
[20377] Fix | Delete
$this->get_text_inline( 'Your email has been successfully verified - you are AWESOME!', 'email-verified-message' ),
[20378] Fix | Delete
$this->get_text_x_inline( 'Right on', 'a positive response', 'right-on' ) . '!',
[20379] Fix | Delete
'success',
[20380] Fix | Delete
// Make admin sticky if account menu item is invisible,
[20381] Fix | Delete
// since the page will be auto redirected to the plugin's
[20382] Fix | Delete
// main settings page, and the non-sticky message
[20383] Fix | Delete
// will disappear.
[20384] Fix | Delete
! $is_menu_item_account_visible,
[20385] Fix | Delete
'email_verified'
[20386] Fix | Delete
);
[20387] Fix | Delete
}
[20388] Fix | Delete
[20389] Fix | Delete
// Flush user details to DB.
[20390] Fix | Delete
$this->_store_user();
[20391] Fix | Delete
[20392] Fix | Delete
$this->do_action( 'after_account_user_sync', $user );
[20393] Fix | Delete
[20394] Fix | Delete
/**
[20395] Fix | Delete
* If account menu item is hidden, redirect to plugin's main settings page.
[20396] Fix | Delete
*
[20397] Fix | Delete
* @author Vova Feldman (@svovaf)
[20398] Fix | Delete
* @since 1.1.6
[20399] Fix | Delete
*
[20400] Fix | Delete
* @link https://github.com/Freemius/wordpress-sdk/issues/6
[20401] Fix | Delete
*/
[20402] Fix | Delete
if ( ! $is_menu_item_account_visible ) {
[20403] Fix | Delete
fs_redirect( $this->_get_admin_page_url() );
[20404] Fix | Delete
}
[20405] Fix | Delete
}
[20406] Fix | Delete
}
[20407] Fix | Delete
[20408] Fix | Delete
/**
[20409] Fix | Delete
* @author Vova Feldman (@svovaf)
[20410] Fix | Delete
* @since 1.0.9
[20411] Fix | Delete
* @uses FS_Api
[20412] Fix | Delete
*
[20413] Fix | Delete
* @param number|bool $license_id
[20414] Fix | Delete
*
[20415] Fix | Delete
* @return FS_Subscription|object|bool
[20416] Fix | Delete
*/
[20417] Fix | Delete
private function _fetch_site_license_subscription( $license_id = false ) {
[20418] Fix | Delete
$this->_logger->entrance();
[20419] Fix | Delete
$api = $this->get_api_site_scope();
[20420] Fix | Delete
[20421] Fix | Delete
if ( ! is_numeric( $license_id ) ) {
[20422] Fix | Delete
$license_id = FS_Plugin_License::is_valid_id( $this->_license->parent_license_id ) ?
[20423] Fix | Delete
$this->_license->parent_license_id :
[20424] Fix | Delete
$this->_license->id;
[20425] Fix | Delete
}
[20426] Fix | Delete
[20427] Fix | Delete
$result = $api->get( "/licenses/{$license_id}/subscriptions.json", true );
[20428] Fix | Delete
[20429] Fix | Delete
return ! isset( $result->error ) ?
[20430] Fix | Delete
( ( is_array( $result->subscriptions ) && 0 < count( $result->subscriptions ) ) ?
[20431] Fix | Delete
new FS_Subscription( $result->subscriptions[0] ) :
[20432] Fix | Delete
false
[20433] Fix | Delete
) :
[20434] Fix | Delete
$result;
[20435] Fix | Delete
}
[20436] Fix | Delete
[20437] Fix | Delete
/**
[20438] Fix | Delete
* @author Vova Feldman (@svovaf)
[20439] Fix | Delete
* @since 1.0.4
[20440] Fix | Delete
* @uses FS_Api
[20441] Fix | Delete
*
[20442] Fix | Delete
* @param number|bool $plan_id
[20443] Fix | Delete
*
[20444] Fix | Delete
* @return FS_Plugin_Plan|object
[20445] Fix | Delete
*/
[20446] Fix | Delete
private function _fetch_site_plan( $plan_id = false ) {
[20447] Fix | Delete
$this->_logger->entrance();
[20448] Fix | Delete
$api = $this->get_api_site_scope();
[20449] Fix | Delete
[20450] Fix | Delete
if ( ! is_numeric( $plan_id ) ) {
[20451] Fix | Delete
$plan_id = $this->_site->plan_id;
[20452] Fix | Delete
}
[20453] Fix | Delete
[20454] Fix | Delete
$plan = $api->get( "/plans/{$plan_id}.json", true );
[20455] Fix | Delete
[20456] Fix | Delete
return ! isset( $plan->error ) ? new FS_Plugin_Plan( $plan ) : $plan;
[20457] Fix | Delete
}
[20458] Fix | Delete
[20459] Fix | Delete
/**
[20460] Fix | Delete
* @author Vova Feldman (@svovaf)
[20461] Fix | Delete
* @since 1.0.5
[20462] Fix | Delete
* @uses FS_Api
[20463] Fix | Delete
*
[20464] Fix | Delete
* @return FS_Plugin_Plan[]|object
[20465] Fix | Delete
*/
[20466] Fix | Delete
private function _fetch_plugin_plans() {
[20467] Fix | Delete
$this->_logger->entrance();
[20468] Fix | Delete
$api = $this->get_current_or_network_user_api_scope();
[20469] Fix | Delete
[20470] Fix | Delete
/**
[20471] Fix | Delete
* @since 1.2.3 When running in DEV mode, retrieve pending plans as well.
[20472] Fix | Delete
*/
[20473] Fix | Delete
$result = $api->get( $this->add_show_pending( "/plugins/{$this->_module_id}/plans.json" ), true );
[20474] Fix | Delete
[20475] Fix | Delete
if ( $this->is_api_result_object( $result, 'plans' ) && is_array( $result->plans ) ) {
[20476] Fix | Delete
for ( $i = 0, $len = count( $result->plans ); $i < $len; $i ++ ) {
[20477] Fix | Delete
$result->plans[ $i ] = new FS_Plugin_Plan( $result->plans[ $i ] );
[20478] Fix | Delete
}
[20479] Fix | Delete
[20480] Fix | Delete
$result = $result->plans;
[20481] Fix | Delete
}
[20482] Fix | Delete
[20483] Fix | Delete
return $result;
[20484] Fix | Delete
}
[20485] Fix | Delete
[20486] Fix | Delete
/**
[20487] Fix | Delete
* @author Vova Feldman (@svovaf)
[20488] Fix | Delete
* @since 2.0.0
[20489] Fix | Delete
*
[20490] Fix | Delete
* @param number $plan_id
[20491] Fix | Delete
*
[20492] Fix | Delete
* @return \FS_Plugin_Plan|object
[20493] Fix | Delete
*/
[20494] Fix | Delete
private function fetch_plan_by_id( $plan_id ) {
[20495] Fix | Delete
$this->_logger->entrance();
[20496] Fix | Delete
$api = $this->get_current_or_network_user_api_scope();
[20497] Fix | Delete
[20498] Fix | Delete
$result = $api->get( "/plugins/{$this->_module_id}/plans/{$plan_id}.json", true );
[20499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function