File: /home/adltc/public_html/wp-content/plugins/rometheme-for-elementor/RomeTheme.php
<?php
/**
* Plugin Name: RomethemeKit For Elementor
* Description: The best toolkit solution for Elementor. Enjoy advanced addons, theme builders, forms, icons, and ready-made templates to create stunning websites quickly and effortlessly.
* Version: 1.5.6
* Author: Rometheme
* Author URI: https://rometheme.net/
* License : GPLv3 or later
* Requires Plugins: elementor
*
* The best toolkit solution for Elementor. Enjoy advanced addons, theme builders, forms, icons, and ready-made templates to create stunning websites quickly and effortlessly.
*/
define("ROMETHEME_PLUGIN_DIR_PATH", plugin_dir_path(__FILE__));
class RomeTheme
{
function __construct()
{
require_once self::plugin_dir() . 'libs/notice/notice.php';
add_action('admin_menu', [$this, 'rometheme_add_menu']);
add_action('rometheme/plugins_loaded', array($this, 'init'), 100);
do_action('rometheme/plugins_loaded');
add_filter('plugin_row_meta', [$this, 'row_meta_link'] , 10, 4);
add_filter('plugin_action_links', [$this, 'action_links'] , 10, 2);
}
public function isCompatible()
{
if (!did_action('elementor/loaded')) {
add_action('admin_head', array($this, 'missing_elementor'));
return false;
}
return true;
}
function init()
{
if ($this->isCompatible()) {
require_once self::plugin_dir() . '/plugin.php';
require_once self::module_dir() . 'Form/form.php';
require_once self::module_dir() . 'layout-libs/init.php';
require_once self::module_dir() . 'widgets/widgets.php';
require_once self::module_dir() . 'settings/settings.php';
require_once self::module_dir() . 'template/template.php';
require_once self::module_dir() . 'extensions/blur_effects.php';
new RomethemeKit\RkitWidgets();
\Rkit_Rform::instance();
\RomethemePlugin\Plugin::register_autoloader();
\RomethemePlugin\Plugin::load_header_footer();
\Rkit\Modules\Libs\Init::instance();
new \RomeTheme\RtmSettings();
new \RomethemeKit\Template();
new \RomethemeKit\BlurEffects();
// \RomethemeKit\Rkit_GetPro::instance();
add_action('admin_enqueue_scripts', [$this, 'register_style']);
add_action('wp_ajax_rkitRemoveNotice', [$this, 'rkitRemoveNotice']);
add_action('elementor/elements/categories_registered', [\RomethemePlugin\Plugin::class, 'add_elementor_widget_categories']);
add_action('wp_enqueue_scripts', [\RomethemePlugin\Plugin::class, 'register_widget_styles']);
add_action('elementor/frontend/after_register_scripts', [\RomethemePlugin\Plugin::class, 'register_widget_scripts'], 1);
add_action('elementor/editor/before_enqueue_styles', [\RomethemePlugin\Plugin::class, 'register_widget_styles']);
add_action('elementor/editor/before_register_scripts', [\RomethemePlugin\Plugin::class, 'register_widget_scripts']);
add_action('elementor/editor/before_enqueue_scripts', [\RomethemePlugin\Plugin::class, 'register_widget_scripts'], 1);
add_filter('admin_footer_text', [$this, 'change_admin_footer']);
add_filter('elementor/icons_manager/additional_tabs', array(\RomethemePlugin\Plugin::class, 'register_icon_pack_to_elementor'));
add_action('wp_enqueue_scripts', array(\RomethemePlugin\Plugin::class, 'enqueue_frontend'));
add_action('admin_enqueue_scripts', array(\RomethemePlugin\Plugin::class, 'enqueue_frontend'));
add_action('elementor/editor/before_enqueue_styles', [\RomethemePlugin\Plugin::class, 'enqueue_frontend']);
add_action('rkit_notices', [$this, 'rkit_notice']);
do_action('rkit_notices');
}
}
function row_meta_link($links, $plugin_file_name, $plugin_data, $status)
{
if (strpos($plugin_file_name, basename(__FILE__))) {
// you can still use array_unshift() to add links at the beginning
$links[] = '<a target="_blank" href="https://support.rometheme.net/docs/romethemekit/">Docs</a>';
$links[] = '<a target="_blank" href="https://www.youtube.com/@Rometheme_Studio">Video Tutorials</a>';
}
return $links;
}
function action_links($plugin_actions, $plugin_file) {
if (strpos($plugin_file, basename(__FILE__))) {
$plugin_actions['go_premium'] = sprintf('<a target="_blank" style="font-weight:700; color : #00cea6" href="%s">Upgrade To Pro</a>' , 'https://rometheme.net/pricing/');
}
return $plugin_actions;
}
static function pluginbasename()
{
return plugin_basename(__FILE__);
}
/**
* 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 Elementor Version
*
* @since 1.0.0
* @var string RomethemeKit Plugin Version.
*/
static function rt_version()
{
return '1.5.6';
}
/**
* 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 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 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/';
}
static function api_url()
{
return 'https://api.rometheme.pro/';
}
function rometheme_add_menu()
{
add_menu_page(
'RomethemeKit Dashboard',
'RomethemeKit',
'manage_options',
'romethemekit',
array($this, 'romethemekit_cal'),
$this->plugin_url() . 'view/romethemekit.svg',
20
);
add_submenu_page(
'romethemekit',
esc_html('RomethemeKit Dashboard'),
esc_html('Dashboard'),
'manage_options',
'romethemekit',
array($this, 'romethemekit_cal'),
0
);
add_submenu_page(
'romethemekit',
esc_html('Widgets'),
esc_html('Widgets'),
'manage_options',
'rkit-widgets',
[$this, 'widgets_call'],
1
);
add_submenu_page(
'romethemekit',
esc_html('Theme Builder'),
esc_html('Theme Builder'),
'manage_options',
'themebuilder',
[$this, 'themebuilder_call'],
2
);
add_submenu_page(
'romethemekit',
esc_html('Templates'),
esc_html('Templates'),
'manage_options',
'rtmkit-templates',
[$this, 'templates_call'],
3
);
add_submenu_page(
'romethemekit',
esc_html('System Status'),
esc_html('System Status'),
'manage_options',
'rkit-system-status',
[$this, 'submenu_system_info'],
4
);
add_submenu_page(
'romethemekit',
esc_html('Settings'),
esc_html('Settings'),
'manage_options',
'rtm-settings',
[$this, 'settings_call'],
5
);
}
function romethemekit_cal()
{
require self::plugin_dir() . 'view/welcome.php';
}
function themebuilder_call()
{
require RomeTheme::module_dir() . 'themebuilder/views/themebuilder.php';
}
function templates_call()
{
require RomeTheme::module_dir() . 'template/views/templates.php';
}
function settings_call()
{
require RomeTheme::module_dir() . 'settings/views/settings-view.php';
}
function widgets_call()
{
require RomeTheme::module_dir() . 'widgets/views/widgets_view.php';
}
function submenu_system_info()
{
require self::plugin_dir() . 'view/system.php';
}
function register_style()
{
wp_enqueue_script('rkit-js', self::plugin_url() . 'assets/js/rkit.js', [], self::rt_version(), true);
wp_enqueue_style('admin-style', self::plugin_url() . 'assets/css/admin_style.css', [], self::rt_version());
wp_localize_script('rkit-js', 'ajax_url', array(
'ajax_url' => admin_url('admin-ajax.php')
));
$screen = get_current_screen();
if (str_contains($screen->id, "romethemekit") || $screen->id == 'romethemekit_page_romethemeform-form') {
wp_enqueue_style('style.css', self::plugin_url() . 'bootstrap/css/bootstrap.css', [], self::rt_version());
wp_enqueue_script('bootstrap.js', self::plugin_url() . 'bootstrap/js/bootstrap.min.js', [], self::rt_version(), true);
wp_enqueue_style('fontawesome-icons', self::plugin_url() . 'assets/css/fontawesome/fontawesome.css', [], self::rt_version());
}
if (class_exists('RomethemeForm')) {
$form_nonce = wp_create_nonce('rform_form_ajax_nonce');
if ($screen->id == 'romethemekit_page_romethemeform-form') {
wp_enqueue_script('rform-form-js', RomeThemeForm::module_url() . 'form/assets/js/form.js');
wp_localize_script('rform-form-js', 'romethemeform_ajax_url', array(
'ajax_url' => admin_url('admin-ajax.php'),
'rest_url' => rest_url('wp/v2/romethemeform_form/'),
'nonce' => $form_nonce
));
wp_localize_script('rform-form-js', 'romethemeform_url', ['form_url' => admin_url() . 'admin.php?page=romethemeform-form']);
}
}
if (class_exists('RomethemePro')) {
if ($screen->id == 'romethemekit_page_rkitpro-license') {
wp_enqueue_style('style.css', self::plugin_url() . 'bootstrap/css/bootstrap.css', [], self::rt_version());
wp_enqueue_script('bootstrap.js', self::plugin_url() . 'bootstrap/js/bootstrap.min.js', [], self::rt_version(), true);
}
}
}
function change_admin_footer($footer_text)
{
$screen = get_current_screen();
if ($screen->id == 'toplevel_page_romethemekit') {
$footer_text = 'Thank you for creating with <a href="https://wordpress.org">Wordpress</a>. | Love Using RomethemeKit For Elementor? <a href="https://wordpress.org/plugins/rometheme-for-elementor/#reviews">Rate Us</a> ';
return $footer_text;
}
}
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', 'rometheme-for-elementor');
$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', 'rometheme-for-elementor');
$btn['url'] = wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=elementor'), 'install-plugin_elementor');
}
$message = sprintf(
/* translators: 1: Plugin name 2: Elementor */
esc_html__('%1$s requires %2$s to work properly. Please install and activate it first.', 'rometheme-for-elementor'),
'<strong>' . esc_html__('RomethemeKit for Elementor', 'rometheme-for-elementor') . '</strong>',
'<strong>' . esc_html__('Elementor', 'rometheme-for-elementor') . '</strong>'
);
\Rkit\Libs\Notice::instance('rometheme-for-elementor', 'unsupported-elementor-version')
->set_type('error')
->set_message($message)
->set_button($btn)
->call();
}
public static function rkit_notice()
{
$userid = get_current_user_id();
$rkit_hasbeen_rated = get_user_meta($userid, 'rkit-hasbeen-rated');
if (empty($rkit_hasbeen_rated)) {
// add_action('admin_notices', [\RomethemePlugin\Plugin::class, 'rkit_notice_raw']);
// echo json_encode($userid);
}
}
public static function rkitRemoveNotice()
{
$userid = get_current_user_id();
add_user_meta($userid, 'rkit-hasbeen-rated', 'true');
}
}
new RomeTheme();