<?php
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
$this_sdk_version = '1.2.1';
#region SDK Selection Logic --------------------------------------------------------------------
global $fs_active_plugins;
$this_sdk_relative_path = plugin_basename( dirname( __FILE__ ) );
if ( ! isset( $fs_active_plugins ) ) {
require_once dirname( __FILE__ ) . '/includes/fs-essential-functions.php';
$fs_active_plugins = get_option( 'fs_active_plugins', new stdClass() );
if ( ! isset( $fs_active_plugins->plugins ) ) {
$fs_active_plugins->plugins = array();
}
}
if ( ! function_exists( 'fs_find_direct_caller_plugin_file' ) ) {
require_once dirname( __FILE__ ) . '/includes/supplements/fs-essential-functions-1.1.7.1.php';
}
if ( ! isset( $fs_active_plugins->plugins[ $this_sdk_relative_path ] ) ||
$this_sdk_version != $fs_active_plugins->plugins[ $this_sdk_relative_path ]->version
) {
$fs_active_plugins->plugins[ $this_sdk_relative_path ] = (object) array(
'version' => $this_sdk_version,
'timestamp' => time(),
'plugin_path' => plugin_basename( fs_find_direct_caller_plugin_file( __FILE__ ) ),
);
}
$is_current_sdk_newest = isset( $fs_active_plugins->newest ) && ( $this_sdk_relative_path == $fs_active_plugins->newest->sdk_path );
if ( ! isset( $fs_active_plugins->newest ) ) {
fs_update_sdk_newest_version( $this_sdk_relative_path, $fs_active_plugins->plugins[ $this_sdk_relative_path ]->plugin_path );
$is_current_sdk_newest = true;
} else if ( version_compare( $fs_active_plugins->newest->version, $this_sdk_version, '<' ) ) {
fs_update_sdk_newest_version( $this_sdk_relative_path, $fs_active_plugins->plugins[ $this_sdk_relative_path ]->plugin_path );
if ( class_exists( 'Freemius' ) ) {
if ( ! $fs_active_plugins->newest->in_activation ) {
fs_newest_sdk_plugin_first();
}
if ( fs_redirect( $_SERVER['REQUEST_URI'] ) ) {
exit();
}
}
} else {
if ( ! function_exists( 'get_plugins' ) ) {
require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
}
$is_newest_sdk_plugin_activate = is_plugin_active( $fs_active_plugins->newest->plugin_path );
if ( $is_current_sdk_newest &&
! $is_newest_sdk_plugin_activate &&
! $fs_active_plugins->newest->in_activation
) {
$fs_active_plugins->newest->in_activation = true;
update_option( 'fs_active_plugins', $fs_active_plugins );
}
$is_newest_sdk_path_valid = ( $is_newest_sdk_plugin_activate || $fs_active_plugins->newest->in_activation ) && file_exists( fs_normalize_path( WP_PLUGIN_DIR . '/' . $this_sdk_relative_path . '/start.php' ) );
if ( ! $is_newest_sdk_path_valid && ! $is_current_sdk_newest ) {
unset( $fs_active_plugins->plugins[ $fs_active_plugins->newest->sdk_path ] );
}
if ( ! ( $is_newest_sdk_plugin_activate || $fs_active_plugins->newest->in_activation ) ||
! $is_newest_sdk_path_valid ||
( $this_sdk_relative_path == $fs_active_plugins->newest->sdk_path &&
version_compare( $fs_active_plugins->newest->version, $this_sdk_version, '>' ) )
) {
fs_fallback_to_newest_active_sdk();
} else {
if ( $is_newest_sdk_plugin_activate &&
$this_sdk_relative_path == $fs_active_plugins->newest->sdk_path &&
( $fs_active_plugins->newest->in_activation ||
( class_exists( 'Freemius' ) && ( ! defined( 'WP_FS__SDK_VERSION' ) || version_compare( WP_FS__SDK_VERSION, $this_sdk_version, '<' ) ) )
)
) {
if ( $fs_active_plugins->newest->in_activation ) {
$fs_active_plugins->newest->in_activation = false;
update_option( 'fs_active_plugins', $fs_active_plugins );
}
if ( fs_newest_sdk_plugin_first() ) {
if ( class_exists( 'Freemius' ) ) {
if ( fs_redirect( $_SERVER['REQUEST_URI'] ) ) {
exit();
}
}
}
}
}
}
if ( class_exists( 'Freemius' ) ) {
return;
}
if ( version_compare( $this_sdk_version, $fs_active_plugins->newest->version, '<' ) ) {
$newest_sdk_starter = fs_normalize_path( WP_PLUGIN_DIR . '/' . $fs_active_plugins->newest->sdk_path . '/start.php' );
if ( file_exists( $newest_sdk_starter ) ) {
fs_newest_sdk_plugin_first();
require_once $newest_sdk_starter;
return;
}
}
#endregion SDK Selection Logic --------------------------------------------------------------------
#region Hooks & Filters Collection --------------------------------------------------------------------
#endregion Hooks & Filters Collection --------------------------------------------------------------------
if ( ! class_exists( 'Freemius' ) ) {
if ( ! defined( 'WP_FS__SDK_VERSION' ) ) {
define( 'WP_FS__SDK_VERSION', $this_sdk_version );
}
require_once dirname( __FILE__ ) . '/require.php';
function freemius( $slug ) {
return Freemius::instance( $slug );
}
function fs_init( $slug, $plugin_id, $public_key, $is_live = true, $is_premium = true ) {
$fs = Freemius::instance( $slug, true );
$fs->init( $plugin_id, $public_key, $is_live, $is_premium );
return $fs;
}
function fs_dynamic_init( $module ) {
$fs = Freemius::instance( $module['slug'], true );
$fs->dynamic_init( $module );
return $fs;
}
function fs_dump_log() {
FS_Logger::dump();
}
}