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