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
DonationHistoryWidget.php
322 lines
| 1 | <?php |
| 2 | |
| 3 | namespace Give\ThirdPartySupport\Elementor\Widgets\V1; |
| 4 | |
| 5 | use Elementor\Widget_Base; |
| 6 | |
| 7 | /** |
| 8 | * Elementor Donation History Widget. |
| 9 | * |
| 10 | * Elementor widget that inserts the GiveWP [donation_history] 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 DonationHistoryWidget extends Widget_Base |
| 16 | { |
| 17 | /** |
| 18 | * Get widget name. |
| 19 | * |
| 20 | * Retrieve Donation History 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 'Donation History'; |
| 30 | } |
| 31 | |
| 32 | /** |
| 33 | * Get widget title. |
| 34 | * |
| 35 | * Retrieve Donation History 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 Donation History (Legacy)', 'give'); |
| 45 | } |
| 46 | |
| 47 | /** |
| 48 | * Get widget icon. |
| 49 | * |
| 50 | * Retrieve Donation History 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 Donation History 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 Donation History 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 | 'donation_history_settings', |
| 102 | [ |
| 103 | 'label' => __('Donation History Widget', 'give'), |
| 104 | 'tab' => \Elementor\Controls_Manager::TAB_CONTENT, |
| 105 | ] |
| 106 | ); |
| 107 | |
| 108 | $this->add_control( |
| 109 | 'form_id', |
| 110 | [ |
| 111 | 'label' => __('ID', 'give'), |
| 112 | 'type' => \Elementor\Controls_Manager::SWITCHER, |
| 113 | 'description' => __('Show or hide the "ID" column.', 'give'), |
| 114 | 'label_on' => __('Show', 'give'), |
| 115 | 'label_off' => __('Hide', 'give'), |
| 116 | 'default' => 'yes' |
| 117 | ] |
| 118 | ); |
| 119 | |
| 120 | $this->add_control( |
| 121 | 'date', |
| 122 | [ |
| 123 | 'label' => __('Date', 'give'), |
| 124 | 'type' => \Elementor\Controls_Manager::SWITCHER, |
| 125 | 'description' => __('Show or hide a column with the date of the donation.', 'give'), |
| 126 | 'label_on' => __('Show', 'give'), |
| 127 | 'label_off' => __('Hide', 'give'), |
| 128 | 'default' => 'yes' |
| 129 | ] |
| 130 | ); |
| 131 | |
| 132 | $this->add_control( |
| 133 | 'donor', |
| 134 | [ |
| 135 | 'label' => __('Donor', 'give'), |
| 136 | 'type' => \Elementor\Controls_Manager::SWITCHER, |
| 137 | 'description' => __('Show or hide a column with the donors full name.', 'give'), |
| 138 | 'label_on' => __('Show', 'give'), |
| 139 | 'label_off' => __('Hide', 'give'), |
| 140 | 'default' => 'no' |
| 141 | ] |
| 142 | ); |
| 143 | |
| 144 | $this->add_control( |
| 145 | 'amount', |
| 146 | [ |
| 147 | 'label' => __('Amount', 'give'), |
| 148 | 'type' => \Elementor\Controls_Manager::SWITCHER, |
| 149 | 'description' => __('Show or hide a column with the amount of the donation.', 'give'), |
| 150 | 'label_on' => __('Show', 'give'), |
| 151 | 'label_off' => __('Hide', 'give'), |
| 152 | 'default' => 'yes' |
| 153 | ] |
| 154 | ); |
| 155 | |
| 156 | $this->add_control( |
| 157 | 'status', |
| 158 | [ |
| 159 | 'label' => __('Status', 'give'), |
| 160 | 'type' => \Elementor\Controls_Manager::SWITCHER, |
| 161 | 'description' => __('Show or hide a column with the status of the payment.', 'give'), |
| 162 | 'label_on' => __('Show', 'give'), |
| 163 | 'label_off' => __('Hide', 'give'), |
| 164 | 'default' => 'no' |
| 165 | ] |
| 166 | ); |
| 167 | |
| 168 | $this->add_control( |
| 169 | 'method', |
| 170 | [ |
| 171 | 'label' => __('Payment Method', 'give'), |
| 172 | 'type' => \Elementor\Controls_Manager::SWITCHER, |
| 173 | 'description' => __('Show or hide a column with the name of the payment method.', 'give'), |
| 174 | 'label_on' => __('Show', 'give'), |
| 175 | 'label_off' => __('Hide', 'give'), |
| 176 | 'default' => 'no' |
| 177 | ] |
| 178 | ); |
| 179 | |
| 180 | $this->add_control( |
| 181 | 'give_history_info', |
| 182 | [ |
| 183 | 'label' => '', |
| 184 | 'type' => \Elementor\Controls_Manager::RAW_HTML, |
| 185 | 'content_classes' => 'give-info', |
| 186 | 'raw' => ' |
| 187 | <div class="give"> |
| 188 | <p class="info-head"> |
| 189 | ' . __('GIVEWP DONATION HISTORY WIDGET', 'give') . '</p> |
| 190 | <p class="info-message">' . __('This is the GiveWP Donation History widget. Choose which columns you want to have appear for your donors history.', 'give') . '</p> |
| 191 | <p class="give-docs-links"> |
| 192 | <a href="https://givewp.com/documentation/core/shortcodes/donation_history/?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 Donation History.', 'give') . '</a> |
| 193 | </p> |
| 194 | </div>' |
| 195 | ] |
| 196 | ); |
| 197 | |
| 198 | $this->end_controls_section(); |
| 199 | } |
| 200 | |
| 201 | /** |
| 202 | * Render the [donation_history] output on the frontend. |
| 203 | * |
| 204 | * Written in PHP and used to generate the final HTML. |
| 205 | * |
| 206 | * @since 4.7.0 migrated from givewp-elementor-widgets |
| 207 | * @access protected |
| 208 | */ |
| 209 | protected function render() |
| 210 | { |
| 211 | $settings = $this->get_settings_for_display(); |
| 212 | |
| 213 | $id = ('yes' === $settings['form_id'] ? '' : 'id="false"'); |
| 214 | $donor = ('yes' === $settings['donor'] ? 'donor="true"' : ''); |
| 215 | $date = ('yes' === $settings['date'] ? '' : 'date="false"'); |
| 216 | $amount = ('yes' === $settings['amount'] ? '' : 'amount="false"'); |
| 217 | $status = ('yes' === $settings['status'] ? 'status="true"' : ''); |
| 218 | $method = ('yes' === $settings['method'] ? 'payment_method="true"' : ''); |
| 219 | |
| 220 | if (!\Elementor\Plugin::$instance->editor->is_edit_mode()) { |
| 221 | $html = do_shortcode( |
| 222 | ' |
| 223 | [donation_history ' |
| 224 | . $id . ' ' |
| 225 | . $donor . ' ' |
| 226 | . $date . ' ' |
| 227 | . $amount . ' ' |
| 228 | . $status . ' ' |
| 229 | . $method . |
| 230 | ']' |
| 231 | ); |
| 232 | } else { |
| 233 | ob_start(); ?> |
| 234 | <style> |
| 235 | .give-mobile-title {display:none;} |
| 236 | </style> |
| 237 | <table id="give_user_history" class="give-table"> |
| 238 | <thead> |
| 239 | <tr class="give-donation-row"> |
| 240 | <?php if ($settings['form_id'] === 'yes'): ?><th scope="col" class="give-donation-id>">ID</th><?php endif; ?> |
| 241 | <?php if ($settings['date'] === 'yes'): ?><th scope="col" class="give-donation-date>">Date</th><?php endif; ?> |
| 242 | <?php if ($settings['donor'] === 'yes'): ?><th scope="col" class="give-donation-donor>">Donor</th><?php endif; ?> |
| 243 | <?php if ($settings['amount'] === 'yes'): ?><th scope="col" class="give-donation-amount>">Amount</th><?php endif; ?> |
| 244 | <?php if ($settings['status'] === 'yes'): ?><th scope="col" class="give-donation-status>">Status</th><?php endif; ?> |
| 245 | <?php if ($settings['method'] === 'yes'): ?><th scope="col" class="give-donation-payment_method>">Payment Method</th><?php endif; ?> |
| 246 | <th scope="col" class="give-donation-details>">Details</th> |
| 247 | </tr> |
| 248 | </thead> |
| 249 | <tbody> |
| 250 | <tr class="give-donation-row"> |
| 251 | <?php if ($settings['form_id'] === 'yes'): ?><td class="give-donation-id"><span class="give-mobile-title">ID</span>57</td><?php endif; ?> |
| 252 | <?php if ($settings['date'] === 'yes'): ?><td class="give-donation-date"><span class="give-mobile-title">Date</span>April 28, 2020</td><?php endif; ?> |
| 253 | <?php if ($settings['donor'] === 'yes'): ?><td class="give-donation-donor"><span class="give-mobile-title">Donor</span>Test Donor</td><?php endif; ?> |
| 254 | <?php if ($settings['amount'] === 'yes'): ?><td class="give-donation-amount"> |
| 255 | <span class="give-mobile-title">Amount</span> <span class="give-donation-amount"> |
| 256 | $500.00 </span> |
| 257 | </td><?php endif; ?> |
| 258 | |
| 259 | <?php if ($settings['status'] === 'yes'): ?><td class="give-donation-status"><span class="give-mobile-title">Status</span>Complete</td><?php endif; ?> |
| 260 | <?php if ($settings['method'] === 'yes'): ?><td class="give-donation-payment-method"><span class="give-mobile-title">Payment Method</span>Test Donation</td><?php endif; ?> |
| 261 | <td class="give-donation-details"> |
| 262 | <span class="give-mobile-title">Details</span><a href="#">View Receipt »</a> </td> |
| 263 | </tr> |
| 264 | <tr class="give-donation-row"> |
| 265 | <?php if ($settings['form_id'] === 'yes'): ?><td class="give-donation-id"><span class="give-mobile-title">ID</span>41</td><?php endif; ?> |
| 266 | <?php if ($settings['date'] === 'yes'): ?><td class="give-donation-date"><span class="give-mobile-title">Date</span>January 2, 2020</td><?php endif; ?> |
| 267 | <?php if ($settings['donor'] === 'yes'): ?><td class="give-donation-donor"><span class="give-mobile-title">Donor</span>Test Donor</td><?php endif; ?> |
| 268 | <?php if ($settings['amount'] === 'yes'): ?><td class="give-donation-amount"> |
| 269 | <span class="give-mobile-title">Amount</span> <span class="give-donation-amount"> |
| 270 | $25.00 </span> |
| 271 | </td><?php endif; ?> |
| 272 | |
| 273 | <?php if ($settings['status'] === 'yes'): ?><td class="give-donation-status"><span class="give-mobile-title">Status</span>Complete</td><?php endif; ?> |
| 274 | <?php if ($settings['method'] === 'yes'): ?><td class="give-donation-payment-method"><span class="give-mobile-title">Payment Method</span>Test Donation</td><?php endif; ?> |
| 275 | <td class="give-donation-details"> |
| 276 | <span class="give-mobile-title">Details</span><a href="#">View Receipt »</a> </td> |
| 277 | </tr> |
| 278 | <tr class="give-donation-row"> |
| 279 | <?php if ($settings['form_id'] === 'yes'): ?><td class="give-donation-id"><span class="give-mobile-title">ID</span>38</td><?php endif; ?> |
| 280 | <?php if ($settings['date'] === 'yes'): ?><td class="give-donation-date"><span class="give-mobile-title">Date</span>December 15, 2019</td><?php endif; ?> |
| 281 | <?php if ($settings['donor'] === 'yes'): ?><td class="give-donation-donor"><span class="give-mobile-title">Donor</span>Test Donor</td><?php endif; ?> |
| 282 | <?php if ($settings['amount'] === 'yes'): ?><td class="give-donation-amount"> |
| 283 | <span class="give-mobile-title">Amount</span> <span class="give-donation-amount"> |
| 284 | $50.00 </span> |
| 285 | </td><?php endif; ?> |
| 286 | |
| 287 | <?php if ($settings['status'] === 'yes'): ?><td class="give-donation-status"><span class="give-mobile-title">Status</span>Complete</td><?php endif; ?> |
| 288 | <?php if ($settings['method'] === 'yes'): ?><td class="give-donation-payment-method"><span class="give-mobile-title">Payment Method</span>Test Donation</td><?php endif; ?> |
| 289 | <td class="give-donation-details"> |
| 290 | <span class="give-mobile-title">Details</span><a href="#">View Receipt »</a> </td> |
| 291 | </tr> |
| 292 | <tr class="give-donation-row"> |
| 293 | <?php if ($settings['form_id'] === 'yes'): ?><td class="give-donation-id"><span class="give-mobile-title">ID</span>25</td><?php endif; ?> |
| 294 | <?php if ($settings['date'] === 'yes'): ?><td class="give-donation-date"><span class="give-mobile-title">Date</span>October 23, 2019</td><?php endif; ?> |
| 295 | <?php if ($settings['donor'] === 'yes'): ?><td class="give-donation-donor"><span class="give-mobile-title">Donor</span>Test Donor</td><?php endif; ?> |
| 296 | <?php if ($settings['amount'] === 'yes'): ?><td class="give-donation-amount"> |
| 297 | <span class="give-mobile-title">Amount</span> <span class="give-donation-amount"> |
| 298 | $28.00 </span> |
| 299 | </td><?php endif; ?> |
| 300 | |
| 301 | <?php if ($settings['status'] === 'yes'): ?><td class="give-donation-status"><span class="give-mobile-title">Status</span>Complete</td><?php endif; ?> |
| 302 | <?php if ($settings['method'] === 'yes'): ?><td class="give-donation-payment-method"><span class="give-mobile-title">Payment Method</span>Test Donation</td><?php endif; ?> |
| 303 | <td class="give-donation-details"> |
| 304 | <span class="give-mobile-title">Details</span><a href="#">View Receipt »</a> </td> |
| 305 | </tr> |
| 306 | |
| 307 | </tbody> |
| 308 | </table> |
| 309 | |
| 310 | <?php |
| 311 | ob_get_contents(); |
| 312 | $html = ob_get_clean(); |
| 313 | } |
| 314 | |
| 315 | echo '<div class="givewp-elementor-widget donation-history">'; |
| 316 | |
| 317 | echo $html; |
| 318 | |
| 319 | echo '</div>'; |
| 320 | } |
| 321 | } |
| 322 |