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