PluginProbe
weForms – Easy Drag & Drop Contact Form Builder For WordPress / 1.6.16
weForms – Easy Drag & Drop Contact Form Builder For WordPress v1.6.16
1.6.7 1.6.8 1.6.9 1.6.12 1.6.13 1.6.14 1.6.15 1.6.16 1.6.17 1.6.18 1.6.19 1.6.2 1.6.20 1.6.21 1.6.22 1.6.23 1.6.24 1.6.25 1.6.26 1.6.27 1.6.28 1.6.3 1.6.4 1.6.5 1.6.6 All 74 releases
weforms / includes / api / class-weforms-settings-controller.php

class-weforms-settings-controller.php in weForms – Easy Drag & Drop Contact Form Builder For WordPress 1.6.16, at includes/api/class-weforms-settings-controller.php

152 lines 4.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * Settings manager class
5 *
6 * @since 1.4.2
7 */
8 class Weforms_Setting_Controller extends Weforms_REST_Controller {
9
10 /**
11 * Endpoint namespace
12 *
13 * @var string
14 */
15 protected $namespace = 'weforms/v1';
16
17 /**
18 * Route name
19 *
20 * @var string
21 */
22 protected $rest_base = 'settings';
23
24 /**
25 * @var array
26 */
27 protected $defaults = [
28 'email_gateway' => '',
29 'gateways' => '',
30 'recaptcha' => '',
31 'gmap_api' => '',
32 'credit' => '',
33 ];
34
35 public function register_routes() {
36 register_rest_route( $this->namespace, '/' . $this->rest_base, [
37 [
38 'methods' => WP_REST_Server::READABLE,
39 'callback' => [ $this, 'get_items' ],
40 'permission_callback' => [ $this, 'get_item_permissions_check' ],
41 'args' => [
42 'context' => $this->get_context_param( [ 'default' => 'view' ] ),
43 ],
44 ],
45 [
46 'methods' => WP_REST_Server::CREATABLE,
47 'callback' => [ $this, 'create_item' ],
48 'permission_callback' => [ $this, 'create_item_permissions_check' ],
49 'args' => [
50 'credit' => [
51 'required' => false,
52 'type' => 'boolean',
53 'description' => __( 'Weforms Setting', 'weforms' ),
54 ],
55 ],
56 ],
57 ] );
58 }
59
60 /**
61 * Retrieves a collection of forms.
62 *
63 * @since 1.4.2
64 *
65 * @param WP_REST_Request $request full details about the request
66 *
67 * @return WP_REST_Response|WP_Error response object on success, or WP_Error object on failure
68 **/
69 public function get_items( $request ) {
70 $settings = weforms_get_settings();
71
72 // checking to prevent js error, will be removed in future
73 if ( !isset( $settings['credit'] ) ) {
74 $settings['credit'] = false;
75 }
76
77 if ( !isset( $settings['permission'] ) ) {
78 $settings['permission'] = 'manage_options';
79 }
80
81 $settings = $this->prepare_response_for_collection( $settings );
82 $response = rest_ensure_response( $settings );
83
84 return $response;
85 }
86
87 /**
88 * Creates a single form
89 *
90 * @param WP_REST_Request $request full details about the request
91 *
92 * @since 1.4.2
93 *
94 * @return WP_REST_Response|WP_Error response object on success, or WP_Error object on failure
95 **/
96 public function create_item( $request ) {
97 $req_settings = $request->get_params();
98 $settings = get_option( 'weforms_settings' );
99
100 foreach ( $settings as $key => $setting ) {
101 if ( array_key_exists( $key, $req_settings ) ) {
102 $settings[$key] = $req_settings[$key];
103 }
104 }
105
106 $requires_wpuf_update = false;
107 $wpuf_update_array = [];
108
109 update_option( 'weforms_settings', $settings );
110
111 // wpuf settings sync
112 if ( !empty( $settings['gmap_api'] ) ) {
113 $requires_wpuf_update = true;
114 $wpuf_update_array['gmap_api_key'] = $settings['gmap_api'];
115 }
116
117 if ( !empty( $settings['recaptcha'] ) ) {
118 $requires_wpuf_update = true;
119 $wpuf_update_array['recaptcha_public'] = $settings['recaptcha']->key;
120 $wpuf_update_array['recaptcha_private'] = $settings['recaptcha']->secret;
121 }
122
123 if ( !empty( $settings['no_conflict'] ) ) {
124 $requires_wpuf_update = true;
125 $wpuf_update_array['no_conflict'] = $settings['no_conflict'];
126 }
127
128 if ( !empty( $settings['email_footer'] ) ) {
129 $requires_wpuf_update = true;
130 $wpuf_update_array['email_footer'] = $settings['email_footer'];
131 }
132
133 if ( $requires_wpuf_update ) {
134 $wpuf_settings = get_option( 'wpuf_general', [] );
135 $wpuf_settings = array_merge( $wpuf_settings, $wpuf_update_array );
136
137 update_option( 'wpuf_general', $wpuf_settings );
138 }
139
140 do_action( 'weforms_save_settings', $settings );
141
142 $settings = apply_filters( 'weforms_after_save_settings', $settings );
143
144 $request->set_param( 'context', 'edit' );
145
146 $response = $this->prepare_response_for_collection( $settings, $request );
147 $response = rest_ensure_response( $response );
148
149 return $response;
150 }
151 }
152