Paid Memberships Pro - Version 2.1.2

Version Description

  • 2019-09-26 =
  • BUG FIX: Fixed bug where Stripe subscriptions weren't updated to use the new payment method when users updated their billing method on the Update Billing page. You may have users with an updated "default payment method" but their subscriptions still need to be updated manually in Stripe to use that new method. Otherwise, payments will fail. This is fixed going forward.
  • BUG FIX: Fixed bug where PMPro Blocks were sometimes not loading on the edit post page.
  • BUG FIX: Fixed bug where discount codes would cause ugly warnings to be shown on the checkout page.
  • BUG FIX: Fixed bug where custom templates would sometimes not load.
  • BUG FIX: Fixed issue where a warning was thrown sometimes when loading SESSION vars.
  • ENHANCEMENT: Moved the License page under Memberships.
  • EHNANCEMENT: Updated our UTM tracking links in various places we link to the Paid Memberships Pro website.
  • ENHANCEMENT: Added some help text and links to popular add ons in a few places in the PMPro settings.
Download this release

Release Info

Developer strangerstudios
Plugin Icon 128x128 Paid Memberships Pro
Version 2.1.2
Comparing to
See all releases

Code changes from version 2.1 to 2.1.2

CHANGELOG.txt CHANGED
@@ -1,5 +1,21 @@
1
== Changelog ==
2
3
= 2.1 - 2019-09-13 =
4
* FEATURE: Updated Stripe integration to support Stripe v3, Stripe Elements, and their Secure Customer Authorization process.
5
* FEATURE: Updated how we store prices to support up to 8 decimals (e.g. for Bitcoin gateway implementations).
1
== Changelog ==
2
3
+ = 2.1.2 - 2019-09-26 =
4
+ * BUG FIX: Fixed bug where Stripe subscriptions weren't updated to use the new payment method when users updated their billing method on the Update Billing page. You may have users with an updated "default payment method" but their subscriptions still need to be updated manually in Stripe to use that new method. Otherwise, payments will fail. This is fixed going forward.
5
+ * BUG FIX: Fixed bug where PMPro Blocks were sometimes not loading on the edit post page.
6
+ * BUG FIX: Fixed bug where discount codes would cause ugly warnings to be shown on the checkout page.
7
+ * BUG FIX: Fixed bug where custom templates would sometimes not load.
8
+ * BUG FIX: Fixed issue where a warning was thrown sometimes when loading SESSION vars.
9
+ * ENHANCEMENT: Moved the License page under Memberships.
10
+ * EHNANCEMENT: Updated our UTM tracking links in various places we link to the Paid Memberships Pro website.
11
+ * ENHANCEMENT: Added some help text and links to popular add ons in a few places in the PMPro settings.
12
+
13
+ = 2.1.1 - 2019-09-16 =
14
+ * BUG FIX: Fixed issue with SCA authentications via Stripe for subscriptions with a $0 initial payment. (Thanks, mjulian87 on Github.)
15
+ * BUG FIX: Fixed issue where code was shown in the message box when applying a discount code.
16
+ * BUG FIX: Fixed issue where pmpro_is_checkout() would always return true if no checkout page was set. This caused JavaScript issues on non-checkout pages.
17
+ * BUG FIX: The SVN repo on WordPress.org was missing a file for about 10 minutes after version 2.1 was pushed. Users who upgraded during this time may be missing that file. Updating now will restore it.
18
+
19
= 2.1 - 2019-09-13 =
20
* FEATURE: Updated Stripe integration to support Stripe v3, Stripe Elements, and their Secure Customer Authorization process.
21
* FEATURE: Updated how we store prices to support up to 8 decimals (e.g. for Bitcoin gateway implementations).
CONTRIBUTING.md DELETED
@@ -1,49 +0,0 @@
1
- # Contribute to Paid Memberships Pro
2
-
3
- Paid Memberships Pro is the "community solution" for membership sites on WordPress, and so contributions of all kinds are appreciated.
4
-
5
- When contributing, please follow these guidelines to ensure things work as smoothly as possible.
6
-
7
- __Please Note:__ GitHub is for bug reports and contributions only. If you have a support or customization question, go to our [Member Support Page](http://www.paidmembershipspro.com/support/) instead.
8
-
9
- ## Getting Started
10
-
11
- * __Do not report potential security vulnerabilities here. Email them privately to [info@paidmembershipspro.com](mailto:info@paidmembershipspro.com) with the words "Security Vulnerability" in the subject.__
12
- * Submit a ticket for your issue, assuming one does not already exist.
13
- * Raise it on our [Issue Tracker](https://github.com/strangerstudios/paid-memberships-pro//issues)
14
- * Clearly describe the issue including steps to reproduce the bug.
15
- * Make sure you fill in the earliest version that you know has the issue as well as the version of WordPress you're using.
16
-
17
- ## Making Changes
18
-
19
- * Fork the repository on GitHub
20
- * For bug fixes, checkout the DEV branch of the PMPro repository.
21
- * For new features and enhancements, checkout the branch for the version the feature is milestoned for.
22
- * Make sure to pull in any "upstream" changes first.
23
- * Use `git remote add upstream https://github.com/strangerstudios/paid-memberships-pro.git` to set the upstream repo
24
- * Use `git checkout dev` to get on the development branch.
25
- * Use `git pull upstream dev` to get the latest updates.
26
- * Use `git push` to push those updates to your fork.
27
- * Create a new local branch for each separate bug fix or feature. This will ensure that each pull request is for one issue only and easier to process.
28
- * Use `git checkout -b nameofmybugfixorfeature` to create the new branch
29
- * Make the changes to your local repository.
30
- * Ensure you stick to the [WordPress Coding Standards](https://codex.wordpress.org/WordPress_Coding_Standards) (even though much of the PMPro code does not currently)
31
- * If you have an automatic beautifier in your IDE or dev environment, turn it off. Unrelated style changes in your pull requests will make them harder to process. Feel free to message the core development team to ask them to clean up a file you are working on if the inconsitent coding styles is bothering you.
32
- * You can update the readme.txt to include a comment about your fix or feature in the changelog, but if you do not the core team will do it for you.
33
- * When committing, reference your issue (if present) and include a note about the fix in the commit message.
34
- * Push the changes to your fork.
35
- * For bug fixes, submit a pull request to the DEV branch of the PMPro repository.
36
- * For new features and enhancements, submit a pull request to the version the feature is milestoned for. This will usually be the version number following the current release unless the core dev team has milestoned the feature for a later release.
37
- * We will process all pull requests and make suggestions or changes as soon as possible. Feel free to ping us politely via email or social networks to take a look at your pulls.
38
-
39
- ## Code Documentation
40
-
41
- * We would like for every function, filter, class, and class method to be documented using phpDoc standards.
42
- * An example of [how PMPro uses phpDoc blocks can be found here](https://gist.github.com/sunnyratilal/5308969).
43
- * Please make sure that every function is documented so that when we update our API Documentation things don't go awry!
44
- * If you're adding/editing a function in a class, make sure to add `@access {private|public|protected}`
45
- * Finally, please use tabs and not spaces. The tab indent size should be 4 for all Paid Memberships Pro code.
46
-
47
- # Additional Resources
48
- * [General GitHub Documentation](https://help.github.com/)
49
- * [GitHub Pull Request documentation](https://help.github.com/send-pull-requests/)
adminpages/addons.php CHANGED
@@ -205,7 +205,7 @@
205
elseif(empty($pmpro_license_key))
206
{
207
//no key
208
- $actions['settings'] = '<span class="settings"><a href="' . admin_url('options-general.php?page=pmpro_license_settings') . '">' . __('Update License', 'paid-memberships-pro' ) . '</a></span>';
209
$actions['download'] = '<span class="download"><a target="_blank" href="' . $plugin_data['PluginURI'] . '">' . __('Download', 'paid-memberships-pro' ) . '</a></span>';
210
}
211
elseif(pmpro_license_isValid($pmpro_license_key, $plugin_data['License']))
@@ -217,7 +217,7 @@
217
else
218
{
219
//invalid key
220
- $actions['settings'] = '<span class="settings"><a href="' . admin_url('options-general.php?page=pmpro_license_settings') . '">' . __('Update License', 'paid-memberships-pro' ) . '</a></span>';
221
$actions['download'] = '<span class="download"><a target="_blank" href="' . $plugin_data['PluginURI'] . '">' . __('Download', 'paid-memberships-pro' ) . '</a></span>';
222
}
223
}
@@ -272,8 +272,8 @@
272
__( 'View details' )
273
);
274
} elseif ( ! empty( $plugin_data['PluginURI'] ) ) {
275
- $plugin_meta[] = sprintf( '<a href="%s">%s</a>',
276
- esc_url( $plugin_data['PluginURI'] ),
277
__( 'Visit plugin site' )
278
);
279
}
205
elseif(empty($pmpro_license_key))
206
{
207
//no key
208
+ $actions['settings'] = '<span class="settings"><a href="' . admin_url('admin.php?page=pmpro-license') . '">' . __('Update License', 'paid-memberships-pro' ) . '</a></span>';
209
$actions['download'] = '<span class="download"><a target="_blank" href="' . $plugin_data['PluginURI'] . '">' . __('Download', 'paid-memberships-pro' ) . '</a></span>';
210
}
211
elseif(pmpro_license_isValid($pmpro_license_key, $plugin_data['License']))
217
else
218
{
219
//invalid key
220
+ $actions['settings'] = '<span class="settings"><a href="' . admin_url('admin.php?page=pmpro-license') . '">' . __('Update License', 'paid-memberships-pro' ) . '</a></span>';
221
$actions['download'] = '<span class="download"><a target="_blank" href="' . $plugin_data['PluginURI'] . '">' . __('Download', 'paid-memberships-pro' ) . '</a></span>';
222
}
223
}
272
__( 'View details' )
273
);
274
} elseif ( ! empty( $plugin_data['PluginURI'] ) ) {
275
+ $plugin_meta[] = sprintf( '<a target="_blank" href="%s">%s</a>',
276
+ esc_url( $plugin_data['PluginURI'] ) . '?utm_source=plugin&utm_medium=pmpro-addons&utm_campaign=add-ons',
277
__( 'Visit plugin site' )
278
);
279
}
adminpages/admin_header.php CHANGED
@@ -150,11 +150,11 @@
150
151
<div class="wrap pmpro_admin">
152
<div class="pmpro_banner">
153
- <a class="pmpro_logo" title="Paid Memberships Pro - Membership Plugin for WordPress" target="_blank" href="<?php echo pmpro_https_filter("https://www.paidmembershipspro.com/?utm_source=plugin&utm_medium=banner&utm_campaign=admin_header")?>"><img src="<?php echo PMPRO_URL?>/images/Paid-Memberships-Pro.png" width="350" height="75" border="0" alt="Paid Memberships Pro(c) - All Rights Reserved" /></a>
154
<div class="pmpro_meta">
155
<span class="pmpro_version">v<?php echo PMPRO_VERSION?></span>
156
- <a target="_blank" class="button button-documentation" href="<?php echo pmpro_https_filter("https://www.paidmembershipspro.com/documentation?utm_source=plugin&utm_medium=banner&utm_campaign=admin_header")?>"><?php _e('Documentation', 'paid-memberships-pro' );?></a>
157
- <a target="_blank" class="button-primary button-support" href="https://www.paidmembershipspro.com/pricing/?utm_source=plugin&utm_medium=banner&utm_campaign=admin_header"><?php _e('Get Support', 'paid-memberships-pro' );?></a>
158
</div>
159
</div>
160
<div id="pmpro_notifications">
@@ -180,7 +180,8 @@
180
'pmpro-paymentsettings',
181
'pmpro-emailsettings',
182
'pmpro-advancedsettings',
183
- 'pmpro-addons'
184
);
185
if( in_array( $view, $settings_tabs ) ) { ?>
186
<nav class="nav-tab-wrapper">
@@ -207,6 +208,10 @@
207
<?php if(current_user_can('pmpro_addons')) { ?>
208
<a href="<?php echo admin_url('admin.php?page=pmpro-addons');?>" class="nav-tab<?php if($view == 'pmpro-addons') { ?> nav-tab-active<?php } ?>"><?php _e('Add Ons', 'paid-memberships-pro' );?></a>
209
<?php } ?>
210
</nav>
211
212
<?php if( $view == 'pmpro-membershiplevels' || $view == 'pmpro-discountcodes' || $view == 'pmpro-pagesettings' || $view == 'pmpro-paymentsettings' || $view == 'pmpro-emailsettings' || $view == 'pmpro-advancedsettings' ) { ?>
150
151
<div class="wrap pmpro_admin">
152
<div class="pmpro_banner">
153
+ <a class="pmpro_logo" title="Paid Memberships Pro - Membership Plugin for WordPress" target="_blank" href="<?php echo pmpro_https_filter("https://www.paidmembershipspro.com/?utm_source=plugin&utm_medium=pmpro-admin-header&utm_campaign=homepage")?>"><img src="<?php echo PMPRO_URL?>/images/Paid-Memberships-Pro.png" width="350" height="75" border="0" alt="Paid Memberships Pro(c) - All Rights Reserved" /></a>
154
<div class="pmpro_meta">
155
<span class="pmpro_version">v<?php echo PMPRO_VERSION?></span>
156
+ <a target="_blank" class="button button-documentation" href="<?php echo pmpro_https_filter("https://www.paidmembershipspro.com/documentation/?utm_source=plugin&utm_medium=pmpro-admin-header&utm_campaign=documentation")?>"><?php _e('Documentation', 'paid-memberships-pro' );?></a>
157
+ <a target="_blank" class="button-primary button-support" href="https://www.paidmembershipspro.com/pricing/?utm_source=plugin&utm_medium=pmpro-admin-header&utm_campaign=pricing&utm_content=get-support"><?php _e('Get Support', 'paid-memberships-pro' );?></a>
158
</div>
159
</div>
160
<div id="pmpro_notifications">
180
'pmpro-paymentsettings',
181
'pmpro-emailsettings',
182
'pmpro-advancedsettings',
183
+ 'pmpro-addons',
184
+ 'pmpro-license'
185
);
186
if( in_array( $view, $settings_tabs ) ) { ?>
187
<nav class="nav-tab-wrapper">
208
<?php if(current_user_can('pmpro_addons')) { ?>
209
<a href="<?php echo admin_url('admin.php?page=pmpro-addons');?>" class="nav-tab<?php if($view == 'pmpro-addons') { ?> nav-tab-active<?php } ?>"><?php _e('Add Ons', 'paid-memberships-pro' );?></a>
210
<?php } ?>
211
+
212
+ <?php if(current_user_can('manage_options')) { ?>
213
+ <a href="<?php echo admin_url('admin.php?page=pmpro-license');?>" class="nav-tab<?php if($view == 'pmpro-license') { ?> nav-tab-active<?php } ?>"><?php _e('License', 'paid-memberships-pro' );?></a>
214
+ <?php } ?>
215
</nav>
216
217
<?php if( $view == 'pmpro-membershiplevels' || $view == 'pmpro-discountcodes' || $view == 'pmpro-pagesettings' || $view == 'pmpro-paymentsettings' || $view == 'pmpro-emailsettings' || $view == 'pmpro-advancedsettings' ) { ?>
adminpages/dashboard.php CHANGED
@@ -154,7 +154,7 @@ function pmpro_dashboard_welcome_callback() { ?>
154
<hr />
155
<p class="text-center">
156
<?php echo esc_html( __( 'For guidance as your begin these steps,', 'paid-memberships-pro' ) ); ?>
157
- <a href="https://www.paidmembershipspro.com/documentation/initial-plugin-setup/?utm_source=plugin&utm_medium=banner&utm_campaign=welcome" target="_blank"><?php echo esc_attr_e( 'view the Initial Setup Video and Docs.', 'paid-memberships-pro' ); ?></a>
158
</p>
159
</div> <!-- end pmpro-dashboard-welcome-column -->
160
<div class="pmpro-dashboard-welcome-column">
@@ -167,19 +167,19 @@ function pmpro_dashboard_welcome_callback() { ?>
167
<?php if ( ! pmpro_license_isValid() && empty( $key ) ) { ?>
168
<p class="pmpro_message pmpro_error">
169
<strong><?php echo esc_html_e( 'No support license key found.', 'paid-memberships-pro' ); ?></strong><br />
170
- <?php printf(__( '<a href="%s">Enter your key here &raquo;</a>', 'paid-memberships-pro' ), admin_url( 'options-general.php?page=pmpro_license_settings' ) );?>
171
</p>
172
<?php } elseif ( ! pmpro_license_isValid() ) { ?>
173
<p class="pmpro_message pmpro_alert">
174
<strong><?php echo esc_html_e( 'Your license is invalid or expired.', 'paid-memberships-pro' ); ?></strong><br />
175
- <?php printf(__( '<a href="%s">View your membership account</a> to verify your license key.', 'paid-memberships-pro' ), 'https://www.paidmembershipspro.com/login/?redirect_to=/membership-account/?utm_source=plugin&utm_medium=banner&utm_campaign=welcome' );?>
176
<?php } else { ?>
177
<p class="pmpro_message pmpro_success"><?php printf(__( '<strong>Thank you!</strong> A valid <strong>%s</strong> license key has been used to activate your support license on this site.', 'paid-memberships-pro' ), ucwords($pmpro_license_check['license']));?></p>
178
<?php } ?>
179
180
<?php if ( ! pmpro_license_isValid() ) { ?>
181
- <p><?php esc_html_e( 'An annual support license is recommended for websites running Paid Memberships Pro.', 'paid-memberships-pro' ); ?><br /><a href="http://www.paidmembershipspro.com/pricing/?utm_source=plugin&utm_medium=banner&utm_campaign=welcome" target="_blank"><?php esc_html_e( 'View Pricing &raquo;' , 'paid-memberships-pro' ); ?></a></p>
182
- <p><a href="https://www.paidmembershipspro.com/membership-checkout/?level=20&utm_source=plugin&utm_medium=banner&utm_campaign=welcome" target="_blank" class="button button-action button-hero"><?php esc_attr_e( 'Upgrade', 'paid-memberships-pro' ); ?></a>
183
<?php } ?>
184
<hr />
185
<p><?php echo wp_kses_post( sprintf( __( 'Paid Memberships Pro and our add ons are distributed under the <a target="_blank" href="%s">GPLv2 license</a>. This means, among other things, that you may use the software on this site or any other site free of charge.', 'paid-memberships-pro' ), 'http://www.gnu.org/licenses/gpl-2.0.html' ) ); ?></p>
@@ -383,7 +383,7 @@ function pmpro_dashboard_news_updates_callback() {
383
<?php endforeach; ?>
384
<?php endif; ?>
385
</ul>
386
- <p class="text-center"><a class="button button-primary" href="<?php echo esc_url( 'https://www.paidmembershipspro.com/blog/' ); ?>"><?php esc_attr_e( 'View More', 'paid-memberships-pro' ); ?></a></p>
387
<?php
388
}
389
154
<hr />
155
<p class="text-center">
156
<?php echo esc_html( __( 'For guidance as your begin these steps,', 'paid-memberships-pro' ) ); ?>
157
+ <a href="https://www.paidmembershipspro.com/documentation/initial-plugin-setup/?utm_source=plugin&utm_medium=pmpro-dashboard&utm_campaign=documentation&utm_content=initial-plugin-setup" target="_blank"><?php echo esc_attr_e( 'view the Initial Setup Video and Docs.', 'paid-memberships-pro' ); ?></a>
158
</p>
159
</div> <!-- end pmpro-dashboard-welcome-column -->
160
<div class="pmpro-dashboard-welcome-column">
167
<?php if ( ! pmpro_license_isValid() && empty( $key ) ) { ?>
168
<p class="pmpro_message pmpro_error">
169
<strong><?php echo esc_html_e( 'No support license key found.', 'paid-memberships-pro' ); ?></strong><br />
170
+ <?php printf(__( '<a href="%s">Enter your key here &raquo;</a>', 'paid-memberships-pro' ), admin_url( 'admin.php?page=pmpro-license' ) );?>
171
</p>
172
<?php } elseif ( ! pmpro_license_isValid() ) { ?>
173
<p class="pmpro_message pmpro_alert">
174
<strong><?php echo esc_html_e( 'Your license is invalid or expired.', 'paid-memberships-pro' ); ?></strong><br />
175
+ <?php printf(__( '<a href="%s">View your membership account</a> to verify your license key.', 'paid-memberships-pro' ), 'https://www.paidmembershipspro.com/login/?redirect_to=%2Fmembership-account%2F%3Futm_source%3Dplugin%26utm_medium%3Dpmpro-dashboard%26utm_campaign%3Dmembership-account%26utm_content%3Dverify-license-key' );?>
176
<?php } else { ?>
177
<p class="pmpro_message pmpro_success"><?php printf(__( '<strong>Thank you!</strong> A valid <strong>%s</strong> license key has been used to activate your support license on this site.', 'paid-memberships-pro' ), ucwords($pmpro_license_check['license']));?></p>
178
<?php } ?>
179
180
<?php if ( ! pmpro_license_isValid() ) { ?>
181
+ <p><?php esc_html_e( 'An annual support license is recommended for websites running Paid Memberships Pro.', 'paid-memberships-pro' ); ?><br /><a href="https://www.paidmembershipspro.com/pricing/?utm_source=plugin&utm_medium=pmpro-dashboard&utm_campaign=pricing&utm_content=upgrade" target="_blank"><?php esc_html_e( 'View Pricing &raquo;' , 'paid-memberships-pro' ); ?></a></p>
182
+ <p><a href="https://www.paidmembershipspro.com/membership-checkout/?level=20&utm_source=plugin&utm_medium=pmpro-dashboard&utm_campaign=plus-checkout&utm_content=upgrade" target="_blank" class="button button-action button-hero"><?php esc_attr_e( 'Upgrade', 'paid-memberships-pro' ); ?></a>
183
<?php } ?>
184
<hr />
185
<p><?php echo wp_kses_post( sprintf( __( 'Paid Memberships Pro and our add ons are distributed under the <a target="_blank" href="%s">GPLv2 license</a>. This means, among other things, that you may use the software on this site or any other site free of charge.', 'paid-memberships-pro' ), 'http://www.gnu.org/licenses/gpl-2.0.html' ) ); ?></p>
383
<?php endforeach; ?>
384
<?php endif; ?>
385
</ul>
386
+ <p class="text-center"><a class="button button-primary" href="<?php echo esc_url( 'https://www.paidmembershipspro.com/blog/?utm_source=plugin&utm_medium=pmpro-dashboard&utm_campaign=blog&utm_content=news-updates-metabox' ); ?>"><?php esc_attr_e( 'View More', 'paid-memberships-pro' ); ?></a></p>
387
<?php
388
}
389
adminpages/discountcodes.php CHANGED
@@ -353,7 +353,7 @@
353
}
354
355
if( ! empty( $pmpro_msg ) && ! empty( $expiration_warning_flag ) ) {
356
- $pmpro_msg .= ' <strong>' . sprintf( __( 'WARNING: A level was set with both a recurring billing amount and an expiration date. You only need to set one of these unless you really want this membership to expire after a specific time period. For more information, <a target="_blank" href="%s">see our post here</a>.', 'paid-memberships-pro' ), 'https://www.paidmembershipspro.com/important-notes-on-recurring-billing-and-expiration-dates-for-membership-levels/' ) . '</strong>';
357
358
if( $pmpro_msgt == 'success' ) {
359
$pmpro_msgt = 'warning';
@@ -717,7 +717,7 @@
717
<h2><?php echo esc_attr_e( 'No Discount Codes Found', 'paid-memberships-pro' ); ?></h2>
718
<h4><?php _e( 'Discount codes allow you to override your membership level\'s default pricing.', 'paid-memberships-pro' ); ?></h4>
719
<a href="<?php echo esc_url( admin_url( 'admin.php?page=pmpro-discountcodes&edit=-1' ) ) ; ?>" class="button-primary"><?php esc_attr_e( 'Create a Discount Code', 'paid-memberships-pro' );?></a>
720
- <a href="<?php echo esc_url( 'https://www.paidmembershipspro.com/documentation/discount-codes/' ); ?>" target="_blank" class="button"><?php echo esc_attr_e( 'Documentation: Discount Codes', 'paid-memberships-pro' ); ?></a>
721
</div> <!-- end pmpro-new-install -->
722
<?php } else { ?>
723
@@ -755,7 +755,9 @@
755
<tbody>
756
<?php
757
$count = 0;
758
- foreach($codes as $code) { ?>
759
<tr<?php if($count++ % 2 == 1) { ?> class="alternate"<?php } ?>>
760
<td><?php echo $code->id?></td>
761
<td class="has-row-actions">
@@ -785,7 +787,6 @@
785
</td>
786
<td>
787
<?php
788
- $uses = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->pmpro_discount_codes_uses WHERE code_id = %d", $code->id ) );
789
if($code->uses > 0)
790
echo "<strong>" . (int)$uses . "</strong>/" . $code->uses;
791
else
353
}
354
355
if( ! empty( $pmpro_msg ) && ! empty( $expiration_warning_flag ) ) {
356
+ $pmpro_msg .= ' <strong>' . sprintf( __( 'WARNING: A level was set with both a recurring billing amount and an expiration date. You only need to set one of these unless you really want this membership to expire after a specific time period. For more information, <a target="_blank" href="%s">see our post here</a>.', 'paid-memberships-pro' ), 'https://www.paidmembershipspro.com/important-notes-on-recurring-billing-and-expiration-dates-for-membership-levels/?utm_source=plugin&utm_medium=pmpro-discountcodes&utm_campaign=blog&utm_content=important-notes-on-recurring-billing-and-expiration-dates-for-membership-levels' ) . '</strong>';
357
358
if( $pmpro_msgt == 'success' ) {
359
$pmpro_msgt = 'warning';
717
<h2><?php echo esc_attr_e( 'No Discount Codes Found', 'paid-memberships-pro' ); ?></h2>
718
<h4><?php _e( 'Discount codes allow you to override your membership level\'s default pricing.', 'paid-memberships-pro' ); ?></h4>
719
<a href="<?php echo esc_url( admin_url( 'admin.php?page=pmpro-discountcodes&edit=-1' ) ) ; ?>" class="button-primary"><?php esc_attr_e( 'Create a Discount Code', 'paid-memberships-pro' );?></a>
720
+ <a href="<?php echo esc_url( 'https://www.paidmembershipspro.com/documentation/discount-codes/?utm_source=plugin&utm_medium=pmpro-discountcodes&utm_campaign=documentation&utm_content=discount-codes' ); ?>" target="_blank" class="button"><?php echo esc_attr_e( 'Documentation: Discount Codes', 'paid-memberships-pro' ); ?></a>
721
</div> <!-- end pmpro-new-install -->
722
<?php } else { ?>
723
755
<tbody>
756
<?php
757
$count = 0;
758
+ foreach($codes as $code) {
759
+ $uses = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->pmpro_discount_codes_uses WHERE code_id = %d", $code->id ) );
760
+ ?>
761
<tr<?php if($count++ % 2 == 1) { ?> class="alternate"<?php } ?>>
762
<td><?php echo $code->id?></td>
763
<td class="has-row-actions">
787
</td>
788
<td>
789
<?php
790
if($code->uses > 0)
791
echo "<strong>" . (int)$uses . "</strong>/" . $code->uses;
792
else
adminpages/emailsettings.php CHANGED
@@ -83,7 +83,7 @@
83
<h2><?php _e('Email Settings', 'paid-memberships-pro' );?></h2>
84
<p><?php _e('By default, system generated emails are sent from <em><strong>wordpress@yourdomain.com</strong></em>. You can update this from address using the fields below.', 'paid-memberships-pro' );?></p>
85
86
- <p><?php _e('To modify the appearance of system generated emails, add the files <em>email_header.html</em> and <em>email_footer.html</em> to your theme\'s directory. This will modify both the WordPress default messages as well as messages generated by Paid Memberships Pro. <a title="Paid Memberships Pro - Member Communications" target="_blank" href="http://www.paidmembershipspro.com/documentation/member-communications/?utm_source=plugin&utm_medium=banner&utm_campaign=admin_email_settings">Click here to learn more about Paid Memberships Pro emails</a>.', 'paid-memberships-pro' );?></p>
87
88
<table class="form-table">
89
<tbody>
83
<h2><?php _e('Email Settings', 'paid-memberships-pro' );?></h2>
84
<p><?php _e('By default, system generated emails are sent from <em><strong>wordpress@yourdomain.com</strong></em>. You can update this from address using the fields below.', 'paid-memberships-pro' );?></p>
85
86
+ <p><?php _e('To modify the appearance of system generated emails, add the files <em>email_header.html</em> and <em>email_footer.html</em> to your theme\'s directory. This will modify both the WordPress default messages as well as messages generated by Paid Memberships Pro. <a title="Paid Memberships Pro - Member Communications" target="_blank" href="http://www.paidmembershipspro.com/documentation/member-communications/?utm_source=plugin&utm_medium=pmpro-emailsettings&utm_campaign=documentation&utm_content=member-communications">Click here to learn more about Paid Memberships Pro emails</a>.', 'paid-memberships-pro' );?></p>
87
88
<table class="form-table">
89
<tbody>
adminpages/membershiplevels.php CHANGED
@@ -166,7 +166,7 @@
166
}
167
168
if( ! empty( $msgt ) && $ml_recurring && $ml_expiration ) {
169
- $msgt .= ' <strong class="red">' . sprintf( __( 'WARNING: A level was set with both a recurring billing amount and an expiration date. You only need to set one of these unless you really want this membership to expire after a specific time period. For more information, <a target="_blank" href="%s">see our post here</a>.', 'paid-memberships-pro' ), 'https://www.paidmembershipspro.com/important-notes-on-recurring-billing-and-expiration-dates-for-membership-levels/' ) . '</strong>';
170
171
// turn success to errors
172
if( $msg > 0 ) {
@@ -481,6 +481,17 @@
481
</td>
482
</tr>
483
484
<tr class="trial_info recurring_info" <?php if (!pmpro_isLevelTrial($level)) echo "style='display:none;'";?>>
485
<th scope="row" valign="top"><label for="trial_amount"><?php _e('Trial Billing Amount', 'paid-memberships-pro' );?>:</label></th>
486
<td>
@@ -528,6 +539,17 @@
528
<td><input id="expiration" name="expiration" type="checkbox" value="yes" <?php if(pmpro_isLevelExpiring($level)) { echo "checked='checked'"; } ?> onclick="if(jQuery('#expiration').is(':checked')) { jQuery('.expiration_info').show(); } else { jQuery('.expiration_info').hide();}" /> <label for="expiration"><?php _e('Check this to set when membership access expires.', 'paid-memberships-pro' );?></label></a></td>
529
</tr>
530
531
<tr class="expiration_info" <?php if(!pmpro_isLevelExpiring($level)) {?>style="display: none;"<?php } ?>>
532
<th scope="row" valign="top"><label for="billing_amount"><?php _e('Expires In', 'paid-memberships-pro' );?>:</label></th>
533
<td>
@@ -545,7 +567,7 @@
545
<br /><small><?php _e('Set the duration of membership access. Note that the any future payments (recurring subscription, if any) will be cancelled when the membership expires.', 'paid-memberships-pro' );?></small>
546
547
<div id="pmpro_expiration_warning" style="display: none;" class="notice error inline">
548
- <p><?php printf( __( 'WARNING: This level is set with both a recurring billing amount and an expiration date. You only need to set one of these unless you really want this membership to expire after a certain number of payments. For more information, <a target="_blank" href="%s">see our post here</a>.', 'paid-memberships-pro' ), 'https://www.paidmembershipspro.com/important-notes-on-recurring-billing-and-expiration-dates-for-membership-levels/' ); ?></p>
549
</div>
550
<script>
551
jQuery(document).ready(function() {
@@ -713,7 +735,7 @@
713
<div class="pmpro-new-install">
714
<h2><?php echo esc_attr_e( 'No Membership Levels Found', 'paid-memberships-pro' ); ?></h2>
715
<a href="<?php echo esc_url( admin_url( 'admin.php?page=pmpro-membershiplevels&edit=-1' ) ); ?>" class="button-primary"><?php echo esc_attr_e( 'Create a Membership Level', 'paid-memberships-pro' ); ?></a>
716
- <a href="<?php echo esc_url( 'https://www.paidmembershipspro.com/documentation/initial-plugin-setup/step-1-add-new-membership-level/' ); ?>" target="_blank" class="button"><?php echo esc_attr_e( 'Video: Membership Levels', 'paid-memberships-pro' ); ?></a>
717
</div> <!-- end pmpro-new-install -->
718
<?php } else { ?>
719
166
}
167
168
if( ! empty( $msgt ) && $ml_recurring && $ml_expiration ) {
169
+ $msgt .= ' <strong class="red">' . sprintf( __( 'WARNING: A level was set with both a recurring billing amount and an expiration date. You only need to set one of these unless you really want this membership to expire after a specific time period. For more information, <a target="_blank" href="%s">see our post here</a>.', 'paid-memberships-pro' ), 'https://www.paidmembershipspro.com/important-notes-on-recurring-billing-and-expiration-dates-for-membership-levels/?utm_source=plugin&utm_medium=pmpro-membershiplevels&utm_campaign=blog&utm_content=important-notes-on-recurring-billing-and-expiration-dates-for-membership-levels' ) . '</strong>';
170
171
// turn success to errors
172
if( $msg > 0 ) {
481
</td>
482
</tr>
483
484
+ <?php if ( ! function_exists( 'pmprosd_pmpro_membership_level_after_other_settings' ) ) {
485
+ $allowed_sd_html = array (
486
+ 'a' => array (
487
+ 'href' => array(),
488
+ 'target' => array(),
489
+ 'title' => array(),
490
+ ),
491
+ );
492
+ echo '<tr><th>&nbsp;</th><td><em class="pmpro_lite">' . sprintf( wp_kses( __( 'Optional: Allow more customizable trial periods and renewal dates using the <a href="%s" title="Paid Memberships Pro - Subscription Delays Add On" target="_blank">Subscription Delays Add On</a>.', 'paid-memberships-pro' ), $allowed_sd_html ), 'https://www.paidmembershipspro.com/add-ons/subscription-delays/?utm_source=plugin&utm_medium=pmpro-membershiplevels&utm_campaign=add-ons&utm_content=subscription-delays' ) . '</em></td></tr>';
493
+ } ?>
494
+
495
<tr class="trial_info recurring_info" <?php if (!pmpro_isLevelTrial($level)) echo "style='display:none;'";?>>
496
<th scope="row" valign="top"><label for="trial_amount"><?php _e('Trial Billing Amount', 'paid-memberships-pro' );?>:</label></th>
497
<td>
539
<td><input id="expiration" name="expiration" type="checkbox" value="yes" <?php if(pmpro_isLevelExpiring($level)) { echo "checked='checked'"; } ?> onclick="if(jQuery('#expiration').is(':checked')) { jQuery('.expiration_info').show(); } else { jQuery('.expiration_info').hide();}" /> <label for="expiration"><?php _e('Check this to set when membership access expires.', 'paid-memberships-pro' );?></label></a></td>
540
</tr>
541
542
+ <?php if ( ! function_exists( 'pmprosed_pmpro_membership_level_after_other_settings' ) ) {
543
+ $allowed_sed_html = array (
544
+ 'a' => array (
545
+ 'href' => array(),
546
+ 'target' => array(),
547
+ 'title' => array(),
548
+ ),
549
+ );
550
+ echo '<tr><th>&nbsp;</th><td><em class="pmpro_lite">' . sprintf( wp_kses( __( 'Optional: Allow more customizable expiration dates using the <a href="%s" title="Paid Memberships Pro - Set Expiration Date Add On" target="_blank">Set Expiration Date Add On</a>.', 'paid-memberships-pro' ), $allowed_sed_html ), 'https://www.paidmembershipspro.com/add-ons/pmpro-expiration-date/?utm_source=plugin&utm_medium=pmpro-membershiplevels&utm_campaign=add-ons&utm_content=pmpro-expiration-date' ) . '</em></td></tr>';
551
+ } ?>
552
+
553
<tr class="expiration_info" <?php if(!pmpro_isLevelExpiring($level)) {?>style="display: none;"<?php } ?>>
554
<th scope="row" valign="top"><label for="billing_amount"><?php _e('Expires In', 'paid-memberships-pro' );?>:</label></th>
555
<td>
567
<br /><small><?php _e('Set the duration of membership access. Note that the any future payments (recurring subscription, if any) will be cancelled when the membership expires.', 'paid-memberships-pro' );?></small>
568
569
<div id="pmpro_expiration_warning" style="display: none;" class="notice error inline">
570
+ <p><?php printf( __( 'WARNING: This level is set with both a recurring billing amount and an expiration date. You only need to set one of these unless you really want this membership to expire after a certain number of payments. For more information, <a target="_blank" href="%s">see our post here</a>.', 'paid-memberships-pro' ), 'https://www.paidmembershipspro.com/important-notes-on-recurring-billing-and-expiration-dates-for-membership-levels/?utm_source=plugin&utm_medium=pmpro-membershiplevels&utm_campaign=blog&utm_content=important-notes-on-recurring-billing-and-expiration-dates-for-membership-levels' ); ?></p>
571
</div>
572
<script>
573
jQuery(document).ready(function() {
735
<div class="pmpro-new-install">
736
<h2><?php echo esc_attr_e( 'No Membership Levels Found', 'paid-memberships-pro' ); ?></h2>
737
<a href="<?php echo esc_url( admin_url( 'admin.php?page=pmpro-membershiplevels&edit=-1' ) ); ?>" class="button-primary"><?php echo esc_attr_e( 'Create a Membership Level', 'paid-memberships-pro' ); ?></a>
738
+ <a href="<?php echo esc_url( 'https://www.paidmembershipspro.com/documentation/initial-plugin-setup/step-1-add-new-membership-level/?utm_source=plugin&utm_medium=pmpro-membershiplevels&utm_campaign=documentation&utm_content=step-1-add-new-membership-level' ); ?>" target="_blank" class="button"><?php echo esc_attr_e( 'Video: Membership Levels', 'paid-memberships-pro' ); ?></a>
739
</div> <!-- end pmpro-new-install -->
740
<?php } else { ?>
741
adminpages/memberslist.php CHANGED
@@ -291,6 +291,17 @@
291
echo pmpro_getPaginationString($pn, $totalrows, $limit, 1, add_query_arg(array("s" => urlencode($s), "l" => $l, "limit" => $limit)));
292
?>
293
294
<?php
295
require_once(dirname(__FILE__) . "/admin_footer.php");
296
?>
291
echo pmpro_getPaginationString($pn, $totalrows, $limit, 1, add_query_arg(array("s" => urlencode($s), "l" => $l, "limit" => $limit)));
292
?>
293
294
+ <?php if ( ! function_exists( 'pmprorh_add_registration_field' ) ) {
295
+ $allowed_pmprorh_html = array (
296
+ 'a' => array (
297
+ 'href' => array(),
298
+ 'target' => array(),
299
+ 'title' => array(),
300
+ ),
301
+ );
302
+ echo '<p><em class="pmpro_lite">' . sprintf( wp_kses( __( 'Optional: Capture additional member profile fields using the <a href="%s" title="Paid Memberships Pro - Register Helper Add On" target="_blank">Register Helper Add On</a>.', 'paid-memberships-pro' ), $allowed_pmprorh_html ), 'https://www.paidmembershipspro.com/add-ons/pmpro-register-helper-add-checkout-and-profile-fields/?utm_source=plugin&utm_medium=pmpro-memberslist&utm_campaign=add-ons&utm_content=pmpro-register-helper-add-checkout-and-profile-fields' ) . '</em></p>';
303
+ } ?>
304
+
305
<?php
306
require_once(dirname(__FILE__) . "/admin_footer.php");
307
?>
adminpages/orders-csv.php CHANGED
@@ -564,7 +564,7 @@ function pmpro_transmit_order_content( $csv_fh, $filename, $headers = array() )
564
if ( headers_sent() ) {
565
echo str_repeat( '-', 75 ) . "<br/>\n";
566
echo 'Please open a support case and paste in the warnings/errors you see above this text to\n ';
567
- echo 'the <a href="http://paidmembershipspro.com/support/?utm_source=plugin&utm_medium=banner&utm_campaign=orders_csv" target="_blank">Paid Memberships Pro support forum</a><br/>\n';
568
echo str_repeat( "=", 75 ) . "<br/>\n";
569
echo file_get_contents( $filename );
570
echo str_repeat( "=", 75 ) . "<br/>\n";
564
if ( headers_sent() ) {
565
echo str_repeat( '-', 75 ) . "<br/>\n";
566
echo 'Please open a support case and paste in the warnings/errors you see above this text to\n ';
567
+ echo 'the <a href="http://paidmembershipspro.com/support/?utm_source=plugin&utm_medium=pmpro-orders-csv&utm_campaign=support" target="_blank">Paid Memberships Pro support forum</a><br/>\n';
568
echo str_repeat( "=", 75 ) . "<br/>\n";
569
echo file_get_contents( $filename );
570
echo str_repeat( "=", 75 ) . "<br/>\n";
adminpages/pagesettings.php CHANGED
@@ -107,8 +107,20 @@ require_once(dirname(__FILE__) . "/admin_header.php");
107
<?php wp_nonce_field('savesettings', 'pmpro_pagesettings_nonce');?>
108
<h2><?php _e( 'Page Settings', 'paid-memberships-pro' ); ?></h2>
109
<?php
110
- global $pmpro_pages_ready;
111
- if ( $pmpro_pages_ready ) { ?>
112
<p><?php _e('Manage the WordPress pages assigned to each required Paid Memberships Pro page.', 'paid-memberships-pro' ); ?></p>
113
<?php } elseif( ! empty( $_REQUEST['manualpages'] ) ) { ?>
114
<p><?php _e('Assign the WordPress pages for each required Paid Memberships Pro page or', 'paid-memberships-pro' ); ?> <a
@@ -123,7 +135,7 @@ require_once(dirname(__FILE__) . "/admin_header.php");
123
</div> <!-- end pmpro-new-install -->
124
<?php } ?>
125
126
- <?php if ( ! empty( $pmpro_pages_ready ) || ! empty( $_REQUEST['manualpages'] ) ) { ?>
127
<table class="form-table">
128
<tbody>
129
<tr>
@@ -256,6 +268,17 @@ require_once(dirname(__FILE__) . "/admin_header.php");
256
<?php } ?>
257
<br/>
258
<small class="pmpro_lite"><?php _e('Include the shortcode', 'paid-memberships-pro' ); ?> [pmpro_levels].</small>
259
</td>
260
</tr>
261
</tbody>
107
<?php wp_nonce_field('savesettings', 'pmpro_pagesettings_nonce');?>
108
<h2><?php _e( 'Page Settings', 'paid-memberships-pro' ); ?></h2>
109
<?php
110
+ // check if we have all pages
111
+ if ( $pmpro_pages['account'] ||
112
+ $pmpro_pages['billing'] ||
113
+ $pmpro_pages['cancel'] ||
114
+ $pmpro_pages['checkout'] ||
115
+ $pmpro_pages['confirmation'] ||
116
+ $pmpro_pages['invoice'] ||
117
+ $pmpro_pages['levels'] ) {
118
+ $pmpro_some_pages_ready = true;
119
+ } else {
120
+ $pmpro_some_pages_ready = false;
121
+ }
122
+
123
+ if ( $pmpro_some_pages_ready ) { ?>
124
<p><?php _e('Manage the WordPress pages assigned to each required Paid Memberships Pro page.', 'paid-memberships-pro' ); ?></p>
125
<?php } elseif( ! empty( $_REQUEST['manualpages'] ) ) { ?>
126
<p><?php _e('Assign the WordPress pages for each required Paid Memberships Pro page or', 'paid-memberships-pro' ); ?> <a
135
</div> <!-- end pmpro-new-install -->
136
<?php } ?>
137
138
+ <?php if ( ! empty( $pmpro_some_pages_ready ) || ! empty( $_REQUEST['manualpages'] ) ) { ?>
139
<table class="form-table">
140
<tbody>
141
<tr>
268
<?php } ?>
269
<br/>
270
<small class="pmpro_lite"><?php _e('Include the shortcode', 'paid-memberships-pro' ); ?> [pmpro_levels].</small>
271
+
272
+ <?php if ( ! function_exists( 'pmpro_advanced_levels_shortcode' ) ) {
273
+ $allowed_advanced_levels_html = array (
274
+ 'a' => array (
275
+ 'href' => array(),
276
+ 'target' => array(),
277
+ 'title' => array(),
278
+ ),
279
+ );
280
+ echo '<p><em class="pmpro_lite">' . sprintf( wp_kses( __( 'Optional: Customize your Membership Levels page using the <a href="%s" title="Paid Memberships Pro - Advanced Levels Page Add On" target="_blank">Advanced Levels Page Add On</a>.', 'paid-memberships-pro' ), $allowed_advanced_levels_html ), 'https://www.paidmembershipspro.com/add-ons/pmpro-advanced-levels-shortcode/?utm_source=plugin&utm_medium=pmpro-pagesettings&utm_campaign=add-ons&utm_content=pmpro-advanced-levels-shortcode' ) . '</em></p>';
281
+ } ?>
282
</td>
283
</tr>
284
</tbody>
adminpages/paymentsettings.php CHANGED
@@ -109,7 +109,7 @@
109
110
<h2><?php _e('Payment Gateway', 'paid-memberships-pro' );?> &amp; <?php _e('SSL Settings', 'paid-memberships-pro' );?></h2>
111
112
- <p><?php _e('Learn more about <a title="Paid Memberships Pro - SSL Settings" target="_blank" href="https://www.paidmembershipspro.com/documentation/initial-plugin-setup/ssl/">SSL</a> or <a title="Paid Memberships Pro - Payment Gateway Settings" target="_blank" href="https://www.paidmembershipspro.com/documentation/initial-plugin-setup/step-3-payment-gateway-security/">Payment Gateway Settings</a>.', 'paid-memberships-pro' ); ?></p>
113
114
<table class="form-table">
115
<tbody>
@@ -226,7 +226,7 @@
226
<input type="text" id="tax_state" name="tax_state" size="4" value="<?php echo esc_attr($tax_state)?>" /> <small>(<?php _e('abbreviation, e.g. "PA"', 'paid-memberships-pro' );?>)</small>
227
&nbsp; <?php _e('Tax Rate', 'paid-memberships-pro' ); ?>:
228
<input type="text" id="tax_rate" name="tax_rate" size="10" value="<?php echo esc_attr($tax_rate)?>" /> <small>(<?php _e('decimal, e.g. "0.06"', 'paid-memberships-pro' );?>)</small>
229
- <p><small><?php _e('US only. If values are given, tax will be applied for any members ordering from the selected state.<br />For non-US or more complex tax rules, use the <a target="_blank" href="https://www.paidmembershipspro.com/non-us-taxes-paid-memberships-pro/?utm_source=plugin&utm_medium=banner&utm_campaign=payment_settings">pmpro_tax filter</a>.', 'paid-memberships-pro' );?></small></p>
230
</td>
231
</tr>
232
@@ -266,7 +266,7 @@
266
</th>
267
<td>
268
<textarea id="sslseal" name="sslseal" rows="3" cols="80"><?php echo stripslashes(esc_textarea($sslseal))?></textarea>
269
- <br /><small><?php _e('Your <strong><a target="_blank" href="http://www.paidmembershipspro.com/documentation/initial-plugin-setup/ssl/?utm_source=plugin&utm_medium=banner&utm_campaign=payment_settings">SSL Certificate</a></strong> must be installed by your web host. Your <strong>SSL Seal</strong> will be a short HTML or JavaScript snippet that can be pasted here.', 'paid-memberships-pro' ); ?></small>
270
</td>
271
</tr>
272
<tr>
109
110
<h2><?php _e('Payment Gateway', 'paid-memberships-pro' );?> &amp; <?php _e('SSL Settings', 'paid-memberships-pro' );?></h2>
111
112
+ <p><?php _e('Learn more about <a title="Paid Memberships Pro - SSL Settings" target="_blank" href="https://www.paidmembershipspro.com/documentation/initial-plugin-setup/ssl/?utm_source=plugin&utm_medium=pmpro-paymentsettings&utm_campaign=documentation&utm_content=ssl&utm_term=link1">SSL</a> or <a title="Paid Memberships Pro - Payment Gateway Settings" target="_blank" href="https://www.paidmembershipspro.com/documentation/initial-plugin-setup/step-3-payment-gateway-security/?utm_source=plugin&utm_medium=pmpro-paymentsettings&utm_campaign=documentation&utm_content=step-3-payment-gateway-security">Payment Gateway Settings</a>.', 'paid-memberships-pro' ); ?></p>
113
114
<table class="form-table">
115
<tbody>
226
<input type="text" id="tax_state" name="tax_state" size="4" value="<?php echo esc_attr($tax_state)?>" /> <small>(<?php _e('abbreviation, e.g. "PA"', 'paid-memberships-pro' );?>)</small>
227
&nbsp; <?php _e('Tax Rate', 'paid-memberships-pro' ); ?>:
228
<input type="text" id="tax_rate" name="tax_rate" size="10" value="<?php echo esc_attr($tax_rate)?>" /> <small>(<?php _e('decimal, e.g. "0.06"', 'paid-memberships-pro' );?>)</small>
229
+ <p><small><?php _e('US only. If values are given, tax will be applied for any members ordering from the selected state.<br />For non-US or more complex tax rules, use the <a target="_blank" href="https://www.paidmembershipspro.com/non-us-taxes-paid-memberships-pro/?utm_source=plugin&utm_medium=pmpro-paymentsettings&utm_campaign=blog&utm_content=non-us-taxes-paid-memberships-pro">pmpro_tax filter</a>.', 'paid-memberships-pro' );?></small></p>
230
</td>
231
</tr>
232
266
</th>
267
<td>
268
<textarea id="sslseal" name="sslseal" rows="3" cols="80"><?php echo stripslashes(esc_textarea($sslseal))?></textarea>
269
+ <br /><small><?php _e('Your <strong><a target="_blank" href="https://www.paidmembershipspro.com/documentation/initial-plugin-setup/ssl/?utm_source=plugin&utm_medium=pmpro-paymentsettings&utm_campaign=documentation&utm_content=ssl&utm_term=link2">SSL Certificate</a></strong> must be installed by your web host. Your <strong>SSL Seal</strong> will be a short HTML or JavaScript snippet that can be pasted here.', 'paid-memberships-pro' ); ?></small>
270
</td>
271
</tr>
272
<tr>
blocks/blocks.php CHANGED
@@ -47,7 +47,7 @@ function pmpro_block_editor_scripts() {
47
wp_enqueue_script(
48
'pmpro-blocks-editor-js',
49
plugins_url( 'js/editor.blocks.js', PMPRO_BASE_FILE ),
50
- array('wp-i18n', 'wp-element', 'wp-blocks', 'wp-components', 'wp-api', 'wp-editor'),
51
PMPRO_VERSION
52
);
53
@@ -59,4 +59,4 @@ function pmpro_block_editor_scripts() {
59
PMPRO_VERSION
60
);
61
}
62
- add_action( 'enqueue_block_editor_assets', 'pmpro_block_editor_scripts' );
47
wp_enqueue_script(
48
'pmpro-blocks-editor-js',
49
plugins_url( 'js/editor.blocks.js', PMPRO_BASE_FILE ),
50
+ array('wp-i18n', 'wp-element', 'wp-blocks', 'wp-components', 'wp-api', 'wp-editor', 'pmpro_admin'),
51
PMPRO_VERSION
52
);
53
59
PMPRO_VERSION
60
);
61
}
62
+ add_action( 'enqueue_block_editor_assets', 'pmpro_block_editor_scripts' );
classes/gateways/class.pmprogateway_stripe.php CHANGED
@@ -340,6 +340,16 @@ class PMProGateway_stripe extends PMProGateway {
340
<th><?php _e( 'Stripe API Version', 'paid-memberships-pro' ); ?>:</th>
341
<td><?php echo PMPRO_STRIPE_API_VERSION; ?></td>
342
</tr>
343
<?php
344
}
345
@@ -454,11 +464,6 @@ class PMProGateway_stripe extends PMProGateway {
454
$morder->subscription_transaction_id = sanitize_text_field( $_REQUEST['subscription_id'] );
455
}
456
457
- // Add the Source ID to the order.
458
- if ( ! empty ( $_REQUEST['source_id'] ) ) {
459
- $morder->source_id = sanitize_text_field( $_REQUEST['source_id'] );
460
- }
461
-
462
// Add the PaymentMethod ID to the order.
463
if ( ! empty ( $_REQUEST['payment_method_id'] ) ) {
464
$morder->payment_method_id = sanitize_text_field( $_REQUEST['payment_method_id'] );
@@ -1071,8 +1076,8 @@ class PMProGateway_stripe extends PMProGateway {
1071
function process( &$order ) {
1072
$steps = array(
1073
'set_customer',
1074
- 'set_source',
1075
- 'attach_source_to_customer',
1076
'process_charges',
1077
'process_subscriptions',
1078
);
@@ -1308,7 +1313,7 @@ class PMProGateway_stripe extends PMProGateway {
1308
try {
1309
$this->customer = Stripe_Customer::retrieve( $customer_id );
1310
// Update description.
1311
- if ( ! empty( $order->source_id ) ) {
1312
$this->customer->description = $name . " (" . $email . ")";
1313
$this->customer->email = $email;
1314
$this->customer->save();
@@ -1743,8 +1748,9 @@ class PMProGateway_stripe extends PMProGateway {
1743
1744
$steps = array(
1745
'set_customer',
1746
- 'set_source',
1747
- 'attach_source_to_customer',
1748
);
1749
1750
foreach ( $steps as $key => $step ) {
@@ -1759,6 +1765,41 @@ class PMProGateway_stripe extends PMProGateway {
1759
return true;
1760
1761
}
1762
1763
/**
1764
* Cancel a subscription at Stripe
@@ -1991,27 +2032,27 @@ class PMProGateway_stripe extends PMProGateway {
1991
}
1992
}
1993
1994
- function set_source( &$order, $force = false ) {
1995
- if ( ! empty( $this->source ) && ! $force ) {
1996
return true;
1997
}
1998
1999
- $source = $this->get_source( $order );
2000
2001
- if ( empty( $source ) ) {
2002
return false;
2003
}
2004
2005
- $this->source = $source;
2006
2007
return true;
2008
}
2009
2010
- function get_source( &$order ) {
2011
2012
if ( ! empty( $order->payment_method_id ) ) {
2013
try {
2014
- $source = Stripe_PaymentMethod::retrieve( $order->payment_method_id );
2015
} catch ( Stripe\Error\Base $e ) {
2016
$order->error = $e->getMessage();
2017
return false;
@@ -2024,11 +2065,11 @@ class PMProGateway_stripe extends PMProGateway {
2024
}
2025
}
2026
2027
- if ( empty( $source ) ) {
2028
return false;
2029
}
2030
2031
- return $source;
2032
}
2033
2034
function set_customer( &$order, $force = false ) {
@@ -2038,16 +2079,16 @@ class PMProGateway_stripe extends PMProGateway {
2038
$this->getCustomer( $order );
2039
}
2040
2041
- function attach_source_to_customer( &$order ) {
2042
2043
if ( ! empty( $this->customer->invoice_settings->default_payment_method ) &&
2044
- $this->customer->invoice_settings->default_payment_method === $this->source->id ) {
2045
return true;
2046
}
2047
2048
try {
2049
- $this->source->attach( [ 'customer' => $this->customer->id ] );
2050
- $this->customer->invoice_settings->default_payment_method = $this->source->id;
2051
$this->customer->save();
2052
} catch ( Stripe\Error\Base $e ) {
2053
$order->error = $e->getMessage();
@@ -2144,7 +2185,7 @@ class PMProGateway_stripe extends PMProGateway {
2144
2145
$params = array(
2146
'customer' => $this->customer->id,
2147
- 'payment_method' => $this->source->id,
2148
'amount' => $amount * $currency_unit_multiplier,
2149
'currency' => $pmpro_currency,
2150
'confirmation_method' => 'manual',
@@ -2255,16 +2296,16 @@ class PMProGateway_stripe extends PMProGateway {
2255
$trial_period_days = $order->BillingFrequency * 30; //assume monthly
2256
}
2257
2258
- //convert to a profile start date
2259
$order->ProfileStartDate = date_i18n( "Y-m-d", strtotime( "+ " . $trial_period_days . " Day", current_time( "timestamp" ) ) ) . "T0:0:0";
2260
2261
- //filter the start date
2262
$order->ProfileStartDate = apply_filters( "pmpro_profile_start_date", $order->ProfileStartDate, $order );
2263
2264
- //convert back to days
2265
$trial_period_days = ceil( abs( strtotime( date_i18n( "Y-m-d" ), current_time( "timestamp" ) ) - strtotime( $order->ProfileStartDate, current_time( "timestamp" ) ) ) / 86400 );
2266
2267
- //for free trials, just push the start date of the subscription back
2268
if ( ! empty( $order->TrialBillingCycles ) && $order->TrialAmount == 0 ) {
2269
$trialOccurrences = (int) $order->TrialBillingCycles;
2270
if ( $order->BillingPeriod == "Year" ) {
@@ -2280,10 +2321,10 @@ class PMProGateway_stripe extends PMProGateway {
2280
2281
}
2282
2283
- // Save $trial_period_days to order for now too.
2284
$order->TrialPeriodDays = $trial_period_days;
2285
2286
- //create a plan
2287
try {
2288
$plan = array(
2289
"amount" => $amount * $currency_unit_multiplier,
@@ -2310,11 +2351,11 @@ class PMProGateway_stripe extends PMProGateway {
2310
2311
function create_subscription( &$order ) {
2312
2313
- //subscribe to the plan
2314
try {
2315
$params = array(
2316
'customer' => $this->customer->id,
2317
- 'default_payment_method' => $this->source,
2318
'items' => array(
2319
array( 'plan' => $order->code ),
2320
),
340
<th><?php _e( 'Stripe API Version', 'paid-memberships-pro' ); ?>:</th>
341
<td><?php echo PMPRO_STRIPE_API_VERSION; ?></td>
342
</tr>
343
+ <?php if ( ! function_exists( 'pmproappe_pmpro_valid_gateways' ) ) {
344
+ $allowed_appe_html = array (
345
+ 'a' => array (
346
+ 'href' => array(),
347
+ 'target' => array(),
348
+ 'title' => array(),
349
+ ),
350
+ );
351
+ echo '<tr><th>&nbsp;</th><td><em class="pmpro_lite">' . sprintf( wp_kses( __( 'Optional: Offer PayPal Express as an option at checkout using the <a target="_blank" href="%s" title="Paid Memberships Pro - Add PayPal Express Option at Checkout Add On">Add PayPal Express Add On</a>.', 'paid-memberships-pro' ), $allowed_appe_html ), 'https://www.paidmembershipspro.com/add-ons/plus-add-ons/pmpro-add-paypal-express-option-checkout/?utm_source=plugin&utm_medium=pmpro-paymentsettings&utm_campaign=add-ons&utm_content=pmpro-add-paypal-express-option-checkout' ) . '</em></td></tr>';
352
+ } ?>
353
<?php
354
}
355
464
$morder->subscription_transaction_id = sanitize_text_field( $_REQUEST['subscription_id'] );
465
}
466
467
// Add the PaymentMethod ID to the order.
468
if ( ! empty ( $_REQUEST['payment_method_id'] ) ) {
469
$morder->payment_method_id = sanitize_text_field( $_REQUEST['payment_method_id'] );
1076
function process( &$order ) {
1077
$steps = array(
1078
'set_customer',
1079
+ 'set_payment_method',
1080
+ 'attach_payment_method_to_customer',
1081
'process_charges',
1082
'process_subscriptions',
1083
);
1313
try {
1314
$this->customer = Stripe_Customer::retrieve( $customer_id );
1315
// Update description.
1316
+ if ( ! empty( $order->payment_method_id ) ) {
1317
$this->customer->description = $name . " (" . $email . ")";
1318
$this->customer->email = $email;
1319
$this->customer->save();
1748
1749
$steps = array(
1750
'set_customer',
1751
+ 'set_payment_method',
1752
+ 'attach_payment_method_to_customer',
1753
+ 'update_payment_method_for_subscriptions',
1754
);
1755
1756
foreach ( $steps as $key => $step ) {
1765
return true;
1766
1767
}
1768
+
1769
+ /**
1770
+ * Update the payment method for a subscription.
1771
+ */
1772
+ function update_payment_method_for_subscriptions( &$order ) {
1773
+ // get customer
1774
+ $this->getCustomer( $order );
1775
+
1776
+ if ( empty( $this->customer ) ) {
1777
+ return false;
1778
+ }
1779
+
1780
+ // get all subscriptions
1781
+ if ( ! empty( $this->customer->subscriptions ) ) {
1782
+ $subscriptions = $this->customer->subscriptions->all();
1783
+ }
1784
+
1785
+ foreach( $subscriptions as $subscription ) {
1786
+ // check if cancelled or expired
1787
+ if ( in_array( $subscription->status, array( 'canceled', 'incomplete', 'incomplete_expired' ) ) ) {
1788
+ continue;
1789
+ }
1790
+
1791
+ // check if we have a related order for it
1792
+ $one_order = new MemberOrder();
1793
+ $one_order->getLastMemberOrderBySubscriptionTransactionID( $subscription->id );
1794
+ if ( empty( $one_order ) || empty( $one_order->id ) ) {
1795
+ continue;
1796
+ }
1797
+
1798
+ // update the payment method
1799
+ $subscription->default_payment_method = $this->customer->invoice_settings->default_payment_method;
1800
+ $subscription->save();
1801
+ }
1802
+ }
1803
1804
/**
1805
* Cancel a subscription at Stripe
2032
}
2033
}
2034
2035
+ function set_payment_method( &$order, $force = false ) {
2036
+ if ( ! empty( $this->payment_method ) && ! $force ) {
2037
return true;
2038
}
2039
2040
+ $payment_method = $this->get_payment_method( $order );
2041
2042
+ if ( empty( $payment_method ) ) {
2043
return false;
2044
}
2045
2046
+ $this->payment_method = $payment_method;
2047
2048
return true;
2049
}
2050
2051
+ function get_payment_method( &$order ) {
2052
2053
if ( ! empty( $order->payment_method_id ) ) {
2054
try {
2055
+ $payment_method = Stripe_PaymentMethod::retrieve( $order->payment_method_id );
2056
} catch ( Stripe\Error\Base $e ) {
2057
$order->error = $e->getMessage();
2058
return false;
2065
}
2066
}
2067
2068
+ if ( empty( $payment_method ) ) {
2069
return false;
2070
}
2071
2072
+ return $payment_method;
2073
}
2074
2075
function set_customer( &$order, $force = false ) {
2079
$this->getCustomer( $order );
2080
}
2081
2082
+ function attach_payment_method_to_customer( &$order ) {
2083
2084
if ( ! empty( $this->customer->invoice_settings->default_payment_method ) &&
2085
+ $this->customer->invoice_settings->default_payment_method === $this->payment_method->id ) {
2086
return true;
2087
}
2088
2089
try {
2090
+ $this->payment_method->attach( [ 'customer' => $this->customer->id ] );
2091
+ $this->customer->invoice_settings->default_payment_method = $this->payment_method->id;
2092
$this->customer->save();
2093
} catch ( Stripe\Error\Base $e ) {
2094
$order->error = $e->getMessage();
2185
2186
$params = array(
2187
'customer' => $this->customer->id,
2188
+ 'payment_method' => $this->payment_method->id,
2189
'amount' => $amount * $currency_unit_multiplier,
2190
'currency' => $pmpro_currency,
2191
'confirmation_method' => 'manual',
2296
$trial_period_days = $order->BillingFrequency * 30; //assume monthly
2297
}
2298
2299
+ //convert to a profile start date
2300
$order->ProfileStartDate = date_i18n( "Y-m-d", strtotime( "+ " . $trial_period_days . " Day", current_time( "timestamp" ) ) ) . "T0:0:0";
2301
2302
+ //filter the start date
2303
$order->ProfileStartDate = apply_filters( "pmpro_profile_start_date", $order->ProfileStartDate, $order );
2304
2305
+ //convert back to days
2306
$trial_period_days = ceil( abs( strtotime( date_i18n( "Y-m-d" ), current_time( "timestamp" ) ) - strtotime( $order->ProfileStartDate, current_time( "timestamp" ) ) ) / 86400 );
2307
2308
+ //for free trials, just push the start date of the subscription back
2309
if ( ! empty( $order->TrialBillingCycles ) && $order->TrialAmount == 0 ) {
2310
$trialOccurrences = (int) $order->TrialBillingCycles;
2311
if ( $order->BillingPeriod == "Year" ) {
2321
2322
}
2323
2324
+ // Save $trial_period_days to order for now too.
2325
$order->TrialPeriodDays = $trial_period_days;
2326
2327
+ //create a plan
2328
try {
2329
$plan = array(
2330
"amount" => $amount * $currency_unit_multiplier,
2351
2352
function create_subscription( &$order ) {
2353
2354
+ //subscribe to the plan
2355
try {
2356
$params = array(
2357
'customer' => $this->customer->id,
2358
+ 'default_payment_method' => $this->payment_method,
2359
'items' => array(
2360
array( 'plan' => $order->code ),
2361
),
css/admin.css CHANGED
@@ -152,7 +152,7 @@ height: 10px; overflow: hidden; border-radius: 10px; -moz-border-radius: 10px; -
152
}
153
154
/* misc */
155
- .pmpro_lite {color: #AAA;}
156
.pmpro_pad20 {padding: 20px !important;}
157
.pmpro_red {color: #CC0000;}
158
.pmpro_green {color: #00AA00;}
152
}
153
154
/* misc */
155
+ .pmpro_lite {color: #777;}
156
.pmpro_pad20 {padding: 20px !important;}
157
.pmpro_red {color: #CC0000;}
158
.pmpro_green {color: #00AA00;}
includes/adminpages.php CHANGED
@@ -53,6 +53,7 @@ function pmpro_add_pages() {
53
add_submenu_page( 'pmpro-dashboard', __( 'Reports', 'paid-memberships-pro' ), __( 'Reports', 'paid-memberships-pro' ), 'pmpro_reports', 'pmpro-reports', 'pmpro_reports' );
54
add_submenu_page( 'pmpro-dashboard', __( 'Settings', 'paid-memberships-pro' ), __( 'Settings', 'paid-memberships-pro' ), 'pmpro_membershiplevels', 'pmpro-membershiplevels', 'pmpro_membershiplevels' );
55
add_submenu_page( 'pmpro-dashboard', __( 'Add Ons', 'paid-memberships-pro' ), __( 'Add Ons', 'paid-memberships-pro' ), 'pmpro_addons', 'pmpro-addons', 'pmpro_addons' );
56
57
// Settings tabs
58
add_submenu_page( 'admin.php', __( 'Discount Codes', 'paid-memberships-pro' ), __( 'Discount Codes', 'paid-memberships-pro' ), 'pmpro_discountcodes', 'pmpro-discountcodes', 'pmpro_discountcodes' );
@@ -194,6 +195,18 @@ function pmpro_admin_bar_menu() {
194
)
195
);
196
}
197
}
198
add_action( 'admin_bar_menu', 'pmpro_admin_bar_menu', 1000);
199
53
add_submenu_page( 'pmpro-dashboard', __( 'Reports', 'paid-memberships-pro' ), __( 'Reports', 'paid-memberships-pro' ), 'pmpro_reports', 'pmpro-reports', 'pmpro_reports' );
54
add_submenu_page( 'pmpro-dashboard', __( 'Settings', 'paid-memberships-pro' ), __( 'Settings', 'paid-memberships-pro' ), 'pmpro_membershiplevels', 'pmpro-membershiplevels', 'pmpro_membershiplevels' );
55
add_submenu_page( 'pmpro-dashboard', __( 'Add Ons', 'paid-memberships-pro' ), __( 'Add Ons', 'paid-memberships-pro' ), 'pmpro_addons', 'pmpro-addons', 'pmpro_addons' );
56
+ add_submenu_page( 'pmpro-dashboard', __( 'License', 'paid-memberships-pro' ), __( '<span style="color:#7FFF00">License</span>', 'paid-memberships-pro' ), 'manage_options', 'pmpro-license', 'pmpro_license_settings_page' );
57
58
// Settings tabs
59
add_submenu_page( 'admin.php', __( 'Discount Codes', 'paid-memberships-pro' ), __( 'Discount Codes', 'paid-memberships-pro' ), 'pmpro_discountcodes', 'pmpro-discountcodes', 'pmpro_discountcodes' );
195
)
196
);
197
}
198
+
199
+ // Add menu item for License.
200
+ if ( current_user_can( 'manage_options' ) ) {
201
+ $wp_admin_bar->add_menu(
202
+ array(
203
+ 'id' => 'pmpro-license',
204
+ 'parent' => 'paid-memberships-pro',
205
+ 'title' => __( 'License', 'paid-memberships-pro' ),
206
+ 'href' => get_admin_url( NULL, '/admin.php?page=pmpro-license' )
207
+ )
208
+ );
209
+ }
210
}
211
add_action( 'admin_bar_menu', 'pmpro_admin_bar_menu', 1000);
212
includes/deprecated.php CHANGED
@@ -29,4 +29,17 @@ function pmpro_init_check_for_deprecated_filters() {
29
}
30
}
31
}
32
- add_action( 'init', 'pmpro_init_check_for_deprecated_filters', 99 );
29
}
30
}
31
}
32
+ add_action( 'init', 'pmpro_init_check_for_deprecated_filters', 99 );
33
+
34
+ /**
35
+ * Redirect some old menu items to their new location
36
+ */
37
+ function pmpro_admin_init_redirect_old_menu_items() {
38
+ if ( is_admin()
39
+ && ! empty( $_REQUEST['page'] ) && $_REQUEST['page'] == 'pmpro_license_settings'
40
+ && basename( $_SERVER['SCRIPT_NAME'] ) == 'options-general.php' ) {
41
+ wp_safe_redirect( admin_url( 'admin.php?page=pmpro-license' ) );
42
+ exit;
43
+ }
44
+ }
45
+ add_action( 'init', 'pmpro_admin_init_redirect_old_menu_items' );
includes/functions.php CHANGED
@@ -313,7 +313,7 @@ function pmpro_loadTemplate( $page_name = null, $where = 'local', $type = 'pages
313
314
// user specified a custom template path, so it has priority.
315
if ( ! empty( $user_templates ) ) {
316
- array_merge($allowed_default_templates, $user_templates);
317
}
318
319
// last element included in the array is the most first one we try to load
@@ -2927,7 +2927,7 @@ function pmpro_is_checkout() {
2927
global $pmpro_pages;
2928
2929
// Try is_page first.
2930
- if ( isset( $pmpro_pages['checkout'] ) ) {
2931
$is_checkout = is_page( $pmpro_pages['checkout'] );
2932
} else {
2933
$is_checkout = false;
313
314
// user specified a custom template path, so it has priority.
315
if ( ! empty( $user_templates ) ) {
316
+ $templates = array_merge($allowed_default_templates, $user_templates);
317
}
318
319
// last element included in the array is the most first one we try to load
2927
global $pmpro_pages;
2928
2929
// Try is_page first.
2930
+ if ( ! empty( $pmpro_pages['checkout'] ) ) {
2931
$is_checkout = is_page( $pmpro_pages['checkout'] );
2932
} else {
2933
$is_checkout = false;
includes/lib/Stripe/data/test.png DELETED
Binary file
includes/lib/Stripe/lib/AttachedObject.php DELETED
@@ -1,43 +0,0 @@
1
- <?php
2
-
3
- namespace Stripe;
4
-
5
- use Countable;
6
-
7
- /**
8
- * Class AttachedObject
9
- *
10
- * e.g. metadata on Stripe objects.
11
- *
12
- * @package Stripe
13
- */
14
- class AttachedObject extends StripeObject implements Countable
15
- {
16
- /**
17
- * Updates this object.
18
- *
19
- * @param array $properties A mapping of properties to update on this object.
20
- */
21
- public function replaceWith($properties)
22
- {
23
- $removed = array_diff(array_keys($this->_values), array_keys($properties));
24
- // Don't unset, but rather set to null so we send up '' for deletion.
25
- foreach ($removed as $k) {
26
- $this->$k = null;
27
- }
28
-
29
- foreach ($properties as $k => $v) {
30
- $this->$k = $v;
31
- }
32
- }
33
-
34
- /**
35
- * Counts the number of elements in the AttachedObject instance.
36
- *
37
- * @return int the number of elements
38
- */
39
- public function count()
40
- {
41
- return count($this->_values);
42
- }
43
- }
includes/lib/Stripe/lib/ExternalAccount.php DELETED
@@ -1,89 +0,0 @@
1
- <?php
2
-
3
- namespace Stripe;
4
-
5
- /**
6
- * Class ExternalAccount
7
- *
8
- * @package Stripe
9
- */
10
- abstract class ExternalAccount extends ApiResource
11
- {
12
- /**
13
- * @return string The instance URL for this resource. It needs to be special
14
- * cased because it doesn't fit into the standard resource pattern.
15
- */
16
- public function instanceUrl()
17
- {
18
- $id = $this['id'];
19
- if (!$id) {
20
- $class = get_class($this);
21
- $msg = "Could not determine which URL to request: $class instance "
22
- . "has invalid ID: $id";
23
- throw new Error\InvalidRequest($msg, null);
24
- }
25
-
26
- if ($this['customer']) {
27
- $parent = $this['customer'];
28
- $base = Customer::classUrl();
29
- $path = 'sources';
30
- } elseif ($this['account']) {
31
- $parent = $this['account'];
32
- $base = Account::classUrl();
33
- $path = 'external_accounts';
34
- } elseif ($this['recipient']) {
35
- $parent = $this['recipient'];
36
- $base = Recipient::classUrl();
37
- $path = 'cards';
38
- } else {
39
- return null;
40
- }
41
-
42
- $parent = Util\Util::utf8($parent);
43
- $id = Util\Util::utf8($id);
44
-
45
- $parentExtn = urlencode($parent);
46
- $extn = urlencode($id);
47
- return "$base/$parentExtn/$path/$extn";
48
- }
49
-
50
- /**
51
- * @param array|null $params
52
- * @param array|string|null $opts
53
- *
54
- * @return ExternalAccount The deleted external account.
55
- */
56
- public function delete($params = null, $opts = null)
57
- {
58
- return $this->_delete($params, $opts);
59
- }
60
-
61
- /**
62
- * @param array|string|null $opts
63
- *
64
- * @return ExternalAccount The saved external account.
65
- */
66
- public function save($opts = null)
67
- {
68
- return $this->_save($opts);
69
- }
70
-
71
- /**
72
- * @param array|null $params
73
- * @param array|string|null $opts
74
- *
75
- * @return ExternalAccount The verified (or not) external account.
76
- */
77
- public function verify($params = null, $opts = null)
78
- {
79
- if ($this['customer']) {
80
- $url = $this->instanceUrl() . '/verify';
81
- list($response, $options) = $this->_request('post', $url, $params, $opts);
82
- $this->refreshFrom($response, $options);
83
- return $this;
84
- } else {
85
- $message = 'Only customer external accounts can be verified in this manner.';
86
- throw new Error\Api($message);
87
- }
88
- }
89
- }
includes/lib/Stripe/lib/JsonSerializable.php DELETED
@@ -1,18 +0,0 @@
1
- <?php
2
-
3
- namespace Stripe;
4
-
5
- // JsonSerializable only exists in PHP 5.4+. Stub if out if it doesn't exist
6
- if (interface_exists('\JsonSerializable', false)) {
7
- interface JsonSerializable extends \JsonSerializable
8
- {
9
- }
10
- } else {
11
- // PSR2 wants each interface to have its own file.
12
- // @codingStandardsIgnoreStart
13
- interface JsonSerializable
14
- {
15
- // @codingStandardsIgnoreEnd
16
- public function jsonSerialize();
17
- }
18
- }
includes/license.php CHANGED
@@ -17,7 +17,7 @@
17
/*
18
Developers, add this line to your wp-config.php to remove PMPro license nags even if no license has been purchased.
19
20
- define('PMPRO_LICENSE_NAG', false); //consider purchasing a license at http://www.paidmembershipspro.com/support-license/
21
*/
22
23
/*
@@ -80,18 +80,17 @@ function pmpro_license_settings_page() {
80
if(defined('PMPRO_DIR'))
81
require_once(PMPRO_DIR . "/adminpages/admin_header.php");
82
?>
83
- <div class="wrap">
84
<h2><?php _e('Paid Memberships Pro Support License', 'paid-memberships-pro' );?></h2>
85
<p>Paid Memberships Pro and our add ons are distributed under the <a target="_blank" href='http://www.gnu.org/licenses/gpl-2.0.html'>GPLv2 license</a>. This means, among other things, that you may use the software on this site or any other site free of charge.</p>
86
- <p><strong>An annual support license is recommended for websites running Paid Memberships Pro.</strong> <a href="http://www.paidmembershipspro.com/pricing/?utm_source=plugin&utm_medium=banner&utm_campaign=license_notice" target="_blank">View Support License Options &raquo;</a></p>
87
<div class="metabox-holder">
88
<div class="postbox">
89
<h3 class="hndle"><?php _e('License Key', 'paid-memberships-pro' );?></h3>
90
<div class="inside">
91
<?php if(!pmpro_license_isValid() && empty($key)) { ?>
92
- <div class="notice notice-error inline"><p><strong><?php _e('Enter your support license key.</strong> Your license key can be found in your membership email receipt or in your <a href="http://www.paidmembershipspro.com/login/?redirect_to=/membership-account/?utm_source=plugin&utm_medium=banner&utm_campaign=license_notice" target="_blank">Membership Account</a>.', 'paid-memberships-pro' );?></p></div>
93
<?php } elseif(!pmpro_license_isValid()) { ?>
94
- <div class="notice notice-error inline"><p><strong><?php _e('Your license is invalid or expired.', 'paid-memberships-pro' );?></strong> <?php _e('Visit the PMPro <a href="http://www.paidmembershipspro.com/login/?redirect_to=/membership-account/?utm_source=plugin&utm_medium=banner&utm_campaign=license_notice" target="_blank">Membership Account</a> page to confirm that your account is active and to find your license key.', 'paid-memberships-pro' );?></p></div>
95
<?php } else { ?>
96
<div class="notice inline"><?php printf(__('<p><strong>Thank you!</strong> A valid <strong>%s</strong> license key has been used to activate your support license on this site.</p>', 'paid-memberships-pro' ), ucwords($pmpro_license_check['license']));?></div>
97
<?php } ?>
@@ -111,16 +110,9 @@ function pmpro_license_settings_page() {
111
</div> <!-- end inside -->
112
</div> <!-- end post-box -->
113
</div> <!-- end metabox-holder -->
114
- </div> <!-- end wrap -->
115
<?php
116
}
117
118
- function pmpro_license_admin_menu() {
119
- //add license settings page
120
- add_options_page('PMPro License', 'PMPro License', 'manage_options', 'pmpro_license_settings', 'pmpro_license_settings_page');
121
- }
122
- add_action('admin_menu', 'pmpro_license_admin_menu');
123
-
124
/*
125
Check license.
126
*/
@@ -265,7 +257,7 @@ function pmpro_license_nag() {
265
return;
266
267
//don't load on the license page
268
- if(!empty($_REQUEST['page']) && $_REQUEST['page'] == 'pmpro_license_settings')
269
return;
270
271
//valid license?
@@ -299,7 +291,7 @@ function pmpro_license_nag() {
299
}
300
?>
301
<?php _e("If you're running Paid Memberships Pro on a production website, we recommend an annual support license.", 'paid-memberships-pro' );?>
302
- <a href="<?php echo admin_url('options-general.php?page=pmpro_license_settings');?>"><?php _e('More Info', 'paid-memberships-pro' );?></a>&nbsp;|&nbsp;<a href="<?php echo add_query_arg('pmpro_nag_paused', '1', $_SERVER['REQUEST_URI']);?>"><?php _e('Dismiss', 'paid-memberships-pro' );?></a>
303
</p>
304
</div>
305
<?php
17
/*
18
Developers, add this line to your wp-config.php to remove PMPro license nags even if no license has been purchased.
19
20
+ define('PMPRO_LICENSE_NAG', false); //consider purchasing a license at https://www.paidmembershipspro.com/pricing/
21
*/
22
23
/*
80
if(defined('PMPRO_DIR'))
81
require_once(PMPRO_DIR . "/adminpages/admin_header.php");
82
?>
83
<h2><?php _e('Paid Memberships Pro Support License', 'paid-memberships-pro' );?></h2>
84
<p>Paid Memberships Pro and our add ons are distributed under the <a target="_blank" href='http://www.gnu.org/licenses/gpl-2.0.html'>GPLv2 license</a>. This means, among other things, that you may use the software on this site or any other site free of charge.</p>
85
+ <p><strong>An annual support license is recommended for websites running Paid Memberships Pro.</strong> <a href="https://www.paidmembershipspro.com/pricing/?utm_source=plugin&utm_medium=notifications&utm_campaign=pricing&utm_content=license-notice" target="_blank">View Support License Options &raquo;</a></p>
86
<div class="metabox-holder">
87
<div class="postbox">
88
<h3 class="hndle"><?php _e('License Key', 'paid-memberships-pro' );?></h3>
89
<div class="inside">
90
<?php if(!pmpro_license_isValid() && empty($key)) { ?>
91
+ <div class="notice notice-error inline"><p><strong><?php _e('Enter your support license key.</strong> Your license key can be found in your membership email receipt or in your <a href="https://www.paidmembershipspro.com/login/?redirect_to=%2Fmembership-account%2F%3Futm_source%3Dplugin%26utm_medium%3Dpmpro-license%26utm_campaign%3Dmembership-account%26utm_content%3Dno-key" target="_blank">Membership Account</a>.', 'paid-memberships-pro' );?></p></div>
92
<?php } elseif(!pmpro_license_isValid()) { ?>
93
+ <div class="notice notice-error inline"><p><strong><?php _e('Your license is invalid or expired.', 'paid-memberships-pro' );?></strong> <?php _e('Visit the PMPro <a href="https://www.paidmembershipspro.com/login/?redirect_to=%2Fmembership-account%2F%3Futm_source%3Dplugin%26utm_medium%3Dpmpro-license%26utm_campaign%3Dmembership-account%26utm_content%3Dkey-not-valid" target="_blank">Membership Account</a> page to confirm that your account is active and to find your license key.', 'paid-memberships-pro' );?></p></div>
94
<?php } else { ?>
95
<div class="notice inline"><?php printf(__('<p><strong>Thank you!</strong> A valid <strong>%s</strong> license key has been used to activate your support license on this site.</p>', 'paid-memberships-pro' ), ucwords($pmpro_license_check['license']));?></div>
96
<?php } ?>
110
</div> <!-- end inside -->
111
</div> <!-- end post-box -->
112
</div> <!-- end metabox-holder -->
113
<?php
114
}
115
116
/*
117
Check license.
118
*/
257
return;
258
259
//don't load on the license page
260
+ if(!empty($_REQUEST['page']) && $_REQUEST['page'] == 'pmpro-license')
261
return;
262
263
//valid license?
291
}
292
?>
293
<?php _e("If you're running Paid Memberships Pro on a production website, we recommend an annual support license.", 'paid-memberships-pro' );?>
294
+ <a href="<?php echo admin_url('admin.php?page=pmpro-license');?>"><?php _e('More Info', 'paid-memberships-pro' );?></a>&nbsp;|&nbsp;<a href="<?php echo add_query_arg('pmpro_nag_paused', '1', $_SERVER['REQUEST_URI']);?>"><?php _e('Dismiss', 'paid-memberships-pro' );?></a>
295
</p>
296
</div>
297
<?php
includes/sessions.php CHANGED
@@ -10,9 +10,7 @@
10
* A general function to start sessions for Paid Memberships Pro.
11
* @since 1.9.2
12
*/
13
- function pmpro_start_session()
14
- {
15
-
16
//if the session hasn't been started yet, start it (ignore if running from command line)
17
if (!defined('PMPRO_USE_SESSIONS') || PMPRO_USE_SESSIONS == true) {
18
if (defined('STDIN')) {
@@ -37,9 +35,7 @@ add_action('pmpro_checkout_preheader_before_get_level_at_checkout', 'pmpro_start
37
* Close the session object for new updates
38
* @since 1.9.2
39
*/
40
- function pmpro_close_session()
41
- {
42
-
43
if (!defined('PMPRO_USE_SESSIONS') || PMPRO_USE_SESSIONS == true) {
44
if (defined('STDIN')) {
45
//command line
@@ -56,7 +52,6 @@ function pmpro_close_session()
56
}
57
}
58
}
59
-
60
add_action('pmpro_after_checkout', 'pmpro_close_session', 32768);
61
62
/**
@@ -66,8 +61,7 @@ add_action('pmpro_after_checkout', 'pmpro_close_session', 32768);
66
*
67
* TODO: Update docblock.
68
*/
69
- function pmpro_set_session_var($key, $value)
70
- {
71
pmpro_start_session();
72
$_SESSION[$key] = $value;
73
}
@@ -80,8 +74,8 @@ function pmpro_set_session_var($key, $value)
80
* TODO: Update docblock.
81
*/
82
function pmpro_get_session_var( $key ) {
83
- pmpro_start_session();
84
- if ( array_key_exists( $key, $_SESSION ) ) {
85
return $_SESSION[$key] ;
86
} else {
87
return false;
@@ -95,8 +89,7 @@ function pmpro_get_session_var( $key ) {
95
*
96
* TODO: Update docblock.
97
*/
98
- function pmpro_unset_session_var($key)
99
- {
100
pmpro_start_session();
101
unset($_SESSION[$key]);
102
}
10
* A general function to start sessions for Paid Memberships Pro.
11
* @since 1.9.2
12
*/
13
+ function pmpro_start_session() {
14
//if the session hasn't been started yet, start it (ignore if running from command line)
15
if (!defined('PMPRO_USE_SESSIONS') || PMPRO_USE_SESSIONS == true) {
16
if (defined('STDIN')) {
35
* Close the session object for new updates
36
* @since 1.9.2
37
*/
38
+ function pmpro_close_session() {
39
if (!defined('PMPRO_USE_SESSIONS') || PMPRO_USE_SESSIONS == true) {
40
if (defined('STDIN')) {
41
//command line
52
}
53
}
54
}
55
add_action('pmpro_after_checkout', 'pmpro_close_session', 32768);
56
57
/**
61
*
62
* TODO: Update docblock.
63
*/
64
+ function pmpro_set_session_var($key, $value) {
65
pmpro_start_session();
66
$_SESSION[$key] = $value;
67
}
74
* TODO: Update docblock.
75
*/
76
function pmpro_get_session_var( $key ) {
77
+ pmpro_start_session();
78
+ if ( ! empty( $_SESSION ) && array_key_exists( $key, $_SESSION ) ) {
79
return $_SESSION[$key] ;
80
} else {
81
return false;
89
*
90
* TODO: Update docblock.
91
*/
92
+ function pmpro_unset_session_var($key) {
93
pmpro_start_session();
94
unset($_SESSION[$key]);
95
}
js/paid-memberships-pro.js DELETED
@@ -1,13 +0,0 @@
1
- /**
2
- * Show a system prompt before redirecting to a URL.
3
- * Used for delete links/etc.
4
- * @param text The prompt, i.e. are you sure?
5
- * @param url The url to redirect to.
6
- */
7
- function askfirst( text, url ) {
8
- var answer = window.confirm( text );
9
-
10
- if ( answer ) {
11
- window.location = url;
12
- }
13
- }
js/pmpro-checkout.js CHANGED
@@ -192,7 +192,7 @@ jQuery(document).ready(function(){
192
});
193
194
function pmpro_copyMessageToBottom() {
195
- jQuery('#pmpro_message_bottom').text(jQuery('#pmpro_message').text());
196
jQuery('#pmpro_message_bottom').attr('class', jQuery('#pmpro_message').attr('class'));
197
if(jQuery('#pmpro_message').is(":visible")) {
198
jQuery('#pmpro_message_bottom').show();
192
});
193
194
function pmpro_copyMessageToBottom() {
195
+ jQuery('#pmpro_message_bottom').html(jQuery('#pmpro_message').html());
196
jQuery('#pmpro_message_bottom').attr('class', jQuery('#pmpro_message').attr('class'));
197
if(jQuery('#pmpro_message').is(":visible")) {
198
jQuery('#pmpro_message_bottom').show();
js/pmpro-stripe.js CHANGED
@@ -17,7 +17,7 @@ jQuery( document ).ready( function( $ ) {
17
cardExpiry.mount('#Expiry');
18
cardCvc.mount('#CVV');
19
20
- // Handle authentication if required.
21
if ( 'undefined' !== typeof( pmproStripe.paymentIntent ) ) {
22
if ( 'requires_action' === pmproStripe.paymentIntent.status ) {
23
// On submit disable its submit button
@@ -28,6 +28,18 @@ jQuery( document ).ready( function( $ ) {
28
.then( stripeResponseHandler );
29
}
30
}
31
32
$( '.pmpro_form' ).submit( function( event ) {
33
var name, address;
17
cardExpiry.mount('#Expiry');
18
cardCvc.mount('#CVV');
19
20
+ // Handle authentication for charge if required.
21
if ( 'undefined' !== typeof( pmproStripe.paymentIntent ) ) {
22
if ( 'requires_action' === pmproStripe.paymentIntent.status ) {
23
// On submit disable its submit button
28
.then( stripeResponseHandler );
29
}
30
}
31
+
32
+ // Handle authentication for subscription if required.
33
+ if ( 'undefined' !== typeof( pmproStripe.setupIntent ) ) {
34
+ if ( 'requires_action' === pmproStripe.setupIntent.status ) {
35
+ // On submit disable its submit button
36
+ $('input[type=submit]', this).attr('disabled', 'disabled');
37
+ $('input[type=image]', this).attr('disabled', 'disabled');
38
+ $('#pmpro_processing_message').css('visibility', 'visible');
39
+ stripe.handleCardSetup( pmproStripe.setupIntent.client_secret )
40
+ .then( stripeResponseHandler );
41
+ }
42
+ }
43
44
$( '.pmpro_form' ).submit( function( event ) {
45
var name, address;
languages/paid-memberships-pro.mo CHANGED
Binary file
languages/paid-memberships-pro.po CHANGED
@@ -6,7 +6,7 @@ msgid ""
6
msgstr ""
7
"Project-Id-Version: paid-memberships-pro\n"
8
"Report-Msgid-Bugs-To: info@paidmembershipspro.com\n"
9
- "POT-Creation-Date: 2019-09-13 12:49-0400\n"
10
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
11
"Last-Translator: \n"
12
"Language-Team: Stranger Studios <info@paidmembershipspro.com>\n"
@@ -33,8 +33,8 @@ msgstr ""
33
msgid "You do not have permissions to perform this action."
34
msgstr ""
35
36
- #: adminpages/addons.php:81 adminpages/admin_header.php:208
37
- #: includes/adminpages.php:55 includes/adminpages.php:192
38
#: adminpages/addons.php:64 adminpages/addons.php:67 adminpages/addons.php:80
39
#: adminpages/addons.php:81 adminpages/admin_header.php:133
40
#: adminpages/admin_header.php:154 adminpages/admin_header.php:170
@@ -64,7 +64,8 @@ msgstr ""
64
#: adminpages/orders.php:605 adminpages/orders.php:712
65
#: adminpages/orders.php:741 adminpages/orders.php:850
66
#: adminpages/orders.php:881 adminpages/orders.php:892
67
- #: adminpages/orders.php:983 adminpages/orders.php:1039
68
msgid "All"
69
msgstr ""
70
@@ -171,10 +172,12 @@ msgstr ""
171
msgid "Activate %s"
172
msgstr ""
173
174
- #: adminpages/addons.php:231 adminpages/discountcodes.php:771
175
- #: adminpages/membershiplevels.php:762 adminpages/orders.php:1358
176
#: adminpages/addons.php:213 adminpages/addons.php:216
177
#: adminpages/addons.php:229 adminpages/addons.php:231
178
msgid "Delete"
179
msgstr ""
180
@@ -214,12 +217,13 @@ msgstr ""
214
#: includes/profile.php:186 shortcodes/pmpro_account.php:158
215
#: adminpages/addons.php:231 adminpages/addons.php:234
216
#: adminpages/addons.php:247 adminpages/addons.php:249
217
- #: adminpages/orders.php:855 adminpages/orders.php:910
218
- #: adminpages/orders.php:1340 adminpages/orders.php:1350
219
- #: adminpages/orders.php:1462 adminpages/orders.php:1472
220
- #: includes/profile.php:186 shortcodes/pmpro_account.php:145
221
- #: shortcodes/pmpro_account.php:146 shortcodes/pmpro_account.php:148
222
- #: shortcodes/pmpro_account.php:158
223
msgid "N/A"
224
msgstr ""
225
@@ -354,6 +358,7 @@ msgstr ""
354
#: adminpages/admin_header.php:125 adminpages/admin_header.php:135
355
#: classes/gateways/class.pmprogateway_stripe.php:66
356
#: classes/gateways/class.pmprogateway_stripe.php:68
357
#, php-format
358
msgid ""
359
"The Stripe Gateway requires PHP 5.3.29 or greater. We recommend upgrading to "
@@ -388,25 +393,26 @@ msgstr ""
388
msgid "Get Support"
389
msgstr ""
390
391
- #: adminpages/admin_header.php:188 includes/adminpages.php:50
392
- #: includes/adminpages.php:132 adminpages/admin_header.php:188
393
#: includes/adminpages.php:50 includes/adminpages.php:132
394
msgid "Dashboard"
395
msgstr ""
396
397
- #: adminpages/admin_header.php:192 includes/adminpages.php:51
398
- #: includes/adminpages.php:144 adminpages/admin_header.php:192
399
#: includes/adminpages.php:51 includes/adminpages.php:144
400
msgid "Members"
401
msgstr ""
402
403
- #: adminpages/admin_header.php:196 adminpages/discountcodes.php:775
404
#: adminpages/orders.php:949 includes/adminpages.php:52
405
- #: includes/adminpages.php:156 adminpages/admin_header.php:196
406
- #: adminpages/orders.php:520 adminpages/orders.php:570
407
- #: adminpages/orders.php:677 adminpages/orders.php:706
408
- #: adminpages/orders.php:810 adminpages/orders.php:841
409
- #: adminpages/orders.php:852 adminpages/orders.php:939
410
#: adminpages/orders.php:994 includes/adminpages.php:17
411
#: includes/adminpages.php:52 includes/adminpages.php:55
412
#: includes/adminpages.php:56 includes/adminpages.php:84
@@ -415,8 +421,8 @@ msgstr ""
415
msgid "Orders"
416
msgstr ""
417
418
- #: adminpages/admin_header.php:200 includes/adminpages.php:53
419
- #: includes/adminpages.php:168 adminpages/admin_header.php:200
420
#: includes/adminpages.php:16 includes/adminpages.php:53
421
#: includes/adminpages.php:54 includes/adminpages.php:55
422
#: includes/adminpages.php:79 includes/adminpages.php:149
@@ -425,13 +431,18 @@ msgstr ""
425
msgid "Reports"
426
msgstr ""
427
428
- #: adminpages/admin_header.php:204 includes/adminpages.php:54
429
- #: includes/adminpages.php:180 adminpages/admin_header.php:204
430
#: includes/adminpages.php:54 includes/adminpages.php:180
431
msgid "Settings"
432
msgstr ""
433
434
- #: adminpages/admin_header.php:215 adminpages/discountcodes.php:751
435
#: adminpages/admin_header.php:215 adminpages/discountcodes.php:552
436
#: adminpages/discountcodes.php:562 adminpages/discountcodes.php:590
437
#: adminpages/discountcodes.php:591 adminpages/discountcodes.php:592
@@ -440,7 +451,7 @@ msgstr ""
440
msgid "Levels"
441
msgstr ""
442
443
- #: adminpages/admin_header.php:215 adminpages/membershiplevels.php:728
444
#: adminpages/pagesettings.php:85 includes/metaboxes.php:130
445
#: adminpages/admin_header.php:128 adminpages/admin_header.php:149
446
#: adminpages/admin_header.php:150 adminpages/admin_header.php:159
@@ -452,19 +463,20 @@ msgstr ""
452
#: adminpages/membershiplevels.php:609 adminpages/membershiplevels.php:618
453
#: adminpages/membershiplevels.php:619 adminpages/membershiplevels.php:631
454
#: adminpages/membershiplevels.php:641 adminpages/membershiplevels.php:700
455
- #: adminpages/membershiplevels.php:702 adminpages/pagesettings.php:69
456
- #: adminpages/pagesettings.php:70 adminpages/pagesettings.php:71
457
- #: adminpages/pagesettings.php:85 includes/adminpages.php:44
458
- #: includes/adminpages.php:64 includes/adminpages.php:65
459
- #: includes/adminpages.php:69 includes/adminpages.php:70
460
- #: includes/adminpages.php:100 includes/adminpages.php:107
461
- #: includes/adminpages.php:111 includes/adminpages.php:116
462
- #: includes/metaboxes.php:126 includes/metaboxes.php:130
463
- #: includes/metaboxes.php:131 includes/metaboxes.php:132
464
msgid "Membership Levels"
465
msgstr ""
466
467
- #: adminpages/admin_header.php:219 includes/adminpages.php:58
468
#: adminpages/admin_header.php:219 includes/adminpages.php:18
469
#: includes/adminpages.php:56 includes/adminpages.php:57
470
#: includes/adminpages.php:58 includes/adminpages.php:89
@@ -473,8 +485,8 @@ msgstr ""
473
msgid "Discount Codes"
474
msgstr ""
475
476
- #: adminpages/admin_header.php:223 adminpages/pagesettings.php:108
477
- #: includes/adminpages.php:59 adminpages/admin_header.php:223
478
#: adminpages/pagesettings.php:108 includes/adminpages.php:10
479
#: includes/adminpages.php:48 includes/adminpages.php:49
480
#: includes/adminpages.php:59 includes/adminpages.php:107
@@ -483,7 +495,7 @@ msgstr ""
483
msgid "Page Settings"
484
msgstr ""
485
486
- #: adminpages/admin_header.php:223 adminpages/admin_header.php:129
487
#: adminpages/admin_header.php:150 adminpages/admin_header.php:154
488
#: adminpages/admin_header.php:163 adminpages/admin_header.php:175
489
#: adminpages/admin_header.php:188 adminpages/admin_header.php:223
@@ -492,18 +504,18 @@ msgstr ""
492
msgid "Pages"
493
msgstr ""
494
495
- #: adminpages/admin_header.php:227 adminpages/admin_header.php:130
496
#: adminpages/admin_header.php:151 adminpages/admin_header.php:158
497
#: adminpages/admin_header.php:167 adminpages/admin_header.php:179
498
#: adminpages/admin_header.php:192 adminpages/admin_header.php:227
499
msgid "Payment Gateway &amp; SSL"
500
msgstr ""
501
502
- #: adminpages/admin_header.php:227 adminpages/admin_header.php:227
503
msgid "Payment Gateway &amp; SSL Settings"
504
msgstr ""
505
506
- #: adminpages/admin_header.php:231 adminpages/memberslist.php:168
507
#: adminpages/orders.php:372 adminpages/orders.php:1365
508
#: shortcodes/pmpro_account.php:111 adminpages/admin_header.php:131
509
#: adminpages/admin_header.php:152 adminpages/admin_header.php:162
@@ -511,14 +523,15 @@ msgstr ""
511
#: adminpages/admin_header.php:196 adminpages/admin_header.php:231
512
#: adminpages/memberslist.php:115 adminpages/memberslist.php:148
513
#: adminpages/memberslist.php:158 adminpages/memberslist.php:168
514
- #: pages/account.php:52 pages/account.php:56 pages/account.php:77
515
- #: shortcodes/pmpro_account.php:106 shortcodes/pmpro_account.php:108
516
- #: shortcodes/pmpro_account.php:109 shortcodes/pmpro_account.php:111
517
msgid "Email"
518
msgstr ""
519
520
- #: adminpages/admin_header.php:231 adminpages/emailsettings.php:83
521
- #: includes/adminpages.php:61 adminpages/admin_header.php:231
522
#: adminpages/emailsettings.php:60 adminpages/emailsettings.php:69
523
#: adminpages/emailsettings.php:79 adminpages/emailsettings.php:83
524
#: includes/adminpages.php:12 includes/adminpages.php:50
@@ -529,15 +542,15 @@ msgstr ""
529
msgid "Email Settings"
530
msgstr ""
531
532
- #: adminpages/admin_header.php:235 adminpages/admin_header.php:132
533
#: adminpages/admin_header.php:153 adminpages/admin_header.php:166
534
#: adminpages/admin_header.php:175 adminpages/admin_header.php:187
535
#: adminpages/admin_header.php:200 adminpages/admin_header.php:235
536
msgid "Advanced"
537
msgstr ""
538
539
- #: adminpages/admin_header.php:235 adminpages/advancedsettings.php:109
540
- #: includes/adminpages.php:62 adminpages/admin_header.php:235
541
#: adminpages/advancedsettings.php:79 adminpages/advancedsettings.php:86
542
#: adminpages/advancedsettings.php:88 adminpages/advancedsettings.php:91
543
#: adminpages/advancedsettings.php:107 adminpages/advancedsettings.php:109
@@ -684,7 +697,7 @@ msgid "Hide Ads From Members?"
684
msgstr ""
685
686
#: adminpages/advancedsettings.php:169 adminpages/advancedsettings.php:228
687
- #: adminpages/advancedsettings.php:240 adminpages/membershiplevels.php:779
688
#: adminpages/paymentsettings.php:253
689
#: classes/gateways/class.pmprogateway_stripe.php:321 includes/profile.php:125
690
#: adminpages/advancedsettings.php:128 adminpages/advancedsettings.php:135
@@ -703,8 +716,9 @@ msgstr ""
703
#: adminpages/membershiplevels.php:667 adminpages/membershiplevels.php:668
704
#: adminpages/membershiplevels.php:672 adminpages/membershiplevels.php:684
705
#: adminpages/membershiplevels.php:694 adminpages/membershiplevels.php:744
706
- #: adminpages/membershiplevels.php:746 adminpages/paymentsettings.php:210
707
- #: adminpages/paymentsettings.php:219 adminpages/paymentsettings.php:236
708
#: adminpages/paymentsettings.php:414 adminpages/paymentsettings.php:429
709
#: adminpages/paymentsettings.php:434 adminpages/paymentsettings.php:436
710
#: adminpages/paymentsettings.php:454 adminpages/paymentsettings.php:459
@@ -723,7 +737,8 @@ msgstr ""
723
#: classes/gateways/class.pmprogateway_stripe.php:289
724
#: classes/gateways/class.pmprogateway_stripe.php:291
725
#: classes/gateways/class.pmprogateway_stripe.php:297
726
- #: classes/gateways/class.pmprogateway_stripe.php:298 includes/profile.php:101
727
#: includes/profile.php:105 includes/profile.php:110 includes/profile.php:117
728
#: includes/profile.php:121 includes/profile.php:123 includes/profile.php:125
729
msgid "No"
@@ -778,7 +793,7 @@ msgstr ""
778
msgid "multisite only"
779
msgstr ""
780
781
- #: adminpages/advancedsettings.php:229 adminpages/membershiplevels.php:779
782
#: adminpages/paymentsettings.php:254
783
#: classes/gateways/class.pmprogateway_stripe.php:323 includes/profile.php:126
784
#: adminpages/advancedsettings.php:188 adminpages/advancedsettings.php:195
@@ -791,8 +806,9 @@ msgstr ""
791
#: adminpages/membershiplevels.php:667 adminpages/membershiplevels.php:668
792
#: adminpages/membershiplevels.php:672 adminpages/membershiplevels.php:684
793
#: adminpages/membershiplevels.php:694 adminpages/membershiplevels.php:744
794
- #: adminpages/membershiplevels.php:746 adminpages/paymentsettings.php:211
795
- #: adminpages/paymentsettings.php:220 adminpages/paymentsettings.php:237
796
#: adminpages/paymentsettings.php:415 adminpages/paymentsettings.php:424
797
#: adminpages/paymentsettings.php:430 adminpages/paymentsettings.php:435
798
#: adminpages/paymentsettings.php:437 adminpages/paymentsettings.php:455
@@ -811,7 +827,8 @@ msgstr ""
811
#: classes/gateways/class.pmprogateway_stripe.php:290
812
#: classes/gateways/class.pmprogateway_stripe.php:292
813
#: classes/gateways/class.pmprogateway_stripe.php:298
814
- #: classes/gateways/class.pmprogateway_stripe.php:299 includes/profile.php:102
815
#: includes/profile.php:106 includes/profile.php:111 includes/profile.php:118
816
#: includes/profile.php:122 includes/profile.php:124 includes/profile.php:126
817
msgid "Yes"
@@ -894,7 +911,7 @@ msgid ""
894
"using the dropdown above."
895
msgstr ""
896
897
- #: adminpages/advancedsettings.php:384 adminpages/pagesettings.php:315
898
#: adminpages/paymentsettings.php:284 adminpages/advancedsettings.php:284
899
#: adminpages/advancedsettings.php:355 adminpages/advancedsettings.php:359
900
#: adminpages/advancedsettings.php:368 adminpages/advancedsettings.php:375
@@ -904,8 +921,9 @@ msgstr ""
904
#: adminpages/pagesettings.php:295 adminpages/pagesettings.php:310
905
#: adminpages/pagesettings.php:315 adminpages/paymentsettings.php:238
906
#: adminpages/paymentsettings.php:250 adminpages/paymentsettings.php:267
907
- #: adminpages/paymentsettings.php:485 adminpages/paymentsettings.php:526
908
- #: adminpages/paymentsettings.php:532 adminpages/paymentsettings.php:534
909
msgid "Save Settings"
910
msgstr ""
911
@@ -998,12 +1016,12 @@ msgstr ""
998
#: adminpages/memberslist.php:112 adminpages/memberslist.php:145
999
#: adminpages/memberslist.php:155 adminpages/memberslist.php:165
1000
#: pages/account.php:51 pages/account.php:55 pages/account.php:76
1001
- #: pages/checkout.php:167 pages/checkout.php:168 pages/checkout.php:171
1002
- #: pages/checkout.php:173 pages/checkout.php:175 pages/checkout.php:180
1003
- #: pages/checkout.php:182 pages/checkout.php:184 pages/checkout.php:191
1004
- #: pages/checkout.php:194 shortcodes/pmpro_account.php:105
1005
- #: shortcodes/pmpro_account.php:107 shortcodes/pmpro_account.php:108
1006
- #: shortcodes/pmpro_account.php:110
1007
msgid "Username"
1008
msgstr ""
1009
@@ -1078,11 +1096,12 @@ msgstr ""
1078
#: adminpages/orders.php:337 adminpages/orders.php:349
1079
#: adminpages/orders.php:366 adminpages/orders.php:380
1080
#: adminpages/orders.php:391 adminpages/orders.php:401
1081
- #: adminpages/orders.php:419 adminpages/orders.php:598
1082
- #: adminpages/orders.php:901 adminpages/orders.php:911
1083
- #: adminpages/orders.php:938 adminpages/orders.php:967
1084
- #: adminpages/orders.php:1104 adminpages/orders.php:1135
1085
- #: adminpages/orders.php:1141 adminpages/orders.php:1232
1086
#: adminpages/orders.php:1353
1087
msgid "Code"
1088
msgstr ""
@@ -1095,11 +1114,12 @@ msgstr ""
1095
#: adminpages/orders.php:912 adminpages/orders.php:939
1096
#: adminpages/orders.php:968 adminpages/orders.php:1105
1097
#: adminpages/orders.php:1136 adminpages/orders.php:1142
1098
- #: adminpages/orders.php:1233 adminpages/orders.php:1354
1099
- #: adminpages/paymentsettings.php:211 adminpages/paymentsettings.php:215
1100
- #: adminpages/paymentsettings.php:220 adminpages/reports/login.php:141
1101
- #: adminpages/reports/login.php:143 adminpages/reports/login.php:159
1102
- #: adminpages/reports/login.php:163 adminpages/reports/login.php:179
1103
#: classes/gateways/class.pmprogateway_payflowpro.php:116
1104
msgid "User"
1105
msgstr ""
@@ -1112,12 +1132,13 @@ msgstr ""
1112
#: pages/account.php:92 pages/billing.php:16 pages/billing.php:25
1113
#: pages/billing.php:27 pages/billing.php:28 pages/billing.php:30
1114
#: pages/billing.php:41 pages/billing.php:44 pages/billing.php:45
1115
- #: pages/cancel.php:52 pages/cancel.php:60 pages/cancel.php:61
1116
- #: pages/invoice.php:89 pages/invoice.php:102 pages/invoice.php:103
1117
- #: pages/invoice.php:109 pages/levels.php:13 pages/levels.php:35
1118
- #: shortcodes/pmpro_account.php:43 shortcodes/pmpro_account.php:44
1119
- #: shortcodes/pmpro_account.php:123 shortcodes/pmpro_account.php:125
1120
- #: shortcodes/pmpro_account.php:126 shortcodes/pmpro_account.php:128
1121
msgid "Level"
1122
msgstr ""
1123
@@ -1130,11 +1151,12 @@ msgstr ""
1130
#: adminpages/orders.php:471 adminpages/orders.php:504
1131
#: adminpages/orders.php:535 adminpages/orders.php:546
1132
#: adminpages/orders.php:582 adminpages/orders.php:602
1133
- #: adminpages/orders.php:637 adminpages/orders.php:905
1134
- #: adminpages/orders.php:915 adminpages/orders.php:942
1135
- #: adminpages/orders.php:971 adminpages/orders.php:1108
1136
- #: adminpages/orders.php:1139 adminpages/orders.php:1145
1137
- #: adminpages/orders.php:1236 adminpages/orders.php:1357
1138
#: adminpages/templates/orders-email.php:64
1139
#: adminpages/templates/orders-print.php:93 includes/privacy.php:285
1140
#: pages/confirmation.php:96 pages/invoice.php:78 pages/invoice.php:79
@@ -1150,11 +1172,12 @@ msgstr ""
1150
#: adminpages/orders.php:495 adminpages/orders.php:524
1151
#: adminpages/orders.php:579 adminpages/orders.php:606
1152
#: adminpages/orders.php:610 adminpages/orders.php:621
1153
- #: adminpages/orders.php:667 adminpages/orders.php:722
1154
- #: adminpages/orders.php:909 adminpages/orders.php:919
1155
- #: adminpages/orders.php:946 adminpages/orders.php:975
1156
- #: adminpages/orders.php:1112 adminpages/orders.php:1143
1157
- #: adminpages/orders.php:1149 adminpages/orders.php:1240
1158
#: adminpages/orders.php:1361 includes/privacy.php:202 includes/privacy.php:309
1159
#: pages/invoice.php:29 shortcodes/pmpro_account.php:130
1160
msgid "Status"
@@ -1168,11 +1191,12 @@ msgstr ""
1168
#: adminpages/orders.php:565 adminpages/orders.php:594
1169
#: adminpages/orders.php:607 adminpages/orders.php:679
1170
#: adminpages/orders.php:710 adminpages/orders.php:721
1171
- #: adminpages/orders.php:770 adminpages/orders.php:825
1172
- #: adminpages/orders.php:910 adminpages/orders.php:920
1173
- #: adminpages/orders.php:947 adminpages/orders.php:976
1174
- #: adminpages/orders.php:1113 adminpages/orders.php:1144
1175
- #: adminpages/orders.php:1150 adminpages/orders.php:1241
1176
#: adminpages/orders.php:1362 pages/account.php:91 pages/invoice.php:87
1177
#: pages/invoice.php:100 pages/invoice.php:101 pages/invoice.php:105
1178
#: pages/invoice.php:107 shortcodes/pmpro_account.php:122
@@ -1188,7 +1212,8 @@ msgstr ""
1188
#: adminpages/orders.php:1008 adminpages/orders.php:1043
1189
#: adminpages/orders.php:1072 adminpages/orders.php:1228
1190
#: adminpages/orders.php:1262 adminpages/orders.php:1268
1191
- #: adminpages/orders.php:1383 adminpages/orders.php:1512
1192
msgid "No orders found."
1193
msgstr ""
1194
@@ -1198,13 +1223,15 @@ msgstr ""
1198
#: adminpages/orders.php:943 adminpages/orders.php:972
1199
#: adminpages/orders.php:1001 adminpages/orders.php:1141
1200
#: adminpages/orders.php:1172 adminpages/orders.php:1178
1201
- #: adminpages/orders.php:1273 adminpages/orders.php:1395
1202
msgid "deleted"
1203
msgstr ""
1204
1205
#: adminpages/dashboard.php:313 adminpages/orders.php:1347
1206
#: adminpages/dashboard.php:313 adminpages/dashboard.php:321
1207
- #: adminpages/orders.php:1275 adminpages/orders.php:1397
1208
msgid "none"
1209
msgstr ""
1210
@@ -1329,7 +1356,7 @@ msgid "Add New Discount Code"
1329
msgstr ""
1330
1331
#: adminpages/discountcodes.php:442 adminpages/discountcodes.php:746
1332
- #: adminpages/membershiplevels.php:346 adminpages/membershiplevels.php:741
1333
#: adminpages/memberslist.php:164 adminpages/orders.php:1307
1334
#: adminpages/reports/login.php:178 adminpages/templates/orders-email.php:46
1335
#: adminpages/templates/orders-print.php:75 adminpages/discountcodes.php:306
@@ -1352,13 +1379,14 @@ msgstr ""
1352
#: adminpages/membershiplevels.php:637 adminpages/membershiplevels.php:641
1353
#: adminpages/membershiplevels.php:653 adminpages/membershiplevels.php:663
1354
#: adminpages/membershiplevels.php:713 adminpages/membershiplevels.php:715
1355
- #: adminpages/memberslist.php:111 adminpages/memberslist.php:144
1356
- #: adminpages/memberslist.php:154 adminpages/memberslist.php:164
1357
- #: adminpages/orders.php:597 adminpages/orders.php:900
1358
- #: adminpages/orders.php:910 adminpages/orders.php:937
1359
- #: adminpages/orders.php:966 adminpages/orders.php:1103
1360
- #: adminpages/orders.php:1134 adminpages/orders.php:1140
1361
- #: adminpages/orders.php:1231 adminpages/orders.php:1352
1362
#: adminpages/reports/login.php:140 adminpages/reports/login.php:142
1363
#: adminpages/reports/login.php:158 adminpages/reports/login.php:162
1364
#: adminpages/reports/login.php:178 adminpages/templates/orders-email.php:46
@@ -1375,7 +1403,7 @@ msgstr ""
1375
#: adminpages/orders.php:333 adminpages/orders.php:344
1376
#: adminpages/orders.php:362 adminpages/orders.php:375
1377
#: adminpages/orders.php:386 adminpages/orders.php:394
1378
- #: adminpages/orders.php:412
1379
msgid "This will be generated when you save."
1380
msgstr ""
1381
@@ -1390,7 +1418,7 @@ msgstr ""
1390
1391
#: adminpages/discountcodes.php:503
1392
#: classes/gateways/class.pmprogateway_braintree.php:479
1393
- #: classes/gateways/class.pmprogateway_stripe.php:565 pages/billing.php:321
1394
#: pages/checkout.php:389 adminpages/discountcodes.php:367
1395
#: adminpages/discountcodes.php:370 adminpages/discountcodes.php:371
1396
#: adminpages/discountcodes.php:372 adminpages/discountcodes.php:377
@@ -1405,6 +1433,7 @@ msgstr ""
1405
#: classes/gateways/class.pmprogateway_braintree.php:361
1406
#: classes/gateways/class.pmprogateway_braintree.php:423
1407
#: classes/gateways/class.pmprogateway_braintree.php:459
1408
#: classes/gateways/class.pmprogateway_braintree.php:485
1409
#: classes/gateways/class.pmprogateway_braintree.php:486
1410
#: classes/gateways/class.pmprogateway_stripe.php:454
@@ -1417,6 +1446,7 @@ msgstr ""
1417
#: classes/gateways/class.pmprogateway_stripe.php:503
1418
#: classes/gateways/class.pmprogateway_stripe.php:521
1419
#: classes/gateways/class.pmprogateway_stripe.php:532
1420
#: classes/gateways/class.pmprogateway_stripe.php:570
1421
#: classes/gateways/class.pmprogateway_stripe.php:597
1422
#: classes/gateways/class.pmprogateway_stripe.php:598
@@ -1428,11 +1458,11 @@ msgstr ""
1428
#: pages/billing.php:253 pages/billing.php:262 pages/billing.php:265
1429
#: pages/billing.php:268 pages/billing.php:310 pages/billing.php:313
1430
#: pages/billing.php:316 pages/billing.php:317 pages/billing.php:319
1431
- #: pages/billing.php:342 pages/checkout.php:463 pages/checkout.php:471
1432
- #: pages/checkout.php:508 pages/checkout.php:524 pages/checkout.php:525
1433
- #: pages/checkout.php:532 pages/checkout.php:553 pages/checkout.php:562
1434
- #: pages/checkout.php:571 pages/checkout.php:575 pages/checkout.php:582
1435
- #: pages/checkout.php:585
1436
msgid "Expiration Date"
1437
msgstr ""
1438
@@ -1532,8 +1562,8 @@ msgid "Billing Amount"
1532
msgstr ""
1533
1534
#: adminpages/discountcodes.php:607 adminpages/discountcodes.php:661
1535
- #: adminpages/membershiplevels.php:435 adminpages/membershiplevels.php:537
1536
- #: classes/gateways/class.pmprogateway_stripe.php:608
1537
#: adminpages/discountcodes.php:446 adminpages/discountcodes.php:466
1538
#: adminpages/discountcodes.php:467 adminpages/discountcodes.php:468
1539
#: adminpages/discountcodes.php:473 adminpages/discountcodes.php:492
@@ -1561,6 +1591,7 @@ msgstr ""
1561
#: classes/gateways/class.pmprogateway_stripe.php:570
1562
#: classes/gateways/class.pmprogateway_stripe.php:588
1563
#: classes/gateways/class.pmprogateway_stripe.php:599
1564
#: classes/gateways/class.pmprogateway_stripe.php:637
1565
#: classes/gateways/class.pmprogateway_stripe.php:655
1566
#: classes/gateways/class.pmprogateway_stripe.php:664
@@ -1573,8 +1604,8 @@ msgid "Day(s)"
1573
msgstr ""
1574
1575
#: adminpages/discountcodes.php:607 adminpages/discountcodes.php:661
1576
- #: adminpages/membershiplevels.php:435 adminpages/membershiplevels.php:537
1577
- #: classes/gateways/class.pmprogateway_stripe.php:610
1578
#: adminpages/discountcodes.php:446 adminpages/discountcodes.php:466
1579
#: adminpages/discountcodes.php:467 adminpages/discountcodes.php:468
1580
#: adminpages/discountcodes.php:473 adminpages/discountcodes.php:492
@@ -1602,6 +1633,7 @@ msgstr ""
1602
#: classes/gateways/class.pmprogateway_stripe.php:570
1603
#: classes/gateways/class.pmprogateway_stripe.php:588
1604
#: classes/gateways/class.pmprogateway_stripe.php:599
1605
#: classes/gateways/class.pmprogateway_stripe.php:637
1606
#: classes/gateways/class.pmprogateway_stripe.php:655
1607
#: classes/gateways/class.pmprogateway_stripe.php:664
@@ -1614,8 +1646,8 @@ msgid "Month(s)"
1614
msgstr ""
1615
1616
#: adminpages/discountcodes.php:607 adminpages/discountcodes.php:661
1617
- #: adminpages/membershiplevels.php:435 adminpages/membershiplevels.php:537
1618
- #: classes/gateways/class.pmprogateway_stripe.php:609
1619
#: adminpages/discountcodes.php:446 adminpages/discountcodes.php:466
1620
#: adminpages/discountcodes.php:467 adminpages/discountcodes.php:468
1621
#: adminpages/discountcodes.php:473 adminpages/discountcodes.php:492
@@ -1643,6 +1675,7 @@ msgstr ""
1643
#: classes/gateways/class.pmprogateway_stripe.php:570
1644
#: classes/gateways/class.pmprogateway_stripe.php:588
1645
#: classes/gateways/class.pmprogateway_stripe.php:599
1646
#: classes/gateways/class.pmprogateway_stripe.php:637
1647
#: classes/gateways/class.pmprogateway_stripe.php:655
1648
#: classes/gateways/class.pmprogateway_stripe.php:664
@@ -1655,8 +1688,8 @@ msgid "Week(s)"
1655
msgstr ""
1656
1657
#: adminpages/discountcodes.php:607 adminpages/discountcodes.php:661
1658
- #: adminpages/membershiplevels.php:435 adminpages/membershiplevels.php:537
1659
- #: classes/gateways/class.pmprogateway_stripe.php:611
1660
#: adminpages/discountcodes.php:446 adminpages/discountcodes.php:466
1661
#: adminpages/discountcodes.php:467 adminpages/discountcodes.php:468
1662
#: adminpages/discountcodes.php:473 adminpages/discountcodes.php:492
@@ -1684,6 +1717,7 @@ msgstr ""
1684
#: classes/gateways/class.pmprogateway_stripe.php:570
1685
#: classes/gateways/class.pmprogateway_stripe.php:588
1686
#: classes/gateways/class.pmprogateway_stripe.php:599
1687
#: classes/gateways/class.pmprogateway_stripe.php:637
1688
#: classes/gateways/class.pmprogateway_stripe.php:655
1689
#: classes/gateways/class.pmprogateway_stripe.php:664
@@ -1766,7 +1800,7 @@ msgstr ""
1766
msgid "Check to add a custom trial period."
1767
msgstr ""
1768
1769
- #: adminpages/discountcodes.php:633 adminpages/membershiplevels.php:485
1770
#: adminpages/discountcodes.php:469 adminpages/discountcodes.php:472
1771
#: adminpages/discountcodes.php:492 adminpages/discountcodes.php:493
1772
#: adminpages/discountcodes.php:494 adminpages/discountcodes.php:499
@@ -1780,7 +1814,7 @@ msgstr ""
1780
msgid "Trial Billing Amount"
1781
msgstr ""
1782
1783
- #: adminpages/discountcodes.php:644 adminpages/membershiplevels.php:496
1784
#: adminpages/discountcodes.php:472 adminpages/discountcodes.php:475
1785
#: adminpages/discountcodes.php:503 adminpages/discountcodes.php:504
1786
#: adminpages/discountcodes.php:505 adminpages/discountcodes.php:510
@@ -1794,7 +1828,7 @@ msgstr ""
1794
msgid "for the first"
1795
msgstr ""
1796
1797
- #: adminpages/discountcodes.php:646 adminpages/membershiplevels.php:498
1798
#: adminpages/discountcodes.php:474 adminpages/discountcodes.php:477
1799
#: adminpages/discountcodes.php:505 adminpages/discountcodes.php:506
1800
#: adminpages/discountcodes.php:507 adminpages/discountcodes.php:512
@@ -1808,7 +1842,7 @@ msgstr ""
1808
msgid "subscription payments"
1809
msgstr ""
1810
1811
- #: adminpages/discountcodes.php:651 adminpages/membershiplevels.php:527
1812
#: adminpages/discountcodes.php:479 adminpages/discountcodes.php:482
1813
#: adminpages/discountcodes.php:510 adminpages/discountcodes.php:511
1814
#: adminpages/discountcodes.php:512 adminpages/discountcodes.php:517
@@ -1822,7 +1856,7 @@ msgstr ""
1822
msgid "Membership Expiration"
1823
msgstr ""
1824
1825
- #: adminpages/discountcodes.php:652 adminpages/membershiplevels.php:528
1826
#: adminpages/discountcodes.php:483 adminpages/discountcodes.php:511
1827
#: adminpages/discountcodes.php:512 adminpages/discountcodes.php:513
1828
#: adminpages/discountcodes.php:518 adminpages/discountcodes.php:591
@@ -1836,7 +1870,7 @@ msgstr ""
1836
msgid "Check this to set when membership access expires."
1837
msgstr ""
1838
1839
- #: adminpages/discountcodes.php:656 adminpages/membershiplevels.php:532
1840
#: adminpages/discountcodes.php:484 adminpages/discountcodes.php:487
1841
#: adminpages/discountcodes.php:515 adminpages/discountcodes.php:516
1842
#: adminpages/discountcodes.php:517 adminpages/discountcodes.php:522
@@ -1850,7 +1884,7 @@ msgstr ""
1850
msgid "Expires In"
1851
msgstr ""
1852
1853
- #: adminpages/discountcodes.php:669 adminpages/membershiplevels.php:545
1854
#: adminpages/discountcodes.php:500 adminpages/discountcodes.php:528
1855
#: adminpages/discountcodes.php:529 adminpages/discountcodes.php:530
1856
#: adminpages/discountcodes.php:535 adminpages/discountcodes.php:608
@@ -1913,22 +1947,24 @@ msgstr ""
1913
msgid "Starts"
1914
msgstr ""
1915
1916
- #: adminpages/discountcodes.php:765 adminpages/membershiplevels.php:760
1917
- #: adminpages/orders.php:1352
1918
msgid "Edit"
1919
msgstr ""
1920
1921
- #: adminpages/discountcodes.php:768 adminpages/membershiplevels.php:761
1922
- #: adminpages/orders.php:1355
1923
msgid "Copy"
1924
msgstr ""
1925
1926
- #: adminpages/discountcodes.php:771 adminpages/discountcodes.php:617
1927
#: adminpages/discountcodes.php:622 adminpages/discountcodes.php:650
1928
#: adminpages/discountcodes.php:651 adminpages/discountcodes.php:652
1929
#: adminpages/discountcodes.php:653 adminpages/discountcodes.php:658
1930
- #: adminpages/discountcodes.php:738 adminpages/discountcodes.php:792
1931
- #: adminpages/discountcodes.php:805
1932
#, php-format
1933
msgid ""
1934
"Are you sure you want to delete the %s discount code? The subscriptions for "
@@ -1936,7 +1972,7 @@ msgid ""
1936
"code anymore."
1937
msgstr ""
1938
1939
- #: adminpages/discountcodes.php:775
1940
msgid " View Orders"
1941
msgstr ""
1942
@@ -1949,7 +1985,6 @@ msgid ""
1949
"address using the fields below."
1950
msgstr ""
1951
1952
- #: adminpages/emailsettings.php:86 adminpages/emailsettings.php:82
1953
#: adminpages/emailsettings.php:86
1954
msgid ""
1955
"To modify the appearance of system generated emails, add the files "
@@ -1958,7 +1993,8 @@ msgid ""
1958
"messages generated by Paid Memberships Pro. <a title=\"Paid Memberships Pro "
1959
"- Member Communications\" target=\"_blank\" href=\"http://www."
1960
"paidmembershipspro.com/documentation/member-communications/?"
1961
- "utm_source=plugin&utm_medium=banner&utm_campaign=admin_email_settings"
1962
"\">Click here to learn more about Paid Memberships Pro emails</a>."
1963
msgstr ""
1964
@@ -2061,34 +2097,39 @@ msgid ""
2061
"still get an email confirmation from PMPro after checkout.)"
2062
msgstr ""
2063
2064
- #: adminpages/functions.php:270 adminpages/orders.php:146
2065
- #: adminpages/orders.php:155 adminpages/orders.php:158
2066
msgid "Invoice emailed successfully."
2067
msgstr ""
2068
2069
- #: adminpages/functions.php:274 adminpages/orders.php:149
2070
- #: adminpages/orders.php:160 adminpages/orders.php:161
2071
msgid "Error emailing invoice."
2072
msgstr ""
2073
2074
- #: adminpages/functions.php:301 adminpages/orders.php:667
2075
- #: adminpages/orders.php:696 adminpages/orders.php:800
2076
- #: adminpages/orders.php:831 adminpages/orders.php:842
2077
- #: adminpages/orders.php:929 adminpages/orders.php:984
2078
msgid "Email Invoice"
2079
msgstr ""
2080
2081
- #: adminpages/functions.php:304 adminpages/orders.php:670
2082
- #: adminpages/orders.php:699 adminpages/orders.php:803
2083
- #: adminpages/orders.php:834 adminpages/orders.php:845
2084
- #: adminpages/orders.php:932 adminpages/orders.php:987
2085
msgid "Send an invoice for this order to: "
2086
msgstr ""
2087
2088
- #: adminpages/functions.php:306 adminpages/orders.php:672
2089
- #: adminpages/orders.php:701 adminpages/orders.php:805
2090
- #: adminpages/orders.php:836 adminpages/orders.php:847
2091
- #: adminpages/orders.php:934 adminpages/orders.php:989
2092
msgid "Send Email"
2093
msgstr ""
2094
@@ -2165,7 +2206,7 @@ msgstr ""
2165
msgid "Add New Membership Level"
2166
msgstr ""
2167
2168
- #: adminpages/membershiplevels.php:353 adminpages/membershiplevels.php:742
2169
#: adminpages/reports/login.php:180 adminpages/membershiplevels.php:291
2170
#: adminpages/membershiplevels.php:293 adminpages/membershiplevels.php:295
2171
#: adminpages/membershiplevels.php:319 adminpages/membershiplevels.php:329
@@ -2177,9 +2218,10 @@ msgstr ""
2177
#: adminpages/membershiplevels.php:637 adminpages/membershiplevels.php:638
2178
#: adminpages/membershiplevels.php:642 adminpages/membershiplevels.php:654
2179
#: adminpages/membershiplevels.php:664 adminpages/membershiplevels.php:714
2180
- #: adminpages/membershiplevels.php:716 adminpages/reports/login.php:142
2181
- #: adminpages/reports/login.php:144 adminpages/reports/login.php:160
2182
- #: adminpages/reports/login.php:164 adminpages/reports/login.php:180
2183
msgid "Name"
2184
msgstr ""
2185
@@ -2195,7 +2237,7 @@ msgstr ""
2195
msgid "Check to include this message in the membership confirmation email."
2196
msgstr ""
2197
2198
- #: adminpages/membershiplevels.php:396 adminpages/membershiplevels.php:743
2199
#: adminpages/membershiplevels.php:333 adminpages/membershiplevels.php:335
2200
#: adminpages/membershiplevels.php:337 adminpages/membershiplevels.php:338
2201
#: adminpages/membershiplevels.php:361 adminpages/membershiplevels.php:371
@@ -2205,12 +2247,12 @@ msgstr ""
2205
#: adminpages/membershiplevels.php:638 adminpages/membershiplevels.php:639
2206
#: adminpages/membershiplevels.php:643 adminpages/membershiplevels.php:655
2207
#: adminpages/membershiplevels.php:665 adminpages/membershiplevels.php:715
2208
- #: adminpages/membershiplevels.php:717
2209
msgid "Billing Details"
2210
msgstr ""
2211
2212
#: adminpages/membershiplevels.php:431
2213
- #: classes/gateways/class.pmprogateway_stripe.php:742
2214
#: adminpages/membershiplevels.php:349 adminpages/membershiplevels.php:351
2215
#: adminpages/membershiplevels.php:370 adminpages/membershiplevels.php:372
2216
#: adminpages/membershiplevels.php:373 adminpages/membershiplevels.php:396
@@ -2227,6 +2269,7 @@ msgstr ""
2227
#: classes/gateways/class.pmprogateway_stripe.php:686
2228
#: classes/gateways/class.pmprogateway_stripe.php:697
2229
#: classes/gateways/class.pmprogateway_stripe.php:735
2230
#: classes/gateways/class.pmprogateway_stripe.php:750
2231
#: classes/gateways/class.pmprogateway_stripe.php:762
2232
#: classes/gateways/class.pmprogateway_stripe.php:769
@@ -2273,9 +2316,11 @@ msgstr ""
2273
#: adminpages/membershiplevels.php:450 adminpages/membershiplevels.php:453
2274
#: adminpages/membershiplevels.php:455 adminpages/paymentsettings.php:170
2275
#: adminpages/paymentsettings.php:174 adminpages/paymentsettings.php:179
2276
#: classes/gateways/class.pmprogateway_cybersource.php:101
2277
#: classes/gateways/class.pmprogateway_paypal.php:118
2278
#: classes/gateways/class.pmprogateway_paypal.php:130
2279
#: classes/gateways/class.pmprogateway_paypalexpress.php:123
2280
#: classes/gateways/class.pmprogateway_paypalexpress.php:133
2281
#: classes/gateways/class.pmprogateway_paypalexpress.php:145
@@ -2312,7 +2357,15 @@ msgid ""
2312
"trials by setting an initial payment different from the billing amount."
2313
msgstr ""
2314
2315
- #: adminpages/membershiplevels.php:501 adminpages/membershiplevels.php:406
2316
#: adminpages/membershiplevels.php:412 adminpages/membershiplevels.php:414
2317
#: adminpages/membershiplevels.php:441 adminpages/membershiplevels.php:443
2318
#: adminpages/membershiplevels.php:444 adminpages/membershiplevels.php:465
@@ -2322,7 +2375,7 @@ msgid ""
2322
"Stripe integration currently does not support trial amounts greater than $0."
2323
msgstr ""
2324
2325
- #: adminpages/membershiplevels.php:505 adminpages/membershiplevels.php:410
2326
#: adminpages/membershiplevels.php:416 adminpages/membershiplevels.php:418
2327
#: adminpages/membershiplevels.php:445 adminpages/membershiplevels.php:447
2328
#: adminpages/membershiplevels.php:448 adminpages/membershiplevels.php:469
@@ -2333,7 +2386,7 @@ msgid ""
2333
"$0."
2334
msgstr ""
2335
2336
- #: adminpages/membershiplevels.php:509 adminpages/membershiplevels.php:414
2337
#: adminpages/membershiplevels.php:420 adminpages/membershiplevels.php:422
2338
#: adminpages/membershiplevels.php:449 adminpages/membershiplevels.php:451
2339
#: adminpages/membershiplevels.php:452 adminpages/membershiplevels.php:473
@@ -2343,7 +2396,7 @@ msgid ""
2343
"Payflow integration currently does not support trial amounts greater than $0."
2344
msgstr ""
2345
2346
- #: adminpages/membershiplevels.php:518 adminpages/membershiplevels.php:422
2347
#: adminpages/membershiplevels.php:428 adminpages/membershiplevels.php:430
2348
#: adminpages/membershiplevels.php:457 adminpages/membershiplevels.php:458
2349
#: adminpages/membershiplevels.php:460 adminpages/membershiplevels.php:461
@@ -2352,7 +2405,7 @@ msgstr ""
2352
msgid "Other Settings"
2353
msgstr ""
2354
2355
- #: adminpages/membershiplevels.php:522 adminpages/membershiplevels.php:426
2356
#: adminpages/membershiplevels.php:432 adminpages/membershiplevels.php:434
2357
#: adminpages/membershiplevels.php:461 adminpages/membershiplevels.php:462
2358
#: adminpages/membershiplevels.php:464 adminpages/membershiplevels.php:465
@@ -2361,7 +2414,7 @@ msgstr ""
2361
msgid "Disable New Signups"
2362
msgstr ""
2363
2364
- #: adminpages/membershiplevels.php:523 adminpages/membershiplevels.php:427
2365
#: adminpages/membershiplevels.php:433 adminpages/membershiplevels.php:435
2366
#: adminpages/membershiplevels.php:462 adminpages/membershiplevels.php:463
2367
#: adminpages/membershiplevels.php:465 adminpages/membershiplevels.php:466
@@ -2372,7 +2425,15 @@ msgid ""
2372
"registration."
2373
msgstr ""
2374
2375
- #: adminpages/membershiplevels.php:548 adminpages/membershiplevels.php:546
2376
#: adminpages/membershiplevels.php:548
2377
#, php-format
2378
msgid ""
@@ -2382,7 +2443,7 @@ msgid ""
2382
"information, <a target=\"_blank\" href=\"%s\">see our post here</a>."
2383
msgstr ""
2384
2385
- #: adminpages/membershiplevels.php:572 adminpages/membershiplevels.php:457
2386
#: adminpages/membershiplevels.php:463 adminpages/membershiplevels.php:465
2387
#: adminpages/membershiplevels.php:492 adminpages/membershiplevels.php:493
2388
#: adminpages/membershiplevels.php:495 adminpages/membershiplevels.php:496
@@ -2391,14 +2452,14 @@ msgstr ""
2391
msgid "Content Settings"
2392
msgstr ""
2393
2394
- #: adminpages/membershiplevels.php:588
2395
#, php-format
2396
msgid ""
2397
"Non-members will not see posts in these categories. You can <a href=\"%s\" "
2398
"title=\"Advanced Settings\" target=\"_blank\">update this setting here</a>."
2399
msgstr ""
2400
2401
- #: adminpages/membershiplevels.php:592
2402
#, php-format
2403
msgid ""
2404
"Non-members will see the title and excerpt for posts in these categories. "
@@ -2406,7 +2467,7 @@ msgid ""
2406
"this setting here</a>."
2407
msgstr ""
2408
2409
- #: adminpages/membershiplevels.php:595
2410
#, php-format
2411
msgid ""
2412
"Non-members will see the title only for posts in these categories. You can "
@@ -2414,33 +2475,35 @@ msgid ""
2414
"setting here</a>."
2415
msgstr ""
2416
2417
- #: adminpages/membershiplevels.php:602 adminpages/membershiplevels.php:461
2418
#: adminpages/membershiplevels.php:467 adminpages/membershiplevels.php:469
2419
#: adminpages/membershiplevels.php:496 adminpages/membershiplevels.php:497
2420
#: adminpages/membershiplevels.php:499 adminpages/membershiplevels.php:500
2421
#: adminpages/membershiplevels.php:521 adminpages/membershiplevels.php:531
2422
#: adminpages/membershiplevels.php:574 adminpages/membershiplevels.php:576
2423
msgid "Categories"
2424
msgstr ""
2425
2426
- #: adminpages/membershiplevels.php:610 adminpages/membershiplevels.php:505
2427
#: adminpages/membershiplevels.php:507 adminpages/membershiplevels.php:516
2428
#: adminpages/membershiplevels.php:517 adminpages/membershiplevels.php:529
2429
#: adminpages/membershiplevels.php:539 adminpages/membershiplevels.php:582
2430
- #: adminpages/membershiplevels.php:584
2431
msgid "Save Level"
2432
msgstr ""
2433
2434
- #: adminpages/membershiplevels.php:611 adminpages/orders.php:939
2435
#: pages/billing.php:371 pages/cancel.php:83 shortcodes/pmpro_account.php:72
2436
#: adminpages/membershiplevels.php:506 adminpages/membershiplevels.php:508
2437
#: adminpages/membershiplevels.php:517 adminpages/membershiplevels.php:518
2438
#: adminpages/membershiplevels.php:530 adminpages/membershiplevels.php:540
2439
#: adminpages/membershiplevels.php:583 adminpages/membershiplevels.php:585
2440
- #: adminpages/orders.php:511 adminpages/orders.php:561
2441
- #: adminpages/orders.php:633 adminpages/orders.php:662
2442
- #: adminpages/orders.php:765 adminpages/orders.php:796
2443
- #: adminpages/orders.php:807 adminpages/orders.php:894
2444
#: adminpages/orders.php:949 pages/account.php:44 pages/billing.php:295
2445
#: pages/billing.php:299 pages/billing.php:330 pages/billing.php:339
2446
#: pages/billing.php:342 pages/billing.php:344 pages/billing.php:348
@@ -2452,7 +2515,7 @@ msgstr ""
2452
msgid "Cancel"
2453
msgstr ""
2454
2455
- #: adminpages/membershiplevels.php:722 adminpages/membershiplevels.php:725
2456
#: adminpages/membershiplevels.php:493 adminpages/membershiplevels.php:496
2457
#: adminpages/membershiplevels.php:499 adminpages/membershiplevels.php:501
2458
#: adminpages/membershiplevels.php:502 adminpages/membershiplevels.php:504
@@ -2467,29 +2530,31 @@ msgstr ""
2467
#: adminpages/membershiplevels.php:644 adminpages/membershiplevels.php:647
2468
#: adminpages/membershiplevels.php:694 adminpages/membershiplevels.php:696
2469
#: adminpages/membershiplevels.php:697 adminpages/membershiplevels.php:699
2470
msgid "Search Levels"
2471
msgstr ""
2472
2473
- #: adminpages/membershiplevels.php:728 adminpages/membershiplevels.php:490
2474
#: adminpages/membershiplevels.php:496 adminpages/membershiplevels.php:498
2475
#: adminpages/membershiplevels.php:525 adminpages/membershiplevels.php:526
2476
#: adminpages/membershiplevels.php:569 adminpages/membershiplevels.php:607
2477
#: adminpages/membershiplevels.php:609 adminpages/membershiplevels.php:618
2478
#: adminpages/membershiplevels.php:619 adminpages/membershiplevels.php:631
2479
#: adminpages/membershiplevels.php:641 adminpages/membershiplevels.php:700
2480
- #: adminpages/membershiplevels.php:702
2481
msgid "Add New Level"
2482
msgstr ""
2483
2484
- #: adminpages/membershiplevels.php:731 adminpages/membershiplevels.php:579
2485
#: adminpages/membershiplevels.php:619 adminpages/membershiplevels.php:621
2486
#: adminpages/membershiplevels.php:630 adminpages/membershiplevels.php:631
2487
#: adminpages/membershiplevels.php:643 adminpages/membershiplevels.php:653
2488
#: adminpages/membershiplevels.php:703 adminpages/membershiplevels.php:705
2489
msgid "Drag and drop membership levels to reorder them on the Levels page."
2490
msgstr ""
2491
2492
- #: adminpages/membershiplevels.php:744 pages/cancel.php:61
2493
#: pages/confirmation.php:81 pages/invoice.php:64
2494
#: shortcodes/pmpro_account.php:46 adminpages/membershiplevels.php:510
2495
#: adminpages/membershiplevels.php:516 adminpages/membershiplevels.php:518
@@ -2499,15 +2564,16 @@ msgstr ""
2499
#: adminpages/membershiplevels.php:640 adminpages/membershiplevels.php:644
2500
#: adminpages/membershiplevels.php:656 adminpages/membershiplevels.php:666
2501
#: adminpages/membershiplevels.php:716 adminpages/membershiplevels.php:718
2502
- #: pages/account.php:20 pages/cancel.php:53 pages/cancel.php:61
2503
- #: pages/cancel.php:62 pages/confirmation.php:81 pages/confirmation.php:83
2504
- #: pages/confirmation.php:84 pages/confirmation.php:89 pages/invoice.php:63
2505
- #: pages/invoice.php:64 pages/invoice.php:68 pages/invoice.php:70
2506
- #: shortcodes/pmpro_account.php:45 shortcodes/pmpro_account.php:46
2507
msgid "Expiration"
2508
msgstr ""
2509
2510
- #: adminpages/membershiplevels.php:745 adminpages/membershiplevels.php:511
2511
#: adminpages/membershiplevels.php:517 adminpages/membershiplevels.php:519
2512
#: adminpages/membershiplevels.php:545 adminpages/membershiplevels.php:546
2513
#: adminpages/membershiplevels.php:587 adminpages/membershiplevels.php:633
@@ -2515,10 +2581,11 @@ msgstr ""
2515
#: adminpages/membershiplevels.php:641 adminpages/membershiplevels.php:645
2516
#: adminpages/membershiplevels.php:657 adminpages/membershiplevels.php:667
2517
#: adminpages/membershiplevels.php:717 adminpages/membershiplevels.php:719
2518
msgid "Allow Signups"
2519
msgstr ""
2520
2521
- #: adminpages/membershiplevels.php:762 adminpages/membershiplevels.php:566
2522
#: adminpages/membershiplevels.php:572 adminpages/membershiplevels.php:574
2523
#: adminpages/membershiplevels.php:580 adminpages/membershiplevels.php:601
2524
#: adminpages/membershiplevels.php:660 adminpages/membershiplevels.php:662
@@ -2526,13 +2593,14 @@ msgstr ""
2526
#: adminpages/membershiplevels.php:670 adminpages/membershiplevels.php:674
2527
#: adminpages/membershiplevels.php:686 adminpages/membershiplevels.php:696
2528
#: adminpages/membershiplevels.php:746 adminpages/membershiplevels.php:748
2529
#, php-format
2530
msgid ""
2531
"Are you sure you want to delete membership level %s? All subscriptions will "
2532
"be cancelled."
2533
msgstr ""
2534
2535
- #: adminpages/membershiplevels.php:767 adminpages/membershiplevels.php:534
2536
#: adminpages/membershiplevels.php:540 adminpages/membershiplevels.php:542
2537
#: adminpages/membershiplevels.php:566 adminpages/membershiplevels.php:569
2538
#: adminpages/membershiplevels.php:646 adminpages/membershiplevels.php:648
@@ -2540,10 +2608,11 @@ msgstr ""
2540
#: adminpages/membershiplevels.php:656 adminpages/membershiplevels.php:660
2541
#: adminpages/membershiplevels.php:672 adminpages/membershiplevels.php:682
2542
#: adminpages/membershiplevels.php:732 adminpages/membershiplevels.php:734
2543
msgid "FREE"
2544
msgstr ""
2545
2546
- #: adminpages/membershiplevels.php:776 adminpages/membershiplevels.php:560
2547
#: adminpages/membershiplevels.php:566 adminpages/membershiplevels.php:568
2548
#: adminpages/membershiplevels.php:575 adminpages/membershiplevels.php:595
2549
#: adminpages/membershiplevels.php:655 adminpages/membershiplevels.php:657
@@ -2551,6 +2620,7 @@ msgstr ""
2551
#: adminpages/membershiplevels.php:665 adminpages/membershiplevels.php:669
2552
#: adminpages/membershiplevels.php:681 adminpages/membershiplevels.php:691
2553
#: adminpages/membershiplevels.php:741 adminpages/membershiplevels.php:743
2554
msgid "After"
2555
msgstr ""
2556
@@ -2567,7 +2637,8 @@ msgstr ""
2567
#: adminpages/orders.php:591 adminpages/orders.php:698
2568
#: adminpages/orders.php:727 adminpages/orders.php:833
2569
#: adminpages/orders.php:864 adminpages/orders.php:875
2570
- #: adminpages/orders.php:962 adminpages/orders.php:1018
2571
msgid "Export to CSV"
2572
msgstr ""
2573
@@ -2577,10 +2648,11 @@ msgstr ""
2577
#: adminpages/orders.php:603 adminpages/orders.php:710
2578
#: adminpages/orders.php:739 adminpages/orders.php:848
2579
#: adminpages/orders.php:879 adminpages/orders.php:890
2580
- #: adminpages/orders.php:981 adminpages/orders.php:1037
2581
- #: adminpages/reports/login.php:65 adminpages/reports/login.php:67
2582
- #: adminpages/reports/login.php:83 adminpages/reports/login.php:87
2583
- #: adminpages/reports/login.php:103 adminpages/reports/memberships.php:256
2584
#: adminpages/reports/memberships.php:263
2585
#: adminpages/reports/memberships.php:276
2586
#: adminpages/reports/memberships.php:292
@@ -2610,8 +2682,9 @@ msgstr ""
2610
#: adminpages/reports/sales.php:225 adminpages/reports/sales.php:226
2611
#: adminpages/reports/sales.php:242 adminpages/reports/sales.php:311
2612
#: classes/class.pmproemail.php:145 classes/class.pmproemail.php:147
2613
- #: classes/class.pmproemail.php:154 classes/class.pmproemail.php:189
2614
- #: classes/class.pmproemail.php:192 classes/class.pmproemail.php:199
2615
msgid "All Levels"
2616
msgstr ""
2617
@@ -2665,14 +2738,14 @@ msgstr ""
2665
#: pages/billing.php:62 pages/billing.php:71 pages/billing.php:74
2666
#: pages/billing.php:76 pages/billing.php:77 pages/billing.php:80
2667
#: pages/billing.php:100 pages/billing.php:103 pages/billing.php:104
2668
- #: pages/checkout.php:275 pages/checkout.php:283 pages/checkout.php:298
2669
- #: pages/checkout.php:300 pages/checkout.php:302 pages/checkout.php:311
2670
- #: pages/checkout.php:314 pages/checkout.php:317 pages/checkout.php:319
2671
- #: pages/checkout.php:321 pages/checkout.php:326 pages/checkout.php:329
2672
- #: pages/confirmation.php:59 pages/confirmation.php:61
2673
- #: pages/confirmation.php:66 pages/confirmation.php:67
2674
- #: pages/confirmation.php:69 pages/invoice.php:46 pages/invoice.php:48
2675
- #: pages/invoice.php:49
2676
msgid "Billing Address"
2677
msgstr ""
2678
@@ -2716,39 +2789,47 @@ msgstr ""
2716
msgid "All Users"
2717
msgstr ""
2718
2719
#: adminpages/orders.php:156 adminpages/orders.php:26 adminpages/orders.php:67
2720
- #: adminpages/orders.php:162 adminpages/orders.php:174
2721
- #: adminpages/orders.php:175
2722
msgid "Order deleted successfully."
2723
msgstr ""
2724
2725
#: adminpages/orders.php:159 adminpages/orders.php:31 adminpages/orders.php:72
2726
- #: adminpages/orders.php:165 adminpages/orders.php:177
2727
- #: adminpages/orders.php:180
2728
msgid "Error deleting order."
2729
msgstr ""
2730
2731
#: adminpages/orders.php:296 adminpages/orders.php:119
2732
#: adminpages/orders.php:169 adminpages/orders.php:270
2733
#: adminpages/orders.php:284 adminpages/orders.php:285
2734
- #: adminpages/orders.php:295 adminpages/orders.php:297
2735
- #: adminpages/orders.php:314
2736
msgid "Order saved successfully."
2737
msgstr ""
2738
2739
#: adminpages/orders.php:299 adminpages/orders.php:124
2740
#: adminpages/orders.php:174 adminpages/orders.php:275
2741
#: adminpages/orders.php:287 adminpages/orders.php:288
2742
- #: adminpages/orders.php:298 adminpages/orders.php:300
2743
- #: adminpages/orders.php:317
2744
msgid "Error updating order timestamp."
2745
msgstr ""
2746
2747
#: adminpages/orders.php:303 adminpages/orders.php:130
2748
#: adminpages/orders.php:180 adminpages/orders.php:281
2749
#: adminpages/orders.php:291 adminpages/orders.php:292
2750
- #: adminpages/orders.php:302 adminpages/orders.php:304
2751
- #: adminpages/orders.php:321
2752
msgid "Error saving order."
2753
msgstr ""
2754
@@ -2757,14 +2838,16 @@ msgstr ""
2757
#: adminpages/orders.php:317 adminpages/orders.php:321
2758
#: adminpages/orders.php:346 adminpages/orders.php:352
2759
#: adminpages/orders.php:362 adminpages/orders.php:364
2760
- #: adminpages/orders.php:382 classes/class.memberorder.php:743
2761
- #: classes/class.memberorder.php:746 classes/class.memberorder.php:763
2762
- #: classes/class.memberorder.php:814 classes/class.memberorder.php:859
2763
msgid "Order"
2764
msgstr ""
2765
2766
#: adminpages/orders.php:371 adminpages/orders.php:1361
2767
- #: pages/confirmation.php:49 pages/invoice.php:24 pages/confirmation.php:43
2768
#: pages/confirmation.php:49 pages/invoice.php:24
2769
msgid "Print"
2770
msgstr ""
@@ -2773,7 +2856,8 @@ msgstr ""
2773
#: adminpages/orders.php:247 adminpages/orders.php:319
2774
#: adminpages/orders.php:323 adminpages/orders.php:348
2775
#: adminpages/orders.php:354 adminpages/orders.php:364
2776
- #: adminpages/orders.php:366 adminpages/orders.php:384
2777
msgid "New Order"
2778
msgstr ""
2779
@@ -2781,7 +2865,8 @@ msgstr ""
2781
#: adminpages/orders.php:270 adminpages/orders.php:342
2782
#: adminpages/orders.php:359 adminpages/orders.php:371
2783
#: adminpages/orders.php:390 adminpages/orders.php:401
2784
- #: adminpages/orders.php:413 adminpages/orders.php:431
2785
msgid "Randomly generated for you."
2786
msgstr ""
2787
@@ -2789,7 +2874,8 @@ msgstr ""
2789
#: adminpages/orders.php:275 adminpages/orders.php:347
2790
#: adminpages/orders.php:364 adminpages/orders.php:376
2791
#: adminpages/orders.php:395 adminpages/orders.php:406
2792
- #: adminpages/orders.php:418 adminpages/orders.php:436