widgets_manager; if ( !$widgets_manager ) { return; } $this->register_widgets( $widgets_manager ); } public function add_category( $elements_manager ) { $elements_manager->add_category( 'plugetune', array( 'title' => __( 'PlugeTune', 'plugetune' ), 'icon' => 'eicon-video-camera', ) ); } public function register_widgets( $widgets_manager ) { $video_grid_file = PLUGETUNE_PATH . 'includes/elementor/widgets/class-plugetune-video-grid-widget.php'; if ( file_exists( $video_grid_file ) ) { require_once $video_grid_file; if ( class_exists( 'PlugeTune_Video_Grid_Widget' ) ) { $widgets_manager->register( new \PlugeTune_Video_Grid_Widget() ); } } } public function enqueue_editor_assets() { wp_enqueue_style( 'plugetune-elementor-editor', PLUGETUNE_URL . 'assets/css/plugetune_elementor-editor.css', array(), PLUGETUNE_VERSION ); wp_enqueue_script( 'plugetune-elementor-editor', PLUGETUNE_URL . 'assets/js/plugetune_elementor-editor.js', array('jquery', 'elementor-frontend'), PLUGETUNE_VERSION, true ); } public function enqueue_preview_assets() { wp_enqueue_style( 'plugetune-video-grid', PLUGETUNE_URL . 'assets/css/plugetune_video-grid.css', array(), PLUGETUNE_VERSION ); wp_enqueue_style( 'font-awesome', PLUGETUNE_URL . 'assets/vendor/font-awesome/css/all.min.css', array(), '6.4.0' ); } public function enqueue_frontend_assets() { if ( is_admin() ) { return; } if ( !$this->has_plugetune_content() ) { return; } wp_enqueue_style( 'plugetune-video-grid', PLUGETUNE_URL . 'assets/css/plugetune_video-grid.css', array(), PLUGETUNE_VERSION ); wp_enqueue_style( 'font-awesome', PLUGETUNE_URL . 'assets/vendor/font-awesome/css/all.min.css', array(), '6.4.0' ); wp_enqueue_style( 'font-awesome-5', PLUGETUNE_URL . 'assets/vendor/font-awesome/css/v5-font-face.min.css', array(), '6.4.0' ); } private function has_plugetune_content() { global $post; if ( $post && has_shortcode( $post->post_content, 'plugetune_grid' ) ) { return true; } if ( $post && class_exists( '\\Elementor\\Plugin' ) ) { $elementor = \Elementor\Plugin::instance(); if ( $elementor->documents ) { try { $document = $elementor->documents->get( $post->ID ); if ( $document ) { $content = $document->get_content(); if ( false !== strpos( $content, 'plugetune_video_grid' ) || false !== strpos( $content, 'plugetune_slider_post_grid' ) ) { return true; } } } catch ( Exception $e ) { return false; } } } return false; } } PlugeTune_Elementor_Integration::get_instance();