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
$menu_slug = $this->_menu->get_slug();
[16500] Fix | Delete
[16501] Fix | Delete
if ( $page === $menu_slug ) {
[16502] Fix | Delete
return true;
[16503] Fix | Delete
}
[16504] Fix | Delete
[16505] Fix | Delete
return fs_starts_with(
[16506] Fix | Delete
// e.g., {$menu_slug}-account, {$menu_slug}-affiliation, etc.
[16507] Fix | Delete
$page,
[16508] Fix | Delete
( $menu_slug . '-' )
[16509] Fix | Delete
);
[16510] Fix | Delete
}
[16511] Fix | Delete
[16512] Fix | Delete
/**
[16513] Fix | Delete
* Plugin's account page + sync license URL.
[16514] Fix | Delete
*
[16515] Fix | Delete
* @author Vova Feldman (@svovaf)
[16516] Fix | Delete
* @since 1.1.9.1
[16517] Fix | Delete
*
[16518] Fix | Delete
* @param bool|number $plugin_id
[16519] Fix | Delete
* @param bool $add_action_nonce
[16520] Fix | Delete
* @param array $params
[16521] Fix | Delete
*
[16522] Fix | Delete
* @return string
[16523] Fix | Delete
*/
[16524] Fix | Delete
function _get_sync_license_url( $plugin_id = false, $add_action_nonce = true, $params = array() ) {
[16525] Fix | Delete
if ( is_numeric( $plugin_id ) ) {
[16526] Fix | Delete
$params['plugin_id'] = $plugin_id;
[16527] Fix | Delete
}
[16528] Fix | Delete
[16529] Fix | Delete
return $this->get_account_url(
[16530] Fix | Delete
$this->get_unique_affix() . '_sync_license',
[16531] Fix | Delete
$params,
[16532] Fix | Delete
$add_action_nonce
[16533] Fix | Delete
);
[16534] Fix | Delete
}
[16535] Fix | Delete
[16536] Fix | Delete
/**
[16537] Fix | Delete
* Plugin's account URL.
[16538] Fix | Delete
*
[16539] Fix | Delete
* @author Vova Feldman (@svovaf)
[16540] Fix | Delete
* @since 1.0.4
[16541] Fix | Delete
*
[16542] Fix | Delete
* @param bool|string $action
[16543] Fix | Delete
* @param array $params
[16544] Fix | Delete
*
[16545] Fix | Delete
* @param bool $add_action_nonce
[16546] Fix | Delete
*
[16547] Fix | Delete
* @return string
[16548] Fix | Delete
*/
[16549] Fix | Delete
function get_account_url( $action = false, $params = array(), $add_action_nonce = true ) {
[16550] Fix | Delete
if ( is_string( $action ) ) {
[16551] Fix | Delete
$params['fs_action'] = $action;
[16552] Fix | Delete
}
[16553] Fix | Delete
[16554] Fix | Delete
self::require_pluggable_essentials();
[16555] Fix | Delete
[16556] Fix | Delete
return ( $add_action_nonce && is_string( $action ) ) ?
[16557] Fix | Delete
fs_nonce_url( $this->_get_admin_page_url( 'account', $params ), $action ) :
[16558] Fix | Delete
$this->_get_admin_page_url( 'account', $params );
[16559] Fix | Delete
}
[16560] Fix | Delete
[16561] Fix | Delete
/**
[16562] Fix | Delete
* @author Vova Feldman (@svovaf)
[16563] Fix | Delete
* @since 1.2.0
[16564] Fix | Delete
*
[16565] Fix | Delete
* @param string $tab
[16566] Fix | Delete
* @param bool $action
[16567] Fix | Delete
* @param array $params
[16568] Fix | Delete
* @param bool $add_action_nonce
[16569] Fix | Delete
*
[16570] Fix | Delete
* @return string
[16571] Fix | Delete
*
[16572] Fix | Delete
* @uses get_account_url()
[16573] Fix | Delete
*/
[16574] Fix | Delete
function get_account_tab_url( $tab, $action = false, $params = array(), $add_action_nonce = true ) {
[16575] Fix | Delete
$params['tab'] = $tab;
[16576] Fix | Delete
[16577] Fix | Delete
return $this->get_account_url( $action, $params, $add_action_nonce );
[16578] Fix | Delete
}
[16579] Fix | Delete
[16580] Fix | Delete
/**
[16581] Fix | Delete
* Plugin's account URL.
[16582] Fix | Delete
*
[16583] Fix | Delete
* @author Vova Feldman (@svovaf)
[16584] Fix | Delete
* @since 1.0.4
[16585] Fix | Delete
*
[16586] Fix | Delete
* @param bool|string $topic
[16587] Fix | Delete
* @param bool|string $message
[16588] Fix | Delete
* @param bool|string $summary Since 2.5.1.
[16589] Fix | Delete
*
[16590] Fix | Delete
* @return string
[16591] Fix | Delete
*/
[16592] Fix | Delete
function contact_url( $topic = false, $message = false, $summary = false ) {
[16593] Fix | Delete
$params = array();
[16594] Fix | Delete
if ( is_string( $topic ) ) {
[16595] Fix | Delete
$params['topic'] = $topic;
[16596] Fix | Delete
}
[16597] Fix | Delete
if ( is_string( $message ) ) {
[16598] Fix | Delete
$params['message'] = $message;
[16599] Fix | Delete
}
[16600] Fix | Delete
[16601] Fix | Delete
if ( is_string( $summary ) ) {
[16602] Fix | Delete
$params['summary'] = $summary;
[16603] Fix | Delete
}
[16604] Fix | Delete
[16605] Fix | Delete
if ( $this->is_addon() ) {
[16606] Fix | Delete
$params['addon_id'] = $this->get_id();
[16607] Fix | Delete
[16608] Fix | Delete
return $this->get_parent_instance()->_get_admin_page_url( 'contact', $params );
[16609] Fix | Delete
} else {
[16610] Fix | Delete
return $this->_get_admin_page_url( 'contact', $params );
[16611] Fix | Delete
}
[16612] Fix | Delete
}
[16613] Fix | Delete
[16614] Fix | Delete
/**
[16615] Fix | Delete
* Add-on direct info URL.
[16616] Fix | Delete
*
[16617] Fix | Delete
* @author Vova Feldman (@svovaf)
[16618] Fix | Delete
* @since 1.1.0
[16619] Fix | Delete
*
[16620] Fix | Delete
* @param string $slug
[16621] Fix | Delete
*
[16622] Fix | Delete
* @return string
[16623] Fix | Delete
*/
[16624] Fix | Delete
function addon_url( $slug ) {
[16625] Fix | Delete
return $this->_get_admin_page_url( 'addons', array(
[16626] Fix | Delete
'slug' => $slug
[16627] Fix | Delete
) );
[16628] Fix | Delete
}
[16629] Fix | Delete
[16630] Fix | Delete
/**
[16631] Fix | Delete
* Add-ons URL.
[16632] Fix | Delete
*
[16633] Fix | Delete
* @author Vova Feldman (@svovaf)
[16634] Fix | Delete
* @since 2.4.5
[16635] Fix | Delete
*
[16636] Fix | Delete
* @return string
[16637] Fix | Delete
*/
[16638] Fix | Delete
function get_addons_url() {
[16639] Fix | Delete
return $this->_get_admin_page_url( 'addons' );
[16640] Fix | Delete
}
[16641] Fix | Delete
[16642] Fix | Delete
/* Logger
[16643] Fix | Delete
------------------------------------------------------------------------------------------------------------------*/
[16644] Fix | Delete
/**
[16645] Fix | Delete
* @param string $id
[16646] Fix | Delete
* @param bool $prefix_slug
[16647] Fix | Delete
*
[16648] Fix | Delete
* @return FS_Logger
[16649] Fix | Delete
*/
[16650] Fix | Delete
function get_logger( $id = '', $prefix_slug = true ) {
[16651] Fix | Delete
return FS_Logger::get_logger( ( $prefix_slug ? $this->_slug : '' ) . ( ( ! $prefix_slug || empty( $id ) ) ? '' : '_' ) . $id );
[16652] Fix | Delete
}
[16653] Fix | Delete
[16654] Fix | Delete
/**
[16655] Fix | Delete
* Note: This method is used externally so don't delete it.
[16656] Fix | Delete
*
[16657] Fix | Delete
* @param $id
[16658] Fix | Delete
* @param bool $load_options
[16659] Fix | Delete
* @param bool $prefix_slug
[16660] Fix | Delete
*
[16661] Fix | Delete
* @return FS_Option_Manager
[16662] Fix | Delete
*/
[16663] Fix | Delete
function get_options_manager( $id, $load_options = false, $prefix_slug = true ) {
[16664] Fix | Delete
return FS_Option_Manager::get_manager( ( $prefix_slug ? $this->_slug : '' ) . ( ( ! $prefix_slug || empty( $id ) ) ? '' : '_' ) . $id, $load_options );
[16665] Fix | Delete
}
[16666] Fix | Delete
[16667] Fix | Delete
/* Security
[16668] Fix | Delete
------------------------------------------------------------------------------------------------------------------*/
[16669] Fix | Delete
private static function _encrypt( $str ) {
[16670] Fix | Delete
if ( is_null( $str ) ) {
[16671] Fix | Delete
return null;
[16672] Fix | Delete
}
[16673] Fix | Delete
[16674] Fix | Delete
/**
[16675] Fix | Delete
* The encrypt/decrypt functions are used to protect
[16676] Fix | Delete
* the user from messing up with some of the sensitive
[16677] Fix | Delete
* data stored for the module as a JSON in the database.
[16678] Fix | Delete
*
[16679] Fix | Delete
* I used the same suggested hack by the theme review team.
[16680] Fix | Delete
* For more details, look at the function `Base64UrlDecode()`
[16681] Fix | Delete
* in `./sdk/FreemiusBase.php`.
[16682] Fix | Delete
*
[16683] Fix | Delete
* @todo Remove this hack once the base64 error is removed from the Theme Check.
[16684] Fix | Delete
*
[16685] Fix | Delete
* @author Vova Feldman (@svovaf)
[16686] Fix | Delete
* @since 1.2.2
[16687] Fix | Delete
*/
[16688] Fix | Delete
$fn = 'base64' . '_encode';
[16689] Fix | Delete
[16690] Fix | Delete
return $fn( $str );
[16691] Fix | Delete
}
[16692] Fix | Delete
[16693] Fix | Delete
static function _decrypt( $str ) {
[16694] Fix | Delete
if ( is_null( $str ) ) {
[16695] Fix | Delete
return null;
[16696] Fix | Delete
}
[16697] Fix | Delete
[16698] Fix | Delete
/**
[16699] Fix | Delete
* The encrypt/decrypt functions are used to protect
[16700] Fix | Delete
* the user from messing up with some of the sensitive
[16701] Fix | Delete
* data stored for the module as a JSON in the database.
[16702] Fix | Delete
*
[16703] Fix | Delete
* I used the same suggested hack by the theme review team.
[16704] Fix | Delete
* For more details, look at the function `Base64UrlDecode()`
[16705] Fix | Delete
* in `./sdk/FreemiusBase.php`.
[16706] Fix | Delete
*
[16707] Fix | Delete
* @todo Remove this hack once the base64 error is removed from the Theme Check.
[16708] Fix | Delete
*
[16709] Fix | Delete
* @author Vova Feldman (@svovaf)
[16710] Fix | Delete
* @since 1.2.2
[16711] Fix | Delete
*/
[16712] Fix | Delete
$fn = 'base64' . '_decode';
[16713] Fix | Delete
[16714] Fix | Delete
return $fn( $str );
[16715] Fix | Delete
}
[16716] Fix | Delete
[16717] Fix | Delete
/**
[16718] Fix | Delete
* @author Vova Feldman (@svovaf)
[16719] Fix | Delete
* @since 1.0.5
[16720] Fix | Delete
*
[16721] Fix | Delete
* @param FS_Entity $entity
[16722] Fix | Delete
*
[16723] Fix | Delete
* @return FS_Entity Return an encrypted clone entity.
[16724] Fix | Delete
*/
[16725] Fix | Delete
private static function _encrypt_entity( FS_Entity $entity ) {
[16726] Fix | Delete
$clone = clone $entity;
[16727] Fix | Delete
$props = get_object_vars( $entity );
[16728] Fix | Delete
[16729] Fix | Delete
foreach ( $props as $key => $val ) {
[16730] Fix | Delete
$clone->{$key} = self::_encrypt( $val );
[16731] Fix | Delete
}
[16732] Fix | Delete
[16733] Fix | Delete
return $clone;
[16734] Fix | Delete
}
[16735] Fix | Delete
[16736] Fix | Delete
/**
[16737] Fix | Delete
* @author Vova Feldman (@svovaf)
[16738] Fix | Delete
* @since 1.0.5
[16739] Fix | Delete
*
[16740] Fix | Delete
* @param FS_Entity $entity
[16741] Fix | Delete
*
[16742] Fix | Delete
* @return FS_Entity Return an decrypted clone entity.
[16743] Fix | Delete
*/
[16744] Fix | Delete
private static function decrypt_entity( FS_Entity $entity ) {
[16745] Fix | Delete
$clone = clone $entity;
[16746] Fix | Delete
$props = get_object_vars( $entity );
[16747] Fix | Delete
[16748] Fix | Delete
foreach ( $props as $key => $val ) {
[16749] Fix | Delete
$clone->{$key} = self::_decrypt( $val );
[16750] Fix | Delete
}
[16751] Fix | Delete
[16752] Fix | Delete
return $clone;
[16753] Fix | Delete
}
[16754] Fix | Delete
[16755] Fix | Delete
/**
[16756] Fix | Delete
* @author Vova Feldman (@svovaf)
[16757] Fix | Delete
* @since 1.0.7
[16758] Fix | Delete
*
[16759] Fix | Delete
* @param string $email
[16760] Fix | Delete
*
[16761] Fix | Delete
* @return FS_User|false
[16762] Fix | Delete
*/
[16763] Fix | Delete
public static function _get_user_by_email( $email ) {
[16764] Fix | Delete
self::$_static_logger->entrance();
[16765] Fix | Delete
[16766] Fix | Delete
$email = trim( strtolower( $email ) );
[16767] Fix | Delete
[16768] Fix | Delete
$users = self::get_all_users();
[16769] Fix | Delete
[16770] Fix | Delete
if ( is_array( $users ) ) {
[16771] Fix | Delete
foreach ( $users as $user ) {
[16772] Fix | Delete
if ( $email === trim( strtolower( $user->email ) ) ) {
[16773] Fix | Delete
return $user;
[16774] Fix | Delete
}
[16775] Fix | Delete
}
[16776] Fix | Delete
}
[16777] Fix | Delete
[16778] Fix | Delete
return false;
[16779] Fix | Delete
}
[16780] Fix | Delete
[16781] Fix | Delete
#----------------------------------------------------------------------------------
[16782] Fix | Delete
#region Account (Loading, Updates & Activation)
[16783] Fix | Delete
#----------------------------------------------------------------------------------
[16784] Fix | Delete
[16785] Fix | Delete
/***
[16786] Fix | Delete
* Load account information (user + site).
[16787] Fix | Delete
*
[16788] Fix | Delete
* @author Vova Feldman (@svovaf)
[16789] Fix | Delete
* @since 1.0.1
[16790] Fix | Delete
*/
[16791] Fix | Delete
private function _load_account() {
[16792] Fix | Delete
$this->_logger->entrance();
[16793] Fix | Delete
[16794] Fix | Delete
$this->do_action( 'before_account_load' );
[16795] Fix | Delete
[16796] Fix | Delete
$users = self::get_all_users();
[16797] Fix | Delete
$plans = self::get_all_plans( $this->_module_type );
[16798] Fix | Delete
[16799] Fix | Delete
if ( $this->_logger->is_on() && is_admin() ) {
[16800] Fix | Delete
$this->_logger->log( 'users = ' . var_export( $users, true ) );
[16801] Fix | Delete
$this->_logger->log( 'plans = ' . var_export( $plans, true ) );
[16802] Fix | Delete
}
[16803] Fix | Delete
[16804] Fix | Delete
$site = fs_is_network_admin() ?
[16805] Fix | Delete
$this->get_network_install() :
[16806] Fix | Delete
$this->get_install_by_blog_id();
[16807] Fix | Delete
[16808] Fix | Delete
if ( fs_is_network_admin() &&
[16809] Fix | Delete
$this->is_network_active() &&
[16810] Fix | Delete
! is_object( $site ) &&
[16811] Fix | Delete
FS_Site::is_valid_id( $this->_storage->network_install_blog_id )
[16812] Fix | Delete
) {
[16813] Fix | Delete
$first_install = $this->find_first_install();
[16814] Fix | Delete
[16815] Fix | Delete
if ( is_null( $first_install ) ) {
[16816] Fix | Delete
unset( $this->_storage->network_install_blog_id );
[16817] Fix | Delete
} else {
[16818] Fix | Delete
$site = $first_install['install'];
[16819] Fix | Delete
$this->_storage->network_install_blog_id = $first_install['blog_id'];
[16820] Fix | Delete
}
[16821] Fix | Delete
}
[16822] Fix | Delete
[16823] Fix | Delete
if ( is_object( $site ) &&
[16824] Fix | Delete
is_numeric( $site->id ) &&
[16825] Fix | Delete
is_numeric( $site->user_id ) &&
[16826] Fix | Delete
FS_Plugin_Plan::is_valid_id( $site->plan_id )
[16827] Fix | Delete
) {
[16828] Fix | Delete
// Load site.
[16829] Fix | Delete
$this->_site = $site;
[16830] Fix | Delete
}
[16831] Fix | Delete
[16832] Fix | Delete
$user = null;
[16833] Fix | Delete
if ( fs_is_network_admin() && $this->_is_network_active ) {
[16834] Fix | Delete
$user = $this->get_network_user();
[16835] Fix | Delete
}
[16836] Fix | Delete
[16837] Fix | Delete
if ( is_object( $user ) ) {
[16838] Fix | Delete
$this->_user = clone $user;
[16839] Fix | Delete
} else if ( $this->_site ) {
[16840] Fix | Delete
$user = self::_get_user_by_id( $this->_site->user_id );
[16841] Fix | Delete
[16842] Fix | Delete
if ( ! is_object( $user ) && FS_User::is_valid_id( $this->_storage->prev_user_id ) ) {
[16843] Fix | Delete
/**
[16844] Fix | Delete
* Try to load the previous owner. This recovery is used for the following use-case:
[16845] Fix | Delete
* 1. Opt-in
[16846] Fix | Delete
* 2. Cloning site1 to site2
[16847] Fix | Delete
* 3. Ownership switch in site1 (same applies for site2)
[16848] Fix | Delete
* 4. Install data sync on site2
[16849] Fix | Delete
* 5. Now site2's install is associated with the new owner which does not exists locally.
[16850] Fix | Delete
*/
[16851] Fix | Delete
$user = self::_get_user_by_id( $this->_storage->prev_user_id );
[16852] Fix | Delete
}
[16853] Fix | Delete
[16854] Fix | Delete
if ( ! is_object( $user ) ) {
[16855] Fix | Delete
/**
[16856] Fix | Delete
* This is a special fault tolerance mechanism to handle a scenario that the user data is missing.
[16857] Fix | Delete
*/
[16858] Fix | Delete
if (
[16859] Fix | Delete
! isset( $this->_storage->user_recovery_from_install_last_attempt_timestamp ) ||
[16860] Fix | Delete
time() > ( $this->_storage->user_recovery_from_install_last_attempt_timestamp + FS_Clone_Manager::CLONE_RESOLUTION_MAX_EXECUTION_TIME )
[16861] Fix | Delete
) {
[16862] Fix | Delete
$user = $this->sync_user_by_current_install();
[16863] Fix | Delete
} else {
[16864] Fix | Delete
return;
[16865] Fix | Delete
}
[16866] Fix | Delete
[16867] Fix | Delete
if ( is_object( $user ) ) {
[16868] Fix | Delete
$this->_storage->user_was_recovered_from_install = true;
[16869] Fix | Delete
} else {
[16870] Fix | Delete
$this->_storage->user_recovery_from_install_attempts = isset( $this->_storage->user_recovery_from_install_attempts ) ?
[16871] Fix | Delete
( $this->_storage->user_recovery_from_install_attempts + 1 ) :
[16872] Fix | Delete
1;
[16873] Fix | Delete
[16874] Fix | Delete
if ( $this->_storage->user_recovery_from_install_attempts >= 3 ) {
[16875] Fix | Delete
$this->delete_current_install( false );
[16876] Fix | Delete
} else {
[16877] Fix | Delete
$this->_storage->user_recovery_from_install_last_attempt_timestamp = time();
[16878] Fix | Delete
[16879] Fix | Delete
return;
[16880] Fix | Delete
}
[16881] Fix | Delete
}
[16882] Fix | Delete
}
[16883] Fix | Delete
[16884] Fix | Delete
$this->_user = ( $user instanceof FS_User ) ?
[16885] Fix | Delete
clone $user :
[16886] Fix | Delete
null;
[16887] Fix | Delete
}
[16888] Fix | Delete
[16889] Fix | Delete
if ( is_object( $this->_user ) ) {
[16890] Fix | Delete
// Load licenses.
[16891] Fix | Delete
$this->_licenses = $this->get_user_licenses( $this->_user->id );
[16892] Fix | Delete
}
[16893] Fix | Delete
[16894] Fix | Delete
if ( is_object( $this->_site ) ) {
[16895] Fix | Delete
// Load plans.
[16896] Fix | Delete
$this->_plans = isset( $plans[ $this->_slug ] ) ?
[16897] Fix | Delete
$plans[ $this->_slug ] :
[16898] Fix | Delete
array();
[16899] Fix | Delete
[16900] Fix | Delete
if ( ! is_array( $this->_plans ) || empty( $this->_plans ) ) {
[16901] Fix | Delete
$this->_sync_plans();
[16902] Fix | Delete
} else {
[16903] Fix | Delete
for ( $i = 0, $len = count( $this->_plans ); $i < $len; $i ++ ) {
[16904] Fix | Delete
if ( $this->_plans[ $i ] instanceof FS_Plugin_Plan ) {
[16905] Fix | Delete
$this->_plans[ $i ] = self::decrypt_entity( $this->_plans[ $i ] );
[16906] Fix | Delete
} else {
[16907] Fix | Delete
unset( $this->_plans[ $i ] );
[16908] Fix | Delete
}
[16909] Fix | Delete
}
[16910] Fix | Delete
}
[16911] Fix | Delete
[16912] Fix | Delete
$this->_license = $this->_get_license_by_id( $this->_site->license_id );
[16913] Fix | Delete
[16914] Fix | Delete
if ( $this->_site->version != $this->get_plugin_version() ) {
[16915] Fix | Delete
// If stored install version is different than current installed plugin version,
[16916] Fix | Delete
// then update plugin version event.
[16917] Fix | Delete
$this->update_plugin_version_event();
[16918] Fix | Delete
}
[16919] Fix | Delete
}
[16920] Fix | Delete
[16921] Fix | Delete
if ( true === $this->_storage->require_license_activation &&
[16922] Fix | Delete
! fs_request_get_bool( 'require_license', true )
[16923] Fix | Delete
) {
[16924] Fix | Delete
$this->_storage->require_license_activation = false;
[16925] Fix | Delete
}
[16926] Fix | Delete
[16927] Fix | Delete
if ( $this->is_theme() ) {
[16928] Fix | Delete
$this->_register_account_hooks();
[16929] Fix | Delete
}
[16930] Fix | Delete
[16931] Fix | Delete
if ( $this->is_user_in_admin() && $this->is_clone() ) {
[16932] Fix | Delete
if ( empty( FS_Clone_Manager::instance()->get_clone_identification_timestamp() ) ) {
[16933] Fix | Delete
FS_Clone_Manager::instance()->store_clone_identification_timestamp();
[16934] Fix | Delete
}
[16935] Fix | Delete
[16936] Fix | Delete
FS_Clone_Manager::instance()->maybe_update_clone_resolution_support_flag( $this->_storage->sdk_last_version );
[16937] Fix | Delete
$this->send_pending_clone_update_once();
[16938] Fix | Delete
}
[16939] Fix | Delete
}
[16940] Fix | Delete
[16941] Fix | Delete
/**
[16942] Fix | Delete
* Special user recovery mechanism.
[16943] Fix | Delete
*
[16944] Fix | Delete
* @author Vova Feldman (@svovaf)
[16945] Fix | Delete
* @since 2.0.0
[16946] Fix | Delete
*
[16947] Fix | Delete
* @param number|null $site_user_id
[16948] Fix | Delete
*
[16949] Fix | Delete
* @return \FS_User|mixed
[16950] Fix | Delete
*/
[16951] Fix | Delete
private function sync_user_by_current_install( $site_user_id = null ) {
[16952] Fix | Delete
$site_user_id = FS_Site::is_valid_id( $site_user_id ) ?
[16953] Fix | Delete
$site_user_id :
[16954] Fix | Delete
$this->_site->user_id;
[16955] Fix | Delete
[16956] Fix | Delete
$api = $this->get_api_site_scope();
[16957] Fix | Delete
[16958] Fix | Delete
$uid = $this->get_anonymous_id();
[16959] Fix | Delete
$request_path = "/users/{$site_user_id}.json?uid={$uid}";
[16960] Fix | Delete
[16961] Fix | Delete
$result = $api->get( $request_path, false, WP_FS__TIME_10_MIN_IN_SEC );
[16962] Fix | Delete
[16963] Fix | Delete
if ( $this->is_api_result_entity( $result ) ) {
[16964] Fix | Delete
$user = new FS_User( $result );
[16965] Fix | Delete
$this->_user = $user;
[16966] Fix | Delete
$this->_store_user();
[16967] Fix | Delete
[16968] Fix | Delete
return $user;
[16969] Fix | Delete
}
[16970] Fix | Delete
[16971] Fix | Delete
$error_code = FS_Api::get_error_code( $result );
[16972] Fix | Delete
[16973] Fix | Delete
if ( in_array( $error_code, array( 'invalid_unique_id', 'user_cannot_be_recovered' ) ) ) {
[16974] Fix | Delete
/**
[16975] Fix | Delete
* Those API errors will continue coming and are not recoverable with the
[16976] Fix | Delete
* current site's data. Therefore, extend the API call's cached result to 7 days.
[16977] Fix | Delete
*/
[16978] Fix | Delete
$api->update_cache_expiration( $request_path, WP_FS__TIME_WEEK_IN_SEC );
[16979] Fix | Delete
}
[16980] Fix | Delete
[16981] Fix | Delete
return $result;
[16982] Fix | Delete
}
[16983] Fix | Delete
[16984] Fix | Delete
/**
[16985] Fix | Delete
* @author Vova Feldman (@svovaf)
[16986] Fix | Delete
* @since 1.0.1
[16987] Fix | Delete
*
[16988] Fix | Delete
* @param FS_User $user
[16989] Fix | Delete
* @param FS_Site $site
[16990] Fix | Delete
* @param bool|array $plans
[16991] Fix | Delete
*/
[16992] Fix | Delete
private function _set_account( FS_User $user, FS_Site $site, $plans = false ) {
[16993] Fix | Delete
$site->user_id = $user->id;
[16994] Fix | Delete
[16995] Fix | Delete
$this->_site = $site;
[16996] Fix | Delete
$this->_user = $user;
[16997] Fix | Delete
if ( false !== $plans ) {
[16998] Fix | Delete
$this->_plans = $plans;
[16999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function