PluginProbe ʕ •ᴥ•ʔ
ElementsKit Elementor Addons – Advanced Widgets & Templates Addons for Elementor / 4.0.0
ElementsKit Elementor Addons – Advanced Widgets & Templates Addons for Elementor v4.0.0
4.0.2 4.0.1 4.0.0 3.10.02 3.10.01 3.9.10 3.9.9 3.9.8 3.9.7 3.9.5 3.9.6 3.9.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.3.0 2.3.1 2.3.1.1 2.3.2 2.3.3 2.3.4 2.3.5 2.3.6 2.3.7 2.4.0 2.5.0 2.5.1 2.5.10 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.8.5 2.8.6 2.8.7 2.8.8 2.9.0 2.9.1 2.9.2 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.2.0 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 3.3.0 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.3.8 3.3.9 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.6 3.4.7 3.4.8 3.4.9 3.5.0 3.5.1 3.5.2 3.5.3 3.5.4 3.5.5 3.5.6 3.6.0 3.6.1 3.7.0 3.7.1 3.7.2 3.7.3 3.7.4 3.7.5 3.7.6 3.7.7 3.7.8 3.7.9 3.8.0 3.8.1 3.8.2 3.9.0 3.9.1 3.9.2 trunk 1.2.6 1.2.7 1.2.9 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.7 1.4.8 1.4.9 1.5.0 1.5.1 1.5.10 1.5.11 1.5.12 1.5.2 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 2.0.0 2.0.1 2.0.10 2.0.11 2.0.12 2.0.13 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.0.9.1 2.0.9.2 2.0.9.3
elementskit-lite / modules / widget-builder / init.php
elementskit-lite / modules / widget-builder Last commit date
api 3 weeks ago assets 3 weeks ago controls 3 weeks ago fonts 5 years ago views 4 years ago cpt.php 4 years ago init.php 2 years ago live-action.php 4 months ago widget-file.php 4 years ago
init.php
137 lines
1 <?php
2 namespace ElementsKit_Lite\Modules\Widget_Builder;
3
4 use ElementsKit_Lite\Modules\Widget_Builder\Controls\Widget_Writer;
5
6 defined( 'ABSPATH' ) || exit;
7
8 class Init {
9 private $dir;
10 private $url;
11
12 public function __construct() {
13
14 // get current directory path
15 $this->dir = dirname( __FILE__ ) . '/';
16
17 // get current module's url
18 $this->url = \ElementsKit_Lite::plugin_url() . 'modules/widget-builder/';
19
20 // include all necessary files
21 $this->include_files();
22
23 //hooks
24 add_action( 'admin_enqueue_scripts', array( $this, 'load_scripts' ) );
25 add_action( 'add_meta_boxes', array( $this, 'register_meta_boxes' ) );
26 // add_action('elementor/init', [$this, 'elementor_widget_category']);
27 add_action( 'elementor/widgets/register', array( $this, 'register_widgets' ) );
28 add_action( 'elementor/editor/before_enqueue_scripts', array( $this, 'editor_css' ) );
29 add_action( 'elementor/frontend/after_enqueue_styles', array( $this, 'frontend_css' ) );
30
31 add_action( 'admin_init', array( $this, 'on_empty_trash_delete_files' ) );
32 //add_action('wp_trash_post', [$this, 'on_trash_delete_files']);
33
34 // calling necessary classess
35 new Api\Common();
36 new Cpt();
37 new Live_Action();
38 }
39
40 public function include_files() {
41 // include $this->dir . 'extend-controls.php';
42 }
43
44 public function register_widgets( $widgets_manager ) {
45 $widgets = get_posts(
46 array(
47 'post_type' => 'elementskit_widget',
48 'post_status' => 'publish',
49 'numberposts' => -1,
50 )
51 );
52
53 $upload = wp_upload_dir();
54 foreach ( $widgets as $widget ) {
55 $slug = 'ekit_wb_' . $widget->ID;
56 $dir = $upload['basedir'] . '/elementskit/custom_widgets/' . $slug . '/';
57 $file = $dir . 'widget.php';
58 $class_name = '\Elementor\Ekit_Wb_' . $widget->ID;
59
60 if ( file_exists( $file ) ) {
61 include $file;
62 $widgets_manager->register( new $class_name() );
63 }
64 }
65 }
66
67 public function elementor_widget_category( $widgets_manager ) {
68 $widgets_manager->register(
69 'elementskit-lite',
70 array(
71 'title' => esc_html__( 'ElementsKit Custom', 'elementskit-lite' ),
72 'icon' => 'fa fa-plug',
73 ),
74 1
75 );
76 }
77
78 public function frontend_css() {
79 if ( ! is_singular( 'elementskit_widget' ) ) {
80 return;
81 }
82
83 wp_enqueue_style( 'elementskit-widget-builder-common-css', $this->url . 'assets/css/ekit-widget-builder-common.css', array(), \ElementsKit_Lite::version() );
84 }
85
86 public function editor_css() {
87 $screen = get_current_screen();
88
89 if ( $screen->id != 'elementskit_widget' ) {
90 return;
91 }
92
93 wp_enqueue_style( 'elementskit-widget-builder-common-css', $this->url . 'assets/css/ekit-widget-builder-common.css', array(), \ElementsKit_Lite::version() );
94 }
95
96 public function load_scripts() {
97 $screen = get_current_screen();
98
99 if ( $screen->id != 'elementskit_widget' ) {
100 return;
101 }
102
103 wp_enqueue_style( 'google-fonts-roboto', 'https://fonts.googleapis.com/css?family=Roboto:300,400,500,700', array(), null ); // PHPCS:ignore WordPress.WP.EnqueuedResourceParameters.MissingVersion
104 wp_enqueue_style( 'font-awesome', ELEMENTOR_ASSETS_URL . 'lib/font-awesome/css/all.min.css', array(), null ); // PHPCS:ignore WordPress.WP.EnqueuedResourceParameters.MissingVersion
105 wp_enqueue_style( 'elementskit-widget-builder-editor-css', $this->url . 'assets/css/ekit-widget-builder-editor.css', array(), \ElementsKit_Lite::version() );
106 wp_enqueue_style( 'elementskit-widget-builder-common-css', $this->url . 'assets/css/ekit-widget-builder-common.css', array(), \ElementsKit_Lite::version() );
107
108 wp_enqueue_script( 'elementskit-widget-builder-editor-js', $this->url . 'assets/js/ekit-widget-builder-editor.js', array(), \ElementsKit_Lite::version(), true );
109 }
110
111 public function register_meta_boxes() {
112 add_meta_box( 'elementskit-widget-builder-markup', __( 'Builder', 'elementskit-lite' ), array( $this, 'metabox_display_callback' ), 'elementskit_widget' );
113 }
114
115 public function metabox_display_callback( $post ) {
116 include $this->dir . 'views/builder.php';
117 }
118
119 public function on_empty_trash_delete_files() {
120
121 if ( !empty( $_GET['post'] ) && !empty($_GET['_wpnonce']) && wp_verify_nonce( sanitize_text_field( wp_unslash( $_GET['_wpnonce'] ) ), 'delete-post_' . intval( $_GET['post'] ) ) ) {
122
123 $post_id = intval( $_GET['post'] );
124 $post_type = get_post_type( $post_id );
125
126 if ( $post_type == 'elementskit_widget' ) {
127
128 Widget_Writer::delete_widget( $post_id );
129 }
130 } elseif (
131 isset( $_GET['post_type'] ) && $_GET['post_type'] == 'elementskit_widget' &&
132 isset( $_GET['action'] ) && $_GET['action'] == -1 &&
133 isset( $_GET['post_status'] ) && $_GET['post_status'] == 'trash' ) {
134 }
135 }
136 }
137