Diff: STRATO-apps/wordpress_03/app/wp-content/plugins/paid-memberships-pro/pages/invoice.php

Keine Baseline-Datei – Diff nur gegen leer.
Zur Liste
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' => __( '&#8212;', '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 &rarr;', '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('&larr; View All Orders', 'paid-memberships-pro' );?></a></span>
465 + <?php } ?>
466 + </div> <!-- end pmpro_actions_nav -->
467 + </div> <!-- end pmpro -->
468 +