PluginProbe
Ultimate Post Kit – Elementor Post Grid, Post Carousel, Post Slider & Blog Layout Widgets / trunk
Ultimate Post Kit – Elementor Post Grid, Post Carousel, Post Slider & Blog Layout Widgets vtrunk
4.5.4 4.2.1 4.2.2 4.2.3 4.5.0 4.5.2 4.5.3 4.2.0 4.1.18 4.1.17 4.1.16 4.1.15 4.1.14 4.1.13 4.1.12 4.1.11 4.1.10 4.1.9 4.1.8 4.0.9 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 All 146 releases
ultimate-post-kit / base / ultimate-post-kit-module-base.php

ultimate-post-kit-module-base.php in Ultimate Post Kit – Elementor Post Grid, Post Carousel, Post Slider & Blog Layout Widgets trunk, at base/ultimate-post-kit-module-base.php

83 lines 1.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace UltimatePostKit\Base;
4
5 use Elementor\Core\Base\Module;
6 use Elementor\Plugin;
7 use UltimatePostKit\Ultimate_Post_Kit_Loader;
8
9 if (!defined('ABSPATH')) {
10 exit; // Exit if accessed directly
11 }
12
13 abstract class Ultimate_Post_Kit_Module_Base extends Module {
14
15 public function get_widgets() {
16 return [];
17 }
18
19 public function __construct() {
20 add_action('elementor/widgets/register', [$this, 'init_widgets']);
21 }
22
23 public function init_widgets() {
24
25 $widget_manager = Ultimate_Post_Kit_Loader::elementor()->widgets_manager;
26
27 foreach ($this->get_widgets() as $widget) {
28 $class_name = $this->get_reflection()->getNamespaceName() . '\Widgets\\' . $widget;
29 $widget_manager->register(new $class_name());
30 }
31 }
32
33 private function find_element_recursive($elements, $form_id) {
34
35 foreach ($elements as $element) {
36 if ($form_id === $element['id']) {
37 return $element;
38 }
39
40 if (!empty($element['elements'])) {
41 $element = $this->find_element_recursive($element['elements'], $form_id);
42
43 if ($element) {
44 return $element;
45 }
46 }
47 }
48
49 return false;
50 }
51
52 /**
53 * @param $post_id | page id or post id
54 * @param $widget_id | elementor widget ids
55 */
56 public function get_widget_settings($post_id, $widget_id) {
57 if (!$post_id || !$widget_id) {
58 return "Invalid request";
59 }
60
61 $elementor = Plugin::$instance;
62 $pageMeta = $elementor->documents->get($post_id);
63
64 if (!$pageMeta) {
65 return "Invalid Post or Page ID";
66 }
67 $metaData = $pageMeta->get_elements_data();
68 if (!$metaData) {
69 return "Page page is not under elementor";
70 }
71
72 $widget_data = $this->find_element_recursive($metaData, $widget_id);
73 $settings = [];
74
75 if (is_array($widget_data)) {
76 $widget = $elementor->elements_manager->create_element_instance($widget_data);
77 $settings = $widget->get_settings();
78 }
79
80 return $settings;
81 }
82 }
83