1 | <?php |
||||
2 | /** |
||||
3 | * Meta Box Subscription Info |
||||
4 | * |
||||
5 | * @author Pronamic <[email protected]> |
||||
6 | * @copyright 2005-2019 Pronamic |
||||
7 | * @license GPL-3.0-or-later |
||||
8 | * @package Pronamic\WordPress\Pay |
||||
9 | */ |
||||
10 | |||||
11 | use Pronamic\WordPress\Pay\Core\PaymentMethods; |
||||
12 | use Pronamic\WordPress\Pay\Core\Statuses; |
||||
13 | use Pronamic\WordPress\Pay\Util; |
||||
14 | |||||
15 | $post_id = get_the_ID(); |
||||
16 | |||||
17 | if ( empty( $post_id ) ) { |
||||
18 | return; |
||||
19 | } |
||||
20 | |||||
21 | $subscription = get_pronamic_subscription( $post_id ); |
||||
22 | |||||
23 | ?> |
||||
24 | <table class="form-table"> |
||||
25 | <tr> |
||||
26 | <th scope="row"> |
||||
27 | <?php esc_html_e( 'Date', 'pronamic_ideal' ); ?> |
||||
28 | </th> |
||||
29 | <td> |
||||
30 | <?php the_time( __( 'l jS \o\f F Y, h:ia', 'pronamic_ideal' ) ); ?> |
||||
31 | </td> |
||||
32 | </tr> |
||||
33 | <tr> |
||||
34 | <th scope="row"> |
||||
35 | <?php esc_html_e( 'ID', 'pronamic_ideal' ); ?> |
||||
36 | </th> |
||||
37 | <td> |
||||
38 | <?php echo esc_html( $post_id ); ?> |
||||
39 | </td> |
||||
40 | </tr> |
||||
41 | <tr> |
||||
42 | <th scope="row"> |
||||
43 | <?php esc_html_e( 'Status', 'pronamic_ideal' ); ?> |
||||
44 | </th> |
||||
45 | <td> |
||||
46 | <?php |
||||
47 | |||||
48 | $status_object = get_post_status_object( get_post_status( $post_id ) ); |
||||
0 ignored issues
–
show
Bug
introduced
by
![]() |
|||||
49 | |||||
50 | if ( isset( $status_object, $status_object->label ) ) { |
||||
51 | echo esc_html( $status_object->label ); |
||||
52 | } else { |
||||
53 | echo '—'; |
||||
54 | } |
||||
55 | |||||
56 | ?> |
||||
57 | </td> |
||||
58 | </tr> |
||||
59 | <tr> |
||||
60 | <th scope="row"> |
||||
61 | <?php esc_html_e( 'Description', 'pronamic_ideal' ); ?> |
||||
62 | </th> |
||||
63 | <td> |
||||
64 | <?php echo esc_html( $subscription->get_description() ); ?> |
||||
65 | </td> |
||||
66 | </tr> |
||||
67 | <tr> |
||||
68 | <th scope="row"> |
||||
69 | <?php esc_html_e( 'Gateway', 'pronamic_ideal' ); ?> |
||||
70 | </th> |
||||
71 | <td> |
||||
72 | <?php edit_post_link( get_the_title( $subscription->config_id ), '', '', $subscription->config_id ); ?> |
||||
73 | </td> |
||||
74 | </tr> |
||||
75 | <tr> |
||||
76 | <th scope="row"> |
||||
77 | <?php esc_html_e( 'Payment Method', 'pronamic_ideal' ); ?> |
||||
78 | </th> |
||||
79 | <td> |
||||
80 | <?php echo esc_html( PaymentMethods::get_name( $subscription->payment_method ) ); ?> |
||||
81 | </td> |
||||
82 | </tr> |
||||
83 | <tr> |
||||
84 | <th scope="row"> |
||||
85 | <?php esc_html_e( 'Amount', 'pronamic_ideal' ); ?> |
||||
86 | </th> |
||||
87 | <td> |
||||
88 | <?php |
||||
89 | |||||
90 | if ( current_user_can( 'edit_post', $post_id ) && apply_filters( 'pronamic_pay_subscription_amount_editable_' . $subscription->get_source(), false ) ) { |
||||
91 | echo esc_html( $subscription->get_total_amount()->get_currency()->get_symbol() ); |
||||
92 | |||||
93 | $amount = $subscription->get_total_amount()->format_i18n( '%2$s' ); |
||||
94 | |||||
95 | printf( |
||||
96 | '<input type="text" name="pronamic_subscription_amount" value="%s" size="12" />', |
||||
97 | esc_attr( $amount ) |
||||
98 | ); |
||||
99 | } else { |
||||
100 | echo esc_html( $subscription->get_total_amount()->format_i18n() ); |
||||
101 | } |
||||
102 | |||||
103 | ?> |
||||
104 | </td> |
||||
105 | </tr> |
||||
106 | <tr> |
||||
107 | <th scope="row"> |
||||
108 | <?php echo esc_html_x( 'Interval', 'Recurring payment', 'pronamic_ideal' ); ?> |
||||
109 | </th> |
||||
110 | <td> |
||||
111 | <?php echo esc_html( Util::format_interval( $subscription->get_interval(), $subscription->get_interval_period() ) ); ?> |
||||
112 | </td> |
||||
113 | </tr> |
||||
114 | <tr> |
||||
115 | <th scope="row"> |
||||
116 | <?php echo esc_html_x( 'Frequency', 'Recurring payment', 'pronamic_ideal' ); ?> |
||||
117 | </th> |
||||
118 | <td> |
||||
119 | <?php echo esc_html( Util::format_frequency( $subscription->get_frequency() ) ); ?> |
||||
0 ignored issues
–
show
$subscription->get_frequency() of type string is incompatible with the type integer expected by parameter $frequency of Pronamic\WordPress\Pay\Util::format_frequency() .
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
![]() |
|||||
120 | </td> |
||||
121 | </tr> |
||||
122 | <tr> |
||||
123 | <th scope="row"> |
||||
124 | <?php esc_html_e( 'Start Date', 'pronamic_ideal' ); ?> |
||||
125 | </th> |
||||
126 | <td> |
||||
127 | <?php |
||||
128 | |||||
129 | $start_date = $subscription->get_start_date(); |
||||
130 | |||||
131 | echo empty( $start_date ) ? '—' : esc_html( $start_date->format_i18n() ); |
||||
132 | |||||
133 | ?> |
||||
134 | </td> |
||||
135 | </tr> |
||||
136 | |||||
137 | <?php |
||||
138 | |||||
139 | $frequency = $subscription->get_frequency(); |
||||
140 | |||||
141 | // Show end date if frequency is limited. |
||||
142 | if ( ! empty( $frequency ) ) : |
||||
143 | |||||
144 | ?> |
||||
145 | |||||
146 | <tr> |
||||
147 | <th scope="row"> |
||||
148 | <?php esc_html_e( 'End Date', 'pronamic_ideal' ); ?> |
||||
149 | </th> |
||||
150 | <td> |
||||
151 | <?php |
||||
152 | |||||
153 | $end_date = $subscription->get_end_date(); |
||||
154 | |||||
155 | echo empty( $end_date ) ? '—' : esc_html( $end_date->format_i18n() ); |
||||
156 | |||||
157 | ?> |
||||
158 | </td> |
||||
159 | </tr> |
||||
160 | |||||
161 | <?php endif; ?> |
||||
162 | |||||
163 | <?php |
||||
164 | |||||
165 | // Show next payment date if subscription is not cancelled or completed. |
||||
166 | if ( ! in_array( $subscription->get_status(), array( Statuses::CANCELLED, Statuses::COMPLETED ), true ) ) : |
||||
167 | |||||
168 | ?> |
||||
169 | |||||
170 | <tr> |
||||
171 | <th scope="row"> |
||||
172 | <?php esc_html_e( 'Next Payment Date', 'pronamic_ideal' ); ?> |
||||
173 | </th> |
||||
174 | <td> |
||||
175 | <?php |
||||
176 | |||||
177 | $next_payment = $subscription->get_next_payment_date(); |
||||
178 | |||||
179 | echo empty( $next_payment ) ? '—' : esc_html( $next_payment->format_i18n() ); |
||||
180 | |||||
181 | ?> |
||||
182 | </td> |
||||
183 | </tr> |
||||
184 | |||||
185 | <?php endif; ?> |
||||
186 | |||||
187 | <tr> |
||||
188 | <th scope="row"> |
||||
189 | <?php esc_html_e( 'Expiry Date', 'pronamic_ideal' ); ?> |
||||
190 | </th> |
||||
191 | <td> |
||||
192 | <?php |
||||
193 | |||||
194 | $expiry_date = $subscription->get_expiry_date(); |
||||
195 | |||||
196 | echo empty( $expiry_date ) ? '—' : esc_html( $expiry_date->format_i18n() ); |
||||
197 | |||||
198 | ?> |
||||
199 | </td> |
||||
200 | </tr> |
||||
201 | <tr> |
||||
202 | <th scope="row"> |
||||
203 | <?php esc_html_e( 'Consumer', 'pronamic_ideal' ); ?> |
||||
204 | </th> |
||||
205 | <td> |
||||
206 | <?php |
||||
207 | |||||
208 | echo esc_html( get_post_meta( $post_id, '_pronamic_subscription_consumer_name', true ) ); |
||||
0 ignored issues
–
show
It seems like
get_post_meta($post_id, ...n_consumer_name', true) can also be of type false ; however, parameter $text of esc_html() does only seem to accept string , maybe add an additional type check?
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
![]() |
|||||
209 | echo '<br />'; |
||||
210 | echo esc_html( get_post_meta( $post_id, '_pronamic_subscription_consumer_iban', true ) ); |
||||
211 | echo '<br />'; |
||||
212 | echo esc_html( get_post_meta( $post_id, '_pronamic_subscription_consumer_bic', true ) ); |
||||
213 | |||||
214 | ?> |
||||
215 | </td> |
||||
216 | </tr> |
||||
217 | |||||
218 | <?php if ( ! empty( $subscription->user_id ) ) : ?> |
||||
219 | |||||
220 | <tr> |
||||
221 | <th scope="row"> |
||||
222 | <?php esc_html_e( 'User', 'pronamic_ideal' ); ?> |
||||
223 | </th> |
||||
224 | <td> |
||||
225 | <?php |
||||
226 | |||||
227 | $user_id = $subscription->user_id; |
||||
228 | |||||
229 | printf( |
||||
230 | '<a href="%s">%s</a>', |
||||
231 | esc_url( get_edit_user_link( $user_id ) ), |
||||
0 ignored issues
–
show
$user_id of type string is incompatible with the type integer expected by parameter $user_id of get_edit_user_link() .
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
![]() |
|||||
232 | esc_html( $user_id ) |
||||
233 | ); |
||||
234 | |||||
235 | ?> |
||||
236 | </td> |
||||
237 | </tr> |
||||
238 | |||||
239 | <?php endif; ?> |
||||
240 | |||||
241 | <tr> |
||||
242 | <th scope="row"> |
||||
243 | <?php esc_html_e( 'Source', 'pronamic_ideal' ); ?> |
||||
244 | </th> |
||||
245 | <td> |
||||
246 | <?php |
||||
247 | |||||
248 | echo $subscription->get_source_text(); // WPCS: XSS ok. |
||||
249 | |||||
250 | ?> |
||||
251 | </td> |
||||
252 | </tr> |
||||
253 | |||||
254 | <?php if ( 's2member' === $subscription->get_source() ) : ?> |
||||
255 | |||||
256 | <tr> |
||||
257 | <th scope="row"> |
||||
258 | <?php esc_html_e( 'Period', 'pronamic_ideal' ); ?> |
||||
259 | </th> |
||||
260 | <td> |
||||
261 | <?php echo esc_html( get_post_meta( $subscription->get_id(), '_pronamic_subscription_s2member_period', true ) ); ?> |
||||
262 | </td> |
||||
263 | </tr> |
||||
264 | <tr> |
||||
265 | <th scope="row"> |
||||
266 | <?php esc_html_e( 'Level', 'pronamic_ideal' ); ?> |
||||
267 | </th> |
||||
268 | <td> |
||||
269 | <?php echo esc_html( get_post_meta( $subscription->get_id(), '_pronamic_subscription_s2member_level', true ) ); ?> |
||||
270 | </td> |
||||
271 | </tr> |
||||
272 | |||||
273 | <?php endif; ?> |
||||
274 | |||||
275 | <tr> |
||||
276 | <th scope="row"> |
||||
277 | <?php esc_html_e( 'Cancel URL', 'pronamic_ideal' ); ?> |
||||
278 | </th> |
||||
279 | <td> |
||||
280 | <?php |
||||
281 | |||||
282 | $url = $subscription->get_cancel_url(); |
||||
283 | |||||
284 | printf( |
||||
285 | '<a href="%s">%s</a>', |
||||
286 | esc_attr( $url ), |
||||
287 | esc_html( $url ) |
||||
288 | ); |
||||
289 | |||||
290 | ?> |
||||
291 | </td> |
||||
292 | </tr> |
||||
293 | <tr> |
||||
294 | <th scope="row"> |
||||
295 | <?php esc_html_e( 'Renewal URL', 'pronamic_ideal' ); ?> |
||||
296 | </th> |
||||
297 | <td> |
||||
298 | <?php |
||||
299 | |||||
300 | $url = $subscription->get_renewal_url(); |
||||
301 | |||||
302 | printf( |
||||
303 | '<a href="%s">%s</a>', |
||||
304 | esc_attr( $url ), |
||||
305 | esc_html( $url ) |
||||
306 | ); |
||||
307 | |||||
308 | ?> |
||||
309 | </td> |
||||
310 | </tr> |
||||
311 | </table> |
||||
312 |