PluginProbe
GiveWP – Donation Plugin and Fundraising Platform / 3.2.0
GiveWP – Donation Plugin and Fundraising Platform v3.2.0
4.16.8 4.16.7.2 4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.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 All 253 releases
give / src / DonationForms / V2 / ListTable / Columns / GoalColumn.php
GoalColumn.php
89 lines 2.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 declare(strict_types=1);
4
5 namespace Give\DonationForms\V2\ListTable\Columns;
6
7 use Give\DonationForms\V2\Models\DonationForm;
8 use Give\Framework\ListTable\ModelColumn;
9
10 /**
11 * @since 2.24.0
12 *
13 * @extends ModelColumn<DonationForm>
14 */
15 class GoalColumn extends ModelColumn
16 {
17 /**
18 * @since 2.24.0
19 *
20 * @inheritDoc
21 */
22 public static function getId(): string
23 {
24 return 'goal';
25 }
26
27 /**
28 * @since 2.24.0
29 *
30 * @inheritDoc
31 */
32 public function getLabel(): string
33 {
34 return __('Goal', 'give');
35 }
36
37 /**
38 * @since 2.24.0
39 *
40 * @inheritDoc
41 *
42 * @param DonationForm $model
43 */
44 public function getCellValue($model): string
45 {
46 if ( ! $model->goalOption) {
47 return __('No Goal Set', 'give');
48 }
49
50 $goal = give_goal_progress_stats($model->id);
51 $goalPercentage = ('percentage' === $goal['format']) ? str_replace('%', '',
52 $goal['actual']) : max(min($goal['progress'], 100), 0);
53
54 $template = '
55 <div
56 role="progressbar"
57 aria-labelledby="giveDonationFormsProgressBar-%1$d"
58 aria-valuenow="%2$s"
59 aria-valuemin="0"
60 aria-valuemax="100"
61 class="goalProgress"
62 >
63 <span style="width: %2$s%%"></span>
64 </div>
65 <div id="giveDonationFormsProgressBar-%1$d">
66 <span class="goal">%3$s</span>%4$s %5$s
67 </div>
68 ';
69
70 return sprintf(
71 $template,
72 $model->id,
73 $goalPercentage,
74 $goal['actual'],
75 sprintf(
76 ($goal['format'] !== 'percentage' ? ' %s %s' : ''),
77 __('of', 'give'),
78 $goal['goal']
79 ),
80 sprintf(
81 ($goal['progress'] >= 100 ? '<span class="goalProgress--achieved"><img src="%1$s" alt="%2$s" />%3$s</span>' : ''),
82 GIVE_PLUGIN_URL . 'assets/dist/images/list-table/star-icon.svg',
83 __('Goal achieved icon', 'give'),
84 __('Goal achieved!', 'give')
85 )
86 );
87 }
88 }
89