PluginProbe
YayMail – WooCommerce Email Customizer / 4.3.2
YayMail – WooCommerce Email Customizer v4.3.2
4.4.4 4.4.3 4.4.2 4.4.1 trunk 1.9.6 2.1.4 2.1.5 3.2.2 3.2.6 3.2.7.1 3.2.8.1 3.2.9 3.3 3.3.1 3.3.4 3.3.5 3.3.6 3.3.7 3.3.8 3.3.9 3.4 3.4.1 3.4.2 3.4.3 All 55 releases
yaymail / src / Abstracts / BaseController.php

BaseController.php in YayMail – WooCommerce Email Customizer 4.3.2, at src/Abstracts/BaseController.php

74 lines 1.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace YayMail\Abstracts;
3
4 /**
5 * Base Rest API Controller
6 */
7 abstract class BaseController {
8
9 /**
10 * Check if a user has permission to access a router
11 *
12 * @return bool
13 */
14 public function permission_callback() {
15 return current_user_can( 'manage_woocommerce' );
16 }
17
18 /**
19 * Returns response when verify nonce failed
20 *
21 * @return \WP_REST_Response
22 */
23 public function nonce_failure_response() {
24 return new \WP_REST_Response(
25 [
26 'success' => false,
27 'code' => 'nonce_failure',
28 'message' => __( 'Verify nonce failed', 'yaymail' ),
29 ]
30 );
31 }
32
33 /**
34 * Verify nonce
35 *
36 * @return int|false
37 */
38 public function verify_nonce( $request ) {
39 $nonce = $request->get_header( 'x_wp_nonce' );
40 return wp_verify_nonce( $nonce, 'wp_rest' );
41 }
42
43 /**
44 * Function API exec
45 *
46 * @param callable $callable
47 * @param \WP_REST_Request $request
48 * @return \WP_REST_Response|\WP_Error
49 */
50 public function exec( $callable, \WP_REST_Request $request ) {
51
52 if ( ! $this->verify_nonce( $request ) ) {
53 return rest_ensure_request( $this->nonce_failure_response() );
54 }
55
56 try {
57 if ( is_callable( $callable ) ) {
58 $response = $callable( $request );
59 }
60 } catch ( \Throwable $ex ) {
61 return rest_ensure_response(
62 [
63 'isError' => true,
64 'code' => $ex->getCode(),
65 'message' => $ex->getMessage(),
66 ]
67 );
68 }
69
70 return rest_ensure_response( $response );
71 }
72
73 }
74