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
[18500] Fix | Delete
$this->do_action( 'after_account_connection', $this->_user, $first_install );
[18501] Fix | Delete
} else {
[18502] Fix | Delete
$this->_store_user();
[18503] Fix | Delete
[18504] Fix | Delete
// Map site addresses to their blog IDs.
[18505] Fix | Delete
$address_to_blog_map = $this->get_address_to_blog_map();
[18506] Fix | Delete
[18507] Fix | Delete
$first_blog_id = null;
[18508] Fix | Delete
$blog_2_install_map = array();
[18509] Fix | Delete
foreach ( $installs as $install ) {
[18510] Fix | Delete
$address = trailingslashit( fs_strip_url_protocol( $install->url ) );
[18511] Fix | Delete
$blog_id = $address_to_blog_map[ $address ];
[18512] Fix | Delete
[18513] Fix | Delete
$this->_store_site( true, $blog_id, $install );
[18514] Fix | Delete
[18515] Fix | Delete
if ( is_null( $first_blog_id ) ) {
[18516] Fix | Delete
$first_blog_id = $blog_id;
[18517] Fix | Delete
}
[18518] Fix | Delete
[18519] Fix | Delete
$blog_2_install_map[ $blog_id ] = $install;
[18520] Fix | Delete
}
[18521] Fix | Delete
[18522] Fix | Delete
if ( ! FS_User::is_valid_id( $this->_storage->network_user_id ) ||
[18523] Fix | Delete
! is_object( self::_get_user_by_id( $this->_storage->network_user_id ) )
[18524] Fix | Delete
) {
[18525] Fix | Delete
// Store network user.
[18526] Fix | Delete
$this->_storage->network_user_id = $this->_user->id;
[18527] Fix | Delete
}
[18528] Fix | Delete
[18529] Fix | Delete
if ( ! FS_Site::is_valid_id( $this->_storage->network_install_blog_id ) ) {
[18530] Fix | Delete
$this->_storage->network_install_blog_id = $first_blog_id;
[18531] Fix | Delete
}
[18532] Fix | Delete
[18533] Fix | Delete
if ( count( $installs ) === count( $address_to_blog_map ) ) {
[18534] Fix | Delete
// Super admin opted in for all sites in the network.
[18535] Fix | Delete
$this->_storage->is_network_connected = true;
[18536] Fix | Delete
}
[18537] Fix | Delete
[18538] Fix | Delete
$this->_store_licenses( false );
[18539] Fix | Delete
[18540] Fix | Delete
self::$_accounts->store();
[18541] Fix | Delete
[18542] Fix | Delete
// Don't sync the installs data on network upgrade
[18543] Fix | Delete
if ( ! $this->network_upgrade_mode_completed() ) {
[18544] Fix | Delete
$this->send_installs_update();
[18545] Fix | Delete
}
[18546] Fix | Delete
[18547] Fix | Delete
$current_blog = get_current_blog_id();
[18548] Fix | Delete
[18549] Fix | Delete
foreach ( $blog_2_install_map as $blog_id => $install ) {
[18550] Fix | Delete
$this->switch_to_blog( $blog_id );
[18551] Fix | Delete
[18552] Fix | Delete
$this->do_action( 'after_account_connection', $this->_user, $install );
[18553] Fix | Delete
}
[18554] Fix | Delete
[18555] Fix | Delete
// Switch install context back to the first install.
[18556] Fix | Delete
$this->switch_to_blog(
[18557] Fix | Delete
$current_blog,
[18558] Fix | Delete
$first_install,
[18559] Fix | Delete
( $this->_site->id != $first_install->id )
[18560] Fix | Delete
);
[18561] Fix | Delete
[18562] Fix | Delete
$this->do_action( 'after_network_account_connection', $this->_user, $blog_2_install_map );
[18563] Fix | Delete
}
[18564] Fix | Delete
}
[18565] Fix | Delete
[18566] Fix | Delete
/**
[18567] Fix | Delete
* Tries to activate parent account based on add-on's info.
[18568] Fix | Delete
*
[18569] Fix | Delete
* @author Vova Feldman (@svovaf)
[18570] Fix | Delete
* @since 1.2.2.7
[18571] Fix | Delete
*
[18572] Fix | Delete
* @param Freemius $parent_fs
[18573] Fix | Delete
*/
[18574] Fix | Delete
private function activate_parent_account( Freemius $parent_fs ) {
[18575] Fix | Delete
if ( ! $this->is_addon() ) {
[18576] Fix | Delete
// This is not an add-on.
[18577] Fix | Delete
return;
[18578] Fix | Delete
}
[18579] Fix | Delete
[18580] Fix | Delete
if ( $parent_fs->is_registered() ) {
[18581] Fix | Delete
// Already activated.
[18582] Fix | Delete
return;
[18583] Fix | Delete
}
[18584] Fix | Delete
[18585] Fix | Delete
// Activate parent with add-on's user credentials.
[18586] Fix | Delete
$parent_install = $this->get_api_user_scope()->call(
[18587] Fix | Delete
"/plugins/{$parent_fs->_plugin->id}/installs.json",
[18588] Fix | Delete
'post',
[18589] Fix | Delete
$parent_fs->get_install_data_for_api( array(
[18590] Fix | Delete
'uid' => $parent_fs->get_anonymous_id(),
[18591] Fix | Delete
), false, false )
[18592] Fix | Delete
);
[18593] Fix | Delete
[18594] Fix | Delete
if ( isset( $parent_install->error ) ) {
[18595] Fix | Delete
$this->_admin_notices->add(
[18596] Fix | Delete
sprintf( $this->get_text_inline( 'Couldn\'t activate %s.', 'could-not-activate-x' ), $this->get_plugin_name() ) . ' ' .
[18597] Fix | Delete
$this->get_text_inline( 'Please contact us with the following message:', 'contact-us-with-error-message' ) . ' ' . '<b>' . $parent_install->error->message . '</b>',
[18598] Fix | Delete
$this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...',
[18599] Fix | Delete
'error'
[18600] Fix | Delete
);
[18601] Fix | Delete
[18602] Fix | Delete
return;
[18603] Fix | Delete
}
[18604] Fix | Delete
[18605] Fix | Delete
$parent_fs->_admin_notices->remove_sticky( 'connect_account' );
[18606] Fix | Delete
[18607] Fix | Delete
if ( $parent_fs->is_pending_activation() ) {
[18608] Fix | Delete
$parent_fs->clear_pending_activation_mode();
[18609] Fix | Delete
}
[18610] Fix | Delete
[18611] Fix | Delete
// Get user information based on parent's plugin.
[18612] Fix | Delete
$user = $this->get_user();
[18613] Fix | Delete
[18614] Fix | Delete
// First of all, set site info - otherwise we won't
[18615] Fix | Delete
// be able to invoke API calls.
[18616] Fix | Delete
$parent_fs->_site = new FS_Site( $parent_install );
[18617] Fix | Delete
$parent_fs->_user = $user;
[18618] Fix | Delete
[18619] Fix | Delete
// Sync add-on plans.
[18620] Fix | Delete
$parent_fs->_sync_plans();
[18621] Fix | Delete
[18622] Fix | Delete
$parent_fs->update_license_required_permissions_if_anonymous();
[18623] Fix | Delete
[18624] Fix | Delete
$parent_fs->_set_account( $user, $parent_fs->_site );
[18625] Fix | Delete
}
[18626] Fix | Delete
[18627] Fix | Delete
#endregion
[18628] Fix | Delete
[18629] Fix | Delete
#----------------------------------------------------------------------------------
[18630] Fix | Delete
#region Admin Menu Items
[18631] Fix | Delete
#----------------------------------------------------------------------------------
[18632] Fix | Delete
[18633] Fix | Delete
private $_menu_items = array();
[18634] Fix | Delete
[18635] Fix | Delete
/**
[18636] Fix | Delete
* @author Vova Feldman (@svovaf)
[18637] Fix | Delete
* @since 1.2.1.8
[18638] Fix | Delete
*
[18639] Fix | Delete
* @return array
[18640] Fix | Delete
*/
[18641] Fix | Delete
function get_menu_items() {
[18642] Fix | Delete
return $this->_menu_items;
[18643] Fix | Delete
}
[18644] Fix | Delete
[18645] Fix | Delete
/**
[18646] Fix | Delete
* @author Vova Feldman (@svovaf)
[18647] Fix | Delete
* @since 1.0.7
[18648] Fix | Delete
*
[18649] Fix | Delete
* @return string
[18650] Fix | Delete
*/
[18651] Fix | Delete
function get_menu_slug() {
[18652] Fix | Delete
return $this->_menu->get_slug();
[18653] Fix | Delete
}
[18654] Fix | Delete
[18655] Fix | Delete
/**
[18656] Fix | Delete
* @author Vova Feldman (@svovaf)
[18657] Fix | Delete
* @since 1.0.9
[18658] Fix | Delete
*/
[18659] Fix | Delete
function _prepare_admin_menu() {
[18660] Fix | Delete
// if ( ! $this->is_on() ) {
[18661] Fix | Delete
// return;
[18662] Fix | Delete
// }
[18663] Fix | Delete
[18664] Fix | Delete
if ( is_object( $this->_site ) && ! $this->is_registered() ) {
[18665] Fix | Delete
return;
[18666] Fix | Delete
}
[18667] Fix | Delete
[18668] Fix | Delete
/**
[18669] Fix | Delete
* When running from a site admin with a network activated module and the connection
[18670] Fix | Delete
* was NOT delegated and the user still haven't skipped or opted-in, then hide the
[18671] Fix | Delete
* site level settings.
[18672] Fix | Delete
*
[18673] Fix | Delete
* @author Vova Feldman (@svovaf)
[18674] Fix | Delete
* @since 2.0.0
[18675] Fix | Delete
*/
[18676] Fix | Delete
$should_hide_site_admin_settings = (
[18677] Fix | Delete
$this->_is_network_active &&
[18678] Fix | Delete
! fs_is_network_admin() &&
[18679] Fix | Delete
! $this->is_delegated_connection() &&
[18680] Fix | Delete
! $this->is_anonymous() &&
[18681] Fix | Delete
! $this->is_registered()
[18682] Fix | Delete
);
[18683] Fix | Delete
[18684] Fix | Delete
$should_hide_site_admin_settings = $this->apply_filters( 'should_hide_site_admin_settings_on_network_activation_mode', $should_hide_site_admin_settings );
[18685] Fix | Delete
[18686] Fix | Delete
if ( ( false === $this->has_api_connectivity() && ! $this->is_enable_anonymous() ) ||
[18687] Fix | Delete
$should_hide_site_admin_settings
[18688] Fix | Delete
) {
[18689] Fix | Delete
$this->_menu->remove_menu_item( $should_hide_site_admin_settings );
[18690] Fix | Delete
} else {
[18691] Fix | Delete
$this->do_action( fs_is_network_admin() ?
[18692] Fix | Delete
'before_network_admin_menu_init' :
[18693] Fix | Delete
'before_admin_menu_init'
[18694] Fix | Delete
);
[18695] Fix | Delete
[18696] Fix | Delete
$this->add_menu_action();
[18697] Fix | Delete
[18698] Fix | Delete
$this->add_network_menu_when_missing();
[18699] Fix | Delete
[18700] Fix | Delete
$this->add_submenu_items();
[18701] Fix | Delete
}
[18702] Fix | Delete
}
[18703] Fix | Delete
[18704] Fix | Delete
/**
[18705] Fix | Delete
* Admin dashboard menu items modifications.
[18706] Fix | Delete
*
[18707] Fix | Delete
* NOTE: admin_menu action executed before admin_init.
[18708] Fix | Delete
*
[18709] Fix | Delete
* @author Vova Feldman (@svovaf)
[18710] Fix | Delete
* @since 1.0.7
[18711] Fix | Delete
*
[18712] Fix | Delete
*/
[18713] Fix | Delete
private function add_menu_action() {
[18714] Fix | Delete
if ( $this->is_activation_mode() ) {
[18715] Fix | Delete
if ( $this->show_opt_in_on_setting_page() ) {
[18716] Fix | Delete
$this->override_plugin_menu_with_activation();
[18717] Fix | Delete
} else {
[18718] Fix | Delete
/**
[18719] Fix | Delete
* Handle theme opt-in when the opt-in form shows as a dialog box in the themes page.
[18720] Fix | Delete
*/
[18721] Fix | Delete
if ( fs_request_is_action( $this->get_unique_affix() . '_activate_existing' ) ) {
[18722] Fix | Delete
add_action( 'load-themes.php', array( &$this, '_install_with_current_user' ) );
[18723] Fix | Delete
} else if ( fs_request_is_action( $this->get_unique_affix() . '_activate_new' ) ||
[18724] Fix | Delete
fs_request_get_bool( 'pending_activation' )
[18725] Fix | Delete
) {
[18726] Fix | Delete
add_action( 'load-themes.php', array( &$this, '_install_with_new_user' ) );
[18727] Fix | Delete
}
[18728] Fix | Delete
}
[18729] Fix | Delete
} else {
[18730] Fix | Delete
if ( ! $this->is_registered() ) {
[18731] Fix | Delete
// If not registered try to install user.
[18732] Fix | Delete
if ( fs_request_is_action( $this->get_unique_affix() . '_activate_new' ) ) {
[18733] Fix | Delete
$this->_install_with_new_user();
[18734] Fix | Delete
}
[18735] Fix | Delete
} else if (
[18736] Fix | Delete
fs_request_is_action( 'sync_user' ) &&
[18737] Fix | Delete
( ! $this->has_settings_menu() || $this->show_opt_in_on_themes_page() )
[18738] Fix | Delete
) {
[18739] Fix | Delete
$this->_handle_account_user_sync();
[18740] Fix | Delete
}
[18741] Fix | Delete
}
[18742] Fix | Delete
}
[18743] Fix | Delete
[18744] Fix | Delete
/**
[18745] Fix | Delete
* @author Vova Feldman (@svovaf)
[18746] Fix | Delete
* @since 1.0.1
[18747] Fix | Delete
*/
[18748] Fix | Delete
function _redirect_on_clicked_menu_link() {
[18749] Fix | Delete
$this->_logger->entrance();
[18750] Fix | Delete
[18751] Fix | Delete
$page = fs_request_get('page');
[18752] Fix | Delete
$page = is_string($page) ? strtolower($page) : '';
[18753] Fix | Delete
[18754] Fix | Delete
$this->_logger->log( 'page = ' . $page );
[18755] Fix | Delete
[18756] Fix | Delete
foreach ( $this->_menu_items as $priority => $items ) {
[18757] Fix | Delete
foreach ( $items as $item ) {
[18758] Fix | Delete
if ( isset( $item['url'] ) ) {
[18759] Fix | Delete
if ( $page === $this->_menu->get_slug( strtolower( $item['menu_slug'] ) ) ) {
[18760] Fix | Delete
$this->_logger->log( 'Redirecting to ' . $item['url'] );
[18761] Fix | Delete
[18762] Fix | Delete
fs_redirect( $item['url'] );
[18763] Fix | Delete
}
[18764] Fix | Delete
}
[18765] Fix | Delete
}
[18766] Fix | Delete
}
[18767] Fix | Delete
}
[18768] Fix | Delete
[18769] Fix | Delete
/**
[18770] Fix | Delete
* Remove plugin's all admin menu items & pages, and replace with activation page.
[18771] Fix | Delete
*
[18772] Fix | Delete
* @author Vova Feldman (@svovaf)
[18773] Fix | Delete
* @since 1.0.1
[18774] Fix | Delete
*/
[18775] Fix | Delete
private function override_plugin_menu_with_activation() {
[18776] Fix | Delete
$this->_logger->entrance();
[18777] Fix | Delete
[18778] Fix | Delete
$hook = false;
[18779] Fix | Delete
[18780] Fix | Delete
if ( ! $this->has_settings_menu() ) {
[18781] Fix | Delete
// Add the opt-in page without a menu item.
[18782] Fix | Delete
$hook = FS_Admin_Menu_Manager::add_subpage(
[18783] Fix | Delete
'',
[18784] Fix | Delete
$this->get_plugin_name(),
[18785] Fix | Delete
$this->get_plugin_name(),
[18786] Fix | Delete
'manage_options',
[18787] Fix | Delete
$this->_slug,
[18788] Fix | Delete
array( &$this, '_connect_page_render' )
[18789] Fix | Delete
);
[18790] Fix | Delete
} else if ( $this->_menu->is_top_level() ) {
[18791] Fix | Delete
if ( $this->_menu->is_override_exact() ) {
[18792] Fix | Delete
// Make sure the current page is matching the activation page.
[18793] Fix | Delete
if ( ! $this->is_matching_url( $this->get_activation_url() ) ) {
[18794] Fix | Delete
return;
[18795] Fix | Delete
}
[18796] Fix | Delete
}
[18797] Fix | Delete
[18798] Fix | Delete
$hook = $this->_menu->override_menu_item( array( &$this, '_connect_page_render' ) );
[18799] Fix | Delete
[18800] Fix | Delete
if ( false === $hook ) {
[18801] Fix | Delete
// Create new menu item just for the opt-in.
[18802] Fix | Delete
$hook = FS_Admin_Menu_Manager::add_page(
[18803] Fix | Delete
$this->get_plugin_name(),
[18804] Fix | Delete
$this->get_plugin_name(),
[18805] Fix | Delete
'manage_options',
[18806] Fix | Delete
$this->_menu->get_slug(),
[18807] Fix | Delete
array( &$this, '_connect_page_render' )
[18808] Fix | Delete
);
[18809] Fix | Delete
}
[18810] Fix | Delete
} else {
[18811] Fix | Delete
$menus = array( $this->_menu->get_parent_slug() );
[18812] Fix | Delete
[18813] Fix | Delete
if ( $this->_menu->is_override_exact() ) {
[18814] Fix | Delete
// Make sure the current page is matching the activation page.
[18815] Fix | Delete
if ( ! $this->is_matching_url( $this->get_activation_url() ) ) {
[18816] Fix | Delete
return;
[18817] Fix | Delete
}
[18818] Fix | Delete
}
[18819] Fix | Delete
[18820] Fix | Delete
foreach ( $menus as $parent_slug ) {
[18821] Fix | Delete
$hook = $this->_menu->override_submenu_action(
[18822] Fix | Delete
$parent_slug,
[18823] Fix | Delete
$this->_menu->get_raw_slug(),
[18824] Fix | Delete
array( &$this, '_connect_page_render' )
[18825] Fix | Delete
);
[18826] Fix | Delete
[18827] Fix | Delete
if ( false !== $hook ) {
[18828] Fix | Delete
// Found plugin's submenu item.
[18829] Fix | Delete
break;
[18830] Fix | Delete
}
[18831] Fix | Delete
}
[18832] Fix | Delete
}
[18833] Fix | Delete
[18834] Fix | Delete
if ( $this->is_activation_page() ) {
[18835] Fix | Delete
// Clean admin page from distracting content.
[18836] Fix | Delete
self::_clean_admin_content_section();
[18837] Fix | Delete
}
[18838] Fix | Delete
[18839] Fix | Delete
if ( false !== $hook ) {
[18840] Fix | Delete
if ( fs_request_is_action( $this->get_unique_affix() . '_activate_existing' ) ) {
[18841] Fix | Delete
$this->_install_with_current_user();
[18842] Fix | Delete
} else if ( fs_request_is_action( $this->get_unique_affix() . '_activate_new' ) ) {
[18843] Fix | Delete
$this->_install_with_new_user();
[18844] Fix | Delete
}
[18845] Fix | Delete
}
[18846] Fix | Delete
}
[18847] Fix | Delete
[18848] Fix | Delete
/**
[18849] Fix | Delete
* If a plugin was network activated and connected but don't have a network
[18850] Fix | Delete
* level settings, then add an artificial menu item for the Account and other
[18851] Fix | Delete
* Freemius settings.
[18852] Fix | Delete
*
[18853] Fix | Delete
* @author Vova Feldman (@svovaf)
[18854] Fix | Delete
* @since 2.0.0
[18855] Fix | Delete
*/
[18856] Fix | Delete
private function add_network_menu_when_missing() {
[18857] Fix | Delete
$this->_logger->entrance();
[18858] Fix | Delete
[18859] Fix | Delete
if ( ! $this->_is_network_active ) {
[18860] Fix | Delete
// Plugin wasn't activated on the network level.
[18861] Fix | Delete
return;
[18862] Fix | Delete
}
[18863] Fix | Delete
[18864] Fix | Delete
if ( ! fs_is_network_admin() ) {
[18865] Fix | Delete
// The context is not the network admin.
[18866] Fix | Delete
return;
[18867] Fix | Delete
}
[18868] Fix | Delete
[18869] Fix | Delete
if ( $this->_menu->has_network_menu() ) {
[18870] Fix | Delete
// Plugin already has a network level menu.
[18871] Fix | Delete
return;
[18872] Fix | Delete
}
[18873] Fix | Delete
[18874] Fix | Delete
if ( $this->is_network_activation_mode() ) {
[18875] Fix | Delete
/**
[18876] Fix | Delete
* Do not add during activation mode, otherwise, there will be duplicate menus while the opt-in
[18877] Fix | Delete
* screen is being shown.
[18878] Fix | Delete
*
[18879] Fix | Delete
* @author Leo Fajardo (@leorw)
[18880] Fix | Delete
*/
[18881] Fix | Delete
return;
[18882] Fix | Delete
}
[18883] Fix | Delete
[18884] Fix | Delete
if ( ! WP_FS__SHOW_NETWORK_EVEN_WHEN_DELEGATED ) {
[18885] Fix | Delete
if ( $this->is_network_delegated_connection() ) {
[18886] Fix | Delete
// Super-admin delegated the connection to the site admins.
[18887] Fix | Delete
return;
[18888] Fix | Delete
}
[18889] Fix | Delete
}
[18890] Fix | Delete
[18891] Fix | Delete
if ( ! $this->_menu->has_menu() || $this->_menu->is_top_level() ) {
[18892] Fix | Delete
[18893] Fix | Delete
if ( $this->_menu->has_menu() ||
[18894] Fix | Delete
! $this->is_addon() ||
[18895] Fix | Delete
$this->is_activation_mode()
[18896] Fix | Delete
) {
[18897] Fix | Delete
$this->_dynamically_added_top_level_page_hook_name = $this->_menu->add_page_and_update(
[18898] Fix | Delete
$this->get_plugin_name(),
[18899] Fix | Delete
$this->get_plugin_name(),
[18900] Fix | Delete
'manage_options',
[18901] Fix | Delete
$this->_menu->has_menu() ? $this->_menu->get_slug() : $this->_slug
[18902] Fix | Delete
);
[18903] Fix | Delete
}
[18904] Fix | Delete
} else {
[18905] Fix | Delete
$this->_menu->add_subpage_and_update(
[18906] Fix | Delete
$this->_menu->get_parent_slug(),
[18907] Fix | Delete
$this->get_plugin_name(),
[18908] Fix | Delete
$this->get_plugin_name(),
[18909] Fix | Delete
'manage_options',
[18910] Fix | Delete
$this->_menu->get_slug()
[18911] Fix | Delete
);
[18912] Fix | Delete
}
[18913] Fix | Delete
}
[18914] Fix | Delete
[18915] Fix | Delete
/**
[18916] Fix | Delete
* @author Leo Fajardo (@leorw)
[18917] Fix | Delete
* @since 1.2.1
[18918] Fix | Delete
*
[18919] Fix | Delete
* return string
[18920] Fix | Delete
*/
[18921] Fix | Delete
function get_top_level_menu_capability() {
[18922] Fix | Delete
global $menu;
[18923] Fix | Delete
[18924] Fix | Delete
$top_level_menu_slug = $this->get_top_level_menu_slug();
[18925] Fix | Delete
[18926] Fix | Delete
foreach ( $menu as $menu_info ) {
[18927] Fix | Delete
/**
[18928] Fix | Delete
* The second element in the menu info array is the capability/role that has access to the menu and the
[18929] Fix | Delete
* third element is the menu slug.
[18930] Fix | Delete
*/
[18931] Fix | Delete
if ( $menu_info[2] === $top_level_menu_slug ) {
[18932] Fix | Delete
return $menu_info[1];
[18933] Fix | Delete
}
[18934] Fix | Delete
}
[18935] Fix | Delete
[18936] Fix | Delete
return 'read';
[18937] Fix | Delete
}
[18938] Fix | Delete
[18939] Fix | Delete
/**
[18940] Fix | Delete
* @author Vova Feldman (@svovaf)
[18941] Fix | Delete
* @since 1.0.0
[18942] Fix | Delete
*
[18943] Fix | Delete
* @return string
[18944] Fix | Delete
*/
[18945] Fix | Delete
private function get_top_level_menu_slug() {
[18946] Fix | Delete
return ( $this->is_addon() ?
[18947] Fix | Delete
$this->get_parent_instance()->_menu->get_top_level_menu_slug() :
[18948] Fix | Delete
$this->_menu->get_top_level_menu_slug() );
[18949] Fix | Delete
}
[18950] Fix | Delete
[18951] Fix | Delete
/**
[18952] Fix | Delete
* @author Vova Feldman (@svovaf)
[18953] Fix | Delete
* @since 1.2.2.7
[18954] Fix | Delete
*
[18955] Fix | Delete
* @return string
[18956] Fix | Delete
*/
[18957] Fix | Delete
function get_pricing_cta_label() {
[18958] Fix | Delete
$label = $this->get_text_inline( 'Upgrade', 'upgrade' );
[18959] Fix | Delete
[18960] Fix | Delete
if ( $this->is_in_trial_promotion() &&
[18961] Fix | Delete
! $this->is_paying_or_trial()
[18962] Fix | Delete
) {
[18963] Fix | Delete
// If running a trial promotion, modify the pricing to load the trial.
[18964] Fix | Delete
$label = $this->get_text_inline( 'Start Trial', 'start-trial' );
[18965] Fix | Delete
} else if ( $this->is_paying() ) {
[18966] Fix | Delete
$label = $this->get_text_inline( 'Pricing', 'pricing' );
[18967] Fix | Delete
}
[18968] Fix | Delete
[18969] Fix | Delete
return $label;
[18970] Fix | Delete
}
[18971] Fix | Delete
[18972] Fix | Delete
/**
[18973] Fix | Delete
* @author Vova Feldman (@svovaf)
[18974] Fix | Delete
* @since 1.2.2.7
[18975] Fix | Delete
*
[18976] Fix | Delete
* @return bool
[18977] Fix | Delete
*/
[18978] Fix | Delete
function is_pricing_page_visible() {
[18979] Fix | Delete
return (
[18980] Fix | Delete
// Has at least one paid plan.
[18981] Fix | Delete
$this->has_paid_plan() &&
[18982] Fix | Delete
// Didn't ask to hide the pricing page.
[18983] Fix | Delete
$this->is_page_visible( 'pricing' ) &&
[18984] Fix | Delete
// Don't have a valid active license or has more than one plan.
[18985] Fix | Delete
( ! $this->is_paying() || ! $this->is_single_plan( true ) )
[18986] Fix | Delete
);
[18987] Fix | Delete
}
[18988] Fix | Delete
[18989] Fix | Delete
/**
[18990] Fix | Delete
* @author Leo Fajardo (@leorw)
[18991] Fix | Delete
* @since 2.3.0
[18992] Fix | Delete
*
[18993] Fix | Delete
* @param bool $is_activation_mode
[18994] Fix | Delete
*
[18995] Fix | Delete
* @return bool
[18996] Fix | Delete
*/
[18997] Fix | Delete
private function should_add_submenu_or_action_links( $is_activation_mode ) {
[18998] Fix | Delete
if ( $this->is_addon() ) {
[18999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function