Diff: STRATO-apps/wordpress_03/app/wp-content/plugins/paid-memberships-pro/pages/checkout.php
Keine Baseline-Datei – Diff nur gegen leer.
1
-
1
+
<?php
2
+
/**
3
+
* Template: Checkout
4
+
* Version: 3.5
5
+
*
6
+
* See documentation for how to override the PMPro templates.
7
+
* @link https://www.paidmembershipspro.com/documentation/templates/
8
+
*
9
+
* @version 3.5
10
+
*
11
+
* @author Paid Memberships Pro
12
+
*/
13
+
14
+
global $gateway, $pmpro_review, $skip_account_fields, $pmpro_paypal_token, $wpdb, $current_user, $pmpro_msg, $pmpro_msgt, $pmpro_requirebilling, $pmpro_level, $pmpro_show_discount_code, $pmpro_error_fields, $pmpro_default_country;
15
+
global $discount_code, $username, $password, $password2, $bfirstname, $blastname, $baddress1, $baddress2, $bcity, $bstate, $bzipcode, $bcountry, $bphone, $bemail, $bconfirmemail, $CardType, $AccountNumber, $ExpirationMonth,$ExpirationYear;
16
+
17
+
$pmpro_levels = pmpro_getAllLevels();
18
+
19
+
//If global $pmpro_level is null, let's instantiate a dummy level object to avoid errors.
20
+
if ( ! isset( $pmpro_level ) ) {
21
+
$pmpro_level = new PMPro_Membership_Level();
22
+
$pmpro_level->id = 0;
23
+
$pmpro_level->name = __( 'Invalid Level', 'paid-memberships-pro' );
24
+
$pmpro_level->description = $pmpro_level->name;
25
+
$pmpro_level->confirmation = '';
26
+
$pmpro_level->initial_payment = 0;
27
+
$pmpro_level->billing_amount = 0;
28
+
$pmpro_level->cycle_number = 0;
29
+
$pmpro_level->cycle_period = 'Month';
30
+
$pmpro_level->billing_limit = 0;
31
+
$pmpro_level->trial_amount = 0;
32
+
$pmpro_level->trial_limit = 0;
33
+
$pmpro_level->expiration_number = 0;
34
+
$pmpro_level->expiration_period = 'Month';
35
+
}
36
+
37
+
/**
38
+
* Filter to set if PMPro uses email or text as the type for email field inputs.
39
+
*
40
+
* @since 1.8.4.5
41
+
*
42
+
* @param bool $use_email_type, true to use email type, false to use text type
43
+
*/
44
+
$pmpro_email_field_type = apply_filters('pmpro_email_field_type', true);
45
+
46
+
// Set the wrapping class for the checkout div based on the default gateway;
47
+
$default_gateway = get_option( 'pmpro_gateway' );
48
+
if ( empty( $default_gateway ) ) {
49
+
$pmpro_checkout_gateway_class = 'pmpro_section pmpro_checkout_gateway-none';
50
+
} else {
51
+
$pmpro_checkout_gateway_class = 'pmpro_section pmpro_checkout_gateway-' . $default_gateway;
52
+
}
53
+
?>
54
+
55
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro' ) ); ?>">
56
+
57
+
<?php
58
+
/**
59
+
* Fires before the checkout form.
60
+
*
61
+
* @since 3.4 Added $pmpro_level as a parameter.
62
+
*
63
+
* @param object $pmpro_level The PMPro Level object being purchased.
64
+
*/
65
+
do_action( 'pmpro_checkout_before_form', $pmpro_level );
66
+
?>
67
+
68
+
<section id="pmpro_level-<?php echo intval( $pmpro_level->id ); ?>" class="<?php echo esc_attr( pmpro_get_element_class( $pmpro_checkout_gateway_class, 'pmpro_level-' . $pmpro_level->id ) ); ?>">
69
+
70
+
<form id="pmpro_form" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form' ) ); ?>" action="<?php if(!empty($_REQUEST['review'])) echo esc_url( pmpro_url("checkout", "?pmpro_level=" . $pmpro_level->id ) ); ?>" method="post">
71
+
72
+
<input type="hidden" id="pmpro_level" name="pmpro_level" value="<?php echo esc_attr( $pmpro_level->id ) ?>" />
73
+
<input type="hidden" id="checkjavascript" name="checkjavascript" value="1" />
74
+
<?php if ($discount_code && $pmpro_review) { ?>
75
+
<input class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_alter_price', 'pmpro_discount_code' ) ); ?>" id="pmpro_discount_code" name="pmpro_discount_code" type="hidden" value="<?php echo esc_attr($discount_code) ?>" />
76
+
<?php } ?>
77
+
78
+
<?php if($pmpro_msg) { ?>
79
+
<div role="alert" id="pmpro_message" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_message ' . $pmpro_msgt, $pmpro_msgt ) ); ?>">
80
+
<?php echo wp_kses_post( apply_filters( 'pmpro_checkout_message', $pmpro_msg, $pmpro_msgt ) ); ?>
81
+
</div>
82
+
<?php } else { ?>
83
+
<div id="pmpro_message" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_message' ) ); ?>" style="display: none;"></div>
84
+
<?php } ?>
85
+
86
+
<?php if ( $pmpro_review ) { ?>
87
+
<p><?php echo wp_kses( __( 'Almost done. Review the membership information and pricing below then <strong>click the "Complete Payment" button</strong> to finish your order.', 'paid-memberships-pro' ), array( 'strong' => array() ) ); ?></p>
88
+
<?php } ?>
89
+
90
+
<?php
91
+
$include_pricing_fields = apply_filters( 'pmpro_include_pricing_fields', true );
92
+
if ( $include_pricing_fields ) {
93
+
?>
94
+
<div id="pmpro_pricing_fields" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_card', 'pmpro_pricing_fields' ) ); ?>">
95
+
96
+
<h2 class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_card_title pmpro_font-large' ) ); ?>"><?php esc_html_e( 'Membership Information', 'paid-memberships-pro' ); ?></h2>
97
+
98
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_card_content' ) ); ?>">
99
+
100
+
<p class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_level_name_text' ) );?>">
101
+
<?php
102
+
// Tell the user which level they are signing up for.
103
+
printf( esc_html__('You have selected the %s membership level.', 'paid-memberships-pro' ), '<strong>' . esc_html( $pmpro_level->name ) . '</strong>' );
104
+
105
+
// If a level will be removed with this purchase, let them know that too.
106
+
// First off, get the group for this level and check if it allows a user to have multiple levels.
107
+
$group_id = pmpro_get_group_id_for_level( $pmpro_level->id );
108
+
$group = pmpro_get_level_group( $group_id );
109
+
if ( ! empty( $group ) && empty( $group->allow_multiple_selections ) ) {
110
+
// Get all of the user's current membership levels.
111
+
$levels = pmpro_getMembershipLevelsForUser( $current_user->ID );
112
+
113
+
// Loop through the levels and see if any are in the same group as the level being purchased.
114
+
if ( ! empty( $levels ) ) {
115
+
foreach ( $levels as $level ) {
116
+
// If this is the level that the user is purchasing, continue.
117
+
if ( $level->id == $pmpro_level->id ) {
118
+
continue;
119
+
}
120
+
121
+
// If this level is not in the same group, continue.
122
+
if ( pmpro_get_group_id_for_level( $level->id ) != $group_id ) {
123
+
continue;
124
+
}
125
+
126
+
// If we made it this far, the user is going to lose this level after checkout.
127
+
printf( ' ' . esc_html__( 'Your current membership level of %s will be removed when you complete your purchase.', 'paid-memberships-pro' ), '<strong>' . esc_html( $level->name ) . '</strong>' );
128
+
}
129
+
}
130
+
}
131
+
?>
132
+
</p> <!-- end pmpro_level_name_text -->
133
+
134
+
<?php
135
+
/**
136
+
* Allow devs to filter the level description at checkout.
137
+
* We also have a function in includes/filters.php that applies the the_content filters to this description.
138
+
* @param string $description The level description.
139
+
* @param object $pmpro_level The PMPro Level object.
140
+
*/
141
+
$level_description = apply_filters( 'pmpro_level_description', $pmpro_level->description, $pmpro_level );
142
+
if ( ! empty( $level_description ) ) { ?>
143
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_level_description_text' ) );?>">
144
+
<?php echo wp_kses_post( $level_description ); ?>
145
+
</div> <!-- end pmpro_level_description_text -->
146
+
<?php
147
+
}
148
+
?>
149
+
150
+
<div id="pmpro_level_cost">
151
+
<?php if($discount_code && pmpro_checkDiscountCode($discount_code)) { ?>
152
+
<?php
153
+
echo '<p class="' . esc_attr( pmpro_get_element_class( 'pmpro_level_discount_applied' ) ) . '">';
154
+
echo sprintf( esc_html__( 'The %s code has been applied to your order.', 'paid-memberships-pro' ), '<span class="' . esc_attr( pmpro_get_element_class( "pmpro_tag pmpro_tag-discount-code", "pmpro_tag-discount-code" ) ) . '">' . esc_html( $discount_code ) . '</span>' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
155
+
echo '</p> <!-- end pmpro_level_discount_applied -->';
156
+
?>
157
+
<?php } ?>
158
+
159
+
<?php
160
+
$level_cost_text = pmpro_getLevelCost( $pmpro_level );
161
+
if ( ! empty( $level_cost_text ) ) { ?>
162
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_level_cost_text' ) );?>">
163
+
<?php echo wp_kses_post( wpautop( $level_cost_text ) ); ?>
164
+
</div> <!-- end pmpro_level_cost_text -->
165
+
<?php }
166
+
?>
167
+
168
+
<?php
169
+
$level_expiration_text = pmpro_getLevelExpiration( $pmpro_level );
170
+
if ( ! empty( $level_expiration_text ) ) { ?>
171
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_level_expiration_text' ) );?>">
172
+
<?php echo wp_kses_post( wpautop( $level_expiration_text ) ); ?>
173
+
</div> <!-- end pmpro_level_expiration_text -->
174
+
<?php }
175
+
?>
176
+
</div> <!-- end #pmpro_level_cost -->
177
+
178
+
<?php
179
+
/**
180
+
* Fires after the level cost text is shown.
181
+
*
182
+
* @since 3.4 Added $pmpro_level as a parameter.
183
+
*
184
+
* @param object $pmpro_level The PMPro Level object being purchased.
185
+
*/
186
+
do_action( 'pmpro_checkout_after_level_cost', $pmpro_level );
187
+
?>
188
+
189
+
</div> <!-- end pmpro_card_content -->
190
+
<?php if ( $pmpro_show_discount_code ) { ?>
191
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_card_actions' ) ); ?>">
192
+
<?php if($discount_code && !$pmpro_review) { ?>
193
+
<span id="other_discount_code_p"><button type="button" id="other_discount_code_toggle"><?php esc_html_e('Click here to change your discount code', 'paid-memberships-pro' );?></button></span>
194
+
<?php } elseif(!$pmpro_review) { ?>
195
+
<span id="other_discount_code_p"><?php esc_html_e('Do you have a discount code?', 'paid-memberships-pro' );?> <button type="button" id="other_discount_code_toggle"><?php esc_html_e('Click here to enter your discount code', 'paid-memberships-pro' );?></button></span>
196
+
<?php } elseif($pmpro_review && $discount_code) { ?>
197
+
<span><strong><?php esc_html_e('Discount Code', 'paid-memberships-pro' );?>:</strong> <?php echo esc_html( $discount_code ); ?></span>
198
+
<?php } ?>
199
+
<div id="other_discount_code_fields" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_field pmpro_form_field-text' ) ); ?>" style="display: none;">
200
+
<label for="pmpro_other_discount_code" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_label' ) ); ?>"><?php esc_html_e('Discount Code', 'paid-memberships-pro' );?></label>
201
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_fields-inline' ) ); ?>">
202
+
<input id="pmpro_other_discount_code" name="pmpro_other_discount_code" type="text" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_input pmpro_form_input-text pmpro_alter_price', 'other_discount_code' ) ); ?>" value="<?php echo esc_attr($discount_code); ?>" />
203
+
<input aria-label="<?php esc_html_e( 'Apply discount code', 'paid-memberships-pro' ); ?>" type="button" name="other_discount_code_button" id="other_discount_code_button" value="<?php esc_attr_e('Apply', 'paid-memberships-pro' );?>" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_btn pmpro_btn-submit-discount-code', 'other_discount_code_button' ) ); ?>" />
204
+
</div>
205
+
</div>
206
+
</div> <!-- end pmpro_card_actions -->
207
+
<?php } ?>
208
+
</div> <!-- end pmpro_pricing_fields -->
209
+
<?php
210
+
} // if ( $include_pricing_fields )
211
+
?>
212
+
213
+
<?php
214
+
/**
215
+
* Fires after the pricing fields are shown.
216
+
*
217
+
* @since 3.4 Added $pmpro_level as a parameter.
218
+
*
219
+
* @param object $pmpro_level The PMPro Level object being purchased.
220
+
*/
221
+
do_action( 'pmpro_checkout_after_pricing_fields', $pmpro_level );
222
+
?>
223
+
224
+
<?php
225
+
// Define whether we should show the Account Information box.
226
+
$show_pmpro_user_fields_fieldset = true;
227
+
228
+
// If $pmpro_review is set, skip.
229
+
if ( $pmpro_review ) {
230
+
$show_pmpro_user_fields_fieldset = false;
231
+
}
232
+
233
+
// If we are skipping the account fields and the user is logged out, skip the entire fieldset.
234
+
// The logged out check is important since if the user is logged in, we will show a logged in message.
235
+
if ( $skip_account_fields && ! $current_user->ID ) {
236
+
$show_pmpro_user_fields_fieldset = false;
237
+
}
238
+
239
+
if ( $show_pmpro_user_fields_fieldset ) {
240
+
?>
241
+
<fieldset id="pmpro_user_fields" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_fieldset', 'pmpro_user_fields' ) ); ?>">
242
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_card' ) ); ?>">
243
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_card_content' ) ); ?>">
244
+
<legend class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_legend' ) ); ?>">
245
+
<h2 class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_heading pmpro_font-large' ) ); ?>"><?php esc_html_e( 'Account Information', 'paid-memberships-pro' ); ?></h2>
246
+
</legend>
247
+
<?php if ( ! $skip_account_fields ) { ?>
248
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_fields' ) ); ?>">
249
+
<?php
250
+
// Get discount code from URL parameter, so if the user logs in it will keep it applied.
251
+
$discount_code_link = ! empty( $discount_code) ? '&pmpro_discount_code=' . $discount_code : '';
252
+
?>
253
+
254
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_field pmpro_form_field-text pmpro_form_field-username', 'pmpro_form_field-username' ) ); ?>">
255
+
<label for="username" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_label' ) ); ?>"><?php esc_html_e('Username', 'paid-memberships-pro' );?></label>
256
+
<input id="username" name="username" type="text" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_input pmpro_form_input-text', 'username' ) ); ?>" autocomplete="username" value="<?php echo esc_attr( $username ); ?>" />
257
+
</div> <!-- end pmpro_form_field-username -->
258
+
259
+
<?php do_action( 'pmpro_checkout_after_username' ); ?>
260
+
261
+
<?php
262
+
/**
263
+
* Filter to require confirmed password at checkout.
264
+
*
265
+
* @param bool $pmpro_checkout_confirm_password, true to require a password confirm field, false to hide.
266
+
*/
267
+
$pmpro_checkout_confirm_password = apply_filters( 'pmpro_checkout_confirm_password', true );
268
+
269
+
echo $pmpro_checkout_confirm_password ? '<div class="' . esc_attr( pmpro_get_element_class( 'pmpro_cols-2' ) ) . '">' : '';
270
+
?>
271
+
272
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_field pmpro_form_field-password' ) ); ?>">
273
+
<label for="password" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_label' ) ); ?>">
274
+
<?php esc_html_e( 'Password', 'paid-memberships-pro' );?>
275
+
</label>
276
+
<input type="password" name="password" id="password" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_input pmpro_form_input-password', 'password' ) ); ?>" autocomplete="new-password" spellcheck="false" value="<?php echo esc_attr( $password ); ?>" />
277
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_field-password-toggle' ) ); ?>">
278
+
<button type="button" class="pmpro_btn pmpro_btn-plain pmpro_btn-password-toggle hide-if-no-js" data-toggle="0">
279
+
<span class="pmpro_icon pmpro_icon-eye" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--pmpro--color--accent)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-eye"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path><circle cx="12" cy="12" r="3"></circle></svg></span>
280
+
<span class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_field-password-toggle-state' ) ); ?>"><?php esc_html_e( 'Show Password', 'paid-memberships-pro' ); ?></span>
281
+
</button>
282
+
</div> <!-- end pmpro_form_field-password-toggle -->
283
+
</div> <!-- end pmpro_form_field-password -->
284
+
285
+
<?php
286
+
if ( $pmpro_checkout_confirm_password ) {
287
+
?>
288
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_field pmpro_form_field-password', 'pmpro_form_field-password2' ) ); ?>">
289
+
<label for="password2" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_label' ) ); ?>"><?php esc_html_e('Confirm Password', 'paid-memberships-pro' );?></label>
290
+
<input type="password" name="password2" id="password2" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_input pmpro_form_input-password', 'password2' ) ); ?>" autocomplete="new-password" spellcheck="false" value="<?php echo esc_attr( $password2 ); ?>" />
291
+
</div> <!-- end pmpro_form_field-password2 -->
292
+
<?php
293
+
} else {
294
+
?>
295
+
<input type="hidden" name="password2_copy" value="1" />
296
+
<?php
297
+
}
298
+
?>
299
+
300
+
<?php echo $pmpro_checkout_confirm_password ? '</div>' : ''; ?>
301
+
302
+
<?php do_action( 'pmpro_checkout_after_password' ); ?>
303
+
304
+
<?php
305
+
/**
306
+
* Filter to require confirmed email at checkout.
307
+
*
308
+
* @param bool $pmpro_checkout_confirm_email, true to require a email confirm field, false to hide.
309
+
*/
310
+
$pmpro_checkout_confirm_email = apply_filters( 'pmpro_checkout_confirm_email', true );
311
+
312
+
echo $pmpro_checkout_confirm_email ? '<div class="' . esc_attr( pmpro_get_element_class( 'pmpro_cols-2' ) ) . '">' : '';
313
+
?>
314
+
315
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_field pmpro_form_field-email pmpro_form_field-bemail', 'pmpro_form_field-bemail' ) ); ?>">
316
+
<label for="bemail" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_label' ) ); ?>"><?php esc_html_e('Email Address', 'paid-memberships-pro' );?></label>
317
+
<input id="bemail" name="bemail" type="<?php echo ( $pmpro_email_field_type ? 'email' : 'text' ); ?>" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_input pmpro_form_input-email', 'bemail' ) ); ?>" value="<?php echo esc_attr( $bemail ); ?>" />
318
+
</div> <!-- end pmpro_form_field-bemail -->
319
+
320
+
<?php
321
+
if ( $pmpro_checkout_confirm_email ) {
322
+
?>
323
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_field pmpro_form_field-email pmpro_form_field-bconfirmemail', 'pmpro_form_field-bconfirmemail' ) ); ?>">
324
+
<label for="bconfirmemail" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_label' ) ); ?>"><?php esc_html_e('Confirm Email Address', 'paid-memberships-pro' );?></label>
325
+
<input id="bconfirmemail" name="bconfirmemail" type="<?php echo ( $pmpro_email_field_type ? 'email' : 'text' ); ?>" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_input pmpro_form_input-email', 'bconfirmemail' ) ); ?>" value="<?php echo esc_attr( $bconfirmemail ); ?>" />
326
+
</div> <!-- end pmpro_form_field-bconfirmemail -->
327
+
<?php
328
+
} else {
329
+
?>
330
+
<input type="hidden" name="bconfirmemail_copy" value="1" />
331
+
<?php
332
+
}
333
+
?>
334
+
335
+
<?php echo $pmpro_checkout_confirm_email ? '</div>' : ''; ?>
336
+
337
+
<?php do_action( 'pmpro_checkout_after_email' ); ?>
338
+
339
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_hidden' ) ); ?>">
340
+
<label for="fullname"><?php esc_html_e('Full Name', 'paid-memberships-pro' );?></label>
341
+
<input id="fullname" name="fullname" type="text" value="" autocomplete="off" aria-hidden="true" aria-label="<?php esc_html_e( 'Do not fill this field out. Leave this blank.', 'paid-memberships-pro'); ?>"/> <strong><?php esc_html_e('LEAVE THIS BLANK', 'paid-memberships-pro' );?></strong>
342
+
</div> <!-- end pmpro_hidden -->
343
+
</div> <!-- end pmpro_form_fields -->
344
+
<?php } else { ?>
345
+
<div id="pmpro_account_loggedin">
346
+
<?php
347
+
$allowed_html = array(
348
+
'a' => array(
349
+
'href' => array(),
350
+
'title' => array(),
351
+
'target' => array(),
352
+
),
353
+
'strong' => array(),
354
+
);
355
+
echo wp_kses( sprintf( __('You are logged in as <strong>%s</strong>. If you would like to use a different account for this membership, <a href="%s">log out now</a>.', 'paid-memberships-pro' ), $current_user->user_login, wp_logout_url( esc_url_raw( $_SERVER['REQUEST_URI'] ) ) ), $allowed_html );
356
+
?>
357
+
</div> <!-- end pmpro_account_loggedin -->
358
+
<?php } ?>
359
+
</div> <!-- end pmpro_card_content -->
360
+
<?php if ( ! $skip_account_fields ) { ?>
361
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_card_actions' ) ); ?>">
362
+
<?php esc_html_e('Already have an account?', 'paid-memberships-pro' );?> <a href="<?php echo esc_url( wp_login_url( apply_filters( 'pmpro_checkout_login_redirect', pmpro_url("checkout", "?pmpro_level=" . $pmpro_level->id . $discount_code_link) ) ) ); ?>"><?php esc_html_e('Log in here', 'paid-memberships-pro' ); ?></a>
363
+
</div> <!-- end pmpro_card_actions -->
364
+
<?php } ?>
365
+
</div> <!-- end pmpro_card -->
366
+
</fieldset> <!-- end pmpro_user_fields -->
367
+
<?php } ?>
368
+
369
+
<?php do_action( 'pmpro_checkout_after_user_fields' ); ?>
370
+
371
+
<?php
372
+
/**
373
+
* Add additional checkout boxes to the checkout page.
374
+
*
375
+
* @since 3.4 Added $pmpro_level as a parameter.
376
+
*
377
+
* @param object $pmpro_level The PMPro Level object being purchased.
378
+
*/
379
+
do_action( 'pmpro_checkout_boxes', $pmpro_level );
380
+
?>
381
+
382
+
<?php
383
+
$pmpro_include_billing_address_fields = apply_filters('pmpro_include_billing_address_fields', true);
384
+
if ( $pmpro_include_billing_address_fields ) { ?>
385
+
<fieldset id="pmpro_billing_address_fields" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_fieldset', 'pmpro_billing_address_fields' ) ); ?>" <?php if ( ! $pmpro_requirebilling || apply_filters("pmpro_hide_billing_address_fields", false) ) { ?>style="display: none;"<?php } ?>>
386
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_card' ) ); ?>">
387
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_card_content' ) ); ?>">
388
+
<legend class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_legend' ) ); ?>">
389
+
<h2 class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_heading pmpro_font-large' ) ); ?>"><?php esc_html_e( 'Billing Address', 'paid-memberships-pro' ); ?></h2>
390
+
</legend>
391
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_fields pmpro_cols-2' ) ); ?>">
392
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_field pmpro_form_field-text pmpro_form_field-bfirstname', 'pmpro_form_field-bfirstname' ) ); ?>">
393
+
<label for="bfirstname" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_label' ) ); ?>"><?php esc_html_e('First Name', 'paid-memberships-pro' );?></label>
394
+
<input id="bfirstname" name="bfirstname" type="text" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_input pmpro_form_input-text', 'bfirstname' ) ); ?>" value="<?php echo esc_attr($bfirstname); ?>" autocomplete="given-name" />
395
+
</div> <!-- end pmpro_form_field-bfirstname -->
396
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_field pmpro_form_field-text pmpro_form_field-blastname', 'pmpro_form_field-blastname' ) ); ?>">
397
+
<label for="blastname" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_label' ) ); ?>"><?php esc_html_e('Last Name', 'paid-memberships-pro' );?></label>
398
+
<input id="blastname" name="blastname" type="text" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_input pmpro_form_input-text', 'blastname' ) ); ?>" value="<?php echo esc_attr($blastname); ?>" autocomplete="family-name" />
399
+
</div> <!-- end pmpro_form_field-blastname -->
400
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_field pmpro_form_field-text pmpro_form_field-baddress1', 'pmpro_form_field-baddress1' ) ); ?>">
401
+
<label for="baddress1" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_label' ) ); ?>"><?php esc_html_e('Address 1', 'paid-memberships-pro' );?></label>
402
+
<input id="baddress1" name="baddress1" type="text" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_input pmpro_form_input-text', 'baddress1' ) ); ?>" value="<?php echo esc_attr($baddress1); ?>" autocomplete="billing street-address" />
403
+
</div> <!-- end pmpro_form_field-baddress1 -->
404
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_field pmpro_form_field-text pmpro_form_field-baddress2', 'pmpro_form_field-baddress2' ) ); ?>">
405
+
<label for="baddress2" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_label' ) ); ?>"><?php esc_html_e('Address 2', 'paid-memberships-pro' );?></label>
406
+
<input id="baddress2" name="baddress2" type="text" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_input pmpro_form_input-text', 'baddress2' ) ); ?>" value="<?php echo esc_attr($baddress2); ?>" />
407
+
</div> <!-- end pmpro_form_field-baddress2 -->
408
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_field pmpro_form_field-text pmpro_form_field-bcity', 'pmpro_form_field-bcity' ) ); ?>">
409
+
<label for="bcity" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_label' ) ); ?>"><?php esc_html_e('City', 'paid-memberships-pro' );?></label>
410
+
<input id="bcity" name="bcity" type="text" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_input pmpro_form_input-text', 'bcity' ) ); ?>" value="<?php echo esc_attr($bcity); ?>" />
411
+
</div> <!-- end pmpro_form_field-bcity -->
412
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_field pmpro_form_field-text pmpro_form_field-bstate', 'pmpro_form_field-bstate' ) ); ?>">
413
+
<label for="bstate" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_label' ) ); ?>"><?php esc_html_e('State', 'paid-memberships-pro' );?></label>
414
+
<input id="bstate" name="bstate" type="text" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_input pmpro_form_input-text', 'bstate' ) ); ?>" value="<?php echo esc_attr($bstate); ?>" />
415
+
</div> <!-- end pmpro_form_field-bstate -->
416
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_field pmpro_form_field-text pmpro_form_field-bzipcode', 'pmpro_form_field-bzipcode' ) ); ?>">
417
+
<label for="bzipcode" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_label' ) ); ?>"><?php esc_html_e('Postal Code', 'paid-memberships-pro' );?></label>
418
+
<input id="bzipcode" name="bzipcode" type="text" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_input pmpro_form_input-text', 'bzipcode' ) ); ?>" value="<?php echo esc_attr($bzipcode); ?>" autocomplete="billing postal-code" />
419
+
</div> <!-- end pmpro_form_field-bzipcode -->
420
+
<?php
421
+
$show_country = apply_filters("pmpro_international_addresses", true);
422
+
if($show_country) { ?>
423
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_field pmpro_form_field-select pmpro_form_field-bcountry', 'pmpro_form_field-bcountry' ) ); ?>">
424
+
<label for="bcountry" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_label' ) ); ?>"><?php esc_html_e('Country', 'paid-memberships-pro' );?></label>
425
+
<select name="bcountry" id="bcountry" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_input pmpro_form_input-select', 'bcountry' ) ); ?>" autocomplete="billing country">
426
+
<?php
427
+
global $pmpro_countries, $pmpro_default_country;
428
+
if(!$bcountry) {
429
+
$bcountry = $pmpro_default_country;
430
+
}
431
+
foreach($pmpro_countries as $abbr => $country) { ?>
432
+
<option value="<?php echo esc_attr( $abbr ) ?>" <?php if($abbr == $bcountry) { ?>selected="selected"<?php } ?>><?php echo esc_html( $country )?></option>
433
+
<?php } ?>
434
+
</select>
435
+
</div> <!-- end pmpro_form_field-bcountry -->
436
+
<?php } else { ?>
437
+
<input type="hidden" name="bcountry" id="bcountry" value="<?php echo esc_attr( $pmpro_default_country ); ?>" />
438
+
<?php } ?>
439
+
<?php if($skip_account_fields) { ?>
440
+
<?php
441
+
if($current_user->ID) {
442
+
if(!$bemail && $current_user->user_email) {
443
+
$bemail = $current_user->user_email;
444
+
}
445
+
if(!$bconfirmemail && $current_user->user_email) {
446
+
$bconfirmemail = $current_user->user_email;
447
+
}
448
+
}
449
+
?>
450
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_field pmpro_form_field-email pmpro_form_field-bemail', 'pmpro_form_field-bemail' ) ); ?>">
451
+
<label for="bemail" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_label' ) ); ?>"><?php esc_html_e('Email Address', 'paid-memberships-pro' );?></label>
452
+
<input id="bemail" name="bemail" type="<?php echo ($pmpro_email_field_type ? 'email' : 'text'); ?>" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_input pmpro_form_input-email', 'bemail' ) ); ?>" value="<?php echo esc_attr($bemail); ?>" autocomplete="email" />
453
+
</div> <!-- end pmpro_form_field-bemail -->
454
+
<?php
455
+
$pmpro_checkout_confirm_email = apply_filters("pmpro_checkout_confirm_email", true);
456
+
if($pmpro_checkout_confirm_email) { ?>
457
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_field pmpro_form_field-email pmpro_form_field-bconfirmemail', 'pmpro_form_field-bconfirmemail' ) ); ?>">
458
+
<label for="bconfirmemail" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_label' ) ); ?>"><?php esc_html_e('Confirm Email', 'paid-memberships-pro' );?></label>
459
+
<input id="bconfirmemail" name="bconfirmemail" type="<?php echo ($pmpro_email_field_type ? 'email' : 'text'); ?>" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_input pmpro_form_input-email', 'bconfirmemail' ) ); ?>" value="<?php echo esc_attr($bconfirmemail); ?>" autocomplete="email" />
460
+
</div> <!-- end pmpro_form_field-bconfirmemail -->
461
+
<?php } else { ?>
462
+
<input type="hidden" name="bconfirmemail_copy" value="1" />
463
+
<?php } ?>
464
+
<?php } ?>
465
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_field pmpro_form_field-text pmpro_form_field-bphone', 'pmpro_form_field-bphone' ) ); ?>">
466
+
<label for="bphone" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_label' ) ); ?>"><?php esc_html_e('Phone', 'paid-memberships-pro' );?></label>
467
+
<input id="bphone" name="bphone" type="text" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_input pmpro_form_input-text', 'bphone' ) ); ?>" value="<?php echo esc_attr(formatPhone($bphone)); ?>" autocomplete="tel" />
468
+
</div> <!-- end pmpro_form_field-bphone -->
469
+
</div> <!-- end pmpro_form_fields -->
470
+
</div> <!-- end pmpro_card_content -->
471
+
</div> <!-- end pmpro_card -->
472
+
</fieldset> <!-- end pmpro_billing_address_fields -->
473
+
<?php } ?>
474
+
475
+
<?php do_action( 'pmpro_checkout_after_billing_fields' ); ?>
476
+
477
+
<?php
478
+
/**
479
+
* Filter to set if the payment information fields should be shown.
480
+
*
481
+
* @param bool $include_payment_information_fields
482
+
* @return bool
483
+
*/
484
+
$pmpro_include_payment_information_fields = apply_filters( 'pmpro_include_payment_information_fields', true );
485
+
if ( $pmpro_include_payment_information_fields ) {
486
+
?>
487
+
<fieldset id="pmpro_payment_information_fields" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_fieldset', 'pmpro_payment_information_fields' ) ); ?>" <?php if ( ! $pmpro_requirebilling || apply_filters( 'pmpro_hide_payment_information_fields', false ) ) { ?>style="display: none;"<?php } ?>>
488
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_card' ) ); ?>">
489
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_card_content' ) ); ?>">
490
+
<legend class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_legend' ) ); ?>">
491
+
<h2 class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_heading pmpro_font-large' ) ); ?>"><?php esc_html_e( 'Payment Information', 'paid-memberships-pro' ); ?></h2>
492
+
</legend>
493
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_fields' ) ); ?>">
494
+
<input type="hidden" id="CardType" name="CardType" value="<?php echo esc_attr($CardType);?>" />
495
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_field pmpro_form_field-text pmpro_payment-account-number', 'pmpro_payment-account-number' ) ); ?>">
496
+
<label for="AccountNumber" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_label' ) ); ?>"><?php esc_html_e('Card Number', 'paid-memberships-pro' );?></label>
497
+
<input id="AccountNumber" name="AccountNumber" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_input pmpro_form_input-text', 'AccountNumber' ) ); ?>" type="text" value="<?php echo esc_attr($AccountNumber); ?>" data-encrypted-name="number" autocomplete="off" />
498
+
</div>
499
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_cols-2' ) ); ?>">
500
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_field pmpro_form_field-select pmpro_payment-expiration', 'pmpro_payment-expiration' ) ); ?>">
501
+
<label for="ExpirationMonth" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_label' ) ); ?>"><?php esc_html_e('Expiration Date', 'paid-memberships-pro' );?></label>
502
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_fields-inline' ) ); ?>">
503
+
<select id="ExpirationMonth" name="ExpirationMonth" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_input pmpro_form_input-select', 'ExpirationMonth' ) ); ?>">
504
+
<option value="01" <?php if($ExpirationMonth == "01") { ?>selected="selected"<?php } ?>>01</option>
505
+
<option value="02" <?php if($ExpirationMonth == "02") { ?>selected="selected"<?php } ?>>02</option>
506
+
<option value="03" <?php if($ExpirationMonth == "03") { ?>selected="selected"<?php } ?>>03</option>
507
+
<option value="04" <?php if($ExpirationMonth == "04") { ?>selected="selected"<?php } ?>>04</option>
508
+
<option value="05" <?php if($ExpirationMonth == "05") { ?>selected="selected"<?php } ?>>05</option>
509
+
<option value="06" <?php if($ExpirationMonth == "06") { ?>selected="selected"<?php } ?>>06</option>
510
+
<option value="07" <?php if($ExpirationMonth == "07") { ?>selected="selected"<?php } ?>>07</option>
511
+
<option value="08" <?php if($ExpirationMonth == "08") { ?>selected="selected"<?php } ?>>08</option>
512
+
<option value="09" <?php if($ExpirationMonth == "09") { ?>selected="selected"<?php } ?>>09</option>
513
+
<option value="10" <?php if($ExpirationMonth == "10") { ?>selected="selected"<?php } ?>>10</option>
514
+
<option value="11" <?php if($ExpirationMonth == "11") { ?>selected="selected"<?php } ?>>11</option>
515
+
<option value="12" <?php if($ExpirationMonth == "12") { ?>selected="selected"<?php } ?>>12</option>
516
+
</select>/<select id="ExpirationYear" name="ExpirationYear" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_input pmpro_form_input-select', 'ExpirationYear' ) ); ?>">
517
+
<?php
518
+
$num_years = apply_filters( 'pmpro_num_expiration_years', 10 );
519
+
520
+
for ( $i = date_i18n( 'Y' ); $i < intval( date_i18n( 'Y' ) ) + intval( $num_years ); $i++ )
521
+
{
522
+
?>
523
+
<option value="<?php echo esc_attr( $i ) ?>" <?php if($ExpirationYear == $i) { ?>selected="selected"<?php } elseif($i == date_i18n( 'Y' ) + 1) { ?>selected="selected"<?php } ?>><?php echo esc_html( $i )?></option>
524
+
<?php
525
+
}
526
+
?>
527
+
</select>
528
+
</div> <!-- end pmpro_form_fields-inline -->
529
+
</div>
530
+
<?php
531
+
$pmpro_show_cvv = apply_filters("pmpro_show_cvv", true);
532
+
if($pmpro_show_cvv) { ?>
533
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_field pmpro_form_field-text pmpro_payment-cvv', 'pmpro_payment-cvv' ) ); ?>">
534
+
<label for="CVV" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_label' ) ); ?>"><?php esc_html_e('Security Code (CVC)', 'paid-memberships-pro' );?></label>
535
+
<input id="CVV" name="CVV" type="text" size="4" value="<?php if(!empty($_REQUEST['CVV'])) { echo esc_attr( sanitize_text_field( $_REQUEST['CVV'] ) ); }?>" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_input pmpro_form_input-text', 'CVV' ) ); ?>" />
536
+
</div>
537
+
<?php } ?>
538
+
</div> <!-- end pmpro_cols-2 -->
539
+
<?php if($pmpro_show_discount_code) { ?>
540
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_cols-2' ) ); ?>">
541
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_field pmpro_form_field-text pmpro_payment-discount-code', 'pmpro_payment-discount-code' ) ); ?>">
542
+
<label for="pmpro_discount_code" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_label' ) ); ?>"><?php esc_html_e('Discount Code', 'paid-memberships-pro' );?></label>
543
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_fields-inline' ) ); ?>">
544
+
<input class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_input pmpro_form_input-text pmpro_alter_price', 'discount_code' ) ); ?>" id="pmpro_discount_code" name="pmpro_discount_code" type="text" size="10" value="<?php echo esc_attr($discount_code); ?>" />
545
+
<input aria-label="<?php esc_html_e( 'Apply discount code', 'paid-memberships-pro' ); ?>" type="button" id="discount_code_button" name="discount_code_button" value="<?php esc_attr_e('Apply', 'paid-memberships-pro' );?>" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_btn pmpro_btn-submit-discount-code', 'other_discount_code_button' ) ); ?>" />
546
+
</div> <!-- end pmpro_form_fields-inline -->
547
+
<div id="discount_code_message" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_message', 'discount_code_message' ) ); ?>" style="display: none;"></div>
548
+
</div>
549
+
</div> <!-- end pmpro_cols-2 -->
550
+
<?php } ?>
551
+
</div> <!-- end pmpro_form_fields -->
552
+
</div> <!-- end pmpro_card_content -->
553
+
</div> <!-- end pmpro_card -->
554
+
</fieldset> <!-- end pmpro_payment_information_fields -->
555
+
<?php
556
+
}
557
+
?>
558
+
559
+
<?php
560
+
/**
561
+
* Fires after the payment information fields on the checkout page.
562
+
*
563
+
* @since 3.4 Added $pmpro_level as a parameter.
564
+
*
565
+
* @param object $pmpro_level The PMPro Level object being purchased.
566
+
*/
567
+
do_action( 'pmpro_checkout_after_payment_information_fields', $pmpro_level );
568
+
569
+
/**
570
+
* Fires before the submit button on the checkout page.
571
+
*
572
+
* @since 3.4 Added $pmpro_level as a parameter.
573
+
*
574
+
* @param object $pmpro_level The PMPro Level object being purchased.
575
+
*/
576
+
do_action( 'pmpro_checkout_before_submit_button', $pmpro_level );
577
+
578
+
// Add nonce.
579
+
wp_nonce_field( 'pmpro_checkout_nonce', 'pmpro_checkout_nonce' );
580
+
?>
581
+
582
+
<?php if ( $pmpro_msg ) { ?>
583
+
<div id="pmpro_message_bottom" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_message ' . $pmpro_msgt, $pmpro_msgt ) ); ?>"><?php echo wp_kses_post( apply_filters( 'pmpro_checkout_message', $pmpro_msg, $pmpro_msgt ) ); ?></div>
584
+
<?php } else { ?>
585
+
<div id="pmpro_message_bottom" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_message' ) ); ?>" style="display: none;"></div>
586
+
<?php } ?>
587
+
588
+
<div class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_form_submit' ) ); ?>">
589
+
590
+
<?php if ( $pmpro_review ) { ?>
591
+
<span id="pmpro_submit_span">
592
+
<input type="hidden" name="confirm" value="1" />
593
+
<input type="hidden" name="token" value="<?php echo esc_attr($pmpro_paypal_token); ?>" />
594
+
<input type="hidden" name="gateway" value="<?php echo esc_attr($gateway); ?>" />
595
+
<input type="hidden" name="submit-checkout" value="1" />
596
+
<input type="submit" id="pmpro_btn-submit" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_btn pmpro_btn-submit-checkout', 'pmpro_btn-submit-checkout' ) ); ?>" value="<?php esc_attr_e('Complete Payment', 'paid-memberships-pro' );?>" />
597
+
</span>
598
+
599
+
<?php } else { ?>
600
+
601
+
<?php
602
+
/**
603
+
* Filter to set the default submit button on the checkout page.
604
+
*
605
+
* @param bool $pmpro_checkout_default_submit_button Default is true.
606
+
* @return bool
607
+
*/
608
+
$pmpro_checkout_default_submit_button = apply_filters('pmpro_checkout_default_submit_button', true);
609
+
if ( $pmpro_checkout_default_submit_button ) {
610
+
?>
611
+
<span id="pmpro_submit_span">
612
+
<input type="hidden" name="submit-checkout" value="1" />
613
+
<input type="submit" id="pmpro_btn-submit" class="<?php echo esc_attr( pmpro_get_element_class( 'pmpro_btn pmpro_btn-submit-checkout', 'pmpro_btn-submit-checkout' ) ); ?>" value="<?php if($pmpro_requirebilling) { esc_html_e('Submit and Check Out', 'paid-memberships-pro' ); } else { esc_html_e('Submit and Confirm', 'paid-memberships-pro' );}?>" />
614
+
</span>
615
+
<?php
616
+
}
617
+
?>
618
+
619
+
<?php } ?>
620
+
621
+
<div id="pmpro_processing_message" style="visibility: hidden;">
622
+
<?php
623
+
$processing_message = apply_filters("pmpro_processing_message", __("Processing...", 'paid-memberships-pro' ));
624
+
echo wp_kses_post( $processing_message );
625
+
?>
626
+
</div>
627
+
628
+
</div> <!-- end pmpro_form_submit -->
629
+
630
+
</form> <!-- end pmpro_form -->
631
+
632
+
<?php
633
+
/**
634
+
* Fires after the submit button on the checkout page.
635
+
*
636
+
* @since 3.4 Added $pmpro_level as a parameter.
637
+
*
638
+
* @param object $pmpro_level The PMPro Level object being purchased.
639
+
*/
640
+
do_action( 'pmpro_checkout_after_form', $pmpro_level );
641
+
?>
642
+
643
+
</section> <!-- end pmpro_level-ID -->
644
+
645
+
</div> <!-- end pmpro -->
646
+