LLMS_Helper_Install
Contents
Source Source
File: libraries/lifterlms-helper/includes/class-llms-helper-install.php
class LLMS_Helper_Install {
/**
* Initialize the install class
*
* @since 3.0.0
* @since 3.0.1 Unknown.
*
* @return void
*/
public static function init() {
add_action( 'admin_init', array( __CLASS__, 'check_version' ), 5 );
}
/**
* Checks the current LLMS version and runs installer if required
*
* @since 3.0.0
* @since 3.4.0 Use llms_helper() in favor of deprecated LLMS_Helper().
*
* @return void
*/
public static function check_version() {
if ( ! defined( 'IFRAME_REQUEST' ) && get_option( 'llms_helper_version' ) !== llms_helper()->version ) {
self::install();
/**
* Action run after the helper library is updated.
*
* @since 3.0.0
*/
do_action( 'llms_helper_updated' );
}
}
/**
* Core install function
*
* @since 3.0.0
* @since 3.4.0 Skip migration when loaded as a library.
*
* @return void
*/
public static function install() {
if ( ! is_blog_installed() ) {
return;
}
do_action( 'llms_helper_before_install' );
if ( ( ! defined( 'LLMS_HELPER_LIB' ) || ! LLMS_HELPER_LIB ) && ! get_option( 'llms_helper_version', '' ) ) {
self::_migrate_300();
}
self::update_version();
do_action( 'llms_helper_after_install' );
}
/**
* Update the LifterLMS version record to the latest version
*
* @since 3.0.0
* @since 3.4.0 Use llms_helper() in favor of deprecated LLMS_Helper().
*
* @param string $version version number.
* @return void
*/
public static function update_version( $version = null ) {
delete_option( 'llms_helper_version' );
add_option( 'llms_helper_version', is_null( $version ) ? llms_helper()->version : $version );
}
/**
* Migrate to version 3.0.0
*
* @since 3.0.0
* @since 3.0.2 Unknown.
* @since 3.4.0 Use core textdomain.
*
* @return void
*/
private static function _migrate_300() {
$text = '<p><strong>' . __( 'Welcome to the LifterLMS Helper', 'lifterlms' ) . '</strong></p>';
$text .= '<p>' . __( 'This plugin allows your website to interact with your subscriptions at LifterLMS.com to ensure your add-ons stay up to date.', 'lifterlms' ) . '</p>';
// Translators: %1$s = Opening anchor tag; %2$s = closing anchor tag.
$text .= '<p>' . sprintf( __( 'You can activate your add-ons from the %1$sAdd-Ons & More%2$s screen.', 'lifterlms' ), '<a href="' . admin_url( 'admin.php?page=llms-add-ons' ) . '">', '</a>' ) . '</p>';
$keys = array();
$addons = llms_get_add_ons();
if ( ! is_wp_error( $addons ) && isset( $addons['items'] ) ) {
foreach ( $addons['items'] as $addon ) {
$addon = llms_get_add_on( $addon );
if ( ! $addon->is_installable() ) {
continue;
}
$option_name = sprintf( '%s_activation_key', $addon->get( 'slug' ) );
$key = get_option( $option_name );
if ( $key ) {
$keys[] = get_option( $option_name );
}
delete_option( $option_name );
delete_option( sprintf( '%s_update_key', $addon->get( 'slug' ) ) );
}
}
if ( $keys ) {
$res = LLMS_Helper_Keys::activate_keys( $keys );
if ( ! is_wp_error( $res ) ) {
$data = $res['data'];
if ( isset( $data['activations'] ) ) {
// Translators: %d = Number of keys that have been migrated.
$text .= '<p>' . sprintf( _n( '%d license has been automatically migrated from the previous version of the LifterLMS Helper', '%d licenses have been automatically migrated from the previous version of the LifterLMS Helper.', count( $data['activations'] ), 'lifterlms' ), count( $data['activations'] ) ) . ':</p>';
foreach ( $data['activations'] as $activation ) {
LLMS_Helper_Keys::add_license_key( $activation );
$text .= '<p><em>' . $activation['license_key'] . '</em></p>';
}
}
}
}
LLMS_Admin_Notices::flash_notice( $text, 'info' );
// Clean up legacy options.
$remove = array(
'lifterlms_stripe_activation_key',
'lifterlms_paypal_activation_key',
'lifterlms_gravityforms_activation_key',
'lifterlms_mailchimp_activation_key',
'llms_helper_key_migration',
);
foreach ( $remove as $opt ) {
delete_option( $opt );
}
}
}
Expand full source code Collapse full source code View on GitHub
Methods Methods
- _migrate_300 — Migrate to version 3.0.0
- check_version — Checks the current LLMS version and runs installer if required
- init — Initialize the install class
- install — Core install function
- update_version — Update the LifterLMS version record to the latest version
Changelog Changelog
| Version | Description |
|---|---|
| 3.0.0 | Introduced. |