PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.4.5
GiveWP – Donation Plugin and Fundraising Platform v2.4.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 / donor-wall / class-give-donor-wall.php
give / blocks / donor-wall Last commit date
data 7 years ago edit 7 years ago class-give-donor-wall.php 7 years ago index.js 7 years ago
class-give-donor-wall.php
228 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 static private $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', 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( 'give/donor-wall', array(
86 'render_callback' => array( $this, 'render_block' ),
87 'attributes' => array(
88 'donorsPerPage' => array(
89 'type' => 'string',
90 'default' => '12',
91 ),
92 'formID' => array(
93 'type' => 'string',
94 'default' => '0',
95 ),
96 'orderBy' => array(
97 'type' => 'string',
98 'default' => 'post_date',
99 ),
100 'order' => array(
101 'type' => 'string',
102 'default' => 'DESC',
103 ),
104 'paged' => array(
105 'type' => 'string',
106 'default' => '1',
107 ),
108 'columns' => array(
109 'type' => 'string',
110 'default' => 'best-fit',
111 ),
112 'showAvatar' => array(
113 'type' => 'boolean',
114 'default' => true,
115 ),
116 'showName' => array(
117 'type' => 'boolean',
118 'default' => true,
119 ),
120 'showTotal' => array(
121 'type' => 'boolean',
122 'default' => true,
123 ),
124 'showDate' => array(
125 'type' => 'boolean',
126 'default' => true,
127 ),
128 'showComments' => array(
129 'type' => 'boolean',
130 'default' => true,
131 ),
132 'showAnonymous' => array(
133 'type' => 'boolean',
134 'default' => true,
135 ),
136 'onlyComments' => array(
137 'type' => 'boolean',
138 'default' => false,
139 ),
140 'commentLength' => array(
141 'type' => 'string',
142 'default' => '140',
143 ),
144 'readMoreText' => array(
145 'type' => 'string',
146 'default' => __( 'Read more', 'give' ),
147 ),
148 'loadMoreText' => array(
149 'type' => 'string',
150 'default' => __( 'Load more', 'give' ),
151 ),
152 'avatarSize' => array(
153 'type' => 'string',
154 'default' => '60',
155 ),
156 ),
157 ) );
158 }
159
160 /**
161 * Block render callback
162 *
163 * @param array $attributes Block parameters.
164 *
165 * @access public
166 * @return string;
167 */
168 public function render_block( $attributes ) {
169 $parameters = array(
170 'donors_per_page' => absint( $attributes['donorsPerPage'] ),
171 'form_id' => absint( $attributes['formID'] ),
172 'orderby' => $attributes['orderBy'],
173 'order' => $attributes['order'],
174 'pages' => absint( $attributes['paged'] ),
175 'columns' => $attributes['columns'],
176 'show_avatar' => $attributes['showAvatar'],
177 'show_name' => $attributes['showName'],
178 'show_total' => $attributes['showTotal'],
179 'show_time' => $attributes['showDate'],
180 'show_comments' => $attributes['showComments'],
181 'anonymous' => $attributes['showAnonymous'],
182 'comment_length' => absint( $attributes['commentLength'] ),
183 'only_comments' => $attributes['onlyComments'],
184 'readmore_text' => $attributes['readMoreText'],
185 'loadmore_text' => $attributes['loadMoreText'],
186 'avatar_size' => absint( $attributes['avatarSize'] ),
187 );
188
189 $html = Give_Donor_Wall::get_instance()->render_shortcode( $parameters );
190 $html = ! empty( $html ) ? $html : $this->blank_slate();
191
192 return $html;
193 }
194
195 /**
196 * Return formatted notice when shortcode return empty string
197 *
198 * @since 2.4.0
199 *
200 * @return string
201 */
202 private function blank_slate() {
203 if ( ! defined( 'REST_REQUEST' ) ) {
204 return '';
205 }
206
207 ob_start();
208
209 $content = array(
210 'image_url' => GIVE_PLUGIN_URL . 'assets/dist/images/give-icon-full-circle.svg',
211 'image_alt' => __( 'Give Icon', 'give' ),
212 'heading' => __( 'No donors found.', 'give' ),
213 'help' => sprintf(
214 /* translators: 1: Opening anchor tag. 2: Closing anchor tag. */
215 __( 'Need help? Learn more about %1$sDonors%2$s.', 'give' ),
216 '<a href="http://docs.givewp.com/core-donors/">',
217 '</a>'
218 ),
219 );
220
221 include_once GIVE_PLUGIN_DIR . 'includes/admin/views/blank-slate.php';
222
223 return ob_get_clean();
224 }
225 }
226
227 Give_Donor_Wall_Block::get_instance();
228