Linux webm002.cluster126.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
/
home
/
ariannadhf
/
www
/
wp-content
/
plugins
/
themeisle-companion
/
obfx_modules
/
elementor-widgets
/
/home/ariannadhf/www/wp-content/plugins/themeisle-companion/obfx_modules/elementor-widgets/init.php
<?php /** * Elementor Widgets Core Orbit Fox Module. * * @link https://themeisle.com * @since 1.0.0 * * @package Elementor_Widgets_OBFX_Module */ define( 'OBFX_MODULE_URL', __FILE__ ); use \ThemeIsle\ContentForms\Form_Manager; /** * The class defines a new module to be used by Orbit Fox plugin. * * @package Elementor_Widgets_OBFX_Module * @author Themeisle <friends@themeisle.com> * @codeCoverageIgnore */ class Elementor_Widgets_OBFX_Module extends Orbit_Fox_Module_Abstract { /** * Elementor_Widgets_OBFX_Module constructor. * * @since 1.0.0 * @access public */ public function __construct() { parent::__construct(); $this->active_default = true; } /** * Setup module strings * * @access public */ public function set_module_strings() { $this->name = __( 'Elementor widgets', 'themeisle-companion' ); $this->description = __( 'Adds widgets to the Elementor page builder.', 'themeisle-companion' ); $this->documentation_url = 'https://docs.themeisle.com/article/951-orbit-fox-documentation#page-builder-widgets'; if ( self::should_add_placeholders() ) { $this->description .= '<div class="neve-pro-notice"> <p>' . sprintf( /* translators: %1$s is the features, %2$s is the plugin name */ __( 'You can get access to %1$s, including Instagram integration, display conditions and more in %2$s.', 'themeisle-companion' ), sprintf( '<b>%1$s</b>', __( '10+ more Elementor and Gutenberg widgets', 'themeisle-companion' ) ), '<b>Neve PRO</b>' ) . '</p> <a class="notice-cta" target="_blank" href="' . esc_url_raw( add_query_arg( array( 'utm_source' => 'wpadmin', 'utm_medium' => 'orbitfox', 'utm_content' => 'neve', 'utm_campaign' => 'elementorwidgets', ), 'https://themeisle.com/themes/neve/pricing/' ) ) . '">' . __( 'Learn more', 'themeisle-companion' ) . '</a> </div>'; } } /** * Determine if module should be loaded. * * @since 1.0.0 * @access public * @return bool */ public function enable_module() { require_once ABSPATH . 'wp-admin/includes/plugin.php'; return is_plugin_active( 'elementor/elementor.php' ); } /** * The loading logic for the module. * * @since 1.0.0 * @access public */ public function load() {} /** * Check for current license. * * @return bool */ public static function has_valid_addons() { if ( ! defined( 'NEVE_PRO_BASEFILE' ) ) { return false; } $option_name = basename( dirname( NEVE_PRO_BASEFILE ) ); $option_name = str_replace( '-', '_', strtolower( trim( $option_name ) ) ); $status = get_option( $option_name . '_license_data' ); if ( ! $status ) { return false; } if ( ! isset( $status->license ) ) { return false; } if ( $status->license === 'not_active' || $status->license === 'invalid' ) { return false; } return true; } /** * Decide if placeholders are needed. * * @return bool */ public static function should_add_placeholders() { return wp_get_theme()->get( 'Name' ) === 'Neve' && ! self::has_valid_addons(); } /** * Method to define hooks needed. * * @since 1.0.0 * @access public * @return mixed | array */ public function hooks() { $this->loader->add_action( 'init', $this, 'load_content_forms' ); $this->loader->add_action( 'plugins_loaded', $this, 'load_elementor_extra_widgets' ); $this->loader->add_filter( 'elementor/editor/localize_settings', $this, 'localization_filter', PHP_INT_MAX ); $this->loader->add_action( 'elementor/editor/before_enqueue_scripts', $this, 'load_fa_styles' ); if ( self::should_add_placeholders() ) { $this->loader->add_action( 'elementor/editor/after_enqueue_scripts', $this, 'enqueue_editor_scripts' ); $this->loader->add_action( 'elementor/editor/after_enqueue_styles', $this, 'enqueue_editor_styles' ); } } /** * Filter the localization settings. * * @param array $config Config array. * * @return array */ public function localization_filter( $config ) { if ( ! array_key_exists( 'initial_document', $config ) ) { return $config; } if ( ! array_key_exists( 'panel', $config['initial_document'] ) ) { return $config; } if ( ! array_key_exists( 'elements_categories', $config['initial_document']['panel'] ) ) { return $config; } if ( ! array_key_exists( 'pro-elements', $config['initial_document']['panel']['elements_categories'] ) ) { return $config; } if ( ! array_key_exists( 'obfx-elementor-widgets', $config['initial_document']['panel']['elements_categories'] ) ) { return $config; } $elements_categories = $config['initial_document']['panel']['elements_categories']; $obfx_cat = array( 'obfx-elementor-widgets' => $elements_categories['obfx-elementor-widgets'] ); unset( $elements_categories['obfx-elementor-widgets'] ); $config['initial_document']['panel']['elements_categories'] = $this->insert_before_element( $elements_categories, 'pro-elements', $obfx_cat ); $elements_categories = $config['initial_document']['panel']['elements_categories']; if ( $this->should_add_placeholders() && array_key_exists( 'obfx-elementor-widgets-pro', $elements_categories ) ) { $placeholders_cat = array( 'obfx-elementor-widgets-pro' => $elements_categories['obfx-elementor-widgets-pro'] ); unset( $elements_categories['obfx-elementor-widgets-pro'] ); $config['initial_document']['panel']['elements_categories'] = $this->insert_before_element( $elements_categories, 'pro-elements', $placeholders_cat ); } return $config; } /** * Insert element after specific key. * * @param array $array Destination array. * @param string $key Where to insert. * @param array $el What to insert. * @return array */ private function insert_before_element( $array, $key, $el ) { $keys = array_keys( $array ); $index = array_search( $key, $keys ); $pos = false === $index ? count( $array ) : $index; return array_merge( array_slice( $array, 0, $pos ), $el, array_slice( $array, $pos ) ); } /** * Load font awesome scripts in admin. */ public function load_fa_styles() { wp_enqueue_style( 'font-awesome-5-all', ELEMENTOR_ASSETS_URL . '/lib/font-awesome/css/all.min.css', array(), '2.10.9' ); } /** * Load required scripts in admin. */ public function enqueue_editor_scripts() { wp_add_inline_script( 'elementor-editor', ' $e.routes.on(\'run\', function(){ setTimeout( function() { jQuery( \'#elementor-panel-category-obfx-elementor-widgets-pro .elementor-element-wrapper\' ).on( \'click mousedown drop\', function(e) { e.preventDefault(); }); jQuery( \'#elementor-panel-category-obfx-elementor-widgets-pro .elementor-element-wrapper\' ).on( \'click drop\', function(e) { window.open( \'' . tsdk_utmify( 'https://themeisle.com/themes/neve/upgrade/', 'elementorwidgetsdrag', 'orbitfox' ) . '\',\'_blank\'); }); }, 1000 ); }); ' ); } /** * Load required styles in admin. */ public function enqueue_editor_styles() { wp_add_inline_style( 'elementor-editor', ' #elementor-panel-category-obfx-elementor-widgets-pro .elementor-element-wrapper { position:relative; } #elementor-panel-category-obfx-elementor-widgets-pro .elementor-element { cursor: pointer; } #elementor-panel-category-obfx-elementor-widgets-pro .elementor-element-wrapper:before{ content: \'\e96f\'; position: absolute; top: 5px; right: 5px; color: #64666A; font-family: eicons; z-index: 1; } ' ); } /** * Method that returns an array of scripts and styles to be loaded * for the front end part. * * @since 1.0.0 * @access public * @return array */ public function public_enqueue() { return array(); } /** * Method that returns an array of scripts and styles to be loaded * for the admin part. * * @since 1.0.0 * @access public * @return array */ public function admin_enqueue() { return array(); } /** * Method to define the options fields for the module * * @since 1.0.0 * @access public * @return array */ public function options() { $options = array(); return $options; } /** * If the content-forms library is available we should make the forms available for elementor */ public function load_content_forms() { if ( ! class_exists( '\ThemeIsle\ContentForms\Form_Manager' ) ) { return false; } $content_forms = new Form_Manager(); $content_forms->instance(); return true; } /** * Call the ElementorExtraWidgets Library which will register its own actions. */ public function load_elementor_extra_widgets() { if ( class_exists( '\ThemeIsle\ElementorExtraWidgets' ) ) { \ThemeIsle\ElementorExtraWidgets::instance(); } } }