PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.16.3
GiveWP – Donation Plugin and Fundraising Platform v4.16.3
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 / src / ThirdPartySupport / Elementor / Widgets / V1 / GiveSubscriptionsWidget.php
give / src / ThirdPartySupport / Elementor / Widgets / V1 Last commit date
resources 10 months ago DonationHistoryWidget.php 10 months ago DonationReceiptWidget.php 10 months ago GiveDonorWallWidget.php 10 months ago GiveFormGridWidget.php 9 months ago GiveFormWidget.php 10 months ago GiveGoalWidget.php 10 months ago GiveLoginWidget.php 10 months ago GiveMultiFormGoalWidget.php 10 months ago GiveProfileEditorWidget.php 10 months ago GiveRegisterWidget.php 10 months ago GiveSubscriptionsWidget.php 10 months ago GiveTotalsWidget.php 10 months ago
GiveSubscriptionsWidget.php
309 lines
1 <?php
2
3 namespace Give\ThirdPartySupport\Elementor\Widgets\V1;
4
5 use Elementor\Widget_Base;
6
7 /**
8 * Elementor GiveWP Subscriptions Widget.
9 *
10 * Elementor widget that inserts the GiveWP [give_subscriptions] shortcode to output a donor's full donation history table.
11 *
12 * @since 4.7.0 migrated from givewp-elementor-widgets
13 */
14
15 class GiveSubscriptionsWidget extends Widget_Base
16 {
17 /**
18 * Get widget name.
19 *
20 * Retrieve GiveWP Subscriptions widget name.
21 *
22 * @since 4.7.0 migrated from givewp-elementor-widgets
23 * @access public
24 *
25 * @return string Widget name.
26 */
27 public function get_name()
28 {
29 return 'GiveWP Subscriptions';
30 }
31
32 /**
33 * Get widget title.
34 *
35 * Retrieve GiveWP Subscriptions widget title.
36 *
37 * @since 4.7.0 migrated from givewp-elementor-widgets
38 * @access public
39 *
40 * @return string Widget title.
41 */
42 public function get_title()
43 {
44 return __('Give Subscriptions (Legacy)', 'give');
45 }
46
47 /**
48 * Get widget icon.
49 *
50 * Retrieve GiveWP Subscriptions widget icon.
51 *
52 * @since 4.7.0 migrated from givewp-elementor-widgets
53 * @access public
54 *
55 * @return string Widget icon.
56 */
57 public function get_icon()
58 {
59 return 'give-icon';
60 }
61
62 /**
63 * Get widget categories.
64 *
65 * Retrieve the list of categories the GiveWP Subscriptions widget belongs to.
66 *
67 * @since 4.7.0 migrated from givewp-elementor-widgets
68 * @access public
69 *
70 * @return array Widget categories.
71 */
72 public function get_categories()
73 {
74 return ['givewp-category-legacy'];
75 }
76
77 /**
78 * Widget inner wrapper.
79 *
80 * Use optimized DOM structure, without the inner wrapper.
81 *
82 * @since 4.7.0 migrated from givewp-elementor-widgets
83 * @access public
84 */
85 public function has_widget_inner_wrapper(): bool
86 {
87 return false;
88 }
89
90 /**
91 * Register GiveWP Subscriptions widget controls.
92 *
93 * Adds different input fields to allow the user to change and customize the widget settings.
94 *
95 * @since 4.7.0 migrated from givewp-elementor-widgets
96 * @access protected
97 */
98 protected function register_controls()
99 {
100 $this->start_controls_section(
101 'give_subscriptions_settings',
102 [
103 'label' => __('GiveWP Subscriptions Widget', 'give'),
104 'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
105 ]
106 );
107
108 $this->add_control(
109 'show_status',
110 [
111 'label' => __('Status', 'give'),
112 'type' => \Elementor\Controls_Manager::SWITCHER,
113 'description' => __('Show or hide the subscription status column.', 'give'),
114 'label_on' => __('Show', 'give'),
115 'label_off' => __('Hide', 'give'),
116 'default' => 'yes'
117 ]
118 );
119
120 $this->add_control(
121 'show_renewal_date',
122 [
123 'label' => __('Renewal Date', 'give'),
124 'type' => \Elementor\Controls_Manager::SWITCHER,
125 'description' => __('Show or hide a column with the subscription renewal date.', 'give'),
126 'label_on' => __('Show', 'give'),
127 'label_off' => __('Hide', 'give'),
128 'default' => 'yes'
129 ]
130 );
131
132 $this->add_control(
133 'show_progress',
134 [
135 'label' => __('Progress', 'give'),
136 'type' => \Elementor\Controls_Manager::SWITCHER,
137 'description' => __('Show or hide a column with progress of the subscription.', 'give'),
138 'label_on' => __('Show', 'give'),
139 'label_off' => __('Hide', 'give'),
140 'default' => 'no'
141 ]
142 );
143
144 $this->add_control(
145 'show_start_date',
146 [
147 'label' => __('Start Date', 'give'),
148 'type' => \Elementor\Controls_Manager::SWITCHER,
149 'description' => __('Show or hide a column with the subscription start date.', 'give'),
150 'label_on' => __('Show', 'give'),
151 'label_off' => __('Hide', 'give'),
152 'default' => 'no'
153 ]
154 );
155
156 $this->add_control(
157 'show_end_date',
158 [
159 'label' => __('End Date', 'give'),
160 'type' => \Elementor\Controls_Manager::SWITCHER,
161 'description' => __('Show or hide a column with the subscription end date.', 'give'),
162 'label_on' => __('Show', 'give'),
163 'label_off' => __('Hide', 'give'),
164 'default' => 'no'
165 ]
166 );
167
168 $this->add_control(
169 'subscriptions_per_page',
170 [
171 'label' => __('Subscriptions per Page', 'give'),
172 'type' => \Elementor\Controls_Manager::TEXT,
173 'description' => __('The number of subscriptions to show before pagination appears.', 'give'),
174 'input_type' => 'number',
175 'default' => '30'
176 ]
177 );
178
179 $this->add_control(
180 'give_subscriptions_info',
181 [
182 'label' => '',
183 'type' => \Elementor\Controls_Manager::RAW_HTML,
184 'content_classes' => 'give-info',
185 'raw' => '
186 <div class="give">
187 <p class="info-head">
188 ' . __('GIVEWP SUBSCRIPTION HISTORY WIDGET', 'give') . '</p>
189 <p class="info-message">' . __('This is the GiveWP Subscriptions widget. Choose which columns you want to have appear for your donors subscription history.', 'give') . '</p>
190 <p class="give-docs-links">
191 <a href="https://givewp.com/documentation/add-ons/recurring-donations/managing-subscriptions/?utm_source=plugin_settings&utm_medium=referral&utm_campaign=Free_Addons&utm_content=givelementor" rel="noopener noreferrer" target="_blank"><i class="fa fa-book" aria-hidden="true"></i>' . __('Visit the GiveWP Docs for more info on the GiveWP Subscriptions table.', 'give') . '</a>
192 </p>
193 </div>'
194 ]
195 );
196
197 $this->end_controls_section();
198 }
199
200 /**
201 * Render the [give_subscriptions] output on the frontend.
202 *
203 * Written in PHP and used to generate the final HTML.
204 *
205 * @since 4.7.0 migrated from givewp-elementor-widgets
206 * @access protected
207 */
208 protected function render()
209 {
210 $settings = $this->get_settings_for_display();
211
212 $showStatus = ('yes' === $settings['show_status'] ? '' : 'show_status="false"');
213 $showRenewalDate = ('yes' === $settings['show_renewal_date'] ? 'show_renewal_date="true"' : '');
214 $showProgress = ('yes' === $settings['show_progress'] ? '' : 'show_progress="false"');
215 $showStartDate = ('yes' === $settings['show_start_date'] ? '' : 'show_start_date="false"');
216 $showEndDate = ('yes' === $settings['show_end_date'] ? 'show_end_date="true"' : '');
217 $subscriptionsPerPage = ('yes' === $settings['subscriptions_per_page'] ? 'subscriptions_per_page="true"' : '');
218
219 if (!\Elementor\Plugin::$instance->editor->is_edit_mode()) {
220 $html = do_shortcode(
221 '
222 [give_subscriptions '
223 . $showStatus . ' '
224 . $showRenewalDate . ' '
225 . $showProgress . ' '
226 . $showStartDate . ' '
227 . $showEndDate . ' '
228 . $subscriptionsPerPage .
229 ']'
230 );
231 } else {
232 ob_start(); ?>
233 <table id="give_user_history" class="give-table">
234 <thead>
235 <tr class="give_purchase_row">
236 <th><?php _e('Subscription', 'give'); ?></th>
237 <?php if ('yes' === $settings['show_status']) : ?>
238 <th><?php _e('Status', 'give'); ?></th>
239 <?php endif; ?>
240 <?php if ('yes' === $settings['show_renewal_date']) : ?>
241 <th><?php _e('Renewal Date', 'give'); ?></th>
242 <?php endif; ?>
243 <?php if ('yes' === $settings['show_progress']) : ?>
244 <th><?php _e('Progress', 'give'); ?></th>
245 <?php endif; ?>
246 <?php if ('yes' === $settings['show_start_date']) : ?>
247 <th><?php _e('Start Date', 'give'); ?></th>
248 <?php endif; ?>
249 <?php if ('yes' === $settings['show_end_date']) : ?>
250 <th><?php _e('End Date', 'give'); ?></th>
251 <?php endif; ?>
252 <th><?php _e('Actions', 'give'); ?></th>
253 </tr>
254 </thead>
255 <tbody>
256 <tr>
257 <td>
258 <span class="give-subscription-name"><?php _e('Form with a Goal', 'give'); ?></span><br>
259 <span class="give-subscription-billing-cycle">
260 $25.00 / <?php _e('Monthly', 'give'); ?> </span>
261 </td>
262 <?php if ('yes' === $settings['show_status']) : ?>
263 <td>
264 <span class="give-subscription-status"><span class="give-donation-status status-active"><span class="give-donation-status-icon"></span> <?php _e('Active', 'give'); ?></span></span>
265 </td>
266 <?php endif; ?>
267 <?php if ('yes' === $settings['show_renewal_date']) : ?>
268 <td>
269 <span class="give-subscription-renewal-date">
270 <?php _e('Auto renew on June 4, 2020', 'give'); ?> </span>
271 </td>
272 <?php endif; ?>
273 <?php if ('yes' === $settings['show_progress']) : ?>
274 <td>
275 <span class="give-subscription-times-billed">1 / <?php _e('Ongoing', 'give'); ?></span>
276 </td>
277 <?php endif; ?>
278 <?php if ('yes' === $settings['show_start_date']) : ?>
279 <td>
280 <?php _e('May 4, 2020', 'give'); ?>
281 </td>
282 <?php endif; ?>
283 <?php if ('yes' === $settings['show_end_date']) : ?>
284 <td>
285 <?php _e('Ongoing', 'give'); ?>
286 </td>
287 <?php endif; ?>
288 <td>
289 <a href="#"><?php _e('View Receipt', 'give'); ?></a>
290 &nbsp;|&nbsp;
291 <a href="#" class="give-cancel-subscription"><?php _e('Cancel', 'give'); ?></a>
292 </td>
293 </tr>
294 </tbody>
295 </table>
296
297 <?php
298 ob_get_contents();
299 $html = ob_get_clean();
300 }
301
302 echo '<div class="givewp-elementor-widget donation-history">';
303
304 echo $html;
305
306 echo '</div>';
307 }
308 }
309