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 | ![]() |
Version | 2.1.2 |
Comparing to | |
See all releases |
Code changes from version 2.1 to 2.1.2
- CHANGELOG.txt +16 -0
- CONTRIBUTING.md +0 -49
- adminpages/addons.php +4 -4
- adminpages/admin_header.php +9 -4
- adminpages/dashboard.php +6 -6
- adminpages/discountcodes.php +5 -4
- adminpages/emailsettings.php +1 -1
- adminpages/membershiplevels.php +25 -3
- adminpages/memberslist.php +11 -0
- adminpages/orders-csv.php +1 -1
- adminpages/pagesettings.php +26 -3
- adminpages/paymentsettings.php +3 -3
- blocks/blocks.php +2 -2
- classes/gateways/class.pmprogateway_stripe.php +73 -32
- css/admin.css +1 -1
- includes/adminpages.php +13 -0
- includes/deprecated.php +14 -1
- includes/functions.php +2 -2
- includes/lib/Stripe/data/test.png +0 -0
- includes/lib/Stripe/lib/AttachedObject.php +0 -43
- includes/lib/Stripe/lib/ExternalAccount.php +0 -89
- includes/lib/Stripe/lib/JsonSerializable.php +0 -18
- includes/license.php +6 -14
- includes/sessions.php +6 -13
- js/paid-memberships-pro.js +0 -13
- js/pmpro-checkout.js +1 -1
- js/pmpro-stripe.js +13 -1
- languages/paid-memberships-pro.mo +0 -0
- languages/paid-memberships-pro.po +1287 -793
- languages/paid-memberships-pro.pot +1287 -793
- paid-memberships-pro.php +2 -2
- preheaders/billing.php +5 -0
- readme.txt +17 -1
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('
|
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('
|
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=
|
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
|
157 |
-
<a target="_blank" class="button-primary button-support" href="https://www.paidmembershipspro.com/pricing/?utm_source=plugin&utm_medium=
|
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=
|
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 »</a>', 'paid-memberships-pro' ), admin_url( '
|
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
|
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="
|
182 |
-
<p><a href="https://www.paidmembershipspro.com/membership-checkout/?level=20&utm_source=plugin&utm_medium=
|
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
|
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 »</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 »' , '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
|
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
|
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=
|
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
|
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
|
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
|
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> </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> </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=
|
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 |
-
|
111 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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( $
|
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' );?> & <?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
|
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 |
<?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=
|
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="
|
270 |
</td>
|
271 |
</tr>
|
272 |
<tr>
|
109 |
|
110 |
<h2><?php _e('Payment Gateway', 'paid-memberships-pro' );?> & <?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 |
<?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 |
-
'
|
1075 |
-
'
|
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->
|
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 |
-
'
|
1747 |
-
'
|
|
|
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
|
1995 |
-
if ( ! empty( $this->
|
1996 |
return true;
|
1997 |
}
|
1998 |
|
1999 |
-
$
|
2000 |
|
2001 |
-
if ( empty( $
|
2002 |
return false;
|
2003 |
}
|
2004 |
|
2005 |
-
$this->
|
2006 |
|
2007 |
return true;
|
2008 |
}
|
2009 |
|
2010 |
-
function
|
2011 |
|
2012 |
if ( ! empty( $order->payment_method_id ) ) {
|
2013 |
try {
|
2014 |
-
$
|
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( $
|
2028 |
return false;
|
2029 |
}
|
2030 |
|
2031 |
-
return $
|
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
|
2042 |
|
2043 |
if ( ! empty( $this->customer->invoice_settings->default_payment_method ) &&
|
2044 |
-
$this->customer->invoice_settings->default_payment_method === $this->
|
2045 |
return true;
|
2046 |
}
|
2047 |
|
2048 |
try {
|
2049 |
-
$this->
|
2050 |
-
$this->customer->invoice_settings->default_payment_method = $this->
|
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->
|
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->
|
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> </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: #
|
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 (
|
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
|
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="
|
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="
|
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="
|
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'] == '
|
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('
|
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 »</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> | <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 |
-
|
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').
|
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-
|
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:
|
37 |
-
#: includes/adminpages.php:55 includes/adminpages.php:
|
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:
|
|
|
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:
|
175 |
-
#: adminpages/membershiplevels.php:
|
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:
|
218 |
-
#: adminpages/orders.php:
|
219 |
-
#: adminpages/orders.php:
|
220 |
-
#:
|
221 |
-
#:
|
222 |
-
#: shortcodes/pmpro_account.php:
|
|
|
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:
|
392 |
-
#: includes/adminpages.php:
|
393 |
#: includes/adminpages.php:50 includes/adminpages.php:132
|
394 |
msgid "Dashboard"
|
395 |
msgstr ""
|
396 |
|
397 |
-
#: adminpages/admin_header.php:
|
398 |
-
#: includes/adminpages.php:
|
399 |
#: includes/adminpages.php:51 includes/adminpages.php:144
|
400 |
msgid "Members"
|
401 |
msgstr ""
|
402 |
|
403 |
-
#: adminpages/admin_header.php:
|
404 |
#: adminpages/orders.php:949 includes/adminpages.php:52
|
405 |
-
#: includes/adminpages.php:
|
406 |
-
#: adminpages/
|
407 |
-
#: adminpages/orders.php:
|
408 |
-
#: adminpages/orders.php:
|
409 |
-
#: adminpages/orders.php:
|
|
|
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:
|
419 |
-
#: includes/adminpages.php:
|
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:
|
429 |
-
#: includes/adminpages.php:
|
430 |
#: includes/adminpages.php:54 includes/adminpages.php:180
|
431 |
msgid "Settings"
|
432 |
msgstr ""
|
433 |
|
434 |
-
#: adminpages/admin_header.php:
|
|
|
|
|
|
|
|
|
|
|
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:
|
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/
|
456 |
-
#: adminpages/pagesettings.php:
|
457 |
-
#: adminpages/pagesettings.php:
|
458 |
-
#: includes/adminpages.php:
|
459 |
-
#: includes/adminpages.php:
|
460 |
-
#: includes/adminpages.php:
|
461 |
-
#: includes/adminpages.php:
|
462 |
-
#: includes/
|
463 |
-
#: includes/metaboxes.php:
|
|
|
464 |
msgid "Membership Levels"
|
465 |
msgstr ""
|
466 |
|
467 |
-
#: adminpages/admin_header.php:
|
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:
|
477 |
-
#: includes/adminpages.php:
|
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:
|
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:
|
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 & SSL"
|
500 |
msgstr ""
|
501 |
|
502 |
-
#: adminpages/admin_header.php:
|
503 |
msgid "Payment Gateway & SSL Settings"
|
504 |
msgstr ""
|
505 |
|
506 |
-
#: adminpages/admin_header.php:
|
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 |
-
#:
|
515 |
-
#:
|
516 |
-
#: shortcodes/pmpro_account.php:
|
|
|
517 |
msgid "Email"
|
518 |
msgstr ""
|
519 |
|
520 |
-
#: adminpages/admin_header.php:
|
521 |
-
#: includes/adminpages.php:
|
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:
|
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:
|
540 |
-
#: includes/adminpages.php:
|
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:
|
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/
|
707 |
-
#: adminpages/paymentsettings.php:
|
|
|
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
|
|
|
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:
|
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/
|
795 |
-
#: adminpages/paymentsettings.php:
|
|
|
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
|
|
|
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:
|
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:
|
908 |
-
#: adminpages/paymentsettings.php:
|
|
|
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:
|
1002 |
-
#: pages/checkout.php:
|
1003 |
-
#: pages/checkout.php:
|
1004 |
-
#: pages/checkout.php:
|
1005 |
-
#: shortcodes/pmpro_account.php:
|
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:
|
1082 |
-
#: adminpages/orders.php:
|
1083 |
-
#: adminpages/orders.php:
|
1084 |
-
#: adminpages/orders.php:
|
1085 |
-
#: adminpages/orders.php:
|
|
|
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:
|
1099 |
-
#: adminpages/
|
1100 |
-
#: adminpages/paymentsettings.php:
|
1101 |
-
#: adminpages/reports/login.php:
|
1102 |
-
#: adminpages/reports/login.php:
|
|
|
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/
|
1116 |
-
#: pages/
|
1117 |
-
#: pages/invoice.php:
|
1118 |
-
#:
|
1119 |
-
#: shortcodes/pmpro_account.php:
|
1120 |
-
#: shortcodes/pmpro_account.php:
|
|
|
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:
|
1134 |
-
#: adminpages/orders.php:
|
1135 |
-
#: adminpages/orders.php:
|
1136 |
-
#: adminpages/orders.php:
|
1137 |
-
#: adminpages/orders.php:
|
|
|
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:
|
1154 |
-
#: adminpages/orders.php:
|
1155 |
-
#: adminpages/orders.php:
|
1156 |
-
#: adminpages/orders.php:
|
1157 |
-
#: adminpages/orders.php:
|
|
|
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:
|
1172 |
-
#: adminpages/orders.php:
|
1173 |
-
#: adminpages/orders.php:
|
1174 |
-
#: adminpages/orders.php:
|
1175 |
-
#: adminpages/orders.php:
|
|
|
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:
|
|
|
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:
|
|
|
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:
|
|
|
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:
|
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/
|
1356 |
-
#: adminpages/memberslist.php:
|
1357 |
-
#: adminpages/
|
1358 |
-
#: adminpages/orders.php:
|
1359 |
-
#: adminpages/orders.php:
|
1360 |
-
#: adminpages/orders.php:
|
1361 |
-
#: adminpages/orders.php:
|
|
|
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:
|
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:
|
1432 |
-
#: pages/checkout.php:
|
1433 |
-
#: pages/checkout.php:
|
1434 |
-
#: pages/checkout.php:
|
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:
|
1536 |
-
#: classes/gateways/class.pmprogateway_stripe.php:
|
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:
|
1577 |
-
#: classes/gateways/class.pmprogateway_stripe.php:
|
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:
|
1618 |
-
#: classes/gateways/class.pmprogateway_stripe.php:
|
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:
|
1659 |
-
#: classes/gateways/class.pmprogateway_stripe.php:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
1917 |
-
#: adminpages/orders.php:1352
|
|
|
1918 |
msgid "Edit"
|
1919 |
msgstr ""
|
1920 |
|
1921 |
-
#: adminpages/discountcodes.php:
|
1922 |
-
#: adminpages/orders.php:1355
|
|
|
1923 |
msgid "Copy"
|
1924 |
msgstr ""
|
1925 |
|
1926 |
-
#: adminpages/discountcodes.php:
|
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:
|
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=
|
|
|
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/
|
2065 |
-
#: adminpages/orders.php:
|
|
|
2066 |
msgid "Invoice emailed successfully."
|
2067 |
msgstr ""
|
2068 |
|
2069 |
-
#: adminpages/functions.php:274 adminpages/
|
2070 |
-
#: adminpages/orders.php:
|
|
|
2071 |
msgid "Error emailing invoice."
|
2072 |
msgstr ""
|
2073 |
|
2074 |
-
#: adminpages/functions.php:301 adminpages/
|
2075 |
-
#: adminpages/orders.php:
|
2076 |
-
#: adminpages/orders.php:
|
2077 |
-
#: adminpages/orders.php:
|
|
|
2078 |
msgid "Email Invoice"
|
2079 |
msgstr ""
|
2080 |
|
2081 |
-
#: adminpages/functions.php:304 adminpages/
|
2082 |
-
#: adminpages/orders.php:
|
2083 |
-
#: adminpages/orders.php:
|
2084 |
-
#: adminpages/orders.php:
|
|
|
2085 |
msgid "Send an invoice for this order to: "
|
2086 |
msgstr ""
|
2087 |
|
2088 |
-
#: adminpages/functions.php:306 adminpages/
|
2089 |
-
#: adminpages/orders.php:
|
2090 |
-
#: adminpages/orders.php:
|
2091 |
-
#: adminpages/orders.php:
|
|
|
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:
|
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/
|
2181 |
-
#: adminpages/reports/login.php:
|
2182 |
-
#: adminpages/reports/login.php:
|
|
|
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:
|
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:
|
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:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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:
|
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:
|
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:
|
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:
|
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/
|
2441 |
-
#: adminpages/orders.php:
|
2442 |
-
#: adminpages/orders.php:
|
2443 |
-
#: adminpages/orders.php:
|
|
|
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:
|
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:
|
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:
|
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:
|
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 |
-
#:
|
2503 |
-
#: pages/cancel.php:
|
2504 |
-
#: pages/confirmation.php:
|
2505 |
-
#: pages/
|
2506 |
-
#:
|
|
|
2507 |
msgid "Expiration"
|
2508 |
msgstr ""
|
2509 |
|
2510 |
-
#: adminpages/membershiplevels.php:
|
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:
|
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:
|
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:
|
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:
|
|
|
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:
|
2581 |
-
#: adminpages/
|
2582 |
-
#: adminpages/reports/login.php:
|
2583 |
-
#: adminpages/reports/login.php:
|
|
|
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:
|
2614 |
-
#: classes/class.pmproemail.php:
|
|
|
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/
|
2669 |
-
#: pages/checkout.php:
|
2670 |
-
#: pages/checkout.php:
|
2671 |
-
#: pages/checkout.php:
|
2672 |
-
#: pages/
|
2673 |
-
#: pages/confirmation.php:
|
2674 |
-
#: pages/confirmation.php:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
2761 |
-
#: classes/class.memberorder.php:
|
2762 |
-
#: classes/class.memberorder.php:
|
|
|
2763 |
msgid "Order"
|
2764 |
msgstr ""
|
2765 |
|
2766 |
#: adminpages/orders.php:371 adminpages/orders.php:1361
|
2767 |
-
#: pages/confirmation.php:49 pages/invoice.php:24
|
|
|
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:
|
|
|
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:
|
|
|
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:
|