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