PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.22.3
GiveWP – Donation Plugin and Fundraising Platform v2.22.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 / templates / shortcode-goal.php
give / templates Last commit date
emails 6 years ago global 6 years ago receipt 7 years ago single-give-form 6 years ago email-login-form.php 6 years ago history-donations.php 4 years ago payment-processing.php 6 years ago shortcode-donor-wall.php 4 years ago shortcode-form-grid.php 3 years ago shortcode-goal.php 3 years ago shortcode-login.php 6 years ago shortcode-profile-editor.php 6 years ago shortcode-receipt.php 5 years ago shortcode-register.php 8 years ago shortcode-totals-progress.php 6 years ago single-give-form.php 6 years ago
shortcode-goal.php
244 lines
1 <?php
2
3 use Give\Log\Log;
4
5 /**
6 * This template is used to display the goal with [give_goal]
7 */
8
9 /**
10 * @var int $form_id form id passed from the give_show_goal_progress() context
11 */
12
13 if ( empty($form_id) ) {
14 Log::error('Failed to render [give_goal] shortcode.',
15 ['form_id' => $form_id,
16 'file' => '__templates/shortcode-goal.php__',
17 'line' => '10'
18 ]);
19 return false;
20 }
21
22 $form = new Give_Donate_Form( $form_id );
23
24 $goal_option = give_get_meta( $form->ID, '_give_goal_option', true );
25 // Sanity check - ensure form has pass all condition to show goal.
26 if ( ( isset( $args['show_goal'] ) && ! filter_var( $args['show_goal'], FILTER_VALIDATE_BOOLEAN ) )
27 || empty( $form->ID )
28 || ( is_singular( 'give_forms' ) && ! give_is_setting_enabled( $goal_option ) )
29 || ! give_is_setting_enabled( $goal_option ) || 0 === $form->goal ) {
30 return false;
31 }
32
33 $goal_progress_stats = give_goal_progress_stats( $form );
34 $goal_format = $goal_progress_stats['format'];
35 $color = give_get_meta( $form_id, '_give_goal_color', true );
36 $show_text = isset( $args['show_text'] ) ? filter_var( $args['show_text'], FILTER_VALIDATE_BOOLEAN ) : true;
37 $show_bar = isset( $args['show_bar'] ) ? filter_var( $args['show_bar'], FILTER_VALIDATE_BOOLEAN ) : true;
38
39 /**
40 * Allow filtering the goal stats used for this shortcode context.
41 *
42 * @unreleased
43 *
44 * @param array $stats The income and goal values for this form goal.
45 * @param int $form_id Donation Form ID.
46 * @param array $goal_progress_stats The full goal progress stats.
47 * @param array $args The full list of shortcode arguments passed.
48 */
49 $shortcode_stats = apply_filters(
50 'give_goal_shortcode_stats',
51 array(
52 'income' => $form->get_earnings(),
53 'goal' => $goal_progress_stats['raw_goal'],
54 ),
55 $form_id,
56 $goal_progress_stats,
57 $args
58 );
59 $income = $shortcode_stats['income'];
60 $goal = $shortcode_stats['goal'];
61
62 switch ( $goal_format ) {
63
64 case 'donation':
65 $progress = $goal ? round( ( $form->get_sales() / $goal ) * 100, 2 ) : 0;
66 $progress_bar_value = $form->get_sales() >= $goal ? 100 : $progress;
67 break;
68
69 case 'donors':
70 $progress = $goal ? round( ( give_get_form_donor_count( $form->ID ) / $goal ) * 100, 2 ) : 0;
71 $progress_bar_value = give_get_form_donor_count( $form->ID ) >= $goal ? 100 : $progress;
72 break;
73
74 case 'percentage':
75 $progress = $goal ? round( ( $income / $goal ) * 100, 2 ) : 0;
76 $progress_bar_value = $income >= $goal ? 100 : $progress;
77 break;
78
79 default:
80 $progress = $goal ? round( ( $income / $goal ) * 100, 2 ) : 0;
81 $progress_bar_value = $income >= $goal ? 100 : $progress;
82 break;
83
84 }
85
86 /**
87 * Filter the goal progress output
88 *
89 * @since 1.8.8
90 */
91 $progress = apply_filters( 'give_goal_amount_funded_percentage_output', $progress, $form_id, $form );
92 ?>
93 <div class="give-goal-progress">
94 <?php if ( ! empty( $show_text ) ) : ?>
95 <div class="raised">
96 <?php
97 if ( 'amount' === $goal_format ) :
98 /**
99 * Filter the give currency.
100 *
101 * @since 1.8.17
102 */
103 $form_currency = apply_filters( 'give_goal_form_currency', give_get_currency( $form_id ), $form_id );
104 /**
105 * Filter the income formatting arguments.
106 *
107 * @since 1.8.17
108 */
109 $income_format_args = apply_filters(
110 'give_goal_income_format_args',
111 array(
112 'sanitize' => false,
113 'currency' => $form_currency,
114 'decimal' => false,
115 ),
116 $form_id
117 );
118 /**
119 * Filter the goal formatting arguments.
120 *
121 * @since 1.8.17
122 */
123 $goal_format_args = apply_filters(
124 'give_goal_amount_format_args',
125 array(
126 'sanitize' => false,
127 'currency' => $form_currency,
128 'decimal' => false,
129 ),
130 $form_id
131 );
132 /**
133 * This filter will be used to convert the goal amounts to different currencies.
134 *
135 * @since 2.5.4
136 *
137 * @param array $amounts List of goal amounts.
138 * @param int $form_id Donation Form ID.
139 */
140 $goal_amounts = apply_filters(
141 'give_goal_amounts',
142 array(
143 $form_currency => $goal,
144 ),
145 $form_id
146 );
147 /**
148 * This filter will be used to convert the income amounts to different currencies.
149 *
150 * @since 2.5.4
151 *
152 * @param array $amounts List of goal amounts.
153 * @param int $form_id Donation Form ID.
154 */
155 $income_amounts = apply_filters(
156 'give_goal_raised_amounts',
157 array(
158 $form_currency => $income,
159 ),
160 $form_id
161 );
162 // Get human readable donation amount.
163 $income = give_human_format_large_amount( give_format_amount( $income, $income_format_args ), array( 'currency' => $form_currency ) );
164 $goal = give_human_format_large_amount( give_format_amount( $goal, $goal_format_args ), array( 'currency' => $form_currency ) );
165 // Format the human readable donation amount.
166 $formatted_income = give_currency_filter(
167 $income,
168 array(
169 'form_id' => $form_id,
170 )
171 );
172 $formatted_goal = give_currency_filter(
173 $goal,
174 array(
175 'form_id' => $form_id,
176 )
177 );
178
179 echo sprintf(
180 /* translators: 1: amount of income raised 2: goal target amount. */
181 __( '<span class="income" data-amounts="%1$s">%2$s</span> of <span class="goal-text" data-amounts="%3$s">%4$s</span> raised', 'give' ),
182 esc_attr( wp_json_encode( $income_amounts, JSON_PRETTY_PRINT ) ),
183 esc_attr( $formatted_income ),
184 esc_attr( wp_json_encode( $goal_amounts, JSON_PRETTY_PRINT ) ),
185
186 esc_attr( $formatted_goal )
187 );
188 elseif ( 'percentage' === $goal_format ) :
189
190 echo sprintf( /* translators: %s: percentage of the amount raised compared to the goal target */
191 __( '<span class="give-percentage">%s%%</span> funded', 'give' ),
192 round( $progress )
193 );
194
195 elseif ( 'donation' === $goal_format ) :
196
197 echo sprintf( /* translators: 1: total number of donations completed 2: total number of donations set as goal */
198 _n(
199 '<span class="income">%1$s</span> of <span class="goal-text">%2$s</span> donation',
200 '<span class="income">%1$s</span> of <span class="goal-text">%2$s</span> donations',
201 $goal,
202 'give'
203 ),
204
205 give_format_amount( $form->get_sales(), array( 'decimal' => false )),
206 give_format_amount( $goal, array( 'decimal' => false ))
207 );
208
209 elseif ( 'donors' === $goal_format ) :
210
211 echo sprintf( /* translators: 1: total number of donors completed 2: total number of donors set as goal */
212 _n(
213 '<span class="income">%1$s</span> of <span class="goal-text">%2$s</span> donor',
214 '<span class="income">%1$s</span> of <span class="goal-text">%2$s</span> donors',
215 $goal,
216 'give'
217 ),
218
219 give_format_amount( give_get_form_donor_count( $form->ID ), array( 'decimal' => false ) ),
220 give_format_amount( $goal, array( 'decimal' => false ) )
221 );
222
223 endif;
224 ?>
225 </div>
226 <?php endif; ?>
227
228 <?php if ( ! empty( $show_bar ) ) :
229 $style = "width:{$progress_bar_value}%";
230
231 if ( ! empty($color)) {
232 $style .= ";background: linear-gradient(180deg, {$color} 0%, {$color} 100%), linear-gradient(180deg, #fff 0%, #ccc 100%); background-blend-mode: multiply;";
233 }
234 ?>
235 <div class="progress-bar">
236 <div class="give-progress-bar" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="<?php echo esc_attr( $progress_bar_value ); ?>">
237 <span style="<?php echo $style; ?>"></span>
238 </div>
239 </div>
240 <?php endif; ?>
241
242 </div><!-- /.goal-progress -->
243
244