PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.3.0
GiveWP – Donation Plugin and Fundraising Platform v2.3.0
4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 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.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / includes / api / class-give-api-v2.php
give / includes / api Last commit date
class-give-api-v1.php 8 years ago class-give-api-v2.php 7 years ago class-give-api.php 7 years ago
class-give-api-v2.php
196 lines
1 <?php
2 /**
3 * Give API V2
4 *
5 * @package Give
6 * @subpackage Classes/API
7 * @copyright Copyright (c) 2018, WordImpress
8 * @license https://opensource.org/licenses/gpl-license GNU Public License
9 * @since 2.1
10 */
11
12 // Exit if accessed directly.
13 if ( ! defined( 'ABSPATH' ) ) {
14 exit;
15 }
16
17
18 /**
19 * Give_API_V2 Class
20 *
21 * The base version API class
22 *
23 * @since 2.1
24 */
25 class Give_API_V2 {
26 /**
27 * API base prefix
28 *
29 * @since 2.1
30 * @access private
31 *
32 * @var string
33 */
34 private $rest_base = 'give-api/v2';
35
36 /**
37 * Instance.
38 *
39 * @since 2.1
40 * @access private
41 *
42 * @var Give_API_V2
43 */
44 static private $instance;
45
46 /**
47 * Singleton pattern.
48 *
49 * @since 2.1
50 * @access private
51 */
52 private function __construct() {
53 }
54
55
56 /**
57 * Get instance.
58 *
59 * @since 2.1
60 * @access public
61 * @return Give_API_V2
62 */
63 public static function get_instance() {
64 if ( null === static::$instance ) {
65 self::$instance = new static();
66
67 self::$instance->init();
68 }
69
70 return self::$instance;
71 }
72
73
74 /**
75 * Initialize API
76 *
77 * @since 2.1
78 * @access private
79 */
80 private function init() {
81 // Setup hooks.
82 add_action( 'rest_api_init', array( $this, 'register_routes' ) );
83 add_action( 'wp_enqueue_scripts', array( $this, 'localize_script' ), 999 );
84 add_action( 'admin_enqueue_scripts', array( $this, 'localize_script' ), 999 );
85 }
86
87
88 /**
89 * Register API routes
90 * @todo : prevent cross domain api request
91 *
92 * @since 2.1
93 * @access private
94 */
95 public function register_routes() {
96 register_rest_route( $this->rest_base, '/form/(?P<id>[\d]+)', array(
97 'methods' => 'GET',
98 'callback' => array( $this, 'get_forms_data' ),
99 ) );
100
101 register_rest_route( $this->rest_base, '/form-grid', array(
102 'methods' => 'GET',
103 'callback' => array( $this, 'get_donation_grid' ),
104 ) );
105
106 register_rest_route( $this->rest_base, '/donor-wall', array(
107 'methods' => 'GET',
108 'callback' => array( $this, 'get_donor_wall' ),
109 ) );
110 }
111
112 /**
113 * Add api localize data
114 *
115 * @since 2.1
116 * @access public
117 */
118 public function localize_script() {
119 $data = array(
120 'root' => esc_url_raw( Give_API_V2::get_rest_api() ),
121 'rest_base' => $this->rest_base
122 );
123
124 if ( is_admin() ) {
125 wp_localize_script( 'give-admin-scripts', 'giveApiSettings', $data );
126 } else {
127 wp_localize_script( 'give', 'giveApiSettings', $data );
128 }
129 }
130
131 /**
132 * Rest fetch form data callback
133 *
134 * @param WP_REST_Request $request
135 *
136 * @access public
137 * @return array|mixed|object
138 */
139 public function get_forms_data( $request ) {
140 $parameters = $request->get_params();
141
142 // Bailout
143 if ( ! isset( $parameters['id'] ) || empty( $parameters['id'] ) ) {
144 return array( 'error' => 'no_parameter_given' );
145 }
146
147 return give_form_shortcode( $parameters );
148 }
149
150 /**
151 * Rest fetch form data callback
152 *
153 * @param WP_REST_Request $request
154 *
155 * @access public
156 * @return array|mixed|object
157 */
158 public function get_donation_grid( $request ) {
159 $parameters = $request->get_params();
160
161 return give_form_grid_shortcode( $parameters );
162 }
163
164 /**
165 * Rest fetch form data callback
166 *
167 * @param WP_REST_Request $request
168 *
169 * @access public
170 * @return array|mixed|object
171 */
172 public function get_donor_wall( $request ) {
173 $parameters = $request->get_params();
174
175 return Give_Donor_Wall::get_instance()->render_shortcode( $parameters );
176 }
177
178 /**
179 * Get api reset url
180 *
181 * @since 2.1
182 * @access public
183 *
184 * @param int $blog_id Optional. Blog ID. Default of null returns URL for current blog.
185 * @param string $path Optional. REST route. Default '/'.
186 * @param string $scheme Optional. Sanitization scheme. Default 'rest'.
187 *
188 * @return string Full URL to the endpoint.
189 */
190 public static function get_rest_api( $blog_id = null, $path = '/', $scheme = 'rest' ) {
191 return trailingslashit( get_rest_url( $blog_id, $path, $scheme ) . self::$instance->rest_base );
192 }
193 }
194
195 Give_API_V2::get_instance();
196