File "elementskit-lite.php"
Full Path: /home/cabizcok/public_html/wp-content/plugins/elementskit-lite/elementskit-lite.php
File size: 10.91 KB
MIME-type: text/x-php
Charset: utf-8
<?php
use ElementsKit_Lite\Plugin;
defined( 'ABSPATH' ) || exit;
/**
* Plugin Name: ElementsKit Lite
* Description: The most advanced addons for Elementor with tons of widgets, Header builder, Footer builder, Mega menu builder, layout pack and powerful custom controls.
* Plugin URI: https://products.wpmet.com/elementskit
* Author: Wpmet
* Version: 3.3.2
* Author URI: https://wpmet.com/
*
* Text Domain: elementskit-lite
* Domain Path: /languages
*
* ElementsKit is a powerful addon for Elementor page builder.
* It includes most comprehensive modules, such as "header footer builder", "mega menu",
* "layout installer", "quick form builder" etc under the hood.
* It has a tons of widgets to create any sites with an ease. It has some most unique
* and powerful custom controls for elementor, such as "image picker", "ajax select", "widget area".
*
*/
final class ElementsKit_Lite {
/**
* Plugin Version
*
* @since 1.0.0
* @var string The plugin version.
*/
static function version() {
return '3.3.2';
}
/**
* Package type
*
* @since 1.1.0
* @var string The plugin purchase type [pro/ free].
*/
static function package_type() {
return apply_filters( 'elementskit/core/package_type', 'free' );
}
/**
* Package type
*
* @since 1.1.0
* @var string The plugin purchase type [pro/ free].
*/
static function license_status() {
if ( ! class_exists( 'ElementsKit\Libs\Framework\Classes\License' ) ) {
return 'invalid';
}
if ( ElementsKit\Libs\Framework\Classes\License::instance()->status() != 'valid' ) {
return 'invalid';
}
return 'valid';
}
public static function license_data() {
if ( ! class_exists( '\ElementsKit_Lite\Libs\Framework\Classes\Utils' ) ) {
return array(
'key' => '',
'checksum' => '',
'plugin_package' => self::package_type(),
);
}
return array(
'key' => \ElementsKit_Lite\Libs\Framework\Classes\Utils::instance()->get_option( 'license_key' ),
'checksum' => get_option( '__validate_oppai__' ),
'plugin_package' => self::package_type(),
);
}
/**
* Product ID
*
* @since 1.2.6
* @var string The plugin ID in our server.
*/
static function product_id() {
return '9';
}
/**
* Author Name
*
* @since 1.3.1
* @var string The plugin author.
*/
static function author_name() {
return 'Wpmet';
}
/**
* Store Name
*
* @since 1.3.1
* @var string The store name: self site, envato.
*/
static function store_name() {
return 'wordpressorg';
}
/**
* Minimum Elementor Version
*
* @since 1.0.0
* @var string Minimum Elementor version required to run the plugin.
*/
static function min_el_version() {
return '3.0.0';
}
/**
* Minimum PHP Version
*
* @since 1.0.0
* @var string Minimum PHP version required to run the plugin.
*/
static function min_php_version() {
return '7.0';
}
/**
* Plugin file
*
* @since 1.0.0
* @var string plugins's root file.
*/
static function plugin_file() {
return __FILE__;
}
/**
* Plugin url
*
* @since 1.0.0
* @var string plugins's root url.
*/
static function plugin_url() {
return trailingslashit( plugin_dir_url( __FILE__ ) );
}
/**
* Plugin dir
*
* @since 1.0.0
* @var string plugins's root directory.
*/
static function plugin_dir() {
return trailingslashit( plugin_dir_path( __FILE__ ) );
}
/**
* Plugin's widget directory.
*
* @since 1.0.0
* @var string widget's root directory.
*/
static function widget_dir() {
return self::plugin_dir() . 'widgets/';
}
/**
* Plugin's widget url.
*
* @since 1.0.0
* @var string widget's root url.
*/
static function widget_url() {
return self::plugin_url() . 'widgets/';
}
/**
* API url
*
* @since 1.0.0
* @var string for license, layout notification related functions.
*/
static function api_url() {
return 'https://api.wpmet.com/public/';
}
/**
* Account url
*
* @since 1.2.6
* @var string for plugin update notification, user account page.
*/
static function account_url() {
return 'https://account.wpmet.com';
}
/**
* Plugin's module directory.
*
* @since 1.0.0
* @var string module's root directory.
*/
static function module_dir() {
return self::plugin_dir() . 'modules/';
}
/**
* Plugin's module url.
*
* @since 1.0.0
* @var string module's root url.
*/
static function module_url() {
return self::plugin_url() . 'modules/';
}
/**
* Plugin's lib directory.
*
* @since 1.0.0
* @var string lib's root directory.
*/
static function lib_dir() {
return self::plugin_dir() . 'libs/';
}
/**
* Plugin's lib url.
*
* @since 1.0.0
* @var string lib's root url.
*/
static function lib_url() {
return self::plugin_url() . 'libs/';
}
/**
* Active plugin's textdomain list
*/
static function active_plugins() {
require_once ABSPATH . 'wp-admin/includes/plugin.php';
$apl = get_option( 'active_plugins' );
$plugins = get_plugins();
$filter_string = '';
foreach ( $apl as $p ) {
if ( isset( $plugins[ $p ] ) && isset( $plugins[ $p ]['TextDomain'] ) ) {
$filter_string .= ',' . $plugins[ $p ]['TextDomain'];
}
}
return ltrim( $filter_string, ',' );
}
/**
* Constructor
*
* @since 1.0.0
* @access public
*/
public function __construct() {
// Load the main static helper class.
require_once self::plugin_dir() . 'libs/notice/notice.php'; // new notice system
require_once self::plugin_dir() . 'libs/banner/banner.php'; // new banner system
require_once self::plugin_dir() . 'libs/stories/stories.php'; // new stories system
require_once self::plugin_dir() . 'libs/rating/rating.php';
require_once self::plugin_dir() . 'libs/pro-awareness/pro-awareness.php'; // pro menu class file
require_once self::plugin_dir() . 'libs/forms/forms.php'; // form menu class file
require_once self::plugin_dir() . 'libs/our-plugins/our-plugins.php'; // used to display the wpmet other plugins
require_once self::plugin_dir() . 'libs/emailkit/emailkit.php';
require_once self::plugin_dir() . 'helpers/utils.php';
// Load translation
add_action( 'init', array( $this, 'i18n' ) );
// Init Plugin
add_action( 'plugins_loaded', array( $this, 'init' ), 100 );
}
/**
* Load Textdomain
*
* Load plugin localization files.
* Fired by `init` action hook.
*
* @since 1.0.0
* @access public
*/
public function i18n() {
load_plugin_textdomain( 'elementskit-lite', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
}
/**
* Initialize the plugin
*
* Checks for basic plugin requirements, if one check fail don't continue,
* if all check have passed include the plugin class.
*
* Fired by `plugins_loaded` action hook.
*
* @since 1.0.0
* @access public
*/
public function init() {
// Load the Plugin class, it's the core class of ElementsKit_Lite.
require_once self::plugin_dir() . 'plugin.php';
\ElementsKit_Lite\Plugin::registrar_autoloader();
// init notice class
\Oxaim\Libs\Notice::init();
// init pro menu class
\Wpmet\Libs\Pro_Awareness::init();
// Check if Elementor installed and activated.
if ( ! did_action( 'elementor/loaded' ) ) {
add_action( 'admin_head', array( $this, 'missing_elementor' ) );
return;
}
// Check for required PHP version.
if ( version_compare( PHP_VERSION, self::min_php_version(), '<' ) ) {
add_action( 'admin_head', array( $this, 'failed_php_version' ) );
return;
}
// Register ElementsKit_Lite widget category
add_action( 'elementor/elements/categories_registered', array( $this, 'elementor_widget_category' ) );
// initiate elementor custom controls
new \ElementsKit_Lite\Modules\Controls\Init();
add_action(
'elementor/init',
function() {
if ( class_exists( 'ElementsKit' ) && ! class_exists( 'ElementsKit_Comp' ) ) {
return;
}
// adding backward classes and methods for older 14 number themes.
require_once self::plugin_dir() . 'compatibility/backward/plugin-class-backward-compatibility.php';
require_once self::plugin_dir() . 'compatibility/backward/utils-backward-compablity.php';
// Run the instance.
Plugin::instance();
// adding backward classes and methods for older 14 number themes.
require_once self::plugin_dir() . 'compatibility/backward/module-list.php';
require_once self::plugin_dir() . 'compatibility/backward/widget-list.php';
}
);
}
/**
* Admin notice
*
* Warning when the site doesn't have required Elementor.
*
* @since 1.0.0
* @access public
*/
public function missing_elementor() {
$btn = array(
'default_class' => 'button',
'class' => 'button-primary ', // button-primary button-secondary button-small button-large button-link
);
if ( file_exists( WP_PLUGIN_DIR . '/elementor/elementor.php' ) ) {
$btn['text'] = esc_html__( 'Activate Elementor', 'elementskit-lite' );
$btn['url'] = wp_nonce_url( 'plugins.php?action=activate&plugin=elementor/elementor.php&plugin_status=all&paged=1', 'activate-plugin_elementor/elementor.php' );
} else {
$btn['text'] = esc_html__( 'Install Elementor', 'elementskit-lite' );
$btn['url'] = wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=elementor' ), 'install-plugin_elementor' );
}
\Oxaim\Libs\Notice::instance( 'elementskit-lite', 'unsupported-elementor-version' )
->set_type( 'error' )
->set_message( sprintf( '%1$s %2$s+, %3$s',
esc_html__( 'ElementsKit requires Elementor version', 'elementskit-lite' ),
self::min_el_version() ,
esc_html__( 'which is currently NOT RUNNING.', 'elementskit-lite' ),
) )
->set_button( $btn )
->call();
}
/**
* Admin notice
*
* Warning when the site doesn't have a minimum required PHP version.
*
* @since 1.0.0
* @access public
*/
public function failed_php_version() {
\Oxaim\Libs\Notice::instance( 'elementskit-lite', 'unsupported-php-version' )
->set_type( 'error' )
->set_message( sprintf( '%1$s %2$s+, %3$s',
esc_html__( 'ElementsKit requires PHP version', 'elementskit-lite' ),
self::min_php_version(),
esc_html__( 'which is currently NOT RUNNING on this server.', 'elementskit-lite' )
))
->call();
}
/**
* Rewrite flush.
*
* @since 1.0.7
* @access public
*/
public static function install_activation_key() {
add_option( 'elementskit-lite__plugin_activated', self::plugin_file() );
}
/**
* Add category.
*
* Register custom widget category in Elementor's editor
*
* @since 1.0.0
* @access public
*/
public function elementor_widget_category( $widgets_manager ) {
$widgets_manager->add_category(
'elementskit',
array(
'title' => esc_html__( 'ElementsKit', 'elementskit-lite' ),
'icon' => 'fa fa-plug',
),
1
);
$widgets_manager->add_category(
'elementskit_headerfooter',
array(
'title' => esc_html__( 'ElementsKit Header Footer', 'elementskit-lite' ),
'icon' => 'fa fa-plug',
),
1
);
}
}
new ElementsKit_Lite();
register_activation_hook( __FILE__, 'ElementsKit_Lite::install_activation_key' );