This project does not seem to handle request data directly as such no vulnerable execution paths were found.
include
, or for example
via PHP's auto-loading mechanism.
These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
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_format = give_get_form_goal_format( $form_id ); |
||
18 | $price = give_get_meta( $form_id, '_give_set_price', true ); |
||
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 | $goal_progress_stats = give_goal_progress_stats( $form ); |
||
23 | |||
24 | $income = $goal_progress_stats['raw_actual']; |
||
25 | $goal = $goal_progress_stats['raw_goal']; |
||
26 | |||
27 | switch ( $goal_format ) { |
||
28 | |||
29 | View Code Duplication | case 'donation': |
|
0 ignored issues
–
show
|
|||
30 | $progress = $goal ? round( ( $income / $goal ) * 100, 2 ) : 0; |
||
31 | $progress_bar_value = $income >= $goal ? 100 : $progress; |
||
32 | break; |
||
33 | |||
34 | View Code Duplication | case 'donors': |
|
0 ignored issues
–
show
This code seems to be duplicated across your project.
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation. You can also find more detailed suggestions in the “Code” section of your repository. ![]() |
|||
35 | $progress_bar_value = $goal ? round( ( $income / $goal ) * 100, 2 ) : 0; |
||
36 | $progress = $progress_bar_value; |
||
37 | break; |
||
38 | |||
39 | View Code Duplication | case 'percentage': |
|
0 ignored issues
–
show
This code seems to be duplicated across your project.
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation. You can also find more detailed suggestions in the “Code” section of your repository. ![]() |
|||
40 | $progress = $goal ? round( ( $income / $goal ) * 100, 2 ) : 0; |
||
41 | $progress_bar_value = $income >= $goal ? 100 : $progress; |
||
42 | break; |
||
43 | |||
44 | View Code Duplication | default: |
|
0 ignored issues
–
show
This code seems to be duplicated across your project.
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation. You can also find more detailed suggestions in the “Code” section of your repository. ![]() |
|||
45 | $progress = $goal ? round( ( $income / $goal ) * 100, 2 ) : 0; |
||
46 | $progress_bar_value = $income >= $goal ? 100 : $progress; |
||
47 | break; |
||
48 | |||
49 | } |
||
50 | |||
51 | /** |
||
52 | * Filter the goal progress output |
||
53 | * |
||
54 | * @since 1.8.8 |
||
55 | */ |
||
56 | $progress = apply_filters( 'give_goal_amount_funded_percentage_output', $progress, $form_id, $form ); |
||
57 | ?> |
||
58 | <div class="give-goal-progress"> |
||
59 | <?php if ( ! empty( $show_text ) ) : ?> |
||
60 | <div class="raised"> |
||
61 | <?php |
||
62 | if ( 'amount' === $goal_format ) : |
||
63 | |||
64 | /** |
||
65 | * Filter the give currency. |
||
66 | * |
||
67 | * @since 1.8.17 |
||
68 | */ |
||
69 | $form_currency = apply_filters( 'give_goal_form_currency', give_get_currency( $form_id ), $form_id ); |
||
70 | |||
71 | /** |
||
72 | * Filter the income formatting arguments. |
||
73 | * |
||
74 | * @since 1.8.17 |
||
75 | */ |
||
76 | $income_format_args = apply_filters( 'give_goal_income_format_args', array( |
||
77 | 'sanitize' => false, |
||
78 | 'currency' => $form_currency, |
||
79 | 'decimal' => false, |
||
80 | ), $form_id ); |
||
81 | |||
82 | /** |
||
83 | * Filter the goal formatting arguments. |
||
84 | * |
||
85 | * @since 1.8.17 |
||
86 | */ |
||
87 | $goal_format_args = apply_filters( 'give_goal_amount_format_args', array( |
||
88 | 'sanitize' => false, |
||
89 | 'currency' => $form_currency, |
||
90 | 'decimal' => false, |
||
91 | ), $form_id ); |
||
92 | |||
93 | /** |
||
94 | * This filter will be used to convert the goal amounts to different currencies. |
||
95 | * |
||
96 | * @since 2.5.4 |
||
97 | * |
||
98 | * @param array $amounts List of goal amounts. |
||
99 | * @param int $form_id Donation Form ID. |
||
100 | */ |
||
101 | $goal_amounts = apply_filters( |
||
102 | 'give_goal_amounts', |
||
103 | array( |
||
104 | $form_currency => $goal, |
||
105 | ), |
||
106 | $form_id |
||
107 | ); |
||
108 | |||
109 | /** |
||
110 | * This filter will be used to convert the income amounts to different currencies. |
||
111 | * |
||
112 | * @since 2.5.4 |
||
113 | * |
||
114 | * @param array $amounts List of goal amounts. |
||
115 | * @param int $form_id Donation Form ID. |
||
116 | */ |
||
117 | $income_amounts = apply_filters( |
||
118 | 'give_goal_raised_amounts', |
||
119 | array( |
||
120 | $form_currency => $income, |
||
121 | ), |
||
122 | $form_id |
||
123 | ); |
||
124 | |||
125 | // Get human readable donation amount. |
||
126 | $income = give_human_format_large_amount( give_format_amount( $income, $income_format_args ), array( 'currency' => $form_currency ) ); |
||
127 | $goal = give_human_format_large_amount( give_format_amount( $goal, $goal_format_args ), array( 'currency' => $form_currency ) ); |
||
128 | |||
129 | // Format the human readable donation amount. |
||
130 | $formatted_income = give_currency_filter( |
||
131 | $income, |
||
132 | array( |
||
133 | 'form_id' => $form_id, |
||
134 | ) |
||
135 | ); |
||
136 | |||
137 | $formatted_goal = give_currency_filter( |
||
138 | $goal, |
||
139 | array( |
||
140 | 'form_id' => $form_id, |
||
141 | ) |
||
142 | ); |
||
143 | |||
144 | echo sprintf( |
||
145 | /* translators: 1: amount of income raised 2: goal target amount. */ |
||
146 | __( '<span class="income" data-amounts="%1$s">%2$s</span> of <span class="goal-text" data-amounts="%3$s">%4$s</span> raised', 'give' ), |
||
147 | esc_attr( wp_json_encode( $income_amounts, JSON_PRETTY_PRINT ) ), |
||
148 | esc_attr( $formatted_income ), |
||
149 | esc_attr( wp_json_encode( $goal_amounts, JSON_PRETTY_PRINT ) ), |
||
150 | esc_attr( $formatted_goal ) |
||
151 | ); |
||
152 | |||
153 | elseif ( 'percentage' === $goal_format ) : |
||
154 | |||
155 | echo sprintf( /* translators: %s: percentage of the amount raised compared to the goal target */ |
||
156 | __( '<span class="give-percentage">%s%%</span> funded', 'give' ), |
||
157 | round( $progress ) |
||
158 | ); |
||
159 | |||
160 | View Code Duplication | elseif ( 'donation' === $goal_format ) : |
|
0 ignored issues
–
show
This code seems to be duplicated across your project.
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation. You can also find more detailed suggestions in the “Code” section of your repository. ![]() |
|||
161 | |||
162 | echo sprintf( /* translators: 1: total number of donations completed 2: total number of donations set as goal */ |
||
163 | _n( |
||
164 | '<span class="income">%1$s</span> of <span class="goal-text">%2$s</span> donation', |
||
165 | '<span class="income">%1$s</span> of <span class="goal-text">%2$s</span> donations', |
||
166 | $goal, |
||
167 | 'give' |
||
168 | ), |
||
169 | give_format_amount( $income, array( 'decimal' => false ) ), |
||
170 | give_format_amount( $goal, array( 'decimal' => false ) ) |
||
171 | ); |
||
172 | |||
173 | View Code Duplication | elseif ( 'donors' === $goal_format ) : |
|
0 ignored issues
–
show
This code seems to be duplicated across your project.
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation. You can also find more detailed suggestions in the “Code” section of your repository. ![]() |
|||
174 | |||
175 | echo sprintf( /* translators: 1: total number of donors completed 2: total number of donors set as goal */ |
||
176 | _n( |
||
177 | '<span class="income">%1$s</span> of <span class="goal-text">%2$s</span> donor', |
||
178 | '<span class="income">%1$s</span> of <span class="goal-text">%2$s</span> donors', |
||
179 | $goal, |
||
180 | 'give' |
||
181 | ), |
||
182 | give_format_amount( $income, array( 'decimal' => false ) ), |
||
183 | give_format_amount( $goal, array( 'decimal' => false ) ) |
||
184 | ); |
||
185 | |||
186 | endif; |
||
187 | ?> |
||
188 | </div> |
||
189 | <?php endif; ?> |
||
190 | |||
191 | |||
192 | <?php if ( ! empty( $show_bar ) ) : ?> |
||
193 | <div class="give-progress-bar" role="progressbar" aria-valuemin="0" aria-valuemax="100" |
||
194 | aria-valuenow="<?php echo esc_attr( $progress_bar_value ); ?>"> |
||
195 | <span style="width: <?php echo esc_attr( $progress_bar_value ); ?>%;<?php if ( ! empty( $color ) ) { |
||
196 | echo 'background-color:' . $color; |
||
197 | } ?>"></span> |
||
198 | </div><!-- /.give-progress-bar --> |
||
199 | <?php endif; ?> |
||
200 | |||
201 | </div><!-- /.goal-progress --> |
||
202 |
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.
You can also find more detailed suggestions in the “Code” section of your repository.