PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.9.4
GiveWP – Donation Plugin and Fundraising Platform v2.9.4
4.16.4 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 / blocks / donation-form / class-give-donation-form-block.php
give / blocks / donation-form Last commit date
data 6 years ago edit 6 years ago class-give-donation-form-block.php 6 years ago index.js 6 years ago style.scss 6 years ago
class-give-donation-form-block.php
219 lines
1 <?php
2 /**
3 * Give Donation Form Block Class
4 *
5 * @package Give
6 * @subpackage Classes/Blocks
7 * @copyright Copyright (c) 2018, GiveWP
8 * @license https://opensource.org/licenses/gpl-license GNU Public License
9 * @since 2.0.2
10 */
11
12 // Exit if accessed directly.
13 if ( ! defined( 'ABSPATH' ) ) {
14 exit;
15 }
16
17 /**
18 * Give_Donation_Form_Block Class.
19 *
20 * This class handles donation forms block.
21 *
22 * @since 2.0.2
23 */
24 class Give_Donation_Form_Block {
25 /**
26 * Instance.
27 *
28 * @since
29 * @access private
30 * @var Give_Donation_Form_Block
31 */
32 private static $instance;
33
34 /**
35 * Singleton pattern.
36 *
37 * @since
38 * @access private
39 */
40 private function __construct() {
41 }
42
43
44 /**
45 * Get instance.
46 *
47 * @since
48 * @access public
49 * @return Give_Donation_Form_Block
50 */
51 public static function get_instance() {
52 if ( null === static::$instance ) {
53 self::$instance = new static();
54
55 self::$instance->init();
56 }
57
58 return self::$instance;
59 }
60
61 /**
62 * Class Constructor
63 *
64 * Set up the Give Donation Grid Block class.
65 *
66 * @since 2.0.2
67 * @access private
68 */
69 private function init() {
70 add_action( 'init', array( $this, 'register_block' ), 999 );
71 add_action( 'wp_ajax_give_block_donation_form_search_results', array( $this, 'block_donation_form_search_results' ) );
72 add_filter( 'rest_prepare_give_forms', array( $this, 'addExtraDataToResponse' ), 10, 2 );
73 }
74
75 /**
76 * Add extra data to response.
77 *
78 * @since 2.7.0
79 * @param WP_REST_Response $response
80 * @param WP_Post $form
81 *
82 * @return WP_REST_Response
83 */
84 public function addExtraDataToResponse( $response, $form ) {
85 // Return extra data only if query in edit context.
86 if ( empty( $_REQUEST['context'] ) || $_REQUEST['context'] !== 'edit' ) {
87 return $response;
88 }
89
90 $data = $response->get_data();
91 $data['formTemplate'] = Give()->form_meta->get_meta( $form->ID, '_give_form_template', true );
92 $response->set_data( $data );
93
94 return $response;
95 }
96
97 /**
98 * Register block
99 *
100 * @since 2.1
101 * @access public
102 *
103 * @access public
104 */
105 public function register_block() {
106 // Bailout.
107 if ( ! function_exists( 'register_block_type' ) ) {
108 return;
109 }
110
111 // Register block.
112 register_block_type(
113 'give/donation-form',
114 array(
115 'render_callback' => array( $this, 'render_donation_form' ),
116 'attributes' => array(
117 'id' => array(
118 'type' => 'number',
119 ),
120 'prevId' => array(
121 'type' => 'number',
122 ),
123 'displayStyle' => array(
124 'type' => 'string',
125 'default' => 'onpage',
126 ),
127 'continueButtonTitle' => array(
128 'type' => 'string',
129 'default' => '',
130 ),
131 'showTitle' => array(
132 'type' => 'boolean',
133 'default' => true,
134 ),
135 'showGoal' => array(
136 'type' => 'boolean',
137 'default' => true,
138 ),
139 'contentDisplay' => array(
140 'type' => 'boolean',
141 'default' => true,
142 ),
143 'showContent' => array(
144 'type' => 'string',
145 'default' => 'above',
146 ),
147 ),
148 )
149 );
150 }
151
152 /**
153 * Block render callback
154 *
155 * @param array $attributes Block parameters.
156 *
157 * @access public
158 * @return string;
159 */
160 public function render_donation_form( $attributes ) {
161 // Bailout.
162 if ( empty( $attributes['id'] ) ) {
163 return '';
164 }
165
166 $parameters = array();
167
168 $parameters['id'] = absint( $attributes['id'] );
169 $parameters['show_title'] = $attributes['showTitle'];
170 $parameters['show_goal'] = $attributes['showGoal'];
171 $parameters['show_content'] = ! empty( $attributes['contentDisplay'] ) ? $attributes['showContent'] : 'none';
172 $parameters['display_style'] = $attributes['displayStyle'];
173 $parameters['continue_button_title'] = trim( $attributes['continueButtonTitle'] );
174
175 return give_form_shortcode( $parameters );
176 }
177
178 /**
179 * This function is used to fetch donation forms based on the chosen search in the donation form block.
180 *
181 * @since 2.5.3
182 * @access public
183 *
184 * @return void
185 */
186 public function block_donation_form_search_results() {
187
188 // Define variables.
189 $result = array();
190 $post_data = give_clean( $_POST );
191 $search_keyword = ! empty( $post_data['search'] ) ? $post_data['search'] : '';
192
193 // Setup the arguments to fetch the donation forms.
194 $forms_query = new Give_Forms_Query(
195 array(
196 's' => $search_keyword,
197 'number' => 30,
198 'post_status' => 'publish',
199 )
200 );
201
202 // Fetch the donation forms.
203 $forms = $forms_query->get_forms();
204
205 // Loop through each donation form.
206 foreach ( $forms as $form ) {
207 $result[] = array(
208 'id' => $form->ID,
209 'name' => $form->post_title,
210 );
211 }
212
213 echo wp_json_encode( $result );
214 give_die();
215 }
216 }
217
218 Give_Donation_Form_Block::get_instance();
219