HEX
Server: nginx/1.18.0
System: Linux m1-ws1-ams3 5.4.0-148-generic #165-Ubuntu SMP Tue Apr 18 08:53:12 UTC 2023 x86_64
User: root (0)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: /opt/aphex/sites/strike-3.com/wp-content/plugins/master-addons/class-master-elementor-addons.php
<?php

namespace MasterAddons;

use MasterAddons\Admin\Dashboard\Master_Addons_Admin_Settings;
use MasterAddons\Admin\Dashboard\Addons\Extensions\JLTMA_Addon_Extensions;
use MasterAddons\Admin\Dashboard\Addons\Elements\JLTMA_Addon_Elements;
use MasterAddons\Inc\Helper\Master_Addons_Helper;
use MasterAddons\Inc\Classes\Master_Addons_White_Label;

if (!defined('ABSPATH')) {
	exit;
} // No, Direct access Sir !!!

if (!class_exists('Master_Elementor_Addons')) {
	final class Master_Elementor_Addons
	{

		static public $class_namespace = '\\MasterAddons\\Inc\\Classes\\';
		public $controls_manager;

		const VERSION = JLTMA_VER;
		const MINIMUM_PHP_VERSION = '5.4';
		const MINIMUM_ELEMENTOR_VERSION = '2.0.0';

		private $_localize_settings = [];
		private $reflection;
		private static $plugin_path;
		private static $plugin_url;
		private static $plugin_slug;
		public static $plugin_dir_url;
		private static $instance = null;


		public static function get_instance()
		{
			if (!self::$instance) {
				self::$instance = new self;
				self::$instance->jltma_init();
			}
			return self::$instance;
		}


		public function __construct()
		{
			$this->reflection = new \ReflectionClass($this);

			$this->constants();
			$this->jltma_register_autoloader();
			$this->jltma_include_files();
			$this->jltma_load_extensions();

			self::$plugin_slug = 'master-addons';
			self::$plugin_path = untrailingslashit(plugin_dir_path('/', __FILE__));
			self::$plugin_url  = untrailingslashit(plugins_url('/', __FILE__));

			// Initialize Plugin
			add_action('plugins_loaded', [$this, 'jltma_plugins_loaded']);

			add_filter('plugin_action_links_' . plugin_basename(__FILE__), [$this, 'plugin_actions_links']);

			add_action('elementor/init', [$this, 'jltma_add_category_to_editor']);

			add_action('elementor/init', [$this, 'jltma_add_actions_to_elementor'], 0);

			// Placeholder image replacement
			add_filter('elementor/utils/get_placeholder_image_src', [$this, 'jltma_replace_placeholder_image'], 900);

			// Add Elementor Widgets
			add_action('elementor/widgets/widgets_registered', [$this, 'jltma_init_widgets']);

			//Register Controls
			add_action('elementor/controls/controls_registered', [$this, 'jltma_register_controls']);

			//Body Class
			add_action('body_class', [$this, 'jltma_body_class']);

			// Override Freemius Filters
			ma_el_fs()->add_filter('support_forum_submenu', [$this, 'jltma_override_support_menu_text']);
			ma_el_fs()->add_filter('support_forum_url', [$this, 'jltma_support_forum_url']);
			ma_el_fs()->add_filter('freemius_pricing_js_path', [$this, 'jltma_new_freemius_pricing_js']);
		}


		public function jltma_init()
		{

			$this->jltma_load_textdomain();
			$this->jltma_image_size();

			//Redirect Hook
			add_action('admin_init', [$this, 'mael_ad_redirect_hook']);
		}

		public function jltma_override_support_menu_text()
		{
			return __('Support', JLTMA_TD);
		}


		/**
		 * Support Forum URL
		 *
		 * @param [type] $support_url and Pro Support
		 *
		 * @return void
		 */
		public function jltma_support_forum_url($support_url)
		{
			if (ma_el_fs()->is_premium()) {
				$support_url = 'https://master-addons.com/contact-us/';
			} else {
				$support_url = 'https://wordpress.org/support/plugin/master-addons/';
			}
			return $support_url;
		}


		public static function jltma_elementor()
		{
			return \Elementor\Plugin::$instance;
		}

		// Deactivation Hook
		public static function jltma_plugin_deactivation_hook()
		{
			delete_option('jltma_activation_time');
		}

		// Activation Hook
		public static function jltma_plugin_activation_hook()
		{
			$jltma_white_label_default_options = Master_Addons_White_Label::jltma_white_label_default_options();
			update_option('jltma_white_label_settings', $jltma_white_label_default_options);

			if (get_option('jltma_activation_time') === false)
				update_option('jltma_activation_time', strtotime("now"));

			self::activated_widgets();
			self::activated_extensions();
			self::activated_third_party_plugins();

			ma_el_fs()->add_action('after_premium_version_activation', array('\\MasterAddons\\Master_Elementor_Addons', 'jltma_network_activate'));
		}

		// Multisite Activation
		public static function jltma_network_activate($network_wide)
		{

			if (function_exists('is_multisite') && is_multisite()) {
				//do nothing for multisite!
			} else {
				//Make sure we redirect to the welcome page
				set_transient(JLTMA_ACTIVATION_REDIRECT_TRANSIENT_KEY, true, 30);
			}
		}


		// Initialize
		public function jltma_plugins_loaded()
		{

			// Check if Elementor installed and activated
			if (!did_action('elementor/loaded')) {
				add_action('admin_notices', array($this, 'mela_admin_notice_missing_main_plugin'));
				return;
			}

			// Check for required Elementor version
			if (!version_compare(ELEMENTOR_VERSION, self::MINIMUM_ELEMENTOR_VERSION, '>=')) {
				add_action('admin_notices', array($this, 'mela_admin_notice_minimum_elementor_version'));
				return;
			}

			// Check for required PHP version
			if (version_compare(PHP_VERSION, self::MINIMUM_PHP_VERSION, '<')) {
				add_action('admin_notices', array($this, 'mela_admin_notice_minimum_php_version'));
				return;
			}

			self::jltma_plugin_activation_hook();
		}


		public function constants()
		{

			//Defined Constants
			if (!defined('JLTMA_BADGE')) {
				define('JLTMA_BADGE', '<span class="jltma-badge"></span>');
			}

			if (!defined('JLTMA_NEW_FEATURE')) {
				define('JLTMA_NEW_FEATURE', '<span class="jltma-new-feature"></span>');
			}

			if (!defined('JLTMA_SCRIPT_SUFFIX')) {
				define('JLTMA_SCRIPT_SUFFIX', defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min');
			}

			if (!defined('JLTMA_URL')) {
				define('JLTMA_URL', self::jltma_plugin_url());
			}

			if (!defined('JLTMA_PATH')) {
				define('JLTMA_PATH', self::jltma_plugin_path());
			}

			if (!defined('JLTMA_DIR_URL')) {
				define('JLTMA_DIR_URL', self::jltma_plugin_dir_url());
			}

			if (!defined('JLTMA_IMAGE_DIR')) {
				define('JLTMA_IMAGE_DIR', self::jltma_plugin_dir_url() . '/assets/images/');
			}

			if (!defined('JLTMA_ASSETS')) {
				define('JLTMA_ASSETS', self::jltma_plugin_url() . '/assets/');
			}

			if (!defined('JLTMA_ADMIN_ASSETS')) {
				define('JLTMA_ADMIN_ASSETS', self::jltma_plugin_dir_url() . '/inc/admin/assets/');
			}

			if (!defined('JLTMA_ADDONS')) {
				define('JLTMA_ADDONS', plugin_dir_path(__FILE__) . 'addons/');
			}

			if (!defined('JLTMA_TEMPLATES')) {
				define('JLTMA_TEMPLATES', plugin_dir_path(__FILE__) . 'inc/template-parts/');
			}

			// Master Addons Text Domain
			if (!defined('JLTMA_TD')) {
				define('JLTMA_TD', $this->jltma_load_textdomain());
			}

			if (ma_el_fs()->can_use_premium_code()) {
				if (!defined('MASTER_ADDONS_PRO_ADDONS_VERSION')) {
					define('MASTER_ADDONS_PRO_ADDONS_VERSION', ma_el_fs()->can_use_premium_code());
				}
			}

			define('JLTMA_ACTIVATION_REDIRECT_TRANSIENT_KEY', '_master_addons_activation_redirect');
		}



		public function jltma_register_autoloader()
		{
			spl_autoload_register([__CLASS__, 'jltma_autoload']);
		}

		function jltma_autoload($class)
		{

			if (0 !== strpos($class, __NAMESPACE__)) {
				return;
			}


			if (!class_exists($class)) {

				$filename = strtolower(
					preg_replace(
						['/^' . __NAMESPACE__ . '\\\/', '/([a-z])([A-Z])/', '/_/', '/\\\/'],
						['', '$1-$2', '-', DIRECTORY_SEPARATOR],
						$class
					)
				);

				$filename = JLTMA_PATH . $filename . '.php';

				if (is_readable($filename)) {
					include($filename);
				}
			}
		}

		function jltma_add_category_to_editor()
		{

			\Elementor\Plugin::instance()->elements_manager->add_category(
				'master-addons',
				[
					'title' => esc_html__('Master Addons', JLTMA_TD),
					'icon'  => 'font',
				],
				1
			);
		}

		public function jltma_image_size()
		{
			add_image_size('master_addons_team_thumb', 250, 330, true);
		}

		// Widget Elements
		public static function activated_widgets()
		{
			$jltma_default_element_settings 	= array_fill_keys(Master_Addons_Admin_Settings::jltma_addons_array(), true);
			$jltma_get_element_settings     	= get_option('maad_el_save_settings', $jltma_default_element_settings);
			$jltma_new_element_settings     	= array_diff_key($jltma_default_element_settings, $jltma_get_element_settings);
			$jltma_updated_element_settings 	= array_merge($jltma_get_element_settings, $jltma_new_element_settings);

			if ($jltma_get_element_settings === false) {
				$jltma_get_element_settings = array();
			}
			update_option('maad_el_save_settings', $jltma_updated_element_settings);

			return $jltma_get_element_settings;
		}

		// Extensions
		public static function activated_extensions()
		{
			$jltma_default_extensions_settings 	= array_fill_keys(Master_Addons_Admin_Settings::jltma_addons_extensions_array(), true);
			$jltma_get_extension_settings     	= get_option('ma_el_extensions_save_settings', $jltma_default_extensions_settings);
			$jltma_new_extension_settings     	= array_diff_key($jltma_default_extensions_settings, $jltma_get_extension_settings);
			$jltma_updated_extension_settings 	= array_merge($jltma_get_extension_settings, $jltma_new_extension_settings);

			if ($jltma_get_extension_settings === false) {
				$jltma_get_extension_settings = array();
			}

			update_option('ma_el_extensions_save_settings', $jltma_updated_extension_settings);

			return $jltma_get_extension_settings;
		}


		// Third Party Plugins
		public static function activated_third_party_plugins()
		{
			$jltma_third_party_plugins_settings 		= array_fill_keys(Master_Addons_Admin_Settings::jltma_addons_third_party_plugins_array(), true);
			$jltma_get_third_party_plugins_settings     = get_option('ma_el_third_party_plugins_save_settings', $jltma_third_party_plugins_settings);
			$jltma_new_third_party_plugins_settings     = array_diff_key($jltma_third_party_plugins_settings, $jltma_get_third_party_plugins_settings);
			$maad_el_updated_extension_settings 		= array_merge($jltma_get_third_party_plugins_settings, $jltma_new_third_party_plugins_settings);

			if ($jltma_get_third_party_plugins_settings === false) {
				$jltma_get_third_party_plugins_settings = array();
			}
			update_option('ma_el_third_party_plugins_save_settings', $maad_el_updated_extension_settings);

			return $jltma_get_third_party_plugins_settings;
		}


		public function jltma_add_actions_to_elementor()
		{

			$classes = glob(JLTMA_PATH . '/inc/classes/JLTMA_*.php');

			// include all classes
			foreach ($classes as $key => $value) {
				require_once $value;
			}

			// instance all classes
			foreach ($classes as $key => $value) {
				$name = pathinfo($value, PATHINFO_FILENAME);
				$class = self::$class_namespace . $name;
				$this->jltma_classes[strtolower($name)] = new $class();
			}
		}

		public function jltma_register_controls($controls_manager)
		{

			$controls_manager = \Elementor\Plugin::$instance->controls_manager;

			$controls = array(
				'jltma-visual-select' => array(
					'file'  => JLTMA_PATH . '/inc/controls/visual-select.php',
					'class' => 'MasterAddons\Inc\Controls\MA_Control_Visual_Select',
					'type'  => 'single'
				),
				'jltma-transitions' => array(
					'file'  => JLTMA_PATH . '/inc/controls/group/transitions.php',
					'class' => 'MasterAddons\Inc\Controls\MA_Group_Control_Transition',
					'type'  => 'group'
				),
				'jltma-filters-hsb' => array(
					'file'  => JLTMA_PATH . '/inc/controls/group/filters-hsb.php',
					'class' => 'MasterAddons\Inc\Controls\MA_Group_Control_Filters_HSB',
					'type'  => 'group'
				),
				'jltma-button-background' => array(
					'file'  => JLTMA_PATH . '/inc/controls/group/button-background.php',
					'class' => 'MasterAddons\Inc\Controls\MA_Group_Control_Button_Background',
					'type'  => 'group'
				),
				'jltma-choose-text' => array(
					'file'  => JLTMA_PATH . '/inc/controls/choose-text.php',
					'class' => 'MasterAddons\Inc\Controls\JLTMA_Control_Choose_Text',
					'type'  => 'single'
				),
				'jltma_query' => array(
					'file'  => JLTMA_PATH . '/inc/controls/jltma-query.php',
					'class' => 'MasterAddons\Inc\Controls\JLTMA_Control_Query',
					'type'  => 'single'
				),

			);

			foreach ($controls as $control_type => $control_info) {
				if (!empty($control_info['file']) && !empty($control_info['class'])) {

					include_once($control_info['file']);

					if (class_exists($control_info['class'])) {
						$class_name = $control_info['class'];
					} elseif (class_exists(__NAMESPACE__ . '\\' . $control_info['class'])) {
						$class_name = __NAMESPACE__ . '\\' . $control_info['class'];
					}

					if ($control_info['type'] === 'group') {
						$controls_manager->add_group_control($control_type, new $class_name());
					} else {
						$controls_manager->register_control($control_type, new $class_name());
					}
				}
			}
		}

		public function get_widgets()
		{
			return [];
		}

		public function jltma_init_widgets()
		{

			$activated_widgets = self::activated_widgets();

			// Network Check
			if (defined('JLTMA_NETWORK_ACTIVATED') && JLTMA_NETWORK_ACTIVATED) {
				global $wpdb;
				$blogs = $wpdb->get_results("
				    SELECT blog_id
				    FROM {$wpdb->blogs}
				    WHERE site_id = '{$wpdb->siteid}'
				    AND spam = '0'
				    AND deleted = '0'
				    AND archived = '0'
				");
				$original_blog_id = get_current_blog_id();


				foreach ($blogs as $blog_id) {
					switch_to_blog($blog_id->blog_id);

					$widget_manager = Master_Addons_Helper::jltma_elementor()->widgets_manager;
					$jltma_all_addons = Master_Addons_Admin_Settings::jltma_merged_addons_array();
					ksort($jltma_all_addons);
					foreach ($jltma_all_addons as $key =>  $widget) {
						if (isset($activated_widgets[$widget['key']]) && $activated_widgets[$widget['key']] == true) {

							$widget_file = JLTMA_ADDONS . $widget['key'] . '/' . $widget['key'] . '.php';

							if (!ma_el_fs()->can_use_premium_code() && (isset($widget['is_pro']) && $widget['is_pro'])) {
								continue;
							}

							if (file_exists($widget_file)) {
								require_once $widget_file;
							}
							$class_name = $widget['class'];
							$widget_manager->register_widget_type(new $class_name);
						}
					}
				}

				switch_to_blog($original_blog_id);
			} else {

				$widget_manager = Master_Addons_Helper::jltma_elementor()->widgets_manager;

				$jltma_all_addons = Master_Addons_Admin_Settings::jltma_merged_addons_array();
				ksort($jltma_all_addons);
				foreach ($jltma_all_addons as $key =>  $widget) {
					if (isset($activated_widgets[$widget['key']]) && $activated_widgets[$widget['key']] == true) {

						$widget_file = JLTMA_ADDONS . $widget['key'] . '/' . $widget['key'] . '.php';

						if (!ma_el_fs()->can_use_premium_code() && (isset($widget['is_pro']) && $widget['is_pro'])) {
							continue;
						}

						if (file_exists($widget_file)) {
							require_once $widget_file;
						}
						$class_name = $widget['class'];
						$widget_manager->register_widget_type(new $class_name);
					}
				}
			}
		}




		public function jltma_load_extensions()
		{

			// Extension
			$activated_extensions = self::activated_extensions();


			// Network Check
			if (defined('JLTMA_NETWORK_ACTIVATED') && JLTMA_NETWORK_ACTIVATED) {
				global $wpdb;
				$blogs = $wpdb->get_results("
				    SELECT blog_id
				    FROM {$wpdb->blogs}
				    WHERE site_id = '{$wpdb->siteid}'
				    AND spam = '0'
				    AND deleted = '0'
				    AND archived = '0'
				");
				$original_blog_id = get_current_blog_id();


				foreach ($blogs as $blog_id) {
					switch_to_blog($blog_id->blog_id);

					ksort(JLTMA_Addon_Extensions::$jltma_extensions['jltma-extensions']['extension']);
					foreach (JLTMA_Addon_Extensions::$jltma_extensions['jltma-extensions']['extension'] as $extensions) {
						if (isset($activated_extensions[$extensions['key']]) && $activated_extensions[$extensions['key']] == true) {

							$extensions_file = JLTMA_PATH . '/inc/modules/' . $extensions['key'] . '/' . $extensions['key'] . '.php';

							if (!ma_el_fs()->can_use_premium_code() && (isset($extensions['is_pro']) && $extensions['is_pro'])) {
								continue;
							}

							if (file_exists($extensions_file)) {
								require_once $extensions_file;
							}
						}
					}
				}

				switch_to_blog($original_blog_id);
			} else {

				ksort(JLTMA_Addon_Extensions::$jltma_extensions['jltma-extensions']['extension']);
				foreach (JLTMA_Addon_Extensions::$jltma_extensions['jltma-extensions']['extension'] as $extensions) {
					if (isset($activated_extensions[$extensions['key']]) && $activated_extensions[$extensions['key']] == true) {

						$extensions_file = JLTMA_PATH . '/inc/modules/' . $extensions['key'] . '/' . $extensions['key'] . '.php';

						if (!ma_el_fs()->can_use_premium_code() && (isset($extensions['is_pro']) && $extensions['is_pro'])) {
							continue;
						}

						if (file_exists($extensions_file)) {
							require_once $extensions_file;
						}
					}
				}
			}
		}

		public function jltma_replace_placeholder_image()
		{
			return JLTMA_IMAGE_DIR . 'placeholder.png';
		}


		public function jltma_editor_scripts_enqueue_js()
		{

			wp_enqueue_script('ma-el-rellaxjs-lib', JLTMA_URL . '/assets/vendor/rellax/rellax.min.js', array('jquery'), self::VERSION, true);
		}

		public function jltma_editor_scripts_css()
		{
			wp_enqueue_style('master-addons-editor', JLTMA_URL . '/assets/css/master-addons-editor.css');
		}




		public function is_elementor_activated($plugin_path = 'elementor/elementor.php')
		{
			$installed_plugins_list = get_plugins();

			return isset($installed_plugins_list[$plugin_path]);
		}


		/*
		 * Activation Plugin redirect hook
		 */
		public function mael_ad_redirect_hook()
		{
			if (is_plugin_active('elementor/elementor.php')) {
				if (get_option('ma_el_update_redirect', false)) {
					delete_option('ma_el_update_redirect');
					delete_transient('ma_el_update_redirect');
					if (!isset($_GET['activate-multi']) && $this->is_elementor_activated()) {
						wp_redirect('admin.php?page=master-addons-settings');
						exit;
					}
				}
			}
		}


		// Text Domains
		public function jltma_load_textdomain()
		{
			load_plugin_textdomain('jltma');
		}


		// Plugin URL
		public static function jltma_plugin_url()
		{

			if (self::$plugin_url) {
				return self::$plugin_url;
			}

			return self::$plugin_url = untrailingslashit(plugins_url('/', __FILE__));
		}

		// Plugin Path
		public static function jltma_plugin_path()
		{
			if (self::$plugin_path) {
				return self::$plugin_path;
			}

			return self::$plugin_path = untrailingslashit(plugin_dir_path(__FILE__));
		}

		/**
		 * @method plugin_dir_url
		 * Get the URL directory path (with trailing slash) for the plugin __FILE__ passed in
		 * Reference: https://developer.wordpress.org/reference/functions/plugin_dir_url/
		 *
		 * @return void
		 */
		public static function jltma_plugin_dir_url()
		{

			if (self::$plugin_dir_url) {
				return self::$plugin_dir_url;
			}

			return self::$plugin_dir_url = untrailingslashit(plugin_dir_url(__FILE__));
		}


		public function plugin_actions_links($links)
		{
			if (is_admin()) {
				$links[] = sprintf('<a href="admin.php?page=master-addons-settings">' . esc_html__('Settings', JLTMA_TD) . '</a>');
				$links[] = '<a href="https://master-addons.com/contact-us" target="_blank">' . esc_html__('Support', JLTMA_TD) . '</a>';
				$links[] = '<a href="https://master-addons.com/docs/" target="_blank">' . esc_html__('Documentation', JLTMA_TD) . '</a>';
			}

			// go pro
			if (!ma_el_fs()->can_use_premium_code()) {
				$links[] = sprintf('<a href="https://master-addons.com/" target="_blank" style="color: #39b54a; font-weight: bold;">' . esc_html__('Go Pro', JLTMA_TD) . '</a>');
			}

			return $links;
		}


		// Include Files
		public function jltma_include_files()
		{

			// Helper Class
			include_once JLTMA_PATH . '/inc/classes/helper-class.php';

			// Assets Manager
			include_once JLTMA_PATH . '/inc/classes/assets-manager.php';

			// Templates Control Class
			include_once JLTMA_PATH . '/inc/classes/template-controls.php';

			//Reset Theme Styles
			include_once JLTMA_PATH . '/inc/classes/class-reset-themes.php';

			// Dashboard Settings
			include_once JLTMA_PATH . '/inc/admin/dashboard-settings.php';

			//Utils
			include_once JLTMA_PATH . '/inc/classes/utils.php';

			//Rollback
			include_once JLTMA_PATH . '/inc/classes/rollback.php';

			//White Label
			include_once JLTMA_PATH . '/inc/classes/white-label.php';

			// Templates
			require_once JLTMA_PATH . '/inc/templates/templates.php';

			// Extensions
			require_once JLTMA_PATH . '/inc/classes/JLTMA_Extension_Prototype.php';

			// Extensions
			require_once JLTMA_PATH . '/inc/classes/Animation.php';

			// Traits: Global Controls
			require_once JLTMA_PATH . '/inc/traits/swiper-controls.php';
		}


		public function jltma_body_class($classes)
		{
			global $pagenow;

			if (in_array($pagenow, ['post.php', 'post-new.php'], true) && \Elementor\Utils::is_post_support()) {
				$post = get_post();

				$mode_class = \Elementor\Plugin::$instance->db->is_built_with_elementor($post->ID) ? 'elementor-editor-active' : 'elementor-editor-inactive master-addons';

				$classes .= ' ' . $mode_class;
			}

			return $classes;
		}

		public function jltma_new_freemius_pricing_js($default_pricing_js_path)
		{
			return $this->jltma_plugin_path() . '/lib/freemius-pricing/freemius-pricing.js';
		}


		public function get_localize_settings()
		{
			return $this->_localize_settings;
		}

		public function add_localize_settings($setting_key, $setting_value = null)
		{
			if (is_array($setting_key)) {
				$this->_localize_settings = array_replace_recursive($this->_localize_settings, $setting_key);

				return;
			}

			if (!is_array($setting_value) || !isset($this->_localize_settings[$setting_key]) || !is_array($this->_localize_settings[$setting_key])) {
				$this->_localize_settings[$setting_key] = $setting_value;

				return;
			}

			$this->_localize_settings[$setting_key] = array_replace_recursive($this->_localize_settings[$setting_key], $setting_value);
		}


		public function mela_admin_notice_missing_main_plugin()
		{
			$plugin = 'elementor/elementor.php';

			if ($this->is_elementor_activated()) {
				if (!current_user_can('activate_plugins')) {
					return;
				}
				$activation_url = wp_nonce_url('plugins.php?action=activate&amp;plugin=' . $plugin . '&amp;plugin_status=all&amp;paged=1&amp;s', 'activate-plugin_' . $plugin);
				$message = __('<b>Master Addons</b> requires <strong>Elementor</strong> plugin to be active. Please activate Elementor to continue.', JLTMA_TD);
				$button_text = __('Activate Elementor', JLTMA_TD);
			} else {
				if (!current_user_can('install_plugins')) {
					return;
				}

				$activation_url = wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=elementor'), 'install-plugin_elementor');
				$message = sprintf(__('<b>Master Addons</b> requires %1$s"Elementor"%2$s plugin to be installed and activated. Please install Elementor to continue.', JLTMA_TD), '<strong>', '</strong>');
				$button_text = __('Install Elementor', JLTMA_TD);
			}




			$button = '<p><a href="' . $activation_url . '" class="button-primary">' . $button_text . '</a></p>';

			printf('<div class="notice notice-warning is-dismissible"><p>%1$s</p>%2$s</div>', $message, $button);
		}

		public function mela_admin_notice_minimum_elementor_version()
		{
			if (isset($_GET['activate'])) {
				unset($_GET['activate']);
			}

			$message = sprintf(
				/* translators: 1: Plugin name 2: Elementor 3: Required Elementor version */
				esc_html__('"%1$s" requires "%2$s" version %3$s or greater.', JLTMA_TD),
				'<strong>' . esc_html__('Master Addons for Elementor', JLTMA_TD) . '</strong>',
				'<strong>' . esc_html__('Elementor', JLTMA_TD) . '</strong>',
				self::MINIMUM_ELEMENTOR_VERSION
			);

			printf('<div class="notice notice-warning is-dismissible"><p>%1$s</p></div>', $message);
		}

		public function mela_admin_notice_minimum_php_version()
		{
			if (isset($_GET['activate'])) {
				unset($_GET['activate']);
			}

			$message = sprintf(
				/* translators: 1: Plugin name 2: PHP 3: Required PHP version */
				esc_html__('"%1$s" requires "%2$s" version %3$s or greater.', JLTMA_TD),
				'<strong>' . esc_html__('Master Addons for Elementor', JLTMA_TD) . '</strong>',
				'<strong>' . esc_html__('PHP', JLTMA_TD) . '</strong>',
				self::MINIMUM_PHP_VERSION
			);

			printf('<div class="notice notice-warning is-dismissible"><p>%1$s</p></div>', $message);
		}
	}


	Master_Elementor_Addons::get_instance();
}