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
*
[14000] Fix | Delete
*
[14001] Fix | Delete
* @return array {
[14002] Fix | Delete
* @var bool $success
[14003] Fix | Delete
* @var string $error
[14004] Fix | Delete
* @var string $next_page
[14005] Fix | Delete
* }
[14006] Fix | Delete
*/
[14007] Fix | Delete
private function activate_license(
[14008] Fix | Delete
$license_key,
[14009] Fix | Delete
$sites = array(),
[14010] Fix | Delete
$is_marketing_allowed = null,
[14011] Fix | Delete
$blog_id = null,
[14012] Fix | Delete
$plugin_id = null,
[14013] Fix | Delete
$license_owner_id = null,
[14014] Fix | Delete
$is_extensions_tracking_allowed = null,
[14015] Fix | Delete
$is_diagnostic_tracking_allowed = null
[14016] Fix | Delete
) {
[14017] Fix | Delete
$this->_logger->entrance();
[14018] Fix | Delete
[14019] Fix | Delete
$license_key = trim( $license_key );
[14020] Fix | Delete
[14021] Fix | Delete
$is_network_activation_or_migration = (
[14022] Fix | Delete
fs_is_network_admin() ||
[14023] Fix | Delete
( ! empty( $sites ) && $this->is_migration() )
[14024] Fix | Delete
);
[14025] Fix | Delete
[14026] Fix | Delete
if ( ! $is_network_activation_or_migration ) {
[14027] Fix | Delete
// If the license activation is executed outside the context of a network admin, ignore the sites collection.
[14028] Fix | Delete
$sites = array();
[14029] Fix | Delete
}
[14030] Fix | Delete
[14031] Fix | Delete
$fs = ( empty($plugin_id) || $plugin_id == $this->_module_id ) ?
[14032] Fix | Delete
$this :
[14033] Fix | Delete
$this->get_addon_instance( $plugin_id );
[14034] Fix | Delete
[14035] Fix | Delete
FS_Permission_Manager::instance( $this )->update_permissions_tracking_flag( array(
[14036] Fix | Delete
FS_Permission_Manager::PERMISSION_DIAGNOSTIC => $is_diagnostic_tracking_allowed,
[14037] Fix | Delete
FS_Permission_Manager::PERMISSION_EXTENSIONS => $is_extensions_tracking_allowed,
[14038] Fix | Delete
) );
[14039] Fix | Delete
[14040] Fix | Delete
$error = false;
[14041] Fix | Delete
$next_page = false;
[14042] Fix | Delete
[14043] Fix | Delete
$has_valid_blog_id = is_numeric( $blog_id );
[14044] Fix | Delete
[14045] Fix | Delete
$user = null;
[14046] Fix | Delete
[14047] Fix | Delete
if ( $fs->is_addon() && $fs->get_parent_instance()->is_registered() ) {
[14048] Fix | Delete
/**
[14049] Fix | Delete
* When activating an add-on's license and the parent is opted-in, activate the license with the parent's opted-in user context.
[14050] Fix | Delete
*
[14051] Fix | Delete
* @author Vova Feldman (@svovaf)
[14052] Fix | Delete
*/
[14053] Fix | Delete
$user = $fs->get_parent_instance()->get_current_or_network_user();
[14054] Fix | Delete
} else if ( $fs->is_registered() ) {
[14055] Fix | Delete
$user = $fs->get_current_or_network_user();
[14056] Fix | Delete
}
[14057] Fix | Delete
[14058] Fix | Delete
if ( $has_valid_blog_id ) {
[14059] Fix | Delete
/**
[14060] Fix | Delete
* If a specific blog ID was provided, activate the license only on the specific blog that is associated with the given blog ID.
[14061] Fix | Delete
*
[14062] Fix | Delete
* @author Leo Fajardo (@leorw)
[14063] Fix | Delete
*/
[14064] Fix | Delete
$fs->switch_to_blog( $blog_id );
[14065] Fix | Delete
}
[14066] Fix | Delete
[14067] Fix | Delete
if ( is_object( $user ) ) {
[14068] Fix | Delete
$result = true;
[14069] Fix | Delete
[14070] Fix | Delete
if ( $is_network_activation_or_migration && ! $has_valid_blog_id ) {
[14071] Fix | Delete
// If no specific blog ID was provided, activate the license for all sites in the network.
[14072] Fix | Delete
$blog_2_install_map = array();
[14073] Fix | Delete
$site_ids = array();
[14074] Fix | Delete
[14075] Fix | Delete
foreach ( $sites as $site ) {
[14076] Fix | Delete
if ( ! isset( $site['blog_id'] ) || ! is_numeric( $site['blog_id'] ) ) {
[14077] Fix | Delete
continue;
[14078] Fix | Delete
}
[14079] Fix | Delete
[14080] Fix | Delete
$install = $fs->get_install_by_blog_id( $site['blog_id'] );
[14081] Fix | Delete
[14082] Fix | Delete
if ( is_object( $install ) ) {
[14083] Fix | Delete
$blog_2_install_map[ $site['blog_id'] ] = $install;
[14084] Fix | Delete
} else {
[14085] Fix | Delete
$site_ids[] = $site['blog_id'];
[14086] Fix | Delete
}
[14087] Fix | Delete
}
[14088] Fix | Delete
[14089] Fix | Delete
if ( ! empty( $blog_2_install_map ) ) {
[14090] Fix | Delete
$result = $fs->activate_license_on_many_installs( $user, $license_key, $blog_2_install_map );
[14091] Fix | Delete
}
[14092] Fix | Delete
[14093] Fix | Delete
if ( true === $result && ! empty( $site_ids ) ) {
[14094] Fix | Delete
$result = $fs->activate_license_on_many_sites( $user, $license_key, $site_ids );
[14095] Fix | Delete
}
[14096] Fix | Delete
} else {
[14097] Fix | Delete
if ( $fs->is_registered() ) {
[14098] Fix | Delete
$params = array(
[14099] Fix | Delete
'license_key' => $fs->apply_filters( 'license_key', $license_key )
[14100] Fix | Delete
);
[14101] Fix | Delete
[14102] Fix | Delete
$install_ids = array();
[14103] Fix | Delete
[14104] Fix | Delete
$change_owner = FS_User::is_valid_id( $license_owner_id );
[14105] Fix | Delete
[14106] Fix | Delete
if ( $change_owner ) {
[14107] Fix | Delete
$params['user_id'] = $license_owner_id;
[14108] Fix | Delete
[14109] Fix | Delete
$installs_info_by_slug_map = $fs->get_parent_and_addons_installs_info();
[14110] Fix | Delete
[14111] Fix | Delete
foreach ( $installs_info_by_slug_map as $slug => $install_info ) {
[14112] Fix | Delete
$install_ids[ $slug ] = $install_info['install']->id;
[14113] Fix | Delete
}
[14114] Fix | Delete
[14115] Fix | Delete
$params['install_ids'] = implode( ',', array_values( $install_ids ) );
[14116] Fix | Delete
}
[14117] Fix | Delete
[14118] Fix | Delete
$api = $fs->get_api_site_scope();
[14119] Fix | Delete
[14120] Fix | Delete
$result = $api->call( $fs->add_show_pending( '/' ), 'put', $params );
[14121] Fix | Delete
[14122] Fix | Delete
if ( ! FS_Api::is_api_error( $result ) ) {
[14123] Fix | Delete
$install = $result;
[14124] Fix | Delete
[14125] Fix | Delete
$fs->reconnect_locally( $has_valid_blog_id );
[14126] Fix | Delete
[14127] Fix | Delete
if (
[14128] Fix | Delete
$change_owner &&
[14129] Fix | Delete
// If successful ownership change.
[14130] Fix | Delete
$fs->get_user()->id != $install->user_id
[14131] Fix | Delete
) {
[14132] Fix | Delete
$fs->complete_ownership_change_by_license( $install->user_id, $install_ids );
[14133] Fix | Delete
}
[14134] Fix | Delete
}
[14135] Fix | Delete
} else /* ( $fs->is_addon() && $fs->get_parent_instance()->is_registered() ) */ {
[14136] Fix | Delete
$result = $fs->activate_license_on_site( $user, $license_key );
[14137] Fix | Delete
}
[14138] Fix | Delete
}
[14139] Fix | Delete
[14140] Fix | Delete
if ( true !== $result && ! FS_Api::is_api_result_entity( $result ) ) {
[14141] Fix | Delete
if ( FS_Api::is_blocked( $result ) ) {
[14142] Fix | Delete
$result->error->message = $this->generate_api_blocked_notice_message_from_result( $result );
[14143] Fix | Delete
}
[14144] Fix | Delete
[14145] Fix | Delete
$error = FS_Api::is_api_error_object( $result ) ?
[14146] Fix | Delete
$result->error->message :
[14147] Fix | Delete
var_export( $result, true );
[14148] Fix | Delete
} else {
[14149] Fix | Delete
$fs->network_upgrade_mode_completed();
[14150] Fix | Delete
[14151] Fix | Delete
$fs->_user = $user;
[14152] Fix | Delete
[14153] Fix | Delete
if ( fs_is_network_admin() && ! $has_valid_blog_id ) {
[14154] Fix | Delete
$fs->_site = $fs->get_network_install();
[14155] Fix | Delete
}
[14156] Fix | Delete
[14157] Fix | Delete
$fs->_sync_license( true, $has_valid_blog_id );
[14158] Fix | Delete
[14159] Fix | Delete
$this->maybe_sync_install_user();
[14160] Fix | Delete
[14161] Fix | Delete
$next_page = $fs->is_addon() ?
[14162] Fix | Delete
$fs->get_parent_instance()->get_account_url() :
[14163] Fix | Delete
$fs->get_after_activation_url( 'after_connect_url' );
[14164] Fix | Delete
}
[14165] Fix | Delete
} else {
[14166] Fix | Delete
$next_page = $fs->opt_in(
[14167] Fix | Delete
false,
[14168] Fix | Delete
false,
[14169] Fix | Delete
false,
[14170] Fix | Delete
$license_key,
[14171] Fix | Delete
false,
[14172] Fix | Delete
false,
[14173] Fix | Delete
false,
[14174] Fix | Delete
$is_marketing_allowed,
[14175] Fix | Delete
$sites
[14176] Fix | Delete
);
[14177] Fix | Delete
[14178] Fix | Delete
if ( isset( $next_page->error ) ) {
[14179] Fix | Delete
$error = $next_page->error;
[14180] Fix | Delete
} else {
[14181] Fix | Delete
if ( $is_network_activation_or_migration ) {
[14182] Fix | Delete
/**
[14183] Fix | Delete
* Get the list of sites that were just opted-in (and license activated).
[14184] Fix | Delete
* This is an optimization for the next part below saving some DB queries.
[14185] Fix | Delete
*/
[14186] Fix | Delete
$connected_sites = array();
[14187] Fix | Delete
foreach ( $sites as $site ) {
[14188] Fix | Delete
if ( isset( $site['blog_id'] ) && is_numeric( $site['blog_id'] ) ) {
[14189] Fix | Delete
$connected_sites[ $site['blog_id'] ] = true;
[14190] Fix | Delete
}
[14191] Fix | Delete
}
[14192] Fix | Delete
[14193] Fix | Delete
$all_sites = self::get_sites();
[14194] Fix | Delete
$pending_blog_ids = array();
[14195] Fix | Delete
[14196] Fix | Delete
/**
[14197] Fix | Delete
* Check if there are any sites that are not connected, skipped, nor delegated. For every site that falls into that category, if the product is freemium, skip the connection. If the product is premium only, delegate the connection to the site administrator.
[14198] Fix | Delete
*
[14199] Fix | Delete
* @author Vova Feldman (@svovaf)
[14200] Fix | Delete
*/
[14201] Fix | Delete
foreach ( $all_sites as $site ) {
[14202] Fix | Delete
$blog_id = self::get_site_blog_id( $site );
[14203] Fix | Delete
[14204] Fix | Delete
if ( isset( $connected_sites[ $blog_id ] ) ) {
[14205] Fix | Delete
// Site was just connected.
[14206] Fix | Delete
continue;
[14207] Fix | Delete
}
[14208] Fix | Delete
[14209] Fix | Delete
if ( $fs->is_installed_on_site( $blog_id ) ) {
[14210] Fix | Delete
// Site was already connected before.
[14211] Fix | Delete
continue;
[14212] Fix | Delete
}
[14213] Fix | Delete
[14214] Fix | Delete
if ( $fs->is_site_delegated_connection( $blog_id ) ) {
[14215] Fix | Delete
// Site's connection was delegated.
[14216] Fix | Delete
continue;
[14217] Fix | Delete
}
[14218] Fix | Delete
[14219] Fix | Delete
if ( $fs->is_anonymous_site( $blog_id ) ) {
[14220] Fix | Delete
// Site connection was already skipped.
[14221] Fix | Delete
continue;
[14222] Fix | Delete
}
[14223] Fix | Delete
[14224] Fix | Delete
$pending_blog_ids[] = $blog_id;
[14225] Fix | Delete
}
[14226] Fix | Delete
[14227] Fix | Delete
if ( ! empty( $pending_blog_ids ) ) {
[14228] Fix | Delete
if ( $fs->is_freemium() && $fs->is_enable_anonymous() ) {
[14229] Fix | Delete
$fs->skip_connection( $pending_blog_ids );
[14230] Fix | Delete
} else {
[14231] Fix | Delete
$fs->delegate_connection( $pending_blog_ids );
[14232] Fix | Delete
}
[14233] Fix | Delete
}
[14234] Fix | Delete
}
[14235] Fix | Delete
}
[14236] Fix | Delete
}
[14237] Fix | Delete
[14238] Fix | Delete
if ( false === $error && true === $fs->_storage->require_license_activation ) {
[14239] Fix | Delete
$fs->_storage->require_license_activation = false;
[14240] Fix | Delete
}
[14241] Fix | Delete
[14242] Fix | Delete
$result = array(
[14243] Fix | Delete
'success' => ( false === $error )
[14244] Fix | Delete
);
[14245] Fix | Delete
[14246] Fix | Delete
if ( false !== $error ) {
[14247] Fix | Delete
$result['error'] = $fs->apply_filters( 'opt_in_error_message', $error );
[14248] Fix | Delete
} else {
[14249] Fix | Delete
if ( $fs->is_addon() || $fs->has_addons() ) {
[14250] Fix | Delete
/**
[14251] Fix | Delete
* Purge the valid user licenses cache so that when the "Account" or the "Add-Ons" page is loaded,
[14252] Fix | Delete
* an updated valid user licenses collection will be fetched from the server which is used to also
[14253] Fix | Delete
* update the account add-ons (add-ons the user has licenses for).
[14254] Fix | Delete
*
[14255] Fix | Delete
* @author Leo Fajardo (@leorw)
[14256] Fix | Delete
* @since 2.2.4
[14257] Fix | Delete
*/
[14258] Fix | Delete
$fs->purge_valid_user_licenses_cache();
[14259] Fix | Delete
}
[14260] Fix | Delete
[14261] Fix | Delete
$result['next_page'] = $next_page;
[14262] Fix | Delete
}
[14263] Fix | Delete
[14264] Fix | Delete
return $result;
[14265] Fix | Delete
}
[14266] Fix | Delete
[14267] Fix | Delete
/**
[14268] Fix | Delete
* @author Leo Fajardo (@leorw)
[14269] Fix | Delete
* @since 2.3.2
[14270] Fix | Delete
*
[14271] Fix | Delete
* @return array {
[14272] Fix | Delete
* @key string Product slug.
[14273] Fix | Delete
* @value array {
[14274] Fix | Delete
* @property FS_Site $site
[14275] Fix | Delete
* @property FS_Plugin_License $license
[14276] Fix | Delete
* }
[14277] Fix | Delete
* }
[14278] Fix | Delete
*/
[14279] Fix | Delete
private function get_parent_and_addons_installs_info() {
[14280] Fix | Delete
$fs = $this->is_addon() ?
[14281] Fix | Delete
$this->get_parent_instance() :
[14282] Fix | Delete
$this;
[14283] Fix | Delete
[14284] Fix | Delete
$installed_addons_ids = array();
[14285] Fix | Delete
[14286] Fix | Delete
$installed_addons_instances = $fs->get_installed_addons();
[14287] Fix | Delete
foreach ( $installed_addons_instances as $instance ) {
[14288] Fix | Delete
$installed_addons_ids[] = $instance->get_id();
[14289] Fix | Delete
}
[14290] Fix | Delete
[14291] Fix | Delete
$addons_ids = array_unique( array_merge(
[14292] Fix | Delete
$installed_addons_ids,
[14293] Fix | Delete
$fs->get_updated_account_addons()
[14294] Fix | Delete
) );
[14295] Fix | Delete
[14296] Fix | Delete
// Add parent product info.
[14297] Fix | Delete
$installs_info_by_slug_map = array(
[14298] Fix | Delete
$fs->get_slug() => array(
[14299] Fix | Delete
'install' => $fs->get_site(),
[14300] Fix | Delete
'license' => $fs->_get_license()
[14301] Fix | Delete
)
[14302] Fix | Delete
);
[14303] Fix | Delete
[14304] Fix | Delete
foreach ( $addons_ids as $addon_id ) {
[14305] Fix | Delete
$is_installed = isset( $installed_addons_ids_map[ $addon_id ] );
[14306] Fix | Delete
[14307] Fix | Delete
$addon_info = $fs->_get_addon_info( $addon_id, $is_installed );
[14308] Fix | Delete
[14309] Fix | Delete
if ( ! isset( $addon_info['is_connected'] ) || ! $addon_info['is_connected'] ) {
[14310] Fix | Delete
// Add-on is not associated with an install entity.
[14311] Fix | Delete
continue;
[14312] Fix | Delete
}
[14313] Fix | Delete
[14314] Fix | Delete
$installs_info_by_slug_map[ $addon_info['slug'] ] = array(
[14315] Fix | Delete
'install' => $addon_info['site'],
[14316] Fix | Delete
'license' => isset( $addon_info['license'] ) ?
[14317] Fix | Delete
$addon_info['license'] :
[14318] Fix | Delete
null
[14319] Fix | Delete
);
[14320] Fix | Delete
}
[14321] Fix | Delete
[14322] Fix | Delete
return $installs_info_by_slug_map;
[14323] Fix | Delete
}
[14324] Fix | Delete
[14325] Fix | Delete
/**
[14326] Fix | Delete
* @author Leo Fajardo (@leorw)
[14327] Fix | Delete
* @since 1.2.3.1
[14328] Fix | Delete
*/
[14329] Fix | Delete
function _network_activate_ajax_action() {
[14330] Fix | Delete
$this->_logger->entrance();
[14331] Fix | Delete
[14332] Fix | Delete
$this->check_ajax_referer( 'network_activate' );
[14333] Fix | Delete
[14334] Fix | Delete
$plugin_id = fs_request_get( 'module_id', '', 'post' );
[14335] Fix | Delete
$fs = ( $plugin_id == $this->_module_id ) ?
[14336] Fix | Delete
$this :
[14337] Fix | Delete
$this->get_addon_instance( $plugin_id );
[14338] Fix | Delete
[14339] Fix | Delete
$error = false;
[14340] Fix | Delete
[14341] Fix | Delete
$sites = fs_request_get( 'sites', array(), 'post' );
[14342] Fix | Delete
if ( is_array( $sites ) && ! empty( $sites ) ) {
[14343] Fix | Delete
$sites_by_action = array(
[14344] Fix | Delete
'allow' => array(),
[14345] Fix | Delete
'delegate' => array(),
[14346] Fix | Delete
'skip' => array()
[14347] Fix | Delete
);
[14348] Fix | Delete
[14349] Fix | Delete
foreach ( $sites as $site ) {
[14350] Fix | Delete
$sites_by_action[ $site['action'] ][] = $site;
[14351] Fix | Delete
}
[14352] Fix | Delete
[14353] Fix | Delete
$total_sites = count( $sites );
[14354] Fix | Delete
$total_sites_to_delegate = count( $sites_by_action['delegate'] );
[14355] Fix | Delete
[14356] Fix | Delete
$next_page = '';
[14357] Fix | Delete
[14358] Fix | Delete
$has_any_install = fs_request_get_bool( 'has_any_install' );
[14359] Fix | Delete
[14360] Fix | Delete
if ( $total_sites === $total_sites_to_delegate &&
[14361] Fix | Delete
! $this->is_network_upgrade_mode() &&
[14362] Fix | Delete
! $has_any_install
[14363] Fix | Delete
) {
[14364] Fix | Delete
$this->delegate_connection();
[14365] Fix | Delete
} else {
[14366] Fix | Delete
if ( ! empty( $sites_by_action['delegate'] ) ) {
[14367] Fix | Delete
$this->delegate_connection( self::get_sites_blog_ids( $sites_by_action['delegate'] ) );
[14368] Fix | Delete
}
[14369] Fix | Delete
[14370] Fix | Delete
if ( ! empty( $sites_by_action['skip'] ) ) {
[14371] Fix | Delete
$this->skip_connection( self::get_sites_blog_ids( $sites_by_action['skip'] ) );
[14372] Fix | Delete
}
[14373] Fix | Delete
[14374] Fix | Delete
if ( empty( $sites_by_action['allow'] ) ) {
[14375] Fix | Delete
if ( $has_any_install ) {
[14376] Fix | Delete
$first_install = $fs->find_first_install();
[14377] Fix | Delete
[14378] Fix | Delete
if ( ! is_null( $first_install ) ) {
[14379] Fix | Delete
$fs->_site = $first_install['install'];
[14380] Fix | Delete
$fs->_storage->network_install_blog_id = $first_install['blog_id'];
[14381] Fix | Delete
[14382] Fix | Delete
$fs->_user = self::_get_user_by_id( $fs->_site->user_id );
[14383] Fix | Delete
$fs->_storage->network_user_id = $fs->_user->id;
[14384] Fix | Delete
}
[14385] Fix | Delete
}
[14386] Fix | Delete
} else {
[14387] Fix | Delete
if ( ! $fs->is_registered() || ! $this->_is_network_active ) {
[14388] Fix | Delete
$next_page = $fs->opt_in(
[14389] Fix | Delete
false,
[14390] Fix | Delete
false,
[14391] Fix | Delete
false,
[14392] Fix | Delete
false,
[14393] Fix | Delete
false,
[14394] Fix | Delete
false,
[14395] Fix | Delete
false,
[14396] Fix | Delete
fs_request_get_bool( 'is_marketing_allowed', null ),
[14397] Fix | Delete
$sites_by_action['allow']
[14398] Fix | Delete
);
[14399] Fix | Delete
} else {
[14400] Fix | Delete
$next_page = $fs->install_with_user(
[14401] Fix | Delete
$this->get_network_user(),
[14402] Fix | Delete
false,
[14403] Fix | Delete
false,
[14404] Fix | Delete
false,
[14405] Fix | Delete
true,
[14406] Fix | Delete
$sites_by_action['allow']
[14407] Fix | Delete
);
[14408] Fix | Delete
}
[14409] Fix | Delete
[14410] Fix | Delete
if ( is_object( $next_page ) && isset( $next_page->error ) ) {
[14411] Fix | Delete
$error = $next_page->error;
[14412] Fix | Delete
}
[14413] Fix | Delete
}
[14414] Fix | Delete
}
[14415] Fix | Delete
[14416] Fix | Delete
if ( empty( $next_page ) ) {
[14417] Fix | Delete
$next_page = $this->get_after_activation_url( 'after_network_activation_url' );
[14418] Fix | Delete
}
[14419] Fix | Delete
} else {
[14420] Fix | Delete
$error = $this->get_text_inline( 'Invalid site details collection.', 'invalid_site_details_collection' );
[14421] Fix | Delete
}
[14422] Fix | Delete
[14423] Fix | Delete
$result = array(
[14424] Fix | Delete
'success' => ( false === $error )
[14425] Fix | Delete
);
[14426] Fix | Delete
[14427] Fix | Delete
if ( false !== $error ) {
[14428] Fix | Delete
$result['error'] = $error;
[14429] Fix | Delete
} else {
[14430] Fix | Delete
$result['next_page'] = $next_page;
[14431] Fix | Delete
}
[14432] Fix | Delete
[14433] Fix | Delete
echo json_encode( $result );
[14434] Fix | Delete
[14435] Fix | Delete
exit;
[14436] Fix | Delete
}
[14437] Fix | Delete
[14438] Fix | Delete
/**
[14439] Fix | Delete
* Billing update AJAX callback.
[14440] Fix | Delete
*
[14441] Fix | Delete
* @author Vova Feldman (@svovaf)
[14442] Fix | Delete
* @since 1.2.1.5
[14443] Fix | Delete
*/
[14444] Fix | Delete
function _update_billing_ajax_action() {
[14445] Fix | Delete
$this->_logger->entrance();
[14446] Fix | Delete
[14447] Fix | Delete
$this->check_ajax_referer( 'update_billing' );
[14448] Fix | Delete
[14449] Fix | Delete
if ( ! $this->is_user_admin() ) {
[14450] Fix | Delete
// Only for admins.
[14451] Fix | Delete
self::shoot_ajax_failure();
[14452] Fix | Delete
}
[14453] Fix | Delete
[14454] Fix | Delete
$billing = fs_request_get( 'billing' );
[14455] Fix | Delete
[14456] Fix | Delete
$api = $this->get_api_user_scope();
[14457] Fix | Delete
$result = $api->call( '/billing.json', 'put', array_merge( $billing, array(
[14458] Fix | Delete
'plugin_id' => $this->get_parent_id(),
[14459] Fix | Delete
) ) );
[14460] Fix | Delete
[14461] Fix | Delete
if ( ! $this->is_api_result_entity( $result ) ) {
[14462] Fix | Delete
self::shoot_ajax_failure();
[14463] Fix | Delete
}
[14464] Fix | Delete
[14465] Fix | Delete
// Purge cached billing.
[14466] Fix | Delete
$this->get_api_user_scope()->purge_cache( 'billing.json' );
[14467] Fix | Delete
[14468] Fix | Delete
self::shoot_ajax_success();
[14469] Fix | Delete
}
[14470] Fix | Delete
[14471] Fix | Delete
/**
[14472] Fix | Delete
* Trial start for anonymous users (AJAX callback).
[14473] Fix | Delete
*
[14474] Fix | Delete
* @author Vova Feldman (@svovaf)
[14475] Fix | Delete
* @since 1.2.1.5
[14476] Fix | Delete
*/
[14477] Fix | Delete
function _start_trial_ajax_action() {
[14478] Fix | Delete
$this->_logger->entrance();
[14479] Fix | Delete
[14480] Fix | Delete
$this->check_ajax_referer( 'start_trial' );
[14481] Fix | Delete
[14482] Fix | Delete
if ( ! $this->is_user_admin() ) {
[14483] Fix | Delete
// Only for admins.
[14484] Fix | Delete
self::shoot_ajax_failure();
[14485] Fix | Delete
}
[14486] Fix | Delete
[14487] Fix | Delete
$trial_data = fs_request_get( 'trial' );
[14488] Fix | Delete
[14489] Fix | Delete
$next_page = $this->opt_in(
[14490] Fix | Delete
false,
[14491] Fix | Delete
false,
[14492] Fix | Delete
false,
[14493] Fix | Delete
false,
[14494] Fix | Delete
false,
[14495] Fix | Delete
$trial_data['plan_id']
[14496] Fix | Delete
);
[14497] Fix | Delete
[14498] Fix | Delete
if ( is_object( $next_page ) && $this->is_api_error( $next_page ) ) {
[14499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function