PluginProbe ʕ •ᴥ•ʔ
ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution / 3.0.0
ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution v3.0.0
4.9.1 4.9.0 2.0.0 2.1.0 2.2.0 2.2.1 2.2.2 2.3.0 2.4.0 2.5.0 2.5.1 3.0.0 3.1.0 3.1.1 4.0.0 4.0.1 4.1.0 4.1.1 4.2.0 4.2.1 4.3.0 4.3.1 4.4.0 4.5.0 4.5.1 4.6.0 4.6.1 4.6.2 4.6.3 4.6.4 4.6.5 4.6.6 4.6.7 4.6.8 4.6.9 4.7.0 4.7.1 4.7.2 4.7.3 4.7.4 4.7.5 4.7.6 4.7.7 4.7.8 4.7.9 4.8.0 4.8.1 4.8.2 4.8.3 4.8.4 4.8.5 4.8.6 4.8.7 4.8.8 4.8.9 trunk 0.1.2-beta 0.1.3-beta 0.1.4-beta 1.0.0 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.2.1 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.5.0 1.5.1 1.6.0 1.6.1 1.7.0 1.8.0 1.8.1 1.9.0
shopengine / core / settings / api.php
shopengine / core / settings Last commit date
screens 3 years ago action.php 3 years ago api.php 3 years ago base.php 3 years ago plugin-status.php 3 years ago
api.php
178 lines
1 <?php
2 namespace ShopEngine\Core\Settings;
3
4 use ShopEngine\Core\Onboard\Onboard;
5 use ShopEngine\Core\Register\Model;
6
7 defined('ABSPATH') || exit;
8
9 /**
10 * Class Api
11 *
12 * @package ShopEngine\Core\Builders
13 */
14 class Api extends \ShopEngine\Base\Api {
15
16 public function config() {
17
18 $this->prefix = 'settings';
19 $this->param = "";
20 }
21
22
23 public function post_save() {
24
25 $data = json_decode($this->request->get_body(), true);
26
27 if(!empty($data['widgets'])) {
28
29 Model::source('settings')->set_option('widgets', $data['widgets']);
30 }
31
32 if(!empty($data['modules'])) {
33
34 Model::source('settings')->set_option('modules', $data['modules']);
35 }
36
37 if(!empty($data['userdata'])) {
38
39 Model::source('settings')->set_option('userdata', $data['userdata']);
40 }
41
42 do_action('shopengine/core/settings/on_save', $data);
43
44 return [
45 'status' => 'success',
46 'message' => esc_html__('settings saved successfully.', 'shopengine'),
47 ];
48 }
49
50
51 public function get_fields() {
52 $fields = array_merge(
53 Action::instance()->get_fields(),
54 ['sample_designs' => \ShopEngine\Core\Sample_Designs\Base::instance()->get_designs()]
55 );
56
57 return apply_filters('shopengine/core/settings/return_fields', $fields);
58 }
59
60 public function get_data() {
61 $data = Action::instance()->get_data();
62
63 return apply_filters('shopengine/core/settings/return_data', $data);
64 }
65
66 public function get_our_others_plugin_install_api() {
67 $plugins = [
68 'elementskit-lite' => 'elementskit-lite.php',
69 'metform' => 'metform.php',
70 'wp-social' => 'wp-social.php',
71 'wp-ultimate-review' => 'wp-ultimate-review.php',
72 'wp-fundraising-donation' => 'wp-fundraising-donation.php',
73 'getgenie' => 'getgenie.php'
74 ];
75
76 $plugin_status = Plugin_Status::instance();
77 $plugins_data = [];
78
79 foreach($plugins as $slug => $file) {
80 $plugins_data[$slug] = $plugin_status->get_status($slug.'/'.$file);
81 }
82 return $plugins_data;
83 }
84
85 public function post_save_onboard() {
86 $data = $this->request->get_params();
87 $onboard = new Onboard();
88 return $onboard->submit($data);
89 }
90
91 public function get_categories() {
92
93 $data = $this->request->get_params();
94
95 $query_args = [
96 'taxonomy' => ['product_cat'], // taxonomy name
97 'orderby' => 'name',
98 'order' => 'DESC',
99 'hide_empty' => false,
100 'number' => 10
101 ];
102
103 if(isset($data['only_parent'])){
104 $query_args['parent'] = 0;
105 }
106
107 if(isset($data['ids'])){
108 $ids = explode(',', $data['ids']);
109 $query_args['include'] = $ids;
110 }
111 if(isset($data['s'])){
112 $query_args['name__like'] = $data['s'];
113 }
114
115 $product_cat = get_terms($query_args);
116 $product_categories = [];
117 foreach($product_cat as $category) {
118 $product_categories[$category->term_id] = $category->name;
119 }
120 return [
121 'status' => 'success',
122 'result' => $product_categories,
123 'message' => esc_html__('categories fetched', 'shopengine')
124 ];
125 }
126
127 public function get_posts() {
128
129 $data = $this->request->get_params();
130
131 if(empty($data['post_type'])) {
132 return [
133 'status' => 'failed'
134 ];
135 }
136
137 $search = isset($data['s']) ? $data['s'] : false;
138 $post_status = !empty($data['post_status']) ? $data['post_status'] : '';
139
140 global $wpdb;
141
142 $params = [
143 sanitize_text_field($data['post_type'])
144 ];
145
146 $post_status_array = ['publish'];
147 if($post_status === 'draft'){
148 $post_status_array[] = 'draft';
149 }
150
151 $escaped = array();
152 foreach($post_status_array as $status_item){
153 $escaped[] = $wpdb->prepare('%s', sanitize_text_field($status_item));
154 }
155 $post_status = implode(',', $escaped);
156
157 $post_search_statement = '';
158 if(!empty($search)){
159 $post_search_statement = 'AND post_title LIKE %s';
160 array_push($params, '%'. $wpdb->esc_like( $search ) .'%');
161 }
162
163 $posts = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $wpdb->posts WHERE post_type=%s AND post_status IN ($post_status) $post_search_statement LIMIT 10", $params) );
164
165 $post_items = [];
166 foreach($posts as $post) {
167 array_push($post_items, ['id' => $post->ID, 'text' => $post->post_title]);
168 }
169
170 return [
171 'status' => 'success',
172 'results' => $post_items,
173 ];
174 }
175 }
176
177
178