PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 1.4.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v1.4.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 3 years ago SettingsServiceProvider.php 3 years ago
SettingService.php
146 lines
1 <?php
2
3 namespace SureCart\Settings;
4
5 use SureCart\WordPress\RecaptchaValidationService;
6
7 /**
8 * A service for registering settings.
9 */
10 class SettingService {
11 /**
12 * Boostrap settings.
13 *
14 * @return void
15 */
16 public function bootstrap() {
17 $this->register(
18 'general',
19 'theme',
20 [
21 'type' => 'string',
22 'show_in_rest' => true,
23 'sanitize_callback' => 'sanitize_text_field',
24 'default' => 'light',
25 ]
26 );
27 $this->register(
28 'general',
29 'honeypot_enabled',
30 [
31 'type' => 'boolean',
32 'show_in_rest' => true,
33 'sanitize_callback' => 'boolval',
34 'default' => true,
35 ]
36 );
37 $this->register(
38 'general',
39 'recaptcha_enabled',
40 [
41 'type' => 'boolean',
42 'show_in_rest' => true,
43 'sanitize_callback' => 'boolval',
44 ]
45 );
46 $this->register(
47 'general',
48 'recaptcha_site_key',
49 [
50 'type' => 'string',
51 'show_in_rest' => true,
52 'sanitize_callback' => 'sanitize_text_field',
53 ]
54 );
55 $this->register(
56 'general',
57 'recaptcha_secret_key',
58 [
59 'type' => 'string',
60 'show_in_rest' => true,
61 'sanitize_callback' => 'sanitize_text_field',
62 ]
63 );
64 $this->register(
65 'general',
66 'recaptcha_min_score',
67 [
68 'type' => 'number',
69 'show_in_rest' => true,
70 'default' => 0.5,
71 'sanitize_callback' => 'sanitize_text_field',
72 ]
73 );
74 $this->register(
75 'general',
76 'load_stripe_js',
77 [
78 'type' => 'boolean',
79 'show_in_rest' => true,
80 'sanitize_callback' => 'boolval',
81 ]
82 );
83 $this->register(
84 'general',
85 'tracking_confirmation',
86 [
87 'type' => 'boolean',
88 'show_in_rest' => true,
89 'sanitize_callback' => 'boolval',
90 ]
91 );
92 $this->register(
93 'general',
94 'tracking_confirmation_message',
95 [
96 'type' => 'string',
97 'show_in_rest' => true,
98 'default' => esc_html__( 'Your email and cart are saved so we can send email reminders about this order.', 'surecart' ),
99 'sanitize_callback' => 'sanitize_text_field',
100 ]
101 );
102 }
103
104 /**
105 * Register a setting.
106 *
107 * @param string $option_group A settings group name. Should correspond to an allowed option key name.
108 * Default allowed option key names include 'general', 'discussion', 'media',
109 * 'reading', 'writing', and 'options'.
110 * @param string $option_name The name of an option to sanitize and save.
111 * @param array $args {
112 * Data used to describe the setting when registered.
113 *
114 * @type string $type The type of data associated with this setting.
115 * Valid values are 'string', 'boolean', 'integer', 'number', 'array', and 'object'.
116 * @type string $description A description of the data attached to this setting.
117 * @type callable $sanitize_callback A callback function that sanitizes the option's value.
118 * @type bool|array $show_in_rest Whether data associated with this setting should be included in the REST API.
119 * When registering complex settings, this argument may optionally be an
120 * array with a 'schema' key.
121 * @type mixed $default Default value when calling `get_option()`.
122 */
123 public function register( $option_group, $option_name, $args = [] ) {
124 $service = new RegisterSettingService( $option_group, $option_name, $args );
125 return $service->register();
126 }
127
128 /**
129 * Recaptcha service.
130 *
131 * @return RecaptchaValidationService
132 */
133 public function recaptcha() {
134 return new RecaptchaValidationService();
135 }
136
137 /**
138 * Get the option.
139 *
140 * @return mixed
141 */
142 public function get( $name, $default = false ) {
143 return get_option( "surecart_${name}", $default );
144 }
145 }
146