PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 3.0.3
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v3.0.3
4.4.2 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.3 4.2.2 4.2.1 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.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.11.1 1.11.2 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.9.0 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2.0.0 2.0.1 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.10.0 2.10.1 2.11.0 2.11.1 2.11.2 2.11.3 2.11.4 2.12.0 2.13.0 2.14.0 2.14.1 2.15.0 2.15.1 2.16.0 2.16.1 2.16.2 2.16.3 2.17.0 2.17.1 2.17.2 2.18.0 2.19.0 2.19.2 2.19.3 2.19.4 2.2.0 2.2.1 2.20.0 2.20.1 2.20.2 2.20.3 2.20.4 2.20.5 2.20.6 2.21.0 2.22.0 2.22.1 2.23.0 2.24.0 2.25.0 2.25.1 2.25.2 2.26.0 2.27.0 2.27.1 2.28.0 2.29.0 2.29.1 2.29.2 2.29.3 2.29.4 2.3.0 2.3.1 2.30.0 2.31.0 2.31.1 2.31.2 2.31.3 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.40.0 2.40.1 2.5.0 2.5.1 2.5.2 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.9.0 3.0.0 3.0.0-RC1 3.0.0-RC2 3.0.0-beta1 3.0.0-beta2 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.10.0 3.10.1 3.11.0 3.12.0 3.13.0 3.13.1 3.13.2 3.13.3 3.13.4 3.14.0 3.15.0 3.15.1 3.15.2 3.15.3 3.15.4 3.15.5 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.16.6 3.16.7 3.16.8 3.17.0 3.17.1 3.17.2 3.17.3 3.17.4 3.17.5 3.17.6 3.18.0 3.19.0 3.19.1 3.19.2 3.2.0 3.2.1 3.2.2 3.20.0 3.20.1 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 4.0.0 4.0.1 4.0.2 4.0.3 trunk 4.1.0 0.2.19.1 4.1.1 1.0.0 4.2.0 1.0.1 1.0.2
surecart / app / src / Settings / SettingService.php
surecart / app / src / Settings Last commit date
RegisterSettingService.php 3 years ago SettingService.php 1 year ago SettingsServiceProvider.php 3 years ago
SettingService.php
291 lines
1 <?php
2
3 namespace SureCart\Settings;
4
5 use SureCart\WordPress\RecaptchaValidationService;
6 use SureCart\Routing\PermalinksSettingsService;
7
8 /**
9 * A service for registering settings.
10 */
11 class SettingService {
12 /**
13 * Boostrap settings.
14 *
15 * @return void
16 */
17 public function bootstrap() {
18 $this->register(
19 'surecart',
20 'theme',
21 [
22 'type' => 'string',
23 'show_in_rest' => true,
24 'sanitize_callback' => 'sanitize_text_field',
25 'default' => 'light',
26 ]
27 );
28 $this->register(
29 'surecart',
30 'auto_sync_user_to_customer',
31 [
32 'type' => 'boolean',
33 'show_in_rest' => true,
34 'sanitize_callback' => 'boolval',
35 'default' => false,
36 ]
37 );
38 $this->register(
39 'surecart',
40 'honeypot_enabled',
41 [
42 'type' => 'boolean',
43 'show_in_rest' => true,
44 'sanitize_callback' => 'boolval',
45 'default' => true,
46 ]
47 );
48 $this->register(
49 'surecart',
50 'recaptcha_enabled',
51 [
52 'type' => 'boolean',
53 'show_in_rest' => true,
54 'sanitize_callback' => 'boolval',
55 ]
56 );
57 $this->register(
58 'surecart',
59 'recaptcha_site_key',
60 [
61 'type' => 'string',
62 'show_in_rest' => true,
63 'sanitize_callback' => 'sanitize_text_field',
64 ]
65 );
66 $this->register(
67 'surecart',
68 'recaptcha_secret_key',
69 [
70 'type' => 'string',
71 'show_in_rest' => true,
72 'sanitize_callback' => 'sanitize_text_field',
73 ]
74 );
75 $this->register(
76 'surecart',
77 'recaptcha_min_score',
78 [
79 'type' => 'number',
80 'show_in_rest' => true,
81 'default' => 0.5,
82 'sanitize_callback' => 'sanitize_text_field',
83 ]
84 );
85 $this->register(
86 'surecart',
87 'load_stripe_js',
88 [
89 'type' => 'boolean',
90 'show_in_rest' => true,
91 'sanitize_callback' => 'boolval',
92 ]
93 );
94 $this->register(
95 'surecart',
96 'tracking_confirmation',
97 [
98 'type' => 'boolean',
99 'show_in_rest' => true,
100 'sanitize_callback' => 'boolval',
101 ]
102 );
103 $this->register(
104 'surecart',
105 'tracking_confirmation_message',
106 [
107 'type' => 'string',
108 'show_in_rest' => true,
109 'default' => esc_html__( 'Your email and cart are saved so we can send email reminders about this order.', 'surecart' ),
110 'sanitize_callback' => 'sanitize_text_field',
111 ]
112 );
113 $this->register(
114 'surecart',
115 'buy_link_logo_width',
116 [
117 'type' => 'string',
118 'show_in_rest' => true,
119 'default' => '180px',
120 'sanitize_callback' => 'sanitize_text_field',
121 ]
122 );
123 $this->register(
124 'surecart',
125 'cart_menu_alignment',
126 [
127 'type' => 'string',
128 'show_in_rest' => true,
129 'sanitize_callback' => 'sanitize_text_field',
130 'default' => 'right',
131 ]
132 );
133 $this->register(
134 'surecart',
135 'cart_menu_always_shown',
136 [
137 'type' => 'boolean',
138 'show_in_rest' => true,
139 'sanitize_callback' => 'boolval',
140 'default' => true,
141 ]
142 );
143 $this->register(
144 'surecart',
145 'cart_menu_selected_ids',
146 [
147 'type' => 'array',
148 'items' => 'integer',
149 'show_in_rest' => [
150 'schema' => [
151 'type' => 'array',
152 'items' => [
153 'type' => 'integer',
154 ],
155 ],
156 ],
157 ]
158 );
159 $this->register(
160 'surecart',
161 'cart_icon',
162 [
163 'type' => 'string',
164 'show_in_rest' => true,
165 'sanitize_callback' => 'sanitize_text_field',
166 'default' => 'shopping-bag', // shopping-bag, shopping-cart.
167 ]
168 );
169 $this->register(
170 'surecart',
171 'cart_icon_type',
172 [
173 'type' => 'string',
174 'show_in_rest' => true,
175 'sanitize_callback' => 'sanitize_text_field',
176 'default' => 'floating_icon', // both, floating_icon, menu_icon.
177 ]
178 );
179 $this->register(
180 'surecart',
181 'password_validation_enabled',
182 [
183 'type' => 'boolean',
184 'show_in_rest' => true,
185 'sanitize_callback' => 'boolval',
186 'default' => false,
187 ]
188 );
189 $this->register(
190 'surecart',
191 'shop_admin_menu',
192 [
193 'type' => 'boolean',
194 'show_in_rest' => true,
195 'sanitize_callback' => 'boolval',
196 'default' => true,
197 ]
198 );
199 $this->register(
200 'surecart',
201 'cart_admin_menu',
202 [
203 'type' => 'boolean',
204 'show_in_rest' => true,
205 'sanitize_callback' => 'boolval',
206 'default' => true,
207 ]
208 );
209 $this->register(
210 'surecart',
211 'checkout_admin_menu',
212 [
213 'type' => 'boolean',
214 'show_in_rest' => true,
215 'sanitize_callback' => 'boolval',
216 'default' => true,
217 ]
218 );
219 $this->register(
220 'surecart',
221 'dashboard_admin_menu',
222 [
223 'type' => 'boolean',
224 'show_in_rest' => true,
225 'sanitize_callback' => 'boolval',
226 'default' => true,
227 ]
228 );
229 $this->register(
230 'surecart',
231 'unrestricted_test_mode',
232 [
233 'type' => 'boolean',
234 'show_in_rest' => true,
235 'sanitize_callback' => 'boolval',
236 ]
237 );
238 }
239
240 /**
241 * Register a setting.
242 *
243 * @param string $option_group A settings group name. Should correspond to an allowed option key name.
244 * Default allowed option key names include 'surecart', 'discussion', 'media',
245 * 'reading', 'writing', and 'options'.
246 * @param string $option_name The name of an option to sanitize and save.
247 * @param array $args {
248 * Data used to describe the setting when registered.
249 *
250 * @type string $type The type of data associated with this setting.
251 * Valid values are 'string', 'boolean', 'integer', 'number', 'array', and 'object'.
252 * @type string $description A description of the data attached to this setting.
253 * @type callable $sanitize_callback A callback function that sanitizes the option's value.
254 * @type bool|array $show_in_rest Whether data associated with this setting should be included in the REST API.
255 * When registering complex settings, this argument may optionally be an
256 * array with a 'schema' key.
257 * @type mixed $default Default value when calling `get_option()`.
258 */
259 public function register( $option_group, $option_name, $args = [] ) {
260 $service = new RegisterSettingService( $option_group, $option_name, $args );
261 return $service->register();
262 }
263
264 /**
265 * Recaptcha service.
266 *
267 * @return RecaptchaValidationService
268 */
269 public function recaptcha() {
270 return new RecaptchaValidationService();
271 }
272
273 /**
274 * Get the option.
275 *
276 * @return mixed
277 */
278 public function get( $name, $default = false ) {
279 return get_option( 'surecart_' . $name, $default );
280 }
281
282 /**
283 * Get the permalinks settings.
284 *
285 * @return PermalinksSettingsService
286 */
287 public function permalinks() {
288 return new PermalinksSettingsService();
289 }
290 }
291