PluginProbe
weForms – Easy Drag & Drop Contact Form Builder For WordPress / 1.4.6
weForms – Easy Drag & Drop Contact Form Builder For WordPress v1.4.6
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
← All changes | includes/api/class-weforms-api-rest-controller.php +223 -223 1.6.131.4.6 View file →
@@ -1,223 +1,223 @@
1 -<?php
2 -
3 -abstract class Weforms_REST_Controller extends WP_REST_Controller {
4 -
5 - public function get_item_permissions_check( $request ) {
6 - return $this->get_items_permissions_check( $request );
7 - }
8 -
9 - public function get_items_permissions_check( $request ) {
10 - if ( !current_user_can( weforms_form_access_capability() ) ) {
11 - return new WP_Error( 'rest_weforms_forbidden_context', __( 'Sorry, you are not allowed', 'weforms' ), [ 'status' => rest_authorization_required_code() ] );
12 - }
13 -
14 - return true;
15 - }
16 -
17 - /**
18 - * Check if a given request has access to create items
19 - *
20 - * @param WP_REST_Request $request full data about the request
21 - *
22 - * @return WP_Error|bool
23 - */
24 - public function create_item_permissions_check( $request ) {
25 - return $this->get_items_permissions_check( $request );
26 - }
27 -
28 - /**
29 - * Check if a given request has access to update a specific item
30 - *
31 - * @param WP_REST_Request $request full data about the request
32 - *
33 - * @return WP_Error|bool
34 - */
35 - public function update_item_permissions_check( $request ) {
36 - return $this->get_items_permissions_check( $request );
37 - }
38 -
39 - /**
40 - * Check if a given request has access to delete a specific item
41 - *
42 - * @param WP_REST_Request $request full data about the request
43 - *
44 - * @return WP_Error|bool
45 - */
46 - public function delete_item_permissions_check( $request ) {
47 - return $this->create_item_permissions_check( $request );
48 - }
49 -
50 - /**
51 - * Prepare a single user output for response
52 - *
53 - * @param object $item
54 - * @param WP_REST_Request $request request object
55 - * @param array $additional_fields (optional)
56 - *
57 - * @return WP_REST_Response $response response data
58 - */
59 - public function prepare_item_for_response( $item, $request, $additional_fields = [] ) {
60 - $response = rest_ensure_response( $item );
61 - $response = $this->add_links( $response, $item );
62 -
63 - return $response;
64 - }
65 -
66 - /**
67 - * Adds multiple links to the response.
68 - *
69 - * @since 1.4.2
70 - *
71 - * @param object $response
72 - * @param object $item
73 - *
74 - * @return object $response
75 - */
76 - protected function add_links( $response, $item ) {
77 - $response->data['_links'] = $this->prepare_links( $item );
78 -
79 - return $response;
80 - }
81 -
82 - /**
83 - * Prepare links for the request.
84 - *
85 - * @since 1.4.2
86 - *
87 - * @param object $item
88 - *
89 - * @return array links for the given user
90 - */
91 - protected function prepare_links( $item ) {
92 - $links = [
93 - 'self' => [
94 - 'href' => rest_url( sprintf( '%s/%s/%d', $this->namespace, $this->rest_base, $item['id'] ) ),
95 - ],
96 - 'collection' => [
97 - 'href' => rest_url( sprintf( '%s/%s', $this->namespace, $this->rest_base ) ),
98 - ],
99 - ];
100 -
101 - return $links;
102 - }
103 -
104 - /**
105 - * Format item's collection for response
106 - *
107 - * @since 1.4.2
108 - *
109 - * @param object $response
110 - * @param object $request
111 - * @param array $items
112 - * @param int $total_items
113 - *
114 - * @return object
115 - */
116 - public function format_collection_response( $response, $request, $total_items ) {
117 - if ( $total_items === 0 ) {
118 - return $response;
119 - }
120 -
121 - // Store pagation values for headers then unset for count query.
122 - $per_page = (int) ( !empty( $request['per_page'] ) ? $request['per_page'] : 20 );
123 - $page = (int) ( !empty( $request['page'] ) ? $request['page'] : 1 );
124 -
125 - $response->header( 'X-WP-Total', (int) $total_items );
126 -
127 - $max_pages = ceil( $total_items / $per_page );
128 -
129 - $response->header( 'X-WP-TotalPages', (int) $max_pages );
130 - $base = add_query_arg( $request->get_query_params(), rest_url( sprintf( '/%s/%s', $this->namespace, $this->rest_base ) ) );
131 -
132 - if ( $page > 1 ) {
133 - $prev_page = $page - 1;
134 -
135 - if ( $prev_page > $max_pages ) {
136 - $prev_page = $max_pages;
137 - }
138 - $prev_link = add_query_arg( 'page', $prev_page, $base );
139 - $response->link_header( 'prev', $prev_link );
140 - }
141 -
142 - if ( $max_pages > $page ) {
143 - $next_page = $page + 1;
144 - $next_link = add_query_arg( 'page', $next_page, $base );
145 - $response->link_header( 'next', $next_link );
146 - }
147 -
148 - return $response;
149 - }
150 -
151 - /**
152 - * Check form exist or not
153 - *
154 - * @since 1.4.2
155 - *
156 - * @param string $param
157 - * @param WP_REST_Request $request
158 - * @param string $key
159 - *
160 - * @return bool
161 - */
162 - public function is_form_exists( $param, $request, $key ) {
163 - global $wpdb;
164 -
165 - $form_id = (int) $request['form_id'];
166 -
167 - $querystr = "
168 - SELECT $wpdb->posts.id
169 - FROM $wpdb->posts
170 - WHERE $wpdb->posts.ID = $form_id
171 - AND $wpdb->posts.post_type = 'wpuf_contact_form'
172 - ";
173 -
174 - $result = $wpdb->get_var( $querystr );
175 -
176 - if ( empty( $result ) ) {
177 - return new WP_Error( 'rest_weforms_form', __( 'Form Not Exist', 'weforms' ), [ 'status' => 404 ] );
178 - } else {
179 - return true;
180 - }
181 - }
182 -
183 - /**
184 - * Check Entries exist or not
185 - *
186 - * @since 1.4.2
187 - *
188 - * @param string $param
189 - * @param WP_REST_Request $request
190 - * @param string $key
191 - *
192 - * @return bool
193 - */
194 - public function is_entry_exists( $param, $request, $key ) {
195 - global $wpdb;
196 -
197 - if ( is_array( $request['entry_id'] ) ) {
198 - $entry_id = implode( ',', $request['entry_id'] );
199 - $querystr = "
200 - SELECT $wpdb->weforms_entries.id
201 - FROM $wpdb->weforms_entries
202 - WHERE $wpdb->weforms_entries.ID IN ( $entry_id )
203 - ";
204 - } else {
205 - $entry_id = (int) $request['entry_id'];
206 - $querystr = "
207 - SELECT $wpdb->weforms_entries.id
208 - FROM $wpdb->weforms_entries
209 - WHERE $wpdb->weforms_entries.ID = $entry_id
210 - ";
211 - }
212 -
213 - $result = $wpdb->get_results( $querystr );
214 -
215 - if ( empty( $result ) ) {
216 - return false;
217 - } else {
218 - return true;
219 - }
220 -
221 - return true;
222 - }
223 -}
1 +<?php
2 +
3 +abstract class Weforms_REST_Controller extends WP_REST_Controller {
4 +
5 + public function get_item_permissions_check( $request ) {
6 + return $this->get_items_permissions_check( $request );
7 + }
8 +
9 + public function get_items_permissions_check( $request ) {
10 + if ( !current_user_can( weforms_form_access_capability() ) ) {
11 + return new WP_Error( 'rest_weforms_forbidden_context', __( 'Sorry, you are not allowed', 'weforms' ), [ 'status' => rest_authorization_required_code() ] );
12 + }
13 +
14 + return true;
15 + }
16 +
17 + /**
18 + * Check if a given request has access to create items
19 + *
20 + * @param WP_REST_Request $request full data about the request
21 + *
22 + * @return WP_Error|bool
23 + */
24 + public function create_item_permissions_check( $request ) {
25 + return $this->get_items_permissions_check( $request );
26 + }
27 +
28 + /**
29 + * Check if a given request has access to update a specific item
30 + *
31 + * @param WP_REST_Request $request full data about the request
32 + *
33 + * @return WP_Error|bool
34 + */
35 + public function update_item_permissions_check( $request ) {
36 + return $this->get_items_permissions_check( $request );
37 + }
38 +
39 + /**
40 + * Check if a given request has access to delete a specific item
41 + *
42 + * @param WP_REST_Request $request full data about the request
43 + *
44 + * @return WP_Error|bool
45 + */
46 + public function delete_item_permissions_check( $request ) {
47 + return $this->create_item_permissions_check( $request );
48 + }
49 +
50 + /**
51 + * Prepare a single user output for response
52 + *
53 + * @param object $item
54 + * @param WP_REST_Request $request request object
55 + * @param array $additional_fields (optional)
56 + *
57 + * @return WP_REST_Response $response response data
58 + */
59 + public function prepare_item_for_response( $item, $request, $additional_fields = [] ) {
60 + $response = rest_ensure_response( $item );
61 + $response = $this->add_links( $response, $item );
62 +
63 + return $response;
64 + }
65 +
66 + /**
67 + * Adds multiple links to the response.
68 + *
69 + * @since 1.4.2
70 + *
71 + * @param object $response
72 + * @param object $item
73 + *
74 + * @return object $response
75 + */
76 + protected function add_links( $response, $item ) {
77 + $response->data['_links'] = $this->prepare_links( $item );
78 +
79 + return $response;
80 + }
81 +
82 + /**
83 + * Prepare links for the request.
84 + *
85 + * @since 1.4.2
86 + *
87 + * @param object $item
88 + *
89 + * @return array links for the given user
90 + */
91 + protected function prepare_links( $item ) {
92 + $links = [
93 + 'self' => [
94 + 'href' => rest_url( sprintf( '%s/%s/%d', $this->namespace, $this->rest_base, $item['id'] ) ),
95 + ],
96 + 'collection' => [
97 + 'href' => rest_url( sprintf( '%s/%s', $this->namespace, $this->rest_base ) ),
98 + ],
99 + ];
100 +
101 + return $links;
102 + }
103 +
104 + /**
105 + * Format item's collection for response
106 + *
107 + * @since 1.4.2
108 + *
109 + * @param object $response
110 + * @param object $request
111 + * @param array $items
112 + * @param int $total_items
113 + *
114 + * @return object
115 + */
116 + public function format_collection_response( $response, $request, $total_items ) {
117 + if ( $total_items === 0 ) {
118 + return $response;
119 + }
120 +
121 + // Store pagation values for headers then unset for count query.
122 + $per_page = (int) ( !empty( $request['per_page'] ) ? $request['per_page'] : 20 );
123 + $page = (int) ( !empty( $request['page'] ) ? $request['page'] : 1 );
124 +
125 + $response->header( 'X-WP-Total', (int) $total_items );
126 +
127 + $max_pages = ceil( $total_items / $per_page );
128 +
129 + $response->header( 'X-WP-TotalPages', (int) $max_pages );
130 + $base = add_query_arg( $request->get_query_params(), rest_url( sprintf( '/%s/%s', $this->namespace, $this->rest_base ) ) );
131 +
132 + if ( $page > 1 ) {
133 + $prev_page = $page - 1;
134 +
135 + if ( $prev_page > $max_pages ) {
136 + $prev_page = $max_pages;
137 + }
138 + $prev_link = add_query_arg( 'page', $prev_page, $base );
139 + $response->link_header( 'prev', $prev_link );
140 + }
141 +
142 + if ( $max_pages > $page ) {
143 + $next_page = $page + 1;
144 + $next_link = add_query_arg( 'page', $next_page, $base );
145 + $response->link_header( 'next', $next_link );
146 + }
147 +
148 + return $response;
149 + }
150 +
151 + /**
152 + * Check form exist or not
153 + *
154 + * @since 1.4.2
155 + *
156 + * @param string $param
157 + * @param WP_REST_Request $request
158 + * @param string $key
159 + *
160 + * @return bool
161 + */
162 + public function is_form_exists( $param, $request, $key ) {
163 + global $wpdb;
164 +
165 + $form_id = (int) $request['form_id'];
166 +
167 + $querystr = "
168 + SELECT $wpdb->posts.id
169 + FROM $wpdb->posts
170 + WHERE $wpdb->posts.ID = $form_id
171 + AND $wpdb->posts.post_type = 'wpuf_contact_form'
172 + ";
173 +
174 + $result = $wpdb->get_var( $querystr );
175 +
176 + if ( empty( $result ) ) {
177 + return new WP_Error( 'rest_weforms_form', __( 'Form Not Exist', 'weforms' ), [ 'status' => 404 ] );
178 + } else {
179 + return true;
180 + }
181 + }
182 +
183 + /**
184 + * Check Entries exist or not
185 + *
186 + * @since 1.4.2
187 + *
188 + * @param string $param
189 + * @param WP_REST_Request $request
190 + * @param string $key
191 + *
192 + * @return bool
193 + */
194 + public function is_entry_exists( $param, $request, $key ) {
195 + global $wpdb;
196 +
197 + if ( is_array( $request['entry_id'] ) ) {
198 + $entry_id = implode( ',', $request['entry_id'] );
199 + $querystr = "
200 + SELECT $wpdb->weforms_entries.id
201 + FROM $wpdb->weforms_entries
202 + WHERE $wpdb->weforms_entries.ID IN ( $entry_id )
203 + ";
204 + } else {
205 + $entry_id = (int) $request['entry_id'];
206 + $querystr = "
207 + SELECT $wpdb->weforms_entries.id
208 + FROM $wpdb->weforms_entries
209 + WHERE $wpdb->weforms_entries.ID = $entry_id
210 + ";
211 + }
212 +
213 + $result = $wpdb->get_results( $querystr );
214 +
215 + if ( empty( $result ) ) {
216 + return false;
217 + } else {
218 + return true;
219 + }
220 +
221 + return true;
222 + }
223 +}