PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.14.2
GiveWP – Donation Plugin and Fundraising Platform v3.14.2
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 / DonationForms / V2 / ListTable / Columns / GoalColumn.php
give / src / DonationForms / V2 / ListTable / Columns Last commit date
DateCreatedColumn.php 3 years ago DonationCountColumn.php 1 year ago DonationRevenueColumn.php 3 years ago GoalColumn.php 1 year ago IdColumn.php 3 years ago LevelsColumn.php 3 years ago ShortcodeColumn.php 3 years ago StatusColumn.php 3 years ago TitleColumn.php 2 years ago
GoalColumn.php
95 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace Give\DonationForms\V2\ListTable\Columns;
6
7 use Give\DonationForms\DonationQuery;
8 use Give\DonationForms\V2\Models\DonationForm;
9 use Give\Framework\ListTable\ModelColumn;
10
11 /**
12 * @since 2.24.0
13 *
14 * @extends ModelColumn<DonationForm>
15 */
16 class GoalColumn extends ModelColumn
17 {
18 /**
19 * @since 2.24.0
20 *
21 * @inheritDoc
22 */
23 public static function getId(): string
24 {
25 return 'goal';
26 }
27
28 /**
29 * @since 2.24.0
30 *
31 * @inheritDoc
32 */
33 public function getLabel(): string
34 {
35 return __('Goal', 'give');
36 }
37
38 /**
39 * @since 3.14.0 Use the 'give_get_form_earnings_stats" filter to ensure the correct value will be displayed in the form progress bar
40 * @since 2.24.0
41 *
42 * @inheritDoc
43 *
44 * @param DonationForm $model
45 */
46 public function getCellValue($model): string
47 {
48 if ( ! $model->goalOption) {
49 return __('No Goal Set', 'give');
50 }
51
52 add_filter('give_get_form_earnings_stats', function ($earnings, $donationFormId) {
53 return (new DonationQuery())->form($donationFormId)->sumAmount();
54 }, 10, 2);
55
56 $goal = give_goal_progress_stats($model->id);
57 $goalPercentage = ('percentage' === $goal['format']) ? str_replace('%', '',
58 $goal['actual']) : max(min($goal['progress'], 100), 0);
59
60 $template = '
61 <div
62 role="progressbar"
63 aria-labelledby="giveDonationFormsProgressBar-%1$d"
64 aria-valuenow="%2$s"
65 aria-valuemin="0"
66 aria-valuemax="100"
67 class="goalProgress"
68 >
69 <span style="width: %2$s%%"></span>
70 </div>
71 <div id="giveDonationFormsProgressBar-%1$d">
72 <span class="goal">%3$s</span>%4$s %5$s
73 </div>
74 ';
75
76 return sprintf(
77 $template,
78 $model->id,
79 $goalPercentage,
80 $goal['actual'],
81 sprintf(
82 ($goal['format'] !== 'percentage' ? ' %s %s' : ''),
83 __('of', 'give'),
84 $goal['goal']
85 ),
86 sprintf(
87 ($goal['progress'] >= 100 ? '<span class="goalProgress--achieved"><img src="%1$s" alt="%2$s" />%3$s</span>' : ''),
88 GIVE_PLUGIN_URL . 'assets/dist/images/list-table/star-icon.svg',
89 __('Goal achieved icon', 'give'),
90 __('Goal achieved!', 'give')
91 )
92 );
93 }
94 }
95