LLMS_REST_Install
Plugin installation scripts.
Contents
Source Source
File: libraries/lifterlms-rest/includes/class-llms-rest-install.php
class LLMS_REST_Install { /** * Initialize the install class. * * @since 1.0.0-beta.1 * * @return void */ public static function init() { add_action( 'init', array( __CLASS__, 'check_version' ), 5 ); add_filter( 'llms_install_get_schema', array( __CLASS__, 'get_schema' ), 20, 2 ); } /** * Checks the current LLMS version and runs installer if required * * @since 1.0.0-beta.1 * * @return void */ public static function check_version() { if ( ! defined( 'IFRAME_REQUEST' ) && get_option( 'llms_rest_version' ) !== LLMS_REST_API()->version ) { self::install(); do_action( 'llms_rest_updated' ); } } /** * Adds REST API Keys table to the LifterLMS DB Table Schema * * @since 1.0.0-beta.1 * @since 1.0.0-beta.17 Remove unused 'pending_delivery' column. * * @see LLMS_Install::get_schema() * * @param string $schema String of DB table creation statements. * @param string $collate Collation string. * @return string */ public static function get_schema( $schema, $collate ) { global $wpdb; $schema .= " CREATE TABLE `{$wpdb->prefix}lifterlms_api_keys` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `user_id` bigint(20) unsigned NOT NULL, `description` varchar(200) DEFAULT NULL, `permissions` varchar(10) NOT NULL, `consumer_key` char(64) NOT NULL, `consumer_secret` char(43) NOT NULL, `truncated_key` char(7) NOT NULL, `last_access` datetime DEFAULT NULL, PRIMARY KEY (`id`), KEY `consumer_key` (`consumer_key`), KEY `consumer_secret` (`consumer_secret`) ) $collate; CREATE TABLE `{$wpdb->prefix}lifterlms_webhooks` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `status` varchar(20) NOT NULL, `name` text NOT NULL, `user_id` bigint(20) unsigned NOT NULL, `delivery_url` text NOT NULL, `secret` text NOT NULL, `topic` varchar(255) NOT NULL, `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `failure_count` smallint(3) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `user_id` (`user_id`) ) $collate; "; return $schema; } /** * Core install function * * @since 1.0.0-beta.1 * * @return void */ public static function install() { if ( ! is_blog_installed() ) { return; } do_action( 'llms_rest_before_install' ); LLMS_Roles::install(); LLMS_Install::create_tables(); self::update_version(); do_action( 'llms_rest_after_install' ); } /** * Update the LifterLMS rest version record to the latest version * * @since 1.0.0-beta.1 * * @param string $version version number. * @return void */ public static function update_version( $version = null ) { delete_option( 'llms_rest_version' ); add_option( 'llms_rest_version', is_null( $version ) ? LLMS_REST_API()->version : $version ); } }
Expand full source code Collapse full source code View on GitHub
Methods Methods
- check_version — Checks the current LLMS version and runs installer if required
- get_schema — Adds REST API Keys table to the LifterLMS DB Table Schema
- init — Initialize the install class.
- install — Core install function
- update_version — Update the LifterLMS rest version record to the latest version
Changelog Changelog
Version | Description |
---|---|
1.0.0-beta.1 | Introduced. |