SHOW:
|
|
- or go back to the newest paste.
| 1 | - | // http://pastebin.com/kHpaHQvi originally |
| 1 | + | <?php |
| 2 | // http://www.gravityhelp.com/forums/topic/show-total-donations | |
| 3 | // usage: [donations form=37] where 37 is the form ID | |
| 4 | add_shortcode('donations', 'total_donations');
| |
| 5 | function total_donations($atts) {
| |
| 6 | $form_id = $atts['form']; | |
| 7 | // function to pull all the entries for one form | |
| 8 | $donations = RGFormsModel::get_leads($form_id); | |
| 9 | // start the total at zero | |
| 10 | $total = 0; | |
| 11 | // initialize a counter for the number of donations made | |
| 12 | $i = 0; | |
| 13 | // loop through all the returned results | |
| 14 | foreach ($donations as $amount) {
| |
| 15 | // add each donation amount to the total | |
| 16 | - | // change 3 here to the field ID which holds the donation amount |
| 16 | + | // change [5] here to the field ID which holds the donation amount |
| 17 | - | $total += $amount[3]; |
| 17 | + | // the preg_replace will strip anything that is not a number or decimal |
| 18 | $numeric_amount = preg_replace('/[^0-9\.]/Uis', '', $amount[5]);
| |
| 19 | $total += $numeric_amount; | |
| 20 | // increment the counter so we know how many donations there are as well | |
| 21 | $i++; | |
| 22 | } | |
| 23 | // change this to your locale, or, if your locale is already defined, you can remove this line | |
| 24 | setlocale(LC_MONETARY, 'en_GB'); | |
| 25 | // do some formatting and return the html output from the shortcode | |
| 26 | $output = "We have raised " . money_format('%i', $total) . " from $i donors.";
| |
| 27 | // just the string above will be returned. You can style it here or where you are using the shortcode | |
| 28 | return $output; | |
| 29 | } | |
| 30 | // needed for the above to process the donation shortcode in sidebar widget | |
| 31 | add_filter('widget_text', 'do_shortcode'); |