set_basename( is_readable( __DIR__ . '/premium/includes/class-linkmora-premium.php' ), __FILE__ ); } } else { /** * Create a helper function for easy SDK access. * * @since 1.0.0 * @return object The Freemius SDK instance. */ function linkmora_fs() { global $linkmora_fs; if ( !isset( $linkmora_fs ) ) { // Include Freemius SDK when available. $sdk_path = __DIR__ . '/vendor/freemius/start.php'; if ( !is_readable( $sdk_path ) ) { return null; } require_once $sdk_path; if ( !function_exists( 'fs_dynamic_init' ) ) { return null; } $linkmora_fs = fs_dynamic_init( array( 'id' => '43004', 'slug' => 'linkmora', 'premium_slug' => 'linkmora-premium', 'type' => 'plugin', 'public_key' => 'pk_94b4ee163f82ada66724b5b4ccbff', 'is_premium' => false, 'premium_suffix' => 'Pro', 'has_addons' => false, 'has_paid_plans' => true, 'is_org_compliant' => true, 'trial' => array( 'days' => 4, 'is_require_payment' => true, ), 'menu' => array( 'slug' => 'linkmora-links', 'contact' => false, 'support' => false, ), 'is_live' => true, ) ); } return $linkmora_fs; } // Init Freemius. linkmora_fs(); // Signal that SDK was initiated. do_action( 'linkmora_fs_loaded' ); /** * Currently plugin version. * Start at version 1.0.0 and use SemVer - https://semver.org */ define( 'LINKMORA_VERSION', '2.8.0' ); define( 'LINKMORA_PATH', plugin_dir_path( __FILE__ ) ); define( 'LINKMORA_URL', plugin_dir_url( __FILE__ ) ); define( 'LINKMORA_API_VERSION', '2.0.0' ); define( 'LINKMORA_OPTION', 'linkmora_options' ); define( 'LINKMORA_PRO_OPTION', 'linkmora_pro_options' ); require_once LINKMORA_PATH . 'includes/functions/linkmora-uninstall.php'; $linkmora_sdk = linkmora_fs(); if ( is_object( $linkmora_sdk ) && method_exists( $linkmora_sdk, 'add_action' ) ) { $linkmora_sdk->add_action( 'after_uninstall', 'linkmora_fs_uninstall_cleanup' ); } /** * The code that runs during plugin activation. * This action is documented in includes/class-linkmora-activator.php */ function linkmora_activate() { require_once plugin_dir_path( __FILE__ ) . 'includes/class-linkmora-activator.php'; Linkmora_Activator::activate(); } /** * The code that runs during plugin deactivation. * This action is documented in includes/class-linkmora-deactivator.php */ function linkmora_deactivate() { require_once plugin_dir_path( __FILE__ ) . 'includes/class-linkmora-deactivator.php'; Linkmora_Deactivator::deactivate(); } register_activation_hook( __FILE__, 'linkmora_activate' ); register_deactivation_hook( __FILE__, 'linkmora_deactivate' ); /** * Ensure the plugin version is current and run activation updates when needed. * * @since 1.0.0 */ function linkmora_version_check() { if ( version_compare( get_option( 'linkmora_version' ), LINKMORA_VERSION, '<' ) ) { linkmora_activate(); } } add_action( 'plugins_loaded', 'linkmora_version_check' ); /** * The core plugin class that is used to define internationalization, * admin-specific hooks, and public-facing site hooks. */ require plugin_dir_path( __FILE__ ) . 'includes/class-linkmora.php'; /** * Begins execution of the plugin. * * Since everything within the plugin is registered via hooks, * then kicking off the plugin from this point in the file does * not affect the page life cycle. * * @since 1.0.0 */ function linkmora_run() { $plugin = new Linkmora(); $plugin->run(); } linkmora_run(); /** * Load premium-only feature code when this is the generated Premium package. * The Freemius Free build removes /premium/, so the same source remains a * complete Free plugin without a second plugin dependency. */ function linkmora_run_premium() { $bootstrap = LINKMORA_PATH . 'premium/includes/class-linkmora-premium.php'; if ( !is_readable( $bootstrap ) ) { return; } require_once $bootstrap; do_action( 'linkmora_premium_loading', LINKMORA_VERSION, LINKMORA_API_VERSION ); $premium = new Linkmora_Premium(); $premium->run(); do_action( 'linkmora_premium_loaded', LINKMORA_VERSION, LINKMORA_API_VERSION ); } add_action( 'plugins_loaded', 'linkmora_run_premium', 30 ); /** * Signal that Linkmora Core and its extension API are available. * * @since 2.5.0 */ function linkmora_signal_loaded() { /** * Fires after Linkmora Core and its extension API are available. * * Premium code and other extensions can use this action after * confirming the Core and API versions. * * @since 2.5.0 * * @param string $core_version Linkmora Core version. * @param string $api_version Public extension API version. */ do_action( 'linkmora_loaded', LINKMORA_VERSION, LINKMORA_API_VERSION ); } add_action( 'plugins_loaded', 'linkmora_signal_loaded', 20 ); } // One Linkmora package owns the bootstrap per request.