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
}
[17000] Fix | Delete
[17001] Fix | Delete
$this->send_install_update();
[17002] Fix | Delete
[17003] Fix | Delete
$this->_store_account();
[17004] Fix | Delete
[17005] Fix | Delete
}
[17006] Fix | Delete
[17007] Fix | Delete
/**
[17008] Fix | Delete
* Get a sanitized array with the WordPress version, SDK version, and PHP version.
[17009] Fix | Delete
* Each version is trimmed after the 16th char.
[17010] Fix | Delete
*
[17011] Fix | Delete
* @author Vova Feldman (@svovaf)
[17012] Fix | Delete
* @since 2.2.1
[17013] Fix | Delete
*
[17014] Fix | Delete
* @return array
[17015] Fix | Delete
*/
[17016] Fix | Delete
private function get_versions() {
[17017] Fix | Delete
$versions = array();
[17018] Fix | Delete
$versions['sdk_version'] = $this->version;
[17019] Fix | Delete
[17020] Fix | Delete
// Collect these diagnostic information only if it's allowed.
[17021] Fix | Delete
if ( FS_Permission_Manager::instance( $this )->is_diagnostic_tracking_allowed() ) {
[17022] Fix | Delete
$versions['platform_version'] = get_bloginfo( 'version' );
[17023] Fix | Delete
$versions['programming_language_version'] = phpversion();
[17024] Fix | Delete
}
[17025] Fix | Delete
[17026] Fix | Delete
foreach ( $versions as $k => $version ) {
[17027] Fix | Delete
$versions[ $k ] = self::get_api_sanitized_property( $k, $version );
[17028] Fix | Delete
}
[17029] Fix | Delete
[17030] Fix | Delete
return $versions;
[17031] Fix | Delete
}
[17032] Fix | Delete
[17033] Fix | Delete
/**
[17034] Fix | Delete
* Get sanitized site language.
[17035] Fix | Delete
*
[17036] Fix | Delete
* @param string $language
[17037] Fix | Delete
* @param int $max_len
[17038] Fix | Delete
*
[17039] Fix | Delete
* @since 2.5.1
[17040] Fix | Delete
* @author Vova Feldman (@svovaf)
[17041] Fix | Delete
*
[17042] Fix | Delete
* @return string
[17043] Fix | Delete
*/
[17044] Fix | Delete
private static function get_sanitized_language( $language = '', $max_len = self::LANGUAGE_MAX_CHARS ) {
[17045] Fix | Delete
if ( empty( $language ) ) {
[17046] Fix | Delete
$language = get_bloginfo( 'language' );
[17047] Fix | Delete
}
[17048] Fix | Delete
[17049] Fix | Delete
return substr( $language, 0, $max_len );
[17050] Fix | Delete
}
[17051] Fix | Delete
[17052] Fix | Delete
/**
[17053] Fix | Delete
* Get core version stripped from pre-release and build.
[17054] Fix | Delete
*
[17055] Fix | Delete
* @since 2.5.1
[17056] Fix | Delete
* @author Vova Feldman (@svovaf)
[17057] Fix | Delete
*
[17058] Fix | Delete
* @param string $version
[17059] Fix | Delete
* @param int $parts
[17060] Fix | Delete
* @param int $max_len
[17061] Fix | Delete
* @param bool $include_pre_release
[17062] Fix | Delete
*
[17063] Fix | Delete
* @return string
[17064] Fix | Delete
*/
[17065] Fix | Delete
private static function get_core_version(
[17066] Fix | Delete
$version,
[17067] Fix | Delete
$parts = 3,
[17068] Fix | Delete
$max_len = self::VERSION_MAX_CHARS,
[17069] Fix | Delete
$include_pre_release = false
[17070] Fix | Delete
) {
[17071] Fix | Delete
if ( empty( $version ) ) {
[17072] Fix | Delete
// Version is empty.
[17073] Fix | Delete
return '';
[17074] Fix | Delete
}
[17075] Fix | Delete
[17076] Fix | Delete
if ( is_numeric( $version ) ) {
[17077] Fix | Delete
$is_float_version = is_float( $version );
[17078] Fix | Delete
[17079] Fix | Delete
$version = (string) $version;
[17080] Fix | Delete
[17081] Fix | Delete
/**
[17082] Fix | Delete
* Casting a whole float number to a string cuts the decimal point. This part make sure to add the missing decimal part to the version.
[17083] Fix | Delete
*/
[17084] Fix | Delete
if ( $is_float_version && false === strpos( $version, '.' ) ) {
[17085] Fix | Delete
$version .= '.0';
[17086] Fix | Delete
}
[17087] Fix | Delete
}
[17088] Fix | Delete
[17089] Fix | Delete
if ( ! is_string( $version ) ) {
[17090] Fix | Delete
return '';
[17091] Fix | Delete
}
[17092] Fix | Delete
[17093] Fix | Delete
if ( $parts < 1 ) {
[17094] Fix | Delete
return '';
[17095] Fix | Delete
}
[17096] Fix | Delete
[17097] Fix | Delete
$pre_release_regex = $include_pre_release ?
[17098] Fix | Delete
'(\-(alpha|beta|RC)([0-9]+)?)?' :
[17099] Fix | Delete
'';
[17100] Fix | Delete
[17101] Fix | Delete
if ( 0 === preg_match( '/^([0-9]+(\.[0-9]+){0,' . ( $parts - 1 ) . '}' . $pre_release_regex . ')/i', $version, $matches ) ) {
[17102] Fix | Delete
// Version is not starting with a digit.
[17103] Fix | Delete
return '';
[17104] Fix | Delete
}
[17105] Fix | Delete
[17106] Fix | Delete
return substr( $matches[1], 0, $max_len );
[17107] Fix | Delete
}
[17108] Fix | Delete
[17109] Fix | Delete
/**
[17110] Fix | Delete
* @param string $prop
[17111] Fix | Delete
* @param mixed $val
[17112] Fix | Delete
*
[17113] Fix | Delete
* @return mixed
[17114] Fix | Delete
*@author Vova Feldman (@svovaf)
[17115] Fix | Delete
*
[17116] Fix | Delete
* @since 2.5.1
[17117] Fix | Delete
*/
[17118] Fix | Delete
private static function get_api_sanitized_property( $prop, $val ) {
[17119] Fix | Delete
if ( ! is_string( $val ) || empty( $val ) ) {
[17120] Fix | Delete
return $val;
[17121] Fix | Delete
}
[17122] Fix | Delete
[17123] Fix | Delete
switch ( $prop ) {
[17124] Fix | Delete
case 'programming_language_version':
[17125] Fix | Delete
// Get core PHP version, which can have up to 3 parts (ignore pre-releases).
[17126] Fix | Delete
return self::get_core_version( $val );
[17127] Fix | Delete
case 'platform_version':
[17128] Fix | Delete
// Get the exact WordPress version, which can have up to 3 parts (including pre-releases).
[17129] Fix | Delete
return self::get_core_version( $val, 3, self::VERSION_MAX_CHARS, true );
[17130] Fix | Delete
case 'sdk_version':
[17131] Fix | Delete
// Get the exact SDK version, which can have up to 4 parts.
[17132] Fix | Delete
return self::get_core_version( $val, 4 );
[17133] Fix | Delete
case 'version':
[17134] Fix | Delete
// Get the entire version but just limited in length.
[17135] Fix | Delete
return substr( $val, 0, self::VERSION_MAX_CHARS );
[17136] Fix | Delete
case 'language':
[17137] Fix | Delete
return self::get_sanitized_language( $val );
[17138] Fix | Delete
default:
[17139] Fix | Delete
return $val;
[17140] Fix | Delete
}
[17141] Fix | Delete
}
[17142] Fix | Delete
[17143] Fix | Delete
/**
[17144] Fix | Delete
* @author Leo Fajardo (@leorw)
[17145] Fix | Delete
* @since 2.3.0
[17146] Fix | Delete
*
[17147] Fix | Delete
* @return bool
[17148] Fix | Delete
*/
[17149] Fix | Delete
function has_beta_update() {
[17150] Fix | Delete
return (
[17151] Fix | Delete
! empty( $this->_storage->beta_data ) &&
[17152] Fix | Delete
( true === $this->_storage->beta_data['is_beta'] ) &&
[17153] Fix | Delete
version_compare( $this->_storage->beta_data['version'], $this->get_plugin_version(), '>' )
[17154] Fix | Delete
);
[17155] Fix | Delete
}
[17156] Fix | Delete
[17157] Fix | Delete
/**
[17158] Fix | Delete
* @author Leo Fajardo (@leorw)
[17159] Fix | Delete
* @since 2.3.0
[17160] Fix | Delete
*
[17161] Fix | Delete
* @return bool
[17162] Fix | Delete
*/
[17163] Fix | Delete
function is_beta() {
[17164] Fix | Delete
return (
[17165] Fix | Delete
! empty( $this->_storage->beta_data ) &&
[17166] Fix | Delete
( true === $this->_storage->beta_data['is_beta'] ) &&
[17167] Fix | Delete
( $this->get_plugin_version() === $this->_storage->beta_data['version'] )
[17168] Fix | Delete
);
[17169] Fix | Delete
}
[17170] Fix | Delete
[17171] Fix | Delete
/**
[17172] Fix | Delete
* @author Vova Feldman (@svovaf)
[17173] Fix | Delete
* @since 1.1.7.4
[17174] Fix | Delete
*
[17175] Fix | Delete
* @param array $override_with
[17176] Fix | Delete
* @param bool|int|null $network_level_or_blog_id If true, return params for network level opt-in. If integer, get params for specified blog in the network.
[17177] Fix | Delete
*
[17178] Fix | Delete
* @return array
[17179] Fix | Delete
*/
[17180] Fix | Delete
function get_opt_in_params( $override_with = array(), $network_level_or_blog_id = null ) {
[17181] Fix | Delete
$this->_logger->entrance();
[17182] Fix | Delete
[17183] Fix | Delete
$current_user = self::_get_current_wp_user();
[17184] Fix | Delete
[17185] Fix | Delete
$activation_action = $this->get_unique_affix() . '_activate_new';
[17186] Fix | Delete
$return_url = $this->is_anonymous() ?
[17187] Fix | Delete
// If skipped already, then return to the account page.
[17188] Fix | Delete
$this->get_account_url( $activation_action, array(), false ) :
[17189] Fix | Delete
// Return to the module's main page.
[17190] Fix | Delete
$this->get_after_activation_url( 'after_connect_url', array( 'fs_action' => $activation_action ) );
[17191] Fix | Delete
[17192] Fix | Delete
$versions = $this->get_versions();
[17193] Fix | Delete
[17194] Fix | Delete
$params = array_merge( $versions, array(
[17195] Fix | Delete
'user_firstname' => $current_user->user_firstname,
[17196] Fix | Delete
'user_lastname' => $current_user->user_lastname,
[17197] Fix | Delete
'user_email' => $current_user->user_email,
[17198] Fix | Delete
'plugin_slug' => $this->_slug,
[17199] Fix | Delete
'plugin_id' => $this->get_id(),
[17200] Fix | Delete
'plugin_public_key' => $this->get_public_key(),
[17201] Fix | Delete
'plugin_version' => $this->get_plugin_version(),
[17202] Fix | Delete
'return_url' => fs_nonce_url( $return_url, $activation_action ),
[17203] Fix | Delete
'account_url' => fs_nonce_url( $this->_get_admin_page_url(
[17204] Fix | Delete
'account',
[17205] Fix | Delete
array( 'fs_action' => 'sync_user' )
[17206] Fix | Delete
), 'sync_user' ),
[17207] Fix | Delete
'is_premium' => $this->is_premium(),
[17208] Fix | Delete
'is_active' => true,
[17209] Fix | Delete
'is_uninstalled' => false,
[17210] Fix | Delete
'is_localhost' => WP_FS__IS_LOCALHOST,
[17211] Fix | Delete
) );
[17212] Fix | Delete
[17213] Fix | Delete
if ( $this->is_addon() ) {
[17214] Fix | Delete
$parent_fs = $this->get_parent_instance();
[17215] Fix | Delete
[17216] Fix | Delete
$params['parent_plugin_slug'] = $parent_fs->_slug;
[17217] Fix | Delete
$params['parent_plugin_id'] = $parent_fs->get_id();
[17218] Fix | Delete
}
[17219] Fix | Delete
[17220] Fix | Delete
if ( true === $network_level_or_blog_id ) {
[17221] Fix | Delete
if ( ! isset( $override_with['sites'] ) ) {
[17222] Fix | Delete
$params['sites'] = $this->get_sites_for_network_level_optin();
[17223] Fix | Delete
}
[17224] Fix | Delete
} else {
[17225] Fix | Delete
$site = is_numeric( $network_level_or_blog_id ) ?
[17226] Fix | Delete
array( 'blog_id' => $network_level_or_blog_id ) :
[17227] Fix | Delete
null;
[17228] Fix | Delete
[17229] Fix | Delete
$site = $this->get_site_info( $site );
[17230] Fix | Delete
[17231] Fix | Delete
$diagnostic_info = array();
[17232] Fix | Delete
if ( FS_Permission_Manager::instance( $this )->is_diagnostic_tracking_allowed() ) {
[17233] Fix | Delete
$diagnostic_info = array(
[17234] Fix | Delete
'site_name' => $site['title'],
[17235] Fix | Delete
'language' => self::get_sanitized_language( $site['language'] ),
[17236] Fix | Delete
);
[17237] Fix | Delete
}
[17238] Fix | Delete
[17239] Fix | Delete
$params = array_merge( $params, $diagnostic_info, array(
[17240] Fix | Delete
'site_uid' => $site['uid'],
[17241] Fix | Delete
'site_url' => $site['url'],
[17242] Fix | Delete
) );
[17243] Fix | Delete
}
[17244] Fix | Delete
[17245] Fix | Delete
if ( $this->is_pending_activation() &&
[17246] Fix | Delete
! empty( $this->_storage->pending_license_key )
[17247] Fix | Delete
) {
[17248] Fix | Delete
$params['license_key'] = $this->_storage->pending_license_key;
[17249] Fix | Delete
}
[17250] Fix | Delete
[17251] Fix | Delete
if ( WP_FS__SKIP_EMAIL_ACTIVATION && $this->has_secret_key() ) {
[17252] Fix | Delete
// Even though rand() is known for its security issues,
[17253] Fix | Delete
// the timestamp adds another layer of protection.
[17254] Fix | Delete
// It would be very hard for an attacker to get the secret key form here.
[17255] Fix | Delete
// Plus, this should never run in production since the secret should never
[17256] Fix | Delete
// be included in the production version.
[17257] Fix | Delete
$params['ts'] = WP_FS__SCRIPT_START_TIME;
[17258] Fix | Delete
$params['salt'] = md5( uniqid( rand() ) );
[17259] Fix | Delete
$params['secure'] = md5(
[17260] Fix | Delete
$params['ts'] .
[17261] Fix | Delete
$params['salt'] .
[17262] Fix | Delete
$this->get_secret_key()
[17263] Fix | Delete
);
[17264] Fix | Delete
}
[17265] Fix | Delete
[17266] Fix | Delete
if ( is_multisite() && function_exists( 'get_network' ) ) {
[17267] Fix | Delete
$params['network_uid'] = $this->get_anonymous_network_id();
[17268] Fix | Delete
}
[17269] Fix | Delete
[17270] Fix | Delete
return array_merge( $params, $override_with );
[17271] Fix | Delete
}
[17272] Fix | Delete
[17273] Fix | Delete
/**
[17274] Fix | Delete
* 1. If successful opt-in or pending activation returns the next page that the user should be redirected to.
[17275] Fix | Delete
* 2. If there was an API error, return the API result.
[17276] Fix | Delete
*
[17277] Fix | Delete
* @author Vova Feldman (@svovaf)
[17278] Fix | Delete
* @since 1.1.7.4
[17279] Fix | Delete
*
[17280] Fix | Delete
* @param string|bool $email
[17281] Fix | Delete
* @param string|bool $first
[17282] Fix | Delete
* @param string|bool $last
[17283] Fix | Delete
* @param string|bool $license_key
[17284] Fix | Delete
* @param bool $is_uninstall If "true", this means that the module is currently being uninstalled.
[17285] Fix | Delete
* In this case, the user and site info will be sent to the server but no
[17286] Fix | Delete
* data will be saved to the WP installation's database.
[17287] Fix | Delete
* @param number|bool $trial_plan_id
[17288] Fix | Delete
* @param bool $is_disconnected Whether to opt in without tracking.
[17289] Fix | Delete
* @param null|bool $is_marketing_allowed
[17290] Fix | Delete
* @param array $sites If network-level opt-in, an array of containing details of sites.
[17291] Fix | Delete
* @param bool $redirect
[17292] Fix | Delete
*
[17293] Fix | Delete
* @return string|object
[17294] Fix | Delete
* @use WP_Error
[17295] Fix | Delete
*/
[17296] Fix | Delete
function opt_in(
[17297] Fix | Delete
$email = false,
[17298] Fix | Delete
$first = false,
[17299] Fix | Delete
$last = false,
[17300] Fix | Delete
$license_key = false,
[17301] Fix | Delete
$is_uninstall = false,
[17302] Fix | Delete
$trial_plan_id = false,
[17303] Fix | Delete
$is_disconnected = false,
[17304] Fix | Delete
$is_marketing_allowed = null,
[17305] Fix | Delete
$sites = array(),
[17306] Fix | Delete
$redirect = true
[17307] Fix | Delete
) {
[17308] Fix | Delete
$this->_logger->entrance();
[17309] Fix | Delete
[17310] Fix | Delete
if ( false === $email ) {
[17311] Fix | Delete
$current_user = self::_get_current_wp_user();
[17312] Fix | Delete
$email = $current_user->user_email;
[17313] Fix | Delete
}
[17314] Fix | Delete
[17315] Fix | Delete
/**
[17316] Fix | Delete
* @since 1.2.1 If activating with license key, ignore the context-user
[17317] Fix | Delete
* since the user will be automatically loaded from the license.
[17318] Fix | Delete
*/
[17319] Fix | Delete
if ( empty( $license_key ) ) {
[17320] Fix | Delete
// Clean up pending license if opt-ing in again.
[17321] Fix | Delete
$this->_storage->remove( 'pending_license_key' );
[17322] Fix | Delete
[17323] Fix | Delete
if ( ! $is_uninstall ) {
[17324] Fix | Delete
$fs_user = Freemius::_get_user_by_email( $email );
[17325] Fix | Delete
if ( is_object( $fs_user ) && ! $this->is_pending_activation() ) {
[17326] Fix | Delete
return $this->install_with_user(
[17327] Fix | Delete
$fs_user,
[17328] Fix | Delete
false,
[17329] Fix | Delete
$trial_plan_id,
[17330] Fix | Delete
$redirect,
[17331] Fix | Delete
true,
[17332] Fix | Delete
$sites
[17333] Fix | Delete
);
[17334] Fix | Delete
}
[17335] Fix | Delete
}
[17336] Fix | Delete
}
[17337] Fix | Delete
[17338] Fix | Delete
$user_info = array();
[17339] Fix | Delete
if ( ! empty( $email ) ) {
[17340] Fix | Delete
$user_info['user_email'] = $email;
[17341] Fix | Delete
}
[17342] Fix | Delete
if ( ! empty( $first ) ) {
[17343] Fix | Delete
$user_info['user_firstname'] = $first;
[17344] Fix | Delete
}
[17345] Fix | Delete
if ( ! empty( $last ) ) {
[17346] Fix | Delete
$user_info['user_lastname'] = $last;
[17347] Fix | Delete
}
[17348] Fix | Delete
[17349] Fix | Delete
if ( ! empty( $sites ) ) {
[17350] Fix | Delete
$is_network = true;
[17351] Fix | Delete
[17352] Fix | Delete
$user_info['sites'] = $sites;
[17353] Fix | Delete
} else {
[17354] Fix | Delete
$is_network = false;
[17355] Fix | Delete
}
[17356] Fix | Delete
[17357] Fix | Delete
$params = $this->get_opt_in_params( $user_info, $is_network );
[17358] Fix | Delete
[17359] Fix | Delete
$filtered_license_key = false;
[17360] Fix | Delete
if ( is_string( $license_key ) ) {
[17361] Fix | Delete
$filtered_license_key = $this->apply_filters( 'license_key', $license_key );
[17362] Fix | Delete
$params['license_key'] = $filtered_license_key;
[17363] Fix | Delete
} else if ( FS_Plugin_Plan::is_valid_id( $trial_plan_id ) ) {
[17364] Fix | Delete
$params['trial_plan_id'] = $trial_plan_id;
[17365] Fix | Delete
}
[17366] Fix | Delete
[17367] Fix | Delete
if ( $is_uninstall ) {
[17368] Fix | Delete
$params['uninstall_params'] = array(
[17369] Fix | Delete
'reason_id' => $this->_storage->uninstall_reason->id,
[17370] Fix | Delete
'reason_info' => $this->_storage->uninstall_reason->info
[17371] Fix | Delete
);
[17372] Fix | Delete
}
[17373] Fix | Delete
[17374] Fix | Delete
if ( isset( $params['license_key'] ) ) {
[17375] Fix | Delete
$fs_user = Freemius::_get_user_by_email( $email );
[17376] Fix | Delete
[17377] Fix | Delete
if ( is_object( $fs_user ) ) {
[17378] Fix | Delete
/**
[17379] Fix | Delete
* If opting in with a context license and the context WP Admin user already opted in
[17380] Fix | Delete
* before from the current site, add the user context security params to avoid the
[17381] Fix | Delete
* unnecessary email activation when the context license is owned by the same context user.
[17382] Fix | Delete
*
[17383] Fix | Delete
* @author Leo Fajardo (@leorw)
[17384] Fix | Delete
* @since 1.2.3
[17385] Fix | Delete
*/
[17386] Fix | Delete
$params = array_merge( $params, FS_Security::instance()->get_context_params(
[17387] Fix | Delete
$fs_user,
[17388] Fix | Delete
false,
[17389] Fix | Delete
'install_with_existing_user'
[17390] Fix | Delete
) );
[17391] Fix | Delete
}
[17392] Fix | Delete
}
[17393] Fix | Delete
[17394] Fix | Delete
if ( is_bool( $is_marketing_allowed ) ) {
[17395] Fix | Delete
$params['is_marketing_allowed'] = $is_marketing_allowed;
[17396] Fix | Delete
}
[17397] Fix | Delete
[17398] Fix | Delete
$params['is_disconnected'] = $is_disconnected;
[17399] Fix | Delete
$params['format'] = 'json';
[17400] Fix | Delete
$params['is_extensions_tracking_allowed'] = FS_Permission_Manager::instance( $this )->is_extensions_tracking_allowed();
[17401] Fix | Delete
$params['is_diagnostic_tracking_allowed'] = FS_Permission_Manager::instance( $this )->is_diagnostic_tracking_allowed();
[17402] Fix | Delete
[17403] Fix | Delete
$request = array(
[17404] Fix | Delete
'method' => 'POST',
[17405] Fix | Delete
'body' => $params,
[17406] Fix | Delete
'timeout' => 60,
[17407] Fix | Delete
);
[17408] Fix | Delete
[17409] Fix | Delete
$url = $this->add_show_pending( WP_FS__ADDRESS . '/action/service/user/install/' );
[17410] Fix | Delete
$response = self::safe_remote_post( $url, $request );
[17411] Fix | Delete
[17412] Fix | Delete
if ( is_wp_error( $response ) ) {
[17413] Fix | Delete
/**
[17414] Fix | Delete
* @var WP_Error $response
[17415] Fix | Delete
*/
[17416] Fix | Delete
$result = new stdClass();
[17417] Fix | Delete
[17418] Fix | Delete
$error_code = $response->get_error_code();
[17419] Fix | Delete
$error_type = str_replace( ' ', '', ucwords( str_replace( '_', ' ', $error_code ) ) );
[17420] Fix | Delete
[17421] Fix | Delete
$result->error = (object) array(
[17422] Fix | Delete
'type' => $error_type,
[17423] Fix | Delete
'message' => $response->get_error_message(),
[17424] Fix | Delete
'code' => $error_code,
[17425] Fix | Delete
'http' => 402
[17426] Fix | Delete
);
[17427] Fix | Delete
[17428] Fix | Delete
$this->maybe_modify_api_curl_error_message( $result );
[17429] Fix | Delete
[17430] Fix | Delete
if ( FS_Api::is_blocked( $result ) ) {
[17431] Fix | Delete
$result->error->message = $this->generate_api_blocked_notice_message_from_result( $result );
[17432] Fix | Delete
}
[17433] Fix | Delete
[17434] Fix | Delete
$is_connected = null;
[17435] Fix | Delete
[17436] Fix | Delete
if ( empty( $license_key ) && $this->is_enable_anonymous() ) {
[17437] Fix | Delete
$this->skip_connection( fs_is_network_admin() );
[17438] Fix | Delete
[17439] Fix | Delete
$is_connected = ( ! FS_Api::is_blocked( $result ) );
[17440] Fix | Delete
}
[17441] Fix | Delete
[17442] Fix | Delete
$this->update_connectivity_info( $is_connected );
[17443] Fix | Delete
[17444] Fix | Delete
return $result;
[17445] Fix | Delete
}
[17446] Fix | Delete
[17447] Fix | Delete
$this->update_connectivity_info( true );
[17448] Fix | Delete
[17449] Fix | Delete
// Module is being uninstalled, don't handle the returned data.
[17450] Fix | Delete
if ( $is_uninstall ) {
[17451] Fix | Delete
return true;
[17452] Fix | Delete
}
[17453] Fix | Delete
[17454] Fix | Delete
/**
[17455] Fix | Delete
* When json_decode() executed on PHP 5.2 with an invalid JSON, it will throw a PHP warning. Unfortunately, the new Theme Check doesn't allow PHP silencing and the theme review team isn't open to change that, therefore, instead of using `@json_decode()` we had to use the method without the `@` directive.
[17456] Fix | Delete
*
[17457] Fix | Delete
* @author Vova Feldman (@svovaf)
[17458] Fix | Delete
* @since 1.2.3
[17459] Fix | Delete
* @link https://themes.trac.wordpress.org/ticket/46134#comment:5
[17460] Fix | Delete
* @link https://themes.trac.wordpress.org/ticket/46134#comment:9
[17461] Fix | Delete
* @link https://themes.trac.wordpress.org/ticket/46134#comment:12
[17462] Fix | Delete
* @link https://themes.trac.wordpress.org/ticket/46134#comment:14
[17463] Fix | Delete
*/
[17464] Fix | Delete
$decoded = is_string( $response['body'] ) ?
[17465] Fix | Delete
json_decode( $response['body'] ) :
[17466] Fix | Delete
null;
[17467] Fix | Delete
[17468] Fix | Delete
if ( empty( $decoded ) ) {
[17469] Fix | Delete
return false;
[17470] Fix | Delete
}
[17471] Fix | Delete
[17472] Fix | Delete
if ( ! $this->is_api_result_object( $decoded ) ) {
[17473] Fix | Delete
if ( ! empty( $params['license_key'] ) ) {
[17474] Fix | Delete
// Pass the fully entered license key to the failure handler.
[17475] Fix | Delete
$params['license_key'] = $license_key;
[17476] Fix | Delete
}
[17477] Fix | Delete
[17478] Fix | Delete
return $is_uninstall ?
[17479] Fix | Delete
$decoded :
[17480] Fix | Delete
$this->apply_filters( 'after_install_failure', $decoded, $params );
[17481] Fix | Delete
} else if ( isset( $decoded->pending_activation ) && $decoded->pending_activation ) {
[17482] Fix | Delete
if ( $is_network ) {
[17483] Fix | Delete
$site_ids = array();
[17484] Fix | Delete
foreach ( $sites as $site ) {
[17485] Fix | Delete
$site_ids[] = $site['blog_id'];
[17486] Fix | Delete
}
[17487] Fix | Delete
[17488] Fix | Delete
/**
[17489] Fix | Delete
* Store the sites so that they can be installed once the user has clicked on the activation link
[17490] Fix | Delete
* in the email.
[17491] Fix | Delete
*
[17492] Fix | Delete
* @author Leo Fajardo (@leorw)
[17493] Fix | Delete
*/
[17494] Fix | Delete
$this->_storage->pending_sites_info = array(
[17495] Fix | Delete
'blog_ids' => $site_ids,
[17496] Fix | Delete
'license_key' => $license_key,
[17497] Fix | Delete
'trial_plan_id' => $trial_plan_id
[17498] Fix | Delete
);
[17499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function