PluginProbe
Ultimate Store Kit – Store Builder Addons for Elementor, WooCommerce Store Builder, EDD Store Builder / 3.0.2
Ultimate Store Kit – Store Builder Addons for Elementor, WooCommerce Store Builder, EDD Store Builder v3.0.2
3.1.4 3.0.8 3.0.9 3.1.0 3.1.2 3.1.3 3.0.7 3.0.5 3.0.4 3.0.3 3.0.2 trunk 1.5.0 1.5.1 1.5.2 1.6.1 1.6.2 1.6.3 1.6.4 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 All 93 releases
ultimate-store-kit / base / ultimate-store-kit-module-base.php

ultimate-store-kit-module-base.php in Ultimate Store Kit – Store Builder Addons for Elementor, WooCommerce Store Builder, EDD Store Builder 3.0.2, at base/ultimate-store-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 UltimateStoreKit\Base;
4
5 use Elementor\Core\Base\Module;
6 use Elementor\Plugin;
7 use UltimateStoreKit\Ultimate_Store_Kit_Loader;
8
9 if (!defined('ABSPATH')) {
10 exit; // Exit if accessed directly
11 }
12
13 abstract class Ultimate_Store_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_Store_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