PluginProbe
ReviewX – Multi-Criteria Reviews for WooCommerce with Google Reviews & Schema / trunk
ReviewX – Multi-Criteria Reviews for WooCommerce with Google Reviews & Schema vtrunk
2.5.1 2.5.0 2.4.1 2.4.0 2.3.11 2.3.10 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 All 143 releases
reviewx / app / Rest / Controllers / SettingController.php

SettingController.php in ReviewX – Multi-Criteria Reviews for WooCommerce with Google Reviews & Schema trunk, at app/Rest/Controllers/SettingController.php

214 lines 9.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace ReviewX\Rest\Controllers;
4
5 \defined("ABSPATH") || exit;
6 use ReviewX\Services\SettingService;
7 use ReviewX\Utilities\Auth\Client;
8 use ReviewX\Utilities\Helper;
9 use Throwable;
10 use ReviewX\WPDrill\Response;
11 class SettingController
12 {
13 protected SettingService $settingService;
14 public function __construct()
15 {
16 $this->settingService = new SettingService();
17 }
18 public function getApiReviewSettingsOnSync($cpt_type = 'product') : array
19 {
20 $data = ["cpt_type" => $cpt_type];
21 $response = $this->settingService->getApiReviewSettings($data);
22 return \json_decode($response, \true);
23 }
24 public function getApiReviewSettings($request) : Response
25 {
26 $cpt_type = \strtolower($request->get_param('cpt_type')) ? \strtolower($request->get_param('cpt_type')) : \false;
27 $data = ["cpt_type" => $cpt_type];
28 $response = $this->settingService->getApiReviewSettings($data);
29 return Helper::getApiResponse($response);
30 }
31 public function wooCommerceVerificationRating()
32 {
33 $response = $this->settingService->wooCommerceVerificationRating();
34 return $response;
35 }
36 public function wooVerificationRatingRequired()
37 {
38 $response = $this->settingService->wooVerificationRatingRequired();
39 return $response;
40 }
41 public function userSettingsAccess($request)
42 {
43 $data = $request->get_param('user_access');
44 if (\is_array($data)) {
45 \update_option('__user_setting_access', \json_encode($data));
46 }
47 }
48 public function saveApiReviewSettings($request)
49 {
50 try {
51 $request_params = $request->get_params();
52 $response = $this->settingService->saveApiReviewSettings($request_params);
53 if ($response->getStatusCode() === Response::HTTP_OK) {
54 // Update Review Settings
55 $review_settings = $response->getApiData()['review_settings'];
56 $post_type = $request['post_type'] ?? 'product';
57 if (!isset($request_params['multicriteria']) || !\is_array($request_params['multicriteria']) || $request_params['multicriteria'] === []) {
58 $review_settings = $this->settingService->preserveStoredMulticriteria($review_settings, $post_type, \true);
59 }
60 $this->settingService->syncWooCommerceOptionsFromReviewSettings($review_settings, $post_type);
61 $this->settingService->updateReviewSettings($review_settings, $post_type);
62 }
63 return Helper::saasResponse($response);
64 } catch (Throwable $e) {
65 return Helper::rvxApi(['error' => $e->getMessage()])->fails('Review settings saved failed', $e->getCode());
66 }
67 }
68 public function wooCommerceVerificationRatingUpdate($request)
69 {
70 try {
71 $response = $this->settingService->wooCommerceVerificationRatingUpdate($request->get_params());
72 return $response;
73 } catch (Throwable $e) {
74 return Helper::rvxApi(['error' => $e->getMessage()])->fails('Review settings saved failed', $e->getCode());
75 }
76 }
77 public function wooVerificationRating($request)
78 {
79 try {
80 $response = $this->settingService->wooVerificationRating($request->get_params());
81 return $response;
82 } catch (Throwable $e) {
83 return Helper::rvxApi(['error' => $e->getMessage()])->fails('Review settings saved failed', $e->getCode());
84 }
85 }
86 public function getApiWidgetSettingsOnSync() : array
87 {
88 $response = $this->settingService->getApiWidgetSettings();
89 return \json_decode($response, \true);
90 }
91 public function getApiWidgetSettings() : Response
92 {
93 $response = $this->settingService->getApiWidgetSettings();
94 return Helper::getApiResponse($response);
95 }
96 public function userCurrentPlan()
97 {
98 $response = $this->settingService->userCurrentPlan();
99 return Helper::getApiResponse($response);
100 }
101 public function saveApiWidgetSettings($request)
102 {
103 try {
104 $response = $this->settingService->saveWidgetSettings($request->get_params());
105 if ($response->getStatusCode() === Response::HTTP_OK) {
106 // Update Widget Settings
107 $widget_settings = $response->getApiData()['widget_settings'];
108 $this->settingService->updateWidgetSettings($widget_settings);
109 }
110 return Helper::saasResponse($response);
111 } catch (Throwable $e) {
112 return Helper::rvxApi(['error' => $e->getMessage()])->fails('Widget settings saved failed', $e->getCode());
113 }
114 }
115 public function getApiGeneralSettings()
116 {
117 $response = $this->settingService->getApiGeneralSettings();
118 return Helper::getApiResponse($response);
119 }
120 public function saveApiGeneralSettings($request)
121 {
122 try {
123 $response = $this->settingService->saveApiGeneralSettings($request->get_params());
124 return Helper::saasResponse($response);
125 } catch (Throwable $e) {
126 return Helper::rvxApi(['error' => $e->getMessage()])->fails('General settings saved failed', $e->getCode());
127 }
128 }
129 public function getApiSecuritySettings()
130 {
131 $response = $this->settingService->getApiSecuritySettings();
132 return Helper::getApiResponse($response);
133 }
134 public function saveApiSecuritySettings($request)
135 {
136 try {
137 $response = $this->settingService->saveApiSecuritySettings($request->get_params());
138 if ($response->getStatusCode() === Response::HTTP_OK) {
139 // Update local security settings cache
140 $security_settings = $response->getApiData()['security_settings'] ?? [];
141 if (!empty($security_settings)) {
142 $all_settings_json = \get_option('rvx_all_setting_data', '{}');
143 $all_settings = \json_decode($all_settings_json, \true) ?: [];
144 $all_settings['security'] = $security_settings;
145 \update_option('rvx_all_setting_data', \json_encode($all_settings));
146 }
147 }
148 return Helper::saasResponse($response);
149 } catch (Throwable $e) {
150 return Helper::rvxApi(['error' => $e->getMessage()])->fails('Security settings saved failed', $e->getCode());
151 }
152 }
153 public function getSmtpSettings()
154 {
155 $response = $this->settingService->getSmtpSettings();
156 return Helper::getApiResponse($response);
157 }
158 public function saveSmtpSettings($request)
159 {
160 try {
161 $response = $this->settingService->saveSmtpSettings($request->get_params());
162 return Helper::saasResponse($response);
163 } catch (Throwable $e) {
164 return Helper::rvxApi(['error' => $e->getMessage()])->fails('SMTP settings saved failed', $e->getCode());
165 }
166 }
167 public function testSmtpSettings($request)
168 {
169 try {
170 $response = $this->settingService->testSmtpSettings($request->get_params());
171 return Helper::saasResponse($response);
172 } catch (Throwable $e) {
173 return Helper::rvxApi(['error' => $e->getMessage()])->fails('SMTP connection test failed', $e->getCode());
174 }
175 }
176 public function getSettingsData()
177 {
178 $data = ["review_settings" => ["reviews" => ["review_submission_policy" => ["options" => ["anyone" => \true, "verified_customer" => \false]], "show_verified_badge" => \false, "review_eligibility" => ["pending_payment" => \false, "processing" => \false, "on_hold" => \false, "completed_payment" => \true, "cancelled" => \false, "refunded" => \false, "failed" => \false, "draft" => \false], "auto_approve_reviews" => \true, "show_reviewer_name" => \true, "show_reviewer_country" => \true, "enable_likes_dislikes" => ["enabled" => \true, "options" => ["allow_likes" => \true, "allow_dislikes" => \false]], "allow_review_sharing" => \true, "allow_review_titles" => \true, "photo_reviews_allowed" => \true, "video_reviews_allowed" => \true, "allow_recommendations" => \true, "anonymous_reviews_allowed" => \true, "show_consent_checkbox" => \true, "allow_multiple_reviews" => \true, "multi_criteria_reviews" => ["enabled" => \true, "criteria" => ["Quality", "Price", "Size"]], "recaptcha" => ["enabled" => \true, "type" => "math"], "per_page_reviews" => 10]]];
179 $json_data = \json_encode($data);
180 \update_option('your_option_name', $json_data);
181 }
182 public function dataSyncStatus()
183 {
184 return ['sync' => Client::getSync() ? \true : \false];
185 }
186 public function allSettingsSave($request)
187 {
188 try {
189 $response = $this->settingService->allSettingsSave($request->get_params());
190 return Helper::saasResponse($response);
191 } catch (Throwable $e) {
192 return Helper::rvxApi(['error' => $e->getMessage()])->fails('General settings saved failed', $e->getCode());
193 }
194 }
195 public function removeCredentials($request)
196 {
197 try {
198 $response = $this->settingService->removeCredentials($request->get_headers());
199 return $response;
200 } catch (Throwable $e) {
201 return Helper::rvxApi(['error' => $e->getMessage()])->fails('Sites Table Data deletion failed', $e->getCode());
202 }
203 }
204 public function updateSiteData($request)
205 {
206 try {
207 $response = $this->settingService->updateSiteData($request->get_headers());
208 return $response;
209 } catch (Throwable $e) {
210 return Helper::rvxApi(['error' => $e->getMessage()])->fails('Sites Table Data update failed', $e->getCode());
211 }
212 }
213 }
214