Submit
Path:
~
/
home
/
getwphos
/
public_html
/
seasons-newtheme
/
wp-content
/
plugins
/
learnpress
/
inc
/
File Content:
class-lp-install.php
<?php /** * Install and update functions. * * @author ThimPress * @package LearnPress/Classes * @version 3.0.1 */ use LearnPress\Helpers\Config; defined( 'ABSPATH' ) || exit(); if ( ! function_exists( 'LP_Install' ) ) { /** * Class LP_Install */ class LP_Install { protected static $instance; protected $lp_db; /** * Default pages used by LP * * @var array */ private static $_pages = array( 'checkout', 'profile', 'courses', 'instructors', 'single_instructor', 'become_a_teacher', 'term_conditions', ); protected function __construct() { $this->lp_db = LP_Database::getInstance(); // Only run on backend. if ( ! is_admin() ) { return; } ini_set( 'max_execution_time', HOUR_IN_SECONDS ); // From LP v4.2.2 temporary run create table thim_cache. // After a long time, will remove this code. Only run create table when activate plugin LP. if ( ! LP_Settings::is_created_tb_thim_cache() ) { $this->create_table_thim_cache(); } // From LP v4.2.6.9 temporary run create table learnpress_files. // After a long time, will remove this code. Only run create table when activate plugin LP. if ( ! LP_Settings::is_created_tb_courses() ) { $this->create_table_courses(); } // From LP v4.2.6.6 temporary run create table learnpress_files. // After a long time, will remove this code. Only run create table when activate plugin LP. if ( ! LP_Settings::is_created_tb_material_files() ) { $this->create_table_learnpress_files(); } ini_set( 'max_execution_time', LearnPress::$time_limit_default_of_sever ); } /** * Get instance * * @return LP_Install */ public static function instance(): self { if ( ! self::$instance ) { self::$instance = new self(); } return self::$instance; } /** * Do something after LP is activated. * * @since 4.0.0 */ public function on_activate() { $this->create_tables(); if ( ! self::tables_install_done() ) { return; } // Check if LP install before has db version if ( ! get_option( LP_KEY_DB_VERSION, false ) ) { // Save database version of LP update_option( LP_KEY_DB_VERSION, LearnPress::instance()->db_version ); } // Create pages default. self::create_pages(); // Set permalink is "Post name". if ( ! get_option( 'permalink_structure' ) ) { update_option( 'permalink_structure', '/%postname%/' ); // flush_rewrite_rules(); } // Force option users_can_register to ON. /*if ( ! get_option( 'users_can_register' ) ) { update_option( 'users_can_register', 1 ); }*/ } /** * Create tables required for LP */ private function create_tables() { try { $tables = Config::instance()->get( 'tables-v4', 'table' ); foreach ( $tables as $table ) { LP_Database::getInstance()->wpdb->query( $table ); } if ( ! LP_Settings::is_created_tb_thim_cache() ) { $this->create_table_thim_cache(); } if ( ! LP_Settings::is_created_tb_material_files() ) { $this->create_table_learnpress_files(); } update_option( 'learn_press_check_tables', 'yes' ); } catch ( Throwable $e ) { error_log( $e->getMessage() ); } } /** * Create table thim_cache * * @since 4.2.2 */ private function create_table_thim_cache() { global $wpdb; try { $collation = $wpdb->has_cap( 'collation' ) ? $wpdb->get_charset_collate() : 'ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci'; $sql = "CREATE TABLE IF NOT EXISTS {$this->lp_db->tb_thim_cache} ( key_cache VARCHAR (191) NOT NULL UNIQUE, value LONGTEXT NOT NULL, expiration VARCHAR (191), PRIMARY KEY (key_cache) ) $collation"; $rs = $wpdb->query( $sql ); if ( $rs ) { update_option( 'thim_cache_tb_created', 'yes' ); } } catch ( Throwable $e ) { error_log( $e->getMessage() ); } } /** * Create table learnpress_courses * * @since 4.2.6.9 */ public function create_table_courses() { global $wpdb; try { $collation = $wpdb->has_cap( 'collation' ) ? $wpdb->get_charset_collate() : 'ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci'; $sql = "CREATE TABLE IF NOT EXISTS {$this->lp_db->tb_lp_courses} ( ID bigint(20) unsigned NOT NULL, json LONGTEXT NOT NULL, price_to_sort FLOAT, is_sale int(1) default 0, post_author bigint unsigned, post_date_gmt datetime, post_content LONGTEXT, post_title text not null, post_status varchar(20) default 'publish' not null, post_name varchar(200) default '', menu_order int default 0, lang varchar(20), PRIMARY KEY (ID), KEY post_title (post_title(191)), KEY post_status (post_status), KEY post_name (post_name), KEY id_status (ID, post_status) ) $collation"; $rs = $wpdb->query( $sql ); if ( $rs ) { update_option( 'tb_learnpress_courses', 'yes' ); } } catch ( Throwable $e ) { error_log( $e->getMessage() ); } } /** * Create table learnpress_material_files * * @since 4.2.6.6 */ private function create_table_learnpress_files() { global $wpdb; try { $collation = $wpdb->has_cap( 'collation' ) ? $wpdb->get_charset_collate() : 'ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci'; $sql = "CREATE TABLE IF NOT EXISTS {$this->lp_db->tb_lp_files} ( file_id bigint(20) unsigned NOT NULL AUTO_INCREMENT, file_name varchar(191) NOT NULL DEFAULT '', file_type varchar(100) NOT NULL DEFAULT '', item_id bigint(20) unsigned NOT NULL DEFAULT '0', item_type varchar(100) NOT NULL DEFAULT '', method varchar(10) NOT NULL DEFAULT 'upload' CHECK ( method IN ( 'upload', 'external' ) ), file_path varchar(255) NOT NULL DEFAULT '', orders int(4) NOT NULL DEFAULT '0', created_at datetime NULL DEFAULT NULL, PRIMARY KEY (file_id), KEY file_name (file_name), KEY item_id (item_id), KEY item_type (item_type) ) $collation"; $rs = $wpdb->query( $sql ); if ( $rs ) { update_option( 'table_learnpress_files_created', 'yes' ); } } catch ( Throwable $e ) { error_log( $e->getMessage() ); } } /** * Create default pages for LP */ public static function create_pages() { $pages = self::$_pages; try { foreach ( $pages as $page ) { // Check if page has already existed $page_id = get_option( "learn_press_{$page}_page_id", false ); if ( $page_id && get_post_type( $page_id ) === 'page' && get_post_status( $page_id ) == 'publish' ) { continue; } if ( $page === 'courses' ) { $page_title = 'All Courses'; $page_slug = $page; } elseif ( 'single_instructor' === $page ) { $page_title = 'Instructor'; $page_slug = 'instructor'; } elseif ( 'instructors' === $page ) { $page_title = 'Instructors'; $page_slug = $page; } else { $page_title = ucwords( str_replace( '_', ' ', $page ) ); $page_slug = 'lp-' . str_replace( '_', '-', $page ); } $data_create_page = array( 'post_title' => $page_title, 'post_name' => $page_slug, ); LP_Helper::create_page( $data_create_page, "learn_press_{$page}_page_id" ); } flush_rewrite_rules(); } catch ( Exception $ex ) { error_log( $ex->getMessage() ); } } /** * Check installed all tables required for LearnPress. * * @return bool */ public function tables_install_done(): bool { $install_done = get_option( 'learn_press_check_tables', 'no' ); if ( is_multisite() && 'yes' !== $install_done ) { $this->create_tables(); } return $install_done; } } }
Submit
FILE
FOLDER
Name
Size
Permission
Action
Ajax
---
0755
Databases
---
0755
ExternalPlugin
---
0755
Filters
---
0755
Helpers
---
0755
MetaBox
---
0755
Models
---
0755
Shortcodes
---
0755
TemplateHooks
---
0755
Widgets
---
0755
abstracts
---
0755
admin
---
0755
background-process
---
0755
block-template
---
0755
cache
---
0755
cart
---
0755
course
---
0755
curds
---
0755
custom-post-types
---
0755
emails
---
0755
gateways
---
0755
handle-steps
---
0755
interfaces
---
0755
jwt
---
0755
lesson
---
0755
libraries
---
0755
order
---
0755
question
---
0755
quiz
---
0755
rest-api
---
0755
settings
---
0755
templates
---
0755
updates
---
0755
user
---
0755
user-item
---
0755
abstract-settings.php
5132 bytes
0644
cache.php
14474 bytes
0644
class-lp-ajax.php
8184 bytes
0644
class-lp-asset-key.php
1965 bytes
0644
class-lp-assets.php
14992 bytes
0644
class-lp-autoloader.php
2589 bytes
0644
class-lp-breadcrumb.php
10259 bytes
0644
class-lp-checkout.php
15740 bytes
0644
class-lp-course-query.php
3498 bytes
0644
class-lp-datetime.php
9095 bytes
0644
class-lp-debug.php
2683 bytes
0644
class-lp-duration.php
3677 bytes
0644
class-lp-emails.php
6138 bytes
0644
class-lp-file-system.php
7258 bytes
0644
class-lp-forms-handler.php
16138 bytes
0644
class-lp-global.php
6526 bytes
0644
class-lp-helper.php
15158 bytes
0644
class-lp-install.php
7769 bytes
0644
class-lp-manager-addons.php
8444 bytes
0644
class-lp-page-controller.php
34571 bytes
0644
class-lp-query-list-table.php
4395 bytes
0644
class-lp-query.php
9694 bytes
0644
class-lp-request-handler.php
11768 bytes
0644
class-lp-session-handler.php
10119 bytes
0644
class-lp-settings.php
12006 bytes
0644
class-lp-shortcodes.php
7207 bytes
0644
class-lp-strings.php
1907 bytes
0644
class-lp-template.php
1542 bytes
0644
class-lp-thumbnail-helper.php
1222 bytes
0644
class-lp-widget.php
12938 bytes
0644
index.php
28 bytes
0644
lp-constants.php
4290 bytes
0644
lp-core-functions.php
69852 bytes
0644
lp-custom-hooks.php
1025 bytes
0644
lp-deprecated.php
29619 bytes
0644
lp-template-functions.php
45987 bytes
0644
lp-template-hooks.php
18193 bytes
0644
lp-webhooks.php
3015 bytes
0644
lp-widget-functions.php
1585 bytes
0644
N4ST4R_ID | Naxtarrr