PluginProbe
GiveWP – Donation Plugin and Fundraising Platform / 4.16.9
GiveWP – Donation Plugin and Fundraising Platform v4.16.9
4.16.9 4.16.8.1 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 All 255 releases
give / src / Campaigns / ListTable / Columns / GoalColumn.php

GoalColumn.php in GiveWP – Donation Plugin and Fundraising Platform 4.16.9, at src/Campaigns/ListTable/Columns/GoalColumn.php

87 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 namespace Give\Campaigns\ListTable\Columns;
4
5 use Give\Campaigns\Models\Campaign;
6 use Give\Campaigns\Repositories\CampaignsDataRepository;
7 use Give\Framework\ListTable\ModelColumn;
8
9 /**
10 * @since 4.0.0
11 */
12 class GoalColumn extends ModelColumn
13 {
14 protected $useData = true;
15 protected $sortColumn = 'goal';
16
17 /**
18 * @since 4.0.0
19 */
20 public static function getId(): string
21 {
22 return 'goal';
23 }
24
25 /**
26 * @since 4.0.0
27 */
28 public function getLabel(): string
29 {
30 return __('Goal', 'give');
31 }
32
33 /**
34 * @since 4.0.0
35 *
36 * @param Campaign $model
37 */
38 public function getCellValue($model): string
39 {
40 /**
41 * @var CampaignsDataRepository $campaignsData
42 */
43 $campaignsData = $this->getListTableData();
44
45 $goalData = $campaignsData->getGoalData($model);
46
47 if ($goalData['goal'] === 0) {
48 return __('No Goal Set', 'give');
49 }
50
51 $template = '
52 <div
53 role="progressbar"
54 aria-labelledby="giveDonationFormsProgressBar-%1$d"
55 aria-valuenow="%2$s"
56 aria-valuemin="0"
57 aria-valuemax="100"
58 class="goalProgress"
59 >
60 <span style="width: %2$s%%"></span>
61 </div>
62 <div id="giveDonationFormsProgressBar-%1$d">
63 <span class="goal">%3$s</span>%4$s %5$s
64 </div>
65 ';
66
67 return sprintf(
68 $template,
69 $model->id,
70 $goalData['percentage'],
71 $goalData['actualFormatted'],
72 sprintf(
73 ' %s %s',
74 __('of', 'give'),
75 $goalData['goalFormatted']
76 ),
77 sprintf(
78 '<span style="opacity:%1$s" class="goalProgress--achieved"><img src="%2$s" alt="%3$s" />%4$s</span>',
79 apply_filters('givewp_list_table_goal_progress_achieved_opacity', $goalData['percentage'] >= 100 ? 1 : 0),
80 GIVE_PLUGIN_URL . 'build/assets/dist/images/list-table/star-icon.svg',
81 __('Goal achieved icon', 'give'),
82 __('Goal achieved!', 'give')
83 )
84 );
85 }
86 }
87