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
'update-nag'
[23500] Fix | Delete
);
[23501] Fix | Delete
}
[23502] Fix | Delete
}
[23503] Fix | Delete
[23504] Fix | Delete
/**
[23505] Fix | Delete
* Render add-ons page.
[23506] Fix | Delete
*
[23507] Fix | Delete
* @author Vova Feldman (@svovaf)
[23508] Fix | Delete
* @since 1.0.6
[23509] Fix | Delete
*/
[23510] Fix | Delete
function _addons_page_render() {
[23511] Fix | Delete
$this->_logger->entrance();
[23512] Fix | Delete
[23513] Fix | Delete
$vars = array( 'id' => $this->_module_id );
[23514] Fix | Delete
[23515] Fix | Delete
/**
[23516] Fix | Delete
* Added filter to the template to allow developers wrapping the template
[23517] Fix | Delete
* in custom HTML (e.g. within a wizard/tabs).
[23518] Fix | Delete
*
[23519] Fix | Delete
* @author Vova Feldman (@svovaf)
[23520] Fix | Delete
* @since 1.2.1.6
[23521] Fix | Delete
*/
[23522] Fix | Delete
echo $this->apply_filters( 'templates/add-ons.php', fs_get_template( 'add-ons.php', $vars ) );
[23523] Fix | Delete
}
[23524] Fix | Delete
[23525] Fix | Delete
/* Pricing & Upgrade
[23526] Fix | Delete
------------------------------------------------------------------------------------------------------------------*/
[23527] Fix | Delete
/**
[23528] Fix | Delete
* Render pricing page.
[23529] Fix | Delete
*
[23530] Fix | Delete
* @author Vova Feldman (@svovaf)
[23531] Fix | Delete
* @since 1.0.0
[23532] Fix | Delete
*/
[23533] Fix | Delete
function _pricing_page_render() {
[23534] Fix | Delete
$this->_logger->entrance();
[23535] Fix | Delete
[23536] Fix | Delete
$vars = array( 'id' => $this->_module_id );
[23537] Fix | Delete
[23538] Fix | Delete
if ( 'true' === fs_request_get( 'checkout', false ) ) {
[23539] Fix | Delete
echo $this->apply_filters( 'templates/checkout.php', fs_get_template( 'checkout.php', $vars ) );
[23540] Fix | Delete
} else {
[23541] Fix | Delete
echo $this->apply_filters( 'templates/pricing.php', fs_get_template( 'pricing.php', $vars ) );
[23542] Fix | Delete
}
[23543] Fix | Delete
}
[23544] Fix | Delete
[23545] Fix | Delete
/**
[23546] Fix | Delete
* @author Leo Fajardo (@leorw)
[23547] Fix | Delete
* @since 2.3.1
[23548] Fix | Delete
*/
[23549] Fix | Delete
function _maybe_add_pricing_ajax_handler() {
[23550] Fix | Delete
if ( ! $this->should_use_external_pricing() ) {
[23551] Fix | Delete
$this->add_ajax_action( 'pricing_ajax_action', array( &$this, '_fs_pricing_ajax_action_handler' ) );
[23552] Fix | Delete
}
[23553] Fix | Delete
}
[23554] Fix | Delete
[23555] Fix | Delete
/**
[23556] Fix | Delete
* @author Leo Fajardo (@leorw)
[23557] Fix | Delete
* @since 2.3.1
[23558] Fix | Delete
*/
[23559] Fix | Delete
function _fs_pricing_ajax_action_handler() {
[23560] Fix | Delete
$this->check_ajax_referer( 'pricing_ajax_action' );
[23561] Fix | Delete
[23562] Fix | Delete
$result = null;
[23563] Fix | Delete
$pricing_action = fs_request_get( 'pricing_action' );
[23564] Fix | Delete
[23565] Fix | Delete
switch ( $pricing_action ) {
[23566] Fix | Delete
case 'fetch_pricing_data':
[23567] Fix | Delete
$params = array(
[23568] Fix | Delete
'is_enriched' => true,
[23569] Fix | Delete
'trial' => fs_request_get_bool( 'trial' ),
[23570] Fix | Delete
'sandbox' => fs_request_get_raw( 'sandbox' ),
[23571] Fix | Delete
's_ctx_type' => fs_request_get_raw( 's_ctx_type' ),
[23572] Fix | Delete
's_ctx_id' => fs_request_get_raw( 's_ctx_id' ),
[23573] Fix | Delete
's_ctx_ts' => fs_request_get_raw( 's_ctx_ts' ),
[23574] Fix | Delete
's_ctx_secure' => fs_request_get_raw( 's_ctx_secure' ),
[23575] Fix | Delete
);
[23576] Fix | Delete
[23577] Fix | Delete
$bundle_id = $this->get_bundle_id();
[23578] Fix | Delete
$bundle_public_key = $this->get_bundle_public_key();
[23579] Fix | Delete
[23580] Fix | Delete
$has_bundle_context = ( FS_Plugin::is_valid_id( $bundle_id ) && ! empty( $bundle_public_key ) );
[23581] Fix | Delete
[23582] Fix | Delete
if ( ! $has_bundle_context ) {
[23583] Fix | Delete
$api = $this->get_api_plugin_scope();
[23584] Fix | Delete
} else {
[23585] Fix | Delete
$api = FS_Api::instance(
[23586] Fix | Delete
$bundle_id,
[23587] Fix | Delete
'plugin',
[23588] Fix | Delete
$bundle_id,
[23589] Fix | Delete
$bundle_public_key,
[23590] Fix | Delete
! $this->is_live(),
[23591] Fix | Delete
false,
[23592] Fix | Delete
$this->get_sdk_version()
[23593] Fix | Delete
);
[23594] Fix | Delete
[23595] Fix | Delete
$params['plugin_id'] = $this->get_id();
[23596] Fix | Delete
$params['plugin_public_key'] = $this->get_public_key();
[23597] Fix | Delete
}
[23598] Fix | Delete
[23599] Fix | Delete
$result = $api->get( 'pricing.json?' . http_build_query( $params ) );
[23600] Fix | Delete
break;
[23601] Fix | Delete
case 'start_trial':
[23602] Fix | Delete
$result = $this->opt_in(
[23603] Fix | Delete
false,
[23604] Fix | Delete
false,
[23605] Fix | Delete
false,
[23606] Fix | Delete
false,
[23607] Fix | Delete
false,
[23608] Fix | Delete
fs_request_get( 'plan_id' )
[23609] Fix | Delete
);
[23610] Fix | Delete
}
[23611] Fix | Delete
[23612] Fix | Delete
if ( is_object( $result ) && $this->is_api_error( $result ) ) {
[23613] Fix | Delete
$this->_logger->api_error( $result );
[23614] Fix | Delete
[23615] Fix | Delete
self::shoot_ajax_failure(
[23616] Fix | Delete
isset( $result->error ) ?
[23617] Fix | Delete
( is_string( $result->error ) ? $result->error : $result->error->message ) :
[23618] Fix | Delete
var_export( $result, true )
[23619] Fix | Delete
);
[23620] Fix | Delete
}
[23621] Fix | Delete
[23622] Fix | Delete
$this->shoot_ajax_success( $result );
[23623] Fix | Delete
}
[23624] Fix | Delete
[23625] Fix | Delete
#----------------------------------------------------------------------------------
[23626] Fix | Delete
#region Contact Us
[23627] Fix | Delete
#----------------------------------------------------------------------------------
[23628] Fix | Delete
[23629] Fix | Delete
/**
[23630] Fix | Delete
* Render contact-us page.
[23631] Fix | Delete
*
[23632] Fix | Delete
* @author Vova Feldman (@svovaf)
[23633] Fix | Delete
* @since 1.0.3
[23634] Fix | Delete
*/
[23635] Fix | Delete
function _contact_page_render() {
[23636] Fix | Delete
$this->_logger->entrance();
[23637] Fix | Delete
[23638] Fix | Delete
$vars = array( 'id' => $this->_module_id );
[23639] Fix | Delete
[23640] Fix | Delete
/**
[23641] Fix | Delete
* Added filter to the template to allow developers wrapping the template
[23642] Fix | Delete
* in custom HTML (e.g. within a wizard/tabs).
[23643] Fix | Delete
*
[23644] Fix | Delete
* @author Vova Feldman (@svovaf)
[23645] Fix | Delete
* @since 2.1.3
[23646] Fix | Delete
*/
[23647] Fix | Delete
echo $this->apply_filters( 'templates/contact.php', fs_get_template( 'contact.php', $vars ) );
[23648] Fix | Delete
}
[23649] Fix | Delete
[23650] Fix | Delete
#endregion ------------------------------------------------------------------------
[23651] Fix | Delete
[23652] Fix | Delete
/**
[23653] Fix | Delete
* Hide all admin notices to prevent distractions.
[23654] Fix | Delete
*
[23655] Fix | Delete
* @author Vova Feldman (@svovaf)
[23656] Fix | Delete
* @since 1.0.3
[23657] Fix | Delete
*
[23658] Fix | Delete
* @uses remove_all_actions()
[23659] Fix | Delete
*/
[23660] Fix | Delete
private static function _hide_admin_notices() {
[23661] Fix | Delete
remove_all_actions( 'admin_notices' );
[23662] Fix | Delete
remove_all_actions( 'network_admin_notices' );
[23663] Fix | Delete
remove_all_actions( 'all_admin_notices' );
[23664] Fix | Delete
remove_all_actions( 'user_admin_notices' );
[23665] Fix | Delete
}
[23666] Fix | Delete
[23667] Fix | Delete
static function _clean_admin_content_section_hook() {
[23668] Fix | Delete
$hide_admin_notices = true;
[23669] Fix | Delete
[23670] Fix | Delete
if ( fs_request_is_action( 'allow_clone_resolution_notice' ) ) {
[23671] Fix | Delete
check_admin_referer( 'fs_allow_clone_resolution_notice' );
[23672] Fix | Delete
[23673] Fix | Delete
$hide_admin_notices = false;
[23674] Fix | Delete
}
[23675] Fix | Delete
[23676] Fix | Delete
if ( $hide_admin_notices ) {
[23677] Fix | Delete
self::_hide_admin_notices();
[23678] Fix | Delete
}
[23679] Fix | Delete
[23680] Fix | Delete
// Hide footer.
[23681] Fix | Delete
echo '<style>#wpfooter { display: none !important; }</style>';
[23682] Fix | Delete
}
[23683] Fix | Delete
[23684] Fix | Delete
/**
[23685] Fix | Delete
* Attach to admin_head hook to hide all admin notices.
[23686] Fix | Delete
*
[23687] Fix | Delete
* @author Vova Feldman (@svovaf)
[23688] Fix | Delete
* @since 1.0.3
[23689] Fix | Delete
*/
[23690] Fix | Delete
static function _clean_admin_content_section() {
[23691] Fix | Delete
add_action( 'admin_head', 'Freemius::_clean_admin_content_section_hook' );
[23692] Fix | Delete
}
[23693] Fix | Delete
[23694] Fix | Delete
/* CSS & JavaScript
[23695] Fix | Delete
------------------------------------------------------------------------------------------------------------------*/
[23696] Fix | Delete
/* function _enqueue_script($handle, $src) {
[23697] Fix | Delete
$url = plugins_url( substr( WP_FS__DIR_JS, strlen( $this->_plugin_dir_path ) ) . '/assets/js/' . $src );
[23698] Fix | Delete
[23699] Fix | Delete
$this->_logger->entrance( 'script = ' . $url );
[23700] Fix | Delete
[23701] Fix | Delete
wp_enqueue_script( $handle, $url );
[23702] Fix | Delete
}*/
[23703] Fix | Delete
[23704] Fix | Delete
/* SDK
[23705] Fix | Delete
------------------------------------------------------------------------------------------------------------------*/
[23706] Fix | Delete
private $_user_api;
[23707] Fix | Delete
[23708] Fix | Delete
/**
[23709] Fix | Delete
*
[23710] Fix | Delete
* @author Vova Feldman (@svovaf)
[23711] Fix | Delete
* @since 1.0.2
[23712] Fix | Delete
*
[23713] Fix | Delete
* @param bool $flush
[23714] Fix | Delete
*
[23715] Fix | Delete
* @return FS_Api
[23716] Fix | Delete
*/
[23717] Fix | Delete
function get_api_user_scope( $flush = false ) {
[23718] Fix | Delete
if ( ! isset( $this->_user_api ) || $flush ) {
[23719] Fix | Delete
$this->_user_api = $this->get_api_user_scope_by_user( $this->_user );
[23720] Fix | Delete
}
[23721] Fix | Delete
[23722] Fix | Delete
return $this->_user_api;
[23723] Fix | Delete
}
[23724] Fix | Delete
[23725] Fix | Delete
/**
[23726] Fix | Delete
* @author Vova Feldman (@svovaf)
[23727] Fix | Delete
* @since 2.0.0
[23728] Fix | Delete
*
[23729] Fix | Delete
* @param \FS_User $user
[23730] Fix | Delete
*
[23731] Fix | Delete
* @return \FS_Api
[23732] Fix | Delete
*/
[23733] Fix | Delete
private function get_api_user_scope_by_user( FS_User $user ) {
[23734] Fix | Delete
return FS_Api::instance(
[23735] Fix | Delete
$this->_module_id,
[23736] Fix | Delete
'user',
[23737] Fix | Delete
$user->id,
[23738] Fix | Delete
$user->public_key,
[23739] Fix | Delete
! $this->is_live(),
[23740] Fix | Delete
$user->secret_key,
[23741] Fix | Delete
$this->get_sdk_version()
[23742] Fix | Delete
);
[23743] Fix | Delete
}
[23744] Fix | Delete
[23745] Fix | Delete
/**
[23746] Fix | Delete
*
[23747] Fix | Delete
* @author Leo Fajardo (@leorw)
[23748] Fix | Delete
* @since 2.0.0
[23749] Fix | Delete
*
[23750] Fix | Delete
* @param bool $flush
[23751] Fix | Delete
*
[23752] Fix | Delete
* @return FS_Api
[23753] Fix | Delete
*/
[23754] Fix | Delete
private function get_current_or_network_user_api_scope( $flush = false ) {
[23755] Fix | Delete
if ( ! $this->_is_network_active ||
[23756] Fix | Delete
( isset( $this->_user ) && $this->_user instanceof FS_User )
[23757] Fix | Delete
) {
[23758] Fix | Delete
return $this->get_api_user_scope( $flush );
[23759] Fix | Delete
}
[23760] Fix | Delete
[23761] Fix | Delete
$user = $this->get_current_or_network_user();
[23762] Fix | Delete
[23763] Fix | Delete
$this->_user_api = FS_Api::instance(
[23764] Fix | Delete
$this->_module_id,
[23765] Fix | Delete
'user',
[23766] Fix | Delete
$user->id,
[23767] Fix | Delete
$user->public_key,
[23768] Fix | Delete
! $this->is_live(),
[23769] Fix | Delete
$user->secret_key,
[23770] Fix | Delete
$this->get_sdk_version()
[23771] Fix | Delete
);
[23772] Fix | Delete
[23773] Fix | Delete
return $this->_user_api;
[23774] Fix | Delete
}
[23775] Fix | Delete
[23776] Fix | Delete
private $_site_api;
[23777] Fix | Delete
[23778] Fix | Delete
/**
[23779] Fix | Delete
*
[23780] Fix | Delete
* @author Vova Feldman (@svovaf)
[23781] Fix | Delete
* @since 1.0.2
[23782] Fix | Delete
*
[23783] Fix | Delete
* @param bool $flush
[23784] Fix | Delete
*
[23785] Fix | Delete
* @return FS_Api
[23786] Fix | Delete
*/
[23787] Fix | Delete
private function get_api_site_scope( $flush = false ) {
[23788] Fix | Delete
if ( ! isset( $this->_site_api ) || $flush ) {
[23789] Fix | Delete
$this->_site_api = FS_Api::instance(
[23790] Fix | Delete
$this->_module_id,
[23791] Fix | Delete
'install',
[23792] Fix | Delete
$this->_site->id,
[23793] Fix | Delete
$this->_site->public_key,
[23794] Fix | Delete
! $this->is_live(),
[23795] Fix | Delete
$this->_site->secret_key,
[23796] Fix | Delete
$this->get_sdk_version(),
[23797] Fix | Delete
self::get_unfiltered_site_url()
[23798] Fix | Delete
);
[23799] Fix | Delete
}
[23800] Fix | Delete
[23801] Fix | Delete
return $this->_site_api;
[23802] Fix | Delete
}
[23803] Fix | Delete
[23804] Fix | Delete
/**
[23805] Fix | Delete
* @author Leo Fajardo (@leorw)
[23806] Fix | Delete
* @since 2.5.0
[23807] Fix | Delete
*
[23808] Fix | Delete
* @param string $path
[23809] Fix | Delete
* @param string $method
[23810] Fix | Delete
* @param array $params
[23811] Fix | Delete
* @param bool $flush_instance
[23812] Fix | Delete
*
[23813] Fix | Delete
* @return array|mixed|string|void
[23814] Fix | Delete
* @throws Freemius_Exception
[23815] Fix | Delete
*/
[23816] Fix | Delete
private function api_site_call( $path, $method = 'GET', $params = array(), $flush_instance = false ) {
[23817] Fix | Delete
$result = $this->get_api_site_scope( $flush_instance )->call( $path, $method, $params );
[23818] Fix | Delete
[23819] Fix | Delete
/**
[23820] Fix | Delete
* Checks if the local install's URL is different from the remote install's URL, update the local install if necessary, and then run the clone handler if the install's URL is different from the URL of the site.
[23821] Fix | Delete
*
[23822] Fix | Delete
* @author Leo Fajardo (@leorw)
[23823] Fix | Delete
* @since 2.5.0
[23824] Fix | Delete
*/
[23825] Fix | Delete
if (
[23826] Fix | Delete
$this->is_registered() &&
[23827] Fix | Delete
FS_Api::is_api_result_entity( $result ) &&
[23828] Fix | Delete
isset( $result->url )
[23829] Fix | Delete
) {
[23830] Fix | Delete
$stored_local_url = trailingslashit( $this->_site->url );
[23831] Fix | Delete
$stored_remote_url = trailingslashit( $result->url );
[23832] Fix | Delete
[23833] Fix | Delete
if ( $stored_local_url !== $stored_remote_url ) {
[23834] Fix | Delete
$this->_site->url = $result->url;
[23835] Fix | Delete
$this->_store_site();
[23836] Fix | Delete
}
[23837] Fix | Delete
[23838] Fix | Delete
if ( fs_strip_url_protocol( $stored_remote_url ) !== self::get_unfiltered_site_url( null, true, true ) ) {
[23839] Fix | Delete
FS_Clone_Manager::instance()->maybe_run_clone_resolution();
[23840] Fix | Delete
}
[23841] Fix | Delete
}
[23842] Fix | Delete
[23843] Fix | Delete
return $result;
[23844] Fix | Delete
}
[23845] Fix | Delete
[23846] Fix | Delete
private $_plugin_api;
[23847] Fix | Delete
[23848] Fix | Delete
/**
[23849] Fix | Delete
* Get plugin public API scope.
[23850] Fix | Delete
*
[23851] Fix | Delete
* @author Vova Feldman (@svovaf)
[23852] Fix | Delete
* @since 1.0.7
[23853] Fix | Delete
*
[23854] Fix | Delete
* @return FS_Api
[23855] Fix | Delete
*/
[23856] Fix | Delete
function get_api_plugin_scope() {
[23857] Fix | Delete
if ( ! isset( $this->_plugin_api ) ) {
[23858] Fix | Delete
$this->_plugin_api = FS_Api::instance(
[23859] Fix | Delete
$this->_module_id,
[23860] Fix | Delete
'plugin',
[23861] Fix | Delete
$this->_plugin->id,
[23862] Fix | Delete
$this->_plugin->public_key,
[23863] Fix | Delete
! $this->is_live(),
[23864] Fix | Delete
false,
[23865] Fix | Delete
$this->get_sdk_version()
[23866] Fix | Delete
);
[23867] Fix | Delete
}
[23868] Fix | Delete
[23869] Fix | Delete
return $this->_plugin_api;
[23870] Fix | Delete
}
[23871] Fix | Delete
[23872] Fix | Delete
/**
[23873] Fix | Delete
* Get bundle public API scope.
[23874] Fix | Delete
*
[23875] Fix | Delete
* @author Vova Feldman (@svovaf)
[23876] Fix | Delete
* @since 2.3.1
[23877] Fix | Delete
*
[23878] Fix | Delete
* @return FS_Api
[23879] Fix | Delete
*/
[23880] Fix | Delete
function get_api_bundle_scope() {
[23881] Fix | Delete
return FS_Api::instance(
[23882] Fix | Delete
$this->get_bundle_id(),
[23883] Fix | Delete
'plugin',
[23884] Fix | Delete
$this->get_bundle_id(),
[23885] Fix | Delete
$this->get_bundle_public_key(),
[23886] Fix | Delete
! $this->is_live(),
[23887] Fix | Delete
false,
[23888] Fix | Delete
$this->get_sdk_version()
[23889] Fix | Delete
);
[23890] Fix | Delete
}
[23891] Fix | Delete
[23892] Fix | Delete
/**
[23893] Fix | Delete
* Get site API scope object (fallback to public plugin scope when not registered).
[23894] Fix | Delete
*
[23895] Fix | Delete
* @author Vova Feldman (@svovaf)
[23896] Fix | Delete
* @since 1.0.7
[23897] Fix | Delete
*
[23898] Fix | Delete
* @return FS_Api
[23899] Fix | Delete
*/
[23900] Fix | Delete
function get_api_site_or_plugin_scope() {
[23901] Fix | Delete
return $this->is_registered() ?
[23902] Fix | Delete
$this->get_api_site_scope() :
[23903] Fix | Delete
$this->get_api_plugin_scope();
[23904] Fix | Delete
}
[23905] Fix | Delete
[23906] Fix | Delete
/**
[23907] Fix | Delete
* @author Leo Fajardo (@leorw)
[23908] Fix | Delete
* @since 2.2.3.1
[23909] Fix | Delete
*
[23910] Fix | Delete
* @param object $result
[23911] Fix | Delete
*/
[23912] Fix | Delete
private function maybe_modify_api_curl_error_message( $result ) {
[23913] Fix | Delete
if (
[23914] Fix | Delete
'cUrlMissing' !== $result->error->type &&
[23915] Fix | Delete
( 'CurlException' !== $result->error->type || CURLE_COULDNT_CONNECT != $result->error->code ) &&
[23916] Fix | Delete
( 'HttpRequestFailed' !== $result->error->type || false === strpos( $result->error->message, 'cURL error ' . CURLE_COULDNT_CONNECT ) )
[23917] Fix | Delete
) {
[23918] Fix | Delete
return;
[23919] Fix | Delete
}
[23920] Fix | Delete
[23921] Fix | Delete
$result->error->message = $this->esc_html_inline( 'We use PHP cURL library for the API calls, which is a very common library and usually installed and activated out of the box. Unfortunately, cURL is not activated (or disabled) on your server.', 'curl-missing-message' ) .
[23922] Fix | Delete
' ' .
[23923] Fix | Delete
$this->esc_html_inline(
[23924] Fix | Delete
sprintf(
[23925] Fix | Delete
'Please contact your hosting provider and ask them to whitelist %s for external connection.',
[23926] Fix | Delete
implode(
[23927] Fix | Delete
', ',
[23928] Fix | Delete
$this->apply_filters( 'api_domains', array(
[23929] Fix | Delete
'api.freemius.com',
[23930] Fix | Delete
'wp.freemius.com'
[23931] Fix | Delete
) )
[23932] Fix | Delete
)
[23933] Fix | Delete
),
[23934] Fix | Delete
'connectivity-whitelist'
[23935] Fix | Delete
) .
[23936] Fix | Delete
' ' .
[23937] Fix | Delete
sprintf(
[23938] Fix | Delete
$this->esc_html_inline( 'Once you are done, deactivate the %s and activate it again.', 'connectivity-reactivate-module' ),
[23939] Fix | Delete
$this->get_module_type()
[23940] Fix | Delete
);
[23941] Fix | Delete
}
[23942] Fix | Delete
[23943] Fix | Delete
/**
[23944] Fix | Delete
* Show trial promotional notice (if any trial exist).
[23945] Fix | Delete
*
[23946] Fix | Delete
* @author Vova Feldman (@svovaf)
[23947] Fix | Delete
* @since 1.0.9
[23948] Fix | Delete
*
[23949] Fix | Delete
* @param FS_Plugin_Plan[] $plans
[23950] Fix | Delete
*/
[23951] Fix | Delete
function _check_for_trial_plans( $plans ) {
[23952] Fix | Delete
/**
[23953] Fix | Delete
* For some reason core's do_action() flattens arrays when it has a single object item. Therefore, we need to restructure the array as expected.
[23954] Fix | Delete
*
[23955] Fix | Delete
* @author Vova Feldman (@svovaf)
[23956] Fix | Delete
* @since 2.1.2
[23957] Fix | Delete
*/
[23958] Fix | Delete
if ( ! is_array( $plans ) && is_object( $plans ) ) {
[23959] Fix | Delete
$plans = array( $plans );
[23960] Fix | Delete
}
[23961] Fix | Delete
[23962] Fix | Delete
if ( ! $this->is_array_instanceof( $plans, 'FS_Plugin_Plan' ) ) {
[23963] Fix | Delete
$plans = array();
[23964] Fix | Delete
}
[23965] Fix | Delete
[23966] Fix | Delete
$this->_storage->has_trial_plan = FS_Plan_Manager::instance()->has_trial_plan( $plans );
[23967] Fix | Delete
}
[23968] Fix | Delete
[23969] Fix | Delete
/**
[23970] Fix | Delete
* During trial promotion the "upgrade" submenu item turns to
[23971] Fix | Delete
* "start trial" to encourage the trial. Since we want to keep
[23972] Fix | Delete
* the same menu item handler and there's no robust way to
[23973] Fix | Delete
* add new arguments to the menu item link's querystring,
[23974] Fix | Delete
* use JavaScript to find the menu item and update the href of
[23975] Fix | Delete
* the link.
[23976] Fix | Delete
*
[23977] Fix | Delete
* @author Vova Feldman (@svovaf)
[23978] Fix | Delete
* @since 1.2.1.5
[23979] Fix | Delete
*/
[23980] Fix | Delete
function _fix_start_trial_menu_item_url() {
[23981] Fix | Delete
$template_args = array( 'id' => $this->_module_id );
[23982] Fix | Delete
fs_require_template( 'add-trial-to-pricing.php', $template_args );
[23983] Fix | Delete
}
[23984] Fix | Delete
[23985] Fix | Delete
/**
[23986] Fix | Delete
* Check if module is currently in a trial promotion mode.
[23987] Fix | Delete
*
[23988] Fix | Delete
* @author Vova Feldman (@svovaf)
[23989] Fix | Delete
* @since 1.2.2.7
[23990] Fix | Delete
*
[23991] Fix | Delete
* @return bool
[23992] Fix | Delete
*/
[23993] Fix | Delete
function is_in_trial_promotion() {
[23994] Fix | Delete
return $this->_admin_notices->has_sticky( 'trial_promotion' );
[23995] Fix | Delete
}
[23996] Fix | Delete
[23997] Fix | Delete
/**
[23998] Fix | Delete
* Show trial promotional notice (if any trial exist).
[23999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function