| Server IP : 198.38.94.67 / Your IP : 216.73.217.178 Web Server : LiteSpeed System : Linux d6054.dxb1.stableserver.net 5.14.0-570.25.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jul 9 04:57:09 EDT 2025 x86_64 User : azfilmst ( 1070) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /home/azfilmst/public_html/wp-content/plugins/haru-frames/ |
Upload File : |
<?php
/**
* Plugin Name: Haru Frames
* Description: Haru Frames extension from HaruTheme.
* Plugin URI: http://harutheme.com
* Version: 1.5.9
* Author: HaruTheme
* Author URI: http://harutheme.com
* Text Domain: haru-frames
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
/**
* Main Haru Frames Class
*
* The main class that initiates and runs the plugin.
*
* @since 1.0.0
*/
if ( ! class_exists( 'Haru_Frames' ) ) {
final class Haru_Frames {
/**
* Plugin Version
*
* @since 1.0.0
*
* @var string The plugin version.
*/
const VERSION = '1.5.9';
/**
* Minimum Elementor Version
*
* @since 1.0.0
*
* @var string Minimum Elementor version required to run the plugin.
*/
const MINIMUM_ELEMENTOR_VERSION = '2.0.0';
/**
* Minimum PHP Version
*
* @since 1.0.0
*
* @var string Minimum PHP version required to run the plugin.
*/
const MINIMUM_PHP_VERSION = '7.0';
/**
* Instance
*
* @since 1.0.0
*
* @access private
* @static
*
* @var Haru_Frames The single instance of the class.
*/
private static $_instance = null;
/**
* Instance
*
* Ensures only one instance of the class is loaded or can be loaded.
*
* @since 1.0.0
*
* @access public
* @static
*
* @return Haru_Frames An instance of the class.
*/
public static function instance() {
if ( is_null( self::$_instance ) ) {
self::$_instance = new self();
}
return self::$_instance;
}
/**
* Constructor
*
* @since 1.0.0
*
* @access public
*/
public function __construct() {
// Define some constant
$this->define();
// Include plugin files
$this->includes();
add_action( 'init', [ $this, 'i18n' ] );
add_action( 'plugins_loaded', [ $this, 'init' ] );
add_action( 'admin_init', [ $this, 'admin_assets' ] );
add_action( 'admin_enqueue_scripts', [ $this, 'admin_assets' ] );
// Remove contact form 7 autop
add_filter( 'wpcf7_autop_or_not', '__return_false' );
}
/**
* Load Textdomain
*
* Load plugin localization files.
*
* Fired by `init` action hook.
*
* @since 1.0.0
*
* @access public
*/
public function i18n() {
load_plugin_textdomain( 'haru-frames', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
}
/**
* Initialize the plugin
*
* Load the plugin only after Elementor (and other plugins) are loaded.
* Checks for basic plugin requirements, if one check fail don't continue,
* if all check have passed load the files required to run the plugin.
*
* Fired by `plugins_loaded` action hook.
*
* @since 1.0.0
*
* @access public
*/
public function init() {
// Check if Elementor installed and activated
if ( ! did_action( 'elementor/loaded' ) ) {
add_action( 'admin_notices', [ $this, 'admin_notice_missing_main_plugin' ] );
return;
}
// Check for required Elementor version
if ( ! version_compare( ELEMENTOR_VERSION, self::MINIMUM_ELEMENTOR_VERSION, '>=' ) ) {
add_action( 'admin_notices', [ $this, 'admin_notice_minimum_frames_version' ] );
return;
}
// Check for required PHP version
if ( version_compare( PHP_VERSION, self::MINIMUM_PHP_VERSION, '<' ) ) {
add_action( 'admin_notices', [ $this, 'admin_notice_minimum_php_version' ] );
return;
}
// Add Plugin actions
// Add widgets categories
add_action( 'elementor/elements/categories_registered', [ $this, 'add_frames_widget_categories' ] );
// Register widgets
add_action( 'elementor/widgets/register', [ $this, 'init_widgets' ] );
// Register controls
add_action( 'elementor/controls/controls_registered', [ $this, 'init_controls' ] );
// Register Widget Styles
add_action( 'elementor/frontend/after_enqueue_styles', [ $this, 'widget_styles' ] );
// Register Widget Scripts
add_action( 'elementor/frontend/after_register_scripts', [ $this, 'widget_scripts' ] );
}
/**
* Admin notice
*
* Warning when the site doesn't have Elementor installed or activated.
*
* @since 1.0.0
*
* @access public
*/
public function admin_notice_missing_main_plugin() {
if ( isset( $_GET['activate'] ) ) unset( $_GET['activate'] );
$message = sprintf(
/* translators: 1: Plugin name 2: Elementor */
esc_html__( '"%1$s" requires "%2$s" to be installed and activated.', 'haru-frames' ),
'<strong>' . esc_html__( 'Haru Frames', 'haru-frames' ) . '</strong>',
'<strong>' . esc_html__( 'Elementor', 'haru-frames' ) . '</strong>'
);
printf( '<div class="notice notice-warning is-dismissible"><p>%1$s</p></div>', $message );
}
/**
* Admin notice
*
* Warning when the site doesn't have a minimum required Elementor version.
*
* @since 1.0.0
*
* @access public
*/
public function admin_notice_minimum_frames_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.', 'haru-frames' ),
'<strong>' . esc_html__( 'Haru Frames', 'haru-frames' ) . '</strong>',
'<strong>' . esc_html__( 'Elementor', 'haru-frames' ) . '</strong>',
self::MINIMUM_ELEMENTOR_VERSION
);
printf( '<div class="notice notice-warning is-dismissible"><p>%1$s</p></div>', $message );
}
/**
* Admin notice
*
* Warning when the site doesn't have a minimum required PHP version.
*
* @since 1.0.0
*
* @access public
*/
public function 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.', 'haru-frames' ),
'<strong>' . esc_html__( 'Haru Frames', 'haru-frames' ) . '</strong>',
'<strong>' . esc_html__( 'PHP', 'haru-frames' ) . '</strong>',
self::MINIMUM_PHP_VERSION
);
printf( '<div class="notice notice-warning is-dismissible"><p>%1$s</p></div>', $message );
}
/**
* Define Constants
*
* Define plugin constants
*
* @since 1.0.0
*
* @access public
*/
public function define() {
if ( ! defined( 'HARU_FRAMES_CORE_DIR' ) ) {
define( 'HARU_FRAMES_CORE_DIR', plugin_dir_path(__FILE__) );
}
if ( ! defined( 'HARU_FRAMES_CORE_URL' ) ) {
define( 'HARU_FRAMES_CORE_URL', plugin_dir_url( __FILE__ ) );
}
if ( ! defined( 'HARU_FRAMES_CORE_FILE' ) ) {
define( 'HARU_FRAMES_CORE_FILE', __FILE__ );
}
if ( ! defined( 'HARU_FRAMES_CORE_NAME' ) ) {
define( 'HARU_FRAMES_CORE_NAME', 'haru-frames' );
}
}
/**
* Include Files
*
* Include plugin files
*
* @since 1.0.0
*
* @access public
*/
public function includes() {
require_once( 'includes/classes/class-haru-helper.php' );
require_once( 'includes/classes/class-haru-controls-helper.php' );
require_once( 'includes/classes/class-haru-templates.php' );
require_once( 'includes/classes/class-haru-ajax-helper.php' );
require_once( 'includes/helper/elementor-icons.php' );
require_once( 'includes/helper/theme-functions.php' );
require_once( 'includes/posttypes/_init.php' );
require_once( 'core/libraries/_init.php' );
require_once( 'includes/maintenance/_init.php' );
require_once( 'includes/wp-widgets/widgets.php' );
// WooCommerce @TODO: check load
require_once( 'includes/term-meta/index.php' ); // Add term meta to product attributes
}
/**
* Add Widgets Categories
*
* Use for Haru Widgets Categories
*
* @since 1.0.0
*
* @access public
*/
function add_frames_widget_categories( $elements_manager ) {
$elements_manager->add_category(
'haru-elements',
[
'title' => esc_html__( 'Haru Elements', 'haru-frames' ),
'icon' => 'fa fa-plug',
]
);
$elements_manager->add_category(
'haru-header-elements',
[
'title' => esc_html__( 'Haru Header Elements', 'haru-frames' ),
'icon' => 'fa fa-plug',
]
);
$elements_manager->add_category(
'haru-footer-elements',
[
'title' => esc_html__( 'Haru Footer Elements', 'haru-frames' ),
'icon' => 'fa fa-plug',
]
);
}
/**
* Init Widgets
*
* Include widgets files and register them
*
* @since 1.0.0
*
* @access public
*/
public function init_widgets() {
// Include Widget files
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/logo.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/logo-footer.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/footer-link.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/footer-text.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/nav-menu.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/nav-menu-popup.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/nav-menu-sidebar.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/nav-menu-template.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/heading.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/contact.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/social.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/video.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/counter.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/button.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/post-featured.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/banner.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/banner-list.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/tabs.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/images-gallery.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/logo-showcase.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/testimonial.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/icon-box.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/accordion.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/google-maps.php' );
// Header Elements
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/search.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/header-contact.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/header-button.php' );
// Menu Elements
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/menu-post.php' );
// Special Frames
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/text-scroll.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/text-list.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/timeline.php' );
// Slideshow
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/romeo-slideshow.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/layla-slideshow.php' );
// Filmmaker Widgets
if ( class_exists( 'Haru_Filmmaker' ) ) {
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/video-isotope.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/video-category.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/video-featured.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/video-creative.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/video-slideshow.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/video-single.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/video-list-slideshow.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/person-category.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/person-featured.php' );
// Menu
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/menu-video.php' );
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/menu-person.php' );
}
// Woo Widgets
if ( class_exists( 'WooCommerce' ) ) {
require_once( HARU_FRAMES_CORE_DIR . '/includes/widgets/woo-cart.php' );
}
// Register widget
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Logo_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Logo_Footer_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Footer_Link_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Footer_Text_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Nav_Menu_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Nav_Menu_Popup_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Nav_Menu_Sidebar_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Nav_Menu_Template_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Heading_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Contact_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Social_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Video_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Counter_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Button_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Post_Featured_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Banner_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Banner_List_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Tabs_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Images_Gallery_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Logo_Showcase_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Testimonial_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Icon_Box_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Accordion_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Google_Maps_Widget() );
// Header
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Search_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Header_Contact_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Header_Button_Widget() );
// Menu
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Menu_Post_Widget() );
// Special Frames
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Text_Scroll_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Text_List_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Timeline_Widget() );
// Slideshow
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Romeo_Slideshow_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Layla_Slideshow_Widget() );
// Filmmaker Widgets
if ( class_exists( 'Haru_Filmmaker' ) ) {
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Video_Isotope_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Video_Category_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Video_Featured_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Video_Creative_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Video_Slideshow_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Video_Single_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Video_List_Slideshow_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Person_Category_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Person_Featured_Widget() );
// Menu
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Menu_Video_Widget() );
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Menu_Person_Widget() );
}
// Woo Widgets
if ( class_exists( 'WooCommerce' ) ) {
\Elementor\Plugin::instance()->widgets_manager->register( new \Haru_Frames\Widgets\Haru_Frames_Woo_Cart_Widget() );
}
}
/**
* Init Controls
*
* Include controls files and register them
*
* @since 1.0.0
*
* @access public
*/
public function init_controls() {
// Include Control files
// require_once( HARU_FRAMES_CORE_DIR . '/includes/controls/test-control.php' );
// Register control
// \Elementor\Plugin::$instance->controls_manager->register_control( 'control-type-', new \Test_Control() );
}
/**
* Widget Styles
*
* Include style files and register them
*
* @since 1.0.0
*
* @access public
*/
public function widget_styles() {
wp_register_style( 'menu-animate', plugins_url( 'assets/lib/animate/animate.min.css', __FILE__ ) );
// wp_register_style( 'menu-animate', get_template_directory_uri() . '/assets/libraries/animate/animate.min.css' );
wp_register_style( 'slick', plugins_url( 'assets/lib/slick/slick.css', __FILE__ ) );
wp_register_style( 'magnific-popup', plugins_url( 'assets/lib/magnific-popup/magnific-popup.css', __FILE__ ) );
wp_register_style( 'flickity', 'https://unpkg.com/flickity@2/dist/flickity.min.css' );
}
/**
* Widget Scripts
*
* Include script files and register them
*
* @since 1.0.0
*
* @access public
*/
public function widget_scripts() {
wp_register_script( 'slick', plugins_url( 'assets/lib/slick/slick.min.js', __FILE__ ) );
wp_register_script( 'isotope', plugins_url( 'assets/lib/isotope/isotope.pkgd.min.js', __FILE__ ) );
wp_register_script( 'magnific-popup', plugins_url( 'assets/lib/magnific-popup/jquery.magnific-popup.min.js', __FILE__ ) );
wp_register_script( 'flickity', 'https://unpkg.com/flickity@2.2.1/dist/flickity.pkgd.min.js' );
}
/**
* Admin Assets
*
* Include assets files for admin
*
* @since 1.0.0
*
* @access public
*/
public function admin_assets() {
wp_enqueue_style( 'haru-frames', plugins_url( HARU_FRAMES_CORE_NAME . '/assets/css/admin.css' ), array(), false, 'all' );
wp_enqueue_script( 'haru-frames', plugins_url( HARU_FRAMES_CORE_NAME . '/assets/js/admin.js' ), array( 'jquery' ), false, false );
// Load Filmmaker in Preview Mode
if ( class_exists( 'Haru_Filmmaker' ) ) {
// wp_register_script( 'haru-frames', WP_PLUGIN_URL . ( '/haru-filmmaker/assets/js/haru-filmmaker.js' ), array( 'jquery' ), '', true );
// if ( \Elementor\Plugin::$instance->editor->is_edit_mode() || \Elementor\Plugin::$instance->preview->is_preview_mode() ) {
// wp_register_script( 'haru-frames', plugins_url( 'assets/js/frames.js', __FILE__ ), array( 'jquery' ), '', true );
// }
}
}
}
}
Haru_Frames::instance();