Failed Conditions
Push — develop ( a66df3...4f548c )
by Reüel
04:33
created

admin/meta-box-subscription-info.php (4 issues)

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
It seems like get_post_status($post_id) can also be of type false; however, parameter $post_status of get_post_status_object() 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 ignore-type  annotation

48
			$status_object = get_post_status_object( /** @scrutinizer ignore-type */ get_post_status( $post_id ) );
Loading history...
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 ignore-type  annotation

119
			<?php echo esc_html( Util::format_frequency( /** @scrutinizer ignore-type */ $subscription->get_frequency() ) ); ?>
Loading history...
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 ignore-type  annotation

208
			echo esc_html( /** @scrutinizer ignore-type */ get_post_meta( $post_id, '_pronamic_subscription_consumer_name', true ) );
Loading history...
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 ignore-type  annotation

231
					esc_url( get_edit_user_link( /** @scrutinizer ignore-type */ $user_id ) ),
Loading history...
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