PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.7.5
GiveWP – Donation Plugin and Fundraising Platform v2.7.5
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 / donor-wall / class-give-donor-wall.php
give / blocks / donor-wall Last commit date
data 5 years ago edit 5 years ago class-give-donor-wall.php 5 years ago index.js 6 years ago
class-give-donor-wall.php
236 lines
1 <?php
2 /**
3 * Give Donor Wall Block Class
4 *
5 * @package Give
6 * @subpackage Classes/Blocks
7 * @copyright Copyright (c) 2016, GiveWP
8 * @license https://opensource.org/licenses/gpl-license GNU Public License
9 * @since 2.3.0
10 */
11
12 // Exit if accessed directly.
13 if ( ! defined( 'ABSPATH' ) ) {
14 exit;
15 }
16
17 /**
18 * Give_Donor_Wall_Block Class.
19 *
20 * This class handles donation forms block.
21 *
22 * @since 2.3.0
23 */
24 class Give_Donor_Wall_Block {
25 /**
26 * Instance.
27 *
28 * @since
29 * @access private
30 * @var Give_Donor_Wall_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_Donor_Wall_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.3.0
67 * @access private
68 */
69 private function init() {
70 add_action( 'init', [ $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/donor-wall',
87 [
88 'render_callback' => [ $this, 'render_block' ],
89 'attributes' => [
90 'donorsPerPage' => [
91 'type' => 'string',
92 'default' => '12',
93 ],
94 'formID' => [
95 'type' => 'string',
96 'default' => '0',
97 ],
98 'ids' => [
99 'type' => 'string',
100 'default' => '',
101 ],
102 'orderBy' => [
103 'type' => 'string',
104 'default' => 'post_date',
105 ],
106 'order' => [
107 'type' => 'string',
108 'default' => 'DESC',
109 ],
110 'paged' => [
111 'type' => 'string',
112 'default' => '1',
113 ],
114 'columns' => [
115 'type' => 'string',
116 'default' => 'best-fit',
117 ],
118 'showAvatar' => [
119 'type' => 'boolean',
120 'default' => true,
121 ],
122 'showName' => [
123 'type' => 'boolean',
124 'default' => true,
125 ],
126 'showTotal' => [
127 'type' => 'boolean',
128 'default' => true,
129 ],
130 'showDate' => [
131 'type' => 'boolean',
132 'default' => true,
133 ],
134 'showComments' => [
135 'type' => 'boolean',
136 'default' => true,
137 ],
138 'showAnonymous' => [
139 'type' => 'boolean',
140 'default' => true,
141 ],
142 'onlyComments' => [
143 'type' => 'boolean',
144 'default' => false,
145 ],
146 'commentLength' => [
147 'type' => 'string',
148 'default' => '140',
149 ],
150 'readMoreText' => [
151 'type' => 'string',
152 'default' => __( 'Read more', 'give' ),
153 ],
154 'loadMoreText' => [
155 'type' => 'string',
156 'default' => __( 'Load more', 'give' ),
157 ],
158 'avatarSize' => [
159 'type' => 'string',
160 'default' => '60',
161 ],
162 ],
163 ]
164 );
165 }
166
167 /**
168 * Block render callback
169 *
170 * @param array $attributes Block parameters.
171 *
172 * @access public
173 * @return string;
174 */
175 public function render_block( $attributes ) {
176 $parameters = [
177 'donors_per_page' => absint( $attributes['donorsPerPage'] ),
178 'form_id' => absint( $attributes['formID'] ),
179 'ids' => $attributes['ids'],
180 'orderby' => $attributes['orderBy'],
181 'order' => $attributes['order'],
182 'pages' => absint( $attributes['paged'] ),
183 'columns' => $attributes['columns'],
184 'show_avatar' => $attributes['showAvatar'],
185 'show_name' => $attributes['showName'],
186 'show_total' => $attributes['showTotal'],
187 'show_time' => $attributes['showDate'],
188 'show_comments' => $attributes['showComments'],
189 'anonymous' => $attributes['showAnonymous'],
190 'comment_length' => absint( $attributes['commentLength'] ),
191 'only_comments' => $attributes['onlyComments'],
192 'readmore_text' => $attributes['readMoreText'],
193 'loadmore_text' => $attributes['loadMoreText'],
194 'avatar_size' => absint( $attributes['avatarSize'] ),
195 ];
196
197 $html = Give_Donor_Wall::get_instance()->render_shortcode( $parameters );
198 $html = ! empty( $html ) ? $html : $this->blank_slate();
199
200 return $html;
201 }
202
203 /**
204 * Return formatted notice when shortcode returns an empty string
205 *
206 * @since 2.4.0
207 *
208 * @return string
209 */
210 private function blank_slate() {
211 if ( ! defined( 'REST_REQUEST' ) ) {
212 return '';
213 }
214
215 ob_start();
216
217 $content = [
218 'image_url' => GIVE_PLUGIN_URL . 'assets/dist/images/give-icon-full-circle.svg',
219 'image_alt' => __( 'GiveWP Icon', 'give' ),
220 'heading' => __( 'No donors found.', 'give' ),
221 'help' => sprintf(
222 /* translators: 1: Opening anchor tag. 2: Closing anchor tag. */
223 __( 'Need help? Learn more about %1$sDonors%2$s.', 'give' ),
224 '<a href="http://docs.givewp.com/core-donors/">',
225 '</a>'
226 ),
227 ];
228
229 include_once GIVE_PLUGIN_DIR . 'includes/admin/views/blank-slate.php';
230
231 return ob_get_clean();
232 }
233 }
234
235 Give_Donor_Wall_Block::get_instance();
236