Diff: STRATO-apps/wordpress_03/app/wp-content/plugins/paid-memberships-pro/pages/invoice.php
Keine Baseline-Datei – Diff nur gegen leer.
1
-
1
+
<?php
2
+
/**
3
+
* Template: Invoice
4
+
* Version: 3.1
5
+
*
6
+
* See documentation for how to override the PMPro templates.
7
+
* @link https://www.paidmembershipspro.com/documentation/templates/
8
+
*
9
+
* @version 3.1
10
+
*
11
+
* @author Paid Memberships Pro
12
+
*/
13
+
?>
14
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro' ) ); ?>">
15
+
<?php
16
+
global $wpdb, $pmpro_invoice, $pmpro_msg, $pmpro_msgt, $current_user;
17
+
18
+
if ( $pmpro_msg ) {
19
+
?>
20
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_message ' . $pmpro_msgt, $pmpro_msgt ) ); ?>"><?php echo wp_kses_post( $pmpro_msg ); ?></div>
21
+
<?php
22
+
}
23
+
24
+
if ( $pmpro_invoice ) {
25
+
// Get the user and membership level for this order.
26
+
$pmpro_invoice->getUser();
27
+
$pmpro_invoice->getMembershipLevel();
28
+
?>
29
+
<section id="pmpro_order_single" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_section', 'pmpro_order_single' ) ); ?>">
30
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_card' ) ); ?>">
31
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_card_actions' ) ); ?>">
32
+
<?php
33
+
$pmpro_order_action_links = array();
34
+
$pmpro_order_action_links['print'] = '<button class="' . esc_attr( pmpro_get_element_class( 'pmpro_btn-plain pmpro_btn-print' ) ) . '" onclick="window.print()">' .
35
+
'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-printer"><polyline points="6 9 6 2 18 2 18 9"></polyline><path d="M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2"></path><rect x="6" y="14" width="12" height="8"></rect></svg>' .
36
+
esc_html__( 'Print or Save as PDF', 'paid-memberships-pro' ) .
37
+
'</button>';
38
+
/**
39
+
* Filter the order action links.
40
+
*
41
+
* @since 3.6
42
+
*
43
+
* @param array $pmpro_order_action_links Array of actions to display.
44
+
* @param MemberOrder $pmpro_invoice The PMPro Invoice/Order object.
45
+
*/
46
+
$pmpro_order_action_links = apply_filters( 'pmpro_order_action_links', $pmpro_order_action_links, $pmpro_invoice );
47
+
$allowed_html = array(
48
+
'a' => array (
49
+
'class' => array(),
50
+
'href' => array(),
51
+
'id' => array(),
52
+
'target' => array(),
53
+
'title' => array(),
54
+
'aria-label' => array(),
55
+
),
56
+
'button' => array(
57
+
'class' => array(),
58
+
'onclick' => array(),
59
+
),
60
+
'path' => array(
61
+
'd' => array(),
62
+
'fill' => array(),
63
+
'stroke' => array(),
64
+
'stroke-width' => array(),
65
+
'stroke-linecap' => array(),
66
+
'stroke-linejoin' => array(),
67
+
),
68
+
'polyline' => array(
69
+
'points' => array(),
70
+
),
71
+
'rect' => array(
72
+
'x' => array(),
73
+
'y' => array(),
74
+
'width' => array(),
75
+
'height' => array(),
76
+
),
77
+
'span' => array(
78
+
'class' => array(),
79
+
),
80
+
'svg' => array(
81
+
'xmlns' => array(),
82
+
'width' => array(),
83
+
'height' => array(),
84
+
'viewbox' => array(),
85
+
'fill' => array(),
86
+
'stroke' => array(),
87
+
'stroke-width' => array(),
88
+
'stroke-linecap' => array(),
89
+
'stroke-linejoin' => array(),
90
+
'class' => array(),
91
+
),
92
+
);
93
+
echo wp_kses( implode( '<span class="' . esc_attr( pmpro_get_element_class( 'pmpro_card_action_separator' ) ) . '">' . pmpro_actions_nav_separator() . '</span>', $pmpro_order_action_links ), $allowed_html );
94
+
?>
95
+
</div> <!-- end pmpro_card_actions -->
96
+
<h2 class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_card_title pmpro_font-x-large' ) ); ?>">
97
+
<?php echo esc_html( sprintf(
98
+
__( 'Order #%s', 'paid-memberships-pro' ),
99
+
$pmpro_invoice->code
100
+
) ); ?>
101
+
<?php
102
+
if ( ! empty( $pmpro_invoice->status ) ) {
103
+
if ( in_array( $pmpro_invoice->status, array( '', 'success', 'cancelled' ) ) ) {
104
+
$display_status = __( 'Paid', 'paid-memberships-pro' );
105
+
$tag_style = 'success';
106
+
} elseif ( $pmpro_invoice->status == 'refunded' ) {
107
+
$display_status = __( 'Refunded', 'paid-memberships-pro' );
108
+
$tag_style = 'error';
109
+
} else {
110
+
$display_status = ucwords( $pmpro_invoice->status );
111
+
$tag_style = 'alert';
112
+
}
113
+
?>
114
+
<span class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_list_item_value pmpro_tag pmpro_tag-' . $tag_style ) ); ?>"><?php echo esc_html( $display_status ); ?></span>
115
+
<?php
116
+
}
117
+
?>
118
+
</h2>
119
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_card_content' ) ); ?>">
120
+
121
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_spacer' ) ); ?>"></div>
122
+
123
+
<div id="pmpro_order_single-meta">
124
+
<ul class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_list pmpro_list-plain pmpro_list-with-labels pmpro_cols-2' ) ); ?>">
125
+
<?php
126
+
// Build the order meta.
127
+
$pmpro_order_single_meta = array();
128
+
129
+
// Order date.
130
+
$pmpro_order_single_meta['order_date'] = array(
131
+
'label' => __( 'Order date', 'paid-memberships-pro' ),
132
+
'value' => date_i18n( get_option( 'date_format' ), $pmpro_invoice->getTimestamp() ),
133
+
);
134
+
135
+
// Payment method.
136
+
if ( $pmpro_invoice->accountnumber ) {
137
+
$pmpro_order_single_meta['payment_method'] = array(
138
+
'label' => __( 'Payment method', 'paid-memberships-pro' ),
139
+
'value' => ucwords( $pmpro_invoice->cardtype ) . ' ' . __( 'ending in', 'paid-memberships-pro' ) . ' ' . last4( $pmpro_invoice->accountnumber ),
140
+
);
141
+
} else if ( $pmpro_invoice->payment_type === 'Check' && ! empty( get_option( 'pmpro_check_gateway_label' ) ) ) {
142
+
$pmpro_invoice->payment_type = get_option( 'pmpro_check_gateway_label' );
143
+
$pmpro_order_single_meta['payment_method'] = array(
144
+
'label' => __( 'Payment method', 'paid-memberships-pro' ),
145
+
'value' => $pmpro_invoice->payment_type,
146
+
);
147
+
} elseif ( ! empty( $pmpro_invoice->payment_type ) ) {
148
+
$pmpro_order_single_meta['payment_method'] = array(
149
+
'label' => __( 'Payment method', 'paid-memberships-pro' ),
150
+
'value' => $pmpro_invoice->payment_type,
151
+
);
152
+
} else {
153
+
$pmpro_order_single_meta['payment_method'] = array(
154
+
'label' => __( 'Payment method', 'paid-memberships-pro' ),
155
+
'value' => __( '—', 'paid-memberships-pro' ),
156
+
);
157
+
}
158
+
159
+
// Pay to.
160
+
$business_address = get_option( 'pmpro_business_address' );
161
+
if ( ! empty( $business_address['name'] ) ) {
162
+
$pay_to = pmpro_formatAddress(
163
+
$business_address['name'],
164
+
$business_address['street'],
165
+
$business_address['street2'],
166
+
$business_address['city'],
167
+
$business_address['state'],
168
+
$business_address['zip'],
169
+
$business_address['country'],
170
+
$business_address['phone']
171
+
);
172
+
} else {
173
+
$pay_to = get_option( 'blogname' );
174
+
}
175
+
$pmpro_order_single_meta['pay_to'] = array(
176
+
'label' => __( 'Pay to', 'paid-memberships-pro' ),
177
+
'value' => $pay_to,
178
+
);
179
+
180
+
// Bill to.
181
+
$pmpro_order_single_meta['bill_to']['label'] = __( 'Bill to', 'paid-memberships-pro' );
182
+
if ( $pmpro_invoice->has_billing_address() ) {
183
+
$pmpro_order_single_meta['bill_to']['value'] = pmpro_formatAddress(
184
+
$pmpro_invoice->billing->name,
185
+
$pmpro_invoice->billing->street,
186
+
$pmpro_invoice->billing->street2,
187
+
$pmpro_invoice->billing->city,
188
+
$pmpro_invoice->billing->state,
189
+
$pmpro_invoice->billing->zip,
190
+
$pmpro_invoice->billing->country,
191
+
$pmpro_invoice->billing->phone
192
+
);
193
+
} else {
194
+
$pmpro_order_single_meta['bill_to']['value'] = $pmpro_invoice->user->display_name . '<br />' . $pmpro_invoice->user->user_email;
195
+
}
196
+
197
+
/**
198
+
* Filter to add, edit, or remove information in the meta section of the single order frontend page.
199
+
*
200
+
* @since 3.1
201
+
* @param array $pmpro_order_single_meta Array of meta information.
202
+
* @param object $pmpro_invoice The PMPro Invoice/Order object.
203
+
* @return array $pmpro_order_single_meta Array of meta information.
204
+
*/
205
+
$pmpro_order_single_meta = apply_filters( 'pmpro_order_single_meta', $pmpro_order_single_meta, $pmpro_invoice );
206
+
207
+
// Display the meta.
208
+
foreach ( $pmpro_order_single_meta as $key => $value ) {
209
+
?>
210
+
<li id="pmpro_order_single-meta-<?php echo esc_attr( $key ); ?>" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_list_item' ) ); ?>">
211
+
<span class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_list_item_label' ) ); ?>"><?php echo esc_html( $value['label'] ); ?></span>
212
+
<?php echo wp_kses_post( $value['value'] ); ?>
213
+
</li>
214
+
<?php
215
+
}
216
+
?>
217
+
</ul>
218
+
</div> <!-- end pmpro_order_single-meta -->
219
+
220
+
<?php if ( has_action( 'pmpro_invoice_bullets_top' ) || has_action( 'pmpro_invoice_bullets_bottom' ) ) { ?>
221
+
222
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_spacer' ) ); ?>"></div>
223
+
224
+
<div id="pmpro_order_single-more-information">
225
+
226
+
<ul class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_list pmpro_list-plain' ) ); ?>">
227
+
<?php
228
+
/**
229
+
* pmpro_invoice_bullets_top hook allows you to add information to the billing list (at the top).
230
+
*
231
+
* @since 1.7.2
232
+
* @param object $pmpro_invoice The PMPro Invoice/Order object.
233
+
*/
234
+
do_action( 'pmpro_invoice_bullets_top', $pmpro_invoice );
235
+
236
+
/**
237
+
* pmpro_invoice_bullets_bottom hook allows you to add information to the billing list (at the bottom).
238
+
*
239
+
* @since 1.7.2
240
+
* @param object $pmpro_invoice The PMPro Invoice/Order object.
241
+
*/
242
+
do_action( 'pmpro_invoice_bullets_bottom', $pmpro_invoice );
243
+
?>
244
+
</ul>
245
+
246
+
</div> <!-- end pmpro_order_single-more-information -->
247
+
248
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_spacer' ) ); ?>"></div>
249
+
250
+
<?php } ?>
251
+
252
+
<?php
253
+
/**
254
+
* Add additional content to the single order frontend page before the order item details.
255
+
*
256
+
* @since 3.1
257
+
* @param object $pmpro_invoice The PMPro Invoice/Order object.
258
+
*/
259
+
do_action( 'pmpro_order_single_before_order_details', $pmpro_invoice );
260
+
?>
261
+
262
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_spacer' ) ); ?>"></div>
263
+
264
+
<?php
265
+
// Get the price parts.
266
+
$pmpro_price_parts = pmpro_get_price_parts( $pmpro_invoice, 'array' );
267
+
if ( empty( $pmpro_price_parts ) ) {
268
+
// If no price parts, this is a $0 order. Show 0 for total.
269
+
$pmpro_price_parts = array( 'total' => array( 'label' => __( 'Total', 'paid-memberships-pro' ), 'value' => $pmpro_invoice->get_formatted_total() ) );
270
+
}
271
+
272
+
// If the order is refunded, add to price parts.
273
+
if ( $pmpro_invoice->status == 'refunded' ) {
274
+
$pmpro_price_parts['refunded']['label'] = __( 'Refunded', 'paid-memberships-pro' );
275
+
$pmpro_price_parts['refunded']['value'] = $pmpro_price_parts['total']['value'];
276
+
}
277
+
278
+
// If the level was deleted, set the name to the level ID.
279
+
if ( empty( $pmpro_invoice->membership_level ) ) {
280
+
$pmpro_invoice->membership_level = new stdClass();
281
+
/* translators: %s: level ID */
282
+
$pmpro_invoice->membership_level->name = sprintf( __( 'Level ID %s', 'paid-memberships-pro' ), $pmpro_invoice->membership_id );
283
+
}
284
+
?>
285
+
286
+
<div id="pmpro_order_single-items">
287
+
<?php
288
+
if ( (float)$pmpro_invoice->total > 0 && in_array( $pmpro_invoice->status, array( '', 'success', 'cancelled' ) ) ) {
289
+
?>
290
+
<h3 class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_font-large' ) ); ?>">
291
+
<?php
292
+
echo esc_html(
293
+
sprintf(
294
+
__( '%1$s paid on %2$s', 'paid-memberships-pro' ),
295
+
//phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
296
+
pmpro_escape_price( $pmpro_price_parts['total']['value'] ),
297
+
date_i18n( get_option( 'date_format' ), $pmpro_invoice->getTimestamp() )
298
+
)
299
+
);
300
+
?>
301
+
</h3>
302
+
<?php
303
+
}
304
+
?>
305
+
<table class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_table' ) ); ?>">
306
+
<thead>
307
+
<tr>
308
+
<th><?php esc_html_e( 'Description', 'paid-memberships-pro' ); ?></th>
309
+
<th><?php esc_html_e( 'Amount', 'paid-memberships-pro' ); ?></th>
310
+
</tr>
311
+
</thead>
312
+
<tbody>
313
+
<tr>
314
+
<th data-title="<?php esc_attr_e( 'Description', 'paid-memberships-pro' ); ?>">
315
+
<?php
316
+
echo esc_html(
317
+
sprintf(
318
+
// translators: 1: level name, 2: order code
319
+
__( '%1$s for order #%2$s', 'paid-memberships-pro' ),
320
+
$pmpro_invoice->membership_level->name,
321
+
$pmpro_invoice->code,
322
+
)
323
+
);
324
+
?>
325
+
<?php
326
+
if ( ! empty( $pmpro_invoice->billing->name ) ) {
327
+
echo '<p>' . esc_html(
328
+
sprintf(
329
+
// translators: 1: user display name, 2: user email
330
+
__( 'Account: %1$s (%2$s)', 'paid-memberships-pro' ),
331
+
$pmpro_invoice->user->display_name,
332
+
$pmpro_invoice->user->user_email
333
+
)
334
+
) . '</p>';
335
+
}
336
+
?>
337
+
<?php
338
+
$subscription_period_end = pmpro_get_subscription_period_end_date_for_order( $pmpro_invoice, get_option( 'date_format' ) );
339
+
$order_date = date_i18n( get_option( 'date_format' ), $pmpro_invoice->getTimestamp() );
340
+
if ( ! empty( $subscription_period_end ) && $subscription_period_end !== $order_date ) {
341
+
?>
342
+
<p class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_font-small' ) ); ?>">
343
+
<?php echo esc_html( sprintf( __( '%1$s to %2$s', 'paid-memberships-pro' ), $order_date, $subscription_period_end ) ); ?>
344
+
</p>
345
+
<?php
346
+
}
347
+
?>
348
+
</th>
349
+
<td data-title="<?php esc_attr_e( 'Amount', 'paid-memberships-pro' ); ?>">
350
+
<?php
351
+
echo pmpro_escape_price( $pmpro_invoice->get_formatted_subtotal() ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
352
+
?>
353
+
</td>
354
+
</tr>
355
+
</tbody>
356
+
<tfoot>
357
+
<?php
358
+
foreach ( $pmpro_price_parts as $pmpro_price_part ) { ?>
359
+
<tr>
360
+
<td><?php echo esc_html( $pmpro_price_part['label'] ); ?></td>
361
+
<td data-title="<?php echo esc_attr( $pmpro_price_part['label'] ); ?>">
362
+
<?php echo pmpro_escape_price( $pmpro_price_part['value'] ); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
363
+
</td>
364
+
</tr>
365
+
<?php
366
+
}
367
+
?>
368
+
</tfoot>
369
+
</table>
370
+
<?php if ( $pmpro_invoice->getDiscountCode() ) { ?>
371
+
<ul class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_list pmpro_list-plain pmpro_list-with-labels pmpro_cols-2' ) ); ?>">
372
+
<li class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_list_item' ) ); ?>">
373
+
<span class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_list_item_label' ) ); ?>"><?php esc_html_e('Discount Code', 'paid-memberships-pro' ); ?></span>
374
+
<span class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_list_item_value' ) ); ?>">
375
+
<span class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_tag pmpro_tag-discount-code', 'pmpro_tag-discount-code' ) ); ?>"><?php echo esc_html( $pmpro_invoice->discount_code->code ); ?></span>
376
+
</span>
377
+
</li>
378
+
</ul>
379
+
<?php } ?>
380
+
</div> <!-- end pmpro_order_single-payment -->
381
+
</div> <!-- end pmpro_card_content -->
382
+
</div> <!-- end pmpro_card -->
383
+
</section> <!-- end pmpro_order_single -->
384
+
<?php
385
+
} else {
386
+
// Get all orders for the user (the limit this returns is 100 for now).
387
+
$orders = MemberOrder::get_orders(
388
+
array(
389
+
'status' => array( 'pending', 'refunded', 'success' ),
390
+
'user_id' => $current_user->ID,
391
+
)
392
+
);
393
+
?>
394
+
<section id="pmpro_order_list" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_section', 'pmpro_order_list' ) ); ?>">
395
+
<h2 class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_section_title pmpro_font-x-large' ) ); ?>">
396
+
<?php esc_html_e( 'Order History', 'paid-memberships-pro' ); ?>
397
+
</h2>
398
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_card' ) ); ?>">
399
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_card_content' ) ); ?>">
400
+
<?php
401
+
if ( $orders ) {
402
+
?>
403
+
<table class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_table pmpro_table_orders', 'pmpro_table_orders' ) ); ?>">
404
+
<thead>
405
+
<tr>
406
+
<th class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_table_order-date' ) ); ?>"><?php esc_html_e( 'Date', 'paid-memberships-pro' ); ?></th>
407
+
<th class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_table_order-level' ) ); ?>"><?php esc_html_e( 'Level', 'paid-memberships-pro' ); ?></th>
408
+
<th class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_table_order-amount' ) ); ?>"><?php esc_html_e( 'Total', 'paid-memberships-pro' ); ?></th>
409
+
<th class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_table_order-status' ) ); ?>"><?php esc_html_e( 'Status', 'paid-memberships-pro'); ?></th>
410
+
</tr>
411
+
</thead>
412
+
<tbody>
413
+
<?php
414
+
foreach( $orders as $order ) {
415
+
// Get a member order object.
416
+
$order_id = $order->id;
417
+
$order = new MemberOrder;
418
+
$order->getMemberOrderByID($order_id);
419
+
$order->getMembershipLevel();
420
+
421
+
// Set the display status and tag style.
422
+
if ( in_array( $order->status, array( '', 'success', 'cancelled' ) ) ) {
423
+
$display_status = esc_html__( 'Paid', 'paid-memberships-pro' );
424
+
$tag_style = 'success';
425
+
} elseif ( $order->status == 'pending' ) {
426
+
// Some Add Ons set status to pending.
427
+
$display_status = esc_html__( 'Pending', 'paid-memberships-pro' );
428
+
$tag_style = 'alert';
429
+
} elseif ( $order->status == 'refunded' ) {
430
+
$display_status = esc_html__( 'Refunded', 'paid-memberships-pro' );
431
+
$tag_style = 'error';
432
+
}
433
+
?>
434
+
<tr id="pmpro_table_order-<?php echo esc_attr( $order->code ); ?>">
435
+
<th class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_table_order-date' ) ); ?>" data-title="<?php esc_attr_e( 'Date', 'paid-memberships-pro' ); ?>"><a href="<?php echo esc_url( pmpro_url( "invoice", "?invoice=" . $order->code ) ) ?>"><?php echo esc_html( date_i18n(get_option("date_format"), $order->getTimestamp()) )?></a></th>
436
+
<td class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_table_order-level' ) ); ?>" data-title="<?php esc_attr_e( 'Level', 'paid-memberships-pro' ); ?>"><?php if(!empty($order->membership_level)) echo esc_html( $order->membership_level->name ); else echo esc_html__("N/A", 'paid-memberships-pro' );?></td>
437
+
<td class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_table_order-amount' ) ); ?>" data-title="<?php esc_attr_e( 'Amount', 'paid-memberships-pro' ); ?>"><?php
438
+
//phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
439
+
echo pmpro_escape_price( $order->get_formatted_total() ); ?></td>
440
+
<td class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_table_order-status' ) ); ?>" data-title="<?php esc_attr_e( 'Status', 'paid-memberships-pro' ); ?>">
441
+
<span class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_tag pmpro_tag-' . $tag_style ) ); ?>"><?php echo esc_html( $display_status ); ?></span>
442
+
</td>
443
+
</tr>
444
+
<?php
445
+
}
446
+
?>
447
+
</tbody>
448
+
</table>
449
+
<?php } else {
450
+
?>
451
+
<p><?php esc_html_e( 'No orders found.', 'paid-memberships-pro' ); ?></p>
452
+
<?php
453
+
}
454
+
?>
455
+
</div> <!-- end pmpro_card_content -->
456
+
</div> <!-- end pmpro_card -->
457
+
</section> <!-- end pmpro_order_list -->
458
+
<?php
459
+
}
460
+
?>
461
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_actions_nav' ) ); ?>">
462
+
<span class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_actions_nav-right' ) ); ?>"><a href="<?php echo esc_url( pmpro_url( "account" ) ) ?>"><?php esc_html_e('View Your Membership Account →', 'paid-memberships-pro' );?></a></span>
463
+
<?php if ( $pmpro_invoice ) { ?>
464
+
<span class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_actions_nav-left' ) ); ?>"><a href="<?php echo esc_url( pmpro_url( "invoice" ) ) ?>"><?php esc_html_e('← View All Orders', 'paid-memberships-pro' );?></a></span>
465
+
<?php } ?>
466
+
</div> <!-- end pmpro_actions_nav -->
467
+
</div> <!-- end pmpro -->
468
+