PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 2.6.1
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v2.6.1
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 3 years ago SettingsServiceProvider.php 3 years ago
SettingService.php
242 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 }
190
191 /**
192 * Register a setting.
193 *
194 * @param string $option_group A settings group name. Should correspond to an allowed option key name.
195 * Default allowed option key names include 'surecart', 'discussion', 'media',
196 * 'reading', 'writing', and 'options'.
197 * @param string $option_name The name of an option to sanitize and save.
198 * @param array $args {
199 * Data used to describe the setting when registered.
200 *
201 * @type string $type The type of data associated with this setting.
202 * Valid values are 'string', 'boolean', 'integer', 'number', 'array', and 'object'.
203 * @type string $description A description of the data attached to this setting.
204 * @type callable $sanitize_callback A callback function that sanitizes the option's value.
205 * @type bool|array $show_in_rest Whether data associated with this setting should be included in the REST API.
206 * When registering complex settings, this argument may optionally be an
207 * array with a 'schema' key.
208 * @type mixed $default Default value when calling `get_option()`.
209 */
210 public function register( $option_group, $option_name, $args = [] ) {
211 $service = new RegisterSettingService( $option_group, $option_name, $args );
212 return $service->register();
213 }
214
215 /**
216 * Recaptcha service.
217 *
218 * @return RecaptchaValidationService
219 */
220 public function recaptcha() {
221 return new RecaptchaValidationService();
222 }
223
224 /**
225 * Get the option.
226 *
227 * @return mixed
228 */
229 public function get( $name, $default = false ) {
230 return get_option( "surecart_${name}", $default );
231 }
232
233 /**
234 * Get the permalinks settings.
235 *
236 * @return PermalinksSettingsService
237 */
238 public function permalinks() {
239 return new PermalinksSettingsService();
240 }
241 }
242