PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.11.1
GiveWP – Donation Plugin and Fundraising Platform v2.11.1
4.16.7.2 4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 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-grid / class-give-donation-form-grid-block.php
give / blocks / donation-form-grid Last commit date
data 6 years ago edit 6 years ago class-give-donation-form-grid-block.php 6 years ago index.js 6 years ago
class-give-donation-form-grid-block.php
214 lines
1 <?php
2 /**
3 * Give Donation Grid Block Class
4 *
5 * @package Give
6 * @subpackage Classes/Blocks
7 * @copyright Copyright (c) 2019, 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_Grid_Block Class.
19 *
20 * This class handles donation forms block.
21 *
22 * @since 2.0.2
23 */
24 class Give_Donation_Form_Grid_Block {
25 /**
26 * Instance.
27 *
28 * @since
29 * @access private
30 * @var Give_Donation_Form_Grid_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_Grid_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 }
72
73 /**
74 * Register block
75 *
76 * @access public
77 */
78 public function register_block() {
79 // Bailout.
80 if ( ! function_exists( 'register_block_type' ) ) {
81 return;
82 }
83
84 // Register block.
85 register_block_type(
86 'give/donation-form-grid',
87 array(
88 'render_callback' => array( $this, 'render_block' ),
89 'attributes' => array(
90 'formsPerPage' => array(
91 'type' => 'string',
92 'default' => '12',
93 ),
94 'formIDs' => array(
95 'type' => 'string',
96 'default' => '',
97 ),
98 'excludedFormIDs' => array(
99 'type' => 'string',
100 'default' => '',
101 ),
102 'orderBy' => array(
103 'type' => 'string',
104 'default' => 'date',
105 ),
106 'order' => array(
107 'type' => 'string',
108 'default' => 'DESC',
109 ),
110 'categories' => array(
111 'type' => 'string',
112 'default' => '',
113 ),
114 'tags' => array(
115 'type' => 'string',
116 'default' => '',
117 ),
118 'columns' => array(
119 'type' => 'string',
120 'default' => 'best-fit',
121 ),
122 'showTitle' => array(
123 'type' => 'boolean',
124 'default' => true,
125 ),
126 'showExcerpt' => array(
127 'type' => 'boolean',
128 'default' => true,
129 ),
130 'showGoal' => array(
131 'type' => 'boolean',
132 'default' => true,
133 ),
134 'showFeaturedImage' => array(
135 'type' => 'boolean',
136 'default' => true,
137 ),
138 'displayType' => array(
139 'type' => 'string',
140 'default' => 'redirect',
141 ),
142 ),
143 )
144 );
145 }
146
147 /**
148 * Block render callback
149 *
150 * @param array $attributes Block parameters.
151 *
152 * @access public
153 * @return string;
154 */
155 public function render_block( $attributes ) {
156 $parameters = array(
157 'forms_per_page' => absint( $attributes['formsPerPage'] ),
158 'ids' => $attributes['formIDs'],
159 'exclude' => $attributes['excludedFormIDs'],
160 'orderby' => $attributes['orderBy'],
161 'order' => $attributes['order'],
162 'cats' => $attributes['categories'],
163 'tags' => $attributes['tags'],
164 'columns' => $attributes['columns'],
165 'show_title' => $attributes['showTitle'],
166 'show_goal' => $attributes['showGoal'],
167 'show_excerpt' => $attributes['showExcerpt'],
168 'show_featured_image' => $attributes['showFeaturedImage'],
169 'display_style' => $attributes['displayType'],
170 );
171
172 $html = give_form_grid_shortcode( $parameters );
173 $html = ! empty( $html ) ? $html : $this->blank_slate();
174
175 return $html;
176 }
177
178 /**
179 * Return formatted notice when shortcode return empty string
180 *
181 * @since 2.4.0
182 *
183 * @return string
184 */
185 private function blank_slate() {
186 if ( ! defined( 'REST_REQUEST' ) ) {
187 return '';
188 }
189
190 ob_start();
191
192 $content = array(
193 'image_url' => GIVE_PLUGIN_URL . 'assets/dist/images/give-icon-full-circle.svg',
194 'image_alt' => __( 'Give Icon', 'give' ),
195 'heading' => __( 'No donation forms found.', 'give' ),
196 'message' => __( 'The first step towards accepting online donations is to create a form.', 'give' ),
197 'cta_text' => __( 'Create Donation Form', 'give' ),
198 'cta_link' => admin_url( 'post-new.php?post_type=give_forms' ),
199 'help' => sprintf(
200 /* translators: 1: Opening anchor tag. 2: Closing anchor tag. */
201 __( 'Need help? Get started with %1$sGive 101%2$s.', 'give' ),
202 '<a href="http://docs.givewp.com/give101/" target="_blank">',
203 '</a>'
204 ),
205 );
206
207 include_once GIVE_PLUGIN_DIR . 'includes/admin/views/blank-slate.php';
208
209 return ob_get_clean();
210 }
211 }
212
213 Give_Donation_Form_Grid_Block::get_instance();
214