LifterLMS_Helper
LifterLMS_Helper class
Contents
Source Source
File: libraries/lifterlms-helper/class-lifterlms-helper.php
final class LifterLMS_Helper {
/**
* Current Plugin Version
*
* @var string
*/
public $version = '3.5.0';
/**
* Singleton instance reference
*
* @var null
*/
protected static $instance = null;
/**
* Instance of the LLMS_Helper_Upgrader class
*
* Use/retrieve via llms_helper()->upgrader().
*
* @var null|LLMS_Helper_Upgrader
*/
private $upgrader = null;
/**
* Retrieve the main Instance of LifterLMS_Helper
*
* @since 3.0.0
* @since 3.2.0 Use `self::$instance` in favor of `self::$_instance`.
*
* @return LifterLMS_Helper
*/
public static function instance() {
if ( is_null( self::$instance ) ) {
self::$instance = new self();
}
return self::$instance;
}
/**
* Constructor, get things started!
*
* @since 1.0.0
* @since 3.4.0 Only localize when loaded as an independent plugin.
*
* @return void
*/
private function __construct() {
// Define class constants.
$this->define_constants();
/**
* When loaded as a library included by the LifterLMS core localization is handled by the LifterLMS core.
*
* When the plugin is loaded by itself as a plugin, we must localize it independently.
*/
if ( ! defined( 'LLMS_HELPER_LIB' ) || ! LLMS_HELPER_LIB ) {
add_action( 'init', array( $this, 'load_textdomain' ), 0 );
}
add_action( 'plugins_loaded', array( $this, 'init' ) );
}
/**
* Inititalize the Plugin
*
* @since 1.0.0
* @since 3.0.0 Unknown.
* @since 3.2.0 Use `llms()` in favor of deprecated `LLMS()`.
* @since 3.3.1 Load the upgrader instance in WP_CLI context.
*
* @return void
*/
public function init() {
// Only load if we have the minimum LifterLMS version installed & activated.
if ( function_exists( 'llms' ) && version_compare( '3.22.0', llms()->version, '<=' ) ) {
$this->includes();
$this->crons();
if ( is_admin() || ( defined( 'WP_CLI' ) && WP_CLI ) ) {
$this->upgrader = LLMS_Helper_Upgrader::instance();
}
}
}
/**
* Schedule and handle cron functions
*
* @since 3.0.0
*
* @return void
*/
private function crons() {
add_action( 'llms_helper_check_license_keys', array( 'LLMS_Helper_Keys', 'check_keys' ) );
if ( ! wp_next_scheduled( 'llms_helper_check_license_keys' ) ) {
wp_schedule_event( time(), 'daily', 'llms_helper_check_license_keys' );
}
}
/**
* Define constants for plugin
*
* @since 1.0.0
*
* @return void
*/
private function define_constants() {
if ( ! defined( 'LLMS_HELPER_VERSION' ) ) {
define( 'LLMS_HELPER_VERSION', $this->version );
}
}
/**
* Include all clasess required by the plugin
*
* @since 1.0.0
* @since 3.0.0 Include new files.
*
* @return void
*/
private function includes() {
require_once LLMS_HELPER_PLUGIN_DIR . 'includes/class-llms-helper-admin-add-ons.php';
require_once LLMS_HELPER_PLUGIN_DIR . 'includes/class-llms-helper-assets.php';
require_once LLMS_HELPER_PLUGIN_DIR . 'includes/class-llms-helper-betas.php';
require_once LLMS_HELPER_PLUGIN_DIR . 'includes/class-llms-helper-cloned.php';
require_once LLMS_HELPER_PLUGIN_DIR . 'includes/class-llms-helper-install.php';
require_once LLMS_HELPER_PLUGIN_DIR . 'includes/class-llms-helper-keys.php';
require_once LLMS_HELPER_PLUGIN_DIR . 'includes/class-llms-helper-options.php';
require_once LLMS_HELPER_PLUGIN_DIR . 'includes/class-llms-helper-upgrader.php';
require_once LLMS_HELPER_PLUGIN_DIR . 'includes/models/class-llms-helper-add-on.php';
require_once LLMS_HELPER_PLUGIN_DIR . 'includes/functions-llms-helper.php';
}
/**
* Load l10n files.
*
* This method is only used when the plugin is loaded as a standalone plugin (for development purposes),
* otherwise (when loaded as a library from within the LifterLMS core plugin) the localization
* strings are included into the LifterLMS Core plugin's po/mo files and are localized by the LifterLMS
* core plugin.
*
* Files can be found in the following order (The first loaded file takes priority):
* 1. WP_LANG_DIR/lifterlms/lifterlms-rest-LOCALE.mo
* 2. WP_LANG_DIR/plugins/lifterlms-rest-LOCALE.mo
* 3. WP_CONTENT_DIR/plugins/lifterlms-rest/i18n/lifterlms-rest-LOCALE.mo
*
* Note: The function `load_plugin_textdomain()` is not used because the same textdomain as the LifterLMS core
* is used for this plugin but the file is named `lifterlms-rest` in order to allow using a separate language
* file for each codebase.
*
* @since 2.5.0
* @since 3.4.0 Updated to the core textdomain.
*
* @return void
*/
public function load_textdomain() {
// Load locale.
$locale = apply_filters( 'plugin_locale', get_locale(), 'lifterlms' );
// Load from the LifterLMS "safe" directory if it exists.
load_textdomain( 'lifterlms', WP_LANG_DIR . '/lifterlms/lifterlms-helper-' . $locale . '.mo' );
// Load from the default plugins language file directory.
load_textdomain( 'lifterlms', WP_LANG_DIR . '/plugins/lifterlms-helper-' . $locale . '.mo' );
// Load from the plugin's language file directory.
load_textdomain( 'lifterlms', LLMS_HELPER_PLUGIN_DIR . '/i18n/lifterlms-helper-' . $locale . '.mo' );
}
/**
* Return the singleton instance of the LLMS_Helper_Upgader
*
* @since 3.0.0
*
* @return LLMS_Helper_Upgrader
*/
public function upgrader() {
return $this->upgrader;
}
}
Expand full source code Collapse full source code View on GitHub
Methods Methods
- __construct — Constructor, get things started!
- crons — Schedule and handle cron functions
- define_constants — Define constants for plugin
- includes — Include all clasess required by the plugin
- init — Inititalize the Plugin
- instance — Retrieve the main Instance of LifterLMS_Helper
- load_textdomain — Load l10n files.
- upgrader — Return the singleton instance of the LLMS_Helper_Upgader
Changelog Changelog
| Version | Description |
|---|---|
| 3.2.0 | Moved class to its own file from lifterlms-helper.php. Replaced class variable $_instance with $instance. |
| 1.0.0 | Introduced. |