PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 2.13.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v2.13.0
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 2 years ago SettingsServiceProvider.php 3 years ago
SettingService.php
282 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 }
230
231 /**
232 * Register a setting.
233 *
234 * @param string $option_group A settings group name. Should correspond to an allowed option key name.
235 * Default allowed option key names include 'surecart', 'discussion', 'media',
236 * 'reading', 'writing', and 'options'.
237 * @param string $option_name The name of an option to sanitize and save.
238 * @param array $args {
239 * Data used to describe the setting when registered.
240 *
241 * @type string $type The type of data associated with this setting.
242 * Valid values are 'string', 'boolean', 'integer', 'number', 'array', and 'object'.
243 * @type string $description A description of the data attached to this setting.
244 * @type callable $sanitize_callback A callback function that sanitizes the option's value.
245 * @type bool|array $show_in_rest Whether data associated with this setting should be included in the REST API.
246 * When registering complex settings, this argument may optionally be an
247 * array with a 'schema' key.
248 * @type mixed $default Default value when calling `get_option()`.
249 */
250 public function register( $option_group, $option_name, $args = [] ) {
251 $service = new RegisterSettingService( $option_group, $option_name, $args );
252 return $service->register();
253 }
254
255 /**
256 * Recaptcha service.
257 *
258 * @return RecaptchaValidationService
259 */
260 public function recaptcha() {
261 return new RecaptchaValidationService();
262 }
263
264 /**
265 * Get the option.
266 *
267 * @return mixed
268 */
269 public function get( $name, $default = false ) {
270 return get_option( "surecart_${name}", $default );
271 }
272
273 /**
274 * Get the permalinks settings.
275 *
276 * @return PermalinksSettingsService
277 */
278 public function permalinks() {
279 return new PermalinksSettingsService();
280 }
281 }
282