Version Description
- Fixed the revenue/sales report to accurately track recurring sales and reports from earlier years.
- Now trimming whitespace on any text field updated through the PMPro settings pages. This prevents issues like those that come up if you have whitespace in your Stripe API key, etc. Thanks, Scott Sousa.
- Added discount code use tracking for PayPal Standard. Saving the use before the user goes to PayPal to pay.
- Added discount code id and code columns to orders and members list CSV exports.
- Changed default capability check to 'manage_options' (administrator), and added a filter named 'pmpro_edit_member_capability' to allow dev's to change this capability. Thanks, Scott Sousa.
- Now removing empty (only includes the PMPro shortcode) PMPro pages when uninstalling PMPro. Thanks, Scott Sousa.
- Now adding classes to the body tag (if the theme supports it through the body_class() function) to aid in design. Classes are pmpro-account, pmpro-billing, pmpro-cancel, pmpro-checkout, pmpro-confirmation, pmpro-invoice.
- Adding $0 orders for free level checkouts (will help reporting).
- Added pmpro_invoice_bullets_top and pmpro_invoice_bullets_bottom hooks to confirmation and invoice pages. Passes $pmpro_invoice.
- Fixed members list CSV export for lists with search queries.
- Added is_ssl() check to pmpro_https_filter so PMPro will add HTTPS to URLs even if the $besecure global hasn't been set yet. Thanks, Andrew Calaio at wpcurve.com.
- Removed the pmpro_cron_trial_ending_warnings daily cron so trial ending emails will no longer go out. The function pmpro_cron_trial_ending_warnings() is still there if you want to call it yourself. There were issues on some sites where these emails were going out erroneously and also many ways of doing "custom trials" including setting the subscription start date back a certain number of days was not picked up as a trial by this script anyway.
- Added the pmpro_cron_credit_card_expiring daily cron to send out warnings a month or so before credit cards on record are set to expire.
- Updated pmpro_has_membership_access to return true if the $post_id is empty or cannot be found. This fixes issues where member warnings were being added to non-pages, e.g. the bbPress forums archive. To lock down "pages" like this, you'll need to use custom coding, URL detection, etc. Thanks, Scott Sousa (scottsousa on GitHub and WP.org) from Slocum Studio.
Download this release
Release Info
Developer | strangerstudios |
Plugin | Paid Memberships Pro |
Version | 1.7.2 |
Comparing to | |
See all releases |
Code changes from version 1.7.14 to 1.7.2
- adminpages/addons.php +1 -1
- adminpages/addons/images/pmpro-bbpress.jpg +0 -0
- adminpages/addons/images/pmpro-constant-contact.gif +0 -0
- adminpages/addons/images/pmpro-email-templates.gif +0 -0
- adminpages/addons/images/pmpro-woocommerce.gif +0 -0
- adminpages/addons/pmpro-addon-packages.php +2 -2
- adminpages/addons/pmpro-affiliates.php +2 -2
- adminpages/addons/pmpro-aweber.php +2 -2
- adminpages/addons/pmpro-bbpress.php +6 -9
- adminpages/addons/pmpro-constant-contact.php +0 -31
- adminpages/addons/pmpro-email-templates.php +0 -31
- adminpages/addons/pmpro-expiration.php +8 -10
- adminpages/addons/pmpro-freeaddress.php +5 -7
- adminpages/addons/pmpro-infusionsoft.php +4 -4
- adminpages/addons/pmpro-mailchimp.php +3 -3
- adminpages/addons/pmpro-network-subsite.php +0 -31
- adminpages/addons/pmpro-post-affiliate-pro.php +1 -1
- adminpages/addons/pmpro-register-helper.php +1 -1
- adminpages/addons/pmpro-series.php +1 -1
- adminpages/addons/pmpro-shipping.php +1 -1
- adminpages/addons/pmpro-stripe-lite.php +30 -0
- adminpages/addons/pmpro-user-pages.php +1 -1
- adminpages/addons/pmpro-woocommerce.php +0 -31
- adminpages/addons/pmpro-wp-affiliate.php +3 -5
- adminpages/addons/tml.php +1 -1
- adminpages/addons/wp-bouncer.php +2 -2
- adminpages/admin_header.php +1 -22
- adminpages/advancedsettings.php +12 -96
- adminpages/dashboard.php +2 -2
- adminpages/discountcodes.php +631 -636
- adminpages/emailsettings.php +152 -181
- adminpages/functions.php +6 -71
- adminpages/membershiplevels.php +28 -36
- adminpages/memberslist-csv.php +32 -95
- adminpages/memberslist.php +30 -58
- adminpages/orders-csv.php +20 -128
- adminpages/orders.php +10 -315
- adminpages/pagesettings.php +9 -51
- adminpages/paymentsettings.php +491 -538
- adminpages/reports.php +10 -25
- adminpages/reports/login.php +20 -20
- adminpages/reports/memberships.php +0 -651
- adminpages/reports/sales.php +50 -51
- classes/class.memberorder.php +46 -106
- classes/class.pmproemail.php +24 -102
- classes/gateways/class.pmprogateway.php +2 -21
- classes/gateways/class.pmprogateway_authorizenet.php +4 -3
- classes/gateways/class.pmprogateway_braintree.php +14 -13
- classes/gateways/class.pmprogateway_check.php +2 -2
- classes/gateways/class.pmprogateway_cybersource.php +0 -765
- classes/gateways/class.pmprogateway_payflowpro.php +20 -19
- classes/gateways/class.pmprogateway_paypal.php +12 -13
- classes/gateways/class.pmprogateway_paypalexpress.php +24 -67
- classes/gateways/class.pmprogateway_paypalstandard.php +17 -34
- classes/gateways/class.pmprogateway_stripe.php +33 -82
- classes/gateways/class.pmprogateway_twocheckout.php +0 -145
- css/admin-rtl.css +0 -63
- css/admin.css +6 -5
- css/frontend-rtl.css +0 -111
- css/frontend.css +86 -49
- email/billing.html +4 -1
- email/billing_failure.html +5 -1
- email/billing_failure_admin.html +5 -1
- email/checkout_check.html +1 -1
- email/checkout_express.html +2 -2
- email/checkout_express_admin.html +2 -2
- email/checkout_freetrial.html +4 -1
- email/checkout_freetrial_admin.html +4 -1
- email/checkout_paid.html +4 -1
- email/checkout_paid_admin.html +4 -1
- email/checkout_trial.html +4 -1
- email/checkout_trial_admin.html +4 -1
- email/credit_card_expiring.html +3 -1
- email/invoice.html +6 -2
- includes/adminpages.php +66 -147
- includes/cleanup.php +12 -1
- includes/content.php +35 -70
- includes/currencies.php +2 -9
- includes/email.php +31 -58
- includes/filters.php +3 -41
- includes/functions.php +1608 -1742
- includes/https.php +18 -53
- includes/init.php +24 -69
- includes/lib/CyberSource/cyber_source_soap_client.php +0 -87
- includes/lib/Stripe/Stripe.php +0 -10
- includes/lib/Stripe/Stripe/Account.php +6 -5
- includes/lib/Stripe/Stripe/ApiRequestor.php +51 -153
- includes/lib/Stripe/Stripe/ApiResource.php +17 -51
- includes/lib/Stripe/Stripe/ApplicationFee.php +0 -53
- includes/lib/Stripe/Stripe/AttachedObject.php +0 -23
- includes/lib/Stripe/Stripe/Balance.php +0 -15
- includes/lib/Stripe/Stripe/BalanceTransaction.php +0 -39
- includes/lib/Stripe/Stripe/Card.php +0 -54
- includes/lib/Stripe/Stripe/CardError.php +2 -4
- includes/lib/Stripe/Stripe/Charge.php +7 -55
- includes/lib/Stripe/Stripe/Coupon.php +7 -24
- includes/lib/Stripe/Stripe/Customer.php +6 -61
- includes/lib/Stripe/Stripe/Error.php +7 -9
- includes/lib/Stripe/Stripe/Event.php +6 -12
- includes/lib/Stripe/Stripe/InvalidRequestError.php +2 -4
- includes/lib/Stripe/Stripe/Invoice.php +6 -30
- includes/lib/Stripe/Stripe/InvoiceItem.php +6 -24
- includes/lib/Stripe/Stripe/List.php +5 -25
- includes/lib/Stripe/Stripe/Object.php +12 -123
- includes/lib/Stripe/Stripe/Plan.php +6 -26
- includes/lib/Stripe/Stripe/Recipient.php +0 -75
- includes/lib/Stripe/Stripe/SingletonApiResource.php +0 -7
- includes/lib/Stripe/Stripe/Stripe.php +3 -49
- includes/lib/Stripe/Stripe/Subscription.php +0 -58
- includes/lib/Stripe/Stripe/Token.php +6 -12
- includes/lib/Stripe/Stripe/Transfer.php +6 -34
- includes/lib/Stripe/Stripe/Util.php +14 -42
- includes/lib/Twocheckout/Twocheckout.php +0 -31
- includes/lib/Twocheckout/Twocheckout/Api/TwocheckoutAccount.php +0 -25
- includes/lib/Twocheckout/Twocheckout/Api/TwocheckoutApi.php +0 -33
- includes/lib/Twocheckout/Twocheckout/Api/TwocheckoutCoupon.php +0 -42
- includes/lib/Twocheckout/Twocheckout/Api/TwocheckoutError.php +0 -14
- includes/lib/Twocheckout/Twocheckout/Api/TwocheckoutOption.php +0 -42
- includes/lib/Twocheckout/Twocheckout/Api/TwocheckoutPayment.php +0 -24
- includes/lib/Twocheckout/Twocheckout/Api/TwocheckoutProduct.php +0 -42
- includes/lib/Twocheckout/Twocheckout/Api/TwocheckoutSale.php +0 -104
- includes/lib/Twocheckout/Twocheckout/Api/TwocheckoutUtil.php +0 -72
- includes/lib/Twocheckout/Twocheckout/TwocheckoutCharge.php +0 -61
- includes/lib/Twocheckout/Twocheckout/TwocheckoutMessage.php +0 -13
- includes/lib/Twocheckout/Twocheckout/TwocheckoutNotification.php +0 -20
- includes/lib/Twocheckout/Twocheckout/TwocheckoutReturn.php +0 -21
- includes/localization.php +4 -4
- includes/login.php +7 -31
- includes/metaboxes.php +2 -2
- includes/notifications.php +3 -9
- includes/profile.php +4 -4
- includes/services.php +1 -8
- includes/upgradecheck.php +4 -31
- includes/xmlrpc.php +0 -80
- languages/email/da_DK/admin_change.html +0 -7
- languages/email/da_DK/admin_change_admin.html +0 -5
- languages/email/da_DK/billing.html +0 -16
- languages/email/da_DK/billing_admin.html +0 -17
- languages/email/da_DK/billing_failure.html +0 -11
- languages/email/da_DK/billing_failure_admin.html +0 -11
- languages/email/da_DK/cancel.html +0 -3
- languages/email/da_DK/cancel_admin.html +0 -8
- languages/email/da_DK/checkout_check.html +0 -17
- languages/email/da_DK/checkout_check_admin.html +0 -17
- languages/email/da_DK/checkout_express.html +0 -14
- languages/email/da_DK/checkout_express_admin.html +0 -14
- languages/email/da_DK/checkout_free.html +0 -8
- languages/email/da_DK/checkout_free_admin.html +0 -8
- languages/email/da_DK/checkout_freetrial.html +0 -19
- languages/email/da_DK/checkout_freetrial_admin.html +0 -19
- languages/email/da_DK/checkout_paid.html +0 -23
- languages/email/da_DK/checkout_paid_admin.html +0 -23
- languages/email/da_DK/checkout_trial.html +0 -23
- languages/email/da_DK/checkout_trial_admin.html +0 -23
- languages/email/da_DK/credit_card_expiring.html +0 -13
- languages/email/da_DK/default.html +0 -1
- languages/email/da_DK/footer.html +0 -4
- languages/email/da_DK/header.html +0 -1
- languages/email/da_DK/invoice.html +0 -19
- languages/email/da_DK/membership_expired.html +0 -7
- languages/email/da_DK/membership_expiring.html +0 -6
- languages/email/da_DK/trial_ending.html +0 -8
- languages/gettext.sh +0 -23
- languages/pmpro-cs_CZ.mo +0 -0
- languages/pmpro-cs_CZ.po +0 -2889
- languages/pmpro-da_DK.mo +0 -0
- languages/pmpro-da_DK.po +0 -3502
- languages/pmpro-en_GB.mo +0 -0
- languages/pmpro-en_GB.po +0 -2661
- languages/pmpro-es_CL.mo +0 -0
- languages/pmpro-es_CL.po +0 -2662
- languages/pmpro-es_CL.pot +0 -578
adminpages/addons.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
//only admins can get this
|
3 |
-
if(!function_exists("current_user_can") ||
|
4 |
{
|
5 |
die(__("You do not have permissions to perform this action.", "pmpro"));
|
6 |
}
|
1 |
<?php
|
2 |
//only admins can get this
|
3 |
+
if(!function_exists("current_user_can") || !current_user_can("manage_options"))
|
4 |
{
|
5 |
die(__("You do not have permissions to perform this action.", "pmpro"));
|
6 |
}
|
adminpages/addons/images/pmpro-bbpress.jpg
DELETED
Binary file
|
adminpages/addons/images/pmpro-constant-contact.gif
DELETED
Binary file
|
adminpages/addons/images/pmpro-email-templates.gif
DELETED
Binary file
|
adminpages/addons/images/pmpro-woocommerce.gif
DELETED
Binary file
|
adminpages/addons/pmpro-addon-packages.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
*/
|
6 |
pmpro_add_addon('github', array(
|
7 |
'title' => 'PMPro Addon Packages',
|
8 |
-
'version' => '.
|
9 |
'widget' => 'pmpro_addon_pmpro_addon_packages_widget',
|
10 |
'enabled' => function_exists('pmproap_post_meta')
|
11 |
)
|
@@ -22,7 +22,7 @@ function pmpro_addon_pmpro_addon_packages_widget($addon)
|
|
22 |
<?php } elseif(file_exists(dirname(__FILE__) . "/../../../pmpro-addon-packages/pmpro-addon-packages.php")) { ?>
|
23 |
<a href="<?php echo wp_nonce_url(self_admin_url('plugins.php?action=activate&plugin=pmpro-addon-packages/pmpro-addon-packages.php'), 'activate-plugin_pmpro-addon-packages/pmpro-addon-packages.php')?>" class="button button-primary">Activate</a>
|
24 |
<?php } else { ?>
|
25 |
-
<a href="https://
|
26 |
<?php } ?>
|
27 |
</div>
|
28 |
</div> <!-- end info -->
|
5 |
*/
|
6 |
pmpro_add_addon('github', array(
|
7 |
'title' => 'PMPro Addon Packages',
|
8 |
+
'version' => '.1.3',
|
9 |
'widget' => 'pmpro_addon_pmpro_addon_packages_widget',
|
10 |
'enabled' => function_exists('pmproap_post_meta')
|
11 |
)
|
22 |
<?php } elseif(file_exists(dirname(__FILE__) . "/../../../pmpro-addon-packages/pmpro-addon-packages.php")) { ?>
|
23 |
<a href="<?php echo wp_nonce_url(self_admin_url('plugins.php?action=activate&plugin=pmpro-addon-packages/pmpro-addon-packages.php'), 'activate-plugin_pmpro-addon-packages/pmpro-addon-packages.php')?>" class="button button-primary">Activate</a>
|
24 |
<?php } else { ?>
|
25 |
+
<a href="https://github.com/strangerstudios/pmpro-addon-packages/archive/master.zip" class="button button-primary">Download</a>
|
26 |
<?php } ?>
|
27 |
</div>
|
28 |
</div> <!-- end info -->
|
adminpages/addons/pmpro-affiliates.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
*/
|
6 |
pmpro_add_addon('github', array(
|
7 |
'title' => 'PMPro Affiliates',
|
8 |
-
'version' => '.2.
|
9 |
'widget' => 'pmpro_addon_pmpro_affiliates_widget',
|
10 |
'enabled' => function_exists('pmpro_affiliates_dependencies')
|
11 |
)
|
@@ -22,7 +22,7 @@ function pmpro_addon_pmpro_affiliates_widget($addon)
|
|
22 |
<?php } elseif(file_exists(dirname(__FILE__) . "/../../../pmpro-affiliates/pmpro-affiliates.php")) { ?>
|
23 |
<a href="<?php echo wp_nonce_url(self_admin_url('plugins.php?action=activate&plugin=pmpro-affiliates/pmpro-affiliates.php'), 'activate-plugin_pmpro-affiliates/pmpro-affiliates.php')?>" class="button button-primary">Activate</a>
|
24 |
<?php } else { ?>
|
25 |
-
<a href="
|
26 |
<?php } ?>
|
27 |
</div>
|
28 |
</div> <!-- end info -->
|
5 |
*/
|
6 |
pmpro_add_addon('github', array(
|
7 |
'title' => 'PMPro Affiliates',
|
8 |
+
'version' => '.2.2',
|
9 |
'widget' => 'pmpro_addon_pmpro_affiliates_widget',
|
10 |
'enabled' => function_exists('pmpro_affiliates_dependencies')
|
11 |
)
|
22 |
<?php } elseif(file_exists(dirname(__FILE__) . "/../../../pmpro-affiliates/pmpro-affiliates.php")) { ?>
|
23 |
<a href="<?php echo wp_nonce_url(self_admin_url('plugins.php?action=activate&plugin=pmpro-affiliates/pmpro-affiliates.php'), 'activate-plugin_pmpro-affiliates/pmpro-affiliates.php')?>" class="button button-primary">Activate</a>
|
24 |
<?php } else { ?>
|
25 |
+
<a href="https://github.com/strangerstudios/pmpro-affiliates/archive/master.zip" class="button button-primary">Download</a>
|
26 |
<?php } ?>
|
27 |
</div>
|
28 |
</div> <!-- end info -->
|
adminpages/addons/pmpro-aweber.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
*/
|
6 |
pmpro_add_addon('thirdparty', array(
|
7 |
'title' => 'PMPro AWeber Integration',
|
8 |
-
'version' => '
|
9 |
'widget' => 'pmpro_addon_pmpro_aweber_widget',
|
10 |
'enabled' => function_exists('pmproaw_init')
|
11 |
)
|
@@ -19,7 +19,7 @@ function pmpro_addon_pmpro_aweber_widget($addon)
|
|
19 |
<p>Integrate User Registrations with AWeber. Adds members to lists based on their membership level. (Note: works without PMPro as well.)</p>
|
20 |
<div class="actions">
|
21 |
<?php if($addon['enabled']) { ?>
|
22 |
-
<a href="
|
23 |
<?php } elseif(file_exists(dirname(__FILE__) . "/../../../pmpro-aweber/pmpro-aweber.php")) { ?>
|
24 |
<a href="<?php echo wp_nonce_url(self_admin_url('plugins.php?action=activate&plugin=pmpro-aweber/pmpro-aweber.php'), 'activate-plugin_pmpro-aweber/pmpro-aweber.php')?>" class="button button-primary">Activate</a>
|
25 |
<?php } else { ?>
|
5 |
*/
|
6 |
pmpro_add_addon('thirdparty', array(
|
7 |
'title' => 'PMPro AWeber Integration',
|
8 |
+
'version' => '.2',
|
9 |
'widget' => 'pmpro_addon_pmpro_aweber_widget',
|
10 |
'enabled' => function_exists('pmproaw_init')
|
11 |
)
|
19 |
<p>Integrate User Registrations with AWeber. Adds members to lists based on their membership level. (Note: works without PMPro as well.)</p>
|
20 |
<div class="actions">
|
21 |
<?php if($addon['enabled']) { ?>
|
22 |
+
<a href="https://github.com/strangerstudios/pmpro-aweber/" class="button">Enabled</a>
|
23 |
<?php } elseif(file_exists(dirname(__FILE__) . "/../../../pmpro-aweber/pmpro-aweber.php")) { ?>
|
24 |
<a href="<?php echo wp_nonce_url(self_admin_url('plugins.php?action=activate&plugin=pmpro-aweber/pmpro-aweber.php'), 'activate-plugin_pmpro-aweber/pmpro-aweber.php')?>" class="button button-primary">Activate</a>
|
25 |
<?php } else { ?>
|
adminpages/addons/pmpro-bbpress.php
CHANGED
@@ -3,28 +3,25 @@
|
|
3 |
Addon: PMPro bbPress
|
4 |
Slug: pmpro-bbpress
|
5 |
*/
|
6 |
-
pmpro_add_addon('
|
7 |
'title' => 'PMPro bbPress',
|
8 |
-
'version' => '
|
9 |
'widget' => 'pmpro_addon_pmpro_bbpress_widget',
|
10 |
-
'enabled' => function_exists('
|
11 |
)
|
12 |
);
|
13 |
|
14 |
function pmpro_addon_pmpro_bbpress_widget($addon)
|
15 |
{
|
16 |
?>
|
17 |
-
<img class="addon-thumb" src="<?php echo PMPRO_URL?>/adminpages/addons/images/pmpro-bbpress.jpg" />
|
18 |
<div class="info">
|
19 |
<p>Locking down bbPress Forums by Membership Level and Forum ID.</p>
|
20 |
<div class="actions">
|
21 |
<?php if($addon['enabled']) { ?>
|
22 |
-
<a
|
23 |
-
<?php } elseif(file_exists(dirname(__FILE__) . "/../../../pmpro-bbpress/pmpro-bbpress.php")) { ?>
|
24 |
-
<a href="<?php echo wp_nonce_url(self_admin_url('plugins.php?action=activate&plugin=pmpro-bbpress/pmpro-bbpress.php'), 'activate-plugin_pmpro-bbpress/pmpro-bbpress.php')?>" class="button button-primary">Activate</a>
|
25 |
<?php } else { ?>
|
26 |
-
<a
|
27 |
-
<?php } ?>
|
28 |
</div>
|
29 |
</div> <!-- end info -->
|
30 |
<?php
|
3 |
Addon: PMPro bbPress
|
4 |
Slug: pmpro-bbpress
|
5 |
*/
|
6 |
+
pmpro_add_addon('gists', array(
|
7 |
'title' => 'PMPro bbPress',
|
8 |
+
'version' => '.1',
|
9 |
'widget' => 'pmpro_addon_pmpro_bbpress_widget',
|
10 |
+
'enabled' => function_exists('pmpro_check_forum')
|
11 |
)
|
12 |
);
|
13 |
|
14 |
function pmpro_addon_pmpro_bbpress_widget($addon)
|
15 |
{
|
16 |
?>
|
|
|
17 |
<div class="info">
|
18 |
<p>Locking down bbPress Forums by Membership Level and Forum ID.</p>
|
19 |
<div class="actions">
|
20 |
<?php if($addon['enabled']) { ?>
|
21 |
+
<a target="_blank" href="https://gist.github.com/strangerstudios/1633637" class="button">Enabled</a>
|
|
|
|
|
22 |
<?php } else { ?>
|
23 |
+
<a target="_blank" href="https://gist.github.com/strangerstudios/1633637" class="button button-primary">View Gist</a>
|
24 |
+
<?php } ?>
|
25 |
</div>
|
26 |
</div> <!-- end info -->
|
27 |
<?php
|
adminpages/addons/pmpro-constant-contact.php
DELETED
@@ -1,31 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
Addon: PMPro Constant Contact Integration
|
4 |
-
Slug: pmpro-constant-contact
|
5 |
-
*/
|
6 |
-
pmpro_add_addon('thirdparty', array(
|
7 |
-
'title' => 'PMPro Constant Contact Integration',
|
8 |
-
'version' => '1.0',
|
9 |
-
'widget' => 'pmpro_addon_pmpro_constant_contact_widget',
|
10 |
-
'enabled' => function_exists('pmprocc_init')
|
11 |
-
)
|
12 |
-
);
|
13 |
-
|
14 |
-
function pmpro_addon_pmpro_constant_contact_widget($addon)
|
15 |
-
{
|
16 |
-
?>
|
17 |
-
<img class="addon-thumb" src="<?php echo PMPRO_URL?>/adminpages/addons/images/pmpro-constant-contact.gif" />
|
18 |
-
<div class="info">
|
19 |
-
<p>Integrate User Registrations with Constant Contact . Adds members to lists based on their membership level. (Note: works without PMPro as well.)</p>
|
20 |
-
<div class="actions">
|
21 |
-
<?php if($addon['enabled']) { ?>
|
22 |
-
<a href="<?php echo admin_url("plugins.php");?>" class="button">Enabled</a>
|
23 |
-
<?php } elseif(file_exists(dirname(__FILE__) . "/../../../pmpro-constant-contact/pmpro-constant-contact.php")) { ?>
|
24 |
-
<a href="<?php echo wp_nonce_url(self_admin_url('plugins.php?action=activate&plugin=pmpro-constant-contact/pmpro-constant-contact.php'), 'activate-plugin_pmpro-constant-contact/pmpro-constant-contact.php')?>" class="button button-primary">Activate</a>
|
25 |
-
<?php } else { ?>
|
26 |
-
<a href="<?php echo wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=pmpro-constant-contact'), 'install-plugin_pmpro-constant-contact'); ?>" class="button button-primary">Download</a>
|
27 |
-
<?php } ?>
|
28 |
-
</div>
|
29 |
-
</div> <!-- end info -->
|
30 |
-
<?php
|
31 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
adminpages/addons/pmpro-email-templates.php
DELETED
@@ -1,31 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
Addon: PMPro Email Templates Editor
|
4 |
-
Slug: pmpro-email-templates-addon
|
5 |
-
*/
|
6 |
-
pmpro_add_addon('repo', array(
|
7 |
-
'title' => 'PMPro Email Templates',
|
8 |
-
'version' => '.5.2',
|
9 |
-
'widget' => 'pmpro_addon_email_templates_widget',
|
10 |
-
'enabled' => function_exists('pmproet_scripts')
|
11 |
-
)
|
12 |
-
);
|
13 |
-
|
14 |
-
function pmpro_addon_email_templates_widget($addon)
|
15 |
-
{
|
16 |
-
?>
|
17 |
-
<img class="addon-thumb" src="<?php echo PMPRO_URL?>/adminpages/addons/images/pmpro-email-templates.gif" />
|
18 |
-
<div class="info">
|
19 |
-
<p>Easily edit system-generated Email Templates from the WordPress admin.</p>
|
20 |
-
<div class="actions">
|
21 |
-
<?php if($addon['enabled']) { ?>
|
22 |
-
<a href="http://wordpress.org/plugins/pmpro-email-templates-addon/" class="button">Enabled</a>
|
23 |
-
<?php } elseif(file_exists(dirname(__FILE__) . "/../../../pmpro-email-templates-addon/pmpro-email-templates.php")) { ?>
|
24 |
-
<a href="<?php echo wp_nonce_url(self_admin_url('plugins.php?action=activate&plugin=pmpro-email-templates-addon/pmpro-email-templates.php'), 'activate-plugin_pmpro-email-templates-addon/pmpro-email-templates.php')?>" class="button button-primary">Activate</a>
|
25 |
-
<?php } else { ?>
|
26 |
-
<a href="<?php echo wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=pmpro-email-templates-addon'), 'install-plugin_pmpro-email-templates-addon'); ?>" class="button button-primary">Download</a>
|
27 |
-
<?php } ?>
|
28 |
-
</div>
|
29 |
-
</div> <!-- end info -->
|
30 |
-
<?php
|
31 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
adminpages/addons/pmpro-expiration.php
CHANGED
@@ -3,11 +3,11 @@
|
|
3 |
Addon: PMPro Expiration Date
|
4 |
Slug: pmpro-expiration
|
5 |
*/
|
6 |
-
pmpro_add_addon('
|
7 |
-
'title' => 'PMPro
|
8 |
-
'version' => '.1
|
9 |
'widget' => 'pmpro_addon_pmpro_expiration_widget',
|
10 |
-
'enabled' => function_exists('
|
11 |
)
|
12 |
);
|
13 |
|
@@ -15,15 +15,13 @@ function pmpro_addon_pmpro_expiration_widget($addon)
|
|
15 |
{
|
16 |
?>
|
17 |
<div class="info">
|
18 |
-
<p>Set a specific expiration date
|
19 |
<div class="actions">
|
20 |
<?php if($addon['enabled']) { ?>
|
21 |
-
<a href="https://github.com/strangerstudios/
|
22 |
-
<?php } elseif(file_exists(dirname(__FILE__) . "/../../../pmpro-set-expiration-dates/pmpro-set-expiration-dates.php")) { ?>
|
23 |
-
<a href="<?php echo wp_nonce_url(self_admin_url('plugins.php?action=activate&plugin=pmpro-set-expiration-dates/pmpro-set-expiration-dates.php'), 'activate-plugin_pmpro-set-expiration-dates/pmpro-set-expiration-dates.php')?>" class="button button-primary">Activate</a>
|
24 |
<?php } else { ?>
|
25 |
-
<a href="
|
26 |
-
<?php } ?>
|
27 |
</div>
|
28 |
</div> <!-- end info -->
|
29 |
<?php
|
3 |
Addon: PMPro Expiration Date
|
4 |
Slug: pmpro-expiration
|
5 |
*/
|
6 |
+
pmpro_add_addon('gists', array(
|
7 |
+
'title' => 'PMPro Expiration Date',
|
8 |
+
'version' => '.1',
|
9 |
'widget' => 'pmpro_addon_pmpro_expiration_widget',
|
10 |
+
'enabled' => function_exists('my_pmpro_checkout_level_specific_expiration')
|
11 |
)
|
12 |
);
|
13 |
|
15 |
{
|
16 |
?>
|
17 |
<div class="info">
|
18 |
+
<p>Set a specific expiration date for a Membership Level.</p>
|
19 |
<div class="actions">
|
20 |
<?php if($addon['enabled']) { ?>
|
21 |
+
<a target="_blank" href="https://gist.github.com/strangerstudios/5709300" class="button">Enabled</a>
|
|
|
|
|
22 |
<?php } else { ?>
|
23 |
+
<a target="_blank" href="https://gist.github.com/strangerstudios/5709300" class="button button-primary">View Gist</a>
|
24 |
+
<?php } ?>
|
25 |
</div>
|
26 |
</div> <!-- end info -->
|
27 |
<?php
|
adminpages/addons/pmpro-freeaddress.php
CHANGED
@@ -3,9 +3,9 @@
|
|
3 |
Addon: PMPro Require Name and Address for Free Level
|
4 |
Slug: pmpro-freerequire
|
5 |
*/
|
6 |
-
pmpro_add_addon('
|
7 |
'title' => 'PMPro Require Name/Address for Free Level',
|
8 |
-
'version' => '.
|
9 |
'widget' => 'pmpro_addon_pmpro_freerequire_widget',
|
10 |
'enabled' => function_exists('my_pmpro_checkout_boxes_require_address')
|
11 |
)
|
@@ -18,12 +18,10 @@ function pmpro_addon_pmpro_freerequire_widget($addon)
|
|
18 |
<p>Require name/address for free Membership Level checkout.</p>
|
19 |
<div class="actions">
|
20 |
<?php if($addon['enabled']) { ?>
|
21 |
-
<a href="https://github.com/strangerstudios/
|
22 |
-
<?php } elseif(file_exists(dirname(__FILE__) . "/../../../pmpro-address-for-free-levels/pmpro-address-for-free-levels.php")) { ?>
|
23 |
-
<a href="<?php echo wp_nonce_url(self_admin_url('plugins.php?action=activate&plugin=pmpro-address-for-free-levels/pmpro-address-for-free-levels.php'), 'activate-plugin_pmpro-address-for-free-levels/pmpro-address-for-free-levels.php')?>" class="button button-primary">Activate</a>
|
24 |
<?php } else { ?>
|
25 |
-
<a href="
|
26 |
-
<?php } ?>
|
27 |
</div>
|
28 |
</div> <!-- end info -->
|
29 |
<?php
|
3 |
Addon: PMPro Require Name and Address for Free Level
|
4 |
Slug: pmpro-freerequire
|
5 |
*/
|
6 |
+
pmpro_add_addon('gists', array(
|
7 |
'title' => 'PMPro Require Name/Address for Free Level',
|
8 |
+
'version' => '.1',
|
9 |
'widget' => 'pmpro_addon_pmpro_freerequire_widget',
|
10 |
'enabled' => function_exists('my_pmpro_checkout_boxes_require_address')
|
11 |
)
|
18 |
<p>Require name/address for free Membership Level checkout.</p>
|
19 |
<div class="actions">
|
20 |
<?php if($addon['enabled']) { ?>
|
21 |
+
<a target="_blank" href="https://gist.github.com/strangerstudios/5716249" class="button">Enabled</a>
|
|
|
|
|
22 |
<?php } else { ?>
|
23 |
+
<a target="_blank" href="https://gist.github.com/strangerstudios/5716249" class="button button-primary">View Gist</a>
|
24 |
+
<?php } ?>
|
25 |
</div>
|
26 |
</div> <!-- end info -->
|
27 |
<?php
|
adminpages/addons/pmpro-infusionsoft.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
*/
|
6 |
pmpro_add_addon('thirdparty', array(
|
7 |
'title' => 'PMPro Infusionsoft Integration',
|
8 |
-
'version' => '1
|
9 |
'widget' => 'pmpro_addon_pmpro_infusionsoft_widget',
|
10 |
'enabled' => function_exists('pmprois_init')
|
11 |
)
|
@@ -19,12 +19,12 @@ function pmpro_addon_pmpro_infusionsoft_widget($addon)
|
|
19 |
<p>Integrate with Infusionsoft. Add members to email lists (groups, tags) based on their membership level. (Note: works without PMPro as well.)</p>
|
20 |
<div class="actions">
|
21 |
<?php if($addon['enabled']) { ?>
|
22 |
-
<a href="
|
23 |
<?php } elseif(file_exists(dirname(__FILE__) . "/../../../pmpro-infusionsoft/pmpro-infusionsoft.php")) { ?>
|
24 |
<a href="<?php echo wp_nonce_url(self_admin_url('plugins.php?action=activate&plugin=pmpro-infusionsoft/pmpro-infusionsoft.php'), 'activate-plugin_pmpro-infusionsoft/pmpro-infusionsoft.php')?>" class="button button-primary">Activate</a>
|
25 |
<?php } else { ?>
|
26 |
-
<a href="
|
27 |
-
<?php } ?>
|
28 |
</div>
|
29 |
</div> <!-- end info -->
|
30 |
<?php
|
5 |
*/
|
6 |
pmpro_add_addon('thirdparty', array(
|
7 |
'title' => 'PMPro Infusionsoft Integration',
|
8 |
+
'version' => '.1',
|
9 |
'widget' => 'pmpro_addon_pmpro_infusionsoft_widget',
|
10 |
'enabled' => function_exists('pmprois_init')
|
11 |
)
|
19 |
<p>Integrate with Infusionsoft. Add members to email lists (groups, tags) based on their membership level. (Note: works without PMPro as well.)</p>
|
20 |
<div class="actions">
|
21 |
<?php if($addon['enabled']) { ?>
|
22 |
+
<a href="https://github.com/strangerstudios/pmpro-infusionsoft/" class="button">Enabled</a>
|
23 |
<?php } elseif(file_exists(dirname(__FILE__) . "/../../../pmpro-infusionsoft/pmpro-infusionsoft.php")) { ?>
|
24 |
<a href="<?php echo wp_nonce_url(self_admin_url('plugins.php?action=activate&plugin=pmpro-infusionsoft/pmpro-infusionsoft.php'), 'activate-plugin_pmpro-infusionsoft/pmpro-infusionsoft.php')?>" class="button button-primary">Activate</a>
|
25 |
<?php } else { ?>
|
26 |
+
<a href="http://www.paidmembershipspro.com/wp-content/uploads/plugins/pmpro-infusionsoft.zip" class="button button-primary">Download</a>
|
27 |
+
<?php } ?>
|
28 |
</div>
|
29 |
</div> <!-- end info -->
|
30 |
<?php
|
adminpages/addons/pmpro-mailchimp.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
*/
|
6 |
pmpro_add_addon('thirdparty', array(
|
7 |
'title' => 'PMPro MailChimp Integration',
|
8 |
-
'version' => '
|
9 |
'widget' => 'pmpro_addon_pmpro_mailchimp_widget',
|
10 |
'enabled' => function_exists('pmpromc_init')
|
11 |
)
|
@@ -19,12 +19,12 @@ function pmpro_addon_pmpro_mailchimp_widget($addon)
|
|
19 |
<p>Integrate User Registrations with Mailchimp. Adds members to lists based on their membership level. (Note: works without PMPro as well.)</p>
|
20 |
<div class="actions">
|
21 |
<?php if($addon['enabled']) { ?>
|
22 |
-
<a href="
|
23 |
<?php } elseif(file_exists(dirname(__FILE__) . "/../../../pmpro-mailchimp/pmpro-mailchimp.php")) { ?>
|
24 |
<a href="<?php echo wp_nonce_url(self_admin_url('plugins.php?action=activate&plugin=pmpro-mailchimp/pmpro-mailchimp.php'), 'activate-plugin_pmpro-mailchimp/pmpro-mailchimp.php')?>" class="button button-primary">Activate</a>
|
25 |
<?php } else { ?>
|
26 |
<a href="<?php echo wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=pmpro-mailchimp'), 'install-plugin_pmpro-mailchimp'); ?>" class="button button-primary">Download</a>
|
27 |
-
<?php } ?>
|
28 |
</div>
|
29 |
</div> <!-- end info -->
|
30 |
<?php
|
5 |
*/
|
6 |
pmpro_add_addon('thirdparty', array(
|
7 |
'title' => 'PMPro MailChimp Integration',
|
8 |
+
'version' => '.3.2',
|
9 |
'widget' => 'pmpro_addon_pmpro_mailchimp_widget',
|
10 |
'enabled' => function_exists('pmpromc_init')
|
11 |
)
|
19 |
<p>Integrate User Registrations with Mailchimp. Adds members to lists based on their membership level. (Note: works without PMPro as well.)</p>
|
20 |
<div class="actions">
|
21 |
<?php if($addon['enabled']) { ?>
|
22 |
+
<a href="https://github.com/strangerstudios/pmpro-mailchimp/" class="button">Enabled</a>
|
23 |
<?php } elseif(file_exists(dirname(__FILE__) . "/../../../pmpro-mailchimp/pmpro-mailchimp.php")) { ?>
|
24 |
<a href="<?php echo wp_nonce_url(self_admin_url('plugins.php?action=activate&plugin=pmpro-mailchimp/pmpro-mailchimp.php'), 'activate-plugin_pmpro-mailchimp/pmpro-mailchimp.php')?>" class="button button-primary">Activate</a>
|
25 |
<?php } else { ?>
|
26 |
<a href="<?php echo wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=pmpro-mailchimp'), 'install-plugin_pmpro-mailchimp'); ?>" class="button button-primary">Download</a>
|
27 |
+
<?php } ?>
|
28 |
</div>
|
29 |
</div> <!-- end info -->
|
30 |
<?php
|
adminpages/addons/pmpro-network-subsite.php
DELETED
@@ -1,31 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
Addon: PMPro Network
|
4 |
-
Slug: pmpro-network-subsite
|
5 |
-
*/
|
6 |
-
pmpro_add_addon('github', array(
|
7 |
-
'title' => 'PMPro Network Subsite Helper',
|
8 |
-
'version' => '.2',
|
9 |
-
'widget' => 'pmpro_addon_pmpro_network_subsite_widget',
|
10 |
-
'enabled' => function_exists('pmpron_subsite_activated_plugin')
|
11 |
-
)
|
12 |
-
);
|
13 |
-
|
14 |
-
function pmpro_addon_pmpro_network_subsite_widget($addon)
|
15 |
-
{
|
16 |
-
?>
|
17 |
-
<img class="addon-thumb" src="<?php echo PMPRO_URL?>/adminpages/addons/images/pmpro-network.gif" />
|
18 |
-
<div class="info">
|
19 |
-
<p>Have network subsites use membership data from a "main" site to handle access restrictions.</p>
|
20 |
-
<div class="actions">
|
21 |
-
<?php if($addon['enabled']) { ?>
|
22 |
-
<a href="https://github.com/strangerstudios/pmpro-network-subsite" class="button">Enabled</a>
|
23 |
-
<?php } elseif(file_exists(dirname(__FILE__) . "/../../../pmpro-network-subsite/pmpro-network-subsite.php")) { ?>
|
24 |
-
<a href="<?php echo wp_nonce_url(self_admin_url('plugins.php?action=activate&plugin=pmpro-network-subsite/pmpro-network-subsite.php'), 'activate-plugin_pmpro-network-subsite/pmpro-network-subsite.php')?>" class="button button-primary">Activate</a>
|
25 |
-
<?php } else { ?>
|
26 |
-
<a href="http://www.paidmembershipspro.com/wp-content/uploads/plugins/pmpro-network-subsite.zip" class="button button-primary">Download</a>
|
27 |
-
<?php } ?>
|
28 |
-
</div>
|
29 |
-
</div> <!-- end info -->
|
30 |
-
<?php
|
31 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
adminpages/addons/pmpro-post-affiliate-pro.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
*/
|
6 |
pmpro_add_addon('thirdparty', array(
|
7 |
'title' => 'PMPro Post Affiliate Pro Integration',
|
8 |
-
'version' => '.
|
9 |
'widget' => 'pmpro_addon_pmpro_post_affiliate_pro_widget',
|
10 |
'enabled' => function_exists('pap_pmpro_track_sale')
|
11 |
)
|
5 |
*/
|
6 |
pmpro_add_addon('thirdparty', array(
|
7 |
'title' => 'PMPro Post Affiliate Pro Integration',
|
8 |
+
'version' => '.3',
|
9 |
'widget' => 'pmpro_addon_pmpro_post_affiliate_pro_widget',
|
10 |
'enabled' => function_exists('pap_pmpro_track_sale')
|
11 |
)
|
adminpages/addons/pmpro-register-helper.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
*/
|
6 |
pmpro_add_addon('github', array(
|
7 |
'title' => 'PMPro Register Helper',
|
8 |
-
'version' => '.5.
|
9 |
'widget' => 'pmpro_addon_pmpro_register_helper_widget',
|
10 |
'enabled' => class_exists('PMProRH_Field')
|
11 |
)
|
5 |
*/
|
6 |
pmpro_add_addon('github', array(
|
7 |
'title' => 'PMPro Register Helper',
|
8 |
+
'version' => '.5.2',
|
9 |
'widget' => 'pmpro_addon_pmpro_register_helper_widget',
|
10 |
'enabled' => class_exists('PMProRH_Field')
|
11 |
)
|
adminpages/addons/pmpro-series.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
*/
|
6 |
pmpro_add_addon('github', array(
|
7 |
'title' => 'PMPro Series',
|
8 |
-
'version' => '.
|
9 |
'widget' => 'pmpro_addon_pmpro_series_widget',
|
10 |
'enabled' => class_exists("PMProSeries")
|
11 |
)
|
5 |
*/
|
6 |
pmpro_add_addon('github', array(
|
7 |
'title' => 'PMPro Series',
|
8 |
+
'version' => '.2',
|
9 |
'widget' => 'pmpro_addon_pmpro_series_widget',
|
10 |
'enabled' => class_exists("PMProSeries")
|
11 |
)
|
adminpages/addons/pmpro-shipping.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
*/
|
6 |
pmpro_add_addon('github', array(
|
7 |
'title' => 'PMPro Shipping Add On',
|
8 |
-
'version' => '.2.
|
9 |
'widget' => 'pmpro_addon_pmpro_shipping_widget',
|
10 |
'enabled' => function_exists('pmproship_pmpro_checkout_boxes')
|
11 |
)
|
5 |
*/
|
6 |
pmpro_add_addon('github', array(
|
7 |
'title' => 'PMPro Shipping Add On',
|
8 |
+
'version' => '.2.2.1',
|
9 |
'widget' => 'pmpro_addon_pmpro_shipping_widget',
|
10 |
'enabled' => function_exists('pmproship_pmpro_checkout_boxes')
|
11 |
)
|
adminpages/addons/pmpro-stripe-lite.php
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
Addon: PMPro Stripe Lite
|
4 |
+
Slug: pmpro-stripe-lite
|
5 |
+
*/
|
6 |
+
pmpro_add_addon('github', array(
|
7 |
+
'title' => 'PMPro Stripe Lite',
|
8 |
+
'version' => '.1.1',
|
9 |
+
'widget' => 'pmpro_addon_pmpro_stripe_lite_widget',
|
10 |
+
'enabled' => function_exists('pmprosl_pmpro_pages_shortcode_checkout')
|
11 |
+
)
|
12 |
+
);
|
13 |
+
|
14 |
+
function pmpro_addon_pmpro_stripe_lite_widget($addon)
|
15 |
+
{
|
16 |
+
?>
|
17 |
+
<div class="info">
|
18 |
+
<p>Remove billing fields (not required by Stripe) from the checkout page when using the Stripe payment gateway with PMPro.</p>
|
19 |
+
<div class="actions">
|
20 |
+
<?php if($addon['enabled']) { ?>
|
21 |
+
<a href="https://github.com/strangerstudios/pmpro-stripe-lite/blob/master/readme.txt" class="button">Enabled</a>
|
22 |
+
<?php } elseif(file_exists(dirname(__FILE__) . "/../../../pmpro-stripe-lite/pmpro-stripe-lite.php")) { ?>
|
23 |
+
<a href="<?php echo wp_nonce_url(self_admin_url('plugins.php?action=activate&plugin=pmpro-stripe-lite/pmpro-stripe-lite.php'), 'activate-plugin_pmpro-stripe-lite/pmpro-stripe-lite.php')?>" class="button button-primary">Activate</a>
|
24 |
+
<?php } else { ?>
|
25 |
+
<a href="http://www.paidmembershipspro.com/wp-content/uploads/plugins/pmpro-stripe-lite.zip" class="button button-primary">Download</a>
|
26 |
+
<?php } ?>
|
27 |
+
</div>
|
28 |
+
</div> <!-- end info -->
|
29 |
+
<?php
|
30 |
+
}
|
adminpages/addons/pmpro-user-pages.php
CHANGED
@@ -14,7 +14,7 @@ pmpro_add_addon('github', array(
|
|
14 |
function pmpro_addon_pmpro_user_pages_widget($addon)
|
15 |
{
|
16 |
?>
|
17 |
-
<div class="info">
|
18 |
<p>Creates a unique page for each Member after checkout, giving the Admin access to write customized content for each specific member.</p>
|
19 |
<div class="actions">
|
20 |
<?php if($addon['enabled']) { ?>
|
14 |
function pmpro_addon_pmpro_user_pages_widget($addon)
|
15 |
{
|
16 |
?>
|
17 |
+
<div class="info">
|
18 |
<p>Creates a unique page for each Member after checkout, giving the Admin access to write customized content for each specific member.</p>
|
19 |
<div class="actions">
|
20 |
<?php if($addon['enabled']) { ?>
|
adminpages/addons/pmpro-woocommerce.php
DELETED
@@ -1,31 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
Addon: PMPro WooCommerce
|
4 |
-
Slug: pmpro-woocommerce
|
5 |
-
*/
|
6 |
-
pmpro_add_addon('thirdparty', array(
|
7 |
-
'title' => 'PMPro WooCommerce',
|
8 |
-
'version' => '1.2.2',
|
9 |
-
'widget' => 'pmpro_addon_pmpro_woocommerce_widget',
|
10 |
-
'enabled' => function_exists('pmprowoo_add_membership_from_order')
|
11 |
-
)
|
12 |
-
);
|
13 |
-
|
14 |
-
function pmpro_addon_pmpro_woocommerce_widget($addon)
|
15 |
-
{
|
16 |
-
?>
|
17 |
-
<img class="addon-thumb" src="<?php echo PMPRO_URL?>/adminpages/addons/images/pmpro-woocommerce.gif" />
|
18 |
-
<div class="info">
|
19 |
-
<p>Use WooCommerce to purchase membership or set members-only product pricing.</p>
|
20 |
-
<div class="actions">
|
21 |
-
<?php if($addon['enabled']) { ?>
|
22 |
-
<a href="<?php echo admin_url("plugins.php");?>" class="button">Enabled</a>
|
23 |
-
<?php } elseif(file_exists(dirname(__FILE__) . "/../../../pmpro-woocommerce/pmpro-woocommerce.php")) { ?>
|
24 |
-
<a href="<?php echo wp_nonce_url(self_admin_url('plugins.php?action=activate&plugin=pmpro-woocommerce/pmpro-woocommerce.php'), 'activate-plugin_pmpro-woocommerce/pmpro-woocommerce.php')?>" class="button button-primary">Activate</a>
|
25 |
-
<?php } else { ?>
|
26 |
-
<a href="<?php echo wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=pmpro-woocommerce'), 'install-plugin_pmpro-woocommerce'); ?>" class="button button-primary">Download</a>
|
27 |
-
<?php } ?>
|
28 |
-
</div>
|
29 |
-
</div> <!-- end info -->
|
30 |
-
<?php
|
31 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
adminpages/addons/pmpro-wp-affiliate.php
CHANGED
@@ -19,12 +19,10 @@ function pmpro_addon_pmpro_wp_affiliate_widget($addon)
|
|
19 |
<p>Process an affiliate via WP Affiliate Platform after a PMPro checkout.</p>
|
20 |
<div class="actions">
|
21 |
<?php if($addon['enabled']) { ?>
|
22 |
-
<a href="https://github.com/strangerstudios/
|
23 |
-
<?php } elseif(file_exists(dirname(__FILE__) . "/../../../pmpro-wp-affiliate-platform/pmpro-wp-affiliate-platform.php")) { ?>
|
24 |
-
<a href="<?php echo wp_nonce_url(self_admin_url('plugins.php?action=activate&plugin=pmpro-wp-affiliate-platform/pmpro-wp-affiliate-platform.php'), 'activate-plugin_pmpro-wp-affiliate-platform/pmpro-wp-affiliate-platform.php')?>" class="button button-primary">Activate</a>
|
25 |
<?php } else { ?>
|
26 |
-
<a href="
|
27 |
-
<?php } ?>
|
28 |
</div>
|
29 |
</div> <!-- end info -->
|
30 |
<?php
|
19 |
<p>Process an affiliate via WP Affiliate Platform after a PMPro checkout.</p>
|
20 |
<div class="actions">
|
21 |
<?php if($addon['enabled']) { ?>
|
22 |
+
<a target="_blank" href="https://gist.github.com/strangerstudios/3137539" class="button">Enabled</a>
|
|
|
|
|
23 |
<?php } else { ?>
|
24 |
+
<a target="_blank" href="https://gist.github.com/strangerstudios/3137539" class="button button-primary">View Gist</a>
|
25 |
+
<?php } ?>
|
26 |
</div>
|
27 |
</div> <!-- end info -->
|
28 |
<?php
|
adminpages/addons/tml.php
CHANGED
@@ -7,7 +7,7 @@ pmpro_add_addon('recommended', array(
|
|
7 |
'title' => 'Theme My Login',
|
8 |
'widget' => 'pmpro_addon_tml_widget',
|
9 |
'enabled' => class_exists('Theme_My_Login'),
|
10 |
-
'version' => '6.3.
|
11 |
)
|
12 |
);
|
13 |
|
7 |
'title' => 'Theme My Login',
|
8 |
'widget' => 'pmpro_addon_tml_widget',
|
9 |
'enabled' => class_exists('Theme_My_Login'),
|
10 |
+
'version' => '6.3.8'
|
11 |
)
|
12 |
);
|
13 |
|
adminpages/addons/wp-bouncer.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
*/
|
6 |
pmpro_add_addon('repo', array(
|
7 |
'title' => 'WP Bouncer',
|
8 |
-
'version' => '1.1',
|
9 |
'widget' => 'pmpro_addon_wp_bouncer_widget',
|
10 |
'enabled' => class_exists('WP_Bouncer')
|
11 |
)
|
@@ -19,7 +19,7 @@ function pmpro_addon_wp_bouncer_widget($addon)
|
|
19 |
<p>Make sure users are only logged in from one computer or device at a time.</p>
|
20 |
<div class="actions">
|
21 |
<?php if($addon['enabled']) { ?>
|
22 |
-
<a href="
|
23 |
<?php } elseif(file_exists(dirname(__FILE__) . "/../../../wp-bouncer/wp-bouncer.php")) { ?>
|
24 |
<a href="<?php echo wp_nonce_url(self_admin_url('plugins.php?action=activate&plugin=wp-bouncer/wp-bouncer.php'), 'activate-plugin_wp-bouncer/wp-bouncer.php')?>" class="button button-primary">Activate</a>
|
25 |
<?php } else { ?>
|
5 |
*/
|
6 |
pmpro_add_addon('repo', array(
|
7 |
'title' => 'WP Bouncer',
|
8 |
+
'version' => '1.0.1',
|
9 |
'widget' => 'pmpro_addon_wp_bouncer_widget',
|
10 |
'enabled' => class_exists('WP_Bouncer')
|
11 |
)
|
19 |
<p>Make sure users are only logged in from one computer or device at a time.</p>
|
20 |
<div class="actions">
|
21 |
<?php if($addon['enabled']) { ?>
|
22 |
+
<a href="https://github.com/strangerstudios/wp-bouncer/blob/master/readme.txt" class="button">Enabled</a>
|
23 |
<?php } elseif(file_exists(dirname(__FILE__) . "/../../../wp-bouncer/wp-bouncer.php")) { ?>
|
24 |
<a href="<?php echo wp_nonce_url(self_admin_url('plugins.php?action=activate&plugin=wp-bouncer/wp-bouncer.php'), 'activate-plugin_wp-bouncer/wp-bouncer.php')?>" class="button button-primary">Activate</a>
|
25 |
<?php } else { ?>
|
adminpages/admin_header.php
CHANGED
@@ -92,27 +92,6 @@
|
|
92 |
$msgt .= " <a href=\"?page=pmpro-membershiplevels\">" . __("Please edit your levels", "pmpro") . "</a>.";
|
93 |
}
|
94 |
|
95 |
-
if(!pmpro_checkLevelForTwoCheckoutCompatibility())
|
96 |
-
{
|
97 |
-
$msg = -1;
|
98 |
-
$msgt = __("The billing details for some of your membership levels is not supported by TwoCheckout.", "pmpro");
|
99 |
-
if($view == "pmpro-membershiplevels" && !empty($_REQUEST['edit']) && $_REQUEST['edit'] > 0)
|
100 |
-
{
|
101 |
-
if(!pmpro_checkLevelForTwoCheckoutCompatibility($_REQUEST['edit']))
|
102 |
-
{
|
103 |
-
global $pmpro_twocheckout_error;
|
104 |
-
$pmpro_twocheckout_error = true;
|
105 |
-
|
106 |
-
$msg = -1;
|
107 |
-
$msgt = __("The billing details for this level are not supported by 2Checkout. Please review the notes in the Billing Details section below.", "pmpro");
|
108 |
-
}
|
109 |
-
}
|
110 |
-
elseif($view == "pmpro-membershiplevels")
|
111 |
-
$msgt .= " " . __("The levels with issues are highlighted below.", "pmpro");
|
112 |
-
else
|
113 |
-
$msgt .= " <a href=\"?page=pmpro-membershiplevels\">" . __("Please edit your levels", "pmpro") . "</a>.";
|
114 |
-
}
|
115 |
-
|
116 |
if(!empty($msg))
|
117 |
{
|
118 |
?>
|
@@ -124,7 +103,7 @@
|
|
124 |
<div class="wrap pmpro_admin">
|
125 |
<div class="pmpro_banner">
|
126 |
<a class="pmpro_logo" title="Paid Memberships Pro - Membership Plugin for WordPress" target="_blank" href="<?php echo pmpro_https_filter("http://www.paidmembershipspro.com")?>"><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>
|
127 |
-
<div class="pmpro_meta"><span class="pmpro_tag-grey">v<?php echo PMPRO_VERSION?></span><a
|
128 |
|
129 |
<br style="clear:both;" />
|
130 |
</div>
|
92 |
$msgt .= " <a href=\"?page=pmpro-membershiplevels\">" . __("Please edit your levels", "pmpro") . "</a>.";
|
93 |
}
|
94 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
95 |
if(!empty($msg))
|
96 |
{
|
97 |
?>
|
103 |
<div class="wrap pmpro_admin">
|
104 |
<div class="pmpro_banner">
|
105 |
<a class="pmpro_logo" title="Paid Memberships Pro - Membership Plugin for WordPress" target="_blank" href="<?php echo pmpro_https_filter("http://www.paidmembershipspro.com")?>"><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>
|
106 |
+
<div class="pmpro_meta"><span class="pmpro_tag-grey">v<?php echo PMPRO_VERSION?></span><a class="pmpro_tag-blue" href="<?php echo pmpro_https_filter("http://www.paidmembershipspro.com")?>"><?php _e('Plugin Support', 'pmpro');?></a><a class="pmpro_tag-blue" href="http://www.paidmembershipspro.com/forums/"><?php _e('User Forum', 'pmpro');?></a></div>
|
107 |
|
108 |
<br style="clear:both;" />
|
109 |
</div>
|
adminpages/advancedsettings.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
//only admins can get this
|
3 |
-
if(!function_exists("current_user_can") ||
|
4 |
{
|
5 |
die(__("You do not have permissions to perform this action.", "pmpro"));
|
6 |
}
|
@@ -14,7 +14,6 @@
|
|
14 |
pmpro_setOption("nonmembertext");
|
15 |
pmpro_setOption("notloggedintext");
|
16 |
pmpro_setOption("rsstext");
|
17 |
-
pmpro_setOption("filterqueries");
|
18 |
pmpro_setOption("showexcerpts");
|
19 |
pmpro_setOption("hideads");
|
20 |
pmpro_setOption("hideadslevels");
|
@@ -30,13 +29,6 @@
|
|
30 |
|
31 |
//footer link
|
32 |
pmpro_setOption("hide_footer_link");
|
33 |
-
|
34 |
-
// custom settings (added with pmpro_custom_advanced_settings hook)
|
35 |
-
foreach($_REQUEST as $key => $value ) {
|
36 |
-
if (strpos($key, 'custom_') === 0) {
|
37 |
-
pmpro_setOption($key);
|
38 |
-
}
|
39 |
-
}
|
40 |
|
41 |
//assume success
|
42 |
$msg = true;
|
@@ -47,7 +39,6 @@
|
|
47 |
$notloggedintext = pmpro_getOption("notloggedintext");
|
48 |
$rsstext = pmpro_getOption("rsstext");
|
49 |
$hideads = pmpro_getOption("hideads");
|
50 |
-
$filterqueries = pmpro_getOption('filterqueries');
|
51 |
$showexcerpts = pmpro_getOption("showexcerpts");
|
52 |
$hideadslevels = pmpro_getOption("hideadslevels");
|
53 |
|
@@ -65,17 +56,17 @@
|
|
65 |
//default settings
|
66 |
if(!$nonmembertext)
|
67 |
{
|
68 |
-
$nonmembertext =
|
69 |
pmpro_setOption("nonmembertext", $nonmembertext);
|
70 |
}
|
71 |
if(!$notloggedintext)
|
72 |
{
|
73 |
-
$notloggedintext =
|
74 |
pmpro_setOption("notloggedintext", $notloggedintext);
|
75 |
}
|
76 |
if(!$rsstext)
|
77 |
{
|
78 |
-
$rsstext =
|
79 |
pmpro_setOption("rsstext", $rsstext);
|
80 |
}
|
81 |
|
@@ -119,27 +110,16 @@
|
|
119 |
|
120 |
<tr>
|
121 |
<th scope="row" valign="top">
|
122 |
-
<label for="
|
123 |
</th>
|
124 |
<td>
|
125 |
-
<select id="
|
126 |
-
<option value="0" <?php if(!$
|
127 |
-
<option value="1" <?php if($
|
128 |
</select>
|
129 |
</td>
|
130 |
</tr>
|
131 |
<tr>
|
132 |
-
<th scope="row" valign="top">
|
133 |
-
<label for="showexcerpts"><?php _e('Show Excerpts to Non-Members?', 'pmpro');?></label>
|
134 |
-
</th>
|
135 |
-
<td>
|
136 |
-
<select id="showexcerpts" name="showexcerpts">
|
137 |
-
<option value="0" <?php if(!$showexcerpts) { ?>selected="selected"<?php } ?>><?php _e('No - Hide excerpts.', 'pmpro');?></option>
|
138 |
-
<option value="1" <?php if($showexcerpts == 1) { ?>selected="selected"<?php } ?>><?php _e('Yes - Show excerpts.', 'pmpro');?></option>
|
139 |
-
</select>
|
140 |
-
</td>
|
141 |
-
</tr>
|
142 |
-
<tr>
|
143 |
<th scope="row" valign="top">
|
144 |
<label for="hideads">Hide Ads From Members?</label>
|
145 |
</th>
|
@@ -257,73 +237,9 @@ if(pmpro_displayAds())
|
|
257 |
<option value="1" <?php if($hide_footer_link == 1) { ?>selected="selected"<?php } ?>>Yes - Hide the link.</option>
|
258 |
</select>
|
259 |
</td>
|
260 |
-
</tr>
|
261 |
-
*/
|
262 |
-
|
263 |
-
// Filter to Add More Advanced Settings for Misc Plugin Options, etc.
|
264 |
-
if (has_action('pmpro_custom_advanced_settings')) {
|
265 |
-
$custom_fields = apply_filters('pmpro_custom_advanced_settings', $custom_fields);
|
266 |
-
foreach ($custom_fields as $field) {
|
267 |
-
?>
|
268 |
-
<tr>
|
269 |
-
<th valign="top" scope="row">
|
270 |
-
<label
|
271 |
-
for="<?php _e($field['field_name'], 'pmpro'); ?>"><?php _e($field['label'], 'pmpro'); ?></label>
|
272 |
-
</th>
|
273 |
-
<td>
|
274 |
-
<?php
|
275 |
-
switch ($field['field_type']) {
|
276 |
-
case 'select':
|
277 |
-
?>
|
278 |
-
<select id="<?php _e($field['field_name'], 'pmpro'); ?>"
|
279 |
-
name="<?php _e($field['field_name'], 'pmpro'); ?>">
|
280 |
-
<?php foreach ($field['options'] as $option) {
|
281 |
-
?>
|
282 |
-
<option value="<?php _e($option, 'pmpro'); ?>"
|
283 |
-
<?php
|
284 |
-
if ($option == pmpro_getOption($field['field_name'])) {
|
285 |
-
_e('selected', 'pmpro');
|
286 |
-
}
|
287 |
-
?>
|
288 |
-
><?php _e($option, 'pmpro'); ?></option>
|
289 |
-
<?php
|
290 |
-
} ?>
|
291 |
-
</select>
|
292 |
-
<?php
|
293 |
-
break;
|
294 |
-
case 'text':
|
295 |
-
?>
|
296 |
-
<input id="<?php _e($field['field_name'], 'pmpro'); ?>"
|
297 |
-
name="<?php _e($field['field_name'], 'pmpro'); ?>"
|
298 |
-
type="<?php _e($field['field_type'], 'pmpro'); ?>"
|
299 |
-
value="<?php echo pmpro_getOption($field['field_name']); ?> ">
|
300 |
-
<?php
|
301 |
-
break;
|
302 |
-
case 'textarea':
|
303 |
-
?>
|
304 |
-
<textarea id="<?php _e($field['field_name'], 'pmpro'); ?>"
|
305 |
-
name="<?php _e($field['field_name'], 'pmpro'); ?>">
|
306 |
-
<?php echo pmpro_getOption($field['field_name']); ?>
|
307 |
-
</textarea>
|
308 |
-
<?php
|
309 |
-
break;
|
310 |
-
default:
|
311 |
-
break;
|
312 |
-
}
|
313 |
-
if (!empty($field['description'])) {
|
314 |
-
?>
|
315 |
-
<br>
|
316 |
-
<small><?php _e($field['description'], 'pmpro'); ?></small>
|
317 |
-
<?php
|
318 |
-
}
|
319 |
-
?>
|
320 |
-
</td>
|
321 |
-
<?php
|
322 |
-
}
|
323 |
-
}
|
324 |
-
?>
|
325 |
-
</tr>
|
326 |
-
</tbody>
|
327 |
</table>
|
328 |
<script>
|
329 |
function pmpro_updateHideAdsTRs()
|
@@ -365,7 +281,7 @@ if(pmpro_displayAds())
|
|
365 |
</script>
|
366 |
|
367 |
<p class="submit">
|
368 |
-
<input name="savesettings" type="submit" class="button
|
369 |
</p>
|
370 |
</form>
|
371 |
|
1 |
<?php
|
2 |
//only admins can get this
|
3 |
+
if(!function_exists("current_user_can") || !current_user_can("manage_options"))
|
4 |
{
|
5 |
die(__("You do not have permissions to perform this action.", "pmpro"));
|
6 |
}
|
14 |
pmpro_setOption("nonmembertext");
|
15 |
pmpro_setOption("notloggedintext");
|
16 |
pmpro_setOption("rsstext");
|
|
|
17 |
pmpro_setOption("showexcerpts");
|
18 |
pmpro_setOption("hideads");
|
19 |
pmpro_setOption("hideadslevels");
|
29 |
|
30 |
//footer link
|
31 |
pmpro_setOption("hide_footer_link");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
|
33 |
//assume success
|
34 |
$msg = true;
|
39 |
$notloggedintext = pmpro_getOption("notloggedintext");
|
40 |
$rsstext = pmpro_getOption("rsstext");
|
41 |
$hideads = pmpro_getOption("hideads");
|
|
|
42 |
$showexcerpts = pmpro_getOption("showexcerpts");
|
43 |
$hideadslevels = pmpro_getOption("hideadslevels");
|
44 |
|
56 |
//default settings
|
57 |
if(!$nonmembertext)
|
58 |
{
|
59 |
+
$nonmembertext = "This content is for !!levels!! members only. <a href=\"" . wp_login_url() . "?action=register\">Register here</a>.";
|
60 |
pmpro_setOption("nonmembertext", $nonmembertext);
|
61 |
}
|
62 |
if(!$notloggedintext)
|
63 |
{
|
64 |
+
$notloggedintext = "Please <a href=\"" . wp_login_url( get_permalink() ) . "\">login</a> to view this content. (<a href=\"" . wp_login_url() . "?action=register\">Register here</a>.)";
|
65 |
pmpro_setOption("notloggedintext", $notloggedintext);
|
66 |
}
|
67 |
if(!$rsstext)
|
68 |
{
|
69 |
+
$rsstext = "This content is for members only. Visit the site and log in/register to read.";
|
70 |
pmpro_setOption("rsstext", $rsstext);
|
71 |
}
|
72 |
|
110 |
|
111 |
<tr>
|
112 |
<th scope="row" valign="top">
|
113 |
+
<label for="showexcerpts"><?php _e('Show Excerpts to Non-Members?', 'pmpro');?></label>
|
114 |
</th>
|
115 |
<td>
|
116 |
+
<select id="showexcerpts" name="showexcerpts">
|
117 |
+
<option value="0" <?php if(!$showexcerpts) { ?>selected="selected"<?php } ?>><?php _e('No - Hide excerpts.', 'pmpro');?></option>
|
118 |
+
<option value="1" <?php if($showexcerpts == 1) { ?>selected="selected"<?php } ?>><?php _e('Yes - Show excerpts.', 'pmpro');?></option>
|
119 |
</select>
|
120 |
</td>
|
121 |
</tr>
|
122 |
<tr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
123 |
<th scope="row" valign="top">
|
124 |
<label for="hideads">Hide Ads From Members?</label>
|
125 |
</th>
|
237 |
<option value="1" <?php if($hide_footer_link == 1) { ?>selected="selected"<?php } ?>>Yes - Hide the link.</option>
|
238 |
</select>
|
239 |
</td>
|
240 |
+
</tr>
|
241 |
+
*/ ?>
|
242 |
+
</tbody>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
243 |
</table>
|
244 |
<script>
|
245 |
function pmpro_updateHideAdsTRs()
|
281 |
</script>
|
282 |
|
283 |
<p class="submit">
|
284 |
+
<input name="savesettings" type="submit" class="button-primary" value="<?php _e('Save Settings', 'pmpro');?>" />
|
285 |
</p>
|
286 |
</form>
|
287 |
|
adminpages/dashboard.php
CHANGED
@@ -105,9 +105,9 @@
|
|
105 |
|
106 |
echo '</ul>';
|
107 |
echo '<br class="clear"/><div style="margin-top:10px;border-top: 1px solid #ddd; padding-top: 10px; text-align:center;">';
|
108 |
-
echo '<a
|
109 |
echo ' ';
|
110 |
-
echo '<a
|
111 |
echo '<form class="alignright" method="post"><input type="hidden" name="pmpro_removedbwidget" value="true"/><input title="Remove this widget from all users dashboards" class="button" type="submit" value="X"/></form>';
|
112 |
echo '</div>';
|
113 |
}
|
105 |
|
106 |
echo '</ul>';
|
107 |
echo '<br class="clear"/><div style="margin-top:10px;border-top: 1px solid #ddd; padding-top: 10px; text-align:center;">';
|
108 |
+
echo '<a href="'.$pmpro_feed.'"><img src="'.get_bloginfo('wpurl').'/wp-includes/images/rss.png" alt=""/> Subscribe with RSS</a>';
|
109 |
echo ' ';
|
110 |
+
echo '<a href="http://www.paidmembershipspro.com/"><img src="'.get_bloginfo('wpurl').'/wp-includes/images/wpmini-blue.png" alt=""/> View Online</a>';
|
111 |
echo '<form class="alignright" method="post"><input type="hidden" name="pmpro_removedbwidget" value="true"/><input title="Remove this widget from all users dashboards" class="button" type="submit" value="X"/></form>';
|
112 |
echo '</div>';
|
113 |
}
|
adminpages/discountcodes.php
CHANGED
@@ -1,636 +1,631 @@
|
|
1 |
-
<?php
|
2 |
-
//only admins can get this
|
3 |
-
if(!function_exists("current_user_can") || (!current_user_can("manage_options") && !current_user_can("pmpro_discountcodes")))
|
4 |
-
{
|
5 |
-
die(__("You do not have permissions to perform this action.", "pmpro"));
|
6 |
-
}
|
7 |
-
|
8 |
-
//vars
|
9 |
-
global $wpdb, $pmpro_currency_symbol;
|
10 |
-
|
11 |
-
if(isset($_REQUEST['edit']))
|
12 |
-
$edit = $_REQUEST['edit'];
|
13 |
-
else
|
14 |
-
$edit = false;
|
15 |
-
|
16 |
-
if(isset($_REQUEST['delete']))
|
17 |
-
$delete = $_REQUEST['delete'];
|
18 |
-
else
|
19 |
-
$delete = false;
|
20 |
-
|
21 |
-
if(isset($_REQUEST['saveid']))
|
22 |
-
$saveid = $_POST['saveid'];
|
23 |
-
else
|
24 |
-
$saveid = false;
|
25 |
-
|
26 |
-
if($saveid)
|
27 |
-
{
|
28 |
-
//get vars
|
29 |
-
$code = $_POST['code'];
|
30 |
-
$starts_month = $_POST['starts_month'];
|
31 |
-
$starts_day = $_POST['starts_day'];
|
32 |
-
$starts_year = $_POST['starts_year'];
|
33 |
-
$expires_month = $_POST['expires_month'];
|
34 |
-
$expires_day = $_POST['expires_day'];
|
35 |
-
$expires_year = $_POST['expires_year'];
|
36 |
-
$uses = $_POST['uses'];
|
37 |
-
|
38 |
-
//fix up dates
|
39 |
-
$starts = date("Y-m-d", strtotime($starts_month . "/" . $starts_day . "/" . $starts_year
|
40 |
-
$expires = date("Y-m-d", strtotime($expires_month . "/" . $expires_day . "/" . $expires_year
|
41 |
-
|
42 |
-
//updating or new?
|
43 |
-
if($saveid > 0)
|
44 |
-
{
|
45 |
-
$sqlQuery = "UPDATE $wpdb->pmpro_discount_codes SET code = '" .
|
46 |
-
if($wpdb->query($sqlQuery) !== false)
|
47 |
-
{
|
48 |
-
$pmpro_msg = __("Discount code updated successfully.", "pmpro");
|
49 |
-
$pmpro_msgt = "success";
|
50 |
-
$saved = true;
|
51 |
-
$edit = $saveid;
|
52 |
-
}
|
53 |
-
else
|
54 |
-
{
|
55 |
-
$pmpro_msg = __("Error updating discount code. That code may already be in use.", "pmpro");
|
56 |
-
$pmpro_msgt = "error";
|
57 |
-
}
|
58 |
-
}
|
59 |
-
else
|
60 |
-
{
|
61 |
-
$sqlQuery = "INSERT INTO $wpdb->pmpro_discount_codes (code, starts, expires, uses) VALUES('" .
|
62 |
-
if($wpdb->query($sqlQuery) !== false)
|
63 |
-
{
|
64 |
-
$pmpro_msg = __("Discount code added successfully.", "pmpro");
|
65 |
-
$pmpro_msgt = "success";
|
66 |
-
$saved = true;
|
67 |
-
$edit = $wpdb->insert_id;
|
68 |
-
}
|
69 |
-
else
|
70 |
-
{
|
71 |
-
$pmpro_msg = __("Error adding discount code. That code may already be in use.", "pmpro") . $wpdb->last_error;
|
72 |
-
$pmpro_msgt = "error";
|
73 |
-
}
|
74 |
-
}
|
75 |
-
|
76 |
-
//now add the membership level rows
|
77 |
-
if($saved && $edit > 0)
|
78 |
-
{
|
79 |
-
//get the submitted values
|
80 |
-
$all_levels_a = $_REQUEST['all_levels'];
|
81 |
-
if(!empty($_REQUEST['levels']))
|
82 |
-
$levels_a = $_REQUEST['levels'];
|
83 |
-
else
|
84 |
-
$levels_a = array();
|
85 |
-
$initial_payment_a = $_REQUEST['initial_payment'];
|
86 |
-
if(!empty($_REQUEST['recurring']))
|
87 |
-
$recurring_a = $_REQUEST['recurring'];
|
88 |
-
$billing_amount_a = $_REQUEST['billing_amount'];
|
89 |
-
$cycle_number_a = $_REQUEST['cycle_number'];
|
90 |
-
$cycle_period_a = $_REQUEST['cycle_period'];
|
91 |
-
$billing_limit_a = $_REQUEST['billing_limit'];
|
92 |
-
if(!empty($_REQUEST['custom_trial']))
|
93 |
-
$custom_trial_a = $_REQUEST['custom_trial'];
|
94 |
-
$trial_amount_a = $_REQUEST['trial_amount'];
|
95 |
-
$trial_limit_a = $_REQUEST['trial_limit'];
|
96 |
-
if(!empty($_REQUEST['expiration']))
|
97 |
-
$expiration_a = $_REQUEST['expiration'];
|
98 |
-
$expiration_number_a = $_REQUEST['expiration_number'];
|
99 |
-
$expiration_period_a = $_REQUEST['expiration_period'];
|
100 |
-
|
101 |
-
//clear the old rows
|
102 |
-
$sqlQuery = "DELETE FROM $wpdb->pmpro_discount_codes_levels WHERE code_id = '" . $edit . "'";
|
103 |
-
$wpdb->query($sqlQuery);
|
104 |
-
|
105 |
-
//add a row for each checked level
|
106 |
-
if(!empty($levels_a))
|
107 |
-
{
|
108 |
-
foreach($levels_a as $level_id)
|
109 |
-
{
|
110 |
-
//get the values ready
|
111 |
-
$n = array_search($level_id, $all_levels_a); //this is the key location of this level's values
|
112 |
-
$initial_payment = $initial_payment_a[$n];
|
113 |
-
|
114 |
-
//is this recurring?
|
115 |
-
if(!empty($recurring_a))
|
116 |
-
{
|
117 |
-
if(in_array($level_id, $recurring_a))
|
118 |
-
$recurring = 1;
|
119 |
-
else
|
120 |
-
$recurring = 0;
|
121 |
-
}
|
122 |
-
else
|
123 |
-
$recurring = 0;
|
124 |
-
|
125 |
-
if(!empty($recurring))
|
126 |
-
{
|
127 |
-
$billing_amount = $billing_amount_a[$n];
|
128 |
-
$cycle_number = $cycle_number_a[$n];
|
129 |
-
$cycle_period = $cycle_period_a[$n];
|
130 |
-
$billing_limit = $billing_limit_a[$n];
|
131 |
-
|
132 |
-
//custom trial
|
133 |
-
if(!empty($custom_trial_a))
|
134 |
-
{
|
135 |
-
if(in_array($level_id, $custom_trial_a))
|
136 |
-
$custom_trial = 1;
|
137 |
-
else
|
138 |
-
$custom_trial = 0;
|
139 |
-
}
|
140 |
-
else
|
141 |
-
$custom_trial = 0;
|
142 |
-
|
143 |
-
if(!empty($custom_trial))
|
144 |
-
{
|
145 |
-
$trial_amount = $trial_amount_a[$n];
|
146 |
-
$trial_limit = $trial_limit_a[$n];
|
147 |
-
}
|
148 |
-
else
|
149 |
-
{
|
150 |
-
$trial_amount = '';
|
151 |
-
$trial_limit = '';
|
152 |
-
}
|
153 |
-
}
|
154 |
-
else
|
155 |
-
{
|
156 |
-
$billing_amount = '';
|
157 |
-
$cycle_number = '';
|
158 |
-
$cycle_period = 'Month';
|
159 |
-
$billing_limit = '';
|
160 |
-
$custom_trial = 0;
|
161 |
-
$trial_amount = '';
|
162 |
-
$trial_limit = '';
|
163 |
-
}
|
164 |
-
|
165 |
-
if(!empty($expiration_a))
|
166 |
-
{
|
167 |
-
if(in_array($level_id, $expiration_a))
|
168 |
-
$expiration = 1;
|
169 |
-
else
|
170 |
-
$expiration = 0;
|
171 |
-
}
|
172 |
-
else
|
173 |
-
$expiration = 0;
|
174 |
-
|
175 |
-
if(!empty($expiration))
|
176 |
-
{
|
177 |
-
$expiration_number = $expiration_number_a[$n];
|
178 |
-
$expiration_period = $expiration_period_a[$n];
|
179 |
-
}
|
180 |
-
else
|
181 |
-
{
|
182 |
-
$expiration_number = '';
|
183 |
-
$expiration_period = 'Month';
|
184 |
-
}
|
185 |
-
|
186 |
-
//okay, do the insert
|
187 |
-
$sqlQuery = "INSERT INTO $wpdb->pmpro_discount_codes_levels (code_id, level_id, initial_payment, billing_amount, cycle_number, cycle_period, billing_limit, trial_amount, trial_limit, expiration_number, expiration_period) VALUES('" .
|
188 |
-
|
189 |
-
if($wpdb->query($sqlQuery) !== false)
|
190 |
-
{
|
191 |
-
//okay
|
192 |
-
do_action("pmpro_save_discount_code_level", $
|
193 |
-
}
|
194 |
-
else
|
195 |
-
{
|
196 |
-
$level_errors[] = sprintf(__("Error saving values for the %s level.", "pmpro"), $wpdb->get_var("SELECT name FROM $wpdb->pmpro_membership_levels WHERE id = '" . $level_id . "' LIMIT 1"));
|
197 |
-
}
|
198 |
-
}
|
199 |
-
}
|
200 |
-
|
201 |
-
//errors?
|
202 |
-
if(!empty($level_errors))
|
203 |
-
{
|
204 |
-
$pmpro_msg = __("There were errors updating the level values: ", "pmpro") . implode(" ", $level_errors);
|
205 |
-
$pmpro_msgt = "error";
|
206 |
-
}
|
207 |
-
else
|
208 |
-
{
|
209 |
-
//all good. set edit = NULL so we go back to the overview page
|
210 |
-
$edit = NULL;
|
211 |
-
|
212 |
-
do_action("pmpro_save_discount_code", $saveid);
|
213 |
-
}
|
214 |
-
}
|
215 |
-
}
|
216 |
-
|
217 |
-
//are we deleting?
|
218 |
-
if(!empty($delete))
|
219 |
-
{
|
220 |
-
//is this a code?
|
221 |
-
$code = $wpdb->get_var("SELECT code FROM $wpdb->pmpro_discount_codes WHERE id = '" . $delete . "' LIMIT 1");
|
222 |
-
if(!empty($code))
|
223 |
-
{
|
224 |
-
//
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
$
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
//
|
295 |
-
if(
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
$
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
<
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
</
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
-
|
537 |
-
|
538 |
-
<
|
539 |
-
|
540 |
-
|
541 |
-
|
542 |
-
|
543 |
-
|
544 |
-
|
545 |
-
<
|
546 |
-
|
547 |
-
|
548 |
-
|
549 |
-
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
-
|
560 |
-
|
561 |
-
|
562 |
-
|
563 |
-
|
564 |
-
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
|
582 |
-
|
583 |
-
|
584 |
-
<td
|
585 |
-
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
-
|
592 |
-
|
593 |
-
|
594 |
-
|
595 |
-
|
596 |
-
|
597 |
-
|
598 |
-
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
|
604 |
-
|
605 |
-
$
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
|
614 |
-
|
615 |
-
|
616 |
-
|
617 |
-
|
618 |
-
|
619 |
-
|
620 |
-
|
621 |
-
|
622 |
-
|
623 |
-
|
624 |
-
|
625 |
-
|
626 |
-
|
627 |
-
|
628 |
-
|
629 |
-
|
630 |
-
|
631 |
-
|
632 |
-
<?php } ?>
|
633 |
-
|
634 |
-
<?php
|
635 |
-
require_once(dirname(__FILE__) . "/admin_footer.php");
|
636 |
-
?>
|
1 |
+
<?php
|
2 |
+
//only admins can get this
|
3 |
+
if(!function_exists("current_user_can") || (!current_user_can("manage_options") && !current_user_can("pmpro_discountcodes")))
|
4 |
+
{
|
5 |
+
die(__("You do not have permissions to perform this action.", "pmpro"));
|
6 |
+
}
|
7 |
+
|
8 |
+
//vars
|
9 |
+
global $wpdb, $pmpro_currency_symbol;
|
10 |
+
|
11 |
+
if(isset($_REQUEST['edit']))
|
12 |
+
$edit = $_REQUEST['edit'];
|
13 |
+
else
|
14 |
+
$edit = false;
|
15 |
+
|
16 |
+
if(isset($_REQUEST['delete']))
|
17 |
+
$delete = $_REQUEST['delete'];
|
18 |
+
else
|
19 |
+
$delete = false;
|
20 |
+
|
21 |
+
if(isset($_REQUEST['saveid']))
|
22 |
+
$saveid = $_POST['saveid'];
|
23 |
+
else
|
24 |
+
$saveid = false;
|
25 |
+
|
26 |
+
if($saveid)
|
27 |
+
{
|
28 |
+
//get vars
|
29 |
+
$code = $_POST['code'];
|
30 |
+
$starts_month = $_POST['starts_month'];
|
31 |
+
$starts_day = $_POST['starts_day'];
|
32 |
+
$starts_year = $_POST['starts_year'];
|
33 |
+
$expires_month = $_POST['expires_month'];
|
34 |
+
$expires_day = $_POST['expires_day'];
|
35 |
+
$expires_year = $_POST['expires_year'];
|
36 |
+
$uses = $_POST['uses'];
|
37 |
+
|
38 |
+
//fix up dates
|
39 |
+
$starts = date("Y-m-d", strtotime($starts_month . "/" . $starts_day . "/" . $starts_year));
|
40 |
+
$expires = date("Y-m-d", strtotime($expires_month . "/" . $expires_day . "/" . $expires_year));
|
41 |
+
|
42 |
+
//updating or new?
|
43 |
+
if($saveid > 0)
|
44 |
+
{
|
45 |
+
$sqlQuery = "UPDATE $wpdb->pmpro_discount_codes SET code = '" . $wpdb->escape($code) . "', starts = '" . $starts . "', expires = '" . $expires . "', uses = '" . intval($uses) . "' WHERE id = '" . $saveid . "' LIMIT 1";
|
46 |
+
if($wpdb->query($sqlQuery) !== false)
|
47 |
+
{
|
48 |
+
$pmpro_msg = __("Discount code updated successfully.", "pmpro");
|
49 |
+
$pmpro_msgt = "success";
|
50 |
+
$saved = true;
|
51 |
+
$edit = $saveid;
|
52 |
+
}
|
53 |
+
else
|
54 |
+
{
|
55 |
+
$pmpro_msg = __("Error updating discount code. That code may already be in use.", "pmpro");
|
56 |
+
$pmpro_msgt = "error";
|
57 |
+
}
|
58 |
+
}
|
59 |
+
else
|
60 |
+
{
|
61 |
+
$sqlQuery = "INSERT INTO $wpdb->pmpro_discount_codes (code, starts, expires, uses) VALUES('" . $wpdb->escape($code) . "', '" . $starts . "', '" . $expires . "', '" . intval($uses) . "')";
|
62 |
+
if($wpdb->query($sqlQuery) !== false)
|
63 |
+
{
|
64 |
+
$pmpro_msg = __("Discount code added successfully.", "pmpro");
|
65 |
+
$pmpro_msgt = "success";
|
66 |
+
$saved = true;
|
67 |
+
$edit = $wpdb->insert_id;
|
68 |
+
}
|
69 |
+
else
|
70 |
+
{
|
71 |
+
$pmpro_msg = __("Error adding discount code. That code may already be in use.", "pmpro") . $wpdb->last_error;
|
72 |
+
$pmpro_msgt = "error";
|
73 |
+
}
|
74 |
+
}
|
75 |
+
|
76 |
+
//now add the membership level rows
|
77 |
+
if($saved && $edit > 0)
|
78 |
+
{
|
79 |
+
//get the submitted values
|
80 |
+
$all_levels_a = $_REQUEST['all_levels'];
|
81 |
+
if(!empty($_REQUEST['levels']))
|
82 |
+
$levels_a = $_REQUEST['levels'];
|
83 |
+
else
|
84 |
+
$levels_a = array();
|
85 |
+
$initial_payment_a = $_REQUEST['initial_payment'];
|
86 |
+
if(!empty($_REQUEST['recurring']))
|
87 |
+
$recurring_a = $_REQUEST['recurring'];
|
88 |
+
$billing_amount_a = $_REQUEST['billing_amount'];
|
89 |
+
$cycle_number_a = $_REQUEST['cycle_number'];
|
90 |
+
$cycle_period_a = $_REQUEST['cycle_period'];
|
91 |
+
$billing_limit_a = $_REQUEST['billing_limit'];
|
92 |
+
if(!empty($_REQUEST['custom_trial']))
|
93 |
+
$custom_trial_a = $_REQUEST['custom_trial'];
|
94 |
+
$trial_amount_a = $_REQUEST['trial_amount'];
|
95 |
+
$trial_limit_a = $_REQUEST['trial_limit'];
|
96 |
+
if(!empty($_REQUEST['expiration']))
|
97 |
+
$expiration_a = $_REQUEST['expiration'];
|
98 |
+
$expiration_number_a = $_REQUEST['expiration_number'];
|
99 |
+
$expiration_period_a = $_REQUEST['expiration_period'];
|
100 |
+
|
101 |
+
//clear the old rows
|
102 |
+
$sqlQuery = "DELETE FROM $wpdb->pmpro_discount_codes_levels WHERE code_id = '" . $edit . "'";
|
103 |
+
$wpdb->query($sqlQuery);
|
104 |
+
|
105 |
+
//add a row for each checked level
|
106 |
+
if(!empty($levels_a))
|
107 |
+
{
|
108 |
+
foreach($levels_a as $level_id)
|
109 |
+
{
|
110 |
+
//get the values ready
|
111 |
+
$n = array_search($level_id, $all_levels_a); //this is the key location of this level's values
|
112 |
+
$initial_payment = $initial_payment_a[$n];
|
113 |
+
|
114 |
+
//is this recurring?
|
115 |
+
if(!empty($recurring_a))
|
116 |
+
{
|
117 |
+
if(in_array($level_id, $recurring_a))
|
118 |
+
$recurring = 1;
|
119 |
+
else
|
120 |
+
$recurring = 0;
|
121 |
+
}
|
122 |
+
else
|
123 |
+
$recurring = 0;
|
124 |
+
|
125 |
+
if(!empty($recurring))
|
126 |
+
{
|
127 |
+
$billing_amount = $billing_amount_a[$n];
|
128 |
+
$cycle_number = $cycle_number_a[$n];
|
129 |
+
$cycle_period = $cycle_period_a[$n];
|
130 |
+
$billing_limit = $billing_limit_a[$n];
|
131 |
+
|
132 |
+
//custom trial
|
133 |
+
if(!empty($custom_trial_a))
|
134 |
+
{
|
135 |
+
if(in_array($level_id, $custom_trial_a))
|
136 |
+
$custom_trial = 1;
|
137 |
+
else
|
138 |
+
$custom_trial = 0;
|
139 |
+
}
|
140 |
+
else
|
141 |
+
$custom_trial = 0;
|
142 |
+
|
143 |
+
if(!empty($custom_trial))
|
144 |
+
{
|
145 |
+
$trial_amount = $trial_amount_a[$n];
|
146 |
+
$trial_limit = $trial_limit_a[$n];
|
147 |
+
}
|
148 |
+
else
|
149 |
+
{
|
150 |
+
$trial_amount = '';
|
151 |
+
$trial_limit = '';
|
152 |
+
}
|
153 |
+
}
|
154 |
+
else
|
155 |
+
{
|
156 |
+
$billing_amount = '';
|
157 |
+
$cycle_number = '';
|
158 |
+
$cycle_period = 'Month';
|
159 |
+
$billing_limit = '';
|
160 |
+
$custom_trial = 0;
|
161 |
+
$trial_amount = '';
|
162 |
+
$trial_limit = '';
|
163 |
+
}
|
164 |
+
|
165 |
+
if(!empty($expiration_a))
|
166 |
+
{
|
167 |
+
if(in_array($level_id, $expiration_a))
|
168 |
+
$expiration = 1;
|
169 |
+
else
|
170 |
+
$expiration = 0;
|
171 |
+
}
|
172 |
+
else
|
173 |
+
$expiration = 0;
|
174 |
+
|
175 |
+
if(!empty($expiration))
|
176 |
+
{
|
177 |
+
$expiration_number = $expiration_number_a[$n];
|
178 |
+
$expiration_period = $expiration_period_a[$n];
|
179 |
+
}
|
180 |
+
else
|
181 |
+
{
|
182 |
+
$expiration_number = '';
|
183 |
+
$expiration_period = 'Month';
|
184 |
+
}
|
185 |
+
|
186 |
+
//okay, do the insert
|
187 |
+
$sqlQuery = "INSERT INTO $wpdb->pmpro_discount_codes_levels (code_id, level_id, initial_payment, billing_amount, cycle_number, cycle_period, billing_limit, trial_amount, trial_limit, expiration_number, expiration_period) VALUES('" . $wpdb->escape($edit) . "', '" . $wpdb->escape($level_id) . "', '" . (double)$wpdb->escape($initial_payment) . "', '" . (double)$wpdb->escape($billing_amount) . "', '" . intval($wpdb->escape($cycle_number)) . "', '" . $wpdb->escape($cycle_period) . "', '" . intval($wpdb->escape($billing_limit)) . "', '" . (double)$wpdb->escape($trial_amount) . "', '" . intval($wpdb->escape($trial_limit)) . "', '" . intval($wpdb->escape($expiration_number)) . "', '" . $wpdb->escape($expiration_period) . "')";
|
188 |
+
|
189 |
+
if($wpdb->query($sqlQuery) !== false)
|
190 |
+
{
|
191 |
+
//okay
|
192 |
+
do_action("pmpro_save_discount_code_level", $saveid, $level_id);
|
193 |
+
}
|
194 |
+
else
|
195 |
+
{
|
196 |
+
$level_errors[] = sprintf(__("Error saving values for the %s level.", "pmpro"), $wpdb->get_var("SELECT name FROM $wpdb->pmpro_membership_levels WHERE id = '" . $level_id . "' LIMIT 1"));
|
197 |
+
}
|
198 |
+
}
|
199 |
+
}
|
200 |
+
|
201 |
+
//errors?
|
202 |
+
if(!empty($level_errors))
|
203 |
+
{
|
204 |
+
$pmpro_msg = __("There were errors updating the level values: ", "pmpro") . implode(" ", $level_errors);
|
205 |
+
$pmpro_msgt = "error";
|
206 |
+
}
|
207 |
+
else
|
208 |
+
{
|
209 |
+
//all good. set edit = NULL so we go back to the overview page
|
210 |
+
$edit = NULL;
|
211 |
+
|
212 |
+
do_action("pmpro_save_discount_code", $saveid);
|
213 |
+
}
|
214 |
+
}
|
215 |
+
}
|
216 |
+
|
217 |
+
//are we deleting?
|
218 |
+
if(!empty($delete))
|
219 |
+
{
|
220 |
+
//is this a code?
|
221 |
+
$code = $wpdb->get_var("SELECT code FROM $wpdb->pmpro_discount_codes WHERE id = '" . $delete . "' LIMIT 1");
|
222 |
+
if(!empty($code))
|
223 |
+
{
|
224 |
+
//delete the code levels
|
225 |
+
$r1 = $wpdb->query("DELETE FROM $wpdb->pmpro_discount_codes_levels WHERE code_id = '" . $delete . "'");
|
226 |
+
|
227 |
+
if($r1 !== false)
|
228 |
+
{
|
229 |
+
//delete the code
|
230 |
+
$r2 = $wpdb->query("DELETE FROM $wpdb->pmpro_discount_codes WHERE id = '" . $delete . "' LIMIT 1");
|
231 |
+
|
232 |
+
if($r2 !== false)
|
233 |
+
{
|
234 |
+
$pmpro_msg = sprintf(__("Code %s deleted successfully.", "pmpro"), $code);
|
235 |
+
$pmpro_msgt = "success";
|
236 |
+
}
|
237 |
+
else
|
238 |
+
{
|
239 |
+
$pmpro_msg = __("Error deleting discount code. The code was only partially deleted. Please try again.", "pmpro");
|
240 |
+
$pmpro_msgt = "error";
|
241 |
+
}
|
242 |
+
}
|
243 |
+
else
|
244 |
+
{
|
245 |
+
$pmpro_msg = __("Error deleting code. Please try again.", "pmpro");
|
246 |
+
$pmpro_msgt = "error";
|
247 |
+
}
|
248 |
+
}
|
249 |
+
else
|
250 |
+
{
|
251 |
+
$pmpro_msg = __("Code not found.", "pmpro");
|
252 |
+
$pmpro_msgt = "error";
|
253 |
+
}
|
254 |
+
}
|
255 |
+
|
256 |
+
require_once(dirname(__FILE__) . "/admin_header.php");
|
257 |
+
?>
|
258 |
+
|
259 |
+
<?php if($edit) { ?>
|
260 |
+
|
261 |
+
<h2>
|
262 |
+
<?php
|
263 |
+
if($edit > 0)
|
264 |
+
echo __("Edit Discount Code", "pmpro");
|
265 |
+
else
|
266 |
+
echo __("Add New Discount Code", "pmpro");
|
267 |
+
?>
|
268 |
+
</h2>
|
269 |
+
|
270 |
+
<?php if(!empty($pmpro_msg)) { ?>
|
271 |
+
<div id="message" class="<?php if($pmpro_msgt == "success") echo "updated fade"; else echo "error"; ?>"><p><?php echo $pmpro_msg?></p></div>
|
272 |
+
<?php } ?>
|
273 |
+
|
274 |
+
<div>
|
275 |
+
<?php
|
276 |
+
// get the code...
|
277 |
+
if($edit > 0)
|
278 |
+
{
|
279 |
+
$code = $wpdb->get_row("SELECT *, UNIX_TIMESTAMP(starts) as starts, UNIX_TIMESTAMP(expires) as expires FROM $wpdb->pmpro_discount_codes WHERE id = '" . $edit . "' LIMIT 1", OBJECT);
|
280 |
+
$uses = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->pmpro_discount_codes_uses WHERE code_id = '" . $code->id . "'");
|
281 |
+
$levels = $wpdb->get_results("SELECT l.id, l.name, cl.initial_payment, cl.billing_amount, cl.cycle_number, cl.period, cl.billing_limit, cl.trial_amount, cl.trial_limit FROM $wpdb->pmpro_membership_levels l LEFT JOIN $wpdb->pmpro_discount_codes_levels cl ON l.id = cl.level_id WHERE cl.code_id = '" . $code->code . "'");
|
282 |
+
$temp_id = $code->id;
|
283 |
+
}
|
284 |
+
elseif(!empty($copy) && $copy > 0)
|
285 |
+
{
|
286 |
+
$code = $wpdb->get_row("SELECT *, UNIX_TIMESTAMP(starts) as starts, UNIX_TIMESTAMP(expires) as expires FROM $wpdb->pmpro_discount_codes WHERE id = '" . $copy . "' LIMIT 1", OBJECT);
|
287 |
+
$temp_id = $level->id;
|
288 |
+
$level->id = NULL;
|
289 |
+
}
|
290 |
+
|
291 |
+
// didn't find a discount code, let's add a new one...
|
292 |
+
if(empty($code->id)) $edit = -1;
|
293 |
+
|
294 |
+
//defaults for new codes
|
295 |
+
if($edit == -1)
|
296 |
+
{
|
297 |
+
$code = new stdClass();
|
298 |
+
$code->code = pmpro_getDiscountCode();
|
299 |
+
}
|
300 |
+
?>
|
301 |
+
<form action="" method="post">
|
302 |
+
<input name="saveid" type="hidden" value="<?php echo $edit?>" />
|
303 |
+
<table class="form-table">
|
304 |
+
<tbody>
|
305 |
+
<tr>
|
306 |
+
<th scope="row" valign="top"><label><?php _e('ID', 'pmpro');?>:</label></th>
|
307 |
+
<td class="pmpro_lite"><?php if(!empty($code->id)) echo $code->id; else echo __("This will be generated when you save.", "pmpro");?></td>
|
308 |
+
</tr>
|
309 |
+
|
310 |
+
<tr>
|
311 |
+
<th scope="row" valign="top"><label for="code"><?php _e('Code', 'pmpro');?>:</label></th>
|
312 |
+
<td><input name="code" type="text" size="20" value="<?php echo str_replace("\"", """, stripslashes($code->code))?>" /></td>
|
313 |
+
</tr>
|
314 |
+
|
315 |
+
<?php
|
316 |
+
//some vars for the dates
|
317 |
+
$current_day = date("j");
|
318 |
+
if(!empty($code->starts))
|
319 |
+
$selected_starts_day = date("j", $code->starts);
|
320 |
+
else
|
321 |
+
$selected_starts_day = $current_day;
|
322 |
+
if(!empty($code->expires))
|
323 |
+
$selected_expires_day = date("j", $code->expires);
|
324 |
+
else
|
325 |
+
$selected_expires_day = $current_day;
|
326 |
+
|
327 |
+
$current_month = date("M");
|
328 |
+
if(!empty($code->starts))
|
329 |
+
$selected_starts_month = date("m", $code->starts);
|
330 |
+
else
|
331 |
+
$selected_starts_month = date("m");
|
332 |
+
if(!empty($code->expires))
|
333 |
+
$selected_expires_month = date("m", $code->expires);
|
334 |
+
else
|
335 |
+
$selected_expires_month = date("m");
|
336 |
+
|
337 |
+
$current_year = date("Y");
|
338 |
+
if(!empty($code->starts))
|
339 |
+
$selected_starts_year = date("Y", $code->starts);
|
340 |
+
else
|
341 |
+
$selected_starts_year = $current_year;
|
342 |
+
if(!empty($code->expires))
|
343 |
+
$selected_expires_year = date("Y", $code->expires);
|
344 |
+
else
|
345 |
+
$selected_expires_year = (int)$current_year + 1;
|
346 |
+
?>
|
347 |
+
|
348 |
+
<tr>
|
349 |
+
<th scope="row" valign="top"><label for="starts"><?php _e('Start Date', 'pmpro');?>:</label></th>
|
350 |
+
<td>
|
351 |
+
<select name="starts_month">
|
352 |
+
<?php
|
353 |
+
for($i = 1; $i < 13; $i++)
|
354 |
+
{
|
355 |
+
?>
|
356 |
+
<option value="<?php echo $i?>" <?php if($i == $selected_starts_month) { ?>selected="selected"<?php } ?>><?php echo date("M", strtotime($i . "/1/" . $current_year))?></option>
|
357 |
+
<?php
|
358 |
+
}
|
359 |
+
?>
|
360 |
+
</select>
|
361 |
+
<input name="starts_day" type="text" size="2" value="<?php echo $selected_starts_day?>" />
|
362 |
+
<input name="starts_year" type="text" size="4" value="<?php echo $selected_starts_year?>" />
|
363 |
+
</td>
|
364 |
+
</tr>
|
365 |
+
|
366 |
+
<tr>
|
367 |
+
<th scope="row" valign="top"><label for="expires"><?php _e('Expiration Date', 'pmpro');?>:</label></th>
|
368 |
+
<td>
|
369 |
+
<select name="expires_month">
|
370 |
+
<?php
|
371 |
+
for($i = 1; $i < 13; $i++)
|
372 |
+
{
|
373 |
+
?>
|
374 |
+
<option value="<?php echo $i?>" <?php if($i == $selected_expires_month) { ?>selected="selected"<?php } ?>><?php echo date("M", strtotime($i . "/1/" . $current_year))?></option>
|
375 |
+
<?php
|
376 |
+
}
|
377 |
+
?>
|
378 |
+
</select>
|
379 |
+
<input name="expires_day" type="text" size="2" value="<?php echo $selected_expires_day?>" />
|
380 |
+
<input name="expires_year" type="text" size="4" value="<?php echo $selected_expires_year?>" />
|
381 |
+
</td>
|
382 |
+
</tr>
|
383 |
+
|
384 |
+
<tr>
|
385 |
+
<th scope="row" valign="top"><label for="uses"><?php _ex('Uses', 'Number of uses for a discount code', 'pmpro');?>:</label></th>
|
386 |
+
<td>
|
387 |
+
<input name="uses" type="text" size="10" value="<?php if(!empty($code->uses)) echo str_replace("\"", """, stripslashes($code->uses));?>" />
|
388 |
+
<small class="pmpro_lite"><?php _e('Leave blank for unlimited uses.', 'pmpro');?></small>
|
389 |
+
</td>
|
390 |
+
</tr>
|
391 |
+
|
392 |
+
</tbody>
|
393 |
+
</table>
|
394 |
+
|
395 |
+
<?php do_action("pmpro_discount_code_after_settings"); ?>
|
396 |
+
|
397 |
+
<h3>Which Levels Will This Code Apply To?</h3>
|
398 |
+
|
399 |
+
<div class="pmpro_discount_levels">
|
400 |
+
<?php
|
401 |
+
$levels = $wpdb->get_results("SELECT * FROM $wpdb->pmpro_membership_levels");
|
402 |
+
foreach($levels as $level)
|
403 |
+
{
|
404 |
+
//if this level is already managed for this discount code, use the code values
|
405 |
+
if($edit > 0)
|
406 |
+
{
|
407 |
+
$code_level = $wpdb->get_row("SELECT l.id, cl.*, l.name, l.description, l.allow_signups FROM $wpdb->pmpro_discount_codes_levels cl LEFT JOIN $wpdb->pmpro_membership_levels l ON cl.level_id = l.id WHERE cl.code_id = '" . $edit . "' AND cl.level_id = '" . $level->id . "' LIMIT 1");
|
408 |
+
if($code_level)
|
409 |
+
{
|
410 |
+
$level = $code_level;
|
411 |
+
$level->checked = true;
|
412 |
+
}
|
413 |
+
else
|
414 |
+
$level_checked = false;
|
415 |
+
}
|
416 |
+
else
|
417 |
+
$level_checked = false;
|
418 |
+
?>
|
419 |
+
<div>
|
420 |
+
<input type="hidden" name="all_levels[]" value="<?php echo $level->id?>" />
|
421 |
+
<input type="checkbox" name="levels[]" value="<?php echo $level->id?>" <?php if(!empty($level->checked)) { ?>checked="checked"<?php } ?> onclick="if(jQuery(this).is(':checked')) jQuery(this).next().show(); else jQuery(this).next().hide();" />
|
422 |
+
<?php echo $level->name?>
|
423 |
+
<div class="pmpro_discount_levels_pricing level_<?php echo $level->id?>" <?php if(empty($level->checked)) { ?>style="display: none;"<?php } ?>>
|
424 |
+
<table class="form-table">
|
425 |
+
<tbody>
|
426 |
+
<tr>
|
427 |
+
<th scope="row" valign="top"><label for="initial_payment"><?php _e('Initial Payment', 'pmpro');?>:</label></th>
|
428 |
+
<td><?php echo $pmpro_currency_symbol?><input name="initial_payment[]" type="text" size="20" value="<?php echo str_replace("\"", """, stripslashes($level->initial_payment))?>" /> <small><?php _e('The initial amount collected at registration.', 'pmpro');?></small></td>
|
429 |
+
</tr>
|
430 |
+
|
431 |
+
<tr>
|
432 |
+
<th scope="row" valign="top"><label><?php _e('Recurring Subscription', 'pmpro');?>:</label></th>
|
433 |
+
<td><input class="recurring_checkbox" name="recurring[]" type="checkbox" value="<?php echo $level->id?>" <?php if(pmpro_isLevelRecurring($level)) { echo "checked='checked'"; } ?> onclick="if(jQuery(this).attr('checked')) { jQuery(this).parent().parent().siblings('.recurring_info').show(); if(!jQuery('#custom_trial_<?php echo $level->id?>').is(':checked')) jQuery(this).parent().parent().siblings('.trial_info').hide();} else jQuery(this).parent().parent().siblings('.recurring_info').hide();" /> <small><?php _e('Check if this level has a recurring subscription payment.', 'pmpro');?></small></td>
|
434 |
+
</tr>
|
435 |
+
|
436 |
+
<tr class="recurring_info" <?php if(!pmpro_isLevelRecurring($level)) {?>style="display: none;"<?php } ?>>
|
437 |
+
<th scope="row" valign="top"><label for="billing_amount"><?php _e('Billing Ammount', 'pmpro');?>:</label></th>
|
438 |
+
<td>
|
439 |
+
<?php echo $pmpro_currency_symbol?><input name="billing_amount[]" type="text" size="20" value="<?php echo str_replace("\"", """, stripslashes($level->billing_amount))?>" /> <small>per</small>
|
440 |
+
<input name="cycle_number[]" type="text" size="10" value="<?php echo str_replace("\"", """, stripslashes($level->cycle_number))?>" />
|
441 |
+
<select name="cycle_period[]" onchange="updateCyclePeriod();">
|
442 |
+
<?php
|
443 |
+
$cycles = array( 'Day(s)' => 'Day', 'Week(s)' => 'Week', 'Month(s)' => 'Month', 'Year(s)' => 'Year' );
|
444 |
+
foreach ( $cycles as $name => $value ) {
|
445 |
+
echo "<option value='$value'";
|
446 |
+
if ( $level->cycle_period == $value ) echo " selected='selected'";
|
447 |
+
echo ">$name</option>";
|
448 |
+
}
|
449 |
+
?>
|
450 |
+
</select>
|
451 |
+
<br /><small><?php _e('The amount to be billed one cycle after the initial payment.', 'pmpro');?></small>
|
452 |
+
</td>
|
453 |
+
</tr>
|
454 |
+
|
455 |
+
<tr class="recurring_info" <?php if(!pmpro_isLevelRecurring($level)) {?>style="display: none;"<?php } ?>>
|
456 |
+
<th scope="row" valign="top"><label for="billing_limit"><?php _e('Billing Cycle Limit', 'pmpro');?>:</label></th>
|
457 |
+
<td>
|
458 |
+
<input name="billing_limit[]" type="text" size="20" value="<?php echo $level->billing_limit?>" />
|
459 |
+
<br /><small><?php _e('The <strong>total</strong> number of recurring billing cycles for this level, including the trial period (if applicable) but not including the initial payment. Set to zero if membership is indefinite.', 'pmpro');?></small>
|
460 |
+
</td>
|
461 |
+
</tr>
|
462 |
+
|
463 |
+
<tr class="recurring_info" <?php if (!pmpro_isLevelRecurring($level)) echo "style='display:none;'";?>>
|
464 |
+
<th scope="row" valign="top"><label><?php _e('Custom Trial', 'pmpro');?>:</label></th>
|
465 |
+
<td><input id="custom_trial_<?php echo $level->id?>" name="custom_trial[]" type="checkbox" value="<?php echo $level->id?>" <?php if ( pmpro_isLevelTrial($level) ) { echo "checked='checked'"; } ?> onclick="if(jQuery(this).attr('checked')) jQuery(this).parent().parent().siblings('.trial_info').show(); else jQuery(this).parent().parent().siblings('.trial_info').hide();" /> <?php _e('Check to add a custom trial period.', 'pmpro');?></td>
|
466 |
+
</tr>
|
467 |
+
|
468 |
+
<tr class="trial_info recurring_info" <?php if (!pmpro_isLevelTrial($level)) echo "style='display:none;'";?>>
|
469 |
+
<th scope="row" valign="top"><label for="trial_amount"><?php _e('Trial Billing Amount', 'pmpro');?>:</label></th>
|
470 |
+
<td>
|
471 |
+
<?php echo $pmpro_currency_symbol?><input name="trial_amount[]" type="text" size="20" value="<?php echo str_replace("\"", """, stripslashes($level->trial_amount))?>" />
|
472 |
+
<small><?php _e('for the first', 'pmpro');?></small>
|
473 |
+
<input name="trial_limit[]" type="text" size="10" value="<?php echo str_replace("\"", """, stripslashes($level->trial_limit))?>" />
|
474 |
+
<small><?php _e('subscription payments', 'pmpro');?>.</small>
|
475 |
+
</td>
|
476 |
+
</tr>
|
477 |
+
|
478 |
+
<tr>
|
479 |
+
<th scope="row" valign="top"><label><?php _e('Membership Expiration', 'pmpro');?>:</label></th>
|
480 |
+
<td><input id="expiration" name="expiration[]" type="checkbox" value="<?php echo $level->id?>" <?php if(pmpro_isLevelExpiring($level)) { echo "checked='checked'"; } ?> onclick="if(jQuery(this).is(':checked')) { jQuery(this).parent().parent().siblings('.expiration_info').show(); } else { jQuery(this).parent().parent().siblings('.expiration_info').hide();}" /> <small><?php _e('Check this to set an expiration date for new sign ups.', 'pmpro');?></small></td>
|
481 |
+
</tr>
|
482 |
+
|
483 |
+
<tr class="expiration_info" <?php if(!pmpro_isLevelExpiring($level)) {?>style="display: none;"<?php } ?>>
|
484 |
+
<th scope="row" valign="top"><label for="billing_amount"><?php _e('Expires In', 'pmpro');?>:</label></th>
|
485 |
+
<td>
|
486 |
+
<input id="expiration_number" name="expiration_number[]" type="text" size="10" value="<?php echo str_replace("\"", """, stripslashes($level->expiration_number))?>" />
|
487 |
+
<select id="expiration_period" name="expiration_period[]">
|
488 |
+
<?php
|
489 |
+
$cycles = array( 'Day(s)' => 'Day', 'Week(s)' => 'Week', 'Month(s)' => 'Month', 'Year(s)' => 'Year' );
|
490 |
+
foreach ( $cycles as $name => $value ) {
|
491 |
+
echo "<option value='$value'";
|
492 |
+
if ( $level->expiration_period == $value ) echo " selected='selected'";
|
493 |
+
echo ">$name</option>";
|
494 |
+
}
|
495 |
+
?>
|
496 |
+
</select>
|
497 |
+
<br /><small><?php _e('How long before the expiration expires. Note that any future payments will be cancelled when the membership expires.', 'pmpro');?></small>
|
498 |
+
</td>
|
499 |
+
</tr>
|
500 |
+
</tbody>
|
501 |
+
</table>
|
502 |
+
|
503 |
+
<?php do_action("pmpro_discount_code_after_level_settings", $edit, $level); ?>
|
504 |
+
|
505 |
+
</div>
|
506 |
+
</div>
|
507 |
+
<script>
|
508 |
+
|
509 |
+
</script>
|
510 |
+
<?php
|
511 |
+
}
|
512 |
+
?>
|
513 |
+
</div>
|
514 |
+
|
515 |
+
<p class="submit topborder">
|
516 |
+
<input name="save" type="submit" class="button-primary" value="Save Code" />
|
517 |
+
<input name="cancel" type="button" value="Cancel" onclick="location.href='<?php echo get_admin_url(NULL, '/admin.php?page=pmpro-discountcodes')?>';" />
|
518 |
+
</p>
|
519 |
+
</form>
|
520 |
+
</div>
|
521 |
+
|
522 |
+
<?php } else { ?>
|
523 |
+
|
524 |
+
<h2>
|
525 |
+
<?php _e('Memberships Discount Codes', 'pmpro');?>
|
526 |
+
<a href="admin.php?page=pmpro-discountcodes&edit=-1" class="button add-new-h2"><?php _e('Add New Discount Code', 'pmpro');?></a>
|
527 |
+
</h2>
|
528 |
+
|
529 |
+
<?php if(!empty($pmpro_msg)) { ?>
|
530 |
+
<div id="message" class="<?php if($pmpro_msgt == "success") echo "updated fade"; else echo "error"; ?>"><p><?php echo $pmpro_msg?></p></div>
|
531 |
+
<?php } ?>
|
532 |
+
|
533 |
+
<form id="posts-filter" method="get" action="">
|
534 |
+
<p class="search-box">
|
535 |
+
<label class="screen-reader-text" for="post-search-input"><?php _e('Search Discount Codes', 'pmpro');?>:</label>
|
536 |
+
<input type="hidden" name="page" value="pmpro-discountcodes" />
|
537 |
+
<input id="post-search-input" type="text" value="<?php if(!empty($s)) echo $s;?>" name="s" size="30" />
|
538 |
+
<input class="button" type="submit" value="<?php _e('Search', 'pmpro');?>" id="search-submit "/>
|
539 |
+
</p>
|
540 |
+
</form>
|
541 |
+
|
542 |
+
<br class="clear" />
|
543 |
+
|
544 |
+
<table class="widefat">
|
545 |
+
<thead>
|
546 |
+
<tr>
|
547 |
+
<th><?php _e('ID', 'pmpro');?></th>
|
548 |
+
<th><?php _e('Code', 'pmpro');?></th>
|
549 |
+
<th><?php _e('Starts', 'pmpro');?></th>
|
550 |
+
<th><?php _e('Expires', 'pmpro');?></th>
|
551 |
+
<th><?php _e('Uses', 'pmpro');?></th>
|
552 |
+
<th><?php _e('Levels', 'pmpro');?></th>
|
553 |
+
<th></th>
|
554 |
+
<th></th>
|
555 |
+
</tr>
|
556 |
+
</thead>
|
557 |
+
<tbody>
|
558 |
+
<?php
|
559 |
+
$sqlQuery = "SELECT *, UNIX_TIMESTAMP(starts) as starts, UNIX_TIMESTAMP(expires) as expires FROM $wpdb->pmpro_discount_codes ";
|
560 |
+
if(!empty($s))
|
561 |
+
$sqlQuery .= "WHERE code LIKE '%$s%' ";
|
562 |
+
$sqlQuery .= "ORDER BY id ASC";
|
563 |
+
|
564 |
+
$codes = $wpdb->get_results($sqlQuery, OBJECT);
|
565 |
+
|
566 |
+
if(!$codes)
|
567 |
+
{
|
568 |
+
?>
|
569 |
+
<tr><td colspan="7" class="pmpro_pad20">
|
570 |
+
<p><?php _e('Discount codes allow you to offer your memberships at discounted prices to select customers.', 'pmpro');?> <a href="admin.php?page=pmpro-discountcodes&edit=-1"><?php _e('Create your first discount code now', 'pmpro');?></a>.</p>
|
571 |
+
</td></tr>
|
572 |
+
<?php
|
573 |
+
}
|
574 |
+
else
|
575 |
+
{
|
576 |
+
foreach($codes as $code)
|
577 |
+
{
|
578 |
+
?>
|
579 |
+
<tr>
|
580 |
+
<td><?php echo $code->id?></td>
|
581 |
+
<td>
|
582 |
+
<a href="?page=pmpro-discountcodes&edit=<?php echo $code->id?>"><?php echo $code->code?></a>
|
583 |
+
</td>
|
584 |
+
<td>
|
585 |
+
<?php echo date(get_option('date_format'), $code->starts)?>
|
586 |
+
</td>
|
587 |
+
<td>
|
588 |
+
<?php echo date(get_option('date_format'), $code->expires)?>
|
589 |
+
</td>
|
590 |
+
<td>
|
591 |
+
<?php
|
592 |
+
$uses = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->pmpro_discount_codes_uses WHERE code_id = '" . $code->id . "'");
|
593 |
+
if($code->uses > 0)
|
594 |
+
echo "<strong>" . (int)$uses . "</strong>/" . $code->uses;
|
595 |
+
else
|
596 |
+
echo "<strong>" . (int)$uses . "</strong>/unlimited";
|
597 |
+
?>
|
598 |
+
</td>
|
599 |
+
<td>
|
600 |
+
<?php
|
601 |
+
$sqlQuery = "SELECT l.id, l.name FROM $wpdb->pmpro_membership_levels l LEFT JOIN $wpdb->pmpro_discount_codes_levels cl ON l.id = cl.level_id WHERE cl.code_id = '" . $code->id . "'";
|
602 |
+
$levels = $wpdb->get_results($sqlQuery);
|
603 |
+
|
604 |
+
$level_names = array();
|
605 |
+
foreach($levels as $level)
|
606 |
+
$level_names[] = "<a target=\"_blank\" href=\"" . pmpro_url("checkout", "?level=" . $level->id . "&discount_code=" . $code->code) . "\">" . $level->name . "</a>";
|
607 |
+
if($level_names)
|
608 |
+
echo implode(", ", $level_names);
|
609 |
+
else
|
610 |
+
echo "None";
|
611 |
+
?>
|
612 |
+
</td>
|
613 |
+
<td>
|
614 |
+
<a href="?page=pmpro-discountcodes&edit=<?php echo $code->id?>"><?php _e('edit', 'pmpro');?></a>
|
615 |
+
</td>
|
616 |
+
<td>
|
617 |
+
<a href="javascript:askfirst('<?php printf(__('Are you sure you want to delete the %s discount code? The subscriptions for existing users will not change, but new users will not be able to use this code anymore.', 'pmpro'), $code->code);?>', '?page=pmpro-discountcodes&delete=<?php echo $code->id?>'); void(0);"><?php _e('delete', 'pmpro');?></a>
|
618 |
+
</td>
|
619 |
+
</tr>
|
620 |
+
<?php
|
621 |
+
}
|
622 |
+
}
|
623 |
+
?>
|
624 |
+
</tbody>
|
625 |
+
</table>
|
626 |
+
|
627 |
+
<?php } ?>
|
628 |
+
|
629 |
+
<?php
|
630 |
+
require_once(dirname(__FILE__) . "/admin_footer.php");
|
631 |
+
?>
|
|
|
|
|
|
|
|
|
|
adminpages/emailsettings.php
CHANGED
@@ -1,181 +1,152 @@
|
|
1 |
-
<?php
|
2 |
-
//only admins can get this
|
3 |
-
if(!function_exists("current_user_can") || (!current_user_can("manage_options") && !current_user_can("pmpro_emailsettings")))
|
4 |
-
{
|
5 |
-
die(__("You do not have permissions to perform this action.", "pmpro"));
|
6 |
-
}
|
7 |
-
|
8 |
-
global $wpdb, $msg, $msgt;
|
9 |
-
|
10 |
-
//get/set settings
|
11 |
-
global $pmpro_pages;
|
12 |
-
if(!empty($_REQUEST['savesettings']))
|
13 |
-
{
|
14 |
-
//email options
|
15 |
-
pmpro_setOption("from_email");
|
16 |
-
pmpro_setOption("from_name");
|
17 |
-
|
18 |
-
|
19 |
-
pmpro_setOption("
|
20 |
-
pmpro_setOption("
|
21 |
-
pmpro_setOption("
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
$
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
$
|
32 |
-
|
33 |
-
$
|
34 |
-
|
35 |
-
$
|
36 |
-
$
|
37 |
-
|
38 |
-
$
|
39 |
-
|
40 |
-
$
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
$
|
45 |
-
$
|
46 |
-
$
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
</
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
<
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
</td>
|
154 |
-
</tr>
|
155 |
-
</tbody>
|
156 |
-
</table>
|
157 |
-
|
158 |
-
<h3><?php _e('Send members emails', 'pmpro');?>:</h3>
|
159 |
-
|
160 |
-
<table class="form-table">
|
161 |
-
<tbody>
|
162 |
-
<tr>
|
163 |
-
<th scope="row" valign="top">
|
164 |
-
<label for="email_admin_checkout"><?php _e('New Users', 'pmpro');?>:</label>
|
165 |
-
</th>
|
166 |
-
<td>
|
167 |
-
<input type="checkbox" id="email_member_notification" name="email_member_notification" value="1" <?php if(!empty($email_member_notification)) { ?>checked="checked"<?php } ?> />
|
168 |
-
<?php _e('Default WP notification email. (Recommended: Leave unchecked. Members will still get an email confirmation from PMPro after checkout.)', 'pmpro');?>
|
169 |
-
</td>
|
170 |
-
</tr>
|
171 |
-
</tbody>
|
172 |
-
</table>
|
173 |
-
|
174 |
-
<p class="submit">
|
175 |
-
<input name="savesettings" type="submit" class="button-primary" value="Save Settings" />
|
176 |
-
</p>
|
177 |
-
</form>
|
178 |
-
|
179 |
-
<?php
|
180 |
-
require_once(dirname(__FILE__) . "/admin_footer.php");
|
181 |
-
?>
|
1 |
+
<?php
|
2 |
+
//only admins can get this
|
3 |
+
if(!function_exists("current_user_can") || (!current_user_can("manage_options") && !current_user_can("pmpro_emailsettings")))
|
4 |
+
{
|
5 |
+
die(__("You do not have permissions to perform this action.", "pmpro"));
|
6 |
+
}
|
7 |
+
|
8 |
+
global $wpdb, $msg, $msgt;
|
9 |
+
|
10 |
+
//get/set settings
|
11 |
+
global $pmpro_pages;
|
12 |
+
if(!empty($_REQUEST['savesettings']))
|
13 |
+
{
|
14 |
+
//email options
|
15 |
+
pmpro_setOption("from_email");
|
16 |
+
pmpro_setOption("from_name");
|
17 |
+
|
18 |
+
pmpro_setOption("email_admin_checkout");
|
19 |
+
pmpro_setOption("email_admin_changes");
|
20 |
+
pmpro_setOption("email_admin_cancels");
|
21 |
+
pmpro_setOption("email_admin_billing");
|
22 |
+
|
23 |
+
pmpro_setOption("email_member_notification");
|
24 |
+
|
25 |
+
//assume success
|
26 |
+
$msg = true;
|
27 |
+
$msgt = "Your email settings have been updated.";
|
28 |
+
}
|
29 |
+
|
30 |
+
$from_email = pmpro_getOption("from_email");
|
31 |
+
$from_name = pmpro_getOption("from_name");
|
32 |
+
|
33 |
+
$email_admin_checkout = pmpro_getOption("email_admin_checkout");
|
34 |
+
$email_admin_changes = pmpro_getOption("email_admin_changes");
|
35 |
+
$email_admin_cancels = pmpro_getOption("email_admin_cancels");
|
36 |
+
$email_admin_billing = pmpro_getOption("email_admin_billing");
|
37 |
+
|
38 |
+
$email_member_notification = pmpro_getOption("email_member_notification");
|
39 |
+
|
40 |
+
if(empty($from_email))
|
41 |
+
{
|
42 |
+
$parsed = parse_url(home_url());
|
43 |
+
$hostname = $parsed[host];
|
44 |
+
$hostparts = split("\.", $hostname);
|
45 |
+
$email_domain = $hostparts[count($hostparts) - 2] . "." . $hostparts[count($hostparts) - 1];
|
46 |
+
$from_email = "wordpress@" . $email_domain;
|
47 |
+
pmpro_setOption("from_email", $from_email);
|
48 |
+
}
|
49 |
+
|
50 |
+
if(empty($from_name))
|
51 |
+
{
|
52 |
+
$from_name = "WordPress";
|
53 |
+
pmpro_setOption("from_name", $from_name);
|
54 |
+
}
|
55 |
+
|
56 |
+
require_once(dirname(__FILE__) . "/admin_header.php");
|
57 |
+
?>
|
58 |
+
|
59 |
+
<form action="" method="post" enctype="multipart/form-data">
|
60 |
+
<h2><?php _e('Email Settings', 'pmpro');?></h2>
|
61 |
+
<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.', 'pmpro');?></p>
|
62 |
+
|
63 |
+
<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/">Click here to learn more about Paid Memberships Pro emails</a>.', 'pmpro');?></p>
|
64 |
+
|
65 |
+
<table class="form-table">
|
66 |
+
<tbody>
|
67 |
+
<tr>
|
68 |
+
<th scope="row" valign="top">
|
69 |
+
<label for="from_email"><?php _e('From Email', 'pmpro');?>:</label>
|
70 |
+
</th>
|
71 |
+
<td>
|
72 |
+
<input type="text" name="from_email" size="60" value="<?php echo $from_email?>" />
|
73 |
+
</td>
|
74 |
+
</tr>
|
75 |
+
<tr>
|
76 |
+
<th scope="row" valign="top">
|
77 |
+
<label for="from_name"><?php _e('From Name', 'pmpro');?>:</label>
|
78 |
+
</th>
|
79 |
+
<td>
|
80 |
+
<input type="text" name="from_name" size="60" value="<?php echo $from_name?>" />
|
81 |
+
</td>
|
82 |
+
</tr>
|
83 |
+
</tbody>
|
84 |
+
</table>
|
85 |
+
|
86 |
+
<h3><?php _e('Send the site admin emails', 'pmpro');?>:</h3>
|
87 |
+
|
88 |
+
<table class="form-table">
|
89 |
+
<tbody>
|
90 |
+
<tr>
|
91 |
+
<th scope="row" valign="top">
|
92 |
+
<label for="email_admin_checkout"><?php _e('Checkout', 'pmpro');?>:</label>
|
93 |
+
</th>
|
94 |
+
<td>
|
95 |
+
<input type="checkbox" id="email_admin_checkout" name="email_admin_checkout" value="1" <?php if(!empty($email_admin_checkout)) { ?>checked="checked"<?php } ?> />
|
96 |
+
<?php _e('when a member checks out.', 'pmpro');?>
|
97 |
+
</td>
|
98 |
+
</tr>
|
99 |
+
<tr>
|
100 |
+
<th scope="row" valign="top">
|
101 |
+
<label for="email_admin_changes"><?php _e('Admin Changes', 'pmpro');?>:</label>
|
102 |
+
</th>
|
103 |
+
<td>
|
104 |
+
<input type="checkbox" id="email_admin_changes" name="email_admin_changes" value="1" <?php if(!empty($email_admin_changes)) { ?>checked="checked"<?php } ?> />
|
105 |
+
<?php _e('when an admin changes a user\'s membership level through the dashboard.', 'pmpro');?>
|
106 |
+
</td>
|
107 |
+
</tr>
|
108 |
+
<tr>
|
109 |
+
<th scope="row" valign="top">
|
110 |
+
<label for="email_admin_cancels"><?php _e('Cancellation', 'pmpro');?>:</label>
|
111 |
+
</th>
|
112 |
+
<td>
|
113 |
+
<input type="checkbox" id="email_admin_cancels" name="email_admin_cancels" value="1" <?php if(!empty($email_admin_cancels)) { ?>checked="checked"<?php } ?> />
|
114 |
+
<?php _e('when a user cancels his or her account.', 'pmpro');?>
|
115 |
+
</td>
|
116 |
+
</tr>
|
117 |
+
<tr>
|
118 |
+
<th scope="row" valign="top">
|
119 |
+
<label for="email_admin_billing"><?php _e('Bill Updates', 'pmpro');?>:</label>
|
120 |
+
</th>
|
121 |
+
<td>
|
122 |
+
<input type="checkbox" id="email_admin_billing" name="email_admin_billing" value="1" <?php if(!empty($email_admin_billing)) { ?>checked="checked"<?php } ?> />
|
123 |
+
<?php _e('when a user updates his or her billing information.', 'pmpro');?>
|
124 |
+
</td>
|
125 |
+
</tr>
|
126 |
+
</tbody>
|
127 |
+
</table>
|
128 |
+
|
129 |
+
<h3><?php _e('Send members emails', 'pmpro');?>:</h3>
|
130 |
+
|
131 |
+
<table class="form-table">
|
132 |
+
<tbody>
|
133 |
+
<tr>
|
134 |
+
<th scope="row" valign="top">
|
135 |
+
<label for="email_admin_checkout"><?php _e('New Users', 'pmpro');?>:</label>
|
136 |
+
</th>
|
137 |
+
<td>
|
138 |
+
<input type="checkbox" id="email_member_notification" name="email_member_notification" value="1" <?php if(!empty($email_member_notification)) { ?>checked="checked"<?php } ?> />
|
139 |
+
<?php _e('Default WP notification email. (Recommended: Leave unchecked. Members will still get an email confirmation from PMPro after checkout.)', 'pmpro');?>
|
140 |
+
</td>
|
141 |
+
</tr>
|
142 |
+
</tbody>
|
143 |
+
</table>
|
144 |
+
|
145 |
+
<p class="submit">
|
146 |
+
<input name="savesettings" type="submit" class="button-primary" value="Save Settings" />
|
147 |
+
</p>
|
148 |
+
</form>
|
149 |
+
|
150 |
+
<?php
|
151 |
+
require_once(dirname(__FILE__) . "/admin_footer.php");
|
152 |
+
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
adminpages/functions.php
CHANGED
@@ -1,23 +1,4 @@
|
|
1 |
<?php
|
2 |
-
/****************************************************************
|
3 |
-
|
4 |
-
IMPORTANT. PLEASE READ.
|
5 |
-
|
6 |
-
DO NOT EDIT THIS FILE or any other file in the /wp-content/plugins/paid-memberships-pro/ directory.
|
7 |
-
Doing so could break the PMPro plugin and/or keep you from upgrading this plugin in the future.
|
8 |
-
We regularly release updates to the plugin, including important security fixes and new features.
|
9 |
-
You want to be able to upgrade.
|
10 |
-
|
11 |
-
If you were asked to insert code into "your functions.php file", it was meant that you edit the functions.php
|
12 |
-
in the root folder of your active theme. e.g. /wp-content/themes/twentytwelve/functions.php
|
13 |
-
You can also create a custom plugin to place customization code into. Instructions are here:
|
14 |
-
http://www.paidmembershipspro.com/2012/08/create-a-plugin-for-pmpro-customizations/
|
15 |
-
|
16 |
-
Further documentation for customizing Paid Memberships Pro can be found here:
|
17 |
-
http://www.paidmembershipspro.com/documentation/
|
18 |
-
|
19 |
-
****************************************************************/
|
20 |
-
|
21 |
/*
|
22 |
Checks if PMPro settings are complete or if there are any errors.
|
23 |
*/
|
@@ -40,11 +21,11 @@ function pmpro_checkLevelForStripeCompatibility($level = NULL)
|
|
40 |
/*
|
41 |
Stripe currently does not support:
|
42 |
* Trial Amounts > 0.
|
43 |
-
* Daily billing periods.
|
44 |
* Billing Limits.
|
45 |
*/
|
46 |
if($level->trial_amount > 0 ||
|
47 |
-
($level->cycle_number > 0 && $level->cycle_period == "Day") ||
|
48 |
$level->billing_limit > 0)
|
49 |
{
|
50 |
return false;
|
@@ -56,11 +37,11 @@ function pmpro_checkLevelForStripeCompatibility($level = NULL)
|
|
56 |
{
|
57 |
//need to look it up?
|
58 |
if(is_numeric($level))
|
59 |
-
$level = $wpdb->get_row("SELECT * FROM $wpdb->pmpro_membership_levels WHERE id = '" .
|
60 |
|
61 |
//check this level
|
62 |
if($level->trial_amount > 0 ||
|
63 |
-
($level->cycle_number > 0 && $level->cycle_period == "Day") ||
|
64 |
$level->billing_limit > 0)
|
65 |
{
|
66 |
return false;
|
@@ -109,7 +90,7 @@ function pmpro_checkLevelForPayflowCompatibility($level = NULL)
|
|
109 |
{
|
110 |
//need to look it up?
|
111 |
if(is_numeric($level))
|
112 |
-
$level = $wpdb->get_row("SELECT * FROM $wpdb->pmpro_membership_levels WHERE id = '" .
|
113 |
|
114 |
//check this level
|
115 |
if($level->trial_amount > 0 ||
|
@@ -160,7 +141,7 @@ function pmpro_checkLevelForBraintreeCompatibility($level = NULL)
|
|
160 |
{
|
161 |
//need to look it up?
|
162 |
if(is_numeric($level))
|
163 |
-
$level = $wpdb->get_row("SELECT * FROM $wpdb->pmpro_membership_levels WHERE id = '" .
|
164 |
|
165 |
//check this level
|
166 |
if($level->trial_amount > 0 ||
|
@@ -174,49 +155,3 @@ function pmpro_checkLevelForBraintreeCompatibility($level = NULL)
|
|
174 |
return true;
|
175 |
}
|
176 |
|
177 |
-
/*
|
178 |
-
Checks if PMPro settings are complete or if there are any errors.
|
179 |
-
*/
|
180 |
-
function pmpro_checkLevelForTwoCheckoutCompatibility($level = NULL)
|
181 |
-
{
|
182 |
-
$gateway = pmpro_getOption("gateway");
|
183 |
-
if($gateway == "twocheckout")
|
184 |
-
{
|
185 |
-
global $wpdb;
|
186 |
-
|
187 |
-
//check ALL the levels
|
188 |
-
if(empty($level))
|
189 |
-
{
|
190 |
-
$sqlQuery = "SELECT * FROM $wpdb->pmpro_membership_levels ORDER BY id ASC";
|
191 |
-
$levels = $wpdb->get_results($sqlQuery, OBJECT);
|
192 |
-
if(!empty($levels))
|
193 |
-
{
|
194 |
-
foreach($levels as $level)
|
195 |
-
{
|
196 |
-
/*
|
197 |
-
2Checkout currently does not support:
|
198 |
-
* Trial amounts less than or greater than the absolute value of amonthly recurring amount.
|
199 |
-
*/
|
200 |
-
if(pmpro_isLevelTrial($level))
|
201 |
-
{
|
202 |
-
return false;
|
203 |
-
}
|
204 |
-
}
|
205 |
-
}
|
206 |
-
}
|
207 |
-
else
|
208 |
-
{
|
209 |
-
//need to look it up?
|
210 |
-
if(is_numeric($level))
|
211 |
-
$level = $wpdb->get_row("SELECT * FROM $wpdb->pmpro_membership_levels WHERE id = '" . esc_sql($level) . "' LIMIT 1");
|
212 |
-
|
213 |
-
//check this level
|
214 |
-
if(pmpro_isLevelTrial($level))
|
215 |
-
{
|
216 |
-
return false;
|
217 |
-
}
|
218 |
-
}
|
219 |
-
}
|
220 |
-
|
221 |
-
return true;
|
222 |
-
}
|
1 |
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
/*
|
3 |
Checks if PMPro settings are complete or if there are any errors.
|
4 |
*/
|
21 |
/*
|
22 |
Stripe currently does not support:
|
23 |
* Trial Amounts > 0.
|
24 |
+
* Daily or Weekly billing periods.
|
25 |
* Billing Limits.
|
26 |
*/
|
27 |
if($level->trial_amount > 0 ||
|
28 |
+
($level->cycle_number > 0 && ($level->cycle_period == "Day" || $level->cycle_period == "Week")) ||
|
29 |
$level->billing_limit > 0)
|
30 |
{
|
31 |
return false;
|
37 |
{
|
38 |
//need to look it up?
|
39 |
if(is_numeric($level))
|
40 |
+
$level = $wpdb->get_row("SELECT * FROM $wpdb->pmpro_membership_levels WHERE id = '" . $wpdb->escape($level) . "' LIMIT 1");
|
41 |
|
42 |
//check this level
|
43 |
if($level->trial_amount > 0 ||
|
44 |
+
($level->cycle_number > 0 && ($level->cycle_period == "Day" || $level->cycle_period == "Week")) ||
|
45 |
$level->billing_limit > 0)
|
46 |
{
|
47 |
return false;
|
90 |
{
|
91 |
//need to look it up?
|
92 |
if(is_numeric($level))
|
93 |
+
$level = $wpdb->get_row("SELECT * FROM $wpdb->pmpro_membership_levels WHERE id = '" . $wpdb->escape($level) . "' LIMIT 1");
|
94 |
|
95 |
//check this level
|
96 |
if($level->trial_amount > 0 ||
|
141 |
{
|
142 |
//need to look it up?
|
143 |
if(is_numeric($level))
|
144 |
+
$level = $wpdb->get_row("SELECT * FROM $wpdb->pmpro_membership_levels WHERE id = '" . $wpdb->escape($level) . "' LIMIT 1");
|
145 |
|
146 |
//check this level
|
147 |
if($level->trial_amount > 0 ||
|
155 |
return true;
|
156 |
}
|
157 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
adminpages/membershiplevels.php
CHANGED
@@ -9,7 +9,7 @@
|
|
9 |
|
10 |
//some vars
|
11 |
$gateway = pmpro_getOption("gateway");
|
12 |
-
global $pmpro_stripe_error, $pmpro_braintree_error, $pmpro_payflow_error, $
|
13 |
|
14 |
if(isset($_REQUEST['edit']))
|
15 |
$edit = $_REQUEST['edit'];
|
@@ -94,19 +94,19 @@
|
|
94 |
if($saveid > 0)
|
95 |
{
|
96 |
$sqlQuery = " UPDATE {$wpdb->pmpro_membership_levels}
|
97 |
-
SET name = '" .
|
98 |
-
description = '" .
|
99 |
-
confirmation = '" .
|
100 |
-
initial_payment = '" .
|
101 |
-
billing_amount = '" .
|
102 |
-
cycle_number = '" .
|
103 |
-
cycle_period = '" .
|
104 |
-
billing_limit = '" .
|
105 |
-
trial_amount = '" .
|
106 |
-
trial_limit = '" .
|
107 |
-
expiration_number = '" .
|
108 |
-
expiration_period = '" .
|
109 |
-
allow_signups = '" .
|
110 |
WHERE id = '$saveid' LIMIT 1;";
|
111 |
$wpdb->query($sqlQuery);
|
112 |
|
@@ -129,7 +129,7 @@
|
|
129 |
$sqlQuery = " INSERT INTO {$wpdb->pmpro_membership_levels}
|
130 |
( name, description, confirmation, initial_payment, billing_amount, cycle_number, cycle_period, billing_limit, trial_amount, trial_limit, expiration_number, expiration_period, allow_signups)
|
131 |
VALUES
|
132 |
-
( '" .
|
133 |
$wpdb->query($sqlQuery);
|
134 |
if(!mysql_errno())
|
135 |
{
|
@@ -157,8 +157,6 @@
|
|
157 |
|
158 |
if($ml_id > 0)
|
159 |
{
|
160 |
-
do_action("pmpro_delete_membership_level", $ml_id);
|
161 |
-
|
162 |
//remove any categories from the ml
|
163 |
$sqlQuery = "DELETE FROM $wpdb->pmpro_memberships_categories WHERE membership_id = '$ml_id'";
|
164 |
$r1 = $wpdb->query($sqlQuery);
|
@@ -363,7 +361,7 @@
|
|
363 |
<br /><small>
|
364 |
<?php _e('The amount to be billed one cycle after the initial payment.', 'pmpro');?>
|
365 |
<?php if($gateway == "stripe") { ?>
|
366 |
-
<br /><strong <?php if(!empty($pmpro_stripe_error)) { ?>class="pmpro_red"<?php } ?>><?php _e('Stripe integration currently only supports billing periods of "
|
367 |
<?php } elseif($gateway == "braintree") { ?>
|
368 |
<br /><strong <?php if(!empty($pmpro_braintree_error)) { ?>class="pmpro_red"<?php } ?>><?php _e('Braintree integration currently only supports billing periods of "Month" or "Year".', 'pmpro');?>
|
369 |
<?php } elseif($gateway == "payflowpro") { ?>
|
@@ -393,13 +391,7 @@
|
|
393 |
|
394 |
<tr class="recurring_info" <?php if (!pmpro_isLevelRecurring($level)) echo "style='display:none;'";?>>
|
395 |
<th scope="row" valign="top"><label><?php _e('Custom Trial', 'pmpro');?>:</label></th>
|
396 |
-
<td>
|
397 |
-
<input id="custom_trial" name="custom_trial" type="checkbox" value="yes" <?php if ( pmpro_isLevelTrial($level) ) { echo "checked='checked'"; } ?> onclick="jQuery('.trial_info').toggle();" /> <?php _e('Check to add a custom trial period.', 'pmpro');?>
|
398 |
-
|
399 |
-
<?php if($gateway == "twocheckout") { ?>
|
400 |
-
<br /><small><strong <?php if(!empty($pmpro_twocheckout_error)) { ?>class="pmpro_red"<?php } ?>><?php _e('2Checkout integration does not support custom trials. You can do one period trials by setting an initial payment different from the billing amount.', 'pmpro');?></strong></small>
|
401 |
-
<?php } ?>
|
402 |
-
</td>
|
403 |
</tr>
|
404 |
|
405 |
<tr class="trial_info recurring_info" <?php if (!pmpro_isLevelTrial($level)) echo "style='display:none;'";?>>
|
@@ -420,8 +412,8 @@
|
|
420 |
<?php } elseif($gateway == "payflowpro") { ?>
|
421 |
<br /><small>
|
422 |
<strong <?php if(!empty($pmpro_payflow_error)) { ?>class="pmpro_red"<?php } ?>><?php _e('Payflow integration currently does not support trial amounts greater than $0.', 'pmpro');?></strong>
|
423 |
-
</small>
|
424 |
-
<?php } ?>
|
425 |
</td>
|
426 |
</tr>
|
427 |
|
@@ -446,7 +438,7 @@
|
|
446 |
<input id="expiration_number" name="expiration_number" type="text" size="10" value="<?php echo str_replace("\"", """, stripslashes($level->expiration_number))?>" />
|
447 |
<select id="expiration_period" name="expiration_period">
|
448 |
<?php
|
449 |
-
$cycles = array(
|
450 |
foreach ( $cycles as $name => $value ) {
|
451 |
echo "<option value='$value'";
|
452 |
if ( $level->expiration_period == $value ) echo " selected='selected'";
|
@@ -495,13 +487,13 @@
|
|
495 |
{
|
496 |
?>
|
497 |
|
498 |
-
<h2><?php _e('Membership Levels', 'pmpro');?> <a href="admin.php?page=pmpro-membershiplevels&edit=-1" class="add-new-h2"><?php _e('Add New Level', 'pmpro');?></a></h2>
|
499 |
<form id="posts-filter" method="get" action="">
|
500 |
<p class="search-box">
|
501 |
-
<label class="screen-reader-text" for="post-search-input
|
502 |
<input type="hidden" name="page" value="pmpro-membershiplevels" />
|
503 |
<input id="post-search-input" type="text" value="<?php echo $s?>" name="s" size="30" />
|
504 |
-
<input class="button" type="submit" value="<?php _e('Search Levels', 'pmpro');?>" id="search-submit"
|
505 |
</p>
|
506 |
</form>
|
507 |
|
@@ -534,7 +526,7 @@
|
|
534 |
foreach($levels as $level)
|
535 |
{
|
536 |
?>
|
537 |
-
<tr class="<?php if(!$level->allow_signups) { ?>pmpro_gray<?php } ?> <?php if(!pmpro_checkLevelForStripeCompatibility($level) || !pmpro_checkLevelForBraintreeCompatibility($level) || !pmpro_checkLevelForPayflowCompatibility($level)
|
538 |
<td><?php echo $level->id?></td>
|
539 |
<td><?php echo $level->name?></td>
|
540 |
<td>
|
@@ -548,7 +540,7 @@
|
|
548 |
<?php if(!pmpro_isLevelRecurring($level)) { ?>
|
549 |
--
|
550 |
<?php } else { ?>
|
551 |
-
<?php echo $pmpro_currency_symbol?><?php echo $level->billing_amount?> <?php _e('every', 'pmpro');?> <?php echo $level->cycle_number.' '.
|
552 |
|
553 |
<?php if($level->billing_limit) { ?>(<?php _e('for', 'pmpro');?> <?php echo $level->billing_limit?> <?php echo sornot($level->cycle_period,$level->billing_limit)?>)<?php } ?>
|
554 |
|
@@ -569,9 +561,9 @@
|
|
569 |
<?php } ?>
|
570 |
</td>
|
571 |
<td><?php if($level->allow_signups) { ?><?php _e('Yes', 'pmpro');?><?php } else { ?><?php _e('No', 'pmpro');?><?php } ?></td>
|
572 |
-
<td align="center"><a href="admin.php?page=pmpro-membershiplevels&
|
573 |
-
<td align="center"><a href="admin.php?page=pmpro-membershiplevels&
|
574 |
-
<td align="center"><a href="javascript: askfirst('<?php printf(__("Are you sure you want to delete membership level %s? All subscriptions will be cancelled.", "pmpro"), $level->name);?>','admin.php?page=pmpro-membershiplevels&
|
575 |
</tr>
|
576 |
<?php
|
577 |
}
|
9 |
|
10 |
//some vars
|
11 |
$gateway = pmpro_getOption("gateway");
|
12 |
+
global $pmpro_stripe_error, $pmpro_braintree_error, $pmpro_payflow_error, $wp_version;
|
13 |
|
14 |
if(isset($_REQUEST['edit']))
|
15 |
$edit = $_REQUEST['edit'];
|
94 |
if($saveid > 0)
|
95 |
{
|
96 |
$sqlQuery = " UPDATE {$wpdb->pmpro_membership_levels}
|
97 |
+
SET name = '" . $wpdb->escape($ml_name) . "',
|
98 |
+
description = '" . $wpdb->escape($ml_description) . "',
|
99 |
+
confirmation = '" . $wpdb->escape($ml_confirmation) . "',
|
100 |
+
initial_payment = '" . $wpdb->escape($ml_initial_payment) . "',
|
101 |
+
billing_amount = '" . $wpdb->escape($ml_billing_amount) . "',
|
102 |
+
cycle_number = '" . $wpdb->escape($ml_cycle_number) . "',
|
103 |
+
cycle_period = '" . $wpdb->escape($ml_cycle_period) . "',
|
104 |
+
billing_limit = '" . $wpdb->escape($ml_billing_limit) . "',
|
105 |
+
trial_amount = '" . $wpdb->escape($ml_trial_amount) . "',
|
106 |
+
trial_limit = '" . $wpdb->escape($ml_trial_limit) . "',
|
107 |
+
expiration_number = '" . $wpdb->escape($ml_expiration_number) . "',
|
108 |
+
expiration_period = '" . $wpdb->escape($ml_expiration_period) . "',
|
109 |
+
allow_signups = '" . $wpdb->escape($ml_allow_signups) . "'
|
110 |
WHERE id = '$saveid' LIMIT 1;";
|
111 |
$wpdb->query($sqlQuery);
|
112 |
|
129 |
$sqlQuery = " INSERT INTO {$wpdb->pmpro_membership_levels}
|
130 |
( name, description, confirmation, initial_payment, billing_amount, cycle_number, cycle_period, billing_limit, trial_amount, trial_limit, expiration_number, expiration_period, allow_signups)
|
131 |
VALUES
|
132 |
+
( '" . $wpdb->escape($ml_name) . "', '" . $wpdb->escape($ml_description) . "', '" . $wpdb->escape($ml_confirmation) . "', '" . $wpdb->escape($ml_initial_payment) . "', '" . $wpdb->escape($ml_billing_amount) . "', '" . $wpdb->escape($ml_cycle_number) . "', '" . $wpdb->escape($ml_cycle_period) . "', '" . $wpdb->escape($ml_billing_limit) . "', '" . $wpdb->escape($ml_trial_amount) . "', '" . $wpdb->escape($ml_trial_limit) . "', '" . $wpdb->escape($ml_expiration_number) . "', '" . $wpdb->escape($ml_expiration_period) . "', '" . $wpdb->escape($ml_allow_signups) . "' )";
|
133 |
$wpdb->query($sqlQuery);
|
134 |
if(!mysql_errno())
|
135 |
{
|
157 |
|
158 |
if($ml_id > 0)
|
159 |
{
|
|
|
|
|
160 |
//remove any categories from the ml
|
161 |
$sqlQuery = "DELETE FROM $wpdb->pmpro_memberships_categories WHERE membership_id = '$ml_id'";
|
162 |
$r1 = $wpdb->query($sqlQuery);
|
361 |
<br /><small>
|
362 |
<?php _e('The amount to be billed one cycle after the initial payment.', 'pmpro');?>
|
363 |
<?php if($gateway == "stripe") { ?>
|
364 |
+
<br /><strong <?php if(!empty($pmpro_stripe_error)) { ?>class="pmpro_red"<?php } ?>><?php _e('Stripe integration currently only supports billing periods of "Month" or "Year".', 'pmpro');?>
|
365 |
<?php } elseif($gateway == "braintree") { ?>
|
366 |
<br /><strong <?php if(!empty($pmpro_braintree_error)) { ?>class="pmpro_red"<?php } ?>><?php _e('Braintree integration currently only supports billing periods of "Month" or "Year".', 'pmpro');?>
|
367 |
<?php } elseif($gateway == "payflowpro") { ?>
|
391 |
|
392 |
<tr class="recurring_info" <?php if (!pmpro_isLevelRecurring($level)) echo "style='display:none;'";?>>
|
393 |
<th scope="row" valign="top"><label><?php _e('Custom Trial', 'pmpro');?>:</label></th>
|
394 |
+
<td><input id="custom_trial" name="custom_trial" type="checkbox" value="yes" <?php if ( pmpro_isLevelTrial($level) ) { echo "checked='checked'"; } ?> onclick="jQuery('.trial_info').toggle();" /> <?php _e('Check to add a custom trial period.', 'pmpro');?></td>
|
|
|
|
|
|
|
|
|
|
|
|
|
395 |
</tr>
|
396 |
|
397 |
<tr class="trial_info recurring_info" <?php if (!pmpro_isLevelTrial($level)) echo "style='display:none;'";?>>
|
412 |
<?php } elseif($gateway == "payflowpro") { ?>
|
413 |
<br /><small>
|
414 |
<strong <?php if(!empty($pmpro_payflow_error)) { ?>class="pmpro_red"<?php } ?>><?php _e('Payflow integration currently does not support trial amounts greater than $0.', 'pmpro');?></strong>
|
415 |
+
</small>
|
416 |
+
<?php } ?>
|
417 |
</td>
|
418 |
</tr>
|
419 |
|
438 |
<input id="expiration_number" name="expiration_number" type="text" size="10" value="<?php echo str_replace("\"", """, stripslashes($level->expiration_number))?>" />
|
439 |
<select id="expiration_period" name="expiration_period">
|
440 |
<?php
|
441 |
+
$cycles = array( 'Day(s)' => 'Day', 'Week(s)' => 'Week', 'Month(s)' => 'Month', 'Year(s)' => 'Year' );
|
442 |
foreach ( $cycles as $name => $value ) {
|
443 |
echo "<option value='$value'";
|
444 |
if ( $level->expiration_period == $value ) echo " selected='selected'";
|
487 |
{
|
488 |
?>
|
489 |
|
490 |
+
<h2><?php _e('Membership Levels', 'pmpro');?> <a href="admin.php?page=pmpro-membershiplevels&edit=-1" class="button add-new-h2"><?php _e('Add New Level', 'pmpro');?></a></h2>
|
491 |
<form id="posts-filter" method="get" action="">
|
492 |
<p class="search-box">
|
493 |
+
<label class="screen-reader-text" for="post-search-input<?php _e('Search Levels', 'pmpro');?>:</label>
|
494 |
<input type="hidden" name="page" value="pmpro-membershiplevels" />
|
495 |
<input id="post-search-input" type="text" value="<?php echo $s?>" name="s" size="30" />
|
496 |
+
<input class="button" type="submit" value="<?php _e('Search Levels', 'pmpro');?>" id="search-submit "/>
|
497 |
</p>
|
498 |
</form>
|
499 |
|
526 |
foreach($levels as $level)
|
527 |
{
|
528 |
?>
|
529 |
+
<tr class="<?php if(!$level->allow_signups) { ?>pmpro_gray<?php } ?> <?php if(!pmpro_checkLevelForStripeCompatibility($level) || !pmpro_checkLevelForBraintreeCompatibility($level) || !pmpro_checkLevelForPayflowCompatibility($level)) { ?>pmpro_error<?php } ?>">
|
530 |
<td><?php echo $level->id?></td>
|
531 |
<td><?php echo $level->name?></td>
|
532 |
<td>
|
540 |
<?php if(!pmpro_isLevelRecurring($level)) { ?>
|
541 |
--
|
542 |
<?php } else { ?>
|
543 |
+
<?php echo $pmpro_currency_symbol?><?php echo $level->billing_amount?> <?php _e('every', 'pmpro');?> <?php echo $level->cycle_number.' '.sornot($level->cycle_period,$level->cycle_number)?>
|
544 |
|
545 |
<?php if($level->billing_limit) { ?>(<?php _e('for', 'pmpro');?> <?php echo $level->billing_limit?> <?php echo sornot($level->cycle_period,$level->billing_limit)?>)<?php } ?>
|
546 |
|
561 |
<?php } ?>
|
562 |
</td>
|
563 |
<td><?php if($level->allow_signups) { ?><?php _e('Yes', 'pmpro');?><?php } else { ?><?php _e('No', 'pmpro');?><?php } ?></td>
|
564 |
+
<td align="center"><a href="admin.php?page=pmpro-membershiplevels&edit=<?php echo $level->id?>" class="edit"><?php _e('edit', 'pmpro');?></a></td>
|
565 |
+
<td align="center"><a href="admin.php?page=pmpro-membershiplevels©=<?php echo $level->id?>&edit=-1" class="edit"><?php _e('copy', 'pmpro');?></a></td>
|
566 |
+
<td align="center"><a href="javascript: askfirst('<?php printf(__("Are you sure you want to delete membership level %s? All subscriptions will be cancelled.", "pmpro"), $level->name);?>','admin.php?page=pmpro-membershiplevels&action=delete_membership_level&deleteid=<?php echo $level->id?>'); void(0);" class="delete"><?php _e('delete', 'pmpro');?></a></td>
|
567 |
</tr>
|
568 |
<?php
|
569 |
}
|
adminpages/memberslist-csv.php
CHANGED
@@ -42,83 +42,32 @@
|
|
42 |
|
43 |
if($s)
|
44 |
{
|
45 |
-
$sqlQuery = "SELECT SQL_CALC_FOUND_ROWS u.ID, u.user_login, u.user_email, UNIX_TIMESTAMP(u.user_registered) as joindate, u.user_login, u.user_nicename, u.user_url, u.user_registered, u.user_status, u.display_name, mu.membership_id, mu.initial_payment, mu.billing_amount, mu.cycle_period, UNIX_TIMESTAMP(mu.enddate) as enddate, m.name as membership FROM $wpdb->users u LEFT JOIN $wpdb->usermeta um ON u.ID = um.user_id LEFT JOIN $wpdb->pmpro_memberships_users mu ON u.ID = mu.user_id LEFT JOIN $wpdb->pmpro_membership_levels m ON mu.membership_id = m.id ";
|
46 |
-
|
47 |
-
if($l == "oldmembers")
|
48 |
-
$sqlQuery .= " LEFT JOIN $wpdb->pmpro_memberships_users mu2 ON u.ID = mu2.user_id AND mu2.status = 'active' ";
|
49 |
-
|
50 |
-
$sqlQuery .= " WHERE mu.membership_id > 0 AND (u.user_login LIKE '%" . esc_sql($s) . "%' OR u.user_email LIKE '%" . esc_sql($s) . "%' OR um.meta_value LIKE '%" . esc_sql($s) . "%') ";
|
51 |
|
52 |
-
if($l
|
53 |
-
$sqlQuery .= " AND mu.
|
54 |
-
elseif($l)
|
55 |
-
$sqlQuery .= " AND mu.status = 'active' AND mu.membership_id = '" . esc_sql($l) . "' ";
|
56 |
-
else
|
57 |
-
$sqlQuery .= " AND mu.status = 'active' ";
|
58 |
|
59 |
-
$sqlQuery .= "GROUP BY u.ID ";
|
60 |
-
|
61 |
-
if($l == "oldmembers")
|
62 |
-
$sqlQuery .= "ORDER BY enddate DESC ";
|
63 |
-
else
|
64 |
-
$sqlQuery .= "ORDER BY u.user_registered DESC ";
|
65 |
|
66 |
if($limit)
|
67 |
$sqlQuery .= "LIMIT $start, $limit";
|
68 |
}
|
69 |
else
|
70 |
{
|
71 |
-
$sqlQuery = "SELECT SQL_CALC_FOUND_ROWS u.ID, UNIX_TIMESTAMP(mu.enddate) as enddate FROM $wpdb->users u LEFT JOIN $wpdb->pmpro_memberships_users mu ON u.ID = mu.user_id LEFT JOIN $wpdb->pmpro_membership_levels m ON mu.membership_id = m.id
|
72 |
-
|
73 |
-
if($l
|
74 |
-
|
75 |
-
|
76 |
-
$sqlQuery .= " WHERE mu.membership_id > 0 ";
|
77 |
-
|
78 |
-
if($l == "oldmembers")
|
79 |
-
$sqlQuery .= " AND mu.status = 'inactive' AND mu2.status IS NULL ";
|
80 |
-
elseif($l)
|
81 |
-
$sqlQuery .= " AND mu.status = 'active' AND mu.membership_id = '" . $l . "' ";
|
82 |
-
else
|
83 |
-
$sqlQuery .= " AND mu.status = 'active' ";
|
84 |
-
|
85 |
-
$sqlQuery .= "GROUP BY u.ID ";
|
86 |
-
|
87 |
-
if($l == "oldmembers")
|
88 |
-
$sqlQuery .= "ORDER BY enddate DESC ";
|
89 |
-
else
|
90 |
-
$sqlQuery .= "ORDER BY u.user_registered DESC ";
|
91 |
-
|
92 |
if($limit)
|
93 |
$sqlQuery .= "LIMIT $start, $limit";
|
94 |
}
|
95 |
|
96 |
-
//filter
|
97 |
$sqlQuery = apply_filters("pmpro_members_list_sql", $sqlQuery);
|
98 |
-
|
99 |
-
//get users
|
100 |
-
$theusers = $wpdb->get_col($sqlQuery);
|
101 |
-
|
102 |
-
//begin output
|
103 |
-
header("Content-type: text/csv");
|
104 |
-
if($s && $l == "oldmembers")
|
105 |
-
header("Content-Disposition: attachment; filename=members_list_expired_" . sanitize_file_name($s) . ".csv");
|
106 |
-
elseif($s && $l)
|
107 |
-
header("Content-Disposition: attachment; filename=members_list_" . intval($l) . "_level_" . sanitize_file_name($s) . ".csv");
|
108 |
-
elseif($s)
|
109 |
-
header("Content-Disposition: attachment; filename=members_list_" . sanitize_file_name($s) . ".csv");
|
110 |
-
elseif($l == "oldmembers")
|
111 |
-
header("Content-Disposition: attachment; filename=members_list_expired.csv");
|
112 |
-
else
|
113 |
-
header("Content-Disposition: attachment; filename=members_list.csv");
|
114 |
-
|
115 |
-
$heading = "id,username,firstname,lastname,email,billing firstname,billing lastname,address1,address2,city,state,zipcode,country,phone,membership,initial payment,fee,term,discount_code_id,discount_code,joined";
|
116 |
-
|
117 |
-
if($l == "oldmembers")
|
118 |
-
$heading .= ",ended";
|
119 |
-
else
|
120 |
-
$heading .= ",expires";
|
121 |
|
|
|
|
|
|
|
122 |
$heading = apply_filters("pmpro_members_list_csv_heading", $heading);
|
123 |
$csvoutput = $heading;
|
124 |
|
@@ -162,23 +111,12 @@
|
|
162 |
|
163 |
$csvoutput .= "\n";
|
164 |
|
165 |
-
//output
|
166 |
-
echo $csvoutput;
|
167 |
-
$csvoutput = "";
|
168 |
-
|
169 |
if($theusers)
|
170 |
{
|
171 |
-
foreach($theusers as $
|
172 |
{
|
173 |
-
//MULTI: This query will need to be updated to support multiple levels per user. Should probably just dump multiple rows for each membership.
|
174 |
//get meta
|
175 |
-
|
176 |
-
if($l == "oldmembers")
|
177 |
-
$theuser = $wpdb->get_row("SELECT u.ID, u.user_login, u.user_email, UNIX_TIMESTAMP(u.user_registered) as joindate, u.user_login, u.user_nicename, u.user_url, u.user_registered, u.user_status, u.display_name, mu.membership_id, mu.initial_payment, mu.billing_amount, mu.cycle_period, UNIX_TIMESTAMP(mu.enddate) as enddate, m.name as membership FROM $wpdb->users u LEFT JOIN $wpdb->usermeta um ON u.ID = um.user_id LEFT JOIN $wpdb->pmpro_memberships_users mu ON u.ID = mu.user_id LEFT JOIN $wpdb->pmpro_membership_levels m ON mu.membership_id = m.id WHERE u.ID = '" . $user_id . "' ORDER BY mu.id DESC LIMIT 1");
|
178 |
-
else
|
179 |
-
$theuser = $wpdb->get_row("SELECT u.ID, u.user_login, u.user_email, UNIX_TIMESTAMP(u.user_registered) as joindate, u.user_login, u.user_nicename, u.user_url, u.user_registered, u.user_status, u.display_name, mu.membership_id, mu.initial_payment, mu.billing_amount, mu.cycle_period, UNIX_TIMESTAMP(mu.enddate) as enddate, m.name as membership FROM $wpdb->users u LEFT JOIN $wpdb->usermeta um ON u.ID = um.user_id LEFT JOIN $wpdb->pmpro_memberships_users mu ON u.ID = mu.user_id AND mu.status = 'active' LEFT JOIN $wpdb->pmpro_membership_levels m ON mu.membership_id = m.id WHERE u.ID = '" . $user_id . "' LIMIT 1");
|
180 |
-
|
181 |
-
$sqlQuery = "SELECT meta_key as `key`, meta_value as `value` FROM $wpdb->usermeta WHERE $wpdb->usermeta.user_id = '" . $user_id . "'";
|
182 |
$metavalues = pmpro_getMetavalues($sqlQuery);
|
183 |
$theuser->metavalues = $metavalues;
|
184 |
$sqlQuery = "SELECT c.id, c.code FROM $wpdb->pmpro_discount_codes_uses cu LEFT JOIN $wpdb->pmpro_discount_codes c ON cu.code_id = c.id WHERE cu.user_id = '" . $theuser->ID . "' ORDER BY c.id DESC LIMIT 1";
|
@@ -203,38 +141,37 @@
|
|
203 |
|
204 |
//joindate and enddate
|
205 |
$csvoutput .= "," . pmpro_enclose(date("Y-m-d", $theuser->joindate)) . ",";
|
206 |
-
|
207 |
-
if($theuser->membership_id)
|
208 |
-
{
|
209 |
-
if($theuser->enddate)
|
210 |
-
$csvoutput .= pmpro_enclose(apply_filters("pmpro_memberslist_expires_column", date("Y-m-d", $theuser->enddate), $theuser));
|
211 |
-
else
|
212 |
-
$csvoutput .= pmpro_enclose(apply_filters("pmpro_memberslist_expires_column", "Never", $theuser));
|
213 |
-
}
|
214 |
-
elseif($l == "oldmembers" && $theuser->enddate)
|
215 |
-
{
|
216 |
$csvoutput .= pmpro_enclose(date("Y-m-d", $theuser->enddate));
|
217 |
-
}
|
218 |
else
|
219 |
-
$csvoutput .= "
|
220 |
-
|
221 |
//any extra columns
|
222 |
if(!empty($extra_columns))
|
223 |
{
|
224 |
foreach($extra_columns as $heading => $callback)
|
225 |
{
|
226 |
-
$csvoutput .= "," . pmpro_enclose(call_user_func($callback, $theuser
|
227 |
}
|
228 |
}
|
229 |
|
230 |
$csvoutput .= "\n";
|
231 |
-
|
232 |
-
//output
|
233 |
-
echo $csvoutput;
|
234 |
-
$csvoutput = "";
|
235 |
}
|
236 |
}
|
237 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
238 |
print $csvoutput;
|
239 |
|
240 |
function pmpro_enclose($s)
|
42 |
|
43 |
if($s)
|
44 |
{
|
45 |
+
$sqlQuery = "SELECT SQL_CALC_FOUND_ROWS u.ID, u.user_login, u.user_email, UNIX_TIMESTAMP(u.user_registered) as joindate, u.user_login, u.user_nicename, u.user_url, u.user_registered, u.user_status, u.display_name, mu.membership_id, mu.initial_payment, mu.billing_amount, mu.cycle_period, UNIX_TIMESTAMP(mu.enddate) as enddate, m.name as membership FROM $wpdb->users u LEFT JOIN $wpdb->usermeta um ON u.ID = um.user_id LEFT JOIN $wpdb->pmpro_memberships_users mu ON u.ID = mu.user_id LEFT JOIN $wpdb->pmpro_membership_levels m ON mu.membership_id = m.id WHERE mu.status = 'active' AND mu.membership_id > 0 AND (u.user_login LIKE '%" . $wpdb->escape($s) . "%' OR u.user_email LIKE '%" . $wpdb->escape($s) . "%' OR um.meta_value LIKE '%" . $wpdb->escape($s) . "%') ";
|
|
|
|
|
|
|
|
|
|
|
46 |
|
47 |
+
if($l)
|
48 |
+
$sqlQuery .= " AND mu.membership_id = '" . $wpdb->escape($l) . "' ";
|
|
|
|
|
|
|
|
|
49 |
|
50 |
+
$sqlQuery .= "GROUP BY u.ID ORDER BY user_registered DESC ";
|
|
|
|
|
|
|
|
|
|
|
51 |
|
52 |
if($limit)
|
53 |
$sqlQuery .= "LIMIT $start, $limit";
|
54 |
}
|
55 |
else
|
56 |
{
|
57 |
+
$sqlQuery = "SELECT SQL_CALC_FOUND_ROWS u.ID, u.user_login, u.user_email, UNIX_TIMESTAMP(u.user_registered) as joindate, u.user_login, u.user_nicename, u.user_url, u.user_registered, u.user_status, u.display_name, mu.membership_id, mu.initial_payment, mu.billing_amount, mu.cycle_period, UNIX_TIMESTAMP(mu.enddate) as enddate, m.name as membership FROM $wpdb->users u LEFT JOIN $wpdb->pmpro_memberships_users mu ON u.ID = mu.user_id LEFT JOIN $wpdb->pmpro_membership_levels m ON mu.membership_id = m.id";
|
58 |
+
$sqlQuery .= " WHERE mu.membership_id > 0 AND mu.status = 'active' ";
|
59 |
+
if($l)
|
60 |
+
$sqlQuery .= " AND mu.membership_id = '" . $l . "' ";
|
61 |
+
$sqlQuery .= "ORDER BY user_registered DESC ";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
62 |
if($limit)
|
63 |
$sqlQuery .= "LIMIT $start, $limit";
|
64 |
}
|
65 |
|
|
|
66 |
$sqlQuery = apply_filters("pmpro_members_list_sql", $sqlQuery);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
|
68 |
+
$theusers = $wpdb->get_results($sqlQuery);
|
69 |
+
|
70 |
+
$heading = "id,username,firstname,lastname,email,billing firstname,billing lastname,address1,address2,city,state,zipcode,country,phone,membership,initial payment,fee,term,discount_code_id,discount_code,joined,expires";
|
71 |
$heading = apply_filters("pmpro_members_list_csv_heading", $heading);
|
72 |
$csvoutput = $heading;
|
73 |
|
111 |
|
112 |
$csvoutput .= "\n";
|
113 |
|
|
|
|
|
|
|
|
|
114 |
if($theusers)
|
115 |
{
|
116 |
+
foreach($theusers as $theuser)
|
117 |
{
|
|
|
118 |
//get meta
|
119 |
+
$sqlQuery = "SELECT meta_key as `key`, meta_value as `value` FROM $wpdb->usermeta WHERE $wpdb->usermeta.user_id = '" . $theuser->ID . "'";
|
|
|
|
|
|
|
|
|
|
|
|
|
120 |
$metavalues = pmpro_getMetavalues($sqlQuery);
|
121 |
$theuser->metavalues = $metavalues;
|
122 |
$sqlQuery = "SELECT c.id, c.code FROM $wpdb->pmpro_discount_codes_uses cu LEFT JOIN $wpdb->pmpro_discount_codes c ON cu.code_id = c.id WHERE cu.user_id = '" . $theuser->ID . "' ORDER BY c.id DESC LIMIT 1";
|
141 |
|
142 |
//joindate and enddate
|
143 |
$csvoutput .= "," . pmpro_enclose(date("Y-m-d", $theuser->joindate)) . ",";
|
144 |
+
if($theuser->enddate)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
145 |
$csvoutput .= pmpro_enclose(date("Y-m-d", $theuser->enddate));
|
|
|
146 |
else
|
147 |
+
$csvoutput .= pmpro_enclose("Never");
|
148 |
+
|
149 |
//any extra columns
|
150 |
if(!empty($extra_columns))
|
151 |
{
|
152 |
foreach($extra_columns as $heading => $callback)
|
153 |
{
|
154 |
+
$csvoutput .= "," . pmpro_enclose(call_user_func($callback, $theuser));
|
155 |
}
|
156 |
}
|
157 |
|
158 |
$csvoutput .= "\n";
|
159 |
+
|
|
|
|
|
|
|
160 |
}
|
161 |
}
|
162 |
+
|
163 |
+
$size_in_bytes = strlen($csvoutput);
|
164 |
+
header("Content-type: text/csv");
|
165 |
+
//header("Content-type: application/vnd.ms-excel");
|
166 |
+
if($s && $l)
|
167 |
+
header("Content-Disposition: attachment; filename=members_list_" . intval($l) . "_level" . sanitize_file_name($s) . ".csv; size=$size_in_bytes");
|
168 |
+
elseif($s)
|
169 |
+
header("Content-Disposition: attachment; filename=members_list_" . sanitize_file_name($s) . ".csv; size=$size_in_bytes");
|
170 |
+
elseif($l)
|
171 |
+
header("Content-Disposition: attachment; filename=members_list_level" . intval($l) . ".csv; size=$size_in_bytes");
|
172 |
+
else
|
173 |
+
header("Content-Disposition: attachment; filename=members_list.csv; size=$size_in_bytes");
|
174 |
+
|
175 |
print $csvoutput;
|
176 |
|
177 |
function pmpro_enclose($s)
|
adminpages/memberslist.php
CHANGED
@@ -23,7 +23,7 @@
|
|
23 |
<form id="posts-filter" method="get" action="">
|
24 |
<h2>
|
25 |
<?php _e('Members List', 'pmpro');?>
|
26 |
-
<a target="_blank" href="<?php echo admin_url('admin-ajax.php');?>?action=memberslist_csv&s=<?php echo $s?>&l=<?php echo $l?>" class="add-new-h2"><?php _e('Export to CSV', 'pmpro');?></a>
|
27 |
</h2>
|
28 |
<ul class="subsubsub">
|
29 |
<li>
|
@@ -39,7 +39,6 @@
|
|
39 |
<?php
|
40 |
}
|
41 |
?>
|
42 |
-
<option value="oldmembers" <?php if($l == "oldmembers") { ?>selected="selected"<?php } ?>><?php _e('Old Members', 'pmpro');?></option>
|
43 |
</select>
|
44 |
</li>
|
45 |
</ul>
|
@@ -66,56 +65,24 @@
|
|
66 |
|
67 |
if($s)
|
68 |
{
|
69 |
-
$sqlQuery = "SELECT SQL_CALC_FOUND_ROWS u.ID, u.user_login, u.user_email, UNIX_TIMESTAMP(u.user_registered) as joindate, mu.membership_id, mu.initial_payment, mu.billing_amount, mu.cycle_period, mu.cycle_number, mu.billing_limit, mu.trial_amount, mu.trial_limit, UNIX_TIMESTAMP(mu.startdate) as startdate, UNIX_TIMESTAMP(mu.enddate) as enddate, m.name as membership FROM $wpdb->users u LEFT JOIN $wpdb->usermeta um ON u.ID = um.user_id LEFT JOIN $wpdb->pmpro_memberships_users mu ON u.ID = mu.user_id LEFT JOIN $wpdb->pmpro_membership_levels m ON mu.membership_id = m.id ";
|
70 |
-
|
71 |
-
if($l == "oldmembers")
|
72 |
-
$sqlQuery .= " LEFT JOIN $wpdb->pmpro_memberships_users mu2 ON u.ID = mu2.user_id AND mu2.status = 'active' ";
|
73 |
-
|
74 |
-
$sqlQuery .= " WHERE mu.membership_id > 0 AND (u.user_login LIKE '%$s%' OR u.user_email LIKE '%$s%' OR um.meta_value LIKE '%$s%') ";
|
75 |
|
76 |
-
if($l
|
77 |
-
$sqlQuery .= " AND mu.
|
78 |
-
|
79 |
-
|
80 |
-
else
|
81 |
-
$sqlQuery .= " AND mu.status = 'active' ";
|
82 |
-
|
83 |
-
$sqlQuery .= "GROUP BY u.ID ";
|
84 |
-
|
85 |
-
if($l == "oldmembers")
|
86 |
-
$sqlQuery .= "ORDER BY enddate DESC ";
|
87 |
-
else
|
88 |
-
$sqlQuery .= "ORDER BY u.user_registered DESC ";
|
89 |
-
|
90 |
-
$sqlQuery .= "LIMIT $start, $limit";
|
91 |
}
|
92 |
else
|
93 |
{
|
94 |
$sqlQuery = "SELECT SQL_CALC_FOUND_ROWS u.ID, u.user_login, u.user_email, UNIX_TIMESTAMP(u.user_registered) as joindate, mu.membership_id, mu.initial_payment, mu.billing_amount, mu.cycle_period, mu.cycle_number, mu.billing_limit, mu.trial_amount, mu.trial_limit, UNIX_TIMESTAMP(mu.startdate) as startdate, UNIX_TIMESTAMP(mu.enddate) as enddate, m.name as membership FROM $wpdb->users u LEFT JOIN $wpdb->pmpro_memberships_users mu ON u.ID = mu.user_id LEFT JOIN $wpdb->pmpro_membership_levels m ON mu.membership_id = m.id";
|
95 |
-
|
96 |
-
if($l
|
97 |
-
$sqlQuery .= "
|
98 |
-
|
99 |
-
$sqlQuery .= " WHERE mu.membership_id > 0 ";
|
100 |
-
|
101 |
-
if($l == "oldmembers")
|
102 |
-
$sqlQuery .= " AND mu.status = 'inactive' AND mu2.status IS NULL ";
|
103 |
-
elseif($l)
|
104 |
-
$sqlQuery .= " AND mu.status = 'active' AND mu.membership_id = '" . $l . "' ";
|
105 |
-
else
|
106 |
-
$sqlQuery .= " AND mu.status = 'active' ";
|
107 |
-
$sqlQuery .= "GROUP BY u.ID ";
|
108 |
-
|
109 |
-
if($l == "oldmembers")
|
110 |
-
$sqlQuery .= "ORDER BY enddate DESC ";
|
111 |
-
else
|
112 |
-
$sqlQuery .= "ORDER BY u.user_registered DESC ";
|
113 |
-
|
114 |
-
$sqlQuery .= "LIMIT $start, $limit";
|
115 |
}
|
116 |
|
117 |
$sqlQuery = apply_filters("pmpro_members_list_sql", $sqlQuery);
|
118 |
-
|
119 |
$theusers = $wpdb->get_results($sqlQuery);
|
120 |
$totalrows = $wpdb->get_var("SELECT FOUND_ROWS() as found_rows");
|
121 |
|
@@ -151,14 +118,7 @@
|
|
151 |
<th><?php _e('Membership', 'pmpro');?></th>
|
152 |
<th><?php _e('Fee', 'pmpro');?></th>
|
153 |
<th><?php _e('Joined', 'pmpro');?></th>
|
154 |
-
<th>
|
155 |
-
<?php
|
156 |
-
if($l == "oldmembers")
|
157 |
-
_e('Ended', 'pmpro');
|
158 |
-
else
|
159 |
-
_e('Expires', 'pmpro');
|
160 |
-
?>
|
161 |
-
</th>
|
162 |
</tr>
|
163 |
</thead>
|
164 |
<tbody id="users" class="list:user user-list">
|
@@ -186,9 +146,21 @@
|
|
186 |
<td><a href="mailto:<?php echo $theuser->user_email?>"><?php echo $theuser->user_email?></a></td>
|
187 |
<?php do_action("pmpro_memberslist_extra_cols_body", $theuser);?>
|
188 |
<td>
|
189 |
-
<?php
|
190 |
-
|
191 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
192 |
</td>
|
193 |
<td><?php echo $auser->membership?></td>
|
194 |
<td>
|
@@ -203,13 +175,13 @@
|
|
203 |
-
|
204 |
<?php } ?>
|
205 |
</td>
|
206 |
-
<td><?php echo date(
|
207 |
<td>
|
208 |
<?php
|
209 |
if($auser->enddate)
|
210 |
-
echo
|
211 |
else
|
212 |
-
echo __(
|
213 |
?>
|
214 |
</td>
|
215 |
</tr>
|
23 |
<form id="posts-filter" method="get" action="">
|
24 |
<h2>
|
25 |
<?php _e('Members List', 'pmpro');?>
|
26 |
+
<a target="_blank" href="<?php echo admin_url('admin-ajax.php');?>?action=memberslist_csv&s=<?php echo $s?>&l=<?php echo $l?>" class="button add-new-h2"><?php _e('Export to CSV', 'pmpro');?></a>
|
27 |
</h2>
|
28 |
<ul class="subsubsub">
|
29 |
<li>
|
39 |
<?php
|
40 |
}
|
41 |
?>
|
|
|
42 |
</select>
|
43 |
</li>
|
44 |
</ul>
|
65 |
|
66 |
if($s)
|
67 |
{
|
68 |
+
$sqlQuery = "SELECT SQL_CALC_FOUND_ROWS u.ID, u.user_login, u.user_email, UNIX_TIMESTAMP(u.user_registered) as joindate, mu.membership_id, mu.initial_payment, mu.billing_amount, mu.cycle_period, mu.cycle_number, mu.billing_limit, mu.trial_amount, mu.trial_limit, UNIX_TIMESTAMP(mu.startdate) as startdate, UNIX_TIMESTAMP(mu.enddate) as enddate, m.name as membership FROM $wpdb->users u LEFT JOIN $wpdb->usermeta um ON u.ID = um.user_id LEFT JOIN $wpdb->pmpro_memberships_users mu ON u.ID = mu.user_id LEFT JOIN $wpdb->pmpro_membership_levels m ON mu.membership_id = m.id WHERE mu.status = 'active' AND mu.membership_id > 0 AND (u.user_login LIKE '%$s%' OR u.user_email LIKE '%$s%' OR um.meta_value LIKE '%$s%') ";
|
|
|
|
|
|
|
|
|
|
|
69 |
|
70 |
+
if($l)
|
71 |
+
$sqlQuery .= " AND mu.membership_id = '" . $l . "' ";
|
72 |
+
|
73 |
+
$sqlQuery .= "GROUP BY u.ID ORDER BY user_registered DESC LIMIT $start, $limit";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
74 |
}
|
75 |
else
|
76 |
{
|
77 |
$sqlQuery = "SELECT SQL_CALC_FOUND_ROWS u.ID, u.user_login, u.user_email, UNIX_TIMESTAMP(u.user_registered) as joindate, mu.membership_id, mu.initial_payment, mu.billing_amount, mu.cycle_period, mu.cycle_number, mu.billing_limit, mu.trial_amount, mu.trial_limit, UNIX_TIMESTAMP(mu.startdate) as startdate, UNIX_TIMESTAMP(mu.enddate) as enddate, m.name as membership FROM $wpdb->users u LEFT JOIN $wpdb->pmpro_memberships_users mu ON u.ID = mu.user_id LEFT JOIN $wpdb->pmpro_membership_levels m ON mu.membership_id = m.id";
|
78 |
+
$sqlQuery .= " WHERE mu.membership_id > 0 AND mu.status = 'active' ";
|
79 |
+
if($l)
|
80 |
+
$sqlQuery .= " AND mu.membership_id = '" . $l . "' ";
|
81 |
+
$sqlQuery .= "GROUP BY u.ID ORDER BY user_registered DESC LIMIT $start, $limit";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
}
|
83 |
|
84 |
$sqlQuery = apply_filters("pmpro_members_list_sql", $sqlQuery);
|
85 |
+
|
86 |
$theusers = $wpdb->get_results($sqlQuery);
|
87 |
$totalrows = $wpdb->get_var("SELECT FOUND_ROWS() as found_rows");
|
88 |
|
118 |
<th><?php _e('Membership', 'pmpro');?></th>
|
119 |
<th><?php _e('Fee', 'pmpro');?></th>
|
120 |
<th><?php _e('Joined', 'pmpro');?></th>
|
121 |
+
<th><?php _e('Expires', 'pmpro');?></th>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
122 |
</tr>
|
123 |
</thead>
|
124 |
<tbody id="users" class="list:user user-list">
|
146 |
<td><a href="mailto:<?php echo $theuser->user_email?>"><?php echo $theuser->user_email?></a></td>
|
147 |
<?php do_action("pmpro_memberslist_extra_cols_body", $theuser);?>
|
148 |
<td>
|
149 |
+
<?php
|
150 |
+
if(empty($theuser->pmpro_bfirstname))
|
151 |
+
$theuser->pmpro_bfirstname = "";
|
152 |
+
if(empty($theuser->pmpro_blastname))
|
153 |
+
$theuser->pmpro_blastname = "";
|
154 |
+
echo trim($theuser->pmpro_bfirstname . " " . $theuser->pmpro_blastname);
|
155 |
+
?><br />
|
156 |
+
<?php if(!empty($theuser->pmpro_baddress1)) { ?>
|
157 |
+
<?php echo $theuser->pmpro_baddress1; ?><br />
|
158 |
+
<?php if(!empty($theuser->pmpro_baddress2)) echo $theuser->pmpro_baddress2 . "<br />"; ?>
|
159 |
+
<?php if($theuser->pmpro_bcity && $theuser->pmpro_bstate) { ?>
|
160 |
+
<?php echo $theuser->pmpro_bcity?>, <?php echo $theuser->pmpro_bstate?> <?php echo $theuser->pmpro_bzipcode?> <?php if(!empty($theuser->pmpro_bcountry)) echo $theuser->pmpro_bcountry?><br />
|
161 |
+
<?php } ?>
|
162 |
+
<?php } ?>
|
163 |
+
<?php if(!empty($theuser->pmpro_bphone)) echo formatPhone($theuser->pmpro_bphone);?>
|
164 |
</td>
|
165 |
<td><?php echo $auser->membership?></td>
|
166 |
<td>
|
175 |
-
|
176 |
<?php } ?>
|
177 |
</td>
|
178 |
+
<td><?php echo date("m/d/Y", strtotime($theuser->user_registered))?></td>
|
179 |
<td>
|
180 |
<?php
|
181 |
if($auser->enddate)
|
182 |
+
echo date(get_option('date_format'), $auser->enddate);
|
183 |
else
|
184 |
+
echo __("Never", "pmpro");
|
185 |
?>
|
186 |
</td>
|
187 |
</tr>
|
adminpages/orders-csv.php
CHANGED
@@ -17,51 +17,6 @@
|
|
17 |
$l = $_REQUEST['l'];
|
18 |
else
|
19 |
$l = false;
|
20 |
-
|
21 |
-
if(isset($_REQUEST['start-month']))
|
22 |
-
$start_month = $_REQUEST['start-month'];
|
23 |
-
else
|
24 |
-
$start_month = "1";
|
25 |
-
|
26 |
-
if(isset($_REQUEST['start-day']))
|
27 |
-
$start_day = $_REQUEST['start-day'];
|
28 |
-
else
|
29 |
-
$start_day = "1";
|
30 |
-
|
31 |
-
if(isset($_REQUEST['start-year']))
|
32 |
-
$start_year = $_REQUEST['start-year'];
|
33 |
-
else
|
34 |
-
$start_year = date("Y");
|
35 |
-
|
36 |
-
if(isset($_REQUEST['end-month']))
|
37 |
-
$end_month = $_REQUEST['end-month'];
|
38 |
-
else
|
39 |
-
$end_month = date("n");
|
40 |
-
|
41 |
-
if(isset($_REQUEST['end-day']))
|
42 |
-
$end_day = $_REQUEST['end-day'];
|
43 |
-
else
|
44 |
-
$end_day = date("j");
|
45 |
-
|
46 |
-
if(isset($_REQUEST['end-year']))
|
47 |
-
$end_year = $_REQUEST['end-year'];
|
48 |
-
else
|
49 |
-
$end_year = date("Y");
|
50 |
-
|
51 |
-
if(isset($_REQUEST['predefined-date']))
|
52 |
-
$predefined_date = $_REQUEST['predefined-date'];
|
53 |
-
else
|
54 |
-
$predefined_date = "This Month";
|
55 |
-
|
56 |
-
if(isset($_REQUEST['status']))
|
57 |
-
$status = $_REQUEST['status'];
|
58 |
-
else
|
59 |
-
$status = "";
|
60 |
-
|
61 |
-
if(isset($_REQUEST['filter']))
|
62 |
-
$filter = sanitize_text_field($_REQUEST['filter']);
|
63 |
-
else
|
64 |
-
$filter = "all";
|
65 |
|
66 |
//some vars for the search
|
67 |
if(!empty($_REQUEST['pn']))
|
@@ -85,62 +40,6 @@
|
|
85 |
$start = NULL;
|
86 |
}
|
87 |
|
88 |
-
//filters
|
89 |
-
if($filter == "all" || !$filter)
|
90 |
-
$condition = "1=1";
|
91 |
-
elseif($filter == "within-a-date-range")
|
92 |
-
{
|
93 |
-
$start_date = $start_year."-".$start_month."-".$start_day;
|
94 |
-
$end_date = $end_year."-".$end_month."-".$end_day;
|
95 |
-
|
96 |
-
//add times to dates
|
97 |
-
$start_date = $start_date . " 00:00:00";
|
98 |
-
$end_date = $end_date . " 23:59:59";
|
99 |
-
|
100 |
-
$condition = "timestamp BETWEEN '".$start_date."' AND '".$end_date."'";
|
101 |
-
}
|
102 |
-
elseif($filter == "predefined-date-range")
|
103 |
-
{
|
104 |
-
if($predefined_date == "Last Month")
|
105 |
-
{
|
106 |
-
$start_date = date("Y-m-d", strtotime("first day of last month", current_time("timestamp")));
|
107 |
-
$end_date = date("Y-m-d", strtotime("last day of last month", current_time("timestamp")));
|
108 |
-
}
|
109 |
-
elseif($predefined_date == "This Month")
|
110 |
-
{
|
111 |
-
$start_date = date("Y-m-d", strtotime("first day of this month", current_time("timestamp")));
|
112 |
-
$end_date = date("Y-m-d", strtotime("last day of this month", current_time("timestamp")));
|
113 |
-
}
|
114 |
-
elseif($predefined_date == "This Year")
|
115 |
-
{
|
116 |
-
$year = date('Y');
|
117 |
-
$start_date = date("Y-m-d", strtotime("first day of January $year", current_time("timestamp")));
|
118 |
-
$end_date = date("Y-m-d", strtotime("last day of December $year", current_time("timestamp")));
|
119 |
-
}
|
120 |
-
|
121 |
-
elseif($predefined_date == "Last Year")
|
122 |
-
{
|
123 |
-
$year = date('Y') - 1;
|
124 |
-
$start_date = date("Y-m-d", strtotime("first day of January $year", current_time("timestamp")));
|
125 |
-
$end_date = date("Y-m-d", strtotime("last day of December $year", current_time("timestamp")));
|
126 |
-
}
|
127 |
-
|
128 |
-
//add times to dates
|
129 |
-
$start_date = $start_date . " 00:00:00";
|
130 |
-
$end_date = $end_date . " 23:59:59";
|
131 |
-
|
132 |
-
$condition = "timestamp BETWEEN '".$start_date."' AND '".$end_date."'";
|
133 |
-
}
|
134 |
-
elseif($filter == "within-a-level")
|
135 |
-
{
|
136 |
-
$condition = "membership_id = $l";
|
137 |
-
}
|
138 |
-
elseif($filter == "within-a-status")
|
139 |
-
{
|
140 |
-
$condition = "status = '$status' ";
|
141 |
-
}
|
142 |
-
|
143 |
-
//string search
|
144 |
if($s)
|
145 |
{
|
146 |
$sqlQuery = "SELECT SQL_CALC_FOUND_ROWS o.id FROM $wpdb->pmpro_membership_orders o LEFT JOIN $wpdb->users u ON o.user_id = u.ID LEFT JOIN $wpdb->pmpro_membership_levels l ON o.membership_id = l.id ";
|
@@ -150,41 +49,29 @@
|
|
150 |
$sqlQuery .= "LEFT JOIN $wpdb->usermeta um ON o.user_id = um.user_id ";
|
151 |
|
152 |
$sqlQuery .= "WHERE (1=2 ";
|
153 |
-
|
154 |
$fields = array("o.id", "o.code", "o.billing_name", "o.billing_street", "o.billing_city", "o.billing_state", "o.billing_zip", "o.billing_phone", "o.payment_type", "o.cardtype", "o.accountnumber", "o.status", "o.gateway", "o.gateway_environment", "o.payment_transaction_id", "o.subscription_transaction_id", "u.user_login", "u.user_email", "u.display_name", "l.name");
|
155 |
|
156 |
if($join_with_usermeta)
|
157 |
$fields[] = "um.meta_value";
|
158 |
-
|
159 |
$fields = apply_filters("pmpro_orders_search_fields", $fields);
|
160 |
|
161 |
foreach($fields as $field)
|
162 |
-
$sqlQuery .= " OR " . $field . " LIKE '%" .
|
163 |
$sqlQuery .= ") ";
|
164 |
-
|
165 |
-
$sqlQuery .= "AND " . $condition . " ";
|
166 |
-
|
167 |
-
$sqlQuery .= "GROUP BY o.id ORDER BY o.id DESC, o.timestamp DESC ";
|
168 |
}
|
169 |
else
|
170 |
{
|
171 |
-
$sqlQuery = "SELECT SQL_CALC_FOUND_ROWS id FROM $wpdb->pmpro_membership_orders
|
172 |
}
|
173 |
|
174 |
-
if(
|
175 |
$sqlQuery .= "LIMIT $start, $limit";
|
176 |
|
177 |
$order_ids = $wpdb->get_col($sqlQuery);
|
178 |
|
179 |
-
//begin output
|
180 |
-
header("Content-type: text/csv");
|
181 |
-
|
182 |
-
$filename = "orders.csv";
|
183 |
-
/*
|
184 |
-
Insert logic here for building filename from $filter and other values.
|
185 |
-
*/
|
186 |
-
header("Content-Disposition: attachment; filename=$filename;");
|
187 |
-
|
188 |
$csvoutput = "id,user_id,user_login,first_name,last_name,user_email,billing_name,billing_street,billing_city,billing_state,billing_zip,billing_country,billing_phone,membership_id,level_name,subtotal,tax,couponamount,total,payment_type,cardtype,accountnumber,expirationmonth,expirationyear,status,gateway,gateway_environment,payment_transaction_id,subscription_transaction_id,discount_code_id,discount_code,timestamp";
|
189 |
|
190 |
//these are the meta_keys for the fields (arrays are object, property. so e.g. $theuser->ID)
|
@@ -234,10 +121,6 @@
|
|
234 |
|
235 |
$csvoutput .= "\n";
|
236 |
|
237 |
-
//output
|
238 |
-
echo $csvoutput;
|
239 |
-
$csvoutput = "";
|
240 |
-
|
241 |
if($order_ids)
|
242 |
{
|
243 |
foreach($order_ids as $order_id)
|
@@ -282,12 +165,21 @@
|
|
282 |
}
|
283 |
|
284 |
$csvoutput .= "\n";
|
285 |
-
|
286 |
-
//output
|
287 |
-
echo $csvoutput;
|
288 |
-
$csvoutput = "";
|
289 |
}
|
290 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
291 |
|
292 |
print $csvoutput;
|
293 |
|
17 |
$l = $_REQUEST['l'];
|
18 |
else
|
19 |
$l = false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
|
21 |
//some vars for the search
|
22 |
if(!empty($_REQUEST['pn']))
|
40 |
$start = NULL;
|
41 |
}
|
42 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
if($s)
|
44 |
{
|
45 |
$sqlQuery = "SELECT SQL_CALC_FOUND_ROWS o.id FROM $wpdb->pmpro_membership_orders o LEFT JOIN $wpdb->users u ON o.user_id = u.ID LEFT JOIN $wpdb->pmpro_membership_levels l ON o.membership_id = l.id ";
|
49 |
$sqlQuery .= "LEFT JOIN $wpdb->usermeta um ON o.user_id = um.user_id ";
|
50 |
|
51 |
$sqlQuery .= "WHERE (1=2 ";
|
52 |
+
|
53 |
$fields = array("o.id", "o.code", "o.billing_name", "o.billing_street", "o.billing_city", "o.billing_state", "o.billing_zip", "o.billing_phone", "o.payment_type", "o.cardtype", "o.accountnumber", "o.status", "o.gateway", "o.gateway_environment", "o.payment_transaction_id", "o.subscription_transaction_id", "u.user_login", "u.user_email", "u.display_name", "l.name");
|
54 |
|
55 |
if($join_with_usermeta)
|
56 |
$fields[] = "um.meta_value";
|
57 |
+
|
58 |
$fields = apply_filters("pmpro_orders_search_fields", $fields);
|
59 |
|
60 |
foreach($fields as $field)
|
61 |
+
$sqlQuery .= " OR " . $field . " LIKE '%" . $wpdb->escape($s) . "%' ";
|
62 |
$sqlQuery .= ") ";
|
63 |
+
$sqlQuery .= "ORDER BY o.timestamp DESC ";
|
|
|
|
|
|
|
64 |
}
|
65 |
else
|
66 |
{
|
67 |
+
$sqlQuery = "SELECT SQL_CALC_FOUND_ROWS id FROM $wpdb->pmpro_membership_orders ORDER BY timestamp DESC ";
|
68 |
}
|
69 |
|
70 |
+
if($limit)
|
71 |
$sqlQuery .= "LIMIT $start, $limit";
|
72 |
|
73 |
$order_ids = $wpdb->get_col($sqlQuery);
|
74 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
75 |
$csvoutput = "id,user_id,user_login,first_name,last_name,user_email,billing_name,billing_street,billing_city,billing_state,billing_zip,billing_country,billing_phone,membership_id,level_name,subtotal,tax,couponamount,total,payment_type,cardtype,accountnumber,expirationmonth,expirationyear,status,gateway,gateway_environment,payment_transaction_id,subscription_transaction_id,discount_code_id,discount_code,timestamp";
|
76 |
|
77 |
//these are the meta_keys for the fields (arrays are object, property. so e.g. $theuser->ID)
|
121 |
|
122 |
$csvoutput .= "\n";
|
123 |
|
|
|
|
|
|
|
|
|
124 |
if($order_ids)
|
125 |
{
|
126 |
foreach($order_ids as $order_id)
|
165 |
}
|
166 |
|
167 |
$csvoutput .= "\n";
|
168 |
+
|
|
|
|
|
|
|
169 |
}
|
170 |
+
}
|
171 |
+
|
172 |
+
$size_in_bytes = strlen($csvoutput);
|
173 |
+
header("Content-type: text/csv");
|
174 |
+
//header("Content-type: application/vnd.ms-excel");
|
175 |
+
if($s && $l)
|
176 |
+
header("Content-Disposition: attachment; filename=orders" . intval($l) . "_level" . sanitize_file_name($s) . ".csv; size=$size_in_bytes");
|
177 |
+
elseif($s)
|
178 |
+
header("Content-Disposition: attachment; filename=orders_" . sanitize_file_name($s) . ".csv; size=$size_in_bytes");
|
179 |
+
elseif($l)
|
180 |
+
header("Content-Disposition: attachment; filename=orders_level" . intval($l) . ".csv; size=$size_in_bytes");
|
181 |
+
else
|
182 |
+
header("Content-Disposition: attachment; filename=orders.csv; size=$size_in_bytes");
|
183 |
|
184 |
print $csvoutput;
|
185 |
|
adminpages/orders.php
CHANGED
@@ -16,47 +16,6 @@
|
|
16 |
$l = $_REQUEST['l'];
|
17 |
else
|
18 |
$l = false;
|
19 |
-
|
20 |
-
if(isset($_REQUEST['start-month']))
|
21 |
-
$start_month = $_REQUEST['start-month'];
|
22 |
-
else
|
23 |
-
$start_month = "1";
|
24 |
-
|
25 |
-
if(isset($_REQUEST['start-day']))
|
26 |
-
$start_day = $_REQUEST['start-day'];
|
27 |
-
else
|
28 |
-
$start_day = "1";
|
29 |
-
|
30 |
-
if(isset($_REQUEST['start-year']))
|
31 |
-
$start_year = $_REQUEST['start-year'];
|
32 |
-
else
|
33 |
-
$start_year = date("Y");
|
34 |
-
|
35 |
-
if(isset($_REQUEST['end-month']))
|
36 |
-
$end_month = $_REQUEST['end-month'];
|
37 |
-
else
|
38 |
-
$end_month = date("n");
|
39 |
-
|
40 |
-
if(isset($_REQUEST['end-day']))
|
41 |
-
$end_day = $_REQUEST['end-day'];
|
42 |
-
else
|
43 |
-
$end_day = date("j");
|
44 |
-
|
45 |
-
if(isset($_REQUEST['end-year']))
|
46 |
-
$end_year = $_REQUEST['end-year'];
|
47 |
-
else
|
48 |
-
$end_year = date("Y");
|
49 |
-
|
50 |
-
if(isset($_REQUEST['predefined-date']))
|
51 |
-
$predefined_date = $_REQUEST['predefined-date'];
|
52 |
-
else
|
53 |
-
$predefined_date = "This Month";
|
54 |
-
|
55 |
-
if(isset($_REQUEST['status']))
|
56 |
-
$status = $_REQUEST['status'];
|
57 |
-
else
|
58 |
-
$status = "";
|
59 |
-
|
60 |
|
61 |
//deleting?
|
62 |
if(!empty($_REQUEST['delete']))
|
@@ -74,15 +33,6 @@
|
|
74 |
}
|
75 |
}
|
76 |
|
77 |
-
if(isset($_REQUEST['filter']))
|
78 |
-
$filter = sanitize_text_field($_REQUEST['filter']);
|
79 |
-
else
|
80 |
-
$filter = "all";
|
81 |
-
|
82 |
-
$thisyear = date("Y");
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
//this array stores fields that should be read only
|
87 |
$read_only_fields = apply_filters("pmpro_orders_read_only_fields", array("code", "payment_transaction_id", "subscription_transaction_id"));
|
88 |
|
@@ -481,7 +431,7 @@
|
|
481 |
<tr>
|
482 |
<th scope="row" valign="top"><label for="subscription_transaction_id"><?php _e('Subscription Transaction ID', 'pmpro');?>:</label></th>
|
483 |
<td>
|
484 |
-
<?php if(in_array("
|
485 |
<input id="subscription_transaction_id" name="subscription_transaction_id" type="text" size="50" value="<?php echo esc_attr($order->subscription_transaction_id);?>" />
|
486 |
<?php } ?>
|
487 |
<small class="pmpro_lite"><?php _e('Generated by the gateway. Useful to cross reference subscriptions.', 'pmpro');?></small>
|
@@ -497,7 +447,7 @@
|
|
497 |
if(!empty($order->timestamp))
|
498 |
$timestamp = $order->timestamp;
|
499 |
else
|
500 |
-
$timestamp =
|
501 |
|
502 |
$year = date("Y", $timestamp);
|
503 |
$month = date("n", $timestamp);
|
@@ -508,7 +458,7 @@
|
|
508 |
for($i = 1; $i < 13; $i++)
|
509 |
{
|
510 |
?>
|
511 |
-
<option value="<?php echo $i?>" <?php if($i == $month) { ?>selected="selected"<?php } ?>><?php echo date("M", strtotime($i . "/1/" . $year
|
512 |
<?php
|
513 |
}
|
514 |
?>
|
@@ -558,7 +508,7 @@
|
|
558 |
<p class="submit topborder">
|
559 |
<input name="order" type="hidden" value="<?php if(!empty($order->id)) echo $order->id; else echo $order_id;?>" />
|
560 |
<input name="save" type="submit" class="button-primary" value="<?php _e('Save Order', 'pmpro');?>" />
|
561 |
-
<input name="cancel" type="button"
|
562 |
</p>
|
563 |
|
564 |
</form>
|
@@ -568,218 +518,25 @@
|
|
568 |
<form id="posts-filter" method="get" action="">
|
569 |
<h2>
|
570 |
<?php _e('Orders', 'pmpro');?>
|
571 |
-
<a href="admin.php?page=pmpro-orders&order=-1" class="add-new-h2">+ <?php _e('Add New Order', 'pmpro');?></a>
|
572 |
-
|
573 |
-
|
574 |
-
//build the export URL
|
575 |
-
$export_url = admin_url('admin-ajax.php') . "?action=orders_csv";
|
576 |
-
$url_params = array(
|
577 |
-
"filter"=>$filter,
|
578 |
-
"s"=>$s,
|
579 |
-
"l"=>$l,
|
580 |
-
"start-month"=>$start_month,
|
581 |
-
"start-day"=>$start_day,
|
582 |
-
"start-year"=>$start_year,
|
583 |
-
"end-month"=>$end_month,
|
584 |
-
"end-day"=>$end_day,
|
585 |
-
"end-year"=>$end_year,
|
586 |
-
"predefined-date"=>$predefined_date,
|
587 |
-
"status"=>$status
|
588 |
-
);
|
589 |
-
$export_url = add_query_arg($url_params, $export_url);
|
590 |
-
?>
|
591 |
-
<a target="_blank" href="<?php echo $export_url;?>" class="add-new-h2"><?php _e('Export to CSV', 'pmpro');?></a>
|
592 |
-
</h2>
|
593 |
-
|
594 |
-
|
595 |
|
596 |
<?php if(!empty($pmpro_msg)) { ?>
|
597 |
<div id="message" class="<?php if($pmpro_msgt == "success") echo "updated fade"; else echo "error"; ?>"><p><?php echo $pmpro_msg?></p></div>
|
598 |
<?php } ?>
|
599 |
|
600 |
-
|
601 |
<ul class="subsubsub">
|
602 |
<li>
|
603 |
-
<?php _ex('Show', 'Dropdown label, e.g. Show Daily Orders for January', 'pmpro')?>
|
604 |
-
<select id="filter" name="filter">
|
605 |
-
<option value="all" <?php selected($filter, "all");?>><?php _e('All', 'pmpro');?></option>
|
606 |
-
<option value="within-a-date-range" <?php selected($filter, "within-a-date-range");?>><?php _e('Within a Date Range', 'pmpro');?></option>
|
607 |
-
<option value="predefined-date-range" <?php selected($filter, "predefined-date-range");?>><?php _e('Predefined Date Range', 'pmpro');?></option>
|
608 |
-
<option value="within-a-level" <?php selected($filter, "within-a-level");?>><?php _e('Within a Level', 'pmpro');?></option>
|
609 |
-
<option value="within-a-status" <?php selected($filter, "within-a-status");?>><?php _e('Within a Status', 'pmpro');?></option>
|
610 |
-
</select>
|
611 |
-
|
612 |
-
<span id="from"><?php _ex('From', 'Dropdown label', 'pmpro')?></span>
|
613 |
-
|
614 |
-
<select id="start-month" name="start-month">
|
615 |
-
<?php for($i = 1; $i < 13; $i++) { ?>
|
616 |
-
<option value="<?php echo $i;?>" <?php selected($start_month, $i);?>><?php echo date("F", mktime(0, 0, 0, $i));?></option>
|
617 |
-
<?php } ?>
|
618 |
-
</select>
|
619 |
-
|
620 |
-
<input id='start-day' name="start-day" type="text" size="2" value="<?php echo $start_day?>" />
|
621 |
-
<input id='start-year' name="start-year" type="text" size="4" value="<?php echo $start_year?>" />
|
622 |
-
|
623 |
-
|
624 |
-
<span id="to"><?php _ex('To', 'Dropdown label', 'pmpro')?></span>
|
625 |
-
|
626 |
-
<select id="end-month" name="end-month">
|
627 |
-
<?php for($i = 1; $i < 13; $i++) { ?>
|
628 |
-
<option value="<?php echo $i;?>" <?php selected($end_month, $i);?>><?php echo date("F", mktime(0, 0, 0, $i));?></option>
|
629 |
-
<?php } ?>
|
630 |
-
</select>
|
631 |
-
|
632 |
-
|
633 |
-
<input id='end-day' name="end-day" type="text" size="2" value="<?php echo $end_day?>" />
|
634 |
-
<input id='end-year' name="end-year" type="text" size="4" value="<?php echo $end_year?>" />
|
635 |
-
|
636 |
-
<span id="filterby"><?php _ex('filter by ', 'Dropdown label', 'pmpro')?></span>
|
637 |
-
|
638 |
-
<select id="predefined-date" name="predefined-date">
|
639 |
|
640 |
-
<option value="<?php echo "This Month";?>" <?php selected($predefined_date, "This Month");?>><?php echo "This Month";?></option>
|
641 |
-
<option value="<?php echo "Last Month";?>" <?php selected($predefined_date, "Last Month");?>><?php echo "Last Month";?></option>
|
642 |
-
<option value="<?php echo "This Year";?>" <?php selected($predefined_date, "This Year");?>><?php echo "This Year";?></option>
|
643 |
-
<option value="<?php echo "Last Year";?>" <?php selected($predefined_date, "Last Year");?>><?php echo "Last Year";?></option>
|
644 |
-
|
645 |
-
</select>
|
646 |
-
|
647 |
-
<?php
|
648 |
-
//Note: only orders belonging to current levels can be filtered. There is no option for orders belonging to deleted levels
|
649 |
-
$levels = pmpro_getAllLevels();
|
650 |
-
|
651 |
-
?>
|
652 |
-
<select id="l" name="l">
|
653 |
-
<?php foreach($levels as $level) { ?>
|
654 |
-
<option value="<?php echo $level->id;?>" <?php selected($l, $level->id);?>><?php echo $level->name;?></option>
|
655 |
-
<?php } ?>
|
656 |
-
|
657 |
-
</select>
|
658 |
-
|
659 |
-
<?php
|
660 |
-
$statuses = array();
|
661 |
-
$default_statuses = array("", "success", "cancelled", "review", "token", "refunded");
|
662 |
-
$used_statuses = $wpdb->get_col("SELECT DISTINCT(status) FROM $wpdb->pmpro_membership_orders");
|
663 |
-
$statuses = array_unique(array_merge($default_statuses, $used_statuses));
|
664 |
-
asort($statuses);
|
665 |
-
$statuses = apply_filters("pmpro_order_statuses", $statuses);
|
666 |
-
?>
|
667 |
-
<select id="status" name="status">
|
668 |
-
<?php foreach($statuses as $the_status) { ?>
|
669 |
-
<option value="<?php echo esc_attr($the_status);?>" <?php selected($the_status, $status);?>><?php echo $the_status;?></option>
|
670 |
-
<?php } ?>
|
671 |
-
</select>
|
672 |
-
|
673 |
-
|
674 |
-
<input id="submit" type="submit" value="<?php _ex('Filter', 'Submit button value.', 'pmpro');?>" />
|
675 |
</li>
|
676 |
</ul>
|
677 |
-
|
678 |
-
<script>
|
679 |
-
//update month/year when period dropdown is changed
|
680 |
-
jQuery(document).ready(function() {
|
681 |
-
jQuery('#filter').change(function() {
|
682 |
-
pmpro_ShowMonthOrYear();
|
683 |
-
});
|
684 |
-
});
|
685 |
-
|
686 |
-
function pmpro_ShowMonthOrYear()
|
687 |
-
{
|
688 |
-
var filter = jQuery('#filter').val();
|
689 |
-
if(filter == 'all')
|
690 |
-
{
|
691 |
-
jQuery('#start-month').hide();
|
692 |
-
jQuery('#start-day').hide();
|
693 |
-
jQuery('#start-year').hide();
|
694 |
-
jQuery('#end-month').hide();
|
695 |
-
jQuery('#end-day').hide();
|
696 |
-
jQuery('#end-year').hide();
|
697 |
-
jQuery('#predefined-date').hide();
|
698 |
-
jQuery('#status').hide();
|
699 |
-
jQuery('#l').hide();
|
700 |
-
jQuery('#from').hide();
|
701 |
-
jQuery('#to').hide();
|
702 |
-
jQuery('#submit').show();
|
703 |
-
jQuery('#filterby').hide();
|
704 |
-
}
|
705 |
-
else if(filter == 'within-a-date-range')
|
706 |
-
{
|
707 |
-
jQuery('#start-month').show();
|
708 |
-
jQuery('#start-day').show();
|
709 |
-
jQuery('#start-year').show();
|
710 |
-
jQuery('#end-month').show();
|
711 |
-
jQuery('#end-day').show();
|
712 |
-
jQuery('#end-year').show();
|
713 |
-
jQuery('#predefined-date').hide();
|
714 |
-
jQuery('#status').hide();
|
715 |
-
jQuery('#l').hide();
|
716 |
-
jQuery('#submit').show();
|
717 |
-
jQuery('#from').show();
|
718 |
-
jQuery('#to').show();
|
719 |
-
jQuery('#filterby').hide();
|
720 |
-
}
|
721 |
-
else if(filter == 'predefined-date-range')
|
722 |
-
{
|
723 |
-
jQuery('#start-month').hide();
|
724 |
-
jQuery('#start-day').hide();
|
725 |
-
jQuery('#start-year').hide();
|
726 |
-
jQuery('#end-month').hide();
|
727 |
-
jQuery('#end-day').hide();
|
728 |
-
jQuery('#end-year').hide();
|
729 |
-
jQuery('#predefined-date').show();
|
730 |
-
jQuery('#status').hide();
|
731 |
-
jQuery('#l').hide();
|
732 |
-
jQuery('#submit').show();
|
733 |
-
jQuery('#from').hide();
|
734 |
-
jQuery('#to').hide();
|
735 |
-
jQuery('#filterby').show();
|
736 |
-
}
|
737 |
-
else if(filter == 'within-a-level')
|
738 |
-
{
|
739 |
-
jQuery('#start-month').hide();
|
740 |
-
jQuery('#start-day').hide();
|
741 |
-
jQuery('#start-year').hide();
|
742 |
-
jQuery('#end-month').hide();
|
743 |
-
jQuery('#end-day').hide();
|
744 |
-
jQuery('#end-year').hide();
|
745 |
-
jQuery('#predefined-date').hide();
|
746 |
-
jQuery('#status').hide();
|
747 |
-
jQuery('#l').show();
|
748 |
-
jQuery('#submit').show();
|
749 |
-
jQuery('#from').hide();
|
750 |
-
jQuery('#to').hide();
|
751 |
-
jQuery('#filterby').show();
|
752 |
-
}
|
753 |
-
else if(filter == 'within-a-status')
|
754 |
-
{
|
755 |
-
jQuery('#start-month').hide();
|
756 |
-
jQuery('#start-day').hide();
|
757 |
-
jQuery('#start-year').hide();
|
758 |
-
jQuery('#end-month').hide();
|
759 |
-
jQuery('#end-day').hide();
|
760 |
-
jQuery('#end-year').hide();
|
761 |
-
jQuery('#predefined-date').hide();
|
762 |
-
jQuery('#status').show();
|
763 |
-
jQuery('#l').hide();
|
764 |
-
jQuery('#submit').show();
|
765 |
-
jQuery('#from').hide();
|
766 |
-
jQuery('#to').hide();
|
767 |
-
jQuery('#filterby').show();
|
768 |
-
}
|
769 |
-
}
|
770 |
-
|
771 |
-
pmpro_ShowMonthOrYear();
|
772 |
-
|
773 |
-
|
774 |
-
</script>
|
775 |
-
|
776 |
<p class="search-box">
|
777 |
<label class="hidden" for="post-search-input"><?php _e('Search Orders', 'pmpro');?>:</label>
|
778 |
<input type="hidden" name="page" value="pmpro-orders" />
|
779 |
<input id="post-search-input" type="text" value="<?php echo $s?>" name="s"/>
|
780 |
<input class="button" type="submit" value="<?php _e('Search Orders', 'pmpro');?>"/>
|
781 |
</p>
|
782 |
-
|
783 |
<?php
|
784 |
//some vars for the search
|
785 |
if(isset($_REQUEST['pn']))
|
@@ -795,62 +552,6 @@
|
|
795 |
$end = $pn * $limit;
|
796 |
$start = $end - $limit;
|
797 |
|
798 |
-
//filters
|
799 |
-
if($filter == "all" || !$filter)
|
800 |
-
$condition = "1=1";
|
801 |
-
elseif($filter == "within-a-date-range")
|
802 |
-
{
|
803 |
-
$start_date = $start_year."-".$start_month."-".$start_day;
|
804 |
-
$end_date = $end_year."-".$end_month."-".$end_day;
|
805 |
-
|
806 |
-
//add times to dates
|
807 |
-
$start_date = $start_date . " 00:00:00";
|
808 |
-
$end_date = $end_date . " 23:59:59";
|
809 |
-
|
810 |
-
$condition = "timestamp BETWEEN '".$start_date."' AND '".$end_date."'";
|
811 |
-
}
|
812 |
-
elseif($filter == "predefined-date-range")
|
813 |
-
{
|
814 |
-
if($predefined_date == "Last Month")
|
815 |
-
{
|
816 |
-
$start_date = date("Y-m-d", strtotime("first day of last month", current_time("timestamp")));
|
817 |
-
$end_date = date("Y-m-d", strtotime("last day of last month", current_time("timestamp")));
|
818 |
-
}
|
819 |
-
elseif($predefined_date == "This Month")
|
820 |
-
{
|
821 |
-
$start_date = date("Y-m-d", strtotime("first day of this month", current_time("timestamp")));
|
822 |
-
$end_date = date("Y-m-d", strtotime("last day of this month", current_time("timestamp")));
|
823 |
-
}
|
824 |
-
elseif($predefined_date == "This Year")
|
825 |
-
{
|
826 |
-
$year = date('Y');
|
827 |
-
$start_date = date("Y-m-d", strtotime("first day of January $year", current_time("timestamp")));
|
828 |
-
$end_date = date("Y-m-d", strtotime("last day of December $year", current_time("timestamp")));
|
829 |
-
}
|
830 |
-
|
831 |
-
elseif($predefined_date == "Last Year")
|
832 |
-
{
|
833 |
-
$year = date('Y') - 1;
|
834 |
-
$start_date = date("Y-m-d", strtotime("first day of January $year", current_time("timestamp")));
|
835 |
-
$end_date = date("Y-m-d", strtotime("last day of December $year", current_time("timestamp")));
|
836 |
-
}
|
837 |
-
|
838 |
-
//add times to dates
|
839 |
-
$start_date = $start_date . " 00:00:00";
|
840 |
-
$end_date = $end_date . " 23:59:59";
|
841 |
-
|
842 |
-
$condition = "timestamp BETWEEN '".$start_date."' AND '".$end_date."'";
|
843 |
-
}
|
844 |
-
elseif($filter == "within-a-level")
|
845 |
-
{
|
846 |
-
$condition = "membership_id = $l";
|
847 |
-
}
|
848 |
-
elseif($filter == "within-a-status")
|
849 |
-
{
|
850 |
-
$condition = "status = '$status' ";
|
851 |
-
}
|
852 |
-
|
853 |
-
//string search
|
854 |
if($s)
|
855 |
{
|
856 |
$sqlQuery = "SELECT SQL_CALC_FOUND_ROWS o.id FROM $wpdb->pmpro_membership_orders o LEFT JOIN $wpdb->users u ON o.user_id = u.ID LEFT JOIN $wpdb->pmpro_membership_levels l ON o.membership_id = l.id ";
|
@@ -869,22 +570,18 @@
|
|
869 |
$fields = apply_filters("pmpro_orders_search_fields", $fields);
|
870 |
|
871 |
foreach($fields as $field)
|
872 |
-
$sqlQuery .= " OR " . $field . " LIKE '%" .
|
873 |
$sqlQuery .= ") ";
|
874 |
-
|
875 |
-
$sqlQuery .= "AND " . $condition . " ";
|
876 |
-
|
877 |
$sqlQuery .= "GROUP BY o.id ORDER BY o.id DESC, o.timestamp DESC ";
|
878 |
}
|
879 |
else
|
880 |
{
|
881 |
-
$sqlQuery = "SELECT SQL_CALC_FOUND_ROWS id FROM $wpdb->pmpro_membership_orders
|
882 |
}
|
883 |
|
884 |
$sqlQuery .= "LIMIT $start, $limit";
|
885 |
|
886 |
$order_ids = $wpdb->get_col($sqlQuery);
|
887 |
-
|
888 |
$totalrows = $wpdb->get_var("SELECT FOUND_ROWS() as found_rows");
|
889 |
|
890 |
if($order_ids)
|
@@ -984,9 +681,7 @@
|
|
984 |
</form>
|
985 |
|
986 |
<?php
|
987 |
-
|
988 |
-
$pagination_url = add_query_arg($url_params, get_admin_url(NULL, "/admin.php?page=pmpro-orders"));
|
989 |
-
echo pmpro_getPaginationString($pn, $totalrows, $limit, 1, $pagination_url, "&limit=$limit&pn=");
|
990 |
?>
|
991 |
|
992 |
<?php } ?>
|
16 |
$l = $_REQUEST['l'];
|
17 |
else
|
18 |
$l = false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
|
20 |
//deleting?
|
21 |
if(!empty($_REQUEST['delete']))
|
33 |
}
|
34 |
}
|
35 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
//this array stores fields that should be read only
|
37 |
$read_only_fields = apply_filters("pmpro_orders_read_only_fields", array("code", "payment_transaction_id", "subscription_transaction_id"));
|
38 |
|
431 |
<tr>
|
432 |
<th scope="row" valign="top"><label for="subscription_transaction_id"><?php _e('Subscription Transaction ID', 'pmpro');?>:</label></th>
|
433 |
<td>
|
434 |
+
<?php if(in_array("code", $read_only_fields) && $order_id > 0) { echo $order->subscription_transaction_id; } else { ?>
|
435 |
<input id="subscription_transaction_id" name="subscription_transaction_id" type="text" size="50" value="<?php echo esc_attr($order->subscription_transaction_id);?>" />
|
436 |
<?php } ?>
|
437 |
<small class="pmpro_lite"><?php _e('Generated by the gateway. Useful to cross reference subscriptions.', 'pmpro');?></small>
|
447 |
if(!empty($order->timestamp))
|
448 |
$timestamp = $order->timestamp;
|
449 |
else
|
450 |
+
$timestamp = time();
|
451 |
|
452 |
$year = date("Y", $timestamp);
|
453 |
$month = date("n", $timestamp);
|
458 |
for($i = 1; $i < 13; $i++)
|
459 |
{
|
460 |
?>
|
461 |
+
<option value="<?php echo $i?>" <?php if($i == $month) { ?>selected="selected"<?php } ?>><?php echo date("M", strtotime($i . "/1/" . $year))?></option>
|
462 |
<?php
|
463 |
}
|
464 |
?>
|
508 |
<p class="submit topborder">
|
509 |
<input name="order" type="hidden" value="<?php if(!empty($order->id)) echo $order->id; else echo $order_id;?>" />
|
510 |
<input name="save" type="submit" class="button-primary" value="<?php _e('Save Order', 'pmpro');?>" />
|
511 |
+
<input name="cancel" type="button" value="<?php _e('Cancel', 'pmpro');?>" onclick="location.href='<?php echo get_admin_url(NULL, '/admin.php?page=pmpro-orders')?>';" />
|
512 |
</p>
|
513 |
|
514 |
</form>
|
518 |
<form id="posts-filter" method="get" action="">
|
519 |
<h2>
|
520 |
<?php _e('Orders', 'pmpro');?>
|
521 |
+
<a href="admin.php?page=pmpro-orders&order=-1" class="button add-new-h2">+ <?php _e('Add New Order', 'pmpro');?></a>
|
522 |
+
<a target="_blank" href="<?php echo admin_url('admin-ajax.php');?>?action=orders_csv&s=<?php echo $s?>&l=<?php echo $l?>" class="button add-new-h2"><?php _e('Export to CSV', 'pmpro');?></a>
|
523 |
+
</h2>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
524 |
|
525 |
<?php if(!empty($pmpro_msg)) { ?>
|
526 |
<div id="message" class="<?php if($pmpro_msgt == "success") echo "updated fade"; else echo "error"; ?>"><p><?php echo $pmpro_msg?></p></div>
|
527 |
<?php } ?>
|
528 |
|
|
|
529 |
<ul class="subsubsub">
|
530 |
<li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
531 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
532 |
</li>
|
533 |
</ul>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
534 |
<p class="search-box">
|
535 |
<label class="hidden" for="post-search-input"><?php _e('Search Orders', 'pmpro');?>:</label>
|
536 |
<input type="hidden" name="page" value="pmpro-orders" />
|
537 |
<input id="post-search-input" type="text" value="<?php echo $s?>" name="s"/>
|
538 |
<input class="button" type="submit" value="<?php _e('Search Orders', 'pmpro');?>"/>
|
539 |
</p>
|
|
|
540 |
<?php
|
541 |
//some vars for the search
|
542 |
if(isset($_REQUEST['pn']))
|
552 |
$end = $pn * $limit;
|
553 |
$start = $end - $limit;
|
554 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
555 |
if($s)
|
556 |
{
|
557 |
$sqlQuery = "SELECT SQL_CALC_FOUND_ROWS o.id FROM $wpdb->pmpro_membership_orders o LEFT JOIN $wpdb->users u ON o.user_id = u.ID LEFT JOIN $wpdb->pmpro_membership_levels l ON o.membership_id = l.id ";
|
570 |
$fields = apply_filters("pmpro_orders_search_fields", $fields);
|
571 |
|
572 |
foreach($fields as $field)
|
573 |
+
$sqlQuery .= " OR " . $field . " LIKE '%" . $wpdb->escape($s) . "%' ";
|
574 |
$sqlQuery .= ") ";
|
|
|
|
|
|
|
575 |
$sqlQuery .= "GROUP BY o.id ORDER BY o.id DESC, o.timestamp DESC ";
|
576 |
}
|
577 |
else
|
578 |
{
|
579 |
+
$sqlQuery = "SELECT SQL_CALC_FOUND_ROWS id FROM $wpdb->pmpro_membership_orders ORDER BY id DESC, timestamp DESC ";
|
580 |
}
|
581 |
|
582 |
$sqlQuery .= "LIMIT $start, $limit";
|
583 |
|
584 |
$order_ids = $wpdb->get_col($sqlQuery);
|
|
|
585 |
$totalrows = $wpdb->get_var("SELECT FOUND_ROWS() as found_rows");
|
586 |
|
587 |
if($order_ids)
|
681 |
</form>
|
682 |
|
683 |
<?php
|
684 |
+
echo pmpro_getPaginationString($pn, $totalrows, $limit, 1, get_admin_url(NULL, "/admin.php?page=pmpro-orders&s=" . urlencode($s)), "&l=$l&limit=$limit&pn=");
|
|
|
|
|
685 |
?>
|
686 |
|
687 |
<?php } ?>
|
adminpages/pagesettings.php
CHANGED
@@ -46,37 +46,9 @@
|
|
46 |
{
|
47 |
if(!$pmpro_page_id)
|
48 |
{
|
49 |
-
switch ($pmpro_page_name) {
|
50 |
-
case 'account':
|
51 |
-
$pmpro_page_title = __( 'Membership Account', 'pmpro' );
|
52 |
-
break;
|
53 |
-
case 'billing':
|
54 |
-
$pmpro_page_title = __( 'Membership Billing', 'pmpro' );
|
55 |
-
break;
|
56 |
-
case 'cancel':
|
57 |
-
$pmpro_page_title = __( 'Membership Cancel', 'pmpro' );
|
58 |
-
break;
|
59 |
-
case 'checkout':
|
60 |
-
$pmpro_page_title = __( 'Membership Checkout', 'pmpro' );
|
61 |
-
break;
|
62 |
-
case 'confirmation':
|
63 |
-
$pmpro_page_title = __( 'Membership Confirmation', 'pmpro' );
|
64 |
-
break;
|
65 |
-
case 'invoice':
|
66 |
-
$pmpro_page_title = __( 'Membership Invoice', 'pmpro' );
|
67 |
-
break;
|
68 |
-
case 'levels':
|
69 |
-
$pmpro_page_title = __( 'Membership Levels', 'pmpro' );
|
70 |
-
break;
|
71 |
-
|
72 |
-
default:
|
73 |
-
$pmpro_page_title = sprintf( __( 'Membership %s', 'Page title template', 'pmpro' ), ucwords($pmpro_page_name) );
|
74 |
-
break;
|
75 |
-
}
|
76 |
-
|
77 |
//no id set. create an array to store the page info
|
78 |
$insert = array(
|
79 |
-
'post_title' => $
|
80 |
'post_status' => 'publish',
|
81 |
'post_type' => 'page',
|
82 |
'post_content' => '[pmpro_' . $pmpro_page_name . ']',
|
@@ -144,9 +116,7 @@
|
|
144 |
wp_dropdown_pages(array("name"=>"account_page_id", "show_option_none"=>"-- Choose One --", "selected"=>$pmpro_pages['account']));
|
145 |
?>
|
146 |
<?php if(!empty($pmpro_pages['account'])) { ?>
|
147 |
-
<a target="_blank" href="post.php?post=<?php echo $pmpro_pages['account']
|
148 |
-
|
149 |
-
<a target="_blank" href="<?php echo get_permalink($pmpro_pages['account']);?>" class="button button-secondary pmpro_page_view"><?php _e('view page', 'pmpro');?></a>
|
150 |
<?php } ?>
|
151 |
<br /><small class="pmpro_lite"><?php _e('Include the shortcode', 'pmpro');?> [pmpro_account].</small>
|
152 |
</td>
|
@@ -159,9 +129,7 @@
|
|
159 |
wp_dropdown_pages(array("name"=>"billing_page_id", "show_option_none"=>"-- Choose One --", "selected"=>$pmpro_pages['billing']));
|
160 |
?>
|
161 |
<?php if(!empty($pmpro_pages['billing'])) { ?>
|
162 |
-
<a target="_blank" href="post.php?post=<?php echo $pmpro_pages['billing']?>&action=edit" class="
|
163 |
-
|
164 |
-
<a target="_blank" href="<?php echo get_permalink($pmpro_pages['billing']);?>" class="button button-secondary pmpro_page_view"><?php _e('view page', 'pmpro');?></a>
|
165 |
<?php } ?>
|
166 |
<br /><small class="pmpro_lite"><?php _e('Include the shortcode', 'pmpro');?> [pmpro_billing].</small>
|
167 |
</td>
|
@@ -174,9 +142,7 @@
|
|
174 |
wp_dropdown_pages(array("name"=>"cancel_page_id", "show_option_none"=>"-- Choose One --", "selected"=>$pmpro_pages['cancel']));
|
175 |
?>
|
176 |
<?php if(!empty($pmpro_pages['cancel'])) { ?>
|
177 |
-
<a target="_blank" href="post.php?post=<?php echo $pmpro_pages['cancel']?>&action=edit" class="
|
178 |
-
|
179 |
-
<a target="_blank" href="<?php echo get_permalink($pmpro_pages['cancel']);?>" class="button button-secondary pmpro_page_view"><?php _e('view page', 'pmpro');?></a>
|
180 |
<?php } ?>
|
181 |
<br /><small class="pmpro_lite"><?php _e('Include the shortcode', 'pmpro');?> [pmpro_cancel].</small>
|
182 |
</td>
|
@@ -190,9 +156,7 @@
|
|
190 |
wp_dropdown_pages(array("name"=>"checkout_page_id", "show_option_none"=>"-- Choose One --", "selected"=>$pmpro_pages['checkout']));
|
191 |
?>
|
192 |
<?php if(!empty($pmpro_pages['checkout'])) { ?>
|
193 |
-
<a target="_blank" href="post.php?post=<?php echo $pmpro_pages['checkout']?>&action=edit" class="
|
194 |
-
|
195 |
-
<a target="_blank" href="<?php echo get_permalink($pmpro_pages['checkout']);?>" class="button button-secondary pmpro_page_view"><?php _e('view page', 'pmpro');?></a>
|
196 |
<?php } ?>
|
197 |
<br /><small class="pmpro_lite"><?php _e('Include the shortcode', 'pmpro');?> [pmpro_checkout].</small>
|
198 |
</td>
|
@@ -206,9 +170,7 @@
|
|
206 |
wp_dropdown_pages(array("name"=>"confirmation_page_id", "show_option_none"=>"-- Choose One --", "selected"=>$pmpro_pages['confirmation']));
|
207 |
?>
|
208 |
<?php if(!empty($pmpro_pages['confirmation'])) { ?>
|
209 |
-
<a target="_blank" href="post.php?post=<?php echo $pmpro_pages['confirmation']?>&action=edit" class="
|
210 |
-
|
211 |
-
<a target="_blank" href="<?php echo get_permalink($pmpro_pages['confirmation']);?>" class="button button-secondary pmpro_page_view"><?php _e('view page', 'pmpro');?></a>
|
212 |
<?php } ?>
|
213 |
<br /><small class="pmpro_lite"><?php _e('Include the shortcode', 'pmpro');?> [pmpro_confirmation].</small>
|
214 |
</td>
|
@@ -222,9 +184,7 @@
|
|
222 |
wp_dropdown_pages(array("name"=>"invoice_page_id", "show_option_none"=>"-- Choose One --", "selected"=>$pmpro_pages['invoice']));
|
223 |
?>
|
224 |
<?php if(!empty($pmpro_pages['invoice'])) { ?>
|
225 |
-
<a target="_blank" href="post.php?post=<?php echo $pmpro_pages['invoice']?>&action=edit" class="
|
226 |
-
|
227 |
-
<a target="_blank" href="<?php echo get_permalink($pmpro_pages['invoice']);?>" class="button button-secondary pmpro_page_view"><?php _e('view page', 'pmpro');?></a>
|
228 |
<?php } ?>
|
229 |
<br /><small class="pmpro_lite"><?php _e('Include the shortcode', 'pmpro');?> [pmpro_invoice].</small>
|
230 |
</td>
|
@@ -238,9 +198,7 @@
|
|
238 |
wp_dropdown_pages(array("name"=>"levels_page_id", "show_option_none"=>"-- Choose One --", "selected"=>$pmpro_pages['levels']));
|
239 |
?>
|
240 |
<?php if(!empty($pmpro_pages['levels'])) { ?>
|
241 |
-
<a target="_blank" href="post.php?post=<?php echo $pmpro_pages['levels']?>&action=edit" class="
|
242 |
-
|
243 |
-
<a target="_blank" href="<?php echo get_permalink($pmpro_pages['levels']);?>" class="button button-secondary pmpro_page_view"><?php _e('view page', 'pmpro');?></a>
|
244 |
<?php } ?>
|
245 |
<br /><small class="pmpro_lite"><?php _e('Include the shortcode', 'pmpro');?> [pmpro_levels].</small>
|
246 |
</td>
|
@@ -248,7 +206,7 @@
|
|
248 |
</tbody>
|
249 |
</table>
|
250 |
<p class="submit">
|
251 |
-
<input name="savesettings" type="submit" class="button
|
252 |
</p>
|
253 |
</form>
|
254 |
|
46 |
{
|
47 |
if(!$pmpro_page_id)
|
48 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
//no id set. create an array to store the page info
|
50 |
$insert = array(
|
51 |
+
'post_title' => __('Membership', 'pmpro') . ' ' . ucwords($pmpro_page_name),
|
52 |
'post_status' => 'publish',
|
53 |
'post_type' => 'page',
|
54 |
'post_content' => '[pmpro_' . $pmpro_page_name . ']',
|
116 |
wp_dropdown_pages(array("name"=>"account_page_id", "show_option_none"=>"-- Choose One --", "selected"=>$pmpro_pages['account']));
|
117 |
?>
|
118 |
<?php if(!empty($pmpro_pages['account'])) { ?>
|
119 |
+
<a target="_blank" href="post.php?post=<?php echo $pmpro_pages['account']?>&action=edit" class="pmpro_page_edit"><?php _e('edit page', 'pmpro');?></a>
|
|
|
|
|
120 |
<?php } ?>
|
121 |
<br /><small class="pmpro_lite"><?php _e('Include the shortcode', 'pmpro');?> [pmpro_account].</small>
|
122 |
</td>
|
129 |
wp_dropdown_pages(array("name"=>"billing_page_id", "show_option_none"=>"-- Choose One --", "selected"=>$pmpro_pages['billing']));
|
130 |
?>
|
131 |
<?php if(!empty($pmpro_pages['billing'])) { ?>
|
132 |
+
<a target="_blank" href="post.php?post=<?php echo $pmpro_pages['billing']?>&action=edit" class="pmpro_page_edit"><?php _e('edit page', 'pmpro');?></a>
|
|
|
|
|
133 |
<?php } ?>
|
134 |
<br /><small class="pmpro_lite"><?php _e('Include the shortcode', 'pmpro');?> [pmpro_billing].</small>
|
135 |
</td>
|
142 |
wp_dropdown_pages(array("name"=>"cancel_page_id", "show_option_none"=>"-- Choose One --", "selected"=>$pmpro_pages['cancel']));
|
143 |
?>
|
144 |
<?php if(!empty($pmpro_pages['cancel'])) { ?>
|
145 |
+
<a target="_blank" href="post.php?post=<?php echo $pmpro_pages['cancel']?>&action=edit" class="pmpro_page_edit"><?php _e('edit page', 'pmpro');?></a>
|
|
|
|
|
146 |
<?php } ?>
|
147 |
<br /><small class="pmpro_lite"><?php _e('Include the shortcode', 'pmpro');?> [pmpro_cancel].</small>
|
148 |
</td>
|
156 |
wp_dropdown_pages(array("name"=>"checkout_page_id", "show_option_none"=>"-- Choose One --", "selected"=>$pmpro_pages['checkout']));
|
157 |
?>
|
158 |
<?php if(!empty($pmpro_pages['checkout'])) { ?>
|
159 |
+
<a target="_blank" href="post.php?post=<?php echo $pmpro_pages['checkout']?>&action=edit" class="pmpro_page_edit"><?php _e('edit page', 'pmpro');?></a>
|
|
|
|
|
160 |
<?php } ?>
|
161 |
<br /><small class="pmpro_lite"><?php _e('Include the shortcode', 'pmpro');?> [pmpro_checkout].</small>
|
162 |
</td>
|
170 |
wp_dropdown_pages(array("name"=>"confirmation_page_id", "show_option_none"=>"-- Choose One --", "selected"=>$pmpro_pages['confirmation']));
|
171 |
?>
|
172 |
<?php if(!empty($pmpro_pages['confirmation'])) { ?>
|
173 |
+
<a target="_blank" href="post.php?post=<?php echo $pmpro_pages['confirmation']?>&action=edit" class="pmpro_page_edit"><?php _e('edit page', 'pmpro');?></a>
|
|
|
|
|
174 |
<?php } ?>
|
175 |
<br /><small class="pmpro_lite"><?php _e('Include the shortcode', 'pmpro');?> [pmpro_confirmation].</small>
|
176 |
</td>
|
184 |
wp_dropdown_pages(array("name"=>"invoice_page_id", "show_option_none"=>"-- Choose One --", "selected"=>$pmpro_pages['invoice']));
|
185 |
?>
|
186 |
<?php if(!empty($pmpro_pages['invoice'])) { ?>
|
187 |
+
<a target="_blank" href="post.php?post=<?php echo $pmpro_pages['invoice']?>&action=edit" class="pmpro_page_edit"><?php _e('edit page', 'pmpro');?></a>
|
|
|
|
|
188 |
<?php } ?>
|
189 |
<br /><small class="pmpro_lite"><?php _e('Include the shortcode', 'pmpro');?> [pmpro_invoice].</small>
|
190 |
</td>
|
198 |
wp_dropdown_pages(array("name"=>"levels_page_id", "show_option_none"=>"-- Choose One --", "selected"=>$pmpro_pages['levels']));
|
199 |
?>
|
200 |
<?php if(!empty($pmpro_pages['levels'])) { ?>
|
201 |
+
<a target="_blank" href="post.php?post=<?php echo $pmpro_pages['levels']?>&action=edit" class="pmpro_page_edit"><?php _e('edit page', 'pmpro');?></a>
|
|
|
|
|
202 |
<?php } ?>
|
203 |
<br /><small class="pmpro_lite"><?php _e('Include the shortcode', 'pmpro');?> [pmpro_levels].</small>
|
204 |
</td>
|
206 |
</tbody>
|
207 |
</table>
|
208 |
<p class="submit">
|
209 |
+
<input name="savesettings" type="submit" class="button-primary" value="<?php _e('Save Settings', 'pmpro');?>" />
|
210 |
</p>
|
211 |
</form>
|
212 |
|
adminpages/paymentsettings.php
CHANGED
@@ -1,538 +1,491 @@
|
|
1 |
-
<?php
|
2 |
-
//only admins can get this
|
3 |
-
if(!function_exists("current_user_can") || (!current_user_can("manage_options") && !current_user_can("pmpro_paymentsettings")))
|
4 |
-
{
|
5 |
-
die(__("You do not have permissions to perform this action.", "pmpro"));
|
6 |
-
}
|
7 |
-
|
8 |
-
global $wpdb, $pmpro_currency_symbol, $msg, $msgt;
|
9 |
-
|
10 |
-
//get/set settings
|
11 |
-
if(!empty($_REQUEST['savesettings']))
|
12 |
-
{
|
13 |
-
pmpro_setOption("sslseal");
|
14 |
-
pmpro_setOption("nuclear_HTTPS");
|
15 |
-
|
16 |
-
//gateway options
|
17 |
-
pmpro_setOption("gateway");
|
18 |
-
pmpro_setOption("gateway_environment");
|
19 |
-
pmpro_setOption("gateway_email");
|
20 |
-
pmpro_setOption("payflow_partner");
|
21 |
-
pmpro_setOption("payflow_vendor");
|
22 |
-
pmpro_setOption("payflow_user");
|
23 |
-
pmpro_setOption("payflow_pwd");
|
24 |
-
pmpro_setOption("apiusername");
|
25 |
-
pmpro_setOption("apipassword");
|
26 |
-
pmpro_setOption("apisignature");
|
27 |
-
pmpro_setOption("loginname");
|
28 |
-
pmpro_setOption("transactionkey");
|
29 |
-
pmpro_setOption("stripe_secretkey");
|
30 |
-
pmpro_setOption("stripe_publishablekey");
|
31 |
-
pmpro_setOption("
|
32 |
-
pmpro_setOption("
|
33 |
-
pmpro_setOption("
|
34 |
-
pmpro_setOption("
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
if(!empty($_REQUEST['
|
51 |
-
$pmpro_accepted_credit_cards[] = "
|
52 |
-
if(!empty($_REQUEST['
|
53 |
-
$pmpro_accepted_credit_cards[] = "
|
54 |
-
if(!empty($_REQUEST['
|
55 |
-
$pmpro_accepted_credit_cards[] = "
|
56 |
-
if(!empty($_REQUEST['
|
57 |
-
$pmpro_accepted_credit_cards[] = "
|
58 |
-
if(!empty($_REQUEST['
|
59 |
-
$pmpro_accepted_credit_cards[] = "
|
60 |
-
if(!empty($_REQUEST['
|
61 |
-
$pmpro_accepted_credit_cards[] = "
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
$
|
86 |
-
$
|
87 |
-
|
88 |
-
$
|
89 |
-
$
|
90 |
-
$
|
91 |
-
$
|
92 |
-
$
|
93 |
-
$
|
94 |
-
$
|
95 |
-
$
|
96 |
-
$
|
97 |
-
$
|
98 |
-
$
|
99 |
-
$
|
100 |
-
$
|
101 |
-
$
|
102 |
-
$
|
103 |
-
$
|
104 |
-
$
|
105 |
-
$
|
106 |
-
|
107 |
-
$
|
108 |
-
|
109 |
-
$
|
110 |
-
|
111 |
-
$
|
112 |
-
|
113 |
-
$
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
<
|
147 |
-
|
148 |
-
<
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
<option value=""
|
159 |
-
<option value="
|
160 |
-
<option value="
|
161 |
-
<option value="
|
162 |
-
<option value="
|
163 |
-
<option value="
|
164 |
-
<option value="
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
</
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
<tr class="gateway
|
259 |
-
<th scope="row" valign="top">
|
260 |
-
<label for="
|
261 |
-
</th>
|
262 |
-
<td>
|
263 |
-
<input type="text"
|
264 |
-
</td>
|
265 |
-
</tr>
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
<tr class="gateway
|
276 |
-
<th scope="row" valign="top">
|
277 |
-
<label for="
|
278 |
-
</th>
|
279 |
-
<td>
|
280 |
-
<input type="text"
|
281 |
-
</td>
|
282 |
-
</tr>
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
<tr class="gateway
|
293 |
-
<th scope="row" valign="top">
|
294 |
-
<label for="
|
295 |
-
</th>
|
296 |
-
<td>
|
297 |
-
<input type="text"
|
298 |
-
</td>
|
299 |
-
</tr>
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
<tr class="gateway
|
326 |
-
<th scope="row" valign="top">
|
327 |
-
<label for="
|
328 |
-
</th>
|
329 |
-
<td>
|
330 |
-
<
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
</
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
<
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
<
|
389 |
-
<
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
<
|
411 |
-
|
412 |
-
|
413 |
-
<
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
<tr
|
429 |
-
<th scope="row" valign="top">
|
430 |
-
<label for="
|
431 |
-
</th>
|
432 |
-
<td>
|
433 |
-
<
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
<
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
<
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
<th scope="row" valign="top">
|
493 |
-
<label><?php _e('TwoCheckout INS URL', 'pmpro');?>:</label>
|
494 |
-
</th>
|
495 |
-
<td>
|
496 |
-
<p><?php _e('To fully integrate with 2Checkout, be sure to set your 2Checkout INS URL ', 'pmpro');?> <pre><?php echo admin_url("admin-ajax.php") . "?action=twocheckout-ins";?></pre></p>
|
497 |
-
</td>
|
498 |
-
</tr>
|
499 |
-
<tr class="gateway gateway_authorizenet" <?php if($gateway != "authorizenet") { ?>style="display: none;"<?php } ?>>
|
500 |
-
<th scope="row" valign="top">
|
501 |
-
<label><?php _e('Silent Post URL', 'pmpro');?>:</label>
|
502 |
-
</th>
|
503 |
-
<td>
|
504 |
-
<p><?php _e('To fully integrate with Authorize.net, be sure to set your Silent Post URL to', 'pmpro');?> <pre><?php echo admin_url("admin-ajax.php") . "?action=authnet_silent_post";?></pre></p>
|
505 |
-
</td>
|
506 |
-
</tr>
|
507 |
-
<tr class="gateway gateway_stripe" <?php if($gateway != "stripe") { ?>style="display: none;"<?php } ?>>
|
508 |
-
<th scope="row" valign="top">
|
509 |
-
<label><?php _e('Web Hook URL', 'pmpro');?>:</label>
|
510 |
-
</th>
|
511 |
-
<td>
|
512 |
-
<p><?php _e('To fully integrate with Stripe, be sure to set your Web Hook URL to', 'pmpro');?> <pre><?php echo admin_url("admin-ajax.php") . "?action=stripe_webhook";?></pre></p>
|
513 |
-
</td>
|
514 |
-
</tr>
|
515 |
-
<tr class="gateway gateway_braintree" <?php if($gateway != "braintree") { ?>style="display: none;"<?php } ?>>
|
516 |
-
<th scope="row" valign="top">
|
517 |
-
<label><?php _e('Web Hook URL', 'pmpro');?>:</label>
|
518 |
-
</th>
|
519 |
-
<td>
|
520 |
-
<p>
|
521 |
-
<?php _e('To fully integrate with Braintree, be sure to set your Web Hook URL to', 'pmpro');?>
|
522 |
-
<pre><?php
|
523 |
-
//echo admin_url("admin-ajax.php") . "?action=braintree_webhook";
|
524 |
-
echo PMPRO_URL . "/services/braintree-webhook.php";
|
525 |
-
?></pre>.
|
526 |
-
</p>
|
527 |
-
</td>
|
528 |
-
</tr>
|
529 |
-
</tbody>
|
530 |
-
</table>
|
531 |
-
<p class="submit">
|
532 |
-
<input name="savesettings" type="submit" class="button-primary" value="<?php _e('Save Settings', 'pmpro');?>" />
|
533 |
-
</p>
|
534 |
-
</form>
|
535 |
-
|
536 |
-
<?php
|
537 |
-
require_once(dirname(__FILE__) . "/admin_footer.php");
|
538 |
-
?>
|
1 |
+
<?php
|
2 |
+
//only admins can get this
|
3 |
+
if(!function_exists("current_user_can") || (!current_user_can("manage_options") && !current_user_can("pmpro_paymentsettings")))
|
4 |
+
{
|
5 |
+
die(__("You do not have permissions to perform this action.", "pmpro"));
|
6 |
+
}
|
7 |
+
|
8 |
+
global $wpdb, $pmpro_currency_symbol, $msg, $msgt;
|
9 |
+
|
10 |
+
//get/set settings
|
11 |
+
if(!empty($_REQUEST['savesettings']))
|
12 |
+
{
|
13 |
+
pmpro_setOption("sslseal");
|
14 |
+
pmpro_setOption("nuclear_HTTPS");
|
15 |
+
|
16 |
+
//gateway options
|
17 |
+
pmpro_setOption("gateway");
|
18 |
+
pmpro_setOption("gateway_environment");
|
19 |
+
pmpro_setOption("gateway_email");
|
20 |
+
pmpro_setOption("payflow_partner");
|
21 |
+
pmpro_setOption("payflow_vendor");
|
22 |
+
pmpro_setOption("payflow_user");
|
23 |
+
pmpro_setOption("payflow_pwd");
|
24 |
+
pmpro_setOption("apiusername");
|
25 |
+
pmpro_setOption("apipassword");
|
26 |
+
pmpro_setOption("apisignature");
|
27 |
+
pmpro_setOption("loginname");
|
28 |
+
pmpro_setOption("transactionkey");
|
29 |
+
pmpro_setOption("stripe_secretkey");
|
30 |
+
pmpro_setOption("stripe_publishablekey");
|
31 |
+
pmpro_setOption("braintree_merchantid");
|
32 |
+
pmpro_setOption("braintree_publickey");
|
33 |
+
pmpro_setOption("braintree_privatekey");
|
34 |
+
pmpro_setOption("braintree_encryptionkey");
|
35 |
+
|
36 |
+
//currency
|
37 |
+
$currency_paypal = $_POST['currency_paypal'];
|
38 |
+
$currency_stripe = $_POST['currency_stripe'];
|
39 |
+
$currency_fixed = $_POST['currency_fixed'];
|
40 |
+
|
41 |
+
if($_POST['gateway'] == "authorizenet" || $_POST['gateway'] == "payflowpro")
|
42 |
+
pmpro_setOption("currency", $currency_fixed);
|
43 |
+
elseif($_POST['gateway'] == "stripe")
|
44 |
+
pmpro_setOption("currency", $currency_stripe);
|
45 |
+
else
|
46 |
+
pmpro_setOption("currency", $currency_paypal);
|
47 |
+
|
48 |
+
//credit cards
|
49 |
+
$pmpro_accepted_credit_cards = array();
|
50 |
+
if(!empty($_REQUEST['creditcards_visa']))
|
51 |
+
$pmpro_accepted_credit_cards[] = "Visa";
|
52 |
+
if(!empty($_REQUEST['creditcards_mastercard']))
|
53 |
+
$pmpro_accepted_credit_cards[] = "Mastercard";
|
54 |
+
if(!empty($_REQUEST['creditcards_amex']))
|
55 |
+
$pmpro_accepted_credit_cards[] = "American Express";
|
56 |
+
if(!empty($_REQUEST['creditcards_discover']))
|
57 |
+
$pmpro_accepted_credit_cards[] = "Discover";
|
58 |
+
if(!empty($_REQUEST['creditcards_dinersclub']))
|
59 |
+
$pmpro_accepted_credit_cards[] = "Diners Club";
|
60 |
+
if(!empty($_REQUEST['creditcards_enroute']))
|
61 |
+
$pmpro_accepted_credit_cards[] = "EnRoute";
|
62 |
+
if(!empty($_REQUEST['creditcards_jcb']))
|
63 |
+
$pmpro_accepted_credit_cards[] = "JCB";
|
64 |
+
|
65 |
+
//check instructions
|
66 |
+
pmpro_setOption("instructions");
|
67 |
+
|
68 |
+
//use_ssl is based on gateway
|
69 |
+
if($_REQUEST['gateway'] == "paypal" || $_REQUEST['gateway'] == "authorizenet" || $_REQUEST['gateway'] == "payflowpro")
|
70 |
+
pmpro_setOption("use_ssl", 1);
|
71 |
+
else
|
72 |
+
pmpro_setOption("use_ssl");
|
73 |
+
|
74 |
+
//tax
|
75 |
+
pmpro_setOption("tax_state");
|
76 |
+
pmpro_setOption("tax_rate");
|
77 |
+
|
78 |
+
pmpro_setOption("accepted_credit_cards", implode(",", $pmpro_accepted_credit_cards));
|
79 |
+
|
80 |
+
//assume success
|
81 |
+
$msg = true;
|
82 |
+
$msgt = __("Your payment settings have been updated.", "pmpro");
|
83 |
+
}
|
84 |
+
|
85 |
+
$sslseal = pmpro_getOption("sslseal");
|
86 |
+
$nuclear_HTTPS = pmpro_getOption("nuclear_HTTPS");
|
87 |
+
|
88 |
+
$gateway = pmpro_getOption("gateway");
|
89 |
+
$gateway_environment = pmpro_getOption("gateway_environment");
|
90 |
+
$gateway_email = pmpro_getOption("gateway_email");
|
91 |
+
$payflow_partner = pmpro_getOption("payflow_partner");
|
92 |
+
$payflow_vendor = pmpro_getOption("payflow_vendor");
|
93 |
+
$payflow_user = pmpro_getOption("payflow_user");
|
94 |
+
$payflow_pwd = pmpro_getOption("payflow_pwd");
|
95 |
+
$apiusername = pmpro_getOption("apiusername");
|
96 |
+
$apipassword = pmpro_getOption("apipassword");
|
97 |
+
$apisignature = pmpro_getOption("apisignature");
|
98 |
+
$loginname = pmpro_getOption("loginname");
|
99 |
+
$transactionkey = pmpro_getOption("transactionkey");
|
100 |
+
$stripe_secretkey = pmpro_getOption("stripe_secretkey");
|
101 |
+
$stripe_publishablekey = pmpro_getOption("stripe_publishablekey");
|
102 |
+
$braintree_merchantid = pmpro_getOption("braintree_merchantid");
|
103 |
+
$braintree_publickey = pmpro_getOption("braintree_publickey");
|
104 |
+
$braintree_privatekey = pmpro_getOption("braintree_privatekey");
|
105 |
+
$braintree_encryptionkey = pmpro_getOption("braintree_encryptionkey");
|
106 |
+
|
107 |
+
$currency = pmpro_getOption("currency");
|
108 |
+
|
109 |
+
$pmpro_accepted_credit_cards = pmpro_getOption("accepted_credit_cards");
|
110 |
+
|
111 |
+
$instructions = pmpro_getOption("instructions");
|
112 |
+
|
113 |
+
$tax_state = pmpro_getOption("tax_state");
|
114 |
+
$tax_rate = pmpro_getOption("tax_rate");
|
115 |
+
|
116 |
+
//make sure the tax rate is not > 1
|
117 |
+
if((double)$tax_rate > 1)
|
118 |
+
{
|
119 |
+
//assume the entered X%
|
120 |
+
$tax_rate = $tax_rate / 100;
|
121 |
+
pmpro_setOption("tax_rate", $tax_rate);
|
122 |
+
}
|
123 |
+
|
124 |
+
$use_ssl = pmpro_getOption("use_ssl");
|
125 |
+
|
126 |
+
//default settings
|
127 |
+
if(empty($gateway_environment))
|
128 |
+
{
|
129 |
+
$gateway_environment = "sandbox";
|
130 |
+
pmpro_setOption("gateway_environment", $gateway_environment);
|
131 |
+
}
|
132 |
+
if(empty($pmpro_accepted_credit_cards))
|
133 |
+
{
|
134 |
+
$pmpro_accepted_credit_cards = "Visa,Mastercard,American Express,Discover";
|
135 |
+
pmpro_setOption("accepted_credit_cards", $pmpro_accepted_credit_cards);
|
136 |
+
}
|
137 |
+
|
138 |
+
$pmpro_accepted_credit_cards = explode(",", $pmpro_accepted_credit_cards);
|
139 |
+
|
140 |
+
require_once(dirname(__FILE__) . "/admin_header.php");
|
141 |
+
?>
|
142 |
+
|
143 |
+
<form action="" method="post" enctype="multipart/form-data">
|
144 |
+
<h2><?php _e('Payment Gateway', 'pmpro');?> & <?php _e('SSL Settings', 'pmpro');?></h2>
|
145 |
+
|
146 |
+
<p>Learn more about <a title="Paid Memberships Pro - SSL Settings" target="_blank" href="http://www.paidmembershipspro.com/support/initial-plugin-setup/ssl/">SSL</a> or <a title="Paid Memberships Pro - Payment Gateway Settings" target="_blank" href="http://www.paidmembershipspro.com/support/initial-plugin-setup/payment-gateway/">Payment Gateway Settings</a>.</p>
|
147 |
+
|
148 |
+
<table class="form-table">
|
149 |
+
<tbody>
|
150 |
+
<tr>
|
151 |
+
<th scope="row" valign="top">
|
152 |
+
<label for="gateway"><?php _e('Payment Gateway', 'pmpro');?>:</label>
|
153 |
+
</th>
|
154 |
+
<td>
|
155 |
+
<select id="gateway" name="gateway" onchange="pmpro_changeGateway(jQuery(this).val());">
|
156 |
+
<option value="">Testing Only</option>
|
157 |
+
<option value="check" <?php if($gateway == "check") { ?>selected="selected"<?php } ?>><?php _e('Pay by Check', 'pmpro');?></option>
|
158 |
+
<option value="stripe" <?php if($gateway == "stripe") { ?>selected="selected"<?php } ?>>Stripe</option>
|
159 |
+
<option value="paypalstandard" <?php if($gateway == "paypalstandard") { ?>selected="selected"<?php } ?>>PayPal Standard</option>
|
160 |
+
<option value="paypalexpress" <?php if($gateway == "paypalexpress") { ?>selected="selected"<?php } ?>>PayPal Express</option>
|
161 |
+
<option value="paypal" <?php if($gateway == "paypal") { ?>selected="selected"<?php } ?>>PayPal Website Payments Pro</option>
|
162 |
+
<option value="payflowpro" <?php if($gateway == "payflowpro") { ?>selected="selected"<?php } ?>>PayPal Payflow Pro/PayPal Advanced</option>
|
163 |
+
<option value="authorizenet" <?php if($gateway == "authorizenet") { ?>selected="selected"<?php } ?>>Authorize.net</option>
|
164 |
+
<option value="braintree" <?php if($gateway == "braintree") { ?>selected="selected"<?php } ?>>Braintree Payments</option>
|
165 |
+
</select>
|
166 |
+
</td>
|
167 |
+
</tr>
|
168 |
+
<tr class="gateway gateway_payflowpro" <?php if($gateway != "payflowpro") { ?>style="display: none;"<?php } ?>>
|
169 |
+
<td colspan="2">
|
170 |
+
<strong><?php _e('Note', 'pmpro');?>:</strong> <?php _e('Payflow Pro currently only supports one-time payments. Users will not be able to checkout for levels with recurring payments.', 'pmpro');?>
|
171 |
+
</td>
|
172 |
+
</tr>
|
173 |
+
<tr>
|
174 |
+
<th scope="row" valign="top">
|
175 |
+
<label for="gateway_environment"><?php _e('Gateway Environment', 'pmpro');?>:</label>
|
176 |
+
</th>
|
177 |
+
<td>
|
178 |
+
<select name="gateway_environment">
|
179 |
+
<option value="sandbox" <?php if($gateway_environment == "sandbox") { ?>selected="selected"<?php } ?>><?php _e('Sandbox/Testing', 'pmpro');?></option>
|
180 |
+
<option value="live" <?php if($gateway_environment == "live") { ?>selected="selected"<?php } ?>><?php _e('Live/Production', 'pmpro');?></option>
|
181 |
+
</select>
|
182 |
+
<script>
|
183 |
+
function pmpro_changeGateway(gateway)
|
184 |
+
{
|
185 |
+
//hide all gateway options
|
186 |
+
jQuery('tr.gateway').hide();
|
187 |
+
jQuery('tr.gateway_'+gateway).show();
|
188 |
+
}
|
189 |
+
pmpro_changeGateway(jQuery('#gateway').val());
|
190 |
+
</script>
|
191 |
+
</td>
|
192 |
+
</tr>
|
193 |
+
<tr class="gateway gateway_payflowpro" <?php if($gateway != "payflowpro") { ?>style="display: none;"<?php } ?>>
|
194 |
+
<th scope="row" valign="top">
|
195 |
+
<label for="payflow_partner"><?php _e('Partner', 'pmpro');?>:</label>
|
196 |
+
</th>
|
197 |
+
<td>
|
198 |
+
<input type="text" name="payflow_partner" size="60" value="<?php echo $payflow_partner?>" />
|
199 |
+
</td>
|
200 |
+
</tr>
|
201 |
+
<tr class="gateway gateway_payflowpro" <?php if($gateway != "payflowpro") { ?>style="display: none;"<?php } ?>>
|
202 |
+
<th scope="row" valign="top">
|
203 |
+
<label for="payflow_vendor"><?php _e('Vendor', 'pmpro');?>:</label>
|
204 |
+
</th>
|
205 |
+
<td>
|
206 |
+
<input type="text" name="payflow_vendor" size="60" value="<?php echo $payflow_vendor?>" />
|
207 |
+
</td>
|
208 |
+
</tr>
|
209 |
+
<tr class="gateway gateway_payflowpro" <?php if($gateway != "payflowpro") { ?>style="display: none;"<?php } ?>>
|
210 |
+
<th scope="row" valign="top">
|
211 |
+
<label for="payflow_user"><?php _e('User', 'pmpro');?>:</label>
|
212 |
+
</th>
|
213 |
+
<td>
|
214 |
+
<input type="text" name="payflow_user" size="60" value="<?php echo $payflow_user?>" />
|
215 |
+
</td>
|
216 |
+
</tr>
|
217 |
+
<tr class="gateway gateway_payflowpro" <?php if($gateway != "payflowpro") { ?>style="display: none;"<?php } ?>>
|
218 |
+
<th scope="row" valign="top">
|
219 |
+
<label for="payflow_pwd"><?php _e('Password', 'pmpro');?>:</label>
|
220 |
+
</th>
|
221 |
+
<td>
|
222 |
+
<input type="password" name="payflow_pwd" size="60" value="<?php echo $payflow_pwd?>" />
|
223 |
+
</td>
|
224 |
+
</tr>
|
225 |
+
<tr class="gateway gateway_paypal gateway_paypalexpress gateway_paypalstandard" <?php if($gateway != "paypal" && $gateway != "paypalexpress" && $gateway != "paypalstandard") { ?>style="display: none;"<?php } ?>>
|
226 |
+
<th scope="row" valign="top">
|
227 |
+
<label for="gateway_email"><?php _e('Gateway Account Email', 'pmpro');?>:</label>
|
228 |
+
</th>
|
229 |
+
<td>
|
230 |
+
<input type="text" name="gateway_email" size="60" value="<?php echo $gateway_email?>" />
|
231 |
+
</td>
|
232 |
+
</tr>
|
233 |
+
<tr class="gateway gateway_paypal gateway_paypalexpress" <?php if($gateway != "paypal" && $gateway != "paypalexpress") { ?>style="display: none;"<?php } ?>>
|
234 |
+
<th scope="row" valign="top">
|
235 |
+
<label for="apiusername"><?php _e('API Username', 'pmpro');?>:</label>
|
236 |
+
</th>
|
237 |
+
<td>
|
238 |
+
<input type="text" name="apiusername" size="60" value="<?php echo $apiusername?>" />
|
239 |
+
</td>
|
240 |
+
</tr>
|
241 |
+
<tr class="gateway gateway_paypal gateway_paypalexpress" <?php if($gateway != "paypal" && $gateway != "paypalexpress") { ?>style="display: none;"<?php } ?>>
|
242 |
+
<th scope="row" valign="top">
|
243 |
+
<label for="apipassword"><?php _e('API Password', 'pmpro');?>:</label>
|
244 |
+
</th>
|
245 |
+
<td>
|
246 |
+
<input type="text" name="apipassword" size="60" value="<?php echo $apipassword?>" />
|
247 |
+
</td>
|
248 |
+
</tr>
|
249 |
+
<tr class="gateway gateway_paypal gateway_paypalexpress" <?php if($gateway != "paypal" && $gateway != "paypalexpress") { ?>style="display: none;"<?php } ?>>
|
250 |
+
<th scope="row" valign="top">
|
251 |
+
<label for="apisignature"><?php _e('API Signature', 'pmpro');?>:</label>
|
252 |
+
</th>
|
253 |
+
<td>
|
254 |
+
<input type="text" name="apisignature" size="60" value="<?php echo $apisignature?>" />
|
255 |
+
</td>
|
256 |
+
</tr>
|
257 |
+
|
258 |
+
<tr class="gateway gateway_authorizenet" <?php if($gateway != "authorizenet") { ?>style="display: none;"<?php } ?>>
|
259 |
+
<th scope="row" valign="top">
|
260 |
+
<label for="loginname"><?php _e('Login Name', 'pmpro');?>:</label>
|
261 |
+
</th>
|
262 |
+
<td>
|
263 |
+
<input type="text" name="loginname" size="60" value="<?php echo $loginname?>" />
|
264 |
+
</td>
|
265 |
+
</tr>
|
266 |
+
<tr class="gateway gateway_authorizenet" <?php if($gateway != "authorizenet") { ?>style="display: none;"<?php } ?>>
|
267 |
+
<th scope="row" valign="top">
|
268 |
+
<label for="transactionkey"><?php _e('Transaction Key', 'pmpro');?>:</label>
|
269 |
+
</th>
|
270 |
+
<td>
|
271 |
+
<input type="text" name="transactionkey" size="60" value="<?php echo $transactionkey?>" />
|
272 |
+
</td>
|
273 |
+
</tr>
|
274 |
+
|
275 |
+
<tr class="gateway gateway_stripe" <?php if($gateway != "stripe") { ?>style="display: none;"<?php } ?>>
|
276 |
+
<th scope="row" valign="top">
|
277 |
+
<label for="stripe_secretkey"><?php _e('Secret Key', 'pmpro');?>:</label>
|
278 |
+
</th>
|
279 |
+
<td>
|
280 |
+
<input type="text" name="stripe_secretkey" size="60" value="<?php echo $stripe_secretkey?>" />
|
281 |
+
</td>
|
282 |
+
</tr>
|
283 |
+
<tr class="gateway gateway_stripe" <?php if($gateway != "stripe") { ?>style="display: none;"<?php } ?>>
|
284 |
+
<th scope="row" valign="top">
|
285 |
+
<label for="stripe_publishablekey"><?php _e('Publishable Key', 'pmpro');?>:</label>
|
286 |
+
</th>
|
287 |
+
<td>
|
288 |
+
<input type="text" name="stripe_publishablekey" size="60" value="<?php echo $stripe_publishablekey?>" />
|
289 |
+
</td>
|
290 |
+
</tr>
|
291 |
+
|
292 |
+
<tr class="gateway gateway_braintree" <?php if($gateway != "braintree") { ?>style="display: none;"<?php } ?>>
|
293 |
+
<th scope="row" valign="top">
|
294 |
+
<label for="braintree_merchantid"><?php _e('Merchant ID', 'pmpro');?>:</label>
|
295 |
+
</th>
|
296 |
+
<td>
|
297 |
+
<input type="text" name="braintree_merchantid" size="60" value="<?php echo $braintree_merchantid?>" />
|
298 |
+
</td>
|
299 |
+
</tr>
|
300 |
+
<tr class="gateway gateway_braintree" <?php if($gateway != "braintree") { ?>style="display: none;"<?php } ?>>
|
301 |
+
<th scope="row" valign="top">
|
302 |
+
<label for="braintree_publickey"><?php _e('Public Key', 'pmpro');?>:</label>
|
303 |
+
</th>
|
304 |
+
<td>
|
305 |
+
<input type="text" name="braintree_publickey" size="60" value="<?php echo $braintree_publickey?>" />
|
306 |
+
</td>
|
307 |
+
</tr>
|
308 |
+
<tr class="gateway gateway_braintree" <?php if($gateway != "braintree") { ?>style="display: none;"<?php } ?>>
|
309 |
+
<th scope="row" valign="top">
|
310 |
+
<label for="braintree_privatekey"><?php _e('Private Key', 'pmpro');?>:</label>
|
311 |
+
</th>
|
312 |
+
<td>
|
313 |
+
<input type="text" name="braintree_privatekey" size="60" value="<?php echo $braintree_privatekey?>" />
|
314 |
+
</td>
|
315 |
+
</tr>
|
316 |
+
<tr class="gateway gateway_braintree" <?php if($gateway != "braintree") { ?>style="display: none;"<?php } ?>>
|
317 |
+
<th scope="row" valign="top">
|
318 |
+
<label for="braintree_encryptionkey"><?php _e('Client-Side Encryption Key', 'pmpro');?>:</label>
|
319 |
+
</th>
|
320 |
+
<td>
|
321 |
+
<textarea id="braintree_encryptionkey" name="braintree_encryptionkey" rows="3" cols="80"><?php echo esc_textarea($braintree_encryptionkey)?></textarea>
|
322 |
+
</td>
|
323 |
+
</tr>
|
324 |
+
|
325 |
+
<tr class="gateway gateway_authorizenet gateway_payflowpro" <?php if($gateway != "authorizenet" && $gateway != "payflowpro") { ?>style="display: none;"<?php } ?>>
|
326 |
+
<th scope="row" valign="top">
|
327 |
+
<label for="transactionkey"><?php _e('Currency', 'pmpro');?>:</label>
|
328 |
+
</th>
|
329 |
+
<td>
|
330 |
+
<input type="hidden" name="currency_fixed" size="60" value="USD" />
|
331 |
+
USD
|
332 |
+
</td>
|
333 |
+
</tr>
|
334 |
+
|
335 |
+
<tr class="gateway gateway_stripe" <?php if($gateway != "stripe") { ?>style="display: none;"<?php } ?>>
|
336 |
+
<th scope="row" valign="top">
|
337 |
+
<label for="transactionkey"><?php _e('Currency', 'pmpro');?>:</label>
|
338 |
+
</th>
|
339 |
+
<td>
|
340 |
+
<select name="currency_stripe">
|
341 |
+
<?php
|
342 |
+
global $pmpro_stripe_currencies;
|
343 |
+
foreach($pmpro_stripe_currencies as $ccode => $cdescription)
|
344 |
+
{
|
345 |
+
?>
|
346 |
+
<option value="<?php echo $ccode?>" <?php if($currency == $ccode) { ?>selected="selected"<?php } ?>><?php echo $cdescription?></option>
|
347 |
+
<?php
|
348 |
+
}
|
349 |
+
?>
|
350 |
+
</select>
|
351 |
+
</td>
|
352 |
+
</tr>
|
353 |
+
|
354 |
+
<tr class="gateway gateway_ gateway_paypal gateway_paypalexpress gateway_paypalstandard gateway_braintree" <?php if(!empty($gateway) && $gateway != "paypal" && $gateway != "paypalexpress" && $gateway != "paypalstandard" && $gateway != "braintree") { ?>style="display: none;"<?php } ?>>
|
355 |
+
<th scope="row" valign="top">
|
356 |
+
<label for="transactionkey"><?php _e('Currency', 'pmpro');?>:</label>
|
357 |
+
</th>
|
358 |
+
<td>
|
359 |
+
<select name="currency_paypal">
|
360 |
+
<?php
|
361 |
+
global $pmpro_currencies;
|
362 |
+
foreach($pmpro_currencies as $ccode => $cdescription)
|
363 |
+
{
|
364 |
+
?>
|
365 |
+
<option value="<?php echo $ccode?>" <?php if($currency == $ccode) { ?>selected="selected"<?php } ?>><?php echo $cdescription?></option>
|
366 |
+
<?php
|
367 |
+
}
|
368 |
+
?>
|
369 |
+
</select>
|
370 |
+
</td>
|
371 |
+
</tr>
|
372 |
+
|
373 |
+
<tr class="gateway gateway_ gateway_stripe gateway_authorizenet gateway_paypal gateway_payflowpro gateway_braintree" <?php if(!empty($gateway) && $gateway != "authorizenet" && $gateway != "paypal" && $gateway != "stripe" && $gateway != "payflowpro" && $gateway != "braintree") { ?>style="display: none;"<?php } ?>>
|
374 |
+
<th scope="row" valign="top">
|
375 |
+
<label for="creditcards"><?php _e('Accepted Credit Card Types', 'pmpro');?></label>
|
376 |
+
</th>
|
377 |
+
<td>
|
378 |
+
<input type="checkbox" name="creditcards_visa" value="1" <?php if(in_array("Visa", $pmpro_accepted_credit_cards)) { ?>checked="checked"<?php } ?> /> Visa<br />
|
379 |
+
<input type="checkbox" name="creditcards_mastercard" value="1" <?php if(in_array("Mastercard", $pmpro_accepted_credit_cards)) { ?>checked="checked"<?php } ?> /> Mastercard<br />
|
380 |
+
<input type="checkbox" name="creditcards_amex" value="1" <?php if(in_array("American Express", $pmpro_accepted_credit_cards)) { ?>checked="checked"<?php } ?> /> American Express<br />
|
381 |
+
<input type="checkbox" name="creditcards_discover" value="1" <?php if(in_array("Discover", $pmpro_accepted_credit_cards)) { ?>checked="checked"<?php } ?> /> Discover<br />
|
382 |
+
<input type="checkbox" name="creditcards_dinersclub" value="1" <?php if(in_array("Diners Club", $pmpro_accepted_credit_cards)) {?>checked="checked"<?php } ?> /> Diner's Club<br />
|
383 |
+
<input type="checkbox" name="creditcards_enroute" value="1" <?php if(in_array("EnRoute", $pmpro_accepted_credit_cards)) {?>checked="checked"<?php } ?> /> EnRoute<br />
|
384 |
+
<input type="checkbox" name="creditcards_jcb" value="1" <?php if(in_array("JCB", $pmpro_accepted_credit_cards)) {?>checked="checked"<?php } ?> /> JCB<br />
|
385 |
+
</td>
|
386 |
+
</tr>
|
387 |
+
<tr class="gateway gateway_check" <?php if($gateway != "check") { ?>style="display: none;"<?php } ?>>
|
388 |
+
<th scope="row" valign="top">
|
389 |
+
<label for="instructions"><?php _e('Instructions', 'pmpro');?></label>
|
390 |
+
</th>
|
391 |
+
<td>
|
392 |
+
<textarea id="instructions" name="instructions" rows="3" cols="80"><?php echo esc_textarea($instructions)?></textarea>
|
393 |
+
<p><small><?php _e('Who to write the check out to. Where to mail it. Shown on checkout, confirmation, and invoice pages.', 'pmpro');?></small></p>
|
394 |
+
</td>
|
395 |
+
</tr>
|
396 |
+
<tr class="gateway gateway_ gateway_stripe gateway_authorizenet gateway_paypal gateway_paypalexpress gateway_check gateway_paypalstandard gateway_payflowpro gateway_braintree" <?php if(!empty($gateway) && $gateway != "stripe" && $gateway != "authorizenet" && $gateway != "paypal" && $gateway != "paypalexpress" && $gateway != "check" && $gateway != "paypalstandard" && $gateway != "payflowpro" && $gateway != "braintree") { ?>style="display: none;"<?php } ?>>
|
397 |
+
<th scope="row" valign="top">
|
398 |
+
<label for="tax"><?php _e('Sales Tax', 'pmpro');?> <small>(<?php _e('optional', 'pmpro');?>)</small></label>
|
399 |
+
</th>
|
400 |
+
<td>
|
401 |
+
<?php _e('Tax State', 'pmpro');?>:
|
402 |
+
<input type="text" name="tax_state" size="4" value="<?php echo $tax_state?>" /> <small>(<?php _e('abbreviation, e.g. "PA"', 'pmpro');?>)</small>
|
403 |
+
Tax Rate:
|
404 |
+
<input type="text" name="tax_rate" size="10" value="<?php echo $tax_rate?>" /> <small>(<?php _e('decimal, e.g. "0.06"', 'pmpro');?>)</small>
|
405 |
+
<p><small><?php _e('If values are given, tax will be applied for any members ordering from the selected state. For more complex tax rules, use the "pmpro_tax" filter.', 'pmpro');?></small></p>
|
406 |
+
</td>
|
407 |
+
</tr>
|
408 |
+
<tr class="gateway gateway_ gateway_stripe gateway_paypalexpress gateway_check gateway_paypalstandard gateway_braintree" <?php if(!empty($gateway) && $gateway != "stripe" && $gateway != "paypalexpress" && $gateway != "check" && $gateway != "paypalstandard" && $gateway != "braintree") { ?>style="display: none;"<?php } ?>>
|
409 |
+
<th scope="row" valign="top">
|
410 |
+
<label for="use_ssl"><?php _e('Use SSL', 'pmpro');?>:</label>
|
411 |
+
</th>
|
412 |
+
<td>
|
413 |
+
<select id="use_ssl" name="use_ssl">
|
414 |
+
<option value="0" <?php if(empty($use_ssl)) { ?>selected="selected"<?php } ?>><?php _e('No', 'pmpro');?></option>
|
415 |
+
<option value="1" <?php if(!empty($use_ssl)) { ?>selected="selected"<?php } ?>><?php _e('Yes', 'pmpro');?></option>
|
416 |
+
</select>
|
417 |
+
</td>
|
418 |
+
</tr>
|
419 |
+
<tr class="gateway gateway_paypal gateway_authorizenet gateway_payflowpro" <?php if($gateway != "paypal" && $gateway != "authorizenet" && $gateway != "payflowpro") { ?>style="display: none;"<?php } ?>>
|
420 |
+
<th scope="row" valign="top">
|
421 |
+
<label for="use_ssl"><?php _e('Use SSL', 'pmpro');?>:</label>
|
422 |
+
</th>
|
423 |
+
<td>
|
424 |
+
<?php _e('Yes', 'pmpro');?>.
|
425 |
+
(<?php _e('Required by this Gateway Option', 'pmpro');?>)
|
426 |
+
</td>
|
427 |
+
</tr>
|
428 |
+
<tr>
|
429 |
+
<th scope="row" valign="top">
|
430 |
+
<label for="sslseal"><?php _e('SSL Seal Code', 'pmpro');?>:</label>
|
431 |
+
</th>
|
432 |
+
<td>
|
433 |
+
<textarea id="sslseal" name="sslseal" rows="3" cols="80"><?php echo stripslashes($sslseal)?></textarea>
|
434 |
+
</td>
|
435 |
+
</tr>
|
436 |
+
<tr>
|
437 |
+
<th scope="row" valign="top">
|
438 |
+
<label for="nuclear_HTTPS"><?php _e('HTTPS Nuclear Option', 'pmpro');?>:</label>
|
439 |
+
</th>
|
440 |
+
<td>
|
441 |
+
<input type="checkbox" id="nuclear_HTTPS" name="nuclear_HTTPS" value="1" <?php if(!empty($nuclear_HTTPS)) { ?>checked="checked"<?php } ?> /> <?php _e('Use the "Nuclear Option" to use secure (HTTPS) URLs on your secure pages. Check this if you are using SSL and have warnings on your checkout pages.', 'pmpro');?>
|
442 |
+
</td>
|
443 |
+
</tr>
|
444 |
+
<tr class="gateway gateway_paypal gateway_paypalexpress gateway_paypalstandard gateway_payflowpro" <?php if($gateway != "paypal" && $gateway != "paypalexpress" && $gateway != "paypalstandard" && $gateway != "payflowpro") { ?>style="display: none;"<?php } ?>>
|
445 |
+
<th scope="row" valign="top">
|
446 |
+
<label><?php _e('IPN Handler URL', 'pmpro');?>:</label>
|
447 |
+
</th>
|
448 |
+
<td>
|
449 |
+
<p><?php _e('To fully integrate with PayPal, be sure to set your IPN Handler URL to ', 'pmpro');?> <pre><?php echo admin_url("admin-ajax.php") . "?action=ipnhandler";?></pre>.</p>
|
450 |
+
</td>
|
451 |
+
</tr>
|
452 |
+
<tr class="gateway gateway_authorizenet" <?php if($gateway != "authorizenet") { ?>style="display: none;"<?php } ?>>
|
453 |
+
<th scope="row" valign="top">
|
454 |
+
<label><?php _e('Silent Post URL', 'pmpro');?>:</label>
|
455 |
+
</th>
|
456 |
+
<td>
|
457 |
+
<p><?php _e('To fully integrate with Authorize.net, be sure to set your Silent Post URL to', 'pmpro');?> <pre><?php echo admin_url("admin-ajax.php") . "?action=authnet_silent_post";?></pre>.</p>
|
458 |
+
</td>
|
459 |
+
</tr>
|
460 |
+
<tr class="gateway gateway_stripe" <?php if($gateway != "stripe") { ?>style="display: none;"<?php } ?>>
|
461 |
+
<th scope="row" valign="top">
|
462 |
+
<label><?php _e('Web Hook URL', 'pmpro');?>:</label>
|
463 |
+
</th>
|
464 |
+
<td>
|
465 |
+
<p><?php _e('To fully integrate with Stripe, be sure to set your Web Hook URL to', 'pmpro');?> <pre><?php echo admin_url("admin-ajax.php") . "?action=stripe_webhook";?></pre>.</p>
|
466 |
+
</td>
|
467 |
+
</tr>
|
468 |
+
<tr class="gateway gateway_braintree" <?php if($gateway != "braintree") { ?>style="display: none;"<?php } ?>>
|
469 |
+
<th scope="row" valign="top">
|
470 |
+
<label><?php _e('Web Hook URL', 'pmpro');?>:</label>
|
471 |
+
</th>
|
472 |
+
<td>
|
473 |
+
<p>
|
474 |
+
<?php _e('To fully integrate with Braintree, be sure to set your Web Hook URL to', 'pmpro');?>
|
475 |
+
<pre><?php
|
476 |
+
//echo admin_url("admin-ajax.php") . "?action=braintree_webhook";
|
477 |
+
echo PMPRO_URL . "/services/braintree-webhook.php";
|
478 |
+
?></pre>.
|
479 |
+
</p>
|
480 |
+
</td>
|
481 |
+
</tr>
|
482 |
+
</tbody>
|
483 |
+
</table>
|
484 |
+
<p class="submit">
|
485 |
+
<input name="savesettings" type="submit" class="button-primary" value="<?php _e('Save Settings', 'pmpro');?>" />
|
486 |
+
</p>
|
487 |
+
</form>
|
488 |
+
|
489 |
+
<?php
|
490 |
+
require_once(dirname(__FILE__) . "/admin_footer.php");
|
491 |
+
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
adminpages/reports.php
CHANGED
@@ -10,36 +10,22 @@
|
|
10 |
?>
|
11 |
<div id="dashboard-widgets-wrap">
|
12 |
<div id="dashboard-widgets" class="metabox-holder pmpro_reports-holder columns-2">
|
13 |
-
<div id="postbox-container-1" class="postbox-container">
|
14 |
-
<div id="normal-sortables" class="meta-box-sortables ui-sortable">
|
15 |
<?php
|
16 |
|
17 |
//report widgets
|
18 |
-
$count = 0;
|
19 |
-
$nreports = count($pmpro_reports);
|
20 |
-
$split = false;
|
21 |
foreach($pmpro_reports as $report => $title)
|
22 |
{
|
23 |
-
//make sure title is translated (since these are set before translations happen)
|
24 |
-
$title = __($title, "pmpro");
|
25 |
-
|
26 |
-
//put half of the report widgets in postbox-container-2
|
27 |
-
if(!$split && $count++ > $nreports/2)
|
28 |
-
{
|
29 |
-
$split = true;
|
30 |
-
?>
|
31 |
-
</div></div><div id="postbox-container-2" class="postbox-container"><div id="side-sortables" class="meta-box-sortables ui-sortable">
|
32 |
-
<?php
|
33 |
-
}
|
34 |
?>
|
35 |
-
<div
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
|
|
|
|
43 |
</div>
|
44 |
<?php
|
45 |
}
|
@@ -47,7 +33,6 @@
|
|
47 |
//end wrapper
|
48 |
?>
|
49 |
</div>
|
50 |
-
</div>
|
51 |
</div>
|
52 |
<?php
|
53 |
}
|
10 |
?>
|
11 |
<div id="dashboard-widgets-wrap">
|
12 |
<div id="dashboard-widgets" class="metabox-holder pmpro_reports-holder columns-2">
|
|
|
|
|
13 |
<?php
|
14 |
|
15 |
//report widgets
|
|
|
|
|
|
|
16 |
foreach($pmpro_reports as $report => $title)
|
17 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
?>
|
19 |
+
<div class="postbox-container">
|
20 |
+
<div id="pmpro_report_<?php echo $report; ?>" class="postbox pmpro_clickable" onclick="location.href='<?php echo admin_url("admin.php?page=pmpro-reports&report=" . $report);?>';">
|
21 |
+
<h3 class="hndle"><span><?php echo $title; ?></span></h3>
|
22 |
+
<div class="inside">
|
23 |
+
<?php call_user_func("pmpro_report_" . $report . "_widget"); ?>
|
24 |
+
<div style="margin-top:10px;border-top: 1px solid #ddd; padding-top: 10px; text-align:center;">
|
25 |
+
<a class="button button-primary" href="<?php echo admin_url("admin.php?page=pmpro-reports&report=" . $report);?>"><?php _e('Details', 'pmpro');?></a>
|
26 |
+
</div>
|
27 |
+
</div>
|
28 |
+
</div>
|
29 |
</div>
|
30 |
<?php
|
31 |
}
|
33 |
//end wrapper
|
34 |
?>
|
35 |
</div>
|
|
|
36 |
</div>
|
37 |
<?php
|
38 |
}
|
adminpages/reports/login.php
CHANGED
@@ -20,7 +20,7 @@ function pmpro_report_login_widget()
|
|
20 |
global $wpdb;
|
21 |
$visits = get_option("pmpro_visits", array("today"=>0, "thisday"=>date("Y-m-d"), "alltime"=>0, "month"=>0, "thismonth"=>date("n")));
|
22 |
$views = get_option("pmpro_views", array("today"=>0, "thisday"=>date("Y-m-d"), "alltime"=>0, "month"=>0, "thismonth"=>date("n")));
|
23 |
-
$logins = get_option("pmpro_logins", array("today"=>0, "thisday"=>date("Y-m-d"), "alltime"=>0, "month"=>0, "thismonth"=>date("n")));
|
24 |
?>
|
25 |
<div style="width: 33%; float: left;">
|
26 |
<p><?php _e('Visits Today', 'pmpro')?>: <?php echo $visits['today'];?></p>
|
@@ -101,7 +101,7 @@ function pmpro_report_login_page()
|
|
101 |
|
102 |
if($s)
|
103 |
{
|
104 |
-
$sqlQuery = "SELECT SQL_CALC_FOUND_ROWS u.ID, u.user_login, u.user_email, UNIX_TIMESTAMP(u.user_registered) as joindate, mu.membership_id, mu.initial_payment, mu.billing_amount, mu.cycle_period, mu.cycle_number, mu.billing_limit, mu.trial_amount, mu.trial_limit, UNIX_TIMESTAMP(mu.startdate) as startdate, UNIX_TIMESTAMP(mu.enddate) as enddate, m.name as membership FROM $wpdb->users u LEFT JOIN $wpdb->usermeta um ON u.ID = um.user_id LEFT JOIN $wpdb->pmpro_memberships_users mu ON u.ID = mu.user_id
|
105 |
|
106 |
if($l == "all")
|
107 |
$sqlQuery .= " AND mu.status = 'active' AND mu.membership_id > 0 ";
|
@@ -112,7 +112,7 @@ function pmpro_report_login_page()
|
|
112 |
}
|
113 |
else
|
114 |
{
|
115 |
-
$sqlQuery = "SELECT SQL_CALC_FOUND_ROWS u.ID, u.user_login, u.user_email, UNIX_TIMESTAMP(u.user_registered) as joindate, mu.membership_id, mu.initial_payment, mu.billing_amount, mu.cycle_period, mu.cycle_number, mu.billing_limit, mu.trial_amount, mu.trial_limit, UNIX_TIMESTAMP(mu.startdate) as startdate, UNIX_TIMESTAMP(mu.enddate) as enddate, m.name as membership FROM $wpdb->users u LEFT JOIN $wpdb->pmpro_memberships_users mu ON u.ID = mu.user_id
|
116 |
$sqlQuery .= " WHERE 1=1 ";
|
117 |
|
118 |
if($l == "all")
|
@@ -182,23 +182,23 @@ function pmpro_report_login_page()
|
|
182 |
<?php echo $theuser->display_name;?>
|
183 |
</td>
|
184 |
<td><?php echo $auser->membership?></td>
|
185 |
-
<td><?php echo date("m/d/Y", strtotime($theuser->user_registered
|
186 |
<td>
|
187 |
-
<?php
|
188 |
if($auser->enddate)
|
189 |
echo date(get_option('date_format'), $auser->enddate);
|
190 |
else
|
191 |
echo "Never";
|
192 |
?>
|
193 |
</td>
|
194 |
-
<td><?php
|
195 |
-
<td><?php
|
196 |
-
<td><?php
|
197 |
-
<td><?php
|
198 |
-
<td><?php
|
199 |
-
<td><?php
|
200 |
-
<td><?php
|
201 |
-
<td><?php
|
202 |
</tr>
|
203 |
<?php
|
204 |
}
|
@@ -250,7 +250,7 @@ function pmpro_report_login_wp_visits()
|
|
250 |
{
|
251 |
$visits = $current_user->pmpro_visits;
|
252 |
if(empty($visits))
|
253 |
-
$visits = array("last"=>"N/A", "
|
254 |
|
255 |
//track logins for user
|
256 |
$visits['last'] = date(get_option("date_format"));
|
@@ -271,7 +271,7 @@ function pmpro_report_login_wp_visits()
|
|
271 |
//track for all
|
272 |
$visits = get_option("pmpro_visits");
|
273 |
if(empty($visits))
|
274 |
-
$visits = array("today"=>0, "
|
275 |
|
276 |
$visits['alltime']++;
|
277 |
$thisdate = date("Y-d-m");
|
@@ -322,7 +322,7 @@ function pmpro_report_login_wp_views()
|
|
322 |
$views['last'] = date(get_option("date_format"));
|
323 |
$views['alltime']++;
|
324 |
$thismonth = date("n");
|
325 |
-
if(
|
326 |
$views['month']++;
|
327 |
else
|
328 |
{
|
@@ -337,7 +337,7 @@ function pmpro_report_login_wp_views()
|
|
337 |
//track for all
|
338 |
$views = get_option("pmpro_views");
|
339 |
if(empty($views))
|
340 |
-
$views = array("today"=>0, "
|
341 |
|
342 |
$views['alltime']++;
|
343 |
$thisdate = date("Y-d-m");
|
@@ -349,7 +349,7 @@ function pmpro_report_login_wp_views()
|
|
349 |
$views['thisdate'] = $thisdate;
|
350 |
}
|
351 |
$thismonth = date("n");
|
352 |
-
if(
|
353 |
$views['month']++;
|
354 |
else
|
355 |
{
|
@@ -368,7 +368,7 @@ function pmpro_report_login_wp_login($user_login)
|
|
368 |
$user = get_user_by("login", $user_login);
|
369 |
$logins = $user->pmpro_logins;
|
370 |
if(empty($logins))
|
371 |
-
$logins = array("last"=>"N/A", "
|
372 |
|
373 |
//track logins for user
|
374 |
$logins['last'] = date(get_option("date_format"));
|
@@ -388,7 +388,7 @@ function pmpro_report_login_wp_login($user_login)
|
|
388 |
//track logins overall
|
389 |
$logins = get_option("pmpro_logins");
|
390 |
if(empty($logins))
|
391 |
-
$logins = array("today"=>0, "
|
392 |
|
393 |
$logins['alltime']++;
|
394 |
$thisdate = date("Y-d-m");
|
20 |
global $wpdb;
|
21 |
$visits = get_option("pmpro_visits", array("today"=>0, "thisday"=>date("Y-m-d"), "alltime"=>0, "month"=>0, "thismonth"=>date("n")));
|
22 |
$views = get_option("pmpro_views", array("today"=>0, "thisday"=>date("Y-m-d"), "alltime"=>0, "month"=>0, "thismonth"=>date("n")));
|
23 |
+
$logins = get_option("pmpro_logins", array("today"=>0, "thisday"=>date("Y-m-d"), "alltime"=>0, "month"=>0, "thismonth"=>date("n")));
|
24 |
?>
|
25 |
<div style="width: 33%; float: left;">
|
26 |
<p><?php _e('Visits Today', 'pmpro')?>: <?php echo $visits['today'];?></p>
|
101 |
|
102 |
if($s)
|
103 |
{
|
104 |
+
$sqlQuery = "SELECT SQL_CALC_FOUND_ROWS u.ID, u.user_login, u.user_email, UNIX_TIMESTAMP(u.user_registered) as joindate, mu.membership_id, mu.initial_payment, mu.billing_amount, mu.cycle_period, mu.cycle_number, mu.billing_limit, mu.trial_amount, mu.trial_limit, UNIX_TIMESTAMP(mu.startdate) as startdate, UNIX_TIMESTAMP(mu.enddate) as enddate, m.name as membership FROM $wpdb->users u LEFT JOIN $wpdb->usermeta um ON u.ID = um.user_id LEFT JOIN $wpdb->pmpro_memberships_users mu ON u.ID = mu.user_id LEFT JOIN $wpdb->pmpro_membership_levels m ON mu.membership_id = m.id WHERE (u.user_login LIKE '%$s%' OR u.user_email LIKE '%$s%' OR um.meta_value LIKE '%$s%') ";
|
105 |
|
106 |
if($l == "all")
|
107 |
$sqlQuery .= " AND mu.status = 'active' AND mu.membership_id > 0 ";
|
112 |
}
|
113 |
else
|
114 |
{
|
115 |
+
$sqlQuery = "SELECT SQL_CALC_FOUND_ROWS u.ID, u.user_login, u.user_email, UNIX_TIMESTAMP(u.user_registered) as joindate, mu.membership_id, mu.initial_payment, mu.billing_amount, mu.cycle_period, mu.cycle_number, mu.billing_limit, mu.trial_amount, mu.trial_limit, UNIX_TIMESTAMP(mu.startdate) as startdate, UNIX_TIMESTAMP(mu.enddate) as enddate, m.name as membership FROM $wpdb->users u LEFT JOIN $wpdb->pmpro_memberships_users mu ON u.ID = mu.user_id LEFT JOIN $wpdb->pmpro_membership_levels m ON mu.membership_id = m.id";
|
116 |
$sqlQuery .= " WHERE 1=1 ";
|
117 |
|
118 |
if($l == "all")
|
182 |
<?php echo $theuser->display_name;?>
|
183 |
</td>
|
184 |
<td><?php echo $auser->membership?></td>
|
185 |
+
<td><?php echo date("m/d/Y", strtotime($theuser->user_registered))?></td>
|
186 |
<td>
|
187 |
+
<?php
|
188 |
if($auser->enddate)
|
189 |
echo date(get_option('date_format'), $auser->enddate);
|
190 |
else
|
191 |
echo "Never";
|
192 |
?>
|
193 |
</td>
|
194 |
+
<td><?php echo $visits['last'];?></td>
|
195 |
+
<td><?php echo $visits['month'];?></td>
|
196 |
+
<td><?php echo $visits['alltime'];?></td>
|
197 |
+
<td><?php echo $views['month'];?></td>
|
198 |
+
<td><?php echo $views['alltime'];?></td>
|
199 |
+
<td><?php echo $logins['last'];?></td>
|
200 |
+
<td><?php echo $logins['month'];?></td>
|
201 |
+
<td><?php echo $logins['alltime'];?></td>
|
202 |
</tr>
|
203 |
<?php
|
204 |
}
|
250 |
{
|
251 |
$visits = $current_user->pmpro_visits;
|
252 |
if(empty($visits))
|
253 |
+
$visits = array("last"=>"N/A", "month"=>0, "alltime"=>0);
|
254 |
|
255 |
//track logins for user
|
256 |
$visits['last'] = date(get_option("date_format"));
|
271 |
//track for all
|
272 |
$visits = get_option("pmpro_visits");
|
273 |
if(empty($visits))
|
274 |
+
$visits = array("today"=>0, "month"=>0, "alltime"=>0);
|
275 |
|
276 |
$visits['alltime']++;
|
277 |
$thisdate = date("Y-d-m");
|
322 |
$views['last'] = date(get_option("date_format"));
|
323 |
$views['alltime']++;
|
324 |
$thismonth = date("n");
|
325 |
+
if($thismonth == $views['thismonth'])
|
326 |
$views['month']++;
|
327 |
else
|
328 |
{
|
337 |
//track for all
|
338 |
$views = get_option("pmpro_views");
|
339 |
if(empty($views))
|
340 |
+
$views = array("today"=>0, "month"=>0, "alltime"=>0);
|
341 |
|
342 |
$views['alltime']++;
|
343 |
$thisdate = date("Y-d-m");
|
349 |
$views['thisdate'] = $thisdate;
|
350 |
}
|
351 |
$thismonth = date("n");
|
352 |
+
if($thismonth == $views['thismonth'])
|
353 |
$views['month']++;
|
354 |
else
|
355 |
{
|
368 |
$user = get_user_by("login", $user_login);
|
369 |
$logins = $user->pmpro_logins;
|
370 |
if(empty($logins))
|
371 |
+
$logins = array("last"=>"N/A", "month"=>0, "alltime"=>0);
|
372 |
|
373 |
//track logins for user
|
374 |
$logins['last'] = date(get_option("date_format"));
|
388 |
//track logins overall
|
389 |
$logins = get_option("pmpro_logins");
|
390 |
if(empty($logins))
|
391 |
+
$logins = array("today"=>0, "month"=>0, "alltime"=>0);
|
392 |
|
393 |
$logins['alltime']++;
|
394 |
$thisdate = date("Y-d-m");
|
adminpages/reports/memberships.php
DELETED
@@ -1,651 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
PMPro Report
|
4 |
-
Title: Membership Stats
|
5 |
-
Slug: memberships
|
6 |
-
|
7 |
-
For each report, add a line like:
|
8 |
-
global $pmpro_reports;
|
9 |
-
$pmpro_reports['slug'] = 'Title';
|
10 |
-
|
11 |
-
For each report, also write two functions:
|
12 |
-
* pmpro_report_{slug}_widget() to show up on the report homepage.
|
13 |
-
* pmpro_report_{slug}_page() to show up when users click on the report page widget.
|
14 |
-
*/
|
15 |
-
|
16 |
-
global $pmpro_reports;
|
17 |
-
|
18 |
-
$pmpro_reports['memberships'] = __('Membership Stats', 'pmpro');
|
19 |
-
|
20 |
-
//queue Google Visualization JS on report page
|
21 |
-
function pmpro_report_memberships_init() {
|
22 |
-
if(is_admin() && isset($_REQUEST['report']) && $_REQUEST['report'] == "memberships" && isset($_REQUEST['page']) && $_REQUEST['page'] == "pmpro-reports")
|
23 |
-
wp_enqueue_script("jsapi", "https://www.google.com/jsapi");
|
24 |
-
}
|
25 |
-
add_action( 'init', 'pmpro_report_memberships_init' );
|
26 |
-
|
27 |
-
|
28 |
-
//widget
|
29 |
-
function pmpro_report_memberships_widget() {
|
30 |
-
global $wpdb, $pmpro_currency_symbol;
|
31 |
-
?>
|
32 |
-
<style type="text/css">
|
33 |
-
#pmpro_report_memberships .section-label {
|
34 |
-
margin: 15px 0;
|
35 |
-
font-size: 18px;
|
36 |
-
text-align: left;
|
37 |
-
display: block;
|
38 |
-
}
|
39 |
-
|
40 |
-
#pmpro_report_memberships .section-label:first-child {
|
41 |
-
margin-top: 0;
|
42 |
-
}
|
43 |
-
|
44 |
-
#pmpro_report_memberships div {text-align: center;}
|
45 |
-
#pmpro_report_memberships em {display: block; font-style: normal; font-size: 2em; margin: 5px; line-height: 26px;}
|
46 |
-
</style>
|
47 |
-
<span id="pmpro_report_memberships">
|
48 |
-
<label class="section-label"><?php _e('Signups', 'pmpro');?>:</label>
|
49 |
-
<div style="width: 25%; float: left;">
|
50 |
-
<label><?php _e('All Time', 'pmpro');?></label>
|
51 |
-
<em><?php echo pmpro_getSignups( 'all time' ); ?></em>
|
52 |
-
</div>
|
53 |
-
<div style="width: 25%; float: left;">
|
54 |
-
<label><?php _e('This Year', 'pmpro');?></label>
|
55 |
-
<em><?php echo pmpro_getSignups( 'this year' ); ?></em>
|
56 |
-
</div>
|
57 |
-
<div style="width: 25%; float: left;">
|
58 |
-
<label><?php _e('This Month', 'pmpro');?></label>
|
59 |
-
<em><?php echo pmpro_getSignups( 'this month' ); ?></em>
|
60 |
-
</div>
|
61 |
-
<div style="width: 25%; float: left;">
|
62 |
-
<label><?php _e('Today', 'pmpro');?></label>
|
63 |
-
<em><?php echo pmpro_getSignups( 'today' ); ?></em>
|
64 |
-
</div>
|
65 |
-
<div class="clear"></div>
|
66 |
-
|
67 |
-
<label class="section-label"><?php _e('Cancellations', 'pmpro');?>:</label>
|
68 |
-
<div style="width: 25%; float: left;">
|
69 |
-
<label><?php _e('All Time', 'pmpro');?></label>
|
70 |
-
<em><?php echo pmpro_getCancellations( 'all time' ); ?></em>
|
71 |
-
</div>
|
72 |
-
<div style="width: 25%; float: left;">
|
73 |
-
<label><?php _e('This Year', 'pmpro');?></label>
|
74 |
-
<em><?php echo pmpro_getCancellations( 'this year' ); ?></em>
|
75 |
-
</div>
|
76 |
-
<div style="width: 25%; float: left;">
|
77 |
-
<label><?php _e('This Month', 'pmpro');?></label>
|
78 |
-
<em><?php echo pmpro_getCancellations( 'this month' ); ?></em>
|
79 |
-
</div>
|
80 |
-
<div style="width: 25%; float: left;">
|
81 |
-
<label><?php _e('Today', 'pmpro');?></label>
|
82 |
-
<em><?php echo pmpro_getCancellations( 'today' ); ?></em>
|
83 |
-
</div>
|
84 |
-
<div class="clear"></div>
|
85 |
-
|
86 |
-
<label class="section-label"><?php _e('Other Stats', 'pmpro');?>:</label>
|
87 |
-
<div style="width: 33%; float: left;">
|
88 |
-
<label><?php _e('Monthly Recurring Revenue (MRR)', 'pmpro');?></label>
|
89 |
-
<em><?php echo $pmpro_currency_symbol . $pmpro_mrr = number_format(pmpro_getMRR( 'all time' ), 2); ?></em>
|
90 |
-
</div>
|
91 |
-
<div style="width: 33%; float: left;">
|
92 |
-
<label><?php _e('Cancellation Rate', 'pmpro');?></label>
|
93 |
-
<em><?php echo pmpro_getCancellationRate('all time' ); ?>%</em>
|
94 |
-
</div>
|
95 |
-
<div style="width: 33%; float: left;">
|
96 |
-
<label><?php _e('Lifetime Value (LTV)', 'pmpro');?></label>
|
97 |
-
<em><?php echo $pmpro_currency_symbol . number_format(pmpro_getLTV('all time' ), 2); ?></em>
|
98 |
-
</div>
|
99 |
-
<div class="clear"></div>
|
100 |
-
</span>
|
101 |
-
<?php
|
102 |
-
}
|
103 |
-
|
104 |
-
function pmpro_report_memberships_page()
|
105 |
-
{
|
106 |
-
global $wpdb, $pmpro_currency_symbol;
|
107 |
-
|
108 |
-
//get values from form
|
109 |
-
if(isset($_REQUEST['type']))
|
110 |
-
$type = sanitize_text_field($_REQUEST['type']);
|
111 |
-
else
|
112 |
-
$type = "signup_v_cancel";
|
113 |
-
|
114 |
-
if(isset($_REQUEST['period']))
|
115 |
-
$period = sanitize_text_field($_REQUEST['period']);
|
116 |
-
else
|
117 |
-
$period = "monthly";
|
118 |
-
|
119 |
-
if(isset($_REQUEST['month']))
|
120 |
-
$month = intval($_REQUEST['month']);
|
121 |
-
else
|
122 |
-
$month = date("n");
|
123 |
-
|
124 |
-
$thisyear = date("Y");
|
125 |
-
if(isset($_REQUEST['year']))
|
126 |
-
$year = intval($_REQUEST['year']);
|
127 |
-
else
|
128 |
-
$year = date("Y");
|
129 |
-
|
130 |
-
if(isset($_REQUEST['level']))
|
131 |
-
$l = intval($_REQUEST['level']);
|
132 |
-
else
|
133 |
-
$l = "";
|
134 |
-
|
135 |
-
//calculate start date and how to group dates returned from DB
|
136 |
-
if($period == "daily")
|
137 |
-
{
|
138 |
-
$startdate = $year . '-' . substr("0" . $month, strlen($month) - 1, 2) . '-01';
|
139 |
-
$enddate = $year . '-' . substr("0" . $month, strlen($month) - 1, 2) . '-31';
|
140 |
-
$date_function = 'DAY';
|
141 |
-
}
|
142 |
-
elseif($period == "monthly")
|
143 |
-
{
|
144 |
-
$startdate = $year . '-01-01';
|
145 |
-
$enddate = strval(intval($year)+1) . '-01-01';
|
146 |
-
$date_function = 'MONTH';
|
147 |
-
}
|
148 |
-
elseif($period == "annual")
|
149 |
-
{
|
150 |
-
$startdate = '1960-01-01'; //all time
|
151 |
-
$date_function = 'YEAR';
|
152 |
-
}
|
153 |
-
|
154 |
-
//testing or live data
|
155 |
-
$gateway_environment = pmpro_getOption("gateway_environment");
|
156 |
-
|
157 |
-
//get data
|
158 |
-
if ( $type === "signup_v_cancel" ) {
|
159 |
-
$sqlQuery = "SELECT $date_function(startdate) as date, COUNT(DISTINCT user_id) as signups
|
160 |
-
FROM $wpdb->pmpro_memberships_users WHERE startdate >= '" . $startdate . "' ";
|
161 |
-
|
162 |
-
if(!empty($enddate))
|
163 |
-
$sqlQuery .= "AND startdate < '" . $enddate . "' ";
|
164 |
-
}
|
165 |
-
if ( $type === "mrr_ltv" ) {
|
166 |
-
// Get total revenue, number of months in system, and date
|
167 |
-
if ( $period == 'annual' )
|
168 |
-
$sqlQuery = "SELECT SUM(total) as total, COUNT(DISTINCT MONTH(timestamp)) as months, $date_function(timestamp) as date
|
169 |
-
FROM $wpdb->pmpro_membership_orders WHERE status NOT IN('refunded', 'review', 'token')
|
170 |
-
AND timestamp >= '" . $startdate . "' AND gateway_environment = '" . esc_sql($gateway_environment) . "' ";
|
171 |
-
|
172 |
-
if ( $period == 'monthly' )
|
173 |
-
$sqlQuery = "SELECT SUM(total) as total, $date_function(timestamp) as date
|
174 |
-
FROM $wpdb->pmpro_membership_orders WHERE status NOT IN('refunded', 'review', 'token')
|
175 |
-
AND timestamp >= '" . $startdate . "' AND gateway_environment = '" . esc_sql($gateway_environment) . "' ";
|
176 |
-
|
177 |
-
if(!empty($enddate))
|
178 |
-
$sqlQuery .= "AND timestamp < '" . $enddate . "' ";
|
179 |
-
}
|
180 |
-
|
181 |
-
if(!empty($l))
|
182 |
-
$sqlQuery .= "AND membership_id IN(" . $l . ") ";
|
183 |
-
|
184 |
-
$sqlQuery .= " GROUP BY date ORDER BY date ";
|
185 |
-
|
186 |
-
$dates = $wpdb->get_results($sqlQuery);
|
187 |
-
|
188 |
-
//fill in blanks in dates
|
189 |
-
$cols = array();
|
190 |
-
if($period == "daily")
|
191 |
-
{
|
192 |
-
$lastday = date("t", $startdate);
|
193 |
-
|
194 |
-
for($i = 1; $i <= $lastday; $i++)
|
195 |
-
{
|
196 |
-
// Signups vs. Cancellations
|
197 |
-
if ( $type === "signup_v_cancel" ) {
|
198 |
-
$cols[$i] = new stdClass();
|
199 |
-
$cols[$i]->signups = 0;
|
200 |
-
foreach($dates as $date)
|
201 |
-
{
|
202 |
-
if( $date->date == $i ) {
|
203 |
-
$cols[$i]->signups = $date->signups;
|
204 |
-
}
|
205 |
-
}
|
206 |
-
}
|
207 |
-
}
|
208 |
-
}
|
209 |
-
elseif($period == "monthly")
|
210 |
-
{
|
211 |
-
for($i = 1; $i < 13; $i++)
|
212 |
-
{
|
213 |
-
// Signups vs. Cancellations
|
214 |
-
if ( $type === "signup_v_cancel" ) {
|
215 |
-
$cols[$i] = new stdClass();
|
216 |
-
$cols[$i]->date = $i;
|
217 |
-
$cols[$i]->signups = 0;
|
218 |
-
foreach($dates as $date)
|
219 |
-
{
|
220 |
-
if( $date->date == $i ) {
|
221 |
-
$cols[$i]->date = $date->date;
|
222 |
-
$cols[$i]->signups = $date->signups;
|
223 |
-
}
|
224 |
-
}
|
225 |
-
}
|
226 |
-
|
227 |
-
// MRR & LTV
|
228 |
-
if ( $type === "mrr_ltv" ) {
|
229 |
-
$cols[$i] = new stdClass();
|
230 |
-
$cols[$i]->date = $i;
|
231 |
-
$cols[$i]->months = 1;
|
232 |
-
foreach($dates as $date)
|
233 |
-
{
|
234 |
-
if( $date->date == $i ) {
|
235 |
-
$cols[$i]->total = $date->total;
|
236 |
-
}
|
237 |
-
}
|
238 |
-
}
|
239 |
-
}
|
240 |
-
}
|
241 |
-
elseif($period == "annual") //annual
|
242 |
-
{
|
243 |
-
}
|
244 |
-
|
245 |
-
$dates = ( ! empty( $cols ) ) ? $cols : $dates;
|
246 |
-
|
247 |
-
// Signups vs. cancellations
|
248 |
-
if ( $type === "signup_v_cancel" )
|
249 |
-
{
|
250 |
-
$sqlQuery = "SELECT $date_function(mu1.modified) as date, COUNT(DISTINCT mu1.user_id) as cancellations
|
251 |
-
FROM $wpdb->pmpro_memberships_users mu1
|
252 |
-
LEFT JOIN $wpdb->pmpro_memberships_users mu2 ON mu1.user_id = mu2.user_id AND
|
253 |
-
mu2.modified > mu1.enddate AND
|
254 |
-
DATE_ADD(mu1.modified, INTERVAL 1 DAY) > mu2.startdate
|
255 |
-
WHERE mu1.status = 'inactive'
|
256 |
-
AND mu2.id IS NULL
|
257 |
-
AND mu1.startdate >= '" . $startdate . "'
|
258 |
-
AND mu1.startdate < '" . $enddate . "' ";
|
259 |
-
|
260 |
-
//restrict by level
|
261 |
-
if(!empty($l))
|
262 |
-
$sqlQuery .= "AND membership_id IN(" . $l . ") ";
|
263 |
-
|
264 |
-
$sqlQuery .= " GROUP BY date ORDER BY date ";
|
265 |
-
|
266 |
-
$cdates = $wpdb->get_results($sqlQuery, OBJECT_K);
|
267 |
-
|
268 |
-
foreach( $dates as &$date )
|
269 |
-
{
|
270 |
-
if(!empty($cdates[$date->date]))
|
271 |
-
$date->cancellations = $cdates[$date->date]->cancellations;
|
272 |
-
else
|
273 |
-
$date->cancellations = 0;
|
274 |
-
}
|
275 |
-
}
|
276 |
-
|
277 |
-
// MRR & LTV
|
278 |
-
if ( $type === "mrr_ltv" && count( $dates ) === 1 ) {
|
279 |
-
$dummy_date = new stdClass();
|
280 |
-
$dummy_date->total = 0;
|
281 |
-
$dummy_date->months = 0;
|
282 |
-
$dummy_date->date = $dates[0]->date - 1;
|
283 |
-
array_unshift( $dates, $dummy_date ); // Add to beginning
|
284 |
-
}
|
285 |
-
?>
|
286 |
-
<form id="posts-filter" method="get" action="">
|
287 |
-
<h2>
|
288 |
-
<?php _e('Membership Stats', 'pmpro');?>
|
289 |
-
</h2>
|
290 |
-
<ul class="subsubsub">
|
291 |
-
<li>
|
292 |
-
<?php _ex('Show', 'Dropdown label, e.g. Show Daily Revenue for January', 'pmpro')?>
|
293 |
-
<select id="period" name="period">
|
294 |
-
<option value="daily" <?php selected($period, "daily");?>><?php _e('Daily', 'pmpro');?></option>
|
295 |
-
<option value="monthly" <?php selected($period, "monthly");?>><?php _e('Monthly', 'pmpro');?></option>
|
296 |
-
<option value="annual" <?php selected($period, "annual");?>><?php _e('Annual', 'pmpro');?></option>
|
297 |
-
</select>
|
298 |
-
<select id="type" name="type">
|
299 |
-
<option value="signup_v_cancel" <?php selected($type, "signup_v_cancel");?>><?php _e('Signups vs. Cancellations', 'pmpro');?></option>
|
300 |
-
<?php /*
|
301 |
-
<option value="mrr_ltv" <?php selected($type, "mrr_ltv");?>><?php _e('MRR & LTV', 'pmpro');?></option>
|
302 |
-
*/ ?>
|
303 |
-
</select>
|
304 |
-
<span id="for"><?php _ex('for', 'Dropdown label, e.g. Show Daily Revenue for January', 'pmpro')?></span>
|
305 |
-
<select id="month" name="month">
|
306 |
-
<?php for($i = 1; $i < 13; $i++) { ?>
|
307 |
-
<option value="<?php echo $i;?>" <?php selected($month, $i);?>><?php echo date("F", mktime(0, 0, 0, $i));?></option>
|
308 |
-
<?php } ?>
|
309 |
-
</select>
|
310 |
-
<select id="year" name="year">
|
311 |
-
<?php for($i = $thisyear; $i > 2007; $i--) { ?>
|
312 |
-
<option value="<?php echo $i;?>" <?php selected($year, $i);?>><?php echo $i;?></option>
|
313 |
-
<?php } ?>
|
314 |
-
</select>
|
315 |
-
<span id="for"><?php _ex('for', 'Dropdown label, e.g. Show Daily Revenue for January', 'pmpro')?></span>
|
316 |
-
<select name="level">
|
317 |
-
<option value="" <?php if(!$l) { ?>selected="selected"<?php } ?>><?php _e('All Levels', 'pmpro');?></option>
|
318 |
-
<?php
|
319 |
-
$levels = $wpdb->get_results("SELECT id, name FROM $wpdb->pmpro_membership_levels ORDER BY name");
|
320 |
-
foreach($levels as $level)
|
321 |
-
{
|
322 |
-
?>
|
323 |
-
<option value="<?php echo $level->id?>" <?php if($l == $level->id) { ?>selected="selected"<?php } ?>><?php echo $level->name?></option>
|
324 |
-
<?php
|
325 |
-
}
|
326 |
-
?>
|
327 |
-
</select>
|
328 |
-
|
329 |
-
<input type="hidden" name="page" value="pmpro-reports" />
|
330 |
-
<input type="hidden" name="report" value="memberships" />
|
331 |
-
<input type="submit" value="<?php _ex('Generate Report', 'Submit button value.', 'pmpro');?>" />
|
332 |
-
</li>
|
333 |
-
</ul>
|
334 |
-
|
335 |
-
<div id="chart_div" style="clear: both; width: 100%; height: 500px;"></div>
|
336 |
-
|
337 |
-
<script>
|
338 |
-
//update month/year when period dropdown is changed
|
339 |
-
jQuery(document).ready(function() {
|
340 |
-
jQuery('#period').change(function() {
|
341 |
-
pmpro_ShowMonthOrYear();
|
342 |
-
});
|
343 |
-
});
|
344 |
-
|
345 |
-
function pmpro_ShowMonthOrYear()
|
346 |
-
{
|
347 |
-
var period = jQuery('#period').val();
|
348 |
-
if(period == 'daily')
|
349 |
-
{
|
350 |
-
jQuery('#for').show();
|
351 |
-
jQuery('#month').show();
|
352 |
-
jQuery('#year').show();
|
353 |
-
}
|
354 |
-
else if(period == 'monthly')
|
355 |
-
{
|
356 |
-
jQuery('#for').show();
|
357 |
-
jQuery('#month').hide();
|
358 |
-
jQuery('#year').show();
|
359 |
-
}
|
360 |
-
else
|
361 |
-
{
|
362 |
-
jQuery('#for').hide();
|
363 |
-
jQuery('#month').hide();
|
364 |
-
jQuery('#year').hide();
|
365 |
-
}
|
366 |
-
}
|
367 |
-
|
368 |
-
pmpro_ShowMonthOrYear();
|
369 |
-
|
370 |
-
//draw the chart
|
371 |
-
google.load("visualization", "1", {packages:["corechart"]});
|
372 |
-
google.setOnLoadCallback(drawChart);
|
373 |
-
function drawChart() {
|
374 |
-
|
375 |
-
var data = google.visualization.arrayToDataTable([
|
376 |
-
<?php if ( $type === "signup_v_cancel" ) : // Signups vs. cancellations ?>
|
377 |
-
['<?php echo $date_function;?>', 'Signups', 'Cancellations'],
|
378 |
-
<?php foreach($dates as $key => $value) { ?>
|
379 |
-
['<?php if($period == "monthly") echo date("M", mktime(0,0,0,$value->date)); else if($period == "daily") echo $key; else echo $value->date;?>', <?php echo $value->signups; ?>, <?php echo $value->cancellations; ?>],
|
380 |
-
<?php } ?>
|
381 |
-
<?php endif; ?>
|
382 |
-
|
383 |
-
<?php if ( $type === "mrr_ltv" ) : // Signups vs. cancellations ?>
|
384 |
-
['<?php echo $date_function;?>', 'MRR', 'LTV'],
|
385 |
-
<?php foreach($dates as $key => $value) { ?>
|
386 |
-
['<?php if($period == "monthly") echo date("M", mktime(0,0,0,$value->date)); else if($period == "daily") echo $key; else echo $value->date;?>', <?php echo (($mrr = $value->total / $value->months) && $mrr != 0) ? $mrr : 0; ?>, <?php echo pmpro_getLTV($period, NULL, $mrr ); ?>],
|
387 |
-
<?php } ?>
|
388 |
-
<?php endif; ?>
|
389 |
-
]);
|
390 |
-
|
391 |
-
var options = {
|
392 |
-
colors: ['#0099c6', '#dc3912'],
|
393 |
-
hAxis: {title: '<?php echo $date_function;?>', titleTextStyle: {color: 'black'}, maxAlternation: 1},
|
394 |
-
vAxis: {color: 'green', titleTextStyle: {color: '#51a351'}},
|
395 |
-
};
|
396 |
-
|
397 |
-
<?php if ( $type === "signup_v_cancel" ) : // Signups vs. cancellations ?>
|
398 |
-
var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));
|
399 |
-
<?php elseif ( $type === "mrr_ltv" ) : // MRR & LTV ?>
|
400 |
-
var formatter = new google.visualization.NumberFormat({prefix: '<?php echo html_entity_decode($pmpro_currency_symbol);?>'});
|
401 |
-
formatter.format(data, 2);
|
402 |
-
var formatter = new google.visualization.NumberFormat({prefix: '<?php echo html_entity_decode($pmpro_currency_symbol);?>'});
|
403 |
-
formatter.format(data, 1);
|
404 |
-
|
405 |
-
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
|
406 |
-
<?php endif; ?>
|
407 |
-
chart.draw(data, options);
|
408 |
-
}
|
409 |
-
</script>
|
410 |
-
|
411 |
-
</form>
|
412 |
-
<?php
|
413 |
-
}
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
/*
|
418 |
-
Other code required for your reports. This file is loaded every time WP loads with PMPro enabled.
|
419 |
-
*/
|
420 |
-
|
421 |
-
//get signups
|
422 |
-
function pmpro_getSignups($period = false, $levels = 'all')
|
423 |
-
{
|
424 |
-
//check for a transient
|
425 |
-
$cache = get_transient( 'pmpro_report_memberships_signups' );
|
426 |
-
if( ! empty( $cache ) && ! empty( $cache[$period] ) && ! empty( $cache[$period][$levels] ) )
|
427 |
-
return $cache[$period][$levels];
|
428 |
-
|
429 |
-
//a sale is an order with status = success
|
430 |
-
if( $period == 'today' )
|
431 |
-
$startdate = date(' Y-m-d' );
|
432 |
-
elseif( $period == 'this month')
|
433 |
-
$startdate = date( 'Y-m' ) . '-01';
|
434 |
-
elseif( $period == 'this year')
|
435 |
-
$startdate = date( 'Y' ) . '-01-01';
|
436 |
-
else
|
437 |
-
$startdate = '';
|
438 |
-
|
439 |
-
|
440 |
-
//build query
|
441 |
-
global $wpdb;
|
442 |
-
|
443 |
-
$sqlQuery = "SELECT COUNT(DISTINCT user_id) FROM $wpdb->pmpro_memberships_users WHERE startdate >= '" . $startdate . "' ";
|
444 |
-
|
445 |
-
//restrict by level
|
446 |
-
if(!empty($levels) && $levels != 'all')
|
447 |
-
$sqlQuery .= "AND membership_id IN(" . $levels . ") ";
|
448 |
-
|
449 |
-
$signups = $wpdb->get_var($sqlQuery);
|
450 |
-
|
451 |
-
//save in cache
|
452 |
-
if(!empty($cache) && !empty($cache[$period]))
|
453 |
-
$cache[$period][$levels] = $signups;
|
454 |
-
elseif(!empty($cache))
|
455 |
-
$cache[$period] = array($levels => $signups);
|
456 |
-
else
|
457 |
-
$cache = array($period => array($levels => $signups));
|
458 |
-
|
459 |
-
set_transient("pmpro_report_memberships_signups", $cache, 3600*24);
|
460 |
-
|
461 |
-
return $signups;
|
462 |
-
}
|
463 |
-
|
464 |
-
//get cancellations
|
465 |
-
function pmpro_getCancellations($period = false, $levels = 'all')
|
466 |
-
{
|
467 |
-
//check for a transient
|
468 |
-
$cache = get_transient( 'pmpro_report_memberships_cancellations' );
|
469 |
-
if( ! empty( $cache ) && ! empty( $cache[$period] ) && ! empty( $cache[$period][$levels] ) )
|
470 |
-
return $cache[$period][$levels];
|
471 |
-
|
472 |
-
//figure out start date
|
473 |
-
if( $period == 'today' )
|
474 |
-
$startdate = date(' Y-m-d' );
|
475 |
-
elseif( $period == 'this month')
|
476 |
-
$startdate = date( 'Y-m' ) . '-01';
|
477 |
-
elseif( $period == 'this year')
|
478 |
-
$startdate = date( 'Y' ) . '-01-01';
|
479 |
-
else
|
480 |
-
$startdate = '';
|
481 |
-
|
482 |
-
$startdate_plus_one = strtotime( $startdate . + ' + 1 day', current_time("timestamp") );
|
483 |
-
|
484 |
-
/*
|
485 |
-
build query.
|
486 |
-
cancellations are marked in the memberships users table with status = 'inactive'
|
487 |
-
we try to ignore cancellations when the user gets a new level with 24 hours (probably an upgrade or downgrade)
|
488 |
-
*/
|
489 |
-
global $wpdb;
|
490 |
-
|
491 |
-
//$sqlQuery = "SELECT mu1.user_id, mu2.user_id FROM $wpdb->pmpro_memberships_users mu1 LEFT JOIN $wpdb->pmpro_memberships_users mu2 ON mu1.user_id = mu2.user_id AND mu2.status = 'inactive' AND mu2.startdate > mu1.startdate";
|
492 |
-
$sqlQuery = "SELECT COUNT(mu1.id)
|
493 |
-
FROM $wpdb->pmpro_memberships_users mu1
|
494 |
-
LEFT JOIN $wpdb->pmpro_memberships_users mu2 ON mu1.user_id = mu2.user_id AND
|
495 |
-
mu2.modified > mu1.enddate AND
|
496 |
-
DATE_ADD(mu1.modified, INTERVAL 1 DAY) > mu2.startdate
|
497 |
-
WHERE mu1.status = 'inactive'
|
498 |
-
AND mu2.id IS NULL
|
499 |
-
AND mu1.startdate >= '" . $startdate . "' ";
|
500 |
-
|
501 |
-
//restrict by level
|
502 |
-
if(!empty($levels) && $levels != 'all')
|
503 |
-
$sqlQuery .= "AND membership_id IN(" . $levels . ") ";
|
504 |
-
|
505 |
-
$cancellations = $wpdb->get_var($sqlQuery);
|
506 |
-
|
507 |
-
//save in cache
|
508 |
-
if(!empty($cache) && !empty($cache[$period]) && is_array($cache[$period]))
|
509 |
-
$cache[$period][$levels] = $cancellations;
|
510 |
-
elseif(!empty($cache))
|
511 |
-
$cache[$period] = array($levels => $cancellations);
|
512 |
-
else
|
513 |
-
$cache = array($period => array($levels => $cancellations));
|
514 |
-
|
515 |
-
set_transient("pmpro_report_memberships_cancellations", $cache, 3600*24);
|
516 |
-
|
517 |
-
return $cancellations;
|
518 |
-
}
|
519 |
-
|
520 |
-
//get MRR
|
521 |
-
function pmpro_getMRR($period, $levels = 'all')
|
522 |
-
{
|
523 |
-
//check for a transient
|
524 |
-
//$cache = get_transient("pmpro_report_mrr");
|
525 |
-
if(!empty($cache) && !empty($cache[$period]) && !empty($cache[$period][$levels]))
|
526 |
-
return $cache[$period][$levels];
|
527 |
-
|
528 |
-
//a sale is an order with status NOT IN refunded, review, token, error
|
529 |
-
if($period == "this month")
|
530 |
-
$startdate = date("Y-m") . "-01";
|
531 |
-
elseif($period == "this year")
|
532 |
-
$startdate = date("Y") . "-01-01";
|
533 |
-
else
|
534 |
-
$startdate = "";
|
535 |
-
|
536 |
-
$gateway_environment = pmpro_getOption("gateway_environment");
|
537 |
-
|
538 |
-
//build query
|
539 |
-
global $wpdb;
|
540 |
-
// Get total revenue
|
541 |
-
$sqlQuery = "SELECT SUM(total) FROM $wpdb->pmpro_membership_orders WHERE status NOT IN('refunded', 'review', 'token', 'error') AND timestamp >= '" . $startdate . "' AND gateway_environment = '" . esc_sql($gateway_environment) . "' ";
|
542 |
-
|
543 |
-
//restrict by level
|
544 |
-
if(!empty($levels) && $levels != 'all') {
|
545 |
-
$sqlQuery .= "AND membership_id IN(" . $levels . ") ";
|
546 |
-
}
|
547 |
-
|
548 |
-
$revenue = $wpdb->get_var($sqlQuery);
|
549 |
-
|
550 |
-
//when was the first order
|
551 |
-
$first_order_timestamp = $wpdb->get_var("SELECT UNIX_TIMESTAMP(`timestamp`) FROM $wpdb->pmpro_membership_orders WHERE `timestamp` IS NOT NULL AND `timestamp` > '0000-00-00 00:00:00' ORDER BY `timestamp` LIMIT 1");
|
552 |
-
|
553 |
-
//if we don't have a timestamp, we can't do this
|
554 |
-
if(empty($first_order_timestamp))
|
555 |
-
return false;
|
556 |
-
|
557 |
-
//how many months ago was the first order
|
558 |
-
$months = $wpdb->get_var("SELECT PERIOD_DIFF('" . date("Ym") . "', '" . date("Ym", $first_order_timestamp) . "')");
|
559 |
-
|
560 |
-
/* this works in PHP 5.3+ without using MySQL to get the diff
|
561 |
-
$date1 = new DateTime(date("Y-m-d", $first_order_timestamp));
|
562 |
-
$date2 = new DateTime(date("Y-m-d"));
|
563 |
-
$interval = $date1->diff($date2);
|
564 |
-
$years = intval($interval->format('%y'));
|
565 |
-
$months = $years*12 + intval($interval->format('%m'));
|
566 |
-
*/
|
567 |
-
|
568 |
-
if($months > 0)
|
569 |
-
$mrr = $revenue / $months;
|
570 |
-
else
|
571 |
-
$mrr = 0;
|
572 |
-
|
573 |
-
//save in cache
|
574 |
-
if(!empty($cache) && !empty($cache[$period]))
|
575 |
-
$cache[$period][$levels] = $mrr;
|
576 |
-
elseif(!empty($cache))
|
577 |
-
$cache[$period] = array($levels => $mrr);
|
578 |
-
else
|
579 |
-
$cache = array($period => array($levels => $mrr));
|
580 |
-
|
581 |
-
set_transient("pmpro_report_mrr", $cache, 3600*24);
|
582 |
-
|
583 |
-
return $mrr;
|
584 |
-
}
|
585 |
-
|
586 |
-
//get Cancellation Rate
|
587 |
-
function pmpro_getCancellationRate($period, $levels = 'all')
|
588 |
-
{
|
589 |
-
//check for a transient
|
590 |
-
$cache = get_transient("pmpro_report_cancellation_rate");
|
591 |
-
if(!empty($cache) && !empty($cache[$period]) && !empty($cache[$period][$levels]))
|
592 |
-
return $cache[$period][$levels];
|
593 |
-
|
594 |
-
$signups = pmpro_getSignups($period, $levels);
|
595 |
-
$cancellations = pmpro_getCancellations($period, $levels);
|
596 |
-
|
597 |
-
if(empty($signups))
|
598 |
-
return false;
|
599 |
-
|
600 |
-
$rate = number_format(($cancellations / $signups)*100, 2);
|
601 |
-
|
602 |
-
//save in cache
|
603 |
-
if(!empty($cache) && !empty($cache[$period]))
|
604 |
-
$cache[$period][$levels] = $rate;
|
605 |
-
elseif(!empty($cache))
|
606 |
-
$cache[$period] = array($levels => $rate);
|
607 |
-
else
|
608 |
-
$cache = array($period => array($levels => $rate));
|
609 |
-
|
610 |
-
set_transient("pmpro_report_cancellation_rate", $cache, 3600*24);
|
611 |
-
|
612 |
-
return $rate;
|
613 |
-
}
|
614 |
-
|
615 |
-
//get LTV
|
616 |
-
function pmpro_getLTV($period, $levels = 'all', $mrr = NULL, $signups = NULL, $cancellation_rate = NULL)
|
617 |
-
{
|
618 |
-
if(empty($mrr))
|
619 |
-
$mrr = pmpro_getMRR($period, $levels);
|
620 |
-
if(empty($signups))
|
621 |
-
$signups = pmpro_getSignups($period, $levels);
|
622 |
-
if(empty($cancellation_rate))
|
623 |
-
$cancellation_rate = pmpro_getCancellationRate($period, $levels);
|
624 |
-
|
625 |
-
//average monthly spend
|
626 |
-
if(empty($signups))
|
627 |
-
return false;
|
628 |
-
|
629 |
-
if($signups > 0)
|
630 |
-
$ams = $mrr / $signups;
|
631 |
-
else
|
632 |
-
$ams = 0;
|
633 |
-
|
634 |
-
if($cancellation_rate > 0)
|
635 |
-
$ltv = $ams * (1/$cancellation_rate);
|
636 |
-
else
|
637 |
-
$ltv = $ams;
|
638 |
-
|
639 |
-
return $ltv;
|
640 |
-
}
|
641 |
-
|
642 |
-
//delete transients when an order goes through
|
643 |
-
function pmpro_report_memberships_delete_transients()
|
644 |
-
{
|
645 |
-
delete_transient("pmpro_report_mrr");
|
646 |
-
delete_transient("pmpro_report_cancellation_rate");
|
647 |
-
delete_transient("pmpro_report_memberships_cancellations");
|
648 |
-
delete_transient("pmpro_report_memberships_signups");
|
649 |
-
}
|
650 |
-
add_action("pmpro_after_checkout", "pmpro_report_memberships_delete_transients");
|
651 |
-
add_action("pmpro_updated_order", "pmpro_report_memberships_delete_transients");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
adminpages/reports/sales.php
CHANGED
@@ -33,6 +33,9 @@ add_action("init", "pmpro_report_sales_init");
|
|
33 |
function pmpro_report_sales_widget()
|
34 |
{
|
35 |
global $wpdb, $pmpro_currency_symbol;
|
|
|
|
|
|
|
36 |
?>
|
37 |
<style>
|
38 |
#pmpro_report_sales div {text-align: center;}
|
@@ -40,22 +43,18 @@ function pmpro_report_sales_widget()
|
|
40 |
</style>
|
41 |
<span id="#pmpro_report_sales">
|
42 |
<div style="width: 25%; float: left;">
|
43 |
-
<em><?php echo pmpro_getSales("all time");?></em>
|
44 |
<label>All Time</label>
|
45 |
<em><?php echo $pmpro_currency_symbol . number_format(pmpro_getRevenue("all time"), 2);?></em>
|
46 |
</div>
|
47 |
<div style="width: 25%; float: left;">
|
48 |
-
<em><?php echo pmpro_getSales("this year");?></em>
|
49 |
<label>This Year</label>
|
50 |
<em><?php echo $pmpro_currency_symbol . number_format(pmpro_getRevenue("this year"), 2);?></em>
|
51 |
</div>
|
52 |
<div style="width: 25%; float: left;">
|
53 |
-
<em><?php echo pmpro_getSales("this month");?></em>
|
54 |
<label>This Month</label>
|
55 |
<em><?php echo $pmpro_currency_symbol . number_format(pmpro_getRevenue("this month"), 2);?></em>
|
56 |
</div>
|
57 |
<div style="width: 25%; float: left;">
|
58 |
-
<em><?php echo pmpro_getSales("today");?></em>
|
59 |
<label>Today</label>
|
60 |
<em><?php echo $pmpro_currency_symbol . number_format(pmpro_getRevenue("today"), 2);?></em>
|
61 |
</div>
|
@@ -123,7 +122,7 @@ function pmpro_report_sales_page()
|
|
123 |
$gateway_environment = pmpro_getOption("gateway_environment");
|
124 |
|
125 |
//get data
|
126 |
-
$sqlQuery = "SELECT $date_function(timestamp) as date, $type_function(total) as value FROM $wpdb->pmpro_membership_orders WHERE timestamp >= '" . $startdate . "' AND status NOT IN('refunded', 'review', 'token'
|
127 |
|
128 |
if(!empty($enddate))
|
129 |
$sqlQuery .= "AND timestamp < '" . $enddate . "' ";
|
@@ -189,46 +188,48 @@ function pmpro_report_sales_page()
|
|
189 |
<?php _e('Sales and Revenue', 'pmpro');?>
|
190 |
</h2>
|
191 |
|
192 |
-
<
|
193 |
-
|
194 |
-
|
195 |
-
<
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
<
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
<
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
|
|
|
|
232 |
|
233 |
<div id="chart_div" style="clear: both; width: 100%; height: 500px;"></div>
|
234 |
|
@@ -283,10 +284,8 @@ function pmpro_report_sales_page()
|
|
283 |
vAxis: {color: 'green', titleTextStyle: {color: '#51a351'}},
|
284 |
};
|
285 |
|
286 |
-
<?php if($type != "sales") { ?>
|
287 |
var formatter = new google.visualization.NumberFormat({prefix: '<?php echo html_entity_decode($pmpro_currency_symbol);?>'});
|
288 |
formatter.format(data, 1);
|
289 |
-
<?php } ?>
|
290 |
|
291 |
var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));
|
292 |
chart.draw(data, options);
|
@@ -309,7 +308,7 @@ function pmpro_getSales($period, $levels = NULL)
|
|
309 |
if(!empty($cache) && !empty($cache[$period]) && !empty($cache[$period][$levels]))
|
310 |
return $cache[$period][$levels];
|
311 |
|
312 |
-
//a sale is an order with status NOT IN('refunded', 'review', 'token'
|
313 |
if($period == "today")
|
314 |
$startdate = date("Y-m-d");
|
315 |
elseif($period == "this month")
|
@@ -323,7 +322,7 @@ function pmpro_getSales($period, $levels = NULL)
|
|
323 |
|
324 |
//build query
|
325 |
global $wpdb;
|
326 |
-
$sqlQuery = "SELECT COUNT(*) FROM $wpdb->pmpro_membership_orders WHERE status NOT IN('refunded', 'review', 'token'
|
327 |
|
328 |
//restrict by level
|
329 |
if(!empty($levels))
|
@@ -352,7 +351,7 @@ function pmpro_getRevenue($period, $levels = NULL)
|
|
352 |
if(!empty($cache) && !empty($cache[$period]) && !empty($cache[$period][$levels]))
|
353 |
return $cache[$period][$levels];
|
354 |
|
355 |
-
//a sale is an order with status NOT IN('refunded', 'review', 'token'
|
356 |
if($period == "today")
|
357 |
$startdate = date("Y-m-d");
|
358 |
elseif($period == "this month")
|
@@ -366,7 +365,7 @@ function pmpro_getRevenue($period, $levels = NULL)
|
|
366 |
|
367 |
//build query
|
368 |
global $wpdb;
|
369 |
-
$sqlQuery = "SELECT SUM(total) FROM $wpdb->pmpro_membership_orders WHERE status NOT IN('refunded', 'review', 'token'
|
370 |
|
371 |
//restrict by level
|
372 |
if(!empty($levels))
|
33 |
function pmpro_report_sales_widget()
|
34 |
{
|
35 |
global $wpdb, $pmpro_currency_symbol;
|
36 |
+
$visits = get_option("pmpro_visits", array("today"=>0, "thisday"=>date("Y-m-d"), "alltime"=>0, "month"=>0, "thismonth"=>date("n")));
|
37 |
+
$views = get_option("pmpro_views", array("today"=>0, "thisday"=>date("Y-m-d"), "alltime"=>0, "month"=>0, "thismonth"=>date("n")));
|
38 |
+
$logins = get_option("pmpro_logins", array("today"=>0, "thisday"=>date("Y-m-d"), "alltime"=>0, "month"=>0, "thismonth"=>date("n")));
|
39 |
?>
|
40 |
<style>
|
41 |
#pmpro_report_sales div {text-align: center;}
|
43 |
</style>
|
44 |
<span id="#pmpro_report_sales">
|
45 |
<div style="width: 25%; float: left;">
|
|
|
46 |
<label>All Time</label>
|
47 |
<em><?php echo $pmpro_currency_symbol . number_format(pmpro_getRevenue("all time"), 2);?></em>
|
48 |
</div>
|
49 |
<div style="width: 25%; float: left;">
|
|
|
50 |
<label>This Year</label>
|
51 |
<em><?php echo $pmpro_currency_symbol . number_format(pmpro_getRevenue("this year"), 2);?></em>
|
52 |
</div>
|
53 |
<div style="width: 25%; float: left;">
|
|
|
54 |
<label>This Month</label>
|
55 |
<em><?php echo $pmpro_currency_symbol . number_format(pmpro_getRevenue("this month"), 2);?></em>
|
56 |
</div>
|
57 |
<div style="width: 25%; float: left;">
|
|
|
58 |
<label>Today</label>
|
59 |
<em><?php echo $pmpro_currency_symbol . number_format(pmpro_getRevenue("today"), 2);?></em>
|
60 |
</div>
|
122 |
$gateway_environment = pmpro_getOption("gateway_environment");
|
123 |
|
124 |
//get data
|
125 |
+
$sqlQuery = "SELECT $date_function(timestamp) as date, $type_function(total) as value FROM $wpdb->pmpro_membership_orders WHERE timestamp >= '" . $startdate . "' AND status NOT IN('refunded', 'review', 'token') AND gateway_environment = '" . $wpdb->escape($gateway_environment) . "' ";
|
126 |
|
127 |
if(!empty($enddate))
|
128 |
$sqlQuery .= "AND timestamp < '" . $enddate . "' ";
|
188 |
<?php _e('Sales and Revenue', 'pmpro');?>
|
189 |
</h2>
|
190 |
|
191 |
+
<ul class="subsubsub">
|
192 |
+
<li>
|
193 |
+
<?php _ex('Show', 'Dropdown label, e.g. Show Daily Revenue for January', 'pmpro')?>
|
194 |
+
<select id="period" name="period">
|
195 |
+
<option value="daily" <?php selected($period, "daily");?>><?php _e('Daily', 'pmpro');?></option>
|
196 |
+
<option value="monthly" <?php selected($period, "monthly");?>><?php _e('Monthly', 'pmpro');?></option>
|
197 |
+
<option value="annual" <?php selected($period, "annual");?>><?php _e('Annual', 'pmpro');?></option>
|
198 |
+
</select>
|
199 |
+
<select name="type">
|
200 |
+
<option value="revenue" <?php selected($type, "revenue");?>><?php _e('Revenue', 'pmpro');?></option>
|
201 |
+
<option value="sales" <?php selected($type, "sales");?>><?php _e('Sales', 'pmpro');?></option>
|
202 |
+
</select>
|
203 |
+
<span id="for"><?php _ex('for', 'Dropdown label, e.g. Show Daily Revenue for January', 'pmpro')?></span>
|
204 |
+
<select id="month" name="month">
|
205 |
+
<?php for($i = 1; $i < 13; $i++) { ?>
|
206 |
+
<option value="<?php echo $i;?>" <?php selected($month, $i);?>><?php echo date("F", mktime(0, 0, 0, $i));?></option>
|
207 |
+
<?php } ?>
|
208 |
+
</select>
|
209 |
+
<select id="year" name="year">
|
210 |
+
<?php for($i = $thisyear; $i > 2007; $i--) { ?>
|
211 |
+
<option value="<?php echo $i;?>" <?php selected($year, $i);?>><?php echo $i;?></option>
|
212 |
+
<?php } ?>
|
213 |
+
</select>
|
214 |
+
<span id="for"><?php _ex('for', 'Dropdown label, e.g. Show Daily Revenue for January', 'pmpro')?></span>
|
215 |
+
<select name="level">
|
216 |
+
<option value="" <?php if(!$l) { ?>selected="selected"<?php } ?>><?php _e('All Levels', 'pmpro');?></option>
|
217 |
+
<?php
|
218 |
+
$levels = $wpdb->get_results("SELECT id, name FROM $wpdb->pmpro_membership_levels ORDER BY name");
|
219 |
+
foreach($levels as $level)
|
220 |
+
{
|
221 |
+
?>
|
222 |
+
<option value="<?php echo $level->id?>" <?php if($l == $level->id) { ?>selected="selected"<?php } ?>><?php echo $level->name?></option>
|
223 |
+
<?php
|
224 |
+
}
|
225 |
+
?>
|
226 |
+
</select>
|
227 |
+
|
228 |
+
<input type="hidden" name="page" value="pmpro-reports" />
|
229 |
+
<input type="hidden" name="report" value="sales" />
|
230 |
+
<input type="submit" value="<?php _ex('Generate Report', 'Submit button value.', 'pmpro');?>" />
|
231 |
+
</li>
|
232 |
+
</ul>
|
233 |
|
234 |
<div id="chart_div" style="clear: both; width: 100%; height: 500px;"></div>
|
235 |
|
284 |
vAxis: {color: 'green', titleTextStyle: {color: '#51a351'}},
|
285 |
};
|
286 |
|
|
|
287 |
var formatter = new google.visualization.NumberFormat({prefix: '<?php echo html_entity_decode($pmpro_currency_symbol);?>'});
|
288 |
formatter.format(data, 1);
|
|
|
289 |
|
290 |
var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));
|
291 |
chart.draw(data, options);
|
308 |
if(!empty($cache) && !empty($cache[$period]) && !empty($cache[$period][$levels]))
|
309 |
return $cache[$period][$levels];
|
310 |
|
311 |
+
//a sale is an order with status NOT IN('refunded', 'review', 'token')
|
312 |
if($period == "today")
|
313 |
$startdate = date("Y-m-d");
|
314 |
elseif($period == "this month")
|
322 |
|
323 |
//build query
|
324 |
global $wpdb;
|
325 |
+
$sqlQuery = "SELECT COUNT(*) FROM $wpdb->pmpro_membership_orders WHERE status NOT IN('refunded', 'review', 'token') AND timestamp >= '" . $startdate . "' AND gateway_environment = '" . $wpdb->escape($gateway_environment) . "' ";
|
326 |
|
327 |
//restrict by level
|
328 |
if(!empty($levels))
|
351 |
if(!empty($cache) && !empty($cache[$period]) && !empty($cache[$period][$levels]))
|
352 |
return $cache[$period][$levels];
|
353 |
|
354 |
+
//a sale is an order with status NOT IN('refunded', 'review', 'token')
|
355 |
if($period == "today")
|
356 |
$startdate = date("Y-m-d");
|
357 |
elseif($period == "this month")
|
365 |
|
366 |
//build query
|
367 |
global $wpdb;
|
368 |
+
$sqlQuery = "SELECT SUM(total) FROM $wpdb->pmpro_membership_orders WHERE status NOT IN('refunded', 'review', 'token') AND timestamp >= '" . $startdate . "' AND gateway_environment = '" . $wpdb->escape($gateway_environment) . "' ";
|
369 |
|
370 |
//restrict by level
|
371 |
if(!empty($levels))
|
classes/class.memberorder.php
CHANGED
@@ -109,7 +109,7 @@
|
|
109 |
|
110 |
//which one to load?
|
111 |
$classname = "PMProGateway"; //default test gateway
|
112 |
-
if(!empty($this->gateway)
|
113 |
$classname .= "_" . $this->gateway; //adding the gateway suffix
|
114 |
|
115 |
//try to load it
|
@@ -125,7 +125,7 @@
|
|
125 |
return $this->Gateway;
|
126 |
}
|
127 |
|
128 |
-
function getLastMemberOrder($user_id = NULL, $status = 'success'
|
129 |
{
|
130 |
global $current_user, $wpdb;
|
131 |
if(!$user_id)
|
@@ -139,10 +139,7 @@
|
|
139 |
if(!empty($status) && is_array($status))
|
140 |
$this->sqlQuery .= "AND status IN('" . implode("','", $status) . "') ";
|
141 |
elseif(!empty($status))
|
142 |
-
$this->sqlQuery .= "AND status = '" .
|
143 |
-
|
144 |
-
if(!empty($membership_id))
|
145 |
-
$this->sqlQuery .= "AND membership_id = '" . $membership_id . "' ";
|
146 |
$this->sqlQuery .= "ORDER BY timestamp DESC LIMIT 1";
|
147 |
|
148 |
//get id
|
@@ -151,9 +148,6 @@
|
|
151 |
return $this->getMemberOrderByID($id);
|
152 |
}
|
153 |
|
154 |
-
/*
|
155 |
-
Returns the order using the given order code.
|
156 |
-
*/
|
157 |
function getMemberOrderByCode($code)
|
158 |
{
|
159 |
global $wpdb;
|
@@ -164,17 +158,10 @@
|
|
164 |
return false;
|
165 |
}
|
166 |
|
167 |
-
/*
|
168 |
-
Returns the last order using the given payment_transaction_id.
|
169 |
-
*/
|
170 |
function getMemberOrderByPaymentTransactionID($payment_transaction_id)
|
171 |
{
|
172 |
-
//did they pass a trans id?
|
173 |
-
if(empty($payment_transaction_id))
|
174 |
-
return false;
|
175 |
-
|
176 |
global $wpdb;
|
177 |
-
$id = $wpdb->get_var("SELECT id FROM $wpdb->pmpro_membership_orders WHERE payment_transaction_id = '" .
|
178 |
if($id)
|
179 |
return $this->getMemberOrderByID($id);
|
180 |
else
|
@@ -191,7 +178,7 @@
|
|
191 |
return false;
|
192 |
|
193 |
global $wpdb;
|
194 |
-
$id = $wpdb->get_var("SELECT id FROM $wpdb->pmpro_membership_orders WHERE subscription_transaction_id = '" .
|
195 |
|
196 |
if($id)
|
197 |
return $this->getMemberOrderByID($id);
|
@@ -217,9 +204,6 @@
|
|
217 |
global $wpdb;
|
218 |
$this->discount_code = $wpdb->get_row("SELECT dc.* FROM $wpdb->pmpro_discount_codes dc LEFT JOIN $wpdb->pmpro_discount_codes_uses dcu ON dc.id = dcu.code_id WHERE dcu.order_id = '" . $this->id . "' LIMIT 1");
|
219 |
|
220 |
-
//filter @since v1.7.14
|
221 |
-
$this->discount_code = apply_filters("pmpro_order_discount_code", $this->discount_code, $this);
|
222 |
-
|
223 |
return $this->discount_code;
|
224 |
}
|
225 |
|
@@ -255,13 +239,7 @@
|
|
255 |
//okay, do I have a discount code to check? (if there is no membership_level->membership_id value, that means there was no entry in memberships_users)
|
256 |
if(!empty($this->discount_code) && empty($this->membership_level->membership_id))
|
257 |
{
|
258 |
-
|
259 |
-
$discount_code = $this->discount_code->code;
|
260 |
-
else
|
261 |
-
$discount_code = $this->discount_code;
|
262 |
-
|
263 |
-
$sqlQuery = "SELECT l.id, cl.*, l.name, l.description, l.allow_signups FROM $wpdb->pmpro_discount_codes_levels cl LEFT JOIN $wpdb->pmpro_membership_levels l ON cl.level_id = l.id LEFT JOIN $wpdb->pmpro_discount_codes dc ON dc.id = cl.code_id WHERE dc.code = '" . $discount_code . "' AND cl.level_id = '" . $this->membership_id . "' LIMIT 1";
|
264 |
-
|
265 |
$this->membership_level = $wpdb->get_row($sqlQuery);
|
266 |
}
|
267 |
|
@@ -287,7 +265,7 @@
|
|
287 |
if($tax_state && $tax_rate)
|
288 |
{
|
289 |
//we have values, is this order in the tax state?
|
290 |
-
if(
|
291 |
{
|
292 |
//return value, pass through filter
|
293 |
$tax = round((float)$price * (float)$tax_rate, 2);
|
@@ -375,11 +353,10 @@
|
|
375 |
//these fix some warnings/notices
|
376 |
if(empty($this->billing))
|
377 |
{
|
378 |
-
$this->billing = new stdClass();
|
379 |
$this->billing->name = $this->billing->street = $this->billing->city = $this->billing->state = $this->billing->zip = $this->billing->country = $this->billing->phone = "";
|
380 |
}
|
381 |
if(empty($this->user_id))
|
382 |
-
$this->user_id =
|
383 |
if(empty($this->paypal_token))
|
384 |
$this->paypal_token = "";
|
385 |
if(empty($this->couponamount))
|
@@ -395,15 +372,7 @@
|
|
395 |
if(empty($this->affiliate_subid))
|
396 |
$this->affiliate_subid = "";
|
397 |
if(empty($this->session_id))
|
398 |
-
$this->session_id = "";
|
399 |
-
if(empty($this->accountnumber))
|
400 |
-
$this->accountnumber = "";
|
401 |
-
if(empty($this->cardtype))
|
402 |
-
$this->cardtype = "";
|
403 |
-
if(empty($this->ExpirationDate))
|
404 |
-
$this->ExpirationDate = "";
|
405 |
-
if (empty($this->status))
|
406 |
-
$this->status = "";
|
407 |
|
408 |
if(empty($this->gateway))
|
409 |
$this->gateway = pmpro_getOption("gateway");
|
@@ -423,20 +392,20 @@
|
|
423 |
$this->sqlQuery = "UPDATE $wpdb->pmpro_membership_orders
|
424 |
SET `code` = '" . $this->code . "',
|
425 |
`session_id` = '" . $this->session_id . "',
|
426 |
-
`user_id` = " .
|
427 |
-
`membership_id` = " .
|
428 |
`paypal_token` = '" . $this->paypal_token . "',
|
429 |
-
`billing_name` = '" .
|
430 |
-
`billing_street` = '" .
|
431 |
-
`billing_city` = '" .
|
432 |
-
`billing_state` = '" .
|
433 |
-
`billing_zip` = '" .
|
434 |
-
`billing_country` = '" .
|
435 |
-
`billing_phone` = '" .
|
436 |
`subtotal` = '" . $this->subtotal . "',
|
437 |
`tax` = '" . $this->tax . "',
|
438 |
`couponamount` = '" . $this->couponamount . "',
|
439 |
-
`certificate_id` = " .
|
440 |
`certificateamount` = '" . $this->certificateamount . "',
|
441 |
`total` = '" . $this->total . "',
|
442 |
`payment_type` = '" . $this->payment_type . "',
|
@@ -444,14 +413,14 @@
|
|
444 |
`accountnumber` = '" . $this->accountnumber . "',
|
445 |
`expirationmonth` = '" . $this->expirationmonth . "',
|
446 |
`expirationyear` = '" . $this->expirationyear . "',
|
447 |
-
`status` = '" .
|
448 |
`gateway` = '" . $this->gateway . "',
|
449 |
`gateway_environment` = '" . $this->gateway_environment . "',
|
450 |
-
`payment_transaction_id` = '" .
|
451 |
-
`subscription_transaction_id` = '" .
|
452 |
-
`affiliate_id` = '" .
|
453 |
-
`affiliate_subid` = '" .
|
454 |
-
`notes` = '" .
|
455 |
WHERE id = '" . $this->id . "'
|
456 |
LIMIT 1";
|
457 |
}
|
@@ -465,20 +434,20 @@
|
|
465 |
(`code`, `session_id`, `user_id`, `membership_id`, `paypal_token`, `billing_name`, `billing_street`, `billing_city`, `billing_state`, `billing_zip`, `billing_country`, `billing_phone`, `subtotal`, `tax`, `couponamount`, `certificate_id`, `certificateamount`, `total`, `payment_type`, `cardtype`, `accountnumber`, `expirationmonth`, `expirationyear`, `status`, `gateway`, `gateway_environment`, `payment_transaction_id`, `subscription_transaction_id`, `timestamp`, `affiliate_id`, `affiliate_subid`, `notes`)
|
466 |
VALUES('" . $this->code . "',
|
467 |
'" . session_id() . "',
|
468 |
-
" .
|
469 |
-
" .
|
470 |
'" . $this->paypal_token . "',
|
471 |
-
'" .
|
472 |
-
'" .
|
473 |
-
'" .
|
474 |
-
'" .
|
475 |
-
'" .
|
476 |
-
'" .
|
477 |
'" . cleanPhone($this->billing->phone) . "',
|
478 |
'" . $amount . "',
|
479 |
'" . $tax . "',
|
480 |
'" . $this->couponamount. "',
|
481 |
-
" . intval($this->certificate_id) . ",
|
482 |
'" . $this->certificateamount . "',
|
483 |
'" . $total . "',
|
484 |
'" . $this->payment_type . "',
|
@@ -486,15 +455,15 @@
|
|
486 |
'" . hideCardNumber($this->accountnumber, false) . "',
|
487 |
'" . substr($this->ExpirationDate, 0, 2) . "',
|
488 |
'" . substr($this->ExpirationDate, 2, 4) . "',
|
489 |
-
'" .
|
490 |
'" . $this->gateway . "',
|
491 |
'" . $this->gateway_environment . "',
|
492 |
-
'" .
|
493 |
-
'" .
|
494 |
-
|
495 |
-
'" .
|
496 |
-
'" .
|
497 |
-
'" .
|
498 |
)";
|
499 |
}
|
500 |
|
@@ -518,7 +487,7 @@
|
|
518 |
|
519 |
while(empty($code))
|
520 |
{
|
521 |
-
$scramble = md5(AUTH_KEY .
|
522 |
$code = substr($scramble, 0, 10);
|
523 |
$code = apply_filters("pmpro_random_code", $code, $this); //filter
|
524 |
$check = $wpdb->get_var("SELECT id FROM $wpdb->pmpro_membership_orders WHERE code = '$code' LIMIT 1");
|
@@ -537,7 +506,7 @@
|
|
537 |
return false;
|
538 |
|
539 |
$this->status = $newstatus;
|
540 |
-
$this->sqlQuery = "UPDATE $wpdb->pmpro_membership_orders SET status = '" .
|
541 |
if($wpdb->query($this->sqlQuery) !== false)
|
542 |
return true;
|
543 |
else
|
@@ -550,7 +519,7 @@
|
|
550 |
}
|
551 |
|
552 |
function cancel()
|
553 |
-
{
|
554 |
//only need to cancel on the gateway if there is a subscription id
|
555 |
if(empty($this->subscription_transaction_id))
|
556 |
{
|
@@ -559,28 +528,9 @@
|
|
559 |
return true;
|
560 |
}
|
561 |
else
|
562 |
-
{
|
563 |
//cancel the gateway subscription first
|
564 |
-
|
565 |
-
if($result == false)
|
566 |
-
{
|
567 |
-
//there was an error, but cancel the order no matter what
|
568 |
-
$this->updateStatus("cancelled");
|
569 |
-
|
570 |
-
//we should probably notify the admin
|
571 |
-
$pmproemail = new PMProEmail();
|
572 |
-
$pmproemail->template = "subscription_cancel_error";
|
573 |
-
$pmproemail->data = array("body"=>"<p>" . sprintf(__("There was an error canceling the subscription for user with ID=%s. You will want to check your payment gateway to see if their subscription is still active.", "pmpro"), strval($this->user_id)) . "</p><p>Error: " . $this->error . "</p>");
|
574 |
-
$pmproemail->data["body"] .= "<p>Associated Order:<br />" . nl2br(var_export($this, true)) . "</p>";
|
575 |
-
$pmproemail->sendEmail(get_bloginfo("admin_email"));
|
576 |
-
|
577 |
-
return false;
|
578 |
-
}
|
579 |
-
else
|
580 |
-
{
|
581 |
-
//would have been cancelled by the gateway class
|
582 |
-
return $result;
|
583 |
-
}
|
584 |
}
|
585 |
}
|
586 |
|
@@ -589,16 +539,6 @@
|
|
589 |
return $this->Gateway->update($this);
|
590 |
}
|
591 |
|
592 |
-
function getGatewaySubscriptionStatus()
|
593 |
-
{
|
594 |
-
return $this->Gateway->getSubscriptionStatus($this);
|
595 |
-
}
|
596 |
-
|
597 |
-
function getGatewayTransactionStatus()
|
598 |
-
{
|
599 |
-
return $this->Gateway->getTransactionStatus($this);
|
600 |
-
}
|
601 |
-
|
602 |
function deleteMe()
|
603 |
{
|
604 |
if(empty($this->id))
|
109 |
|
110 |
//which one to load?
|
111 |
$classname = "PMProGateway"; //default test gateway
|
112 |
+
if(!empty($this->gateway))
|
113 |
$classname .= "_" . $this->gateway; //adding the gateway suffix
|
114 |
|
115 |
//try to load it
|
125 |
return $this->Gateway;
|
126 |
}
|
127 |
|
128 |
+
function getLastMemberOrder($user_id = NULL, $status = 'success')
|
129 |
{
|
130 |
global $current_user, $wpdb;
|
131 |
if(!$user_id)
|
139 |
if(!empty($status) && is_array($status))
|
140 |
$this->sqlQuery .= "AND status IN('" . implode("','", $status) . "') ";
|
141 |
elseif(!empty($status))
|
142 |
+
$this->sqlQuery .= "AND status = '" . $wpdb->escape($status) . "' ";
|
|
|
|
|
|
|
143 |
$this->sqlQuery .= "ORDER BY timestamp DESC LIMIT 1";
|
144 |
|
145 |
//get id
|
148 |
return $this->getMemberOrderByID($id);
|
149 |
}
|
150 |
|
|
|
|
|
|
|
151 |
function getMemberOrderByCode($code)
|
152 |
{
|
153 |
global $wpdb;
|
158 |
return false;
|
159 |
}
|
160 |
|
|
|
|
|
|
|
161 |
function getMemberOrderByPaymentTransactionID($payment_transaction_id)
|
162 |
{
|
|
|
|
|
|
|
|
|
163 |
global $wpdb;
|
164 |
+
$id = $wpdb->get_var("SELECT id FROM $wpdb->pmpro_membership_orders WHERE payment_transaction_id = '" . $wpdb->escape($payment_transaction_id) . "' LIMIT 1");
|
165 |
if($id)
|
166 |
return $this->getMemberOrderByID($id);
|
167 |
else
|
178 |
return false;
|
179 |
|
180 |
global $wpdb;
|
181 |
+
$id = $wpdb->get_var("SELECT id FROM $wpdb->pmpro_membership_orders WHERE subscription_transaction_id = '" . $wpdb->escape($subscription_transaction_id) . "' ORDER BY id DESC LIMIT 1");
|
182 |
|
183 |
if($id)
|
184 |
return $this->getMemberOrderByID($id);
|
204 |
global $wpdb;
|
205 |
$this->discount_code = $wpdb->get_row("SELECT dc.* FROM $wpdb->pmpro_discount_codes dc LEFT JOIN $wpdb->pmpro_discount_codes_uses dcu ON dc.id = dcu.code_id WHERE dcu.order_id = '" . $this->id . "' LIMIT 1");
|
206 |
|
|
|
|
|
|
|
207 |
return $this->discount_code;
|
208 |
}
|
209 |
|
239 |
//okay, do I have a discount code to check? (if there is no membership_level->membership_id value, that means there was no entry in memberships_users)
|
240 |
if(!empty($this->discount_code) && empty($this->membership_level->membership_id))
|
241 |
{
|
242 |
+
$sqlQuery = "SELECT l.id, cl.*, l.name, l.description, l.allow_signups FROM $wpdb->pmpro_discount_codes_levels cl LEFT JOIN $wpdb->pmpro_membership_levels l ON cl.level_id = l.id LEFT JOIN $wpdb->pmpro_discount_codes dc ON dc.id = cl.code_id WHERE dc.code = '" . $this->discount_code . "' AND cl.level_id = '" . $this->membership_id . "' LIMIT 1";
|
|
|
|
|
|
|
|
|
|
|
|
|
243 |
$this->membership_level = $wpdb->get_row($sqlQuery);
|
244 |
}
|
245 |
|
265 |
if($tax_state && $tax_rate)
|
266 |
{
|
267 |
//we have values, is this order in the tax state?
|
268 |
+
if(trim(strtoupper($this->billing->state)) == trim(strtoupper($tax_state)))
|
269 |
{
|
270 |
//return value, pass through filter
|
271 |
$tax = round((float)$price * (float)$tax_rate, 2);
|
353 |
//these fix some warnings/notices
|
354 |
if(empty($this->billing))
|
355 |
{
|
|
|
356 |
$this->billing->name = $this->billing->street = $this->billing->city = $this->billing->state = $this->billing->zip = $this->billing->country = $this->billing->phone = "";
|
357 |
}
|
358 |
if(empty($this->user_id))
|
359 |
+
$this->user_id = "";
|
360 |
if(empty($this->paypal_token))
|
361 |
$this->paypal_token = "";
|
362 |
if(empty($this->couponamount))
|
372 |
if(empty($this->affiliate_subid))
|
373 |
$this->affiliate_subid = "";
|
374 |
if(empty($this->session_id))
|
375 |
+
$this->session_id = "";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
376 |
|
377 |
if(empty($this->gateway))
|
378 |
$this->gateway = pmpro_getOption("gateway");
|
392 |
$this->sqlQuery = "UPDATE $wpdb->pmpro_membership_orders
|
393 |
SET `code` = '" . $this->code . "',
|
394 |
`session_id` = '" . $this->session_id . "',
|
395 |
+
`user_id` = '" . $this->user_id . "',
|
396 |
+
`membership_id` = '" . $this->membership_id . "',
|
397 |
`paypal_token` = '" . $this->paypal_token . "',
|
398 |
+
`billing_name` = '" . $wpdb->escape($this->billing->name) . "',
|
399 |
+
`billing_street` = '" . $wpdb->escape($this->billing->street) . "',
|
400 |
+
`billing_city` = '" . $wpdb->escape($this->billing->city) . "',
|
401 |
+
`billing_state` = '" . $wpdb->escape($this->billing->state) . "',
|
402 |
+
`billing_zip` = '" . $wpdb->escape($this->billing->zip) . "',
|
403 |
+
`billing_country` = '" . $wpdb->escape($this->billing->country) . "',
|
404 |
+
`billing_phone` = '" . $wpdb->escape($this->billing->phone) . "',
|
405 |
`subtotal` = '" . $this->subtotal . "',
|
406 |
`tax` = '" . $this->tax . "',
|
407 |
`couponamount` = '" . $this->couponamount . "',
|
408 |
+
`certificate_id` = '" . $this->certificate_id . "',
|
409 |
`certificateamount` = '" . $this->certificateamount . "',
|
410 |
`total` = '" . $this->total . "',
|
411 |
`payment_type` = '" . $this->payment_type . "',
|
413 |
`accountnumber` = '" . $this->accountnumber . "',
|
414 |
`expirationmonth` = '" . $this->expirationmonth . "',
|
415 |
`expirationyear` = '" . $this->expirationyear . "',
|
416 |
+
`status` = '" . $wpdb->escape($this->status) . "',
|
417 |
`gateway` = '" . $this->gateway . "',
|
418 |
`gateway_environment` = '" . $this->gateway_environment . "',
|
419 |
+
`payment_transaction_id` = '" . $wpdb->escape($this->payment_transaction_id) . "',
|
420 |
+
`subscription_transaction_id` = '" . $wpdb->escape($this->subscription_transaction_id) . "',
|
421 |
+
`affiliate_id` = '" . $wpdb->escape($this->affiliate_id) . "',
|
422 |
+
`affiliate_subid` = '" . $wpdb->escape($this->affiliate_subid) . "',
|
423 |
+
`notes` = '" . $wpdb->escape($this->notes) . "'
|
424 |
WHERE id = '" . $this->id . "'
|
425 |
LIMIT 1";
|
426 |
}
|
434 |
(`code`, `session_id`, `user_id`, `membership_id`, `paypal_token`, `billing_name`, `billing_street`, `billing_city`, `billing_state`, `billing_zip`, `billing_country`, `billing_phone`, `subtotal`, `tax`, `couponamount`, `certificate_id`, `certificateamount`, `total`, `payment_type`, `cardtype`, `accountnumber`, `expirationmonth`, `expirationyear`, `status`, `gateway`, `gateway_environment`, `payment_transaction_id`, `subscription_transaction_id`, `timestamp`, `affiliate_id`, `affiliate_subid`, `notes`)
|
435 |
VALUES('" . $this->code . "',
|
436 |
'" . session_id() . "',
|
437 |
+
'" . $this->user_id . "',
|
438 |
+
'" . $this->membership_id . "',
|
439 |
'" . $this->paypal_token . "',
|
440 |
+
'" . $wpdb->escape(trim($this->billing->name)) . "',
|
441 |
+
'" . $wpdb->escape(trim($this->billing->street)) . "',
|
442 |
+
'" . $wpdb->escape($this->billing->city) . "',
|
443 |
+
'" . $wpdb->escape($this->billing->state) . "',
|
444 |
+
'" . $wpdb->escape($this->billing->zip) . "',
|
445 |
+
'" . $wpdb->escape($this->billing->country) . "',
|
446 |
'" . cleanPhone($this->billing->phone) . "',
|
447 |
'" . $amount . "',
|
448 |
'" . $tax . "',
|
449 |
'" . $this->couponamount. "',
|
450 |
+
'" . intval($this->certificate_id) . "',
|
451 |
'" . $this->certificateamount . "',
|
452 |
'" . $total . "',
|
453 |
'" . $this->payment_type . "',
|
455 |
'" . hideCardNumber($this->accountnumber, false) . "',
|
456 |
'" . substr($this->ExpirationDate, 0, 2) . "',
|
457 |
'" . substr($this->ExpirationDate, 2, 4) . "',
|
458 |
+
'" . $wpdb->escape($this->status) . "',
|
459 |
'" . $this->gateway . "',
|
460 |
'" . $this->gateway_environment . "',
|
461 |
+
'" . $wpdb->escape($this->payment_transaction_id) . "',
|
462 |
+
'" . $wpdb->escape($this->subscription_transaction_id) . "',
|
463 |
+
now(),
|
464 |
+
'" . $wpdb->escape($this->affiliate_id) . "',
|
465 |
+
'" . $wpdb->escape($this->affiliate_subid) . "',
|
466 |
+
'" . $wpdb->escape($this->notes) . "'
|
467 |
)";
|
468 |
}
|
469 |
|
487 |
|
488 |
while(empty($code))
|
489 |
{
|
490 |
+
$scramble = md5(AUTH_KEY . time() . SECURE_AUTH_KEY);
|
491 |
$code = substr($scramble, 0, 10);
|
492 |
$code = apply_filters("pmpro_random_code", $code, $this); //filter
|
493 |
$check = $wpdb->get_var("SELECT id FROM $wpdb->pmpro_membership_orders WHERE code = '$code' LIMIT 1");
|
506 |
return false;
|
507 |
|
508 |
$this->status = $newstatus;
|
509 |
+
$this->sqlQuery = "UPDATE $wpdb->pmpro_membership_orders SET status = '" . $wpdb->escape($newstatus) . "' WHERE id = '" . $this->id . "' LIMIT 1";
|
510 |
if($wpdb->query($this->sqlQuery) !== false)
|
511 |
return true;
|
512 |
else
|
519 |
}
|
520 |
|
521 |
function cancel()
|
522 |
+
{
|
523 |
//only need to cancel on the gateway if there is a subscription id
|
524 |
if(empty($this->subscription_transaction_id))
|
525 |
{
|
528 |
return true;
|
529 |
}
|
530 |
else
|
531 |
+
{
|
532 |
//cancel the gateway subscription first
|
533 |
+
return $this->Gateway->cancel($this);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
534 |
}
|
535 |
}
|
536 |
|
539 |
return $this->Gateway->update($this);
|
540 |
}
|
541 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
542 |
function deleteMe()
|
543 |
{
|
544 |
if(empty($this->id))
|
classes/class.pmproemail.php
CHANGED
@@ -44,8 +44,6 @@
|
|
44 |
|
45 |
$this->headers = array("Content-Type: text/html");
|
46 |
|
47 |
-
$this->attachments = NULL;
|
48 |
-
|
49 |
//load the template
|
50 |
$locale = apply_filters("plugin_locale", get_locale(), "pmpro");
|
51 |
if(file_exists(get_stylesheet_directory() . "/paid-memberships-pro/email/" . $this->template . ".html"))
|
@@ -60,9 +58,7 @@
|
|
60 |
$this->body = file_get_contents(PMPRO_DIR . "/languages/" . $locale . "/" . $this->template . ".html"); //email folder in PMPro language folder
|
61 |
elseif(file_exists(PMPRO_DIR . "/email/" . $this->template . ".html"))
|
62 |
$this->body = file_get_contents(PMPRO_DIR . "/email/" . $this->template . ".html"); //default template in plugin
|
63 |
-
|
64 |
-
$this->body = $this->data['body'];
|
65 |
-
|
66 |
//header and footer
|
67 |
/* This is handled for all emails via the pmpro_send_html function in paid-memberships-pro now
|
68 |
if(file_exists(TEMPLATEPATH . "/email_header.html"))
|
@@ -100,9 +96,8 @@
|
|
100 |
$this->template = apply_filters("pmpro_email_template", $temail->template, $this);
|
101 |
$this->body = apply_filters("pmpro_email_body", $temail->body, $this);
|
102 |
$this->headers = apply_filters("pmpro_email_headers", $temail->headers, $this);
|
103 |
-
$this->attachments = apply_filters("pmpro_email_attachments", $temail->attachments, $this);
|
104 |
|
105 |
-
if(wp_mail($this->email,$this->subject,$this->body,$this->headers
|
106 |
{
|
107 |
return true;
|
108 |
}
|
@@ -147,7 +142,6 @@
|
|
147 |
$this->subject = sprintf(__("Membership for %s at %s has been CANCELLED", "pmpro"), $user->user_login, get_option("blogname"));
|
148 |
$this->template = "cancel_admin";
|
149 |
$this->data = array("user_login" => $user->user_login, "user_email" => $user->user_email, "display_name" => $user->display_name, "sitename" => get_option("blogname"), "siteemail" => pmpro_getOption("from_email"), "login_link" => wp_login_url());
|
150 |
-
$this->data['membership_id'] = $old_level_id;
|
151 |
$this->data['membership_level_name'] = $wpdb->get_var("SELECT name FROM $wpdb->pmpro_membership_levels WHERE id = '" . $old_level_id . "' LIMIT 1");
|
152 |
|
153 |
//start and end date
|
@@ -183,15 +177,14 @@
|
|
183 |
"user_login" => $user->user_login,
|
184 |
"sitename" => get_option("blogname"),
|
185 |
"siteemail" => pmpro_getOption("from_email"),
|
186 |
-
"membership_id" => $user->membership_level->id,
|
187 |
"membership_level_name" => $user->membership_level->name,
|
188 |
"membership_cost" => pmpro_getLevelCost($user->membership_level),
|
189 |
-
"login_link" =>
|
190 |
"display_name" => $user->display_name,
|
191 |
"user_email" => $user->user_email,0
|
192 |
);
|
193 |
-
|
194 |
-
if(
|
195 |
{
|
196 |
if($invoice->gateway == "paypalexpress")
|
197 |
$this->template = "checkout_express";
|
@@ -218,14 +211,6 @@
|
|
218 |
$this->data["accountnumber"] = hideCardNumber($invoice->accountnumber);
|
219 |
$this->data["expirationmonth"] = $invoice->expirationmonth;
|
220 |
$this->data["expirationyear"] = $invoice->expirationyear;
|
221 |
-
$this->data["billing_address"] = pmpro_formatAddress($invoice->billing->name,
|
222 |
-
$invoice->billing->street,
|
223 |
-
"", //address 2
|
224 |
-
$invoice->billing->city,
|
225 |
-
$invoice->billing->state,
|
226 |
-
$invoice->billing->zip,
|
227 |
-
$invoice->billing->country,
|
228 |
-
$invoice->billing->phone);
|
229 |
|
230 |
if($invoice->getDiscountCode())
|
231 |
$this->data["discount_code"] = "<p>" . __("Discount Code", "pmpro") . ": " . $invoice->discount_code->code . "</p>\n";
|
@@ -283,15 +268,14 @@
|
|
283 |
"user_login" => $user->user_login,
|
284 |
"sitename" => get_option("blogname"),
|
285 |
"siteemail" => pmpro_getOption("from_email"),
|
286 |
-
"membership_id" => $user->membership_level->id,
|
287 |
"membership_level_name" => $user->membership_level->name,
|
288 |
"membership_cost" => pmpro_getLevelCost($user->membership_level),
|
289 |
-
"login_link" =>
|
290 |
"display_name" => $user->display_name,
|
291 |
"user_email" => $user->user_email,0
|
292 |
);
|
293 |
|
294 |
-
if(
|
295 |
{
|
296 |
if($invoice->gateway == "paypalexpress")
|
297 |
$this->template = "checkout_express_admin";
|
@@ -315,14 +299,6 @@
|
|
315 |
$this->data["accountnumber"] = hideCardNumber($invoice->accountnumber);
|
316 |
$this->data["expirationmonth"] = $invoice->expirationmonth;
|
317 |
$this->data["expirationyear"] = $invoice->expirationyear;
|
318 |
-
$this->data["billing_address"] = pmpro_formatAddress($invoice->billing->name,
|
319 |
-
$invoice->billing->street,
|
320 |
-
"", //address 2
|
321 |
-
$invoice->billing->city,
|
322 |
-
$invoice->billing->state,
|
323 |
-
$invoice->billing->zip,
|
324 |
-
$invoice->billing->country,
|
325 |
-
$invoice->billing->phone);
|
326 |
|
327 |
if($invoice->getDiscountCode())
|
328 |
$this->data["discount_code"] = "<p>" . __("Discount Code", "pmpro") . ": " . $invoice->discount_code->code . "</p>\n";
|
@@ -342,7 +318,7 @@
|
|
342 |
{
|
343 |
$this->template = "checkout_freetrial_admin";
|
344 |
$this->data["discount_code"] = "";
|
345 |
-
}
|
346 |
|
347 |
$enddate = $wpdb->get_var("SELECT UNIX_TIMESTAMP(enddate) FROM $wpdb->pmpro_memberships_users WHERE user_id = '" . $user->ID . "' AND status = 'active' LIMIT 1");
|
348 |
if($enddate)
|
@@ -372,7 +348,6 @@
|
|
372 |
"user_login" => $user->user_login,
|
373 |
"sitename" => get_option("blogname"),
|
374 |
"siteemail" => pmpro_getOption("from_email"),
|
375 |
-
"membership_id" => $user->membership_level->id,
|
376 |
"membership_level_name" => $user->membership_level->name,
|
377 |
"display_name" => $user->display_name,
|
378 |
"user_email" => $user->user_email,
|
@@ -387,16 +362,8 @@
|
|
387 |
"accountnumber" => hideCardNumber($invoice->accountnumber),
|
388 |
"expirationmonth" => $invoice->expirationmonth,
|
389 |
"expirationyear" => $invoice->expirationyear,
|
390 |
-
"login_link" =>
|
391 |
);
|
392 |
-
$this->data["billing_address"] = pmpro_formatAddress($invoice->billing->name,
|
393 |
-
$invoice->billing->street,
|
394 |
-
"", //address 2
|
395 |
-
$invoice->billing->city,
|
396 |
-
$invoice->billing->state,
|
397 |
-
$invoice->billing->zip,
|
398 |
-
$invoice->billing->country,
|
399 |
-
$invoice->billing->phone);
|
400 |
|
401 |
return $this->sendEmail();
|
402 |
}
|
@@ -425,7 +392,6 @@
|
|
425 |
"user_login" => $user->user_login,
|
426 |
"sitename" => get_option("blogname"),
|
427 |
"siteemail" => pmpro_getOption("from_email"),
|
428 |
-
"membership_id" => $user->membership_level->id,
|
429 |
"membership_level_name" => $user->membership_level->name,
|
430 |
"display_name" => $user->display_name,
|
431 |
"user_email" => $user->user_email,
|
@@ -442,14 +408,6 @@
|
|
442 |
"expirationyear" => $invoice->expirationyear,
|
443 |
"login_link" => wp_login_url()
|
444 |
);
|
445 |
-
$this->data["billing_address"] = pmpro_formatAddress($invoice->billing->name,
|
446 |
-
$invoice->billing->street,
|
447 |
-
"", //address 2
|
448 |
-
$invoice->billing->city,
|
449 |
-
$invoice->billing->state,
|
450 |
-
$invoice->billing->zip,
|
451 |
-
$invoice->billing->country,
|
452 |
-
$invoice->billing->phone);
|
453 |
|
454 |
return $this->sendEmail();
|
455 |
}
|
@@ -473,7 +431,6 @@
|
|
473 |
"user_login" => $user->user_login,
|
474 |
"sitename" => get_option("blogname"),
|
475 |
"siteemail" => pmpro_getOption("from_email"),
|
476 |
-
"membership_id" => $user->membership_level->id,
|
477 |
"membership_level_name" => $user->membership_level->name,
|
478 |
"display_name" => $user->display_name,
|
479 |
"user_email" => $user->user_email,
|
@@ -488,16 +445,8 @@
|
|
488 |
"accountnumber" => hideCardNumber($invoice->accountnumber),
|
489 |
"expirationmonth" => $invoice->expirationmonth,
|
490 |
"expirationyear" => $invoice->expirationyear,
|
491 |
-
"login_link" =>
|
492 |
);
|
493 |
-
$this->data["billing_address"] = pmpro_formatAddress($invoice->billing->name,
|
494 |
-
$invoice->billing->street,
|
495 |
-
"", //address 2
|
496 |
-
$invoice->billing->city,
|
497 |
-
$invoice->billing->state,
|
498 |
-
$invoice->billing->zip,
|
499 |
-
$invoice->billing->country,
|
500 |
-
$invoice->billing->phone);
|
501 |
|
502 |
return $this->sendEmail();
|
503 |
}
|
@@ -519,7 +468,6 @@
|
|
519 |
"user_login" => $user->user_login,
|
520 |
"sitename" => get_option("blogname"),
|
521 |
"siteemail" => pmpro_getOption("from_email"),
|
522 |
-
"membership_id" => $user->membership_level->id,
|
523 |
"membership_level_name" => $user->membership_level->name,
|
524 |
"display_name" => $user->display_name,
|
525 |
"user_email" => $user->user_email,
|
@@ -534,16 +482,9 @@
|
|
534 |
"accountnumber" => hideCardNumber($invoice->accountnumber),
|
535 |
"expirationmonth" => $invoice->expirationmonth,
|
536 |
"expirationyear" => $invoice->expirationyear,
|
537 |
-
"login_link" =>
|
538 |
);
|
539 |
-
|
540 |
-
$invoice->billing->street,
|
541 |
-
"", //address 2
|
542 |
-
$invoice->billing->city,
|
543 |
-
$invoice->billing->state,
|
544 |
-
$invoice->billing->zip,
|
545 |
-
$invoice->billing->country,
|
546 |
-
$invoice->billing->phone);
|
547 |
return $this->sendEmail();
|
548 |
}
|
549 |
|
@@ -566,7 +507,6 @@
|
|
566 |
"user_login" => $user->user_login,
|
567 |
"sitename" => get_option("blogname"),
|
568 |
"siteemail" => pmpro_getOption("from_email"),
|
569 |
-
"membership_id" => $user->membership_level->id,
|
570 |
"membership_level_name" => $user->membership_level->name,
|
571 |
"display_name" => $user->display_name,
|
572 |
"user_email" => $user->user_email,
|
@@ -581,16 +521,8 @@
|
|
581 |
"accountnumber" => hideCardNumber($invoice->accountnumber),
|
582 |
"expirationmonth" => $invoice->expirationmonth,
|
583 |
"expirationyear" => $invoice->expirationyear,
|
584 |
-
"login_link" =>
|
585 |
);
|
586 |
-
$this->data["billing_address"] = pmpro_formatAddress($invoice->billing->name,
|
587 |
-
$invoice->billing->street,
|
588 |
-
"", //address 2
|
589 |
-
$invoice->billing->city,
|
590 |
-
$invoice->billing->state,
|
591 |
-
$invoice->billing->zip,
|
592 |
-
$invoice->billing->country,
|
593 |
-
$invoice->billing->phone);
|
594 |
|
595 |
return $this->sendEmail();
|
596 |
}
|
@@ -614,11 +546,10 @@
|
|
614 |
"user_login" => $user->user_login,
|
615 |
"sitename" => get_option("blogname"),
|
616 |
"siteemail" => pmpro_getOption("from_email"),
|
617 |
-
"membership_id" => $user->membership_level->id,
|
618 |
"membership_level_name" => $user->membership_level->name,
|
619 |
"display_name" => $user->display_name,
|
620 |
"user_email" => $user->user_email,
|
621 |
-
"invoice_id" => $invoice->
|
622 |
"invoice_total" => $pmpro_currency_symbol . number_format($invoice->total, 2),
|
623 |
"invoice_date" => date(get_option('date_format'), $invoice->timestamp),
|
624 |
"billing_name" => $invoice->billing->name,
|
@@ -632,17 +563,9 @@
|
|
632 |
"accountnumber" => hideCardNumber($invoice->accountnumber),
|
633 |
"expirationmonth" => $invoice->expirationmonth,
|
634 |
"expirationyear" => $invoice->expirationyear,
|
635 |
-
"login_link" =>
|
636 |
-
"invoice_link" =>
|
637 |
-
)
|
638 |
-
$this->data["billing_address"] = pmpro_formatAddress($invoice->billing->name,
|
639 |
-
$invoice->billing->street,
|
640 |
-
"", //address 2
|
641 |
-
$invoice->billing->city,
|
642 |
-
$invoice->billing->state,
|
643 |
-
$invoice->billing->zip,
|
644 |
-
$invoice->billing->country,
|
645 |
-
$invoice->billing->phone);
|
646 |
|
647 |
if($invoice->getDiscountCode())
|
648 |
$this->data["discount_code"] = "<p>" . __("Discount Code", "pmpro") . ": " . $invoice->discount_code . "</p>\n";
|
@@ -683,9 +606,8 @@
|
|
683 |
"name" => $user->display_name,
|
684 |
"user_login" => $user->user_login,
|
685 |
"sitename" => get_option("blogname"),
|
686 |
-
"membership_id" => $user->membership_level->id,
|
687 |
"membership_level_name" => $user->membership_level->name,
|
688 |
-
"siteemail" =>
|
689 |
"login_link" => wp_login_url(),
|
690 |
"display_name" => $user->display_name,
|
691 |
"user_email" => $user->user_email,
|
@@ -694,7 +616,7 @@
|
|
694 |
"cycle_period" => $user->membership_level->cycle_period,
|
695 |
"trial_amount" => $pmpro_currency_symbol . $user->membership_level->trial_amount,
|
696 |
"trial_limit" => $user->membership_level->trial_limit,
|
697 |
-
"trial_end" => date(get_option('date_format'), strtotime(date("m/d/Y", $user->membership_level->startdate) . " + " . $user->membership_level->trial_limit . " " . $user->membership_level->cycle_period)
|
698 |
);
|
699 |
|
700 |
return $this->sendEmail();
|
@@ -712,7 +634,7 @@
|
|
712 |
$this->email = $user->user_email;
|
713 |
$this->subject = sprintf(__("Your membership at %s has ended", "pmpro"), get_option("blogname"));
|
714 |
$this->template = "membership_expired";
|
715 |
-
$this->data = array("subject" => $this->subject, "name" => $user->display_name, "user_login" => $user->user_login, "sitename" => get_option("blogname"), "siteemail" =>
|
716 |
|
717 |
return $this->sendEmail();
|
718 |
}
|
@@ -737,7 +659,7 @@
|
|
737 |
$this->email = $user->user_email;
|
738 |
$this->subject = sprintf(__("Your membership at %s will end soon", "pmpro"), get_option("blogname"));
|
739 |
$this->template = "membership_expiring";
|
740 |
-
$this->data = array("subject" => $this->subject, "name" => $user->display_name, "user_login" => $user->user_login, "sitename" => get_option("blogname"), "
|
741 |
|
742 |
return $this->sendEmail();
|
743 |
}
|
@@ -757,9 +679,9 @@
|
|
757 |
$this->email = $user->user_email;
|
758 |
$this->subject = sprintf(__("Your membership at %s has been changed", "pmpro"), get_option("blogname"));
|
759 |
$this->template = "admin_change";
|
760 |
-
$this->data = array("subject" => $this->subject, "name" => $user->display_name, "user_login" => $user->user_login, "sitename" => get_option("blogname"), "
|
761 |
if($user->membership_level->ID)
|
762 |
-
$this->data["membership_change"] = sprintf(__("The new level is %s.", "pmpro"), $user->membership_level->name);
|
763 |
else
|
764 |
$this->data["membership_change"] = __("Your membership has been cancelled", "pmpro");
|
765 |
|
@@ -799,7 +721,7 @@
|
|
799 |
if($user->membership_level->ID)
|
800 |
$this->data["membership_change"] = sprintf(__("The new level is %s. This membership is free", "pmpro"), $user->membership_level->name);
|
801 |
else
|
802 |
-
$this->data["membership_change"] = __("
|
803 |
|
804 |
if(!empty($user->membership_level->enddate))
|
805 |
{
|
44 |
|
45 |
$this->headers = array("Content-Type: text/html");
|
46 |
|
|
|
|
|
47 |
//load the template
|
48 |
$locale = apply_filters("plugin_locale", get_locale(), "pmpro");
|
49 |
if(file_exists(get_stylesheet_directory() . "/paid-memberships-pro/email/" . $this->template . ".html"))
|
58 |
$this->body = file_get_contents(PMPRO_DIR . "/languages/" . $locale . "/" . $this->template . ".html"); //email folder in PMPro language folder
|
59 |
elseif(file_exists(PMPRO_DIR . "/email/" . $this->template . ".html"))
|
60 |
$this->body = file_get_contents(PMPRO_DIR . "/email/" . $this->template . ".html"); //default template in plugin
|
61 |
+
|
|
|
|
|
62 |
//header and footer
|
63 |
/* This is handled for all emails via the pmpro_send_html function in paid-memberships-pro now
|
64 |
if(file_exists(TEMPLATEPATH . "/email_header.html"))
|
96 |
$this->template = apply_filters("pmpro_email_template", $temail->template, $this);
|
97 |
$this->body = apply_filters("pmpro_email_body", $temail->body, $this);
|
98 |
$this->headers = apply_filters("pmpro_email_headers", $temail->headers, $this);
|
|
|
99 |
|
100 |
+
if(wp_mail($this->email,$this->subject,$this->body,$this->headers))
|
101 |
{
|
102 |
return true;
|
103 |
}
|
142 |
$this->subject = sprintf(__("Membership for %s at %s has been CANCELLED", "pmpro"), $user->user_login, get_option("blogname"));
|
143 |
$this->template = "cancel_admin";
|
144 |
$this->data = array("user_login" => $user->user_login, "user_email" => $user->user_email, "display_name" => $user->display_name, "sitename" => get_option("blogname"), "siteemail" => pmpro_getOption("from_email"), "login_link" => wp_login_url());
|
|
|
145 |
$this->data['membership_level_name'] = $wpdb->get_var("SELECT name FROM $wpdb->pmpro_membership_levels WHERE id = '" . $old_level_id . "' LIMIT 1");
|
146 |
|
147 |
//start and end date
|
177 |
"user_login" => $user->user_login,
|
178 |
"sitename" => get_option("blogname"),
|
179 |
"siteemail" => pmpro_getOption("from_email"),
|
|
|
180 |
"membership_level_name" => $user->membership_level->name,
|
181 |
"membership_cost" => pmpro_getLevelCost($user->membership_level),
|
182 |
+
"login_link" => pmpro_url("account"),
|
183 |
"display_name" => $user->display_name,
|
184 |
"user_email" => $user->user_email,0
|
185 |
);
|
186 |
+
|
187 |
+
if($invoice)
|
188 |
{
|
189 |
if($invoice->gateway == "paypalexpress")
|
190 |
$this->template = "checkout_express";
|
211 |
$this->data["accountnumber"] = hideCardNumber($invoice->accountnumber);
|
212 |
$this->data["expirationmonth"] = $invoice->expirationmonth;
|
213 |
$this->data["expirationyear"] = $invoice->expirationyear;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
214 |
|
215 |
if($invoice->getDiscountCode())
|
216 |
$this->data["discount_code"] = "<p>" . __("Discount Code", "pmpro") . ": " . $invoice->discount_code->code . "</p>\n";
|
268 |
"user_login" => $user->user_login,
|
269 |
"sitename" => get_option("blogname"),
|
270 |
"siteemail" => pmpro_getOption("from_email"),
|
|
|
271 |
"membership_level_name" => $user->membership_level->name,
|
272 |
"membership_cost" => pmpro_getLevelCost($user->membership_level),
|
273 |
+
"login_link" => pmpro_url("account"),
|
274 |
"display_name" => $user->display_name,
|
275 |
"user_email" => $user->user_email,0
|
276 |
);
|
277 |
|
278 |
+
if($invoice)
|
279 |
{
|
280 |
if($invoice->gateway == "paypalexpress")
|
281 |
$this->template = "checkout_express_admin";
|
299 |
$this->data["accountnumber"] = hideCardNumber($invoice->accountnumber);
|
300 |
$this->data["expirationmonth"] = $invoice->expirationmonth;
|
301 |
$this->data["expirationyear"] = $invoice->expirationyear;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
302 |
|
303 |
if($invoice->getDiscountCode())
|
304 |
$this->data["discount_code"] = "<p>" . __("Discount Code", "pmpro") . ": " . $invoice->discount_code->code . "</p>\n";
|
318 |
{
|
319 |
$this->template = "checkout_freetrial_admin";
|
320 |
$this->data["discount_code"] = "";
|
321 |
+
}
|
322 |
|
323 |
$enddate = $wpdb->get_var("SELECT UNIX_TIMESTAMP(enddate) FROM $wpdb->pmpro_memberships_users WHERE user_id = '" . $user->ID . "' AND status = 'active' LIMIT 1");
|
324 |
if($enddate)
|
348 |
"user_login" => $user->user_login,
|
349 |
"sitename" => get_option("blogname"),
|
350 |
"siteemail" => pmpro_getOption("from_email"),
|
|
|
351 |
"membership_level_name" => $user->membership_level->name,
|
352 |
"display_name" => $user->display_name,
|
353 |
"user_email" => $user->user_email,
|
362 |
"accountnumber" => hideCardNumber($invoice->accountnumber),
|
363 |
"expirationmonth" => $invoice->expirationmonth,
|
364 |
"expirationyear" => $invoice->expirationyear,
|
365 |
+
"login_link" => pmpro_url("account")
|
366 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
367 |
|
368 |
return $this->sendEmail();
|
369 |
}
|
392 |
"user_login" => $user->user_login,
|
393 |
"sitename" => get_option("blogname"),
|
394 |
"siteemail" => pmpro_getOption("from_email"),
|
|
|
395 |
"membership_level_name" => $user->membership_level->name,
|
396 |
"display_name" => $user->display_name,
|
397 |
"user_email" => $user->user_email,
|
408 |
"expirationyear" => $invoice->expirationyear,
|
409 |
"login_link" => wp_login_url()
|
410 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
411 |
|
412 |
return $this->sendEmail();
|
413 |
}
|
431 |
"user_login" => $user->user_login,
|
432 |
"sitename" => get_option("blogname"),
|
433 |
"siteemail" => pmpro_getOption("from_email"),
|
|
|
434 |
"membership_level_name" => $user->membership_level->name,
|
435 |
"display_name" => $user->display_name,
|
436 |
"user_email" => $user->user_email,
|
445 |
"accountnumber" => hideCardNumber($invoice->accountnumber),
|
446 |
"expirationmonth" => $invoice->expirationmonth,
|
447 |
"expirationyear" => $invoice->expirationyear,
|
448 |
+
"login_link" => pmpro_url("billing")
|
449 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
450 |
|
451 |
return $this->sendEmail();
|
452 |
}
|
468 |
"user_login" => $user->user_login,
|
469 |
"sitename" => get_option("blogname"),
|
470 |
"siteemail" => pmpro_getOption("from_email"),
|
|
|
471 |
"membership_level_name" => $user->membership_level->name,
|
472 |
"display_name" => $user->display_name,
|
473 |
"user_email" => $user->user_email,
|
482 |
"accountnumber" => hideCardNumber($invoice->accountnumber),
|
483 |
"expirationmonth" => $invoice->expirationmonth,
|
484 |
"expirationyear" => $invoice->expirationyear,
|
485 |
+
"login_link" => pmpro_url("billing")
|
486 |
);
|
487 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
488 |
return $this->sendEmail();
|
489 |
}
|
490 |
|
507 |
"user_login" => $user->user_login,
|
508 |
"sitename" => get_option("blogname"),
|
509 |
"siteemail" => pmpro_getOption("from_email"),
|
|
|
510 |
"membership_level_name" => $user->membership_level->name,
|
511 |
"display_name" => $user->display_name,
|
512 |
"user_email" => $user->user_email,
|
521 |
"accountnumber" => hideCardNumber($invoice->accountnumber),
|
522 |
"expirationmonth" => $invoice->expirationmonth,
|
523 |
"expirationyear" => $invoice->expirationyear,
|
524 |
+
"login_link" => pmpro_url("billing")
|
525 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
526 |
|
527 |
return $this->sendEmail();
|
528 |
}
|
546 |
"user_login" => $user->user_login,
|
547 |
"sitename" => get_option("blogname"),
|
548 |
"siteemail" => pmpro_getOption("from_email"),
|
|
|
549 |
"membership_level_name" => $user->membership_level->name,
|
550 |
"display_name" => $user->display_name,
|
551 |
"user_email" => $user->user_email,
|
552 |
+
"invoice_id" => $invoice->payment_transaction_id,
|
553 |
"invoice_total" => $pmpro_currency_symbol . number_format($invoice->total, 2),
|
554 |
"invoice_date" => date(get_option('date_format'), $invoice->timestamp),
|
555 |
"billing_name" => $invoice->billing->name,
|
563 |
"accountnumber" => hideCardNumber($invoice->accountnumber),
|
564 |
"expirationmonth" => $invoice->expirationmonth,
|
565 |
"expirationyear" => $invoice->expirationyear,
|
566 |
+
"login_link" => pmpro_url("account"),
|
567 |
+
"invoice_link" => pmpro_url("invoice", "?invoice=" . $invoice->code)
|
568 |
+
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
569 |
|
570 |
if($invoice->getDiscountCode())
|
571 |
$this->data["discount_code"] = "<p>" . __("Discount Code", "pmpro") . ": " . $invoice->discount_code . "</p>\n";
|
606 |
"name" => $user->display_name,
|
607 |
"user_login" => $user->user_login,
|
608 |
"sitename" => get_option("blogname"),
|
|
|
609 |
"membership_level_name" => $user->membership_level->name,
|
610 |
+
"siteemail" => get_bloginfo("admin_email"),
|
611 |
"login_link" => wp_login_url(),
|
612 |
"display_name" => $user->display_name,
|
613 |
"user_email" => $user->user_email,
|
616 |
"cycle_period" => $user->membership_level->cycle_period,
|
617 |
"trial_amount" => $pmpro_currency_symbol . $user->membership_level->trial_amount,
|
618 |
"trial_limit" => $user->membership_level->trial_limit,
|
619 |
+
"trial_end" => date(get_option('date_format'), strtotime(date("m/d/Y", $user->membership_level->startdate) . " + " . $user->membership_level->trial_limit . " " . $user->membership_level->cycle_period))
|
620 |
);
|
621 |
|
622 |
return $this->sendEmail();
|
634 |
$this->email = $user->user_email;
|
635 |
$this->subject = sprintf(__("Your membership at %s has ended", "pmpro"), get_option("blogname"));
|
636 |
$this->template = "membership_expired";
|
637 |
+
$this->data = array("subject" => $this->subject, "name" => $user->display_name, "user_login" => $user->user_login, "sitename" => get_option("blogname"), "siteemail" => get_bloginfo("admin_email"), "login_link" => wp_login_url(), "display_name" => $user->display_name, "user_email" => $user->user_email, "levels_link" => pmpro_url("levels"));
|
638 |
|
639 |
return $this->sendEmail();
|
640 |
}
|
659 |
$this->email = $user->user_email;
|
660 |
$this->subject = sprintf(__("Your membership at %s will end soon", "pmpro"), get_option("blogname"));
|
661 |
$this->template = "membership_expiring";
|
662 |
+
$this->data = array("subject" => $this->subject, "name" => $user->display_name, "user_login" => $user->user_login, "sitename" => get_option("blogname"), "membership_level_name" => $user->membership_level->name, "siteemail" => get_bloginfo("admin_email"), "login_link" => wp_login_url(), "enddate" => date(get_option('date_format'), $user->membership_level->enddate), "display_name" => $user->display_name, "user_email" => $user->user_email);
|
663 |
|
664 |
return $this->sendEmail();
|
665 |
}
|
679 |
$this->email = $user->user_email;
|
680 |
$this->subject = sprintf(__("Your membership at %s has been changed", "pmpro"), get_option("blogname"));
|
681 |
$this->template = "admin_change";
|
682 |
+
$this->data = array("subject" => $this->subject, "name" => $user->display_name, "user_login" => $user->user_login, "sitename" => get_option("blogname"), "membership_level_name" => $user->membership_level->name, "siteemail" => get_bloginfo("admin_email"), "login_link" => wp_login_url());
|
683 |
if($user->membership_level->ID)
|
684 |
+
$this->data["membership_change"] = sprintf(__("The new level is %s. This membership is free", "pmpro"), $user->membership_level->name);
|
685 |
else
|
686 |
$this->data["membership_change"] = __("Your membership has been cancelled", "pmpro");
|
687 |
|
721 |
if($user->membership_level->ID)
|
722 |
$this->data["membership_change"] = sprintf(__("The new level is %s. This membership is free", "pmpro"), $user->membership_level->name);
|
723 |
else
|
724 |
+
$this->data["membership_change"] = __("membership has been cancelled", "pmpro");
|
725 |
|
726 |
if(!empty($user->membership_level->enddate))
|
727 |
{
|
classes/gateways/class.pmprogateway.php
CHANGED
@@ -43,7 +43,7 @@
|
|
43 |
else
|
44 |
{
|
45 |
//add a period to the start date to account for the initial payment
|
46 |
-
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $order->BillingFrequency . " " . $order->BillingPeriod
|
47 |
}
|
48 |
|
49 |
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
|
@@ -90,7 +90,7 @@
|
|
90 |
else
|
91 |
{
|
92 |
//add a period to the start date to account for the initial payment
|
93 |
-
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $this->BillingFrequency . " " . $this->BillingPeriod
|
94 |
}
|
95 |
|
96 |
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
|
@@ -174,9 +174,6 @@
|
|
174 |
//create a code for the order
|
175 |
if(empty($order->code))
|
176 |
$order->code = $order->getRandomCode();
|
177 |
-
|
178 |
-
//filter order before subscription. use with care.
|
179 |
-
$order = apply_filters("pmpro_subscribe_order", $order, $this);
|
180 |
|
181 |
//simulate a successful subscription processing
|
182 |
$order->status = "success";
|
@@ -200,21 +197,5 @@
|
|
200 |
$order->updateStatus("cancelled");
|
201 |
return true;
|
202 |
}
|
203 |
-
|
204 |
-
function getSubscriptionStatus(&$order)
|
205 |
-
{
|
206 |
-
//require a subscription id
|
207 |
-
if(empty($order->subscription_transaction_id))
|
208 |
-
return false;
|
209 |
-
|
210 |
-
//this looks different for each gateway, but generally an array of some sort
|
211 |
-
return array();
|
212 |
-
}
|
213 |
-
|
214 |
-
function getTransactionStatus(&$order)
|
215 |
-
{
|
216 |
-
//this looks different for each gateway, but generally an array of some sort
|
217 |
-
return array();
|
218 |
-
}
|
219 |
}
|
220 |
?>
|
43 |
else
|
44 |
{
|
45 |
//add a period to the start date to account for the initial payment
|
46 |
+
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $order->BillingFrequency . " " . $order->BillingPeriod)) . "T0:0:0";
|
47 |
}
|
48 |
|
49 |
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
|
90 |
else
|
91 |
{
|
92 |
//add a period to the start date to account for the initial payment
|
93 |
+
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $this->BillingFrequency . " " . $this->BillingPeriod)) . "T0:0:0";
|
94 |
}
|
95 |
|
96 |
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
|
174 |
//create a code for the order
|
175 |
if(empty($order->code))
|
176 |
$order->code = $order->getRandomCode();
|
|
|
|
|
|
|
177 |
|
178 |
//simulate a successful subscription processing
|
179 |
$order->status = "success";
|
197 |
$order->updateStatus("cancelled");
|
198 |
return true;
|
199 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
200 |
}
|
201 |
?>
|
classes/gateways/class.pmprogateway_authorizenet.php
CHANGED
@@ -43,7 +43,7 @@
|
|
43 |
else
|
44 |
{
|
45 |
//add a period to the start date to account for the initial payment
|
46 |
-
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $order->BillingFrequency . " " . $order->BillingPeriod
|
47 |
}
|
48 |
|
49 |
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
|
@@ -90,7 +90,7 @@
|
|
90 |
else
|
91 |
{
|
92 |
//add a period to the start date to account for the initial payment
|
93 |
-
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $order->BillingFrequency . " " . $order->BillingPeriod
|
94 |
}
|
95 |
|
96 |
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
|
@@ -490,7 +490,8 @@
|
|
490 |
//taxes
|
491 |
$amount_tax = $order->getTaxForPrice($amount);
|
492 |
$trial_tax = $order->getTaxForPrice($trialAmount);
|
493 |
-
|
|
|
494 |
$amount = round((float)$amount + (float)$amount_tax, 2);
|
495 |
$trialAmount = round((float)$trialAmount + (float)$trial_tax, 2);
|
496 |
|
43 |
else
|
44 |
{
|
45 |
//add a period to the start date to account for the initial payment
|
46 |
+
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $order->BillingFrequency . " " . $order->BillingPeriod)) . "T0:0:0";
|
47 |
}
|
48 |
|
49 |
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
|
90 |
else
|
91 |
{
|
92 |
//add a period to the start date to account for the initial payment
|
93 |
+
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $order->BillingFrequency . " " . $order->BillingPeriod)) . "T0:0:0";
|
94 |
}
|
95 |
|
96 |
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
|
490 |
//taxes
|
491 |
$amount_tax = $order->getTaxForPrice($amount);
|
492 |
$trial_tax = $order->getTaxForPrice($trialAmount);
|
493 |
+
|
494 |
+
$order->subtotal = $amount;
|
495 |
$amount = round((float)$amount + (float)$amount_tax, 2);
|
496 |
$trialAmount = round((float)$trialAmount + (float)$trial_tax, 2);
|
497 |
|
classes/gateways/class.pmprogateway_braintree.php
CHANGED
@@ -183,19 +183,19 @@
|
|
183 |
'expirationDate' => $order->braintree->expiration_date,
|
184 |
'cardholderName' => trim($order->FirstName . " " . $order->LastName),
|
185 |
'options' => array(
|
186 |
-
'updateExistingToken' => $
|
187 |
)
|
188 |
)
|
189 |
)
|
190 |
);
|
191 |
-
|
192 |
if($response->success)
|
193 |
{
|
194 |
-
$this->customer = $
|
195 |
}
|
196 |
else
|
197 |
{
|
198 |
-
$order->error = __("Failed to update customer.", "pmpro")
|
199 |
$order->shorterror = $order->error;
|
200 |
return false;
|
201 |
}
|
@@ -208,7 +208,7 @@
|
|
208 |
//assume no customer found
|
209 |
}
|
210 |
}
|
211 |
-
|
212 |
//no customer id, create one
|
213 |
if(!empty($order->accountnumber))
|
214 |
{
|
@@ -243,7 +243,7 @@
|
|
243 |
}
|
244 |
else
|
245 |
{
|
246 |
-
$order->error = __("Failed to create customer.", "pmpro")
|
247 |
$order->shorterror = $order->error;
|
248 |
return false;
|
249 |
}
|
@@ -275,7 +275,8 @@
|
|
275 |
|
276 |
//figure out the amounts
|
277 |
$amount = $order->PaymentAmount;
|
278 |
-
$amount_tax = $order->getTaxForPrice($amount);
|
|
|
279 |
$amount = round((float)$amount + (float)$amount_tax, 2);
|
280 |
|
281 |
/*
|
@@ -296,13 +297,13 @@
|
|
296 |
$trial_period_days = $order->BillingFrequency * 30; //assume monthly
|
297 |
|
298 |
//convert to a profile start date
|
299 |
-
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $trial_period_days . " Day"
|
300 |
|
301 |
//filter the start date
|
302 |
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
|
303 |
|
304 |
//convert back to days
|
305 |
-
$trial_period_days = ceil(abs(strtotime(date("Y-m-d")) - strtotime($order->ProfileStartDate
|
306 |
|
307 |
//now add the actual trial set by the site
|
308 |
if(!empty($order->TrialBillingCycles))
|
@@ -367,12 +368,12 @@
|
|
367 |
//we just have to run getCustomer which will look for the customer and update it with the new token
|
368 |
$this->getCustomer($order);
|
369 |
|
370 |
-
if(!empty($this->customer)
|
371 |
{
|
372 |
return true;
|
373 |
}
|
374 |
else
|
375 |
-
{
|
376 |
return false; //couldn't find the customer
|
377 |
}
|
378 |
}
|
@@ -394,7 +395,7 @@
|
|
394 |
catch(Exception $e)
|
395 |
{
|
396 |
$order->updateStatus("cancelled"); //assume it's been cancelled already
|
397 |
-
$order->error = __("Could not find the subscription.", "pmpro")
|
398 |
$order->shorterror = $order->error;
|
399 |
return false; //no subscription found
|
400 |
}
|
@@ -407,7 +408,7 @@
|
|
407 |
else
|
408 |
{
|
409 |
$order->updateStatus("cancelled"); //assume it's been cancelled already
|
410 |
-
$order->error = __("Could not find the subscription.", "pmpro")
|
411 |
$order->shorterror = $order->error;
|
412 |
return false; //no subscription found
|
413 |
}
|
183 |
'expirationDate' => $order->braintree->expiration_date,
|
184 |
'cardholderName' => trim($order->FirstName . " " . $order->LastName),
|
185 |
'options' => array(
|
186 |
+
'updateExistingToken' => $customer_id
|
187 |
)
|
188 |
)
|
189 |
)
|
190 |
);
|
191 |
+
|
192 |
if($response->success)
|
193 |
{
|
194 |
+
$this->customer = $result->customer;
|
195 |
}
|
196 |
else
|
197 |
{
|
198 |
+
$order->error = __("Failed to update customer.", "pmpro");
|
199 |
$order->shorterror = $order->error;
|
200 |
return false;
|
201 |
}
|
208 |
//assume no customer found
|
209 |
}
|
210 |
}
|
211 |
+
|
212 |
//no customer id, create one
|
213 |
if(!empty($order->accountnumber))
|
214 |
{
|
243 |
}
|
244 |
else
|
245 |
{
|
246 |
+
$order->error = __("Failed to create customer.", "pmpro");
|
247 |
$order->shorterror = $order->error;
|
248 |
return false;
|
249 |
}
|
275 |
|
276 |
//figure out the amounts
|
277 |
$amount = $order->PaymentAmount;
|
278 |
+
$amount_tax = $order->getTaxForPrice($amount);
|
279 |
+
$order->subtotal = $amount;
|
280 |
$amount = round((float)$amount + (float)$amount_tax, 2);
|
281 |
|
282 |
/*
|
297 |
$trial_period_days = $order->BillingFrequency * 30; //assume monthly
|
298 |
|
299 |
//convert to a profile start date
|
300 |
+
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $trial_period_days . " Day")) . "T0:0:0";
|
301 |
|
302 |
//filter the start date
|
303 |
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
|
304 |
|
305 |
//convert back to days
|
306 |
+
$trial_period_days = ceil(abs(strtotime(date("Y-m-d")) - strtotime($order->ProfileStartDate)) / 86400);
|
307 |
|
308 |
//now add the actual trial set by the site
|
309 |
if(!empty($order->TrialBillingCycles))
|
368 |
//we just have to run getCustomer which will look for the customer and update it with the new token
|
369 |
$this->getCustomer($order);
|
370 |
|
371 |
+
if(!empty($this->customer))
|
372 |
{
|
373 |
return true;
|
374 |
}
|
375 |
else
|
376 |
+
{
|
377 |
return false; //couldn't find the customer
|
378 |
}
|
379 |
}
|
395 |
catch(Exception $e)
|
396 |
{
|
397 |
$order->updateStatus("cancelled"); //assume it's been cancelled already
|
398 |
+
$order->error = __("Could not find the subscription.", "pmpro");
|
399 |
$order->shorterror = $order->error;
|
400 |
return false; //no subscription found
|
401 |
}
|
408 |
else
|
409 |
{
|
410 |
$order->updateStatus("cancelled"); //assume it's been cancelled already
|
411 |
+
$order->error = __("Could not find the subscription.", "pmpro");
|
412 |
$order->shorterror = $order->error;
|
413 |
return false; //no subscription found
|
414 |
}
|
classes/gateways/class.pmprogateway_check.php
CHANGED
@@ -48,7 +48,7 @@
|
|
48 |
else
|
49 |
{
|
50 |
//add a period to the start date to account for the initial payment
|
51 |
-
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $order->BillingFrequency . " " . $order->BillingPeriod
|
52 |
}
|
53 |
|
54 |
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
|
@@ -95,7 +95,7 @@
|
|
95 |
else
|
96 |
{
|
97 |
//add a period to the start date to account for the initial payment
|
98 |
-
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $this->BillingFrequency . " " . $this->BillingPeriod
|
99 |
}
|
100 |
|
101 |
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
|
48 |
else
|
49 |
{
|
50 |
//add a period to the start date to account for the initial payment
|
51 |
+
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $order->BillingFrequency . " " . $order->BillingPeriod)) . "T0:0:0";
|
52 |
}
|
53 |
|
54 |
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
|
95 |
else
|
96 |
{
|
97 |
//add a period to the start date to account for the initial payment
|
98 |
+
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $this->BillingFrequency . " " . $this->BillingPeriod)) . "T0:0:0";
|
99 |
}
|
100 |
|
101 |
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
|
classes/gateways/class.pmprogateway_cybersource.php
DELETED
@@ -1,765 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
require_once(dirname(__FILE__) . "/class.pmprogateway.php");
|
3 |
-
if(!class_exists("CyberSourceSoapClient"))
|
4 |
-
require_once(dirname(__FILE__) . "/../../includes/lib/CyberSource/cyber_source_soap_client.php");
|
5 |
-
class PMProGateway_cybersource
|
6 |
-
{
|
7 |
-
function PMProGateway_cybersource($gateway = NULL)
|
8 |
-
{
|
9 |
-
$this->gateway = $gateway;
|
10 |
-
return $this->gateway;
|
11 |
-
}
|
12 |
-
|
13 |
-
function process(&$order)
|
14 |
-
{
|
15 |
-
//check for initial payment
|
16 |
-
if(floatval($order->InitialPayment) == 0)
|
17 |
-
{
|
18 |
-
//auth first, then process
|
19 |
-
if($this->authorize($order))
|
20 |
-
{
|
21 |
-
$this->void($order);
|
22 |
-
if(!pmpro_isLevelTrial($order->membership_level))
|
23 |
-
{
|
24 |
-
//subscription will start today with a 1 period trial
|
25 |
-
$order->ProfileStartDate = date("Y-m-d") . "T0:0:0";
|
26 |
-
$order->TrialBillingPeriod = $order->BillingPeriod;
|
27 |
-
$order->TrialBillingFrequency = $order->BillingFrequency;
|
28 |
-
$order->TrialBillingCycles = 1;
|
29 |
-
$order->TrialAmount = 0;
|
30 |
-
|
31 |
-
//add a billing cycle to make up for the trial, if applicable
|
32 |
-
if(!empty($order->TotalBillingCycles))
|
33 |
-
$order->TotalBillingCycles++;
|
34 |
-
}
|
35 |
-
elseif($order->InitialPayment == 0 && $order->TrialAmount == 0)
|
36 |
-
{
|
37 |
-
//it has a trial, but the amount is the same as the initial payment, so we can squeeze it in there
|
38 |
-
$order->ProfileStartDate = date("Y-m-d") . "T0:0:0";
|
39 |
-
$order->TrialBillingCycles++;
|
40 |
-
|
41 |
-
//add a billing cycle to make up for the trial, if applicable
|
42 |
-
if($order->TotalBillingCycles)
|
43 |
-
$order->TotalBillingCycles++;
|
44 |
-
}
|
45 |
-
else
|
46 |
-
{
|
47 |
-
//add a period to the start date to account for the initial payment
|
48 |
-
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $order->BillingFrequency . " " . $order->BillingPeriod, current_time("timestamp"))) . "T0:0:0";
|
49 |
-
}
|
50 |
-
|
51 |
-
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
|
52 |
-
return $this->subscribe($order);
|
53 |
-
}
|
54 |
-
else
|
55 |
-
{
|
56 |
-
if(empty($order->error))
|
57 |
-
$order->error = __("Unknown error: Authorization failed.", "pmpro");
|
58 |
-
return false;
|
59 |
-
}
|
60 |
-
}
|
61 |
-
else
|
62 |
-
{
|
63 |
-
//charge first payment
|
64 |
-
if($this->charge($order))
|
65 |
-
{
|
66 |
-
//setup recurring billing
|
67 |
-
if(pmpro_isLevelRecurring($order->membership_level))
|
68 |
-
{
|
69 |
-
if(!pmpro_isLevelTrial($order->membership_level))
|
70 |
-
{
|
71 |
-
//subscription will start today with a 1 period trial
|
72 |
-
$order->ProfileStartDate = date("Y-m-d") . "T0:0:0";
|
73 |
-
$order->TrialBillingPeriod = $order->BillingPeriod;
|
74 |
-
$order->TrialBillingFrequency = $order->BillingFrequency;
|
75 |
-
$order->TrialBillingCycles = 1;
|
76 |
-
$order->TrialAmount = 0;
|
77 |
-
|
78 |
-
//add a billing cycle to make up for the trial, if applicable
|
79 |
-
if(!empty($order->TotalBillingCycles))
|
80 |
-
$order->TotalBillingCycles++;
|
81 |
-
}
|
82 |
-
elseif($order->InitialPayment == 0 && $order->TrialAmount == 0)
|
83 |
-
{
|
84 |
-
//it has a trial, but the amount is the same as the initial payment, so we can squeeze it in there
|
85 |
-
$order->ProfileStartDate = date("Y-m-d") . "T0:0:0";
|
86 |
-
$order->TrialBillingCycles++;
|
87 |
-
|
88 |
-
//add a billing cycle to make up for the trial, if applicable
|
89 |
-
if(!empty($order->TotalBillingCycles))
|
90 |
-
$order->TotalBillingCycles++;
|
91 |
-
}
|
92 |
-
else
|
93 |
-
{
|
94 |
-
//add a period to the start date to account for the initial payment
|
95 |
-
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $this->BillingFrequency . " " . $this->BillingPeriod, current_time("timestamp"))) . "T0:0:0";
|
96 |
-
}
|
97 |
-
|
98 |
-
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
|
99 |
-
if($this->subscribe($order))
|
100 |
-
{
|
101 |
-
return true;
|
102 |
-
}
|
103 |
-
else
|
104 |
-
{
|
105 |
-
if($this->void($order))
|
106 |
-
{
|
107 |
-
if(!$order->error)
|
108 |
-
$order->error = __("Unknown error: Payment failed.", "pmpro");
|
109 |
-
}
|
110 |
-
else
|
111 |
-
{
|
112 |
-
if(!$order->error)
|
113 |
-
$order->error = __("Unknown error: Payment failed.", "pmpro");
|
114 |
-
|
115 |
-
$order->error .= " " . __("A partial payment was made that we could not void. Please contact the site owner immediately to correct this.", "pmpro");
|
116 |
-
}
|
117 |
-
|
118 |
-
return false;
|
119 |
-
}
|
120 |
-
}
|
121 |
-
else
|
122 |
-
{
|
123 |
-
//only a one time charge
|
124 |
-
$order->status = "success"; //saved on checkout page
|
125 |
-
return true;
|
126 |
-
}
|
127 |
-
}
|
128 |
-
else
|
129 |
-
{
|
130 |
-
if(empty($order->error))
|
131 |
-
$order->error = __("Unknown error: Payment failed.", "pmpro");
|
132 |
-
|
133 |
-
return false;
|
134 |
-
}
|
135 |
-
}
|
136 |
-
}
|
137 |
-
|
138 |
-
function getCardType($name)
|
139 |
-
{
|
140 |
-
$card_types = array(
|
141 |
-
'Visa' => '001',
|
142 |
-
'MasterCard' => '002',
|
143 |
-
'Master Card' => '002',
|
144 |
-
'AMEX' => '003',
|
145 |
-
'American Express' => '003',
|
146 |
-
'Discover' => '004',
|
147 |
-
'Diners Club' => '005',
|
148 |
-
'Carte Blanche' => '006',
|
149 |
-
'JCB' => '007'
|
150 |
-
);
|
151 |
-
|
152 |
-
if(isset($card_types[$name]))
|
153 |
-
return $card_types[$name];
|
154 |
-
else
|
155 |
-
return false;
|
156 |
-
}
|
157 |
-
|
158 |
-
function getWSDL($order)
|
159 |
-
{
|
160 |
-
//which gateway environment?
|
161 |
-
if(empty($order->gateway_environment))
|
162 |
-
$gateway_environment = pmpro_getOption("gateway_environment");
|
163 |
-
else
|
164 |
-
$gateway_environment = $order->gateway_environment;
|
165 |
-
|
166 |
-
//which host?
|
167 |
-
if($gateway_environment == "live")
|
168 |
-
$host = "ics2ws.ic3.com";
|
169 |
-
else
|
170 |
-
$host = "ics2wstest.ic3.com";
|
171 |
-
|
172 |
-
//path
|
173 |
-
$path = "/commerce/1.x/transactionProcessor/CyberSourceTransaction_1.90.wsdl";
|
174 |
-
|
175 |
-
//build url
|
176 |
-
$wsdl_url = "https://" . $host . $path;
|
177 |
-
|
178 |
-
//filter
|
179 |
-
$wsdl_url = apply_filters("pmpro_cybersource_wsdl_url", $wsdl_url, $gateway_environment);
|
180 |
-
|
181 |
-
return $wsdl_url;
|
182 |
-
}
|
183 |
-
|
184 |
-
function authorize(&$order)
|
185 |
-
{
|
186 |
-
if(empty($order->code))
|
187 |
-
$order->code = $order->getRandomCode();
|
188 |
-
|
189 |
-
$wsdl_url = $this->getWSDL($order);
|
190 |
-
|
191 |
-
//what amount to authorize? just $1 to test
|
192 |
-
$amount = "1.00";
|
193 |
-
|
194 |
-
//combine address
|
195 |
-
$address = $order->Address1;
|
196 |
-
if(!empty($order->Address2))
|
197 |
-
$address .= "\n" . $order->Address2;
|
198 |
-
|
199 |
-
//customer stuff
|
200 |
-
$customer_email = $order->Email;
|
201 |
-
$customer_phone = $order->billing->phone;
|
202 |
-
|
203 |
-
if(!isset($order->membership_level->name))
|
204 |
-
$order->membership_level->name = "";
|
205 |
-
|
206 |
-
//to store our request
|
207 |
-
$request = new stdClass();
|
208 |
-
|
209 |
-
//which service?
|
210 |
-
$ccAuthService = new stdClass();
|
211 |
-
$ccAuthService->run = "true";
|
212 |
-
$request->ccAuthService = $ccAuthService;
|
213 |
-
|
214 |
-
//merchant id and order code
|
215 |
-
$request->merchantID = pmpro_getOption("cybersource_merchantid");
|
216 |
-
$request->merchantReferenceCode = $order->code;
|
217 |
-
|
218 |
-
//bill to
|
219 |
-
$billTo = new stdClass();
|
220 |
-
$billTo->firstName = $order->FirstName;
|
221 |
-
$billTo->lastName = $order->LastName;
|
222 |
-
$billTo->street1 = $address;
|
223 |
-
$billTo->city = $order->billing->city;
|
224 |
-
$billTo->state = $order->billing->state;
|
225 |
-
$billTo->postalCode = $order->billing->zip;
|
226 |
-
$billTo->country = $order->billing->country;
|
227 |
-
$billTo->email = $order->Email;
|
228 |
-
$billTo->ipAddress = $_SERVER['REMOTE_ADDR'];
|
229 |
-
$request->billTo = $billTo;
|
230 |
-
|
231 |
-
//card
|
232 |
-
$card = new stdClass();
|
233 |
-
$card->cardType = $this->getCardType($order->cardtype);
|
234 |
-
$card->accountNumber = $order->accountnumber;
|
235 |
-
$card->expirationMonth = $order->expirationmonth;
|
236 |
-
$card->expirationYear = $order->expirationyear;
|
237 |
-
$card->cvNumber = $order->CVV2;
|
238 |
-
$request->card = $card;
|
239 |
-
|
240 |
-
//currency
|
241 |
-
$purchaseTotals = new stdClass();
|
242 |
-
$purchaseTotals->currency = pmpro_getOption("currency");
|
243 |
-
$request->purchaseTotals = $purchaseTotals;
|
244 |
-
|
245 |
-
//item/price
|
246 |
-
$item0 = new stdClass();
|
247 |
-
$item0->unitPrice = $amount;
|
248 |
-
$item0->quantity = "1";
|
249 |
-
$item0->productName = $order->membership_level->name . " Membership";
|
250 |
-
$item0->productSKU = $order->membership_level->id;
|
251 |
-
$item0->id = $order->membership_id;
|
252 |
-
$request->item = array($item0);
|
253 |
-
|
254 |
-
$soapClient = new CyberSourceSoapClient($wsdl_url, array("merchantID"=>pmpro_getOption("cybersource_merchantid"), "transactionKey"=>pmpro_getOption("cybersource_securitykey")));
|
255 |
-
$reply = $soapClient->runTransaction($request);
|
256 |
-
|
257 |
-
if($reply->reasonCode == "100")
|
258 |
-
{
|
259 |
-
//success
|
260 |
-
$order->payment_transaction_id = $reply->requestID;
|
261 |
-
$order->updateStatus("authorized");
|
262 |
-
return true;
|
263 |
-
}
|
264 |
-
else
|
265 |
-
{
|
266 |
-
//error
|
267 |
-
$order->errorcode = $reply->reasonCode;
|
268 |
-
$order->error = $this->getErrorFromCode($reply->reasonCode);
|
269 |
-
$order->shorterror = $this->getErrorFromCode($reply->reasonCode);
|
270 |
-
return false;
|
271 |
-
}
|
272 |
-
}
|
273 |
-
|
274 |
-
function void(&$order)
|
275 |
-
{
|
276 |
-
//need a transaction id
|
277 |
-
if(empty($order->payment_transaction_id))
|
278 |
-
return false;
|
279 |
-
|
280 |
-
//get wsdl
|
281 |
-
$wsdl_url = $this->getWSDL($order);
|
282 |
-
|
283 |
-
//to store our request
|
284 |
-
$request = new stdClass();
|
285 |
-
|
286 |
-
//which service?
|
287 |
-
$voidService = new stdClass();
|
288 |
-
$voidService->run = "true";
|
289 |
-
$voidService->voidRequestID = $order->payment_transaction_id;
|
290 |
-
$request->voidService = $voidService;
|
291 |
-
|
292 |
-
//merchant id and order code
|
293 |
-
$request->merchantID = pmpro_getOption("cybersource_merchantid");
|
294 |
-
$request->merchantReferenceCode = $order->code;
|
295 |
-
|
296 |
-
$soapClient = new CyberSourceSoapClient($wsdl_url, array("merchantID"=>pmpro_getOption("cybersource_merchantid"), "transactionKey"=>pmpro_getOption("cybersource_securitykey")));
|
297 |
-
$reply = $soapClient->runTransaction($request);
|
298 |
-
|
299 |
-
if($reply->reasonCode == "100")
|
300 |
-
{
|
301 |
-
//success
|
302 |
-
$order->payment_transaction_id = $reply->requestID;
|
303 |
-
$order->updateStatus("voided");
|
304 |
-
return true;
|
305 |
-
}
|
306 |
-
else
|
307 |
-
{
|
308 |
-
//error
|
309 |
-
$order->errorcode = $reply->reasonCode;
|
310 |
-
$order->error = $this->getErrorFromCode($reply->reasonCode);
|
311 |
-
$order->shorterror = $this->getErrorFromCode($reply->reasonCode);
|
312 |
-
return false;
|
313 |
-
}
|
314 |
-
}
|
315 |
-
|
316 |
-
function charge(&$order)
|
317 |
-
{
|
318 |
-
//get a code
|
319 |
-
if(empty($order->code))
|
320 |
-
$order->code = $order->getRandomCode();
|
321 |
-
|
322 |
-
//get wsdl
|
323 |
-
$wsdl_url = $this->getWSDL($order);
|
324 |
-
|
325 |
-
//what amount to charge?
|
326 |
-
$amount = $order->InitialPayment;
|
327 |
-
|
328 |
-
//tax
|
329 |
-
$order->subtotal = $amount;
|
330 |
-
$tax = $order->getTax(true);
|
331 |
-
$amount = round((float)$order->subtotal + (float)$tax, 2);
|
332 |
-
|
333 |
-
//combine address
|
334 |
-
$address = $order->Address1;
|
335 |
-
if(!empty($order->Address2))
|
336 |
-
$address .= "\n" . $order->Address2;
|
337 |
-
|
338 |
-
//customer stuff
|
339 |
-
$customer_email = $order->Email;
|
340 |
-
$customer_phone = $order->billing->phone;
|
341 |
-
|
342 |
-
if(!isset($order->membership_level->name))
|
343 |
-
$order->membership_level->name = "";
|
344 |
-
|
345 |
-
//to store our request
|
346 |
-
$request = new stdClass();
|
347 |
-
|
348 |
-
//authorize and capture
|
349 |
-
$ccAuthService = new stdClass();
|
350 |
-
$ccAuthService->run = "true";
|
351 |
-
$request->ccAuthService = $ccAuthService;
|
352 |
-
|
353 |
-
$ccCaptureService = new stdClass();
|
354 |
-
$ccCaptureService->run = "true";
|
355 |
-
$request->ccCaptureService = $ccCaptureService;
|
356 |
-
|
357 |
-
//merchant id and order code
|
358 |
-
$request->merchantID = pmpro_getOption("cybersource_merchantid");
|
359 |
-
$request->merchantReferenceCode = $order->code;
|
360 |
-
|
361 |
-
//bill to
|
362 |
-
$billTo = new stdClass();
|
363 |
-
$billTo->firstName = $order->FirstName;
|
364 |
-
$billTo->lastName = $order->LastName;
|
365 |
-
$billTo->street1 = $address;
|
366 |
-
$billTo->city = $order->billing->city;
|
367 |
-
$billTo->state = $order->billing->state;
|
368 |
-
$billTo->postalCode = $order->billing->zip;
|
369 |
-
$billTo->country = $order->billing->country;
|
370 |
-
$billTo->email = $order->Email;
|
371 |
-
$billTo->ipAddress = $_SERVER['REMOTE_ADDR'];
|
372 |
-
$request->billTo = $billTo;
|
373 |
-
|
374 |
-
//card
|
375 |
-
$card = new stdClass();
|
376 |
-
$card->cardType = $this->getCardType($order->cardtype);
|
377 |
-
$card->accountNumber = $order->accountnumber;
|
378 |
-
$card->expirationMonth = $order->expirationmonth;
|
379 |
-
$card->expirationYear = $order->expirationyear;
|
380 |
-
$card->cvNumber = $order->CVV2;
|
381 |
-
$request->card = $card;
|
382 |
-
|
383 |
-
//currency
|
384 |
-
$purchaseTotals = new stdClass();
|
385 |
-
$purchaseTotals->currency = pmpro_getOption("currency");
|
386 |
-
$request->purchaseTotals = $purchaseTotals;
|
387 |
-
|
388 |
-
//item/price
|
389 |
-
$item0 = new stdClass();
|
390 |
-
$item0->unitPrice = $amount;
|
391 |
-
$item0->quantity = "1";
|
392 |
-
$item0->productName = $order->membership_level->name . " Membership";
|
393 |
-
$item0->productSKU = $order->membership_level->id;
|
394 |
-
$item0->id = $order->membership_id;
|
395 |
-
$request->item = array($item0);
|
396 |
-
|
397 |
-
$soapClient = new CyberSourceSoapClient($wsdl_url, array("merchantID"=>pmpro_getOption("cybersource_merchantid"), "transactionKey"=>pmpro_getOption("cybersource_securitykey")));
|
398 |
-
$reply = $soapClient->runTransaction($request);
|
399 |
-
|
400 |
-
if($reply->reasonCode == "100")
|
401 |
-
{
|
402 |
-
//success
|
403 |
-
$order->payment_transaction_id = $reply->requestID;
|
404 |
-
$order->updateStatus("success");
|
405 |
-
return true;
|
406 |
-
}
|
407 |
-
else
|
408 |
-
{
|
409 |
-
//error
|
410 |
-
$order->errorcode = $reply->reasonCode;
|
411 |
-
$order->error = $this->getErrorFromCode($reply->reasonCode);
|
412 |
-
$order->shorterror = $this->getErrorFromCode($reply->reasonCode);
|
413 |
-
return false;
|
414 |
-
}
|
415 |
-
}
|
416 |
-
|
417 |
-
function subscribe(&$order)
|
418 |
-
{
|
419 |
-
//create a code for the order
|
420 |
-
if(empty($order->code))
|
421 |
-
$order->code = $order->getRandomCode();
|
422 |
-
|
423 |
-
//filter order before subscription. use with care.
|
424 |
-
$order = apply_filters("pmpro_subscribe_order", $order, $this);
|
425 |
-
|
426 |
-
//get wsdl
|
427 |
-
$wsdl_url = $this->getWSDL($order);
|
428 |
-
|
429 |
-
//to store our request
|
430 |
-
$request = new stdClass();
|
431 |
-
|
432 |
-
//set service type
|
433 |
-
$paySubscriptionCreateService = new stdClass();
|
434 |
-
$paySubscriptionCreateService->run = 'true';
|
435 |
-
$paySubscriptionCreateService->disableAutoAuth = 'true'; //we do our own auth check
|
436 |
-
$request->paySubscriptionCreateService = $paySubscriptionCreateService;
|
437 |
-
|
438 |
-
//merchant id and order code
|
439 |
-
$request->merchantID = pmpro_getOption("cybersource_merchantid");
|
440 |
-
$request->merchantReferenceCode = $order->code;
|
441 |
-
|
442 |
-
/*
|
443 |
-
setup billing amount/etc
|
444 |
-
*/
|
445 |
-
//figure out the amounts
|
446 |
-
$amount = $order->PaymentAmount;
|
447 |
-
$amount_tax = $order->getTaxForPrice($amount);
|
448 |
-
$order->subtotal = $amount;
|
449 |
-
$amount = round((float)$amount + (float)$amount_tax, 2);
|
450 |
-
|
451 |
-
/*
|
452 |
-
There are two parts to the trial. Part 1 is simply the delay until the first payment
|
453 |
-
since we are doing the first payment as a separate transaction.
|
454 |
-
The second part is the actual "trial" set by the admin.
|
455 |
-
*/
|
456 |
-
//figure out the trial length (first payment handled by initial charge)
|
457 |
-
if($order->BillingPeriod == "Year")
|
458 |
-
$trial_period_days = $order->BillingFrequency * 365; //annual
|
459 |
-
elseif($order->BillingPeriod == "Day")
|
460 |
-
$trial_period_days = $order->BillingFrequency * 1; //daily
|
461 |
-
elseif($order->BillingPeriod == "Week")
|
462 |
-
$trial_period_days = $order->BillingFrequency * 7; //weekly
|
463 |
-
else
|
464 |
-
$trial_period_days = $order->BillingFrequency * 30; //assume monthly
|
465 |
-
|
466 |
-
//convert to a profile start date
|
467 |
-
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $trial_period_days . " Day", current_time("timestamp"))) . "T0:0:0";
|
468 |
-
|
469 |
-
//filter the start date
|
470 |
-
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
|
471 |
-
|
472 |
-
//convert back to days
|
473 |
-
$trial_period_days = ceil(abs(strtotime(date("Y-m-d"), current_time('timestamp')) - strtotime($order->ProfileStartDate, current_time("timestamp"))) / 86400);
|
474 |
-
|
475 |
-
//now add the actual trial set by the site
|
476 |
-
if(!empty($order->TrialBillingCycles))
|
477 |
-
{
|
478 |
-
$trialOccurrences = (int)$order->TrialBillingCycles;
|
479 |
-
if($order->BillingPeriod == "Year")
|
480 |
-
$trial_period_days = $trial_period_days + (365 * $order->BillingFrequency * $trialOccurrences); //annual
|
481 |
-
elseif($order->BillingPeriod == "Day")
|
482 |
-
$trial_period_days = $trial_period_days + (1 * $order->BillingFrequency * $trialOccurrences); //daily
|
483 |
-
elseif($order->BillingPeriod == "Week")
|
484 |
-
$trial_period_days = $trial_period_days + (7 * $order->BillingFrequency * $trialOccurrences); //weekly
|
485 |
-
else
|
486 |
-
$trial_period_days = $trial_period_days + (30 * $order->BillingFrequency * $trialOccurrences); //assume monthly
|
487 |
-
}
|
488 |
-
|
489 |
-
//convert back into a date
|
490 |
-
$profile_start_date = date("Ymd", strtotime("+ " . $trial_period_days . " Days"));
|
491 |
-
|
492 |
-
//figure out the frequency
|
493 |
-
if($order->BillingPeriod == "Year")
|
494 |
-
{
|
495 |
-
$frequency = "annually"; //ignoring BillingFrequency set on level.
|
496 |
-
}
|
497 |
-
elseif($order->BillingPeriod == "Month")
|
498 |
-
{
|
499 |
-
if($order->BillingFrequency == 6)
|
500 |
-
$frequency = "semi annually";
|
501 |
-
elseif($order->BillingFrequency == 3)
|
502 |
-
$frequency = "quarterly";
|
503 |
-
else
|
504 |
-
$frequency = "monthly";
|
505 |
-
}
|
506 |
-
elseif($order->BillingPeriod == "Week")
|
507 |
-
{
|
508 |
-
if($order->BillingFrequency == 4)
|
509 |
-
$frequency = "quad-weekly";
|
510 |
-
elseif($order->BillingFrequency == 2)
|
511 |
-
$frequency = "bi-weekly";
|
512 |
-
else
|
513 |
-
$frequency = "weekly";
|
514 |
-
}
|
515 |
-
elseif($order->BillingPeriod == "Day")
|
516 |
-
{
|
517 |
-
if($order->BillingFrequency == 365)
|
518 |
-
$frequency = "annually";
|
519 |
-
elseif($order->BillingFrequency == 182)
|
520 |
-
$frequency = "semi annually";
|
521 |
-
elseif($order->BillingFrequency == 183)
|
522 |
-
$frequency = "semi annually";
|
523 |
-
elseif($order->BillingFrequency == 90)
|
524 |
-
$frequency = "quaterly";
|
525 |
-
elseif($order->BillingFrequency == 30)
|
526 |
-
$frequency = "monthly";
|
527 |
-
elseif($order->BillingFrequency == 15)
|
528 |
-
$frequency = "semi-monthly";
|
529 |
-
elseif($order->BillingFrequency == 28)
|
530 |
-
$frequency = "quad-weekly";
|
531 |
-
elseif($order->BillingFrequency == 14)
|
532 |
-
$frequency = "bi-weekly";
|
533 |
-
elseif($order->BillingFrequency == 7)
|
534 |
-
$frequency = "weekly";
|
535 |
-
}
|
536 |
-
|
537 |
-
//set subscription info for API
|
538 |
-
$subscription = new stdClass();
|
539 |
-
$subscription->title = $order->membership_level->name;
|
540 |
-
$subscription->paymentMethod = "credit card";
|
541 |
-
$request->subscription = $subscription;
|
542 |
-
|
543 |
-
//recurring info
|
544 |
-
$recurringSubscriptionInfo = new stdClass();
|
545 |
-
$recurringSubscriptionInfo->amount = number_format($amount, 2);
|
546 |
-
$recurringSubscriptionInfo->startDate = $profile_start_date;
|
547 |
-
$recurringSubscriptionInfo->frequency = $frequency;
|
548 |
-
if(!empty($order->TotalBillingCycles))
|
549 |
-
$recurringSubscriptionInfo->numberOfPayments = $order->TotalBillingCycles;
|
550 |
-
$request->recurringSubscriptionInfo = $recurringSubscriptionInfo;
|
551 |
-
|
552 |
-
//combine address
|
553 |
-
$address = $order->Address1;
|
554 |
-
if(!empty($order->Address2))
|
555 |
-
$address .= "\n" . $order->Address2;
|
556 |
-
|
557 |
-
//bill to
|
558 |
-
$billTo = new stdClass();
|
559 |
-
$billTo->firstName = $order->FirstName;
|
560 |
-
$billTo->lastName = $order->LastName;
|
561 |
-
$billTo->street1 = $address;
|
562 |
-
$billTo->city = $order->billing->city;
|
563 |
-
$billTo->state = $order->billing->state;
|
564 |
-
$billTo->postalCode = $order->billing->zip;
|
565 |
-
$billTo->country = $order->billing->country;
|
566 |
-
$billTo->email = $order->Email;
|
567 |
-
$billTo->ipAddress = $_SERVER['REMOTE_ADDR'];
|
568 |
-
$request->billTo = $billTo;
|
569 |
-
|
570 |
-
//card
|
571 |
-
$card = new stdClass();
|
572 |
-
$card->cardType = $this->getCardType($order->cardtype);
|
573 |
-
$card->accountNumber = $order->accountnumber;
|
574 |
-
$card->expirationMonth = $order->expirationmonth;
|
575 |
-
$card->expirationYear = $order->expirationyear;
|
576 |
-
$card->cvNumber = $order->CVV2;
|
577 |
-
$request->card = $card;
|
578 |
-
|
579 |
-
//currency
|
580 |
-
$purchaseTotals = new stdClass();
|
581 |
-
$purchaseTotals->currency = pmpro_getOption("currency");
|
582 |
-
$request->purchaseTotals = $purchaseTotals;
|
583 |
-
|
584 |
-
$soapClient = new CyberSourceSoapClient($wsdl_url, array("merchantID"=>pmpro_getOption("cybersource_merchantid"), "transactionKey"=>pmpro_getOption("cybersource_securitykey")));
|
585 |
-
$reply = $soapClient->runTransaction($request);
|
586 |
-
|
587 |
-
if($reply->reasonCode == "100")
|
588 |
-
{
|
589 |
-
//success
|
590 |
-
$order->subscription_transaction_id = $reply->requestID;
|
591 |
-
$order->status = "success";
|
592 |
-
return true;
|
593 |
-
}
|
594 |
-
else
|
595 |
-
{
|
596 |
-
//error
|
597 |
-
$order->status = "error";
|
598 |
-
$order->errorcode = $reply->reasonCode;
|
599 |
-
$order->error = $this->getErrorFromCode($reply->reasonCode);
|
600 |
-
$order->shorterror = $this->getErrorFromCode($reply->reasonCode);
|
601 |
-
return false;
|
602 |
-
}
|
603 |
-
}
|
604 |
-
|
605 |
-
function update(&$order)
|
606 |
-
{
|
607 |
-
//get wsdl
|
608 |
-
$wsdl_url = $this->getWSDL($order);
|
609 |
-
|
610 |
-
//to store our request
|
611 |
-
$request = new stdClass();
|
612 |
-
|
613 |
-
//set service type
|
614 |
-
$paySubscriptionUpdateService = new stdClass();
|
615 |
-
$paySubscriptionUpdateService ->run = "true";
|
616 |
-
$request->paySubscriptionUpdateService = $paySubscriptionUpdateService ;
|
617 |
-
|
618 |
-
//merchant id and order code
|
619 |
-
$request->merchantID = pmpro_getOption("cybersource_merchantid");
|
620 |
-
$request->merchantReferenceCode = $order->code;
|
621 |
-
|
622 |
-
//set subscription info for API
|
623 |
-
$recurringSubscriptionInfo = new stdClass();
|
624 |
-
$recurringSubscriptionInfo->subscriptionID = $order->subscription_transaction_id;
|
625 |
-
$request->recurringSubscriptionInfo = $recurringSubscriptionInfo;
|
626 |
-
|
627 |
-
//combine address
|
628 |
-
$address = $order->Address1;
|
629 |
-
if(!empty($order->Address2))
|
630 |
-
$address .= "\n" . $order->Address2;
|
631 |
-
|
632 |
-
//bill to
|
633 |
-
$billTo = new stdClass();
|
634 |
-
$billTo->firstName = $order->FirstName;
|
635 |
-
$billTo->lastName = $order->LastName;
|
636 |
-
$billTo->street1 = $address;
|
637 |
-
$billTo->city = $order->billing->city;
|
638 |
-
$billTo->state = $order->billing->state;
|
639 |
-
$billTo->postalCode = $order->billing->zip;
|
640 |
-
$billTo->country = $order->billing->country;
|
641 |
-
$billTo->email = $order->Email;
|
642 |
-
$billTo->ipAddress = $_SERVER['REMOTE_ADDR'];
|
643 |
-
$request->billTo = $billTo;
|
644 |
-
|
645 |
-
//card
|
646 |
-
$card = new stdClass();
|
647 |
-
$card->cardType = $this->getCardType($order->cardtype);
|
648 |
-
$card->accountNumber = $order->accountnumber;
|
649 |
-
$card->expirationMonth = $order->expirationmonth;
|
650 |
-
$card->expirationYear = $order->expirationyear;
|
651 |
-
$card->cvNumber = $order->CVV2;
|
652 |
-
$request->card = $card;
|
653 |
-
|
654 |
-
$soapClient = new CyberSourceSoapClient($wsdl_url, array("merchantID"=>pmpro_getOption("cybersource_merchantid"), "transactionKey"=>pmpro_getOption("cybersource_securitykey")));
|
655 |
-
$reply = $soapClient->runTransaction($request);
|
656 |
-
|
657 |
-
if($reply->reasonCode == "100")
|
658 |
-
{
|
659 |
-
//success
|
660 |
-
return true;
|
661 |
-
}
|
662 |
-
else
|
663 |
-
{
|
664 |
-
//error
|
665 |
-
$order->errorcode = $reply->reasonCode;
|
666 |
-
$order->error = $this->getErrorFromCode($reply->reasonCode);
|
667 |
-
$order->shorterror = $this->getErrorFromCode($reply->reasonCode);
|
668 |
-
return false;
|
669 |
-
}
|
670 |
-
}
|
671 |
-
|
672 |
-
function cancel(&$order)
|
673 |
-
{
|
674 |
-
//require a subscription id
|
675 |
-
if(empty($order->subscription_transaction_id))
|
676 |
-
return false;
|
677 |
-
|
678 |
-
//get wsdl
|
679 |
-
$wsdl_url = $this->getWSDL($order);
|
680 |
-
|
681 |
-
//to store our request
|
682 |
-
$request = new stdClass();
|
683 |
-
|
684 |
-
//which service?
|
685 |
-
$paySubscriptionDeleteService = new stdClass();
|
686 |
-
$paySubscriptionDeleteService ->run = "true";
|
687 |
-
$request->paySubscriptionDeleteService = $paySubscriptionDeleteService ;
|
688 |
-
|
689 |
-
//which order
|
690 |
-
$recurringSubscriptionInfo = new stdClass();
|
691 |
-
$recurringSubscriptionInfo->subscriptionID = $order->subscription_transaction_id;
|
692 |
-
$request->recurringSubscriptionInfo = $recurringSubscriptionInfo;
|
693 |
-
|
694 |
-
//merchant id and order code
|
695 |
-
$request->merchantID = pmpro_getOption("cybersource_merchantid");
|
696 |
-
$request->merchantReferenceCode = $order->code;
|
697 |
-
|
698 |
-
$soapClient = new CyberSourceSoapClient($wsdl_url, array("merchantID"=>pmpro_getOption("cybersource_merchantid"), "transactionKey"=>pmpro_getOption("cybersource_securitykey")));
|
699 |
-
$reply = $soapClient->runTransaction($request);
|
700 |
-
|
701 |
-
if($reply->reasonCode == "100")
|
702 |
-
{
|
703 |
-
//success
|
704 |
-
$order->updateStatus("cancelled");
|
705 |
-
return true;
|
706 |
-
}
|
707 |
-
else
|
708 |
-
{
|
709 |
-
//error
|
710 |
-
$order->errorcode = $reply->reasonCode;
|
711 |
-
$order->error = $this->getErrorFromCode($reply->reasonCode);
|
712 |
-
$order->shorterror = $this->getErrorFromCode($reply->reasonCode);
|
713 |
-
return false;
|
714 |
-
}
|
715 |
-
}
|
716 |
-
|
717 |
-
function getErrorFromCode($code)
|
718 |
-
{
|
719 |
-
$error_messages = array(
|
720 |
-
"100" => "Successful transaction.",
|
721 |
-
"101" => "The request is missing one or more required fields.",
|
722 |
-
"102" => "One or more fields in the request contains invalid data. Check that your billing address is valid.",
|
723 |
-
"104" => "Duplicate order detected.",
|
724 |
-
"110" => "Only partial amount was approved.",
|
725 |
-
"150" => "Error: General system failure.",
|
726 |
-
"151" => "Error: The request was received but there was a server timeout.",
|
727 |
-
"152" => "Error: The request was received, but a service did not finish running in time. ",
|
728 |
-
"200" => "Address Verification Service (AVS) failure.",
|
729 |
-
"201" => "Authorization failed.",
|
730 |
-
"202" => "Expired card or invalid expiration date.",
|
731 |
-
"203" => "The card was declined.",
|
732 |
-
"204" => "Insufficient funds in the account.",
|
733 |
-
"205" => "Stolen or lost card.",
|
734 |
-
"207" => "Issuing bank unavailable.",
|
735 |
-
"208" => "Inactive card or card not authorized for card-not-present transactions.",
|
736 |
-
"209" => "American Express Card Identification Digits (CID) did not match.",
|
737 |
-
"210" => "The card has reached the credit limit. ",
|
738 |
-
"211" => "Invalid card verification number.",
|
739 |
-
"221" => "The customer matched an entry on the processors negative file. ",
|
740 |
-
"230" => "Card verification (CV) check failed.",
|
741 |
-
"231" => "Invalid account number.",
|
742 |
-
"232" => "The card type is not accepted by the payment processor.",
|
743 |
-
"233" => "General decline by the processor.",
|
744 |
-
"234" => "There is a problem with your CyberSource merchant configuration.",
|
745 |
-
"235" => "The requested amount exceeds the originally authorized amount.",
|
746 |
-
"236" => "Processor failure.",
|
747 |
-
"237" => "The authorization has already been reversed.",
|
748 |
-
"238" => "The authorization has already been captured.",
|
749 |
-
"239" => "The requested transaction amount must match the previous transaction amount.",
|
750 |
-
"240" => "The card type sent is invalid or does not correlate with the credit card number.",
|
751 |
-
"241" => "The referenced request id is invalid for all follow-on transactions.",
|
752 |
-
"242" => "The request ID is invalid.",
|
753 |
-
"243" => "The transaction has already been settled or reversed.",
|
754 |
-
"246" => "The capture or credit is not voidable because the capture or credit information has already been submitted to your processor. Or, you requested a void for a type of transaction that cannot be voided.",
|
755 |
-
"247" => "You requested a credit for a capture that was previously voided.",
|
756 |
-
"250" => "Error: The request was received, but there was a timeout at the payment processor.",
|
757 |
-
"520" => "Smart Authorization failed."
|
758 |
-
);
|
759 |
-
|
760 |
-
if(isset($error_messages[$code]))
|
761 |
-
return $error_messages[$code];
|
762 |
-
else
|
763 |
-
return "Unknown error.";
|
764 |
-
}
|
765 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
classes/gateways/class.pmprogateway_payflowpro.php
CHANGED
@@ -17,7 +17,7 @@
|
|
17 |
if($authorization_id)
|
18 |
{
|
19 |
$this->void($order, $authorization_id);
|
20 |
-
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $order->BillingFrequency . " " . $order->BillingPeriod
|
21 |
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
|
22 |
return $this->subscribe($order);
|
23 |
}
|
@@ -36,7 +36,7 @@
|
|
36 |
//setup recurring billing
|
37 |
if(pmpro_isLevelRecurring($order->membership_level))
|
38 |
{
|
39 |
-
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $order->BillingFrequency . " " . $order->BillingPeriod
|
40 |
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
|
41 |
if($this->subscribe($order))
|
42 |
{
|
@@ -159,7 +159,7 @@
|
|
159 |
|
160 |
//paypal profile stuff
|
161 |
$nvpStr = "";
|
162 |
-
$nvpStr .="&AMT=" . $amount . "&TAXAMT=" . $amount_tax
|
163 |
$nvpStr .= "&NOTIFYURL=" . urlencode(admin_url('admin-ajax.php') . "?action=ipnhandler");
|
164 |
//$nvpStr .= "&L_BILLINGTYPE0=RecurringPayments&L_BILLINGAGREEMENTDESCRIPTION0=" . $order->PaymentAmount;
|
165 |
|
@@ -179,7 +179,7 @@
|
|
179 |
$nvpStr .= "&CITY=" . $order->billing->city . "&STATE=" . $order->billing->state . "&BILLTOCOUNTRY=" . $order->billing->country . "&ZIP=" . $order->billing->zip . "&PHONENUM=" . $order->billing->phone;
|
180 |
}
|
181 |
|
182 |
-
$this->nvpStr = $nvpStr;
|
183 |
$this->httpParsedResponseAr = $this->PPHttpPost('S', $nvpStr);
|
184 |
|
185 |
if("0" == strtoupper($this->httpParsedResponseAr["RESULT"])) {
|
@@ -207,7 +207,8 @@
|
|
207 |
|
208 |
//taxes on the amount
|
209 |
$amount = $order->PaymentAmount;
|
210 |
-
$amount_tax = $order->getTaxForPrice($amount);
|
|
|
211 |
$amount = round((float)$amount + (float)$amount_tax, 2);
|
212 |
|
213 |
if($order->BillingPeriod == "Week")
|
@@ -219,7 +220,7 @@
|
|
219 |
|
220 |
//paypal profile stuff
|
221 |
$nvpStr = "&ACTION=A";
|
222 |
-
$nvpStr .="&AMT=" . $amount . "&TAXAMT=" . $amount_tax
|
223 |
$nvpStr .= "&NOTIFYURL=" . urlencode(admin_url('admin-ajax.php') . "?action=ipnhandler");
|
224 |
//$nvpStr .= "&L_BILLINGTYPE0=RecurringPayments&L_BILLINGAGREEMENTDESCRIPTION0=" . $order->PaymentAmount;
|
225 |
|
@@ -227,7 +228,7 @@
|
|
227 |
|
228 |
$nvpStr .= "&PAYPERIOD=" . $payperiod;
|
229 |
|
230 |
-
$nvpStr .= "&CUSTIP=" . $_SERVER['REMOTE_ADDR']
|
231 |
|
232 |
//if billing cycles are defined
|
233 |
if(!empty($order->TotalBillingCycles))
|
@@ -253,13 +254,13 @@
|
|
253 |
$trial_period_days = $order->BillingFrequency * 30; //assume monthly
|
254 |
|
255 |
//convert to a profile start date
|
256 |
-
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $trial_period_days . " Day"
|
257 |
|
258 |
//filter the start date
|
259 |
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
|
260 |
|
261 |
//convert back to days
|
262 |
-
$trial_period_days = ceil(abs(strtotime(date("Y-m-d")
|
263 |
|
264 |
//now add the actual trial set by the site
|
265 |
if(!empty($order->TrialBillingCycles))
|
@@ -276,7 +277,7 @@
|
|
276 |
}
|
277 |
|
278 |
//convert back into a date
|
279 |
-
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $trial_period_days . " Day"
|
280 |
|
281 |
//start date
|
282 |
$nvpStr .= "&START=" . date("mdY", strtotime($order->ProfileStartDate));
|
@@ -295,9 +296,9 @@
|
|
295 |
$nvpStr .= "&CITY=" . $order->billing->city . "&STATE=" . $order->billing->state . "&BILLTOCOUNTRY=" . $order->billing->country . "&ZIP=" . $order->billing->zip . "&PHONENUM=" . $order->billing->phone;
|
296 |
}
|
297 |
|
298 |
-
$this->nvpStr = $nvpStr;
|
299 |
$this->httpParsedResponseAr = $this->PPHttpPost('R', $nvpStr);
|
300 |
-
|
301 |
if("0" == strtoupper($this->httpParsedResponseAr["RESULT"])) {
|
302 |
$order->subscription_transaction_id = $this->httpParsedResponseAr['PROFILEID'];
|
303 |
$order->status = "success";
|
@@ -309,6 +310,9 @@
|
|
309 |
$order->shorterror = urldecode($this->httpParsedResponseAr['RESPMSG']);
|
310 |
return false;
|
311 |
}
|
|
|
|
|
|
|
312 |
}
|
313 |
|
314 |
function update(&$order)
|
@@ -321,7 +325,7 @@
|
|
321 |
|
322 |
$nvpStr .= "&PROFILENAME=" . urlencode(substr($order->membership_level->name . " at " . get_bloginfo("name"), 0, 127));
|
323 |
|
324 |
-
$nvpStr .= "&CUSTIP=" . $_SERVER['REMOTE_ADDR']
|
325 |
|
326 |
if(!empty($order->accountnumber))
|
327 |
$nvpStr .= "&ACCT=" . $order->accountnumber . "&EXPDATE=" . $order->expirationmonth . substr($order->expirationyear, 2, 2) . "&CVV2=" . $order->CVV2;
|
@@ -365,13 +369,10 @@
|
|
365 |
$this->nvpStr = $nvpStr;
|
366 |
$this->httpParsedResponseAr = $this->PPHttpPost('R', $nvpStr);
|
367 |
|
368 |
-
if("0" == strtoupper($this->httpParsedResponseAr["RESULT"]))
|
369 |
-
{
|
370 |
$order->updateStatus("cancelled");
|
371 |
return true;
|
372 |
-
}
|
373 |
-
else
|
374 |
-
{
|
375 |
$order->status = "error";
|
376 |
$order->errorcode = $this->httpParsedResponseAr['RESULT'];
|
377 |
$order->error = urldecode($this->httpParsedResponseAr['RESPMSG']);
|
@@ -445,4 +446,4 @@
|
|
445 |
|
446 |
return $httpParsedResponseAr;
|
447 |
}
|
448 |
-
}
|
17 |
if($authorization_id)
|
18 |
{
|
19 |
$this->void($order, $authorization_id);
|
20 |
+
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $order->BillingFrequency . " " . $order->BillingPeriod)) . "T0:0:0";
|
21 |
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
|
22 |
return $this->subscribe($order);
|
23 |
}
|
36 |
//setup recurring billing
|
37 |
if(pmpro_isLevelRecurring($order->membership_level))
|
38 |
{
|
39 |
+
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $order->BillingFrequency . " " . $order->BillingPeriod)) . "T0:0:0";
|
40 |
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
|
41 |
if($this->subscribe($order))
|
42 |
{
|
159 |
|
160 |
//paypal profile stuff
|
161 |
$nvpStr = "";
|
162 |
+
$nvpStr .="&AMT=" . $amount . "&TAXAMT=" . $amount_tax;
|
163 |
$nvpStr .= "&NOTIFYURL=" . urlencode(admin_url('admin-ajax.php') . "?action=ipnhandler");
|
164 |
//$nvpStr .= "&L_BILLINGTYPE0=RecurringPayments&L_BILLINGAGREEMENTDESCRIPTION0=" . $order->PaymentAmount;
|
165 |
|
179 |
$nvpStr .= "&CITY=" . $order->billing->city . "&STATE=" . $order->billing->state . "&BILLTOCOUNTRY=" . $order->billing->country . "&ZIP=" . $order->billing->zip . "&PHONENUM=" . $order->billing->phone;
|
180 |
}
|
181 |
|
182 |
+
$this->nvpStr = $nvpStr;
|
183 |
$this->httpParsedResponseAr = $this->PPHttpPost('S', $nvpStr);
|
184 |
|
185 |
if("0" == strtoupper($this->httpParsedResponseAr["RESULT"])) {
|
207 |
|
208 |
//taxes on the amount
|
209 |
$amount = $order->PaymentAmount;
|
210 |
+
$amount_tax = $order->getTaxForPrice($amount);
|
211 |
+
$order->subtotal = $amount;
|
212 |
$amount = round((float)$amount + (float)$amount_tax, 2);
|
213 |
|
214 |
if($order->BillingPeriod == "Week")
|
220 |
|
221 |
//paypal profile stuff
|
222 |
$nvpStr = "&ACTION=A";
|
223 |
+
$nvpStr .="&AMT=" . $amount . "&TAXAMT=" . $amount_tax;
|
224 |
$nvpStr .= "&NOTIFYURL=" . urlencode(admin_url('admin-ajax.php') . "?action=ipnhandler");
|
225 |
//$nvpStr .= "&L_BILLINGTYPE0=RecurringPayments&L_BILLINGAGREEMENTDESCRIPTION0=" . $order->PaymentAmount;
|
226 |
|
228 |
|
229 |
$nvpStr .= "&PAYPERIOD=" . $payperiod;
|
230 |
|
231 |
+
$nvpStr .= "&CUSTIP=" . $_SERVER['REMOTE_ADDR'] . "&INVNUM=" . $order->code;
|
232 |
|
233 |
//if billing cycles are defined
|
234 |
if(!empty($order->TotalBillingCycles))
|
254 |
$trial_period_days = $order->BillingFrequency * 30; //assume monthly
|
255 |
|
256 |
//convert to a profile start date
|
257 |
+
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $trial_period_days . " Day")) . "T0:0:0";
|
258 |
|
259 |
//filter the start date
|
260 |
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
|
261 |
|
262 |
//convert back to days
|
263 |
+
$trial_period_days = ceil(abs(strtotime(date("Y-m-d")) - strtotime($order->ProfileStartDate)) / 86400);
|
264 |
|
265 |
//now add the actual trial set by the site
|
266 |
if(!empty($order->TrialBillingCycles))
|
277 |
}
|
278 |
|
279 |
//convert back into a date
|
280 |
+
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $trial_period_days . " Day")) . "T0:0:0";
|
281 |
|
282 |
//start date
|
283 |
$nvpStr .= "&START=" . date("mdY", strtotime($order->ProfileStartDate));
|
296 |
$nvpStr .= "&CITY=" . $order->billing->city . "&STATE=" . $order->billing->state . "&BILLTOCOUNTRY=" . $order->billing->country . "&ZIP=" . $order->billing->zip . "&PHONENUM=" . $order->billing->phone;
|
297 |
}
|
298 |
|
299 |
+
$this->nvpStr = $nvpStr;
|
300 |
$this->httpParsedResponseAr = $this->PPHttpPost('R', $nvpStr);
|
301 |
+
|
302 |
if("0" == strtoupper($this->httpParsedResponseAr["RESULT"])) {
|
303 |
$order->subscription_transaction_id = $this->httpParsedResponseAr['PROFILEID'];
|
304 |
$order->status = "success";
|
310 |
$order->shorterror = urldecode($this->httpParsedResponseAr['RESPMSG']);
|
311 |
return false;
|
312 |
}
|
313 |
+
|
314 |
+
//$order->error = "Recurring subscriptions with Payflow are not currently supported by Paid Memberships Pro";
|
315 |
+
//return false;
|
316 |
}
|
317 |
|
318 |
function update(&$order)
|
325 |
|
326 |
$nvpStr .= "&PROFILENAME=" . urlencode(substr($order->membership_level->name . " at " . get_bloginfo("name"), 0, 127));
|
327 |
|
328 |
+
$nvpStr .= "&CUSTIP=" . $_SERVER['REMOTE_ADDR'] . "&INVNUM=" . $order->code;
|
329 |
|
330 |
if(!empty($order->accountnumber))
|
331 |
$nvpStr .= "&ACCT=" . $order->accountnumber . "&EXPDATE=" . $order->expirationmonth . substr($order->expirationyear, 2, 2) . "&CVV2=" . $order->CVV2;
|
369 |
$this->nvpStr = $nvpStr;
|
370 |
$this->httpParsedResponseAr = $this->PPHttpPost('R', $nvpStr);
|
371 |
|
372 |
+
if("0" == strtoupper($this->httpParsedResponseAr["RESULT"])) {
|
|
|
373 |
$order->updateStatus("cancelled");
|
374 |
return true;
|
375 |
+
} else {
|
|
|
|
|
376 |
$order->status = "error";
|
377 |
$order->errorcode = $this->httpParsedResponseAr['RESULT'];
|
378 |
$order->error = urldecode($this->httpParsedResponseAr['RESPMSG']);
|
446 |
|
447 |
return $httpParsedResponseAr;
|
448 |
}
|
449 |
+
}
|
classes/gateways/class.pmprogateway_paypal.php
CHANGED
@@ -17,7 +17,7 @@
|
|
17 |
if($authorization_id)
|
18 |
{
|
19 |
$this->void($order, $authorization_id);
|
20 |
-
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $order->BillingFrequency . " " . $order->BillingPeriod
|
21 |
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
|
22 |
return $this->subscribe($order);
|
23 |
}
|
@@ -36,7 +36,7 @@
|
|
36 |
//setup recurring billing
|
37 |
if(pmpro_isLevelRecurring($order->membership_level))
|
38 |
{
|
39 |
-
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $order->BillingFrequency . " " . $order->BillingPeriod
|
40 |
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
|
41 |
if($this->subscribe($order))
|
42 |
{
|
@@ -244,7 +244,8 @@
|
|
244 |
|
245 |
//taxes on the amount
|
246 |
$amount = $order->PaymentAmount;
|
247 |
-
$amount_tax = $order->getTaxForPrice($amount);
|
|
|
248 |
$amount = round((float)$amount + (float)$amount_tax, 2);
|
249 |
|
250 |
//paypal profile stuff
|
@@ -369,23 +370,21 @@
|
|
369 |
{
|
370 |
//paypal profile stuff
|
371 |
$nvpStr = "";
|
372 |
-
$nvpStr .= "&PROFILEID=" .
|
373 |
|
374 |
$this->httpParsedResponseAr = $this->PPHttpPost('ManageRecurringPaymentsProfileStatus', $nvpStr);
|
375 |
|
376 |
-
if("SUCCESS" == strtoupper($this->httpParsedResponseAr["ACK"]) || "SUCCESSWITHWARNING" == strtoupper($this->httpParsedResponseAr["ACK"]))
|
377 |
-
{
|
378 |
$order->updateStatus("cancelled");
|
379 |
-
return true;
|
380 |
-
|
381 |
-
else
|
382 |
-
{
|
383 |
$order->status = "error";
|
384 |
$order->errorcode = $this->httpParsedResponseAr['L_ERRORCODE0'];
|
385 |
-
$order->error = urldecode($this->httpParsedResponseAr['L_LONGMESSAGE0'])
|
386 |
$order->shorterror = urldecode($this->httpParsedResponseAr['L_SHORTMESSAGE0']);
|
387 |
-
|
388 |
-
|
389 |
}
|
390 |
}
|
391 |
|
17 |
if($authorization_id)
|
18 |
{
|
19 |
$this->void($order, $authorization_id);
|
20 |
+
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $order->BillingFrequency . " " . $order->BillingPeriod)) . "T0:0:0";
|
21 |
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
|
22 |
return $this->subscribe($order);
|
23 |
}
|
36 |
//setup recurring billing
|
37 |
if(pmpro_isLevelRecurring($order->membership_level))
|
38 |
{
|
39 |
+
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $order->BillingFrequency . " " . $order->BillingPeriod)) . "T0:0:0";
|
40 |
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
|
41 |
if($this->subscribe($order))
|
42 |
{
|
244 |
|
245 |
//taxes on the amount
|
246 |
$amount = $order->PaymentAmount;
|
247 |
+
$amount_tax = $order->getTaxForPrice($amount);
|
248 |
+
$order->subtotal = $amount;
|
249 |
$amount = round((float)$amount + (float)$amount_tax, 2);
|
250 |
|
251 |
//paypal profile stuff
|
370 |
{
|
371 |
//paypal profile stuff
|
372 |
$nvpStr = "";
|
373 |
+
$nvpStr .= "&PROFILEID=" . $order->subscription_transaction_id . "&ACTION=Cancel&NOTE=User requested cancel.";
|
374 |
|
375 |
$this->httpParsedResponseAr = $this->PPHttpPost('ManageRecurringPaymentsProfileStatus', $nvpStr);
|
376 |
|
377 |
+
if("SUCCESS" == strtoupper($this->httpParsedResponseAr["ACK"]) || "SUCCESSWITHWARNING" == strtoupper($this->httpParsedResponseAr["ACK"]) || $this->httpParsedResponseAr['L_ERRORCODE0'] == "11556") {
|
|
|
378 |
$order->updateStatus("cancelled");
|
379 |
+
return true;
|
380 |
+
//exit('CreateRecurringPaymentsProfile Completed Successfully: '.print_r($this->httpParsedResponseAr, true));
|
381 |
+
} else {
|
|
|
382 |
$order->status = "error";
|
383 |
$order->errorcode = $this->httpParsedResponseAr['L_ERRORCODE0'];
|
384 |
+
$order->error = urldecode($this->httpParsedResponseAr['L_LONGMESSAGE0']);
|
385 |
$order->shorterror = urldecode($this->httpParsedResponseAr['L_SHORTMESSAGE0']);
|
386 |
+
return false;
|
387 |
+
//exit('CreateRecurringPaymentsProfile failed: ' . print_r($httpParsedResponseAr, true));
|
388 |
}
|
389 |
}
|
390 |
|
classes/gateways/class.pmprogateway_paypalexpress.php
CHANGED
@@ -9,10 +9,10 @@
|
|
9 |
}
|
10 |
|
11 |
function process(&$order)
|
12 |
-
{
|
13 |
if(pmpro_isLevelRecurring($order->membership_level))
|
14 |
{
|
15 |
-
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $order->BillingFrequency . " " . $order->BillingPeriod
|
16 |
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
|
17 |
return $this->subscribe($order);
|
18 |
}
|
@@ -40,20 +40,17 @@
|
|
40 |
|
41 |
//taxes on the amount
|
42 |
$amount = $order->PaymentAmount;
|
43 |
-
$amount_tax = $order->getTaxForPrice($amount);
|
44 |
$order->subtotal = $amount;
|
45 |
$amount = round((float)$amount + (float)$amount_tax, 2);
|
46 |
|
47 |
//paypal profile stuff
|
48 |
$nvpStr = "";
|
49 |
-
$nvpStr .="&AMT=" . $initial_payment . "&CURRENCYCODE=" . $pmpro_currency;
|
50 |
-
|
51 |
-
$nvpStr .= "&PROFILESTARTDATE=" . $order->ProfileStartDate;
|
52 |
-
if(!empty($order->BillingFrequency))
|
53 |
-
$nvpStr .= "&BILLINGPERIOD=" . $order->BillingPeriod . "&BILLINGFREQUENCY=" . $order->BillingFrequency . "&AUTOBILLAMT=AddToNextBilling&L_BILLINGTYPE0=RecurringPayments";
|
54 |
$nvpStr .= "&DESC=" . urlencode(substr($order->membership_level->name . " at " . get_bloginfo("name"), 0, 127));
|
55 |
-
$nvpStr .= "&NOTIFYURL=" . urlencode(admin_url('admin-ajax.php') . "?action=ipnhandler");
|
56 |
-
$nvpStr .= "&NOSHIPPING=1&L_BILLINGAGREEMENTDESCRIPTION0=" . urlencode(substr($order->membership_level->name . " at " . get_bloginfo("name"), 0, 127)) . "&L_PAYMENTTYPE0=Any";
|
57 |
|
58 |
//if billing cycles are defined
|
59 |
if(!empty($order->TotalBillingCycles))
|
@@ -89,14 +86,7 @@
|
|
89 |
|
90 |
$nvpStr .= "&CANCELURL=" . urlencode(pmpro_url("levels"));
|
91 |
|
92 |
-
$
|
93 |
-
if ($account_optional)
|
94 |
-
$nvpStr .= '&SOLUTIONTYPE=Sole&LANDINGPAGE=Billing';
|
95 |
-
|
96 |
-
$nvpStr = apply_filters("pmpro_set_express_checkout_nvpstr", $nvpStr, $order);
|
97 |
-
|
98 |
-
///echo str_replace("&", "&<br />", $nvpStr);
|
99 |
-
///exit;
|
100 |
|
101 |
$this->httpParsedResponseAr = $this->PPHttpPost('SetExpressCheckout', $nvpStr);
|
102 |
|
@@ -178,13 +168,10 @@
|
|
178 |
$nvpStr = "";
|
179 |
if(!empty($order->Token))
|
180 |
$nvpStr .= "&TOKEN=" . $order->Token;
|
181 |
-
$nvpStr .="&AMT=" . $amount . "&CURRENCYCODE=" . $pmpro_currency;
|
182 |
-
/*
|
183 |
if(!empty($amount_tax))
|
184 |
$nvpStr .= "&TAXAMT=" . $amount_tax;
|
185 |
-
|
186 |
-
if(!empty($order->BillingFrequency))
|
187 |
-
$nvpStr .= "&BILLINGPERIOD=" . $order->BillingPeriod . "&BILLINGFREQUENCY=" . $order->BillingFrequency . "&AUTOBILLAMT=AddToNextBilling";
|
188 |
$nvpStr .= "&DESC=" . urlencode(substr($order->membership_level->name . " at " . get_bloginfo("name"), 0, 127));
|
189 |
$nvpStr .= "&NOTIFYURL=" . urlencode(admin_url('admin-ajax.php') . "?action=ipnhandler");
|
190 |
$nvpStr .= "&NOSHIPPING=1";
|
@@ -193,7 +180,7 @@
|
|
193 |
$order->nvpStr = $nvpStr;
|
194 |
|
195 |
$this->httpParsedResponseAr = $this->PPHttpPost('DoExpressCheckoutPayment', $nvpStr);
|
196 |
-
|
197 |
if("SUCCESS" == strtoupper($this->httpParsedResponseAr["ACK"]) || "SUCCESSWITHWARNING" == strtoupper($this->httpParsedResponseAr["ACK"])) {
|
198 |
$order->payment_transaction_id = urldecode($this->httpParsedResponseAr['TRANSACTIONID']);
|
199 |
$order->status = "success";
|
@@ -229,8 +216,9 @@
|
|
229 |
|
230 |
//taxes on the amount
|
231 |
$amount = $order->PaymentAmount;
|
232 |
-
$amount_tax = $order->getTaxForPrice($amount);
|
233 |
-
|
|
|
234 |
|
235 |
//paypal profile stuff
|
236 |
$nvpStr = "";
|
@@ -260,10 +248,7 @@
|
|
260 |
$nvpStr .= "&TRIALTOTALBILLINGCYCLES=" . $order->TrialBillingCycles;
|
261 |
|
262 |
$this->nvpStr = $nvpStr;
|
263 |
-
|
264 |
-
///echo str_replace("&", "&<br />", $nvpStr);
|
265 |
-
///exit;
|
266 |
-
|
267 |
$this->httpParsedResponseAr = $this->PPHttpPost('CreateRecurringPaymentsProfile', $nvpStr);
|
268 |
|
269 |
if("SUCCESS" == strtoupper($this->httpParsedResponseAr["ACK"]) || "SUCCESSWITHWARNING" == strtoupper($this->httpParsedResponseAr["ACK"])) {
|
@@ -289,51 +274,23 @@
|
|
289 |
{
|
290 |
//paypal profile stuff
|
291 |
$nvpStr = "";
|
292 |
-
$nvpStr .= "&PROFILEID=" .
|
293 |
|
294 |
$this->httpParsedResponseAr = $this->PPHttpPost('ManageRecurringPaymentsProfileStatus', $nvpStr);
|
295 |
-
|
296 |
-
if("SUCCESS" == strtoupper($this->httpParsedResponseAr["ACK"]) || "SUCCESSWITHWARNING" == strtoupper($this->httpParsedResponseAr["ACK"]))
|
297 |
-
{
|
298 |
$order->updateStatus("cancelled");
|
299 |
-
return true;
|
300 |
-
|
301 |
-
else
|
302 |
-
{
|
303 |
$order->status = "error";
|
304 |
$order->errorcode = $this->httpParsedResponseAr['L_ERRORCODE0'];
|
305 |
-
$order->error = urldecode($this->httpParsedResponseAr['L_LONGMESSAGE0'])
|
306 |
$order->shorterror = urldecode($this->httpParsedResponseAr['L_SHORTMESSAGE0']);
|
307 |
|
308 |
-
return false;
|
309 |
-
}
|
310 |
-
}
|
311 |
-
|
312 |
-
function getSubscriptionStatus(&$order)
|
313 |
-
{
|
314 |
-
if(empty($order->subscription_transaction_id))
|
315 |
return false;
|
316 |
-
|
317 |
-
//paypal profile stuff
|
318 |
-
$nvpStr = "";
|
319 |
-
$nvpStr .= "&PROFILEID=" . urlencode($order->subscription_transaction_id);
|
320 |
-
|
321 |
-
$this->httpParsedResponseAr = $this->PPHttpPost('GetRecurringPaymentsProfileDetails', $nvpStr);
|
322 |
-
|
323 |
-
if("SUCCESS" == strtoupper($this->httpParsedResponseAr["ACK"]) || "SUCCESSWITHWARNING" == strtoupper($this->httpParsedResponseAr["ACK"]))
|
324 |
-
{
|
325 |
-
return $this->httpParsedResponseAr;
|
326 |
-
}
|
327 |
-
else
|
328 |
-
{
|
329 |
-
$order->status = "error";
|
330 |
-
$order->errorcode = $this->httpParsedResponseAr['L_ERRORCODE0'];
|
331 |
-
$order->error = urldecode($this->httpParsedResponseAr['L_LONGMESSAGE0']);
|
332 |
-
$order->shorterror = urldecode($this->httpParsedResponseAr['L_SHORTMESSAGE0']);
|
333 |
-
|
334 |
-
return false;
|
335 |
}
|
336 |
-
}
|
337 |
|
338 |
/**
|
339 |
* PAYPAL Function
|
@@ -399,4 +356,4 @@
|
|
399 |
|
400 |
return $httpParsedResponseAr;
|
401 |
}
|
402 |
-
}
|
9 |
}
|
10 |
|
11 |
function process(&$order)
|
12 |
+
{
|
13 |
if(pmpro_isLevelRecurring($order->membership_level))
|
14 |
{
|
15 |
+
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $order->BillingFrequency . " " . $order->BillingPeriod)) . "T0:0:0";
|
16 |
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
|
17 |
return $this->subscribe($order);
|
18 |
}
|
40 |
|
41 |
//taxes on the amount
|
42 |
$amount = $order->PaymentAmount;
|
43 |
+
$amount_tax = $order->getTaxForPrice($amount);
|
44 |
$order->subtotal = $amount;
|
45 |
$amount = round((float)$amount + (float)$amount_tax, 2);
|
46 |
|
47 |
//paypal profile stuff
|
48 |
$nvpStr = "";
|
49 |
+
$nvpStr .="&AMT=" . $initial_payment . "&CURRENCYCODE=" . $pmpro_currency . "&PROFILESTARTDATE=" . $order->ProfileStartDate;
|
50 |
+
$nvpStr .= "&BILLINGPERIOD=" . $order->BillingPeriod . "&BILLINGFREQUENCY=" . $order->BillingFrequency . "&AUTOBILLAMT=AddToNextBilling";
|
|
|
|
|
|
|
51 |
$nvpStr .= "&DESC=" . urlencode(substr($order->membership_level->name . " at " . get_bloginfo("name"), 0, 127));
|
52 |
+
$nvpStr .= "&NOTIFYURL=" . urlencode(admin_url('admin-ajax.php') . "?action=ipnhandler");
|
53 |
+
$nvpStr .= "&NOSHIPPING=1&L_BILLINGTYPE0=RecurringPayments&L_BILLINGAGREEMENTDESCRIPTION0=" . urlencode(substr($order->membership_level->name . " at " . get_bloginfo("name"), 0, 127)) . "&L_PAYMENTTYPE0=Any";
|
54 |
|
55 |
//if billing cycles are defined
|
56 |
if(!empty($order->TotalBillingCycles))
|
86 |
|
87 |
$nvpStr .= "&CANCELURL=" . urlencode(pmpro_url("levels"));
|
88 |
|
89 |
+
$nvpStr = apply_filters("pmpro_set_express_checkout_nvpstr", $nvpStr, $order);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
90 |
|
91 |
$this->httpParsedResponseAr = $this->PPHttpPost('SetExpressCheckout', $nvpStr);
|
92 |
|
168 |
$nvpStr = "";
|
169 |
if(!empty($order->Token))
|
170 |
$nvpStr .= "&TOKEN=" . $order->Token;
|
171 |
+
$nvpStr .="&AMT=" . $amount . "&CURRENCYCODE=" . $pmpro_currency . "&PROFILESTARTDATE=" . $order->ProfileStartDate;
|
|
|
172 |
if(!empty($amount_tax))
|
173 |
$nvpStr .= "&TAXAMT=" . $amount_tax;
|
174 |
+
$nvpStr .= "&BILLINGPERIOD=" . $order->BillingPeriod . "&BILLINGFREQUENCY=" . $order->BillingFrequency . "&AUTOBILLAMT=AddToNextBilling";
|
|
|
|
|
175 |
$nvpStr .= "&DESC=" . urlencode(substr($order->membership_level->name . " at " . get_bloginfo("name"), 0, 127));
|
176 |
$nvpStr .= "&NOTIFYURL=" . urlencode(admin_url('admin-ajax.php') . "?action=ipnhandler");
|
177 |
$nvpStr .= "&NOSHIPPING=1";
|
180 |
$order->nvpStr = $nvpStr;
|
181 |
|
182 |
$this->httpParsedResponseAr = $this->PPHttpPost('DoExpressCheckoutPayment', $nvpStr);
|
183 |
+
|
184 |
if("SUCCESS" == strtoupper($this->httpParsedResponseAr["ACK"]) || "SUCCESSWITHWARNING" == strtoupper($this->httpParsedResponseAr["ACK"])) {
|
185 |
$order->payment_transaction_id = urldecode($this->httpParsedResponseAr['TRANSACTIONID']);
|
186 |
$order->status = "success";
|
216 |
|
217 |
//taxes on the amount
|
218 |
$amount = $order->PaymentAmount;
|
219 |
+
$amount_tax = $order->getTaxForPrice($amount);
|
220 |
+
$order->subtotal = $amount;
|
221 |
+
$amount = round((float)$amount + (float)$amount_tax, 2);
|
222 |
|
223 |
//paypal profile stuff
|
224 |
$nvpStr = "";
|
248 |
$nvpStr .= "&TRIALTOTALBILLINGCYCLES=" . $order->TrialBillingCycles;
|
249 |
|
250 |
$this->nvpStr = $nvpStr;
|
251 |
+
|
|
|
|
|
|
|
252 |
$this->httpParsedResponseAr = $this->PPHttpPost('CreateRecurringPaymentsProfile', $nvpStr);
|
253 |
|
254 |
if("SUCCESS" == strtoupper($this->httpParsedResponseAr["ACK"]) || "SUCCESSWITHWARNING" == strtoupper($this->httpParsedResponseAr["ACK"])) {
|
274 |
{
|
275 |
//paypal profile stuff
|
276 |
$nvpStr = "";
|
277 |
+
$nvpStr .= "&PROFILEID=" . $order->subscription_transaction_id . "&ACTION=Cancel&NOTE=User requested cancel.";
|
278 |
|
279 |
$this->httpParsedResponseAr = $this->PPHttpPost('ManageRecurringPaymentsProfileStatus', $nvpStr);
|
280 |
+
if("SUCCESS" == strtoupper($this->httpParsedResponseAr["ACK"]) || "SUCCESSWITHWARNING" == strtoupper($this->httpParsedResponseAr["ACK"]) || $this->httpParsedResponseAr['L_ERRORCODE0'] == "11556") {
|
|
|
|
|
281 |
$order->updateStatus("cancelled");
|
282 |
+
return true;
|
283 |
+
//exit('CreateRecurringPaymentsProfile Completed Successfully: '.print_r($this->httpParsedResponseAr, true));
|
284 |
+
} else {
|
|
|
285 |
$order->status = "error";
|
286 |
$order->errorcode = $this->httpParsedResponseAr['L_ERRORCODE0'];
|
287 |
+
$order->error = urldecode($this->httpParsedResponseAr['L_LONGMESSAGE0']);
|
288 |
$order->shorterror = urldecode($this->httpParsedResponseAr['L_SHORTMESSAGE0']);
|
289 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
290 |
return false;
|
291 |
+
//exit('CreateRecurringPaymentsProfile failed: ' . print_r($httpParsedResponseAr, true));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
292 |
}
|
293 |
+
}
|
294 |
|
295 |
/**
|
296 |
* PAYPAL Function
|
356 |
|
357 |
return $httpParsedResponseAr;
|
358 |
}
|
359 |
+
}
|
classes/gateways/class.pmprogateway_paypalstandard.php
CHANGED
@@ -69,7 +69,7 @@
|
|
69 |
$paypal_args = array(
|
70 |
'cmd' => '_xclick-subscriptions',
|
71 |
'a1' => number_format($initial_payment, 2),
|
72 |
-
'p1' =>
|
73 |
't1' => $period,
|
74 |
'a3' => number_format($amount, 2),
|
75 |
'p3' => $order->BillingFrequency,
|
@@ -114,13 +114,13 @@
|
|
114 |
else
|
115 |
{
|
116 |
//we can try to work in any change in ProfileStartDate
|
117 |
-
$psd = date("Y-m-d", strtotime("+ " . $order->BillingFrequency . " " . $order->BillingPeriod
|
118 |
$adjusted_psd = apply_filters("pmpro_profile_start_date", $psd, $order);
|
119 |
if($psd != $adjusted_psd)
|
120 |
{
|
121 |
//someone is trying to push the start date back
|
122 |
-
$adjusted_psd_time = strtotime($adjusted_psd
|
123 |
-
$seconds_til_psd = $adjusted_psd_time -
|
124 |
$days_til_psd = floor($seconds_til_psd/(60*60*24));
|
125 |
|
126 |
//push back trial one by days_til_psd
|
@@ -144,20 +144,9 @@
|
|
144 |
if(!empty($order->TotalBillingCycles))
|
145 |
{
|
146 |
if(!empty($trial_amount))
|
147 |
-
|
148 |
-
|
149 |
-
$srt = intval($order->TotalBillingCycles) - 1; //subtract one for the trial period
|
150 |
-
}
|
151 |
-
else
|
152 |
-
{
|
153 |
-
$srt = intval($order->TotalBillingCycles);
|
154 |
-
}
|
155 |
-
|
156 |
-
//srt must be at least 2 or the subscription is not "recurring" according to paypal
|
157 |
-
if($srt > 1)
|
158 |
-
$paypal_args['srt'] = $srt;
|
159 |
else
|
160 |
-
$paypal_args['
|
161 |
}
|
162 |
else
|
163 |
$paypal_args['srt'] = '0'; //indefinite subscription
|
@@ -195,17 +184,13 @@
|
|
195 |
foreach($additional_parameters as $key => $value)
|
196 |
$nvpStr .= urlencode("&" . $key . "=" . $value);
|
197 |
}
|
198 |
-
|
199 |
-
$account_optional = apply_filters('pmpro_paypal_account_optional', true);
|
200 |
-
if ($account_optional)
|
201 |
-
$nvpStr .= '&SOLUTIONTYPE=Sole&LANDINGPAGE=Billing';
|
202 |
|
203 |
$nvpStr = apply_filters("pmpro_paypal_standard_nvpstr", $nvpStr, $order);
|
204 |
|
205 |
//redirect to paypal
|
206 |
$paypal_url .= $nvpStr;
|
207 |
|
208 |
-
//
|
209 |
|
210 |
wp_redirect($paypal_url);
|
211 |
exit;
|
@@ -215,23 +200,21 @@
|
|
215 |
{
|
216 |
//paypal profile stuff
|
217 |
$nvpStr = "";
|
218 |
-
$nvpStr .= "&PROFILEID=" .
|
219 |
|
220 |
$this->httpParsedResponseAr = $this->PPHttpPost('ManageRecurringPaymentsProfileStatus', $nvpStr);
|
221 |
-
|
222 |
-
if("SUCCESS" == strtoupper($this->httpParsedResponseAr["ACK"]) || "SUCCESSWITHWARNING" == strtoupper($this->httpParsedResponseAr["ACK"]))
|
223 |
-
{
|
224 |
$order->updateStatus("cancelled");
|
225 |
-
return true;
|
226 |
-
|
227 |
-
else
|
228 |
-
{
|
229 |
$order->status = "error";
|
230 |
$order->errorcode = $this->httpParsedResponseAr['L_ERRORCODE0'];
|
231 |
-
$order->error = urldecode($this->httpParsedResponseAr['L_LONGMESSAGE0'])
|
232 |
$order->shorterror = urldecode($this->httpParsedResponseAr['L_SHORTMESSAGE0']);
|
233 |
|
234 |
-
return false;
|
|
|
235 |
}
|
236 |
}
|
237 |
|
@@ -271,7 +254,7 @@
|
|
271 |
|
272 |
// NVPRequest for submitting to server
|
273 |
$nvpreq = "METHOD=$methodName_&VERSION=$version&PWD=$API_Password&USER=$API_UserName&SIGNATURE=$API_Signature$nvpStr_";
|
274 |
-
|
275 |
// setting the nvpreq as POST FIELD to curl
|
276 |
curl_setopt($ch, CURLOPT_POSTFIELDS, $nvpreq);
|
277 |
|
@@ -299,4 +282,4 @@
|
|
299 |
|
300 |
return $httpParsedResponseAr;
|
301 |
}
|
302 |
-
}
|
69 |
$paypal_args = array(
|
70 |
'cmd' => '_xclick-subscriptions',
|
71 |
'a1' => number_format($initial_payment, 2),
|
72 |
+
'p1' => '1',
|
73 |
't1' => $period,
|
74 |
'a3' => number_format($amount, 2),
|
75 |
'p3' => $order->BillingFrequency,
|
114 |
else
|
115 |
{
|
116 |
//we can try to work in any change in ProfileStartDate
|
117 |
+
$psd = date("Y-m-d", strtotime("+ " . $order->BillingFrequency . " " . $order->BillingPeriod)) . "T0:0:0";
|
118 |
$adjusted_psd = apply_filters("pmpro_profile_start_date", $psd, $order);
|
119 |
if($psd != $adjusted_psd)
|
120 |
{
|
121 |
//someone is trying to push the start date back
|
122 |
+
$adjusted_psd_time = strtotime($adjusted_psd);
|
123 |
+
$seconds_til_psd = $adjusted_psd_time - time();
|
124 |
$days_til_psd = floor($seconds_til_psd/(60*60*24));
|
125 |
|
126 |
//push back trial one by days_til_psd
|
144 |
if(!empty($order->TotalBillingCycles))
|
145 |
{
|
146 |
if(!empty($trial_amount))
|
147 |
+
$paypal_args['srt'] = intval($order->TotalBillingCycles) - 1; //subtract 1 for the trial period
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
148 |
else
|
149 |
+
$paypal_args['srt'] = intval($order->TotalBillingCycles);
|
150 |
}
|
151 |
else
|
152 |
$paypal_args['srt'] = '0'; //indefinite subscription
|
184 |
foreach($additional_parameters as $key => $value)
|
185 |
$nvpStr .= urlencode("&" . $key . "=" . $value);
|
186 |
}
|
|
|
|
|
|
|
|
|
187 |
|
188 |
$nvpStr = apply_filters("pmpro_paypal_standard_nvpstr", $nvpStr, $order);
|
189 |
|
190 |
//redirect to paypal
|
191 |
$paypal_url .= $nvpStr;
|
192 |
|
193 |
+
//die($paypal_url);
|
194 |
|
195 |
wp_redirect($paypal_url);
|
196 |
exit;
|
200 |
{
|
201 |
//paypal profile stuff
|
202 |
$nvpStr = "";
|
203 |
+
$nvpStr .= "&PROFILEID=" . $order->subscription_transaction_id . "&ACTION=Cancel&NOTE=User requested cancel.";
|
204 |
|
205 |
$this->httpParsedResponseAr = $this->PPHttpPost('ManageRecurringPaymentsProfileStatus', $nvpStr);
|
206 |
+
if("SUCCESS" == strtoupper($this->httpParsedResponseAr["ACK"]) || "SUCCESSWITHWARNING" == strtoupper($this->httpParsedResponseAr["ACK"]) || $this->httpParsedResponseAr['L_ERRORCODE0'] == "11556") {
|
|
|
|
|
207 |
$order->updateStatus("cancelled");
|
208 |
+
return true;
|
209 |
+
//exit('CreateRecurringPaymentsProfile Completed Successfully: '.print_r($this->httpParsedResponseAr, true));
|
210 |
+
} else {
|
|
|
211 |
$order->status = "error";
|
212 |
$order->errorcode = $this->httpParsedResponseAr['L_ERRORCODE0'];
|
213 |
+
$order->error = urldecode($this->httpParsedResponseAr['L_LONGMESSAGE0']);
|
214 |
$order->shorterror = urldecode($this->httpParsedResponseAr['L_SHORTMESSAGE0']);
|
215 |
|
216 |
+
return false;
|
217 |
+
//exit('CreateRecurringPaymentsProfile failed: ' . print_r($httpParsedResponseAr, true));
|
218 |
}
|
219 |
}
|
220 |
|
254 |
|
255 |
// NVPRequest for submitting to server
|
256 |
$nvpreq = "METHOD=$methodName_&VERSION=$version&PWD=$API_Password&USER=$API_UserName&SIGNATURE=$API_Signature$nvpStr_";
|
257 |
+
|
258 |
// setting the nvpreq as POST FIELD to curl
|
259 |
curl_setopt($ch, CURLOPT_POSTFIELDS, $nvpreq);
|
260 |
|
282 |
|
283 |
return $httpParsedResponseAr;
|
284 |
}
|
285 |
+
}
|
classes/gateways/class.pmprogateway_stripe.php
CHANGED
@@ -58,8 +58,6 @@
|
|
58 |
|
59 |
function charge(&$order)
|
60 |
{
|
61 |
-
global $pmpro_currency;
|
62 |
-
|
63 |
//create a code for the order
|
64 |
if(empty($order->code))
|
65 |
$order->code = $order->getRandomCode();
|
@@ -85,7 +83,7 @@
|
|
85 |
{
|
86 |
$response = Stripe_Charge::create(array(
|
87 |
"amount" => $amount * 100, # amount in cents, again
|
88 |
-
"currency" =>
|
89 |
"customer" => $this->customer->id,
|
90 |
"description" => "Order #" . $order->code . ", " . trim($order->FirstName . " " . $order->LastName) . " (" . $order->Email . ")"
|
91 |
)
|
@@ -164,21 +162,13 @@
|
|
164 |
//update the customer description and card
|
165 |
if(!empty($order->stripeToken))
|
166 |
{
|
167 |
-
$
|
168 |
-
|
169 |
-
if (empty($name))
|
170 |
-
{
|
171 |
-
$name = trim($current_user->first_name . " " . $current_user->last_name);
|
172 |
-
}
|
173 |
-
|
174 |
-
$this->customer->description = $name . " (" . $order->Email . ")";
|
175 |
-
$this->customer->email = $order->Email;
|
176 |
$this->customer->card = $order->stripeToken;
|
177 |
$this->customer->save();
|
178 |
}
|
179 |
|
180 |
return $this->customer;
|
181 |
-
}
|
182 |
catch (Exception $e)
|
183 |
{
|
184 |
//assume no customer found
|
@@ -192,7 +182,6 @@
|
|
192 |
{
|
193 |
$this->customer = Stripe_Customer::create(array(
|
194 |
"description" => trim($order->FirstName . " " . $order->LastName) . " (" . $order->Email . ")",
|
195 |
-
"email" => $order->Email,
|
196 |
"card" => $order->stripeToken
|
197 |
));
|
198 |
}
|
@@ -203,25 +192,9 @@
|
|
203 |
return false;
|
204 |
}
|
205 |
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
update_user_meta($user_id, "pmpro_stripe_customerid", $this->customer->id);
|
210 |
-
}
|
211 |
-
else
|
212 |
-
{
|
213 |
-
//user not registered yet, queue it up
|
214 |
-
global $pmpro_stripe_customer_id;
|
215 |
-
$pmpro_stripe_customer_id = $this->customer->id;
|
216 |
-
function pmpro_user_register_stripe_customerid($user_id)
|
217 |
-
{
|
218 |
-
global $pmpro_stripe_customer_id;
|
219 |
-
update_user_meta($user_id, "pmpro_stripe_customerid", $pmpro_stripe_customer_id);
|
220 |
-
}
|
221 |
-
add_action("user_register", "pmpro_user_register_stripe_customerid");
|
222 |
-
}
|
223 |
-
|
224 |
-
return apply_filters('pmpro_stripe_create_customer', $this->customer);
|
225 |
}
|
226 |
|
227 |
return false;
|
@@ -229,8 +202,6 @@
|
|
229 |
|
230 |
function subscribe(&$order)
|
231 |
{
|
232 |
-
global $pmpro_currency;
|
233 |
-
|
234 |
//create a code for the order
|
235 |
if(empty($order->code))
|
236 |
$order->code = $order->getRandomCode();
|
@@ -245,7 +216,8 @@
|
|
245 |
|
246 |
//figure out the amounts
|
247 |
$amount = $order->PaymentAmount;
|
248 |
-
$amount_tax = $order->getTaxForPrice($amount);
|
|
|
249 |
$amount = round((float)$amount + (float)$amount_tax, 2);
|
250 |
|
251 |
/*
|
@@ -266,13 +238,13 @@
|
|
266 |
$trial_period_days = $order->BillingFrequency * 30; //assume monthly
|
267 |
|
268 |
//convert to a profile start date
|
269 |
-
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $trial_period_days . " Day"
|
270 |
|
271 |
//filter the start date
|
272 |
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
|
273 |
|
274 |
//convert back to days
|
275 |
-
$trial_period_days = ceil(abs(strtotime(date("Y-m-d")
|
276 |
|
277 |
//now add the actual trial set by the site
|
278 |
if(!empty($order->TrialBillingCycles))
|
@@ -290,18 +262,16 @@
|
|
290 |
|
291 |
//create a plan
|
292 |
try
|
293 |
-
{
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
$plan = Stripe_Plan::create(apply_filters('pmpro_stripe_create_plan_array', $plan));
|
305 |
}
|
306 |
catch (Exception $e)
|
307 |
{
|
@@ -353,48 +323,29 @@
|
|
353 |
|
354 |
function cancel(&$order)
|
355 |
{
|
356 |
-
//no matter what happens below, we're going to cancel the order in our system
|
357 |
-
$order->updateStatus("cancelled");
|
358 |
-
|
359 |
//require a subscription id
|
360 |
if(empty($order->subscription_transaction_id))
|
361 |
return false;
|
362 |
|
363 |
//find the customer
|
364 |
-
$this->getCustomer($order);
|
365 |
|
366 |
if(!empty($this->customer))
|
367 |
{
|
368 |
-
//
|
369 |
-
|
370 |
-
|
371 |
-
|
|
|
|
|
372 |
{
|
373 |
-
//
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
{
|
379 |
-
if($sub->data[0]->plan->id == $order->code)
|
380 |
-
{
|
381 |
-
//found it, cancel it
|
382 |
-
try
|
383 |
-
{
|
384 |
-
$this->customer->subscriptions->retrieve($sub->data[0]->id)->cancel();
|
385 |
-
break;
|
386 |
-
}
|
387 |
-
catch(Exception $e)
|
388 |
-
{
|
389 |
-
$order->error = __("Could not cancel old subscription.", "pmpro");
|
390 |
-
$order->shorterror = $order->error;
|
391 |
-
|
392 |
-
return false;
|
393 |
-
}
|
394 |
-
}
|
395 |
-
}
|
396 |
-
}
|
397 |
|
|
|
398 |
return true;
|
399 |
}
|
400 |
else
|
58 |
|
59 |
function charge(&$order)
|
60 |
{
|
|
|
|
|
61 |
//create a code for the order
|
62 |
if(empty($order->code))
|
63 |
$order->code = $order->getRandomCode();
|
83 |
{
|
84 |
$response = Stripe_Charge::create(array(
|
85 |
"amount" => $amount * 100, # amount in cents, again
|
86 |
+
"currency" => strtolower(pmpro_getOption("currency")),
|
87 |
"customer" => $this->customer->id,
|
88 |
"description" => "Order #" . $order->code . ", " . trim($order->FirstName . " " . $order->LastName) . " (" . $order->Email . ")"
|
89 |
)
|
162 |
//update the customer description and card
|
163 |
if(!empty($order->stripeToken))
|
164 |
{
|
165 |
+
$this->customer->description = trim($order->FirstName . " " . $order->LastName) . " (" . $order->Email . ")";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
166 |
$this->customer->card = $order->stripeToken;
|
167 |
$this->customer->save();
|
168 |
}
|
169 |
|
170 |
return $this->customer;
|
171 |
+
}
|
172 |
catch (Exception $e)
|
173 |
{
|
174 |
//assume no customer found
|
182 |
{
|
183 |
$this->customer = Stripe_Customer::create(array(
|
184 |
"description" => trim($order->FirstName . " " . $order->LastName) . " (" . $order->Email . ")",
|
|
|
185 |
"card" => $order->stripeToken
|
186 |
));
|
187 |
}
|
192 |
return false;
|
193 |
}
|
194 |
|
195 |
+
update_user_meta($user_id, "pmpro_stripe_customerid", $this->customer->id);
|
196 |
+
|
197 |
+
return $this->customer;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
198 |
}
|
199 |
|
200 |
return false;
|
202 |
|
203 |
function subscribe(&$order)
|
204 |
{
|
|
|
|
|
205 |
//create a code for the order
|
206 |
if(empty($order->code))
|
207 |
$order->code = $order->getRandomCode();
|
216 |
|
217 |
//figure out the amounts
|
218 |
$amount = $order->PaymentAmount;
|
219 |
+
$amount_tax = $order->getTaxForPrice($amount);
|
220 |
+
$order->subtotal = $amount;
|
221 |
$amount = round((float)$amount + (float)$amount_tax, 2);
|
222 |
|
223 |
/*
|
238 |
$trial_period_days = $order->BillingFrequency * 30; //assume monthly
|
239 |
|
240 |
//convert to a profile start date
|
241 |
+
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $trial_period_days . " Day")) . "T0:0:0";
|
242 |
|
243 |
//filter the start date
|
244 |
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
|
245 |
|
246 |
//convert back to days
|
247 |
+
$trial_period_days = ceil(abs(strtotime(date("Y-m-d")) - strtotime($order->ProfileStartDate)) / 86400);
|
248 |
|
249 |
//now add the actual trial set by the site
|
250 |
if(!empty($order->TrialBillingCycles))
|
262 |
|
263 |
//create a plan
|
264 |
try
|
265 |
+
{
|
266 |
+
$plan = Stripe_Plan::create(array(
|
267 |
+
"amount" => $amount * 100,
|
268 |
+
"interval_count" => $order->BillingFrequency,
|
269 |
+
"interval" => strtolower($order->BillingPeriod),
|
270 |
+
"trial_period_days" => $trial_period_days,
|
271 |
+
"name" => $order->membership_name . " for order " . $order->code,
|
272 |
+
"currency" => strtolower(pmpro_getOption("currency")),
|
273 |
+
"id" => $order->code)
|
274 |
+
);
|
|
|
|
|
275 |
}
|
276 |
catch (Exception $e)
|
277 |
{
|
323 |
|
324 |
function cancel(&$order)
|
325 |
{
|
|
|
|
|
|
|
326 |
//require a subscription id
|
327 |
if(empty($order->subscription_transaction_id))
|
328 |
return false;
|
329 |
|
330 |
//find the customer
|
331 |
+
$this->getCustomer($order);
|
332 |
|
333 |
if(!empty($this->customer))
|
334 |
{
|
335 |
+
//cancel
|
336 |
+
try
|
337 |
+
{
|
338 |
+
$this->customer->cancelSubscription();
|
339 |
+
}
|
340 |
+
catch(Exception $e)
|
341 |
{
|
342 |
+
$order->updateStatus("cancelled"); //assume it's been cancelled already
|
343 |
+
$order->error = __("Could not find the subscription.", "pmpro");
|
344 |
+
$order->shorterror = $order->error;
|
345 |
+
return false; //no subscription found
|
346 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
347 |
|
348 |
+
$order->updateStatus("cancelled");
|
349 |
return true;
|
350 |
}
|
351 |
else
|
classes/gateways/class.pmprogateway_twocheckout.php
DELETED
@@ -1,145 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
require_once(dirname(__FILE__) . "/class.pmprogateway.php");
|
3 |
-
if(!class_exists("Twocheckout"))
|
4 |
-
require_once(dirname(__FILE__) . "/../../includes/lib/Twocheckout/Twocheckout.php");
|
5 |
-
class PMProGateway_Twocheckout
|
6 |
-
{
|
7 |
-
function PMProGateway_Twocheckout($gateway = NULL)
|
8 |
-
{
|
9 |
-
$this->gateway = $gateway;
|
10 |
-
return $this->gateway;
|
11 |
-
}
|
12 |
-
|
13 |
-
function process(&$order)
|
14 |
-
{
|
15 |
-
if(empty($order->code))
|
16 |
-
$order->code = $order->getRandomCode();
|
17 |
-
|
18 |
-
//clean up a couple values
|
19 |
-
$order->payment_type = "2CheckOut";
|
20 |
-
$order->CardType = "";
|
21 |
-
$order->cardtype = "";
|
22 |
-
|
23 |
-
//just save, the user will go to 2checkout to pay
|
24 |
-
$order->status = "review";
|
25 |
-
$order->saveOrder();
|
26 |
-
|
27 |
-
return true;
|
28 |
-
}
|
29 |
-
|
30 |
-
function sendToTwocheckout(&$order)
|
31 |
-
{
|
32 |
-
global $pmpro_currency;
|
33 |
-
// Set up credentials
|
34 |
-
Twocheckout::setCredentials( pmpro_getOption("twocheckout_apiusername"), pmpro_getOption("twocheckout_apipassword") );
|
35 |
-
|
36 |
-
$tco_args = array(
|
37 |
-
'sid' => pmpro_getOption("twocheckout_accountnumber"),
|
38 |
-
'mode' => '2CO', // will always be 2CO according to docs (@see https://www.2checkout.com/documentation/checkout/parameter-sets/pass-through-products/)
|
39 |
-
'li_0_type' => 'product',
|
40 |
-
'li_0_name' => substr($order->membership_level->name . " at " . get_bloginfo("name"), 0, 127),
|
41 |
-
'li_0_quantity' => 1,
|
42 |
-
'li_0_tangible' => 'N',
|
43 |
-
'li_0_product_id' => $order->code,
|
44 |
-
'merchant_order_id' => $order->code,
|
45 |
-
'currency_code' => $pmpro_currency,
|
46 |
-
'pay_method' => 'CC',
|
47 |
-
'purchase_step' => 'billing-information',
|
48 |
-
'x_receipt_link_url' => admin_url("admin-ajax.php") . "?action=twocheckout-ins" //pmpro_url("confirmation", "?level=" . $order->membership_level->id)
|
49 |
-
);
|
50 |
-
|
51 |
-
//taxes on initial amount
|
52 |
-
$initial_payment = $order->InitialPayment;
|
53 |
-
$initial_payment_tax = $order->getTaxForPrice($initial_payment);
|
54 |
-
$initial_payment = round((float)$initial_payment + (float)$initial_payment_tax, 2);
|
55 |
-
|
56 |
-
//taxes on the amount (NOT CURRENTLY USED)
|
57 |
-
$amount = $order->PaymentAmount;
|
58 |
-
$amount_tax = $order->getTaxForPrice($amount);
|
59 |
-
$order->subtotal = $amount;
|
60 |
-
$amount = round((float)$amount + (float)$amount_tax, 2);
|
61 |
-
|
62 |
-
// Recurring membership
|
63 |
-
if( pmpro_isLevelRecurring( $order->membership_level ) ) {
|
64 |
-
$tco_args['li_0_startup_fee'] = number_format($initial_payment - $amount, 2); //negative amount for lower initial payments
|
65 |
-
$recurring_payment = $order->membership_level->billing_amount;
|
66 |
-
$recurring_payment_tax = $order->getTaxForPrice($recurring_payment);
|
67 |
-
$recurring_payment = round((float)$recurring_payment + (float)$recurring_payment_tax, 2);
|
68 |
-
$tco_args['li_0_price'] = number_format($recurring_payment, 2);
|
69 |
-
|
70 |
-
$tco_args['li_0_recurrence'] = ( $order->BillingFrequency == 1 ) ? $order->BillingFrequency . ' ' . $order->BillingPeriod : $order->BillingFrequency . ' ' . $order->BillingPeriod . 's';
|
71 |
-
|
72 |
-
if( property_exists( $order, 'TotalBillingCycles' ) )
|
73 |
-
$tco_args['li_0_duration'] = ($order->BillingFrequency * $order->TotalBillingCycles ) . ' ' . $order->BillingPeriod;
|
74 |
-
else
|
75 |
-
$tco_args['li_0_duration'] = 'Forever';
|
76 |
-
}
|
77 |
-
// Non-recurring membership
|
78 |
-
else {
|
79 |
-
$tco_args['li_0_price'] = $initial_payment;
|
80 |
-
}
|
81 |
-
|
82 |
-
// Demo mode?
|
83 |
-
$environment = pmpro_getOption("gateway_environment");
|
84 |
-
if("sandbox" === $environment || "beta-sandbox" === $environment)
|
85 |
-
$tco_args['demo'] = 'Y';
|
86 |
-
|
87 |
-
// Trial?
|
88 |
-
//li_#_startup_fee Any start up fees for the product or service. Can be negative to provide discounted first installment pricing, but cannot equal or surpass the product price.
|
89 |
-
if(!empty($order->TrialBillingPeriod)) {
|
90 |
-
$trial_amount = $order->TrialAmount;
|
91 |
-
$trial_tax = $order->getTaxForPrice($trial_amount);
|
92 |
-
$trial_amount = round((float)$trial_amount + (float)$trial_tax, 2);
|
93 |
-
$tco_args['li_0_startup_fee'] = $trial_amount; // Negative trial amount
|
94 |
-
}
|
95 |
-
|
96 |
-
$ptpStr = '';
|
97 |
-
foreach( $tco_args as $key => $value ) {
|
98 |
-
reset( $tco_args ); // Used to verify whether or not we're on the first argument
|
99 |
-
$ptpStr .= ( $key == key($tco_args) ) ? '?' . $key . '=' . urlencode( $value ) : '&' . $key . '=' . urlencode( $value );
|
100 |
-
}
|
101 |
-
|
102 |
-
//anything modders might add
|
103 |
-
$additional_parameters = apply_filters( 'pmpro_twocheckout_return_url_parameters', array() );
|
104 |
-
if( ! empty( $additional_parameters ) )
|
105 |
-
foreach( $additional_parameters as $key => $value )
|
106 |
-
$ptpStr .= "&" . urlencode($key) . "=" . urlencode($value);
|
107 |
-
|
108 |
-
$ptpStr = apply_filters( 'pmpro_twocheckout_ptpstr', $ptpStr, $order );
|
109 |
-
|
110 |
-
//echo str_replace("&", "&<br />", $ptpStr);
|
111 |
-
//exit;
|
112 |
-
|
113 |
-
//redirect to 2checkout
|
114 |
-
$tco_url = 'https://www.2checkout.com/checkout/purchase' . $ptpStr;
|
115 |
-
|
116 |
-
//echo $tco_url;
|
117 |
-
//die();
|
118 |
-
wp_redirect( $tco_url );
|
119 |
-
exit;
|
120 |
-
}
|
121 |
-
|
122 |
-
function cancel(&$order) {
|
123 |
-
// If recurring, stop the recurring payment
|
124 |
-
if(pmpro_isLevelRecurring($order->membership_level)) {
|
125 |
-
$params['sale_id'] = $order->payment_transaction_id;
|
126 |
-
$result = Twocheckout_Sale::stop( $params ); // Stop the recurring billing
|
127 |
-
|
128 |
-
// Successfully cancelled
|
129 |
-
if (isset($result['response_code']) && $result['response_code'] === 'OK') {
|
130 |
-
$order->updateStatus("cancelled");
|
131 |
-
return true;
|
132 |
-
}
|
133 |
-
// Failed
|
134 |
-
else {
|
135 |
-
$order->status = "error";
|
136 |
-
$order->errorcode = $result->getCode();
|
137 |
-
$order->error = $result->getMessage();
|
138 |
-
|
139 |
-
return false;
|
140 |
-
}
|
141 |
-
}
|
142 |
-
|
143 |
-
return $order;
|
144 |
-
}
|
145 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
css/admin-rtl.css
DELETED
@@ -1,63 +0,0 @@
|
|
1 |
-
.pmpro_admin {
|
2 |
-
background: url(../images/Paid-Memberships-Pro_watermark.png) bottom left no-repeat !important;
|
3 |
-
}
|
4 |
-
|
5 |
-
.pmpro_admin .pmpro_banner h2 {
|
6 |
-
float: right;
|
7 |
-
}
|
8 |
-
|
9 |
-
.pmpro_admin .pmpro_banner .pmpro_meta {
|
10 |
-
float: right;
|
11 |
-
}
|
12 |
-
|
13 |
-
.pmpro_admin .pmpro_banner .pmpro_meta .pmpro_tag-blue {
|
14 |
-
margin: 0 5px 0 0;
|
15 |
-
}
|
16 |
-
|
17 |
-
.pmpro_admin .pmpro_banner .pmpro_logo {
|
18 |
-
float: right;
|
19 |
-
margin: 0 0 0 1em;
|
20 |
-
}
|
21 |
-
|
22 |
-
.pmpro_admin .pmpro_banner ul.pmpro_menu li {
|
23 |
-
border-left: 1px solid #CCC;
|
24 |
-
border-right: none;
|
25 |
-
}
|
26 |
-
|
27 |
-
/* messages */
|
28 |
-
.pmpro_message {
|
29 |
-
padding: 6px 25px 6px 6px;
|
30 |
-
}
|
31 |
-
|
32 |
-
/* highlighted trs */
|
33 |
-
|
34 |
-
/* discount levels */
|
35 |
-
|
36 |
-
/* pagination */
|
37 |
-
div.pmpro_pagination {
|
38 |
-
float: left;
|
39 |
-
}
|
40 |
-
|
41 |
-
/* add ons */
|
42 |
-
|
43 |
-
.pmpro_admin .widgets-holder-wrap .widget {
|
44 |
-
float: right;
|
45 |
-
margin: 0 0 1% 1%;
|
46 |
-
}
|
47 |
-
|
48 |
-
.pmpro_admin .widgets-holder-wrap .widget-title .status-label {
|
49 |
-
float: right;
|
50 |
-
margin: 0 0 0 5px;
|
51 |
-
}
|
52 |
-
|
53 |
-
.pmpro_admin .widgets-holder-wrap .widget-title .version {
|
54 |
-
left: 10px;
|
55 |
-
left: auto;
|
56 |
-
}
|
57 |
-
|
58 |
-
.pmpro_admin .widgets-holder-wrap .widget-inside .addon-thumb {
|
59 |
-
float: left;
|
60 |
-
margin: 10px 10px 0 0;
|
61 |
-
}
|
62 |
-
|
63 |
-
/* Generated by the RTLer - http://l0uy.com/rtler/ */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
css/admin.css
CHANGED
@@ -59,9 +59,9 @@ div.pmpro_pagination span.disabled {padding: 2px 5px 2px 5px; margin: 2px; borde
|
|
59 |
p.pmpro_meta_notice {font-size: .8em; padding-top: 5px; border-top: 1px solid #CCC;}
|
60 |
|
61 |
/* add ons */
|
62 |
-
.pmpro_admin .widgets-holder-wrap {clear: both; margin-top:
|
63 |
-
.pmpro_admin .widgets-holder-wrap
|
64 |
-
.pmpro_admin .widgets-holder-wrap
|
65 |
.pmpro_admin .widgets-holder-wrap .widget-top {height: auto; cursor: default; }
|
66 |
.pmpro_admin .widgets-holder-wrap .widget-inside {display: block; height: 130px; overflow: hidden; }
|
67 |
.pmpro_admin .widgets-holder-wrap .widget-inside p {height: 80px; overflow: hidden; }
|
@@ -73,8 +73,8 @@ height: 10px; overflow: hidden; border-radius: 10px; -moz-border-radius: 10px; -
|
|
73 |
.pmpro_admin .widgets-holder-wrap .disabled .widget-title .status-label {background: #F00; }
|
74 |
.pmpro_admin .widgets-holder-wrap .enabled .widget-title .status-label {background: #0C0; }
|
75 |
|
76 |
-
.pmpro_admin .widgets-holder-wrap .widget-title .version {position: absolute; top:
|
77 |
-
.pmpro_admin .widgets-holder-wrap .widget-inside .addon-thumb {width: 100px; height: 100px; float: right; margin:
|
78 |
|
79 |
/*@media (min-width: 1200px) {
|
80 |
.auto-fold .pmpro_admin .widgets-holder-wrap .widget-inside, .auto-fold .pmpro_admin .widgets-holder-wrap .widget-inside p {height: auto; }
|
@@ -93,5 +93,6 @@ height: 10px; overflow: hidden; border-radius: 10px; -moz-border-radius: 10px; -
|
|
93 |
|
94 |
/* reports */
|
95 |
.pmpro_reports-holder { }
|
|
|
96 |
.pmpro_clickable {cursor: pointer;}
|
97 |
.js .postbox.pmpro_clickable h3 {cursor: pointer;}
|
59 |
p.pmpro_meta_notice {font-size: .8em; padding-top: 5px; border-top: 1px solid #CCC;}
|
60 |
|
61 |
/* add ons */
|
62 |
+
.pmpro_admin .widgets-holder-wrap {clear: both; margin-top: 50px; }
|
63 |
+
.pmpro_admin .widgets-holder-wrap h3 {margin: 2em 0 0 0; }
|
64 |
+
.pmpro_admin .widgets-holder-wrap .widget {float: left; width: 32%; margin: 0 1% 10px 0; border: 1px solid #DFDFDF; position: relative; }
|
65 |
.pmpro_admin .widgets-holder-wrap .widget-top {height: auto; cursor: default; }
|
66 |
.pmpro_admin .widgets-holder-wrap .widget-inside {display: block; height: 130px; overflow: hidden; }
|
67 |
.pmpro_admin .widgets-holder-wrap .widget-inside p {height: 80px; overflow: hidden; }
|
73 |
.pmpro_admin .widgets-holder-wrap .disabled .widget-title .status-label {background: #F00; }
|
74 |
.pmpro_admin .widgets-holder-wrap .enabled .widget-title .status-label {background: #0C0; }
|
75 |
|
76 |
+
.pmpro_admin .widgets-holder-wrap .widget-title .version {position: absolute; top: 5px; right: 5px; }
|
77 |
+
.pmpro_admin .widgets-holder-wrap .widget-inside .addon-thumb {width: 100px; height: 100px; float: right; margin: 0 0 10px 10px; border: 1px solid #DFDFDF; background: #FFF; padding: 2px;}
|
78 |
|
79 |
/*@media (min-width: 1200px) {
|
80 |
.auto-fold .pmpro_admin .widgets-holder-wrap .widget-inside, .auto-fold .pmpro_admin .widgets-holder-wrap .widget-inside p {height: auto; }
|
93 |
|
94 |
/* reports */
|
95 |
.pmpro_reports-holder { }
|
96 |
+
.pmpro_reports-holder .postbox-container {margin-right: 5px; }
|
97 |
.pmpro_clickable {cursor: pointer;}
|
98 |
.js .postbox.pmpro_clickable h3 {cursor: pointer;}
|
css/frontend-rtl.css
DELETED
@@ -1,111 +0,0 @@
|
|
1 |
-
/*---------------------------------------
|
2 |
-
Buttons
|
3 |
-
---------------------------------------*/
|
4 |
-
|
5 |
-
/*---------------------------------------
|
6 |
-
Forms
|
7 |
-
---------------------------------------*/
|
8 |
-
form.pmpro_form div {
|
9 |
-
clear: right;
|
10 |
-
}
|
11 |
-
|
12 |
-
form.pmpro_form label {
|
13 |
-
float: right;
|
14 |
-
margin: 3px 0 0 10px;
|
15 |
-
text-align: left;
|
16 |
-
}
|
17 |
-
|
18 |
-
form.pmpro_form .input, form.pmpro_form textarea, .input, form.pmpro_form select {
|
19 |
-
margin: 0 0 0 3px;
|
20 |
-
}
|
21 |
-
|
22 |
-
form.pmpro_form .leftmar {
|
23 |
-
margin: 8px 130px 0 0;
|
24 |
-
}
|
25 |
-
|
26 |
-
form.pmpro_form .pmpro_captcha {
|
27 |
-
margin: 0 130px 0 0 !important;
|
28 |
-
}
|
29 |
-
|
30 |
-
form.pmpro_form .pmpro_submit {
|
31 |
-
margin-right: 130px;
|
32 |
-
margin-left: auto;
|
33 |
-
}
|
34 |
-
|
35 |
-
form.pmpro_form .pmpro_submit span {
|
36 |
-
float: right;
|
37 |
-
}
|
38 |
-
|
39 |
-
form.pmpro_form #pmpro_processing_message {
|
40 |
-
margin: 5px 10px 0 0;
|
41 |
-
}
|
42 |
-
|
43 |
-
/*--------------------------------------------------
|
44 |
-
Messages - Success, Error, Alert
|
45 |
-
----------------------------------------------------*/
|
46 |
-
|
47 |
-
.pmpro_content_message a {
|
48 |
-
margin: 5px 0 0 5px;
|
49 |
-
}
|
50 |
-
|
51 |
-
/*---------------------------------------
|
52 |
-
Membership Checkout
|
53 |
-
---------------------------------------*/
|
54 |
-
|
55 |
-
.pmpro_checkout ul {
|
56 |
-
margin: 5px 20px 0 0;
|
57 |
-
}
|
58 |
-
|
59 |
-
.pmpro_checkout td.rtbdr {
|
60 |
-
border-left: 1px solid #CCC;
|
61 |
-
border-right: none;
|
62 |
-
}
|
63 |
-
|
64 |
-
.pmpro_thead-msg {
|
65 |
-
float: left;
|
66 |
-
text-align: left;
|
67 |
-
}
|
68 |
-
|
69 |
-
.pmpro_ordersummary {
|
70 |
-
float: left;
|
71 |
-
}
|
72 |
-
|
73 |
-
.pmpro_sslseal {
|
74 |
-
float: left;
|
75 |
-
}
|
76 |
-
|
77 |
-
/*---------------------------------------
|
78 |
-
Membership Invoice
|
79 |
-
---------------------------------------*/
|
80 |
-
|
81 |
-
/*---------------------------------------
|
82 |
-
Membership Account
|
83 |
-
---------------------------------------*/
|
84 |
-
|
85 |
-
li.pmpro_more {
|
86 |
-
margin-right: -20px;
|
87 |
-
padding-right: 0;
|
88 |
-
padding-left: 0;
|
89 |
-
margin-left: auto;
|
90 |
-
}
|
91 |
-
|
92 |
-
/*---------------------------------------
|
93 |
-
Membership Levels
|
94 |
-
---------------------------------------*/
|
95 |
-
|
96 |
-
/*---------------------------------------
|
97 |
-
Misc
|
98 |
-
---------------------------------------*/
|
99 |
-
.pmpro_a-right {
|
100 |
-
float: left;
|
101 |
-
text-align: left;
|
102 |
-
}
|
103 |
-
|
104 |
-
.pmpro_a-print {
|
105 |
-
float: left;
|
106 |
-
background: url(../images/printer.gif) top right no-repeat;
|
107 |
-
padding: 0px 20px 2px 0px;
|
108 |
-
}
|
109 |
-
|
110 |
-
|
111 |
-
/* Generated by the RTLer - http://l0uy.com/rtler/ */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
css/frontend.css
CHANGED
@@ -1,70 +1,108 @@
|
|
1 |
/*---------------------------------------
|
2 |
Buttons
|
3 |
---------------------------------------*/
|
4 |
-
.pmpro_btn, .
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
-moz-border-radius: 4px;
|
11 |
border-radius: 4px;
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
text-decoration: none;
|
19 |
-
text-align: center;
|
20 |
-
white-space: nowrap;
|
21 |
-
vertical-align: middle;
|
22 |
-
cursor: pointer;
|
23 |
-
-webkit-user-select: none;
|
24 |
-
-moz-user-select: none;
|
25 |
-
-ms-user-select: none;
|
26 |
-
-o-user-select: none;
|
27 |
-
user-select: none;
|
28 |
}
|
29 |
|
30 |
-
.pmpro_btn:
|
31 |
-
|
32 |
-
|
33 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
}
|
35 |
|
36 |
-
.pmpro_btn:
|
37 |
-
|
38 |
-
background-color: #
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
text-decoration: none;
|
|
|
|
|
|
|
|
|
|
|
40 |
}
|
41 |
|
42 |
-
.pmpro_btn:
|
43 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
background-image: none;
|
45 |
outline: 0;
|
46 |
-
-webkit-box-shadow: inset 0
|
47 |
-
|
|
|
48 |
}
|
49 |
|
50 |
.pmpro_btn.disabled,
|
51 |
-
.pmpro_btn[disabled]
|
52 |
-
|
53 |
-
|
54 |
-
cursor: not-allowed;
|
55 |
opacity: 0.65;
|
56 |
filter: alpha(opacity=65);
|
57 |
-webkit-box-shadow: none;
|
|
|
58 |
box-shadow: none;
|
59 |
}
|
60 |
|
|
|
61 |
/*---------------------------------------
|
62 |
Forms
|
63 |
---------------------------------------*/
|
64 |
form.pmpro_form div {clear: left; margin: .5em 0 1em 0; }
|
65 |
form.pmpro_form label {float: left; margin: 3px 10px 0 0; width: 120px; font-weight: bold; text-align: right; }
|
66 |
-
form.pmpro_form label.pmpro_normal {float: none; margin: 0 0 0 0; width: auto; font-weight: normal; text-align: auto;}
|
67 |
-
.pmpro_clickable {cursor: pointer;}
|
68 |
form.pmpro_form .likelabel {font-weight: bold; }
|
69 |
form.pmpro_form .input, form.pmpro_form textarea, .input, form.pmpro_form select {padding: 3px; border: 1px solid #AAA; margin: 0 3px 0 0; }
|
70 |
form.pmpro_form textarea {font-family: Arial, Helvetica, sans-serif; font-size: 12px; }
|
@@ -81,21 +119,20 @@ form.pmpro_form #pmpro_processing_message {margin: 5px 0 0 10px; font-style: ita
|
|
81 |
/*--------------------------------------------------
|
82 |
Messages - Success, Error, Alert
|
83 |
----------------------------------------------------*/
|
84 |
-
.pmpro_message {background-color: #
|
85 |
|
86 |
-
.pmpro_success {background-color: #
|
87 |
-
.pmpro_error {background-color: #
|
88 |
-
.pmpro_alert {background-color: #
|
89 |
|
90 |
.pmpro_content_message a {margin: 5px 5px 0 0; }
|
91 |
|
92 |
-
.pmpro_message a {color: #
|
93 |
-
.pmpro_success a {color: #
|
94 |
-
.pmpro_error a {color: #
|
95 |
-
.pmpro_alert a {color: #
|
96 |
|
97 |
input.pmpro_error {background-image: none;}
|
98 |
-
select.pmpro_error {background-image: none;}
|
99 |
|
100 |
/*---------------------------------------
|
101 |
Membership Checkout
|
@@ -117,7 +154,7 @@ select.pmpro_error {background-image: none;}
|
|
117 |
|
118 |
.pmpro_checkout select {font-size: 11px; }
|
119 |
|
120 |
-
.pmpro_thead-msg {display: block; float: right; width: auto; font-style: italic; font-weight: normal; text-align: right;
|
121 |
|
122 |
.pmpro_ordersummary {float: right; }
|
123 |
|
1 |
/*---------------------------------------
|
2 |
Buttons
|
3 |
---------------------------------------*/
|
4 |
+
.pmpro_btn, .pmpro_content_message a, .pmpro_content_message a:link {
|
5 |
+
display: inline-block;
|
6 |
+
*display: inline;
|
7 |
+
padding: 4px 12px;
|
8 |
+
margin-bottom: 0;
|
9 |
+
*margin-left: .3em;
|
10 |
+
line-height: 20px;
|
11 |
+
color: #333333;
|
12 |
+
text-align: center;
|
13 |
+
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
|
14 |
+
text-decoration: none;
|
15 |
+
vertical-align: middle;
|
16 |
+
cursor: pointer;
|
17 |
+
background-color: #f5f5f5;
|
18 |
+
*background-color: #e6e6e6;
|
19 |
+
background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
|
20 |
+
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
|
21 |
+
background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
|
22 |
+
background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
|
23 |
+
background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
|
24 |
+
background-repeat: repeat-x;
|
25 |
+
border: 1px solid #cccccc;
|
26 |
+
*border: 0;
|
27 |
+
border-color: #e6e6e6 #e6e6e6 #bfbfbf;
|
28 |
+
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
29 |
+
border-bottom-color: #b3b3b3;
|
30 |
+
-webkit-border-radius: 4px;
|
31 |
-moz-border-radius: 4px;
|
32 |
border-radius: 4px;
|
33 |
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);
|
34 |
+
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
|
35 |
+
*zoom: 1;
|
36 |
+
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
|
37 |
+
-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
|
38 |
+
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
}
|
40 |
|
41 |
+
.pmpro_btn:hover,
|
42 |
+
.pmpro_btn:focus,
|
43 |
+
.pmpro_btn:active,
|
44 |
+
.pmpro_btn.active,
|
45 |
+
.pmpro_btn.disabled,
|
46 |
+
.pmpro_btn[disabled],
|
47 |
+
.pmpro_content_message a:hover {
|
48 |
+
color: #333333;
|
49 |
+
background-color: #e6e6e6;
|
50 |
+
*background-color: #d9d9d9;
|
51 |
}
|
52 |
|
53 |
+
.pmpro_btn:active,
|
54 |
+
.pmpro_btn.active {
|
55 |
+
background-color: #cccccc \9;
|
56 |
+
}
|
57 |
+
|
58 |
+
.pmpro_btn:first-child {
|
59 |
+
*margin-left: 0;
|
60 |
+
}
|
61 |
+
|
62 |
+
.pmpro_btn:hover,
|
63 |
+
.pmpro_btn:focus,
|
64 |
+
.pmpro_content_message a:hover {
|
65 |
+
color: #333333;
|
66 |
text-decoration: none;
|
67 |
+
background-position: 0 -15px;
|
68 |
+
-webkit-transition: background-position 0.1s linear;
|
69 |
+
-moz-transition: background-position 0.1s linear;
|
70 |
+
-o-transition: background-position 0.1s linear;
|
71 |
+
transition: background-position 0.1s linear;
|
72 |
}
|
73 |
|
74 |
+
.pmpro_btn:focus {
|
75 |
+
outline: thin dotted #333;
|
76 |
+
outline: 5px auto -webkit-focus-ring-color;
|
77 |
+
outline-offset: -2px;
|
78 |
+
}
|
79 |
+
|
80 |
+
.pmpro_btn.active,
|
81 |
+
.pmpro_btn:active {
|
82 |
background-image: none;
|
83 |
outline: 0;
|
84 |
+
-webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
|
85 |
+
-moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
|
86 |
+
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
|
87 |
}
|
88 |
|
89 |
.pmpro_btn.disabled,
|
90 |
+
.pmpro_btn[disabled] {
|
91 |
+
cursor: default;
|
92 |
+
background-image: none;
|
|
|
93 |
opacity: 0.65;
|
94 |
filter: alpha(opacity=65);
|
95 |
-webkit-box-shadow: none;
|
96 |
+
-moz-box-shadow: none;
|
97 |
box-shadow: none;
|
98 |
}
|
99 |
|
100 |
+
|
101 |
/*---------------------------------------
|
102 |
Forms
|
103 |
---------------------------------------*/
|
104 |
form.pmpro_form div {clear: left; margin: .5em 0 1em 0; }
|
105 |
form.pmpro_form label {float: left; margin: 3px 10px 0 0; width: 120px; font-weight: bold; text-align: right; }
|
|
|
|
|
106 |
form.pmpro_form .likelabel {font-weight: bold; }
|
107 |
form.pmpro_form .input, form.pmpro_form textarea, .input, form.pmpro_form select {padding: 3px; border: 1px solid #AAA; margin: 0 3px 0 0; }
|
108 |
form.pmpro_form textarea {font-family: Arial, Helvetica, sans-serif; font-size: 12px; }
|
119 |
/*--------------------------------------------------
|
120 |
Messages - Success, Error, Alert
|
121 |
----------------------------------------------------*/
|
122 |
+
.pmpro_message {background-color: #D5E4F7; background-image: url(../images/icon_information.gif); background-position: 3px 5px; background-repeat: no-repeat; margin: .5em 0; padding: 6px 6px 6px 25px; color: #345395; font-size: 11px; font-weight: bold; line-height: 1.3em; }
|
123 |
|
124 |
+
.pmpro_success {background-color: #CFEECA; background-image: url(../images/icon_success.gif); color: #208A1B; }
|
125 |
+
.pmpro_error {background-color: #F9D6CB; background-image: url(../images/icon_error.gif); color: #E36154; }
|
126 |
+
.pmpro_alert {background-color: #FFF6CC; background-image: url(../images/icon_alert.gif); color: #CF8516; }
|
127 |
|
128 |
.pmpro_content_message a {margin: 5px 5px 0 0; }
|
129 |
|
130 |
+
.pmpro_message a {color: #345395; }
|
131 |
+
.pmpro_success a {color: #208A1B; }
|
132 |
+
.pmpro_error a {color: #E36154; }
|
133 |
+
.pmpro_alert a {color: #CF8516; }
|
134 |
|
135 |
input.pmpro_error {background-image: none;}
|
|
|
136 |
|
137 |
/*---------------------------------------
|
138 |
Membership Checkout
|
154 |
|
155 |
.pmpro_checkout select {font-size: 11px; }
|
156 |
|
157 |
+
.pmpro_thead-msg {display: block; float: right; width: auto; font-style: italic; font-weight: normal; text-align: right; }
|
158 |
|
159 |
.pmpro_ordersummary {float: right; }
|
160 |
|
email/billing.html
CHANGED
@@ -3,7 +3,10 @@
|
|
3 |
<p>Account: !!display_name!! (!!user_email!!)</p>
|
4 |
<p>
|
5 |
Billing Information:<br />
|
6 |
-
!!
|
|
|
|
|
|
|
7 |
</p>
|
8 |
|
9 |
<p>
|
3 |
<p>Account: !!display_name!! (!!user_email!!)</p>
|
4 |
<p>
|
5 |
Billing Information:<br />
|
6 |
+
!!billing_name!!<br />
|
7 |
+
!!billing_street!!<br />
|
8 |
+
!!billing_city!!, !!billing_state!! !!billing_zip!! !!billing_country!!
|
9 |
+
!!billing_phone!!
|
10 |
</p>
|
11 |
|
12 |
<p>
|
email/billing_failure.html
CHANGED
@@ -3,7 +3,11 @@
|
|
3 |
<p>Account: !!display_name!! (!!user_email!!)</p>
|
4 |
<p>The most recent account information we have on file is:</p>
|
5 |
|
6 |
-
<p>!!
|
|
|
|
|
|
|
|
|
7 |
|
8 |
<p>
|
9 |
!!cardtype!!: !!accountnumber!!<br />
|
3 |
<p>Account: !!display_name!! (!!user_email!!)</p>
|
4 |
<p>The most recent account information we have on file is:</p>
|
5 |
|
6 |
+
<p>!!billing_name!!</br />
|
7 |
+
!!billing_street!!<br />
|
8 |
+
!!billing_city!!, !!billing_state!! !!billing_zip!! !!billing_country!!
|
9 |
+
!!billing_phone!!
|
10 |
+
</p>
|
11 |
|
12 |
<p>
|
13 |
!!cardtype!!: !!accountnumber!!<br />
|
email/billing_failure_admin.html
CHANGED
@@ -3,7 +3,11 @@
|
|
3 |
<p>Account: !!display_name!! (!!user_email!!)</p>
|
4 |
<p>The most recent account information we have on file is:</p>
|
5 |
|
6 |
-
<p>!!
|
|
|
|
|
|
|
|
|
7 |
|
8 |
<p>
|
9 |
!!cardtype!!: !!accountnumber!!<br />
|
3 |
<p>Account: !!display_name!! (!!user_email!!)</p>
|
4 |
<p>The most recent account information we have on file is:</p>
|
5 |
|
6 |
+
<p>!!billing_name!!</br />
|
7 |
+
!!billing_street!!<br />
|
8 |
+
!!billing_city!!, !!billing_state!! !!billing_zip!! !!billing_country!!
|
9 |
+
!!billing_phone!!
|
10 |
+
</p>
|
11 |
|
12 |
<p>
|
13 |
!!cardtype!!: !!accountnumber!!<br />
|
email/checkout_check.html
CHANGED
@@ -11,7 +11,7 @@
|
|
11 |
|
12 |
<p>
|
13 |
Invoice #!!invoice_id!! on !!invoice_date!!<br />
|
14 |
-
Total Billed:
|
15 |
</p>
|
16 |
|
17 |
<p>Log in to your membership account here: !!login_link!!</p>
|
11 |
|
12 |
<p>
|
13 |
Invoice #!!invoice_id!! on !!invoice_date!!<br />
|
14 |
+
Total Billed: $!!invoice_total!!
|
15 |
</p>
|
16 |
|
17 |
<p>Log in to your membership account here: !!login_link!!</p>
|
email/checkout_express.html
CHANGED
@@ -8,7 +8,7 @@
|
|
8 |
|
9 |
<p>
|
10 |
Invoice #!!invoice_id!! on !!invoice_date!!<br />
|
11 |
-
Total Billed:
|
12 |
</p>
|
13 |
|
14 |
-
<p>Log in to your membership account here: !!login_link!!</p>
|
8 |
|
9 |
<p>
|
10 |
Invoice #!!invoice_id!! on !!invoice_date!!<br />
|
11 |
+
Total Billed: $!!invoice_total!!
|
12 |
</p>
|
13 |
|
14 |
+
<p>Log in to your membership account here: !!login_link!!</p>
|
email/checkout_express_admin.html
CHANGED
@@ -8,7 +8,7 @@
|
|
8 |
|
9 |
<p>
|
10 |
Invoice #!!invoice_id!! on !!invoice_date!!<br />
|
11 |
-
Total Billed:
|
12 |
</p>
|
13 |
|
14 |
-
<p>Log in to your membership account here: !!login_link!!</p>
|
8 |
|
9 |
<p>
|
10 |
Invoice #!!invoice_id!! on !!invoice_date!!<br />
|
11 |
+
Total Billed: $!!invoice_total!!
|
12 |
</p>
|
13 |
|
14 |
+
<p>Log in to your membership account here: !!login_link!!</p>
|
email/checkout_freetrial.html
CHANGED
@@ -8,7 +8,10 @@
|
|
8 |
|
9 |
<p>
|
10 |
Billing Information on File:<br />
|
11 |
-
!!
|
|
|
|
|
|
|
12 |
</p>
|
13 |
|
14 |
<p>
|
8 |
|
9 |
<p>
|
10 |
Billing Information on File:<br />
|
11 |
+
!!billing_name!!<br />
|
12 |
+
!!billing_street!!<br />
|
13 |
+
!!billing_city!!, !!billing_state!! !!billing_zip!! !!billing_country!!
|
14 |
+
!!billing_phone!!
|
15 |
</p>
|
16 |
|
17 |
<p>
|
email/checkout_freetrial_admin.html
CHANGED
@@ -8,7 +8,10 @@
|
|
8 |
|
9 |
<p>
|
10 |
Billing Information on File:<br />
|
11 |
-
!!
|
|
|
|
|
|
|
12 |
</p>
|
13 |
|
14 |
<p>
|
8 |
|
9 |
<p>
|
10 |
Billing Information on File:<br />
|
11 |
+
!!billing_name!!<br />
|
12 |
+
!!billing_street!!<br />
|
13 |
+
!!billing_city!!, !!billing_state!! !!billing_zip!! !!billing_country!!
|
14 |
+
!!billing_phone!!
|
15 |
</p>
|
16 |
|
17 |
<p>
|
email/checkout_paid.html
CHANGED
@@ -12,7 +12,10 @@
|
|
12 |
</p>
|
13 |
<p>
|
14 |
Billing Information:<br />
|
15 |
-
!!
|
|
|
|
|
|
|
16 |
</p>
|
17 |
|
18 |
<p>
|
12 |
</p>
|
13 |
<p>
|
14 |
Billing Information:<br />
|
15 |
+
!!billing_name!!<br />
|
16 |
+
!!billing_street!!<br />
|
17 |
+
!!billing_city!!, !!billing_state!! !!billing_zip!! !!billing_country!!
|
18 |
+
!!billing_phone!!
|
19 |
</p>
|
20 |
|
21 |
<p>
|
email/checkout_paid_admin.html
CHANGED
@@ -12,7 +12,10 @@
|
|
12 |
</p>
|
13 |
<p>
|
14 |
Billing Information:<br />
|
15 |
-
!!
|
|
|
|
|
|
|
16 |
</p>
|
17 |
|
18 |
<p>
|
12 |
</p>
|
13 |
<p>
|
14 |
Billing Information:<br />
|
15 |
+
!!billing_name!!<br />
|
16 |
+
!!billing_street!!<br />
|
17 |
+
!!billing_city!!, !!billing_state!! !!billing_zip!! !!billing_country!!
|
18 |
+
!!billing_phone!!
|
19 |
</p>
|
20 |
|
21 |
<p>
|
email/checkout_trial.html
CHANGED
@@ -12,7 +12,10 @@
|
|
12 |
</p>
|
13 |
<p>
|
14 |
Billing Information:<br />
|
15 |
-
!!
|
|
|
|
|
|
|
16 |
</p>
|
17 |
|
18 |
<p>
|
12 |
</p>
|
13 |
<p>
|
14 |
Billing Information:<br />
|
15 |
+
!!billing_name!!<br />
|
16 |
+
!!billing_street!!<br />
|
17 |
+
!!billing_city!!, !!billing_state!! !!billing_zip!! !!billing_country!!
|
18 |
+
!!billing_phone!!
|
19 |
</p>
|
20 |
|
21 |
<p>
|
email/checkout_trial_admin.html
CHANGED
@@ -12,7 +12,10 @@
|
|
12 |
</p>
|
13 |
<p>
|
14 |
Billing Information:<br />
|
15 |
-
!!
|
|
|
|
|
|
|
16 |
</p>
|
17 |
|
18 |
<p>
|
12 |
</p>
|
13 |
<p>
|
14 |
Billing Information:<br />
|
15 |
+
!!billing_name!!<br />
|
16 |
+
!!billing_street!!<br />
|
17 |
+
!!billing_city!!, !!billing_state!! !!billing_zip!! !!billing_country!!
|
18 |
+
!!billing_phone!!
|
19 |
</p>
|
20 |
|
21 |
<p>
|
email/credit_card_expiring.html
CHANGED
@@ -4,7 +4,9 @@
|
|
4 |
<p>The most recent account information we have on file is:</p>
|
5 |
|
6 |
<p>!!billing_name!!</br />
|
7 |
-
!!
|
|
|
|
|
8 |
</p>
|
9 |
|
10 |
<p>
|
4 |
<p>The most recent account information we have on file is:</p>
|
5 |
|
6 |
<p>!!billing_name!!</br />
|
7 |
+
!!billing_street!!<br />
|
8 |
+
!!billing_city!!, !!billing_state!! !!billing_zip!! !!billing_country!!
|
9 |
+
!!billing_phone!!
|
10 |
</p>
|
11 |
|
12 |
<p>
|
email/invoice.html
CHANGED
@@ -3,11 +3,15 @@
|
|
3 |
<p>Account: !!display_name!! (!!user_email!!)</p>
|
4 |
<p>
|
5 |
Invoice #!!invoice_id!! on !!invoice_date!!<br />
|
6 |
-
Total Billed:
|
7 |
</p>
|
8 |
<p>
|
9 |
Billing Information:<br />
|
10 |
-
!!
|
|
|
|
|
|
|
|
|
11 |
</p>
|
12 |
|
13 |
<p>
|
3 |
<p>Account: !!display_name!! (!!user_email!!)</p>
|
4 |
<p>
|
5 |
Invoice #!!invoice_id!! on !!invoice_date!!<br />
|
6 |
+
Total Billed: $!!invoice_total!!
|
7 |
</p>
|
8 |
<p>
|
9 |
Billing Information:<br />
|
10 |
+
!!billing_name!!<br />
|
11 |
+
!!billing_street!!<br />
|
12 |
+
!!billing_city!!, !!billing_state!! !!billing_zip!!<br />
|
13 |
+
!!billing_country!!<br />
|
14 |
+
!!billing_phone!!
|
15 |
</p>
|
16 |
|
17 |
<p>
|
includes/adminpages.php
CHANGED
@@ -1,73 +1,28 @@
|
|
1 |
<?php
|
2 |
-
/*
|
3 |
-
Get array of PMPro Capabilities
|
4 |
-
*/
|
5 |
-
function pmpro_getPMProCaps()
|
6 |
-
{
|
7 |
-
$pmpro_caps = array(
|
8 |
-
//pmpro_memberships_menu //this controls viewing the menu itself
|
9 |
-
'pmpro_membershiplevels',
|
10 |
-
'pmpro_pagesettings',
|
11 |
-
'pmpro_paymentsettings',
|
12 |
-
'pmpro_emailsettings',
|
13 |
-
'pmpro_advancedsettings',
|
14 |
-
'pmpro_addons',
|
15 |
-
'pmpro_memberslist',
|
16 |
-
'pmpro_reports',
|
17 |
-
'pmpro_orders',
|
18 |
-
'pmpro_discountcodes'
|
19 |
-
);
|
20 |
-
|
21 |
-
return $pmpro_caps;
|
22 |
-
}
|
23 |
-
|
24 |
/*
|
25 |
Dashboard Menu
|
26 |
*/
|
27 |
function pmpro_add_pages()
|
28 |
{
|
29 |
-
global $wpdb;
|
30 |
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
}
|
42 |
-
}
|
43 |
-
|
44 |
-
if(empty($top_menu_cap))
|
45 |
-
return;
|
46 |
-
|
47 |
-
add_menu_page(__('Memberships', 'pmpro'), __('Memberships', 'pmpro'), 'pmpro_memberships_menu', 'pmpro-membershiplevels', $top_menu_cap, PMPRO_URL . '/images/menu_users.png');
|
48 |
-
add_submenu_page('pmpro-membershiplevels', __('Page Settings', 'pmpro'), __('Page Settings', 'pmpro'), 'pmpro_pagesettings', 'pmpro-pagesettings', 'pmpro_pagesettings');
|
49 |
-
add_submenu_page('pmpro-membershiplevels', __('Payment Settings', 'pmpro'), __('Payment Settings', 'pmpro'), 'pmpro_paymentsettings', 'pmpro-paymentsettings', 'pmpro_paymentsettings');
|
50 |
-
add_submenu_page('pmpro-membershiplevels', __('Email Settings', 'pmpro'), __('Email Settings', 'pmpro'), 'pmpro_emailsettings', 'pmpro-emailsettings', 'pmpro_emailsettings');
|
51 |
-
add_submenu_page('pmpro-membershiplevels', __('Advanced Settings', 'pmpro'), __('Advanced Settings', 'pmpro'), 'pmpro_advancedsettings', 'pmpro-advancedsettings', 'pmpro_advancedsettings');
|
52 |
-
add_submenu_page('pmpro-membershiplevels', __('Add Ons', 'pmpro'), __('Add Ons', 'pmpro'), 'pmpro_addons', 'pmpro-addons', 'pmpro_addons');
|
53 |
-
add_submenu_page('pmpro-membershiplevels', __('Members List', 'pmpro'), __('Members List', 'pmpro'), 'pmpro_memberslist', 'pmpro-memberslist', 'pmpro_memberslist');
|
54 |
-
add_submenu_page('pmpro-membershiplevels', __('Reports', 'pmpro'), __('Reports', 'pmpro'), 'pmpro_reports', 'pmpro-reports', 'pmpro_reports');
|
55 |
-
add_submenu_page('pmpro-membershiplevels', __('Orders', 'pmpro'), __('Orders', 'pmpro'), 'pmpro_orders', 'pmpro-orders', 'pmpro_orders');
|
56 |
-
add_submenu_page('pmpro-membershiplevels', __('Discount Codes', 'pmpro'), __('Discount Codes', 'pmpro'), 'pmpro_discountcodes', 'pmpro-discountcodes', 'pmpro_discountcodes');
|
57 |
|
58 |
//rename the automatically added Memberships submenu item
|
59 |
global $submenu;
|
60 |
if(!empty($submenu['pmpro-membershiplevels']))
|
61 |
{
|
62 |
-
|
63 |
-
|
64 |
-
$submenu['pmpro-membershiplevels'][0][0] = __( 'Membership Levels', 'pmpro' );
|
65 |
-
$submenu['pmpro-membershiplevels'][0][3] = __( 'Membership Levels', 'pmpro' );
|
66 |
-
}
|
67 |
-
else
|
68 |
-
{
|
69 |
-
unset($submenu['pmpro-membershiplevels']);
|
70 |
-
}
|
71 |
}
|
72 |
}
|
73 |
add_action('admin_menu', 'pmpro_add_pages');
|
@@ -77,98 +32,62 @@ add_action('admin_menu', 'pmpro_add_pages');
|
|
77 |
*/
|
78 |
function pmpro_admin_bar_menu() {
|
79 |
global $wp_admin_bar;
|
80 |
-
|
81 |
-
//view menu at all?
|
82 |
-
if ( !current_user_can('pmpro_memberships_menu') || !is_admin_bar_showing() )
|
83 |
return;
|
84 |
-
|
85 |
-
//array of all caps in the menu
|
86 |
-
$pmpro_caps = pmpro_getPMProCaps();
|
87 |
-
|
88 |
-
//the top level menu links to the first page they have access to
|
89 |
-
foreach($pmpro_caps as $cap)
|
90 |
-
{
|
91 |
-
if(current_user_can($cap))
|
92 |
-
{
|
93 |
-
$top_menu_page = str_replace("_", "-", $cap);
|
94 |
-
break;
|
95 |
-
}
|
96 |
-
}
|
97 |
-
|
98 |
$wp_admin_bar->add_menu( array(
|
99 |
'id' => 'paid-memberships-pro',
|
100 |
'title' => __( 'Memberships', 'pmpro'),
|
101 |
-
'href' => get_admin_url(NULL, '/admin.php?page='
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
if(current_user_can('pmpro_reports'))
|
153 |
-
$wp_admin_bar->add_menu( array(
|
154 |
-
'id' => 'pmpro-reports',
|
155 |
-
'parent' => 'paid-memberships-pro',
|
156 |
-
'title' => __( 'Reports', 'pmpro'),
|
157 |
-
'href' => get_admin_url(NULL, '/admin.php?page=pmpro-reports') ) );
|
158 |
-
|
159 |
-
if(current_user_can('pmpro_orders'))
|
160 |
-
$wp_admin_bar->add_menu( array(
|
161 |
-
'id' => 'pmpro-orders',
|
162 |
-
'parent' => 'paid-memberships-pro',
|
163 |
-
'title' => __( 'Orders', 'pmpro'),
|
164 |
-
'href' => get_admin_url(NULL, '/admin.php?page=pmpro-orders') ) );
|
165 |
-
|
166 |
-
if(current_user_can('pmpro_discountcodes'))
|
167 |
-
$wp_admin_bar->add_menu( array(
|
168 |
-
'id' => 'pmpro-discount-codes',
|
169 |
-
'parent' => 'paid-memberships-pro',
|
170 |
-
'title' => __( 'Discount Codes', 'pmpro'),
|
171 |
-
'href' => get_admin_url(NULL, '/admin.php?page=pmpro-discountcodes') ) );
|
172 |
}
|
173 |
add_action('admin_bar_menu', 'pmpro_admin_bar_menu', 1000);
|
174 |
|
@@ -223,4 +142,4 @@ function pmpro_addons()
|
|
223 |
function pmpro_orders()
|
224 |
{
|
225 |
require_once(PMPRO_DIR . "/adminpages/orders.php");
|
226 |
-
}
|
1 |
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
/*
|
3 |
Dashboard Menu
|
4 |
*/
|
5 |
function pmpro_add_pages()
|
6 |
{
|
7 |
+
global $wpdb;
|
8 |
|
9 |
+
add_menu_page(__('Memberships', 'pmpro'), __('Memberships', 'pmpro'), 'manage_options', 'pmpro-membershiplevels', 'pmpro_membershiplevels', PMPRO_URL . '/images/menu_users.png');
|
10 |
+
add_submenu_page('pmpro-membershiplevels', __('Page Settings', 'pmpro'), __('Page Settings', 'pmpro'), 'manage_options', 'pmpro-pagesettings', 'pmpro_pagesettings');
|
11 |
+
add_submenu_page('pmpro-membershiplevels', __('Payment Settings', 'pmpro'), __('Payment Settings', 'pmpro'), 'manage_options', 'pmpro-paymentsettings', 'pmpro_paymentsettings');
|
12 |
+
add_submenu_page('pmpro-membershiplevels', __('Email Settings', 'pmpro'), __('Email Settings', 'pmpro'), 'manage_options', 'pmpro-emailsettings', 'pmpro_emailsettings');
|
13 |
+
add_submenu_page('pmpro-membershiplevels', __('Advanced Settings', 'pmpro'), __('Advanced Settings', 'pmpro'), 'manage_options', 'pmpro-advancedsettings', 'pmpro_advancedsettings');
|
14 |
+
add_submenu_page('pmpro-membershiplevels', __('Add Ons', 'pmpro'), __('Add Ons', 'pmpro'), 'manage_options', 'pmpro-addons', 'pmpro_addons');
|
15 |
+
add_submenu_page('pmpro-membershiplevels', __('Members List', 'pmpro'), __('Members List', 'pmpro'), 'manage_options', 'pmpro-memberslist', 'pmpro_memberslist');
|
16 |
+
add_submenu_page('pmpro-membershiplevels', __('Reports', 'pmpro'), __('Reports', 'pmpro'), 'manage_options', 'pmpro-reports', 'pmpro_reports');
|
17 |
+
add_submenu_page('pmpro-membershiplevels', __('Orders', 'pmpro'), __('Orders', 'pmpro'), 'manage_options', 'pmpro-orders', 'pmpro_orders');
|
18 |
+
add_submenu_page('pmpro-membershiplevels', __('Discount Codes', 'pmpro'), __('Discount Codes', 'pmpro'), 'manage_options', 'pmpro-discountcodes', 'pmpro_discountcodes');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
|
20 |
//rename the automatically added Memberships submenu item
|
21 |
global $submenu;
|
22 |
if(!empty($submenu['pmpro-membershiplevels']))
|
23 |
{
|
24 |
+
$submenu['pmpro-membershiplevels'][0][0] = "Membership Levels";
|
25 |
+
$submenu['pmpro-membershiplevels'][0][3] = "Membership Levels";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
}
|
27 |
}
|
28 |
add_action('admin_menu', 'pmpro_add_pages');
|
32 |
*/
|
33 |
function pmpro_admin_bar_menu() {
|
34 |
global $wp_admin_bar;
|
35 |
+
if ( !is_super_admin() || !is_admin_bar_showing() )
|
|
|
|
|
36 |
return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
$wp_admin_bar->add_menu( array(
|
38 |
'id' => 'paid-memberships-pro',
|
39 |
'title' => __( 'Memberships', 'pmpro'),
|
40 |
+
'href' => get_admin_url(NULL, '/admin.php?page=pmpro-membershiplevels') ) );
|
41 |
+
$wp_admin_bar->add_menu( array(
|
42 |
+
'id' => 'pmpro-membership-levels',
|
43 |
+
'parent' => 'paid-memberships-pro',
|
44 |
+
'title' => __( 'Membership Levels', 'pmpro'),
|
45 |
+
'href' => get_admin_url(NULL, '/admin.php?page=pmpro-membershiplevels') ) );
|
46 |
+
$wp_admin_bar->add_menu( array(
|
47 |
+
'id' => 'pmpro-page-settings',
|
48 |
+
'parent' => 'paid-memberships-pro',
|
49 |
+
'title' => __( 'Page Settings', 'pmpro'),
|
50 |
+
'href' => get_admin_url(NULL, '/admin.php?page=pmpro-pagesettings') ) );
|
51 |
+
$wp_admin_bar->add_menu( array(
|
52 |
+
'id' => 'pmpro-payment-settings',
|
53 |
+
'parent' => 'paid-memberships-pro',
|
54 |
+
'title' => __( 'Payment Settings', 'pmpro'),
|
55 |
+
'href' => get_admin_url(NULL, '/admin.php?page=pmpro-paymentsettings') ) );
|
56 |
+
$wp_admin_bar->add_menu( array(
|
57 |
+
'id' => 'pmpro-email-settings',
|
58 |
+
'parent' => 'paid-memberships-pro',
|
59 |
+
'title' => __( 'Email Settings', 'pmpro'),
|
60 |
+
'href' => get_admin_url(NULL, '/admin.php?page=pmpro-emailsettings') ) );
|
61 |
+
$wp_admin_bar->add_menu( array(
|
62 |
+
'id' => 'pmpro-advanced-settings',
|
63 |
+
'parent' => 'paid-memberships-pro',
|
64 |
+
'title' => __( 'Advanced Settings', 'pmpro'),
|
65 |
+
'href' => get_admin_url(NULL, '/admin.php?page=pmpro-advancedsettings') ) );
|
66 |
+
$wp_admin_bar->add_menu( array(
|
67 |
+
'id' => 'pmpro-addons',
|
68 |
+
'parent' => 'paid-memberships-pro',
|
69 |
+
'title' => __( 'Add Ons', 'pmpro'),
|
70 |
+
'href' => get_admin_url(NULL, '/admin.php?page=pmpro-addons') ) );
|
71 |
+
$wp_admin_bar->add_menu( array(
|
72 |
+
'id' => 'pmpro-members-list',
|
73 |
+
'parent' => 'paid-memberships-pro',
|
74 |
+
'title' => __( 'Members List', 'pmpro'),
|
75 |
+
'href' => get_admin_url(NULL, '/admin.php?page=pmpro-memberslist') ) );
|
76 |
+
$wp_admin_bar->add_menu( array(
|
77 |
+
'id' => 'pmpro-reports',
|
78 |
+
'parent' => 'paid-memberships-pro',
|
79 |
+
'title' => __( 'Reports', 'pmpro'),
|
80 |
+
'href' => get_admin_url(NULL, '/admin.php?page=pmpro-reports') ) );
|
81 |
+
$wp_admin_bar->add_menu( array(
|
82 |
+
'id' => 'pmpro-orders',
|
83 |
+
'parent' => 'paid-memberships-pro',
|
84 |
+
'title' => __( 'Orders', 'pmpro'),
|
85 |
+
'href' => get_admin_url(NULL, '/admin.php?page=pmpro-orders') ) );
|
86 |
+
$wp_admin_bar->add_menu( array(
|
87 |
+
'id' => 'pmpro-discount-codes',
|
88 |
+
'parent' => 'paid-memberships-pro',
|
89 |
+
'title' => __( 'Discount Codes', 'pmpro'),
|
90 |
+
'href' => get_admin_url(NULL, '/admin.php?page=pmpro-discountcodes') ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
91 |
}
|
92 |
add_action('admin_bar_menu', 'pmpro_admin_bar_menu', 1000);
|
93 |
|
142 |
function pmpro_orders()
|
143 |
{
|
144 |
require_once(PMPRO_DIR . "/adminpages/orders.php");
|
145 |
+
}
|
includes/cleanup.php
CHANGED
@@ -15,7 +15,18 @@ function pmpro_delete_user($user_id = NULL)
|
|
15 |
}
|
16 |
else
|
17 |
{
|
18 |
-
//
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
}
|
20 |
}
|
21 |
add_action('delete_user', 'pmpro_delete_user');
|
15 |
}
|
16 |
else
|
17 |
{
|
18 |
+
//couldn't delete the subscription
|
19 |
+
//we should probably notify the admin
|
20 |
+
global $pmpro_error;
|
21 |
+
if(!empty($pmpro_error))
|
22 |
+
{
|
23 |
+
$pmproemail = new PMProEmail();
|
24 |
+
$pmproemail->data = array("body"=>"<p>" . sprintf(__("There was an error canceling the subscription for user with ID=%s. You will want to check your payment gateway to see if their subscription is still active.", "pmpro"), strval($user_id)) . "</p><p>Error: " . $pmpro_error . "</p>");
|
25 |
+
$last_order = $wpdb->get_row("SELECT * FROM $wpdb->pmpro_membership_orders WHERE user_id = '" . $user_id . "' ORDER BY timestamp DESC LIMIT 1");
|
26 |
+
if(!empty($last_order))
|
27 |
+
$pmproemail->data["body"] .= "<p>Last Invoice:<br />" . nl2br(var_export($last_order, true)) . "</p>";
|
28 |
+
$pmproemail->sendEmail(get_bloginfo("admin_email"));
|
29 |
+
}
|
30 |
}
|
31 |
}
|
32 |
add_action('delete_user', 'pmpro_delete_user');
|
includes/content.php
CHANGED
@@ -24,7 +24,7 @@ function pmpro_has_membership_access($post_id = NULL, $user_id = NULL, $return_m
|
|
24 |
if($user_id == $current_user->ID)
|
25 |
$myuser = $current_user;
|
26 |
else
|
27 |
-
$myuser =
|
28 |
|
29 |
//for these post types, we want to check the parent
|
30 |
if($mypost->post_type == "attachment" || $mypost->post_type == "revision")
|
@@ -80,7 +80,6 @@ function pmpro_has_membership_access($post_id = NULL, $user_id = NULL, $return_m
|
|
80 |
}
|
81 |
elseif(!empty($myuser->ID))
|
82 |
{
|
83 |
-
$myuser->membership_level = pmpro_getMembershipLevelForUser($myuser->ID);
|
84 |
if(!empty($myuser->membership_level->ID) && in_array($myuser->membership_level->ID, $post_membership_levels_ids))
|
85 |
{
|
86 |
//the users membership id is one that will grant access
|
@@ -106,7 +105,7 @@ function pmpro_has_membership_access($post_id = NULL, $user_id = NULL, $return_m
|
|
106 |
//general filter for all posts
|
107 |
$hasaccess = apply_filters("pmpro_has_membership_access_filter", $hasaccess, $mypost, $myuser, $post_membership_levels);
|
108 |
//filter for this post type
|
109 |
-
if(has_filter("
|
110 |
$hasaccess = apply_filters("pmpro_has_membership_access_filter_" . $mypost->post_type, $hasaccess, $mypost, $myuser, $post_membership_levels);
|
111 |
|
112 |
//return
|
@@ -118,76 +117,42 @@ function pmpro_has_membership_access($post_id = NULL, $user_id = NULL, $return_m
|
|
118 |
|
119 |
function pmpro_search_filter($query)
|
120 |
{
|
121 |
-
|
122 |
-
|
123 |
-
//hide pmpro pages from search results
|
124 |
-
if(!$query->is_admin && $query->is_search && empty($query->query['post_parent']))
|
125 |
-
{
|
126 |
-
$query->set('post__not_in', $pmpro_pages ); // id of page or post
|
127 |
-
}
|
128 |
-
|
129 |
-
//hide member pages from non-members (make sure they aren't hidden from members)
|
130 |
-
if(!$query->is_admin &&
|
131 |
-
!$query->is_singular &&
|
132 |
-
empty($query->query['post_parent']) &&
|
133 |
-
(
|
134 |
-
empty($query->query_vars['post_type']) ||
|
135 |
-
in_array($query->query_vars['post_type'], apply_filters('pmpro_search_filter_post_types', array("page", "post")))
|
136 |
-
)
|
137 |
-
)
|
138 |
-
{
|
139 |
-
//get page ids that are in my levels
|
140 |
-
$levels = pmpro_getMembershipLevelsForUser($current_user->ID);
|
141 |
-
$my_pages = array();
|
142 |
-
|
143 |
-
if($levels) {
|
144 |
-
foreach($levels as $key => $level) {
|
145 |
-
//get restricted posts for level
|
146 |
-
$sql = "SELECT page_id FROM $wpdb->pmpro_memberships_pages WHERE membership_id=" . $current_user->membership_level->ID;
|
147 |
-
$member_pages = $wpdb->get_col($sql);
|
148 |
-
$my_pages = array_unique(array_merge($my_pages, $member_pages));
|
149 |
-
}
|
150 |
-
}
|
151 |
-
|
152 |
-
//get hidden page ids
|
153 |
-
if(!empty($my_pages))
|
154 |
-
$sql = "SELECT page_id FROM $wpdb->pmpro_memberships_pages WHERE page_id NOT IN(" . implode(',', $my_pages) . ")";
|
155 |
-
else
|
156 |
-
$sql = "SELECT page_id FROM $wpdb->pmpro_memberships_pages";
|
157 |
-
$hidden_page_ids = array_values(array_unique($wpdb->get_col($sql)));
|
158 |
-
|
159 |
-
if($hidden_page_ids)
|
160 |
-
$query->set('post__not_in', $hidden_page_ids);
|
161 |
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
$member_cats = pmpro_getMembershipCategories($level->id);
|
168 |
-
$my_cats = array_unique(array_merge($my_cats, $member_cats));
|
169 |
-
}
|
170 |
-
}
|
171 |
-
|
172 |
-
//get hidden cats
|
173 |
-
if(!empty($my_cats))
|
174 |
-
$sql = "SELECT category_id FROM $wpdb->pmpro_memberships_categories WHERE category_id NOT IN(" . implode(',', $my_cats) . ")";
|
175 |
-
else
|
176 |
-
$sql = "SELECT category_id FROM $wpdb->pmpro_memberships_categories";
|
177 |
-
|
178 |
-
$hidden_cat_ids = array_values(array_unique($wpdb->get_col($sql)));
|
179 |
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
184 |
|
185 |
-
|
186 |
}
|
187 |
-
$
|
188 |
-
if(
|
189 |
-
|
190 |
-
|
191 |
function pmpro_membership_content_filter($content, $skipcheck = false)
|
192 |
{
|
193 |
global $post, $current_user;
|
@@ -402,4 +367,4 @@ function pmpro_hide_pages_redirect()
|
|
402 |
}
|
403 |
}
|
404 |
}
|
405 |
-
add_action('wp', 'pmpro_hide_pages_redirect');
|
24 |
if($user_id == $current_user->ID)
|
25 |
$myuser = $current_user;
|
26 |
else
|
27 |
+
$myuser = get_user($user_id);
|
28 |
|
29 |
//for these post types, we want to check the parent
|
30 |
if($mypost->post_type == "attachment" || $mypost->post_type == "revision")
|
80 |
}
|
81 |
elseif(!empty($myuser->ID))
|
82 |
{
|
|
|
83 |
if(!empty($myuser->membership_level->ID) && in_array($myuser->membership_level->ID, $post_membership_levels_ids))
|
84 |
{
|
85 |
//the users membership id is one that will grant access
|
105 |
//general filter for all posts
|
106 |
$hasaccess = apply_filters("pmpro_has_membership_access_filter", $hasaccess, $mypost, $myuser, $post_membership_levels);
|
107 |
//filter for this post type
|
108 |
+
if(has_filter("pmpro_has_membership_access_action_" . $mypost->post_type))
|
109 |
$hasaccess = apply_filters("pmpro_has_membership_access_filter_" . $mypost->post_type, $hasaccess, $mypost, $myuser, $post_membership_levels);
|
110 |
|
111 |
//return
|
117 |
|
118 |
function pmpro_search_filter($query)
|
119 |
{
|
120 |
+
global $current_user, $wpdb, $pmpro_pages;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
121 |
|
122 |
+
//hide pmpro pages from search results
|
123 |
+
if(!$query->is_admin && $query->is_search)
|
124 |
+
{
|
125 |
+
$query->set('post__not_in', $pmpro_pages ); // id of page or post
|
126 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
127 |
|
128 |
+
//hide member pages from non-members (make sure they aren't hidden from members)
|
129 |
+
if(!$query->is_admin && $query->is_search)
|
130 |
+
{
|
131 |
+
//get pages that are in levels, but not in mine
|
132 |
+
$sqlQuery = "SELECT page_id FROM $wpdb->pmpro_memberships_pages ";
|
133 |
+
if(!empty($current_user->membership_level->ID))
|
134 |
+
$sqlQuery .= "WHERE membership_id <> '" . $current_user->membership_level->ID . "' ";
|
135 |
+
$hidden_page_ids = $wpdb->get_col($sqlQuery);
|
136 |
+
if($hidden_page_ids)
|
137 |
+
$query->set('post__not_in', $hidden_page_ids ); // id of page or post
|
138 |
+
|
139 |
+
//get categories that are filtered by level, but not my level
|
140 |
+
$sqlQuery = "SELECT category_id FROM $wpdb->pmpro_memberships_categories ";
|
141 |
+
if(!empty($current_user->membership_level->ID))
|
142 |
+
$sqlQuery .= "WHERE membership_id <> '" . $current_user->membership_level->ID . "' ";
|
143 |
+
$hidden_post_cats = $wpdb->get_col($sqlQuery);
|
144 |
+
|
145 |
+
//make this work
|
146 |
+
if($hidden_post_cats)
|
147 |
+
$query->set('category__not_in', $hidden_post_cats);
|
148 |
+
}
|
149 |
|
150 |
+
return $query;
|
151 |
}
|
152 |
+
$showexcerpts = pmpro_getOption("showexcerpts");
|
153 |
+
if(empty($showexcerpts))
|
154 |
+
add_filter( 'pre_get_posts', 'pmpro_search_filter' );
|
155 |
+
|
156 |
function pmpro_membership_content_filter($content, $skipcheck = false)
|
157 |
{
|
158 |
global $post, $current_user;
|
367 |
}
|
368 |
}
|
369 |
}
|
370 |
+
add_action('wp', 'pmpro_hide_pages_redirect');
|
includes/currencies.php
CHANGED
@@ -10,13 +10,10 @@
|
|
10 |
'AUD' => __('Australian Dollars ($)', 'pmpro'),
|
11 |
'BRL' => __('Brazilian Real ($)', 'pmpro'),
|
12 |
'CAD' => __('Canadian Dollars ($)', 'pmpro'),
|
13 |
-
'CNY' => __('Chinese Yuan', 'pmpro'),
|
14 |
'CZK' => __('Czech Koruna', 'pmpro'),
|
15 |
'DKK' => __('Danish Krone', 'pmpro'),
|
16 |
'HKD' => __('Hong Kong Dollar ($)', 'pmpro'),
|
17 |
'HUF' => __('Hungarian Forint', 'pmpro'),
|
18 |
-
'INR' => __('Indian Rupee', 'pmpro'),
|
19 |
-
'IDR' => __('Indonesia Rupiah', 'pmpro'),
|
20 |
'ILS' => __('Israeli Shekel', 'pmpro'),
|
21 |
'JPY' => __('Japanese Yen (¥)', 'pmpro'),
|
22 |
'MYR' => __('Malaysian Ringgits', 'pmpro'),
|
@@ -26,19 +23,15 @@
|
|
26 |
'PHP' => __('Philippine Pesos', 'pmpro'),
|
27 |
'PLN' => __('Polish Zloty', 'pmpro'),
|
28 |
'SGD' => __('Singapore Dollar ($)', 'pmpro'),
|
29 |
-
'ZAR' => __('South African Rand', 'pmpro'),
|
30 |
-
'KRW' => __('South Korean Won', 'pmpro'),
|
31 |
'SEK' => __('Swedish Krona', 'pmpro'),
|
32 |
'CHF' => __('Swiss Franc', 'pmpro'),
|
33 |
'TWD' => __('Taiwan New Dollars', 'pmpro'),
|
34 |
-
'THB' => __('Thai Baht', 'pmpro')
|
35 |
-
'TRY' => __('Turkish Lira', 'pmpro'),
|
36 |
-
'VND' => __('Vietnamese Dong', 'pmpro')
|
37 |
);
|
38 |
|
39 |
$pmpro_currencies = apply_filters("pmpro_currencies", $pmpro_currencies);
|
40 |
|
41 |
-
//stripe only supports a few
|
42 |
global $pmpro_stripe_currencies;
|
43 |
$pmpro_stripe_currencies = array(
|
44 |
'USD' => __('US Dollars ($)', 'pmpro'),
|
10 |
'AUD' => __('Australian Dollars ($)', 'pmpro'),
|
11 |
'BRL' => __('Brazilian Real ($)', 'pmpro'),
|
12 |
'CAD' => __('Canadian Dollars ($)', 'pmpro'),
|
|
|
13 |
'CZK' => __('Czech Koruna', 'pmpro'),
|
14 |
'DKK' => __('Danish Krone', 'pmpro'),
|
15 |
'HKD' => __('Hong Kong Dollar ($)', 'pmpro'),
|
16 |
'HUF' => __('Hungarian Forint', 'pmpro'),
|
|
|
|
|
17 |
'ILS' => __('Israeli Shekel', 'pmpro'),
|
18 |
'JPY' => __('Japanese Yen (¥)', 'pmpro'),
|
19 |
'MYR' => __('Malaysian Ringgits', 'pmpro'),
|
23 |
'PHP' => __('Philippine Pesos', 'pmpro'),
|
24 |
'PLN' => __('Polish Zloty', 'pmpro'),
|
25 |
'SGD' => __('Singapore Dollar ($)', 'pmpro'),
|
|
|
|
|
26 |
'SEK' => __('Swedish Krona', 'pmpro'),
|
27 |
'CHF' => __('Swiss Franc', 'pmpro'),
|
28 |
'TWD' => __('Taiwan New Dollars', 'pmpro'),
|
29 |
+
'THB' => __('Thai Baht', 'pmpro')
|
|
|
|
|
30 |
);
|
31 |
|
32 |
$pmpro_currencies = apply_filters("pmpro_currencies", $pmpro_currencies);
|
33 |
|
34 |
+
//stripe only supports a few
|
35 |
global $pmpro_stripe_currencies;
|
36 |
$pmpro_stripe_currencies = array(
|
37 |
'USD' => __('US Dollars ($)', 'pmpro'),
|
includes/email.php
CHANGED
@@ -4,49 +4,20 @@
|
|
4 |
*/
|
5 |
function pmpro_wp_mail_from_name($from_name)
|
6 |
{
|
7 |
-
$
|
8 |
-
|
9 |
-
|
10 |
-
if($from_name == $default_from_name)
|
11 |
-
{
|
12 |
-
$pmpro_from_name = pmpro_getOption("from_name");
|
13 |
-
if ($pmpro_from_name)
|
14 |
-
$from_name = $pmpro_from_name;
|
15 |
-
}
|
16 |
-
|
17 |
return $from_name;
|
18 |
}
|
19 |
function pmpro_wp_mail_from($from_email)
|
20 |
{
|
21 |
-
|
22 |
-
$
|
23 |
-
|
24 |
-
$sitename = substr( $sitename, 4 );
|
25 |
-
}
|
26 |
-
$default_from_email = 'wordpress@' . $sitename;
|
27 |
-
|
28 |
-
//make sure it's the default email address
|
29 |
-
if($from_email == $default_from_email)
|
30 |
-
{
|
31 |
-
$pmpro_from_email = pmpro_getOption("from_email");
|
32 |
-
if ($pmpro_from_email && is_email( $pmpro_from_email ) )
|
33 |
-
$from_email = $pmpro_from_email;
|
34 |
-
}
|
35 |
-
|
36 |
return $from_email;
|
37 |
}
|
38 |
-
|
39 |
-
|
40 |
-
if($only_filter_pmpro_emails)
|
41 |
-
{
|
42 |
-
add_filter('pmpro_email_sender_name', 'pmpro_wp_mail_from_name');
|
43 |
-
add_filter('pmpro_email_sender', 'pmpro_wp_mail_from');
|
44 |
-
}
|
45 |
-
else
|
46 |
-
{
|
47 |
-
add_filter('wp_mail_from_name', 'pmpro_wp_mail_from_name');
|
48 |
-
add_filter('wp_mail_from', 'pmpro_wp_mail_from');
|
49 |
-
}
|
50 |
|
51 |
/*
|
52 |
If the $email_member_notification option is empty, disable the wp_new_user_notification email at checkout.
|
@@ -59,26 +30,23 @@ if(empty($email_member_notification))
|
|
59 |
Adds template files and changes content type to html if using PHPMailer directly.
|
60 |
*/
|
61 |
function pmpro_send_html( $phpmailer ) {
|
62 |
-
|
63 |
// Set the original plain text message
|
64 |
$phpmailer->AltBody = wp_specialchars_decode($phpmailer->Body, ENT_QUOTES);
|
65 |
// Clean < and > around text links in WP 3.1
|
66 |
$phpmailer->Body = preg_replace('#<(http://[^*]+)>#', '$1', $phpmailer->Body);
|
67 |
// Convert line breaks & make links clickable
|
68 |
-
$phpmailer->Body = make_clickable ($phpmailer->Body);
|
69 |
-
|
70 |
-
// Add
|
71 |
-
if(file_exists(
|
72 |
-
|
73 |
-
|
74 |
-
|
|
|
|
|
|
|
|
|
75 |
|
76 |
-
// Add footer to message if found
|
77 |
-
if(file_exists(get_stylesheet_directory() . "/email_footer.html"))
|
78 |
-
$phpmailer->Body = $phpmailer->Body . "\n" . file_get_contents(get_stylesheet_directory() . "/email_footer.html");
|
79 |
-
elseif(file_exists(get_template_directory() . "/email_footer.html"))
|
80 |
-
$phpmailer->Body = $phpmailer->Body . "\n" . file_get_contents(get_template_directory() . "/email_footer.html");
|
81 |
-
|
82 |
// Replace variables in email
|
83 |
global $current_user;
|
84 |
$data = array(
|
@@ -98,13 +66,18 @@ function pmpro_send_html( $phpmailer ) {
|
|
98 |
do_action("pmpro_after_pmpmailer_init", $phpmailer); //typo left in for backwards compatibility
|
99 |
}
|
100 |
|
101 |
-
function pmpro_wp_mail_content_type( $content_type ) {
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
|
|
|
|
|
|
|
|
|
|
108 |
}
|
109 |
return $content_type;
|
110 |
}
|
4 |
*/
|
5 |
function pmpro_wp_mail_from_name($from_name)
|
6 |
{
|
7 |
+
$pmpro_from_name = pmpro_getOption("from_name");
|
8 |
+
if ($pmpro_from_name)
|
9 |
+
return $pmpro_from_name;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
return $from_name;
|
11 |
}
|
12 |
function pmpro_wp_mail_from($from_email)
|
13 |
{
|
14 |
+
$pmpro_from_email = pmpro_getOption("from_email");
|
15 |
+
if ($pmpro_from_email && is_email( $pmpro_from_email ) )
|
16 |
+
return $pmpro_from_email;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
return $from_email;
|
18 |
}
|
19 |
+
add_filter('wp_mail_from_name', 'pmpro_wp_mail_from_name');
|
20 |
+
add_filter('wp_mail_from', 'pmpro_wp_mail_from');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
|
22 |
/*
|
23 |
If the $email_member_notification option is empty, disable the wp_new_user_notification email at checkout.
|
30 |
Adds template files and changes content type to html if using PHPMailer directly.
|
31 |
*/
|
32 |
function pmpro_send_html( $phpmailer ) {
|
|
|
33 |
// Set the original plain text message
|
34 |
$phpmailer->AltBody = wp_specialchars_decode($phpmailer->Body, ENT_QUOTES);
|
35 |
// Clean < and > around text links in WP 3.1
|
36 |
$phpmailer->Body = preg_replace('#<(http://[^*]+)>#', '$1', $phpmailer->Body);
|
37 |
// Convert line breaks & make links clickable
|
38 |
+
$phpmailer->Body = wpautop ( make_clickable ($phpmailer->Body) );
|
39 |
+
|
40 |
+
// Add template to message
|
41 |
+
if(file_exists(TEMPLATEPATH . "/email_header.html"))
|
42 |
+
{
|
43 |
+
$phpmailer->Body = file_get_contents(TEMPLATEPATH . "/email_header.html") . "\n" . $phpmailer->Body;
|
44 |
+
}
|
45 |
+
if(file_exists(TEMPLATEPATH . "/email_footer.html"))
|
46 |
+
{
|
47 |
+
$phpmailer->Body = $phpmailer->Body . "\n" . file_get_contents(TEMPLATEPATH . "/email_footer.html");
|
48 |
+
}
|
49 |
|
|
|
|
|
|
|
|
|
|
|
|
|
50 |
// Replace variables in email
|
51 |
global $current_user;
|
52 |
$data = array(
|
66 |
do_action("pmpro_after_pmpmailer_init", $phpmailer); //typo left in for backwards compatibility
|
67 |
}
|
68 |
|
69 |
+
function pmpro_wp_mail_content_type( $content_type ) {
|
70 |
+
|
71 |
+
//check for template
|
72 |
+
if(file_exists(TEMPLATEPATH . "/email_header.html") || file_exists(TEMPLATEPATH . "/email_footer.html"))
|
73 |
+
{
|
74 |
+
add_action('phpmailer_init', 'pmpro_send_html');
|
75 |
+
|
76 |
+
//change to html if not already
|
77 |
+
if( $content_type == 'text/plain')
|
78 |
+
{
|
79 |
+
$content_type = 'text/html';
|
80 |
+
}
|
81 |
}
|
82 |
return $content_type;
|
83 |
}
|
includes/filters.php
CHANGED
@@ -19,7 +19,7 @@ function pmpro_checkout_level_extend_memberships($level)
|
|
19 |
$expiration_date = $current_user->membership_level->enddate;
|
20 |
|
21 |
//calculate days left
|
22 |
-
$todays_date =
|
23 |
$time_left = $expiration_date - $todays_date;
|
24 |
|
25 |
//time left?
|
@@ -62,7 +62,7 @@ function pmpro_ipnhandler_level_extend_memberships($level, $user_id)
|
|
62 |
$expiration_date = $user_level->enddate;
|
63 |
|
64 |
//calculate days left
|
65 |
-
$todays_date =
|
66 |
$time_left = $expiration_date - $todays_date;
|
67 |
|
68 |
//time left?
|
@@ -100,7 +100,7 @@ function pmpro_checkout_start_date_keep_startdate($startdate, $user_id, $level)
|
|
100 |
if(pmpro_hasMembershipLevel($level->id, $user_id))
|
101 |
{
|
102 |
global $wpdb;
|
103 |
-
$sqlQuery = "SELECT startdate FROM $wpdb->pmpro_memberships_users WHERE user_id = '" .
|
104 |
$old_startdate = $wpdb->get_var($sqlQuery);
|
105 |
|
106 |
if(!empty($old_startdate))
|
@@ -110,41 +110,3 @@ function pmpro_checkout_start_date_keep_startdate($startdate, $user_id, $level)
|
|
110 |
return $startdate;
|
111 |
}
|
112 |
add_filter("pmpro_checkout_start_date", "pmpro_checkout_start_date_keep_startdate", 10, 3);
|
113 |
-
|
114 |
-
/*
|
115 |
-
Stripe Lite Pulled into Core Plugin
|
116 |
-
*/
|
117 |
-
//Stripe Lite, Set the Globals/etc
|
118 |
-
$stripe_billingaddress = pmpro_getOption("stripe_billingaddress");
|
119 |
-
if(empty($stripe_billingaddress))
|
120 |
-
{
|
121 |
-
global $pmpro_stripe_lite;
|
122 |
-
$pmpro_stripe_lite = true;
|
123 |
-
add_filter("pmpro_stripe_lite", "__return_true");
|
124 |
-
add_filter("pmpro_required_billing_fields", "pmpro_required_billing_fields_stripe_lite");
|
125 |
-
}
|
126 |
-
|
127 |
-
//Stripe Lite, Don't Require Billing Fields
|
128 |
-
function pmpro_required_billing_fields_stripe_lite($fields)
|
129 |
-
{
|
130 |
-
global $gateway;
|
131 |
-
|
132 |
-
//ignore if not using stripe
|
133 |
-
if($gateway != "stripe")
|
134 |
-
return $fields;
|
135 |
-
|
136 |
-
//some fields to remove
|
137 |
-
$remove = array('bfirstname', 'blastname', 'baddress1', 'bcity', 'bstate', 'bzipcode', 'bphone', 'bcountry', 'CardType');
|
138 |
-
|
139 |
-
//if a user is logged in, don't require bemail either
|
140 |
-
global $current_user;
|
141 |
-
if(!empty($current_user->user_email))
|
142 |
-
$remove[] = 'bemail';
|
143 |
-
|
144 |
-
//remove the fields
|
145 |
-
foreach($remove as $field)
|
146 |
-
unset($fields[$field]);
|
147 |
-
|
148 |
-
//ship it!
|
149 |
-
return $fields;
|
150 |
-
}
|
19 |
$expiration_date = $current_user->membership_level->enddate;
|
20 |
|
21 |
//calculate days left
|
22 |
+
$todays_date = time();
|
23 |
$time_left = $expiration_date - $todays_date;
|
24 |
|
25 |
//time left?
|
62 |
$expiration_date = $user_level->enddate;
|
63 |
|
64 |
//calculate days left
|
65 |
+
$todays_date = time();
|
66 |
$time_left = $expiration_date - $todays_date;
|
67 |
|
68 |
//time left?
|
100 |
if(pmpro_hasMembershipLevel($level->id, $user_id))
|
101 |
{
|
102 |
global $wpdb;
|
103 |
+
$sqlQuery = "SELECT startdate FROM $wpdb->pmpro_memberships_users WHERE user_id = '" . $wpdb->escape($user_id) . "' AND membership_id = '" . $wpdb->escape($level->id) . "' AND status = 'active' ORDER BY id DESC LIMIT 1";
|
104 |
$old_startdate = $wpdb->get_var($sqlQuery);
|
105 |
|
106 |
if(!empty($old_startdate))
|
110 |
return $startdate;
|
111 |
}
|
112 |
add_filter("pmpro_checkout_start_date", "pmpro_checkout_start_date_keep_startdate", 10, 3);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/functions.php
CHANGED
@@ -1,1742 +1,1608 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
$
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
$
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
return
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
$
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
$
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
{
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
}
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
}
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
{
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
}
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
function
|
312 |
-
{
|
313 |
-
|
314 |
-
|
315 |
-
}
|
316 |
-
|
317 |
-
|
318 |
-
{
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
{
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
}
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
else
|
414 |
-
|
415 |
-
|
416 |
-
}
|
417 |
-
|
418 |
-
|
419 |
-
{
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
}
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
}
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
-
|
537 |
-
|
538 |
-
|
539 |
-
|
540 |
-
|
541 |
-
|
542 |
-
|
543 |
-
|
544 |
-
|
545 |
-
|
546 |
-
|
547 |
-
|
548 |
-
|
549 |
-
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
if(empty($
|
554 |
-
{
|
555 |
-
$
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
-
|
560 |
-
|
561 |
-
|
562 |
-
|
563 |
-
|
564 |
-
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
if(!$wpdb->query($sql))
|
582 |
-
{
|
583 |
-
$pmpro_error = __("Error interacting with database", "pmpro") . ": ".(mysql_errno()?mysql_error():'unavailable');
|
584 |
-
return false;
|
585 |
-
}
|
586 |
-
}
|
587 |
-
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
-
|
592 |
-
|
593 |
-
|
594 |
-
|
595 |
-
|
596 |
-
|
597 |
-
|
598 |
-
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
//
|
603 |
-
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
|
614 |
-
|
615 |
-
|
616 |
-
|
617 |
-
|
618 |
-
|
619 |
-
|
620 |
-
|
621 |
-
|
622 |
-
|
623 |
-
|
624 |
-
|
625 |
-
|
626 |
-
|
627 |
-
|
628 |
-
|
629 |
-
"
|
630 |
-
|
631 |
-
|
632 |
-
|
633 |
-
|
634 |
-
|
635 |
-
|
636 |
-
|
637 |
-
|
638 |
-
|
639 |
-
|
640 |
-
|
641 |
-
|
642 |
-
|
643 |
-
|
644 |
-
|
645 |
-
|
646 |
-
|
647 |
-
|
648 |
-
|
649 |
-
|
650 |
-
|
651 |
-
|
652 |
-
|
653 |
-
|
654 |
-
|
655 |
-
|
656 |
-
|
657 |
-
|
658 |
-
|
659 |
-
|
660 |
-
|
661 |
-
|
662 |
-
|
663 |
-
|
664 |
-
|
665 |
-
|
666 |
-
|
667 |
-
|
668 |
-
|
669 |
-
|
670 |
-
|
671 |
-
|
672 |
-
|
673 |
-
|
674 |
-
|
675 |
-
|
676 |
-
|
677 |
-
|
678 |
-
|
679 |
-
|
680 |
-
|
681 |
-
|
682 |
-
|
683 |
-
|
684 |
-
|
685 |
-
|
686 |
-
|
687 |
-
|
688 |
-
|
689 |
-
|
690 |
-
|
691 |
-
|
692 |
-
|
693 |
-
|
694 |
-
|
695 |
-
|
696 |
-
|
697 |
-
|
698 |
-
|
699 |
-
|
700 |
-
|
701 |
-
|
702 |
-
|
703 |
-
|
704 |
-
|
705 |
-
|
706 |
-
|
707 |
-
|
708 |
-
|
709 |
-
|
710 |
-
|
711 |
-
|
712 |
-
|
713 |
-
|
714 |
-
|
715 |
-
|
716 |
-
|
717 |
-
|
718 |
-
|
719 |
-
|
720 |
-
|
721 |
-
|
722 |
-
|
723 |
-
|
724 |
-
|
725 |
-
|
726 |
-
|
727 |
-
|
728 |
-
|
729 |
-
|
730 |
-
|
731 |
-
|
732 |
-
|
733 |
-
|
734 |
-
|
735 |
-
|
736 |
-
|
737 |
-
|
738 |
-
|
739 |
-
|
740 |
-
|
741 |
-
|
742 |
-
|
743 |
-
|
744 |
-
|
745 |
-
|
746 |
-
|
747 |
-
|
748 |
-
|
749 |
-
|
750 |
-
|
751 |
-
|
752 |
-
|
753 |
-
|
754 |
-
|
755 |
-
|
756 |
-
|
757 |
-
|
758 |
-
|
759 |
-
|
760 |
-
|
761 |
-
|
762 |
-
|
763 |
-
|
764 |
-
|
765 |
-
|
766 |
-
|
767 |
-
|
768 |
-
|
769 |
-
|
770 |
-
|
771 |
-
|
772 |
-
|
773 |
-
|
774 |
-
|
775 |
-
|
776 |
-
|
777 |
-
|
778 |
-
|
779 |
-
function
|
780 |
-
|
781 |
-
|
782 |
-
|
783 |
-
$
|
784 |
-
|
785 |
-
|
786 |
-
|
787 |
-
|
788 |
-
|
789 |
-
|
790 |
-
|
791 |
-
|
792 |
-
|
793 |
-
|
794 |
-
|
795 |
-
|
796 |
-
|
797 |
-
|
798 |
-
|
799 |
-
|
800 |
-
|
801 |
-
|
802 |
-
|
803 |
-
|
804 |
-
|
805 |
-
|
806 |
-
|
807 |
-
|
808 |
-
|
809 |
-
|
810 |
-
|
811 |
-
|
812 |
-
|
813 |
-
|
814 |
-
if($
|
815 |
-
|
816 |
-
|
817 |
-
|
818 |
-
|
819 |
-
|
820 |
-
|
821 |
-
|
822 |
-
|
823 |
-
|
824 |
-
|
825 |
-
|
826 |
-
|
827 |
-
|
828 |
-
|
829 |
-
|
830 |
-
|
831 |
-
|
832 |
-
|
833 |
-
|
834 |
-
|
835 |
-
|
836 |
-
|
837 |
-
|
838 |
-
|
839 |
-
|
840 |
-
|
841 |
-
|
842 |
-
|
843 |
-
|
844 |
-
|
845 |
-
|
846 |
-
|
847 |
-
|
848 |
-
|
849 |
-
|
850 |
-
|
851 |
-
|
852 |
-
|
853 |
-
|
854 |
-
|
855 |
-
|
856 |
-
|
857 |
-
|
858 |
-
|
859 |
-
|
860 |
-
|
861 |
-
|
862 |
-
|
863 |
-
|
864 |
-
|
865 |
-
|
866 |
-
|
867 |
-
|
868 |
-
|
869 |
-
|
870 |
-
|
871 |
-
|
872 |
-
|
873 |
-
|
874 |
-
|
875 |
-
|
876 |
-
|
877 |
-
|
878 |
-
|
879 |
-
|
880 |
-
$
|
881 |
-
|
882 |
-
|
883 |
-
|
884 |
-
|
885 |
-
|
886 |
-
|
887 |
-
|
888 |
-
|
889 |
-
|
890 |
-
|
891 |
-
|
892 |
-
|
893 |
-
|
894 |
-
|
895 |
-
|
896 |
-
|
897 |
-
|
898 |
-
|
899 |
-
|
900 |
-
|
901 |
-
|
902 |
-
|
903 |
-
|
904 |
-
|
905 |
-
|
906 |
-
|
907 |
-
|
908 |
-
|
909 |
-
|
910 |
-
|
911 |
-
|
912 |
-
|
913 |
-
|
914 |
-
|
915 |
-
|
916 |
-
|
917 |
-
|
918 |
-
|
919 |
-
|
920 |
-
|
921 |
-
|
922 |
-
|
923 |
-
|
924 |
-
$
|
925 |
-
|
926 |
-
|
927 |
-
|
928 |
-
|
929 |
-
|
930 |
-
|
931 |
-
|
932 |
-
|
933 |
-
|
934 |
-
|
935 |
-
|
936 |
-
|
937 |
-
|
938 |
-
|
939 |
-
|
940 |
-
|
941 |
-
|
942 |
-
|
943 |
-
|
944 |
-
|
945 |
-
|
946 |
-
|
947 |
-
|
948 |
-
|
949 |
-
|
950 |
-
|
951 |
-
|
952 |
-
}
|
953 |
-
|
954 |
-
function
|
955 |
-
{
|
956 |
-
|
957 |
-
|
958 |
-
|
959 |
-
|
960 |
-
|
961 |
-
$
|
962 |
-
|
963 |
-
$
|
964 |
-
|
965 |
-
|
966 |
-
|
967 |
-
|
968 |
-
|
969 |
-
|
970 |
-
|
971 |
-
|
972 |
-
|
973 |
-
|
974 |
-
|
975 |
-
|
976 |
-
|
977 |
-
|
978 |
-
|
979 |
-
|
980 |
-
|
981 |
-
|
982 |
-
|
983 |
-
|
984 |
-
|
985 |
-
|
986 |
-
|
987 |
-
$
|
988 |
-
|
989 |
-
|
990 |
-
|
991 |
-
|
992 |
-
|
993 |
-
$
|
994 |
-
|
995 |
-
|
996 |
-
|
997 |
-
|
998 |
-
|
999 |
-
|
1000 |
-
|
1001 |
-
|
1002 |
-
|
1003 |
-
|
1004 |
-
|
1005 |
-
|
1006 |
-
|
1007 |
-
|
1008 |
-
|
1009 |
-
|
1010 |
-
|
1011 |
-
|
1012 |
-
|
1013 |
-
|
1014 |
-
|
1015 |
-
|
1016 |
-
|
1017 |
-
|
1018 |
-
{
|
1019 |
-
|
1020 |
-
|
1021 |
-
|
1022 |
-
|
1023 |
-
|
1024 |
-
|
1025 |
-
|
1026 |
-
|
1027 |
-
}
|
1028 |
-
|
1029 |
-
|
1030 |
-
|
1031 |
-
|
1032 |
-
|
1033 |
-
|
1034 |
-
|
1035 |
-
|
1036 |
-
|
1037 |
-
|
1038 |
-
|
1039 |
-
|
1040 |
-
|
1041 |
-
|
1042 |
-
|
1043 |
-
|
1044 |
-
|
1045 |
-
|
1046 |
-
|
1047 |
-
|
1048 |
-
|
1049 |
-
|
1050 |
-
|
1051 |
-
|
1052 |
-
|
1053 |
-
|
1054 |
-
|
1055 |
-
|
1056 |
-
|
1057 |
-
|
1058 |
-
|
1059 |
-
|
1060 |
-
|
1061 |
-
|
1062 |
-
|
1063 |
-
|
1064 |
-
|
1065 |
-
|
1066 |
-
|
1067 |
-
|
1068 |
-
|
1069 |
-
|
1070 |
-
|
1071 |
-
|
1072 |
-
|
1073 |
-
|
1074 |
-
|
1075 |
-
|
1076 |
-
|
1077 |
-
|
1078 |
-
|
1079 |
-
|
1080 |
-
|
1081 |
-
|
1082 |
-
|
1083 |
-
|
1084 |
-
|
1085 |
-
|
1086 |
-
|
1087 |
-
|
1088 |
-
|
1089 |
-
|
1090 |
-
}
|
1091 |
-
|
1092 |
-
|
1093 |
-
|
1094 |
-
|
1095 |
-
|
1096 |
-
|
1097 |
-
|
1098 |
-
|
1099 |
-
|
1100 |
-
|
1101 |
-
|
1102 |
-
|
1103 |
-
|
1104 |
-
|
1105 |
-
|
1106 |
-
|
1107 |
-
|
1108 |
-
//
|
1109 |
-
if(empty($
|
1110 |
-
|
1111 |
-
|
1112 |
-
|
1113 |
-
|
1114 |
-
|
1115 |
-
|
1116 |
-
|
1117 |
-
$
|
1118 |
-
|
1119 |
-
|
1120 |
-
|
1121 |
-
|
1122 |
-
|
1123 |
-
//
|
1124 |
-
if(!
|
1125 |
-
|
1126 |
-
|
1127 |
-
|
1128 |
-
|
1129 |
-
|
1130 |
-
|
1131 |
-
if(!
|
1132 |
-
|
1133 |
-
|
1134 |
-
|
1135 |
-
|
1136 |
-
|
1137 |
-
|
1138 |
-
|
1139 |
-
|
1140 |
-
|
1141 |
-
|
1142 |
-
|
1143 |
-
|
1144 |
-
|
1145 |
-
|
1146 |
-
|
1147 |
-
|
1148 |
-
|
1149 |
-
|
1150 |
-
|
1151 |
-
|
1152 |
-
|
1153 |
-
|
1154 |
-
|
1155 |
-
|
1156 |
-
|
1157 |
-
|
1158 |
-
|
1159 |
-
|
1160 |
-
|
1161 |
-
|
1162 |
-
|
1163 |
-
|
1164 |
-
$
|
1165 |
-
|
1166 |
-
|
1167 |
-
|
1168 |
-
|
1169 |
-
|
1170 |
-
|
1171 |
-
|
1172 |
-
|
1173 |
-
return
|
1174 |
-
|
1175 |
-
|
1176 |
-
|
1177 |
-
|
1178 |
-
|
1179 |
-
|
1180 |
-
|
1181 |
-
|
1182 |
-
|
1183 |
-
|
1184 |
-
|
1185 |
-
|
1186 |
-
|
1187 |
-
|
1188 |
-
|
1189 |
-
|
1190 |
-
|
1191 |
-
|
1192 |
-
|
1193 |
-
|
1194 |
-
|
1195 |
-
|
1196 |
-
|
1197 |
-
|
1198 |
-
|
1199 |
-
|
1200 |
-
|
1201 |
-
|
1202 |
-
|
1203 |
-
|
1204 |
-
|
1205 |
-
|
1206 |
-
|
1207 |
-
|
1208 |
-
|
1209 |
-
|
1210 |
-
|
1211 |
-
|
1212 |
-
|
1213 |
-
|
1214 |
-
|
1215 |
-
$
|
1216 |
-
|
1217 |
-
|
1218 |
-
|
1219 |
-
|
1220 |
-
|
1221 |
-
|
1222 |
-
|
1223 |
-
|
1224 |
-
|
1225 |
-
|
1226 |
-
|
1227 |
-
|
1228 |
-
|
1229 |
-
|
1230 |
-
|
1231 |
-
|
1232 |
-
|
1233 |
-
|
1234 |
-
|
1235 |
-
|
1236 |
-
|
1237 |
-
|
1238 |
-
|
1239 |
-
|
1240 |
-
|
1241 |
-
|
1242 |
-
|
1243 |
-
|
1244 |
-
|
1245 |
-
|
1246 |
-
|
1247 |
-
|
1248 |
-
|
1249 |
-
|
1250 |
-
|
1251 |
-
|
1252 |
-
|
1253 |
-
|
1254 |
-
|
1255 |
-
|
1256 |
-
|
1257 |
-
|
1258 |
-
|
1259 |
-
|
1260 |
-
|
1261 |
-
|
1262 |
-
|
1263 |
-
|
1264 |
-
|
1265 |
-
|
1266 |
-
|
1267 |
-
|
1268 |
-
|
1269 |
-
|
1270 |
-
|
1271 |
-
|
1272 |
-
|
1273 |
-
|
1274 |
-
|
1275 |
-
|
1276 |
-
|
1277 |
-
|
1278 |
-
|
1279 |
-
|
1280 |
-
|
1281 |
-
|
1282 |
-
|
1283 |
-
*
|
1284 |
-
|
1285 |
-
|
1286 |
-
|
1287 |
-
|
1288 |
-
|
1289 |
-
|
1290 |
-
|
1291 |
-
|
1292 |
-
|
1293 |
-
|
1294 |
-
|
1295 |
-
|
1296 |
-
|
1297 |
-
|
1298 |
-
|
1299 |
-
|
1300 |
-
|
1301 |
-
|
1302 |
-
|
1303 |
-
|
1304 |
-
|
1305 |
-
|
1306 |
-
|
1307 |
-
|
1308 |
-
|
1309 |
-
|
1310 |
-
|
1311 |
-
|
1312 |
-
|
1313 |
-
|
1314 |
-
|
1315 |
-
|
1316 |
-
|
1317 |
-
|
1318 |
-
|
1319 |
-
|
1320 |
-
|
1321 |
-
|
1322 |
-
|
1323 |
-
|
1324 |
-
|
1325 |
-
|
1326 |
-
|
1327 |
-
|
1328 |
-
|
1329 |
-
|
1330 |
-
|
1331 |
-
|
1332 |
-
|
1333 |
-
|
1334 |
-
|
1335 |
-
|
1336 |
-
|
1337 |
-
|
1338 |
-
|
1339 |
-
|
1340 |
-
|
1341 |
-
|
1342 |
-
|
1343 |
-
|
1344 |
-
|
1345 |
-
|
1346 |
-
|
1347 |
-
|
1348 |
-
|
1349 |
-
|
1350 |
-
|
1351 |
-
|
1352 |
-
|
1353 |
-
|
1354 |
-
|
1355 |
-
|
1356 |
-
|
1357 |
-
|
1358 |
-
|
1359 |
-
|
1360 |
-
|
1361 |
-
|
1362 |
-
|
1363 |
-
|
1364 |
-
|
1365 |
-
|
1366 |
-
|
1367 |
-
|
1368 |
-
|
1369 |
-
|
1370 |
-
|
1371 |
-
|
1372 |
-
|
1373 |
-
|
1374 |
-
|
1375 |
-
|
1376 |
-
|
1377 |
-
|
1378 |
-
|
1379 |
-
|
1380 |
-
|
1381 |
-
|
1382 |
-
|
1383 |
-
|
1384 |
-
|
1385 |
-
|
1386 |
-
|
1387 |
-
|
1388 |
-
|
1389 |
-
|
1390 |
-
|
1391 |
-
|
1392 |
-
|
1393 |
-
|
1394 |
-
|
1395 |
-
$
|
1396 |
-
|
1397 |
-
|
1398 |
-
|
1399 |
-
|
1400 |
-
|
1401 |
-
|
1402 |
-
|
1403 |
-
|
1404 |
-
|
1405 |
-
|
1406 |
-
|
1407 |
-
|
1408 |
-
|
1409 |
-
|
1410 |
-
|
1411 |
-
|
1412 |
-
|
1413 |
-
|
1414 |
-
|
1415 |
-
|
1416 |
-
|
1417 |
-
|
1418 |
-
|
1419 |
-
|
1420 |
-
|
1421 |
-
|
1422 |
-
|
1423 |
-
|
1424 |
-
|
1425 |
-
|
1426 |
-
|
1427 |
-
|
1428 |
-
|
1429 |
-
|
1430 |
-
|
1431 |
-
|
1432 |
-
|
1433 |
-
|
1434 |
-
|
1435 |
-
|
1436 |
-
|
1437 |
-
|
1438 |
-
{
|
1439 |
-
|
1440 |
-
|
1441 |
-
|
1442 |
-
|
1443 |
-
|
1444 |
-
|
1445 |
-
|
1446 |
-
|
1447 |
-
|
1448 |
-
|
1449 |
-
$
|
1450 |
-
|
1451 |
-
|
1452 |
-
|
1453 |
-
|
1454 |
-
|
1455 |
-
|
1456 |
-
|
1457 |
-
|
1458 |
-
|
1459 |
-
|
1460 |
-
|
1461 |
-
|
1462 |
-
|
1463 |
-
|
1464 |
-
|
1465 |
-
|
1466 |
-
|
1467 |
-
|
1468 |
-
|
1469 |
-
}
|
1470 |
-
|
1471 |
-
|
1472 |
-
|
1473 |
-
|
1474 |
-
|
1475 |
-
|
1476 |
-
|
1477 |
-
|
1478 |
-
|
1479 |
-
|
1480 |
-
|
1481 |
-
|
1482 |
-
|
1483 |
-
|
1484 |
-
|
1485 |
-
|
1486 |
-
|
1487 |
-
|
1488 |
-
|
1489 |
-
|
1490 |
-
|
1491 |
-
|
1492 |
-
|
1493 |
-
|
1494 |
-
|
1495 |
-
|
1496 |
-
|
1497 |
-
|
1498 |
-
|
1499 |
-
|
1500 |
-
|
1501 |
-
|
1502 |
-
|
1503 |
-
|
1504 |
-
|
1505 |
-
|
1506 |
-
|
1507 |
-
|
1508 |
-
|
1509 |
-
if(!
|
1510 |
-
|
1511 |
-
|
1512 |
-
|
1513 |
-
|
1514 |
-
|
1515 |
-
|
1516 |
-
|
1517 |
-
|
1518 |
-
|
1519 |
-
|
1520 |
-
|
1521 |
-
|
1522 |
-
|
1523 |
-
|
1524 |
-
|
1525 |
-
|
1526 |
-
|
1527 |
-
|
1528 |
-
|
1529 |
-
|
1530 |
-
|
1531 |
-
|
1532 |
-
|
1533 |
-
|
1534 |
-
|
1535 |
-
|
1536 |
-
|
1537 |
-
|
1538 |
-
|
1539 |
-
|
1540 |
-
|
1541 |
-
|
1542 |
-
|
1543 |
-
|
1544 |
-
|
1545 |
-
|
1546 |
-
|
1547 |
-
|
1548 |
-
|
1549 |
-
|
1550 |
-
|
1551 |
-
|
1552 |
-
|
1553 |
-
|
1554 |
-
|
1555 |
-
|
1556 |
-
|
1557 |
-
|
1558 |
-
|
1559 |
-
|
1560 |
-
|
1561 |
-
|
1562 |
-
|
1563 |
-
|
1564 |
-
|
1565 |
-
|
1566 |
-
|
1567 |
-
|
1568 |
-
|
1569 |
-
|
1570 |
-
|
1571 |
-
|
1572 |
-
|
1573 |
-
|
1574 |
-
|
1575 |
-
|
1576 |
-
|
1577 |
-
|
1578 |
-
|
1579 |
-
|
1580 |
-
|
1581 |
-
|
1582 |
-
|
1583 |
-
|
1584 |
-
|
1585 |
-
|
1586 |
-
|
1587 |
-
|
1588 |
-
|
1589 |
-
|
1590 |
-
|
1591 |
-
if
|
1592 |
-
|
1593 |
-
|
1594 |
-
|
1595 |
-
|
1596 |
-
|
1597 |
-
|
1598 |
-
|
1599 |
-
|
1600 |
-
|
1601 |
-
|
1602 |
-
|
1603 |
-
|
1604 |
-
|
1605 |
-
|
1606 |
-
|
1607 |
-
|
1608 |
-
|
1609 |
-
|
1610 |
-
if(!empty($name))
|
1611 |
-
$address .= $name . "\n";
|
1612 |
-
|
1613 |
-
if(!empty($address1))
|
1614 |
-
$address .= $address1 . "\n";
|
1615 |
-
|
1616 |
-
if(!empty($address2))
|
1617 |
-
$address .= $address2 . "\n";
|
1618 |
-
|
1619 |
-
if(!empty($city) && !empty($state))
|
1620 |
-
{
|
1621 |
-
$address .= $city . ", " . $state;
|
1622 |
-
|
1623 |
-
if(!empty($zip))
|
1624 |
-
$address .= " " . $zip;
|
1625 |
-
|
1626 |
-
$address .= "\n";
|
1627 |
-
}
|
1628 |
-
|
1629 |
-
if(!empty($country))
|
1630 |
-
$address .= $country . "\n";
|
1631 |
-
|
1632 |
-
if(!empty($phone))
|
1633 |
-
$address .= formatPhone($phone);
|
1634 |
-
|
1635 |
-
if($nl2br)
|
1636 |
-
$address = nl2br($address);
|
1637 |
-
|
1638 |
-
return $address;
|
1639 |
-
}
|
1640 |
-
|
1641 |
-
/*
|
1642 |
-
Checks if all required settings are set.
|
1643 |
-
*/
|
1644 |
-
function pmpro_is_ready()
|
1645 |
-
{
|
1646 |
-
global $wpdb, $pmpro_pages, $pmpro_level_ready, $pmpro_gateway_ready, $pmpro_pages_ready;
|
1647 |
-
|
1648 |
-
//check if there is at least one level
|
1649 |
-
$pmpro_level_ready = (bool)$wpdb->get_var("SELECT id FROM $wpdb->pmpro_membership_levels LIMIT 1");
|
1650 |
-
|
1651 |
-
//check if the gateway settings are good. first check if it's needed (is there paid membership level)
|
1652 |
-
$paid_membership_level = $wpdb->get_var("SELECT id FROM $wpdb->pmpro_membership_levels WHERE allow_signups = 1 AND (initial_payment > 0 OR billing_amount > 0 OR trial_amount > 0) LIMIT 1");
|
1653 |
-
$paid_user_subscription = $wpdb->get_var("SELECT user_id FROM $wpdb->pmpro_memberships_users WHERE initial_payment > 0 OR billing_amount > 0 OR trial_amount > 0 LIMIT 1");
|
1654 |
-
|
1655 |
-
if(empty($paid_membership_level) && empty($paid_user_subscription))
|
1656 |
-
{
|
1657 |
-
//no paid membership level now or attached to a user. we don't need the gateway setup
|
1658 |
-
$pmpro_gateway_ready = true;
|
1659 |
-
}
|
1660 |
-
else
|
1661 |
-
{
|
1662 |
-
$gateway = pmpro_getOption("gateway");
|
1663 |
-
if($gateway == "authorizenet")
|
1664 |
-
{
|
1665 |
-
if(pmpro_getOption("gateway_environment") && pmpro_getOption("loginname") && pmpro_getOption("transactionkey"))
|
1666 |
-
$pmpro_gateway_ready = true;
|
1667 |
-
else
|
1668 |
-
$pmpro_gateway_ready = false;
|
1669 |
-
}
|
1670 |
-
elseif($gateway == "paypal" || $gateway == "paypalexpress")
|
1671 |
-
{
|
1672 |
-
if(pmpro_getOption("gateway_environment") && pmpro_getOption("gateway_email") && pmpro_getOption("apiusername") && pmpro_getOption("apipassword") && pmpro_getOption("apisignature"))
|
1673 |
-
$pmpro_gateway_ready = true;
|
1674 |
-
else
|
1675 |
-
$pmpro_gateway_ready = false;
|
1676 |
-
}
|
1677 |
-
elseif($gateway == "paypalstandard")
|
1678 |
-
{
|
1679 |
-
if(pmpro_getOption("gateway_environment") && pmpro_getOption("gateway_email"))
|
1680 |
-
$pmpro_gateway_ready = true;
|
1681 |
-
else
|
1682 |
-
$pmpro_gateway_ready = false;
|
1683 |
-
}
|
1684 |
-
elseif($gateway == "payflowpro")
|
1685 |
-
{
|
1686 |
-
if(pmpro_getOption("payflow_partner") && pmpro_getOption("payflow_vendor") && pmpro_getOption("payflow_user") && pmpro_getOption("payflow_pwd"))
|
1687 |
-
$pmpro_gateway_ready = true;
|
1688 |
-
else
|
1689 |
-
$pmpro_gateway_ready = false;
|
1690 |
-
}
|
1691 |
-
elseif($gateway == "stripe")
|
1692 |
-
{
|
1693 |
-
if(pmpro_getOption("gateway_environment") && pmpro_getOption("stripe_secretkey") && pmpro_getOption("stripe_publishablekey"))
|
1694 |
-
$pmpro_gateway_ready = true;
|
1695 |
-
else
|
1696 |
-
$pmpro_gateway_ready = false;
|
1697 |
-
}
|
1698 |
-
elseif($gateway == "braintree")
|
1699 |
-
{
|
1700 |
-
if(pmpro_getOption("gateway_environment") && pmpro_getOption("braintree_merchantid") && pmpro_getOption("braintree_publickey") && pmpro_getOption("braintree_privatekey"))
|
1701 |
-
$pmpro_gateway_ready = true;
|
1702 |
-
else
|
1703 |
-
$pmpro_gateway_ready = false;
|
1704 |
-
}
|
1705 |
-
elseif($gateway == "twocheckout")
|
1706 |
-
{
|
1707 |
-
if(pmpro_getOption("gateway_environment") && pmpro_getOption("twocheckout_apiusername") && pmpro_getOption("twocheckout_apipassword"))
|
1708 |
-
$pmpro_gateway_ready = true;
|
1709 |
-
else
|
1710 |
-
$pmpro_gateway_ready = false;
|
1711 |
-
}
|
1712 |
-
elseif($gateway == "cybersource")
|
1713 |
-
{
|
1714 |
-
if(pmpro_getOption("gateway_environment") && pmpro_getOption("cybersource_merchantid") && pmpro_getOption("cybersource_securitykey"))
|
1715 |
-
$pmpro_gateway_ready = true;
|
1716 |
-
else
|
1717 |
-
$pmpro_gateway_ready = false;
|
1718 |
-
}
|
1719 |
-
else
|
1720 |
-
{
|
1721 |
-
$pmpro_gateway_ready = false;
|
1722 |
-
}
|
1723 |
-
}
|
1724 |
-
|
1725 |
-
//check if we have all pages
|
1726 |
-
if($pmpro_pages["account"] &&
|
1727 |
-
$pmpro_pages["billing"] &&
|
1728 |
-
$pmpro_pages["cancel"] &&
|
1729 |
-
$pmpro_pages["checkout"] &&
|
1730 |
-
$pmpro_pages["confirmation"] &&
|
1731 |
-
$pmpro_pages["invoice"] &&
|
1732 |
-
$pmpro_pages["levels"])
|
1733 |
-
$pmpro_pages_ready = true;
|
1734 |
-
else
|
1735 |
-
$pmpro_pages_ready = false;
|
1736 |
-
|
1737 |
-
//now check both
|
1738 |
-
if($pmpro_gateway_ready && $pmpro_pages_ready)
|
1739 |
-
return true;
|
1740 |
-
else
|
1741 |
-
return false;
|
1742 |
-
}
|
1 |
+
<?php
|
2 |
+
if(!function_exists("sornot"))
|
3 |
+
{
|
4 |
+
function sornot($t, $n)
|
5 |
+
{
|
6 |
+
if($n == 1)
|
7 |
+
return $t;
|
8 |
+
else
|
9 |
+
return $t . "s";
|
10 |
+
}
|
11 |
+
}
|
12 |
+
|
13 |
+
//setup wpdb for the tables we need
|
14 |
+
function pmpro_setDBTables()
|
15 |
+
{
|
16 |
+
global $table_prefix, $wpdb;
|
17 |
+
$wpdb->hide_errors();
|
18 |
+
$wpdb->pmpro_membership_levels = $table_prefix . 'pmpro_membership_levels';
|
19 |
+
$wpdb->pmpro_memberships_users = $table_prefix . 'pmpro_memberships_users';
|
20 |
+
$wpdb->pmpro_memberships_categories = $table_prefix . 'pmpro_memberships_categories';
|
21 |
+
$wpdb->pmpro_memberships_pages = $table_prefix . 'pmpro_memberships_pages';
|
22 |
+
$wpdb->pmpro_membership_orders = $table_prefix . 'pmpro_membership_orders';
|
23 |
+
$wpdb->pmpro_discount_codes = $wpdb->prefix . 'pmpro_discount_codes';
|
24 |
+
$wpdb->pmpro_discount_codes_levels = $wpdb->prefix . 'pmpro_discount_codes_levels';
|
25 |
+
$wpdb->pmpro_discount_codes_uses = $wpdb->prefix . 'pmpro_discount_codes_uses';
|
26 |
+
}
|
27 |
+
pmpro_setDBTables();
|
28 |
+
|
29 |
+
//from: http://stackoverflow.com/questions/5266945/wordpress-how-detect-if-current-page-is-the-login-page/5892694#5892694
|
30 |
+
function pmpro_is_login_page() {
|
31 |
+
return (in_array($GLOBALS['pagenow'], array('wp-login.php', 'wp-register.php')) || is_page("login"));
|
32 |
+
}
|
33 |
+
|
34 |
+
//thanks: http://wordpress.org/support/topic/is_plugin_active
|
35 |
+
function pmpro_is_plugin_active( $plugin ) {
|
36 |
+
return in_array( $plugin, (array) get_option( 'active_plugins', array() ) );
|
37 |
+
}
|
38 |
+
|
39 |
+
//scraping - override n if you have more than 1 group of matches and don't want the first group
|
40 |
+
function pmpro_getMatches($p, $s, $firstvalue = FALSE, $n = 1)
|
41 |
+
{
|
42 |
+
$ok = preg_match_all($p, $s, $matches);
|
43 |
+
|
44 |
+
if(!$ok)
|
45 |
+
return false;
|
46 |
+
else
|
47 |
+
{
|
48 |
+
if($firstvalue)
|
49 |
+
return $matches[$n][0];
|
50 |
+
else
|
51 |
+
return $matches[$n];
|
52 |
+
}
|
53 |
+
}
|
54 |
+
|
55 |
+
function pmpro_br2nl($text, $tags = "br")
|
56 |
+
{
|
57 |
+
if(!is_array($tags))
|
58 |
+
$tags = explode(" ", $tags);
|
59 |
+
|
60 |
+
foreach($tags as $tag)
|
61 |
+
{
|
62 |
+
$text = eregi_replace("<" . $tag . "[^>]*>", "\n", $text);
|
63 |
+
$text = eregi_replace("</" . $tag . "[^>]*>", "\n", $text);
|
64 |
+
}
|
65 |
+
|
66 |
+
return($text);
|
67 |
+
}
|
68 |
+
|
69 |
+
function pmpro_getOption($s, $force = false)
|
70 |
+
{
|
71 |
+
if(isset($_REQUEST[$s]) && !$force)
|
72 |
+
return trim($_REQUEST[$s]);
|
73 |
+
elseif(get_option("pmpro_" . $s))
|
74 |
+
return get_option("pmpro_" . $s);
|
75 |
+
else
|
76 |
+
return "";
|
77 |
+
}
|
78 |
+
|
79 |
+
function pmpro_setOption($s, $v = NULL)
|
80 |
+
{
|
81 |
+
//no value is given, set v to the request var
|
82 |
+
if($v === NULL && isset($_REQUEST[$s]))
|
83 |
+
$v = trim($_REQUEST[$s]);
|
84 |
+
|
85 |
+
if(is_array($v))
|
86 |
+
$v = implode(",", $v);
|
87 |
+
|
88 |
+
return update_option("pmpro_" . $s, $v);
|
89 |
+
}
|
90 |
+
|
91 |
+
function pmpro_get_slug($post_id)
|
92 |
+
{
|
93 |
+
global $pmpro_slugs, $wpdb;
|
94 |
+
if(!$pmpro_slugs[$post_id])
|
95 |
+
$pmpro_slugs[$post_id] = $wpdb->get_var("SELECT post_name FROM $wpdb->posts WHERE ID = '" . $post_id . "' LIMIT 1");
|
96 |
+
|
97 |
+
return $pmpro_slugs[$post_id];
|
98 |
+
}
|
99 |
+
|
100 |
+
function pmpro_url($page = NULL, $querystring = "", $scheme = NULL)
|
101 |
+
{
|
102 |
+
global $besecure;
|
103 |
+
$besecure = apply_filters("besecure", $besecure);
|
104 |
+
|
105 |
+
if(!$scheme && $besecure)
|
106 |
+
$scheme = "https";
|
107 |
+
elseif(!$scheme)
|
108 |
+
$scheme = "http";
|
109 |
+
|
110 |
+
if(!$page)
|
111 |
+
$page = "levels";
|
112 |
+
|
113 |
+
global $pmpro_pages;
|
114 |
+
|
115 |
+
//? vs &
|
116 |
+
if(strpos(get_permalink($pmpro_pages[$page]), "?"))
|
117 |
+
return home_url(str_replace(home_url(), "", get_permalink($pmpro_pages[$page])) . str_replace("?", "&", $querystring), $scheme);
|
118 |
+
else
|
119 |
+
return home_url(str_replace(home_url(), "", get_permalink($pmpro_pages[$page])) . $querystring, $scheme);
|
120 |
+
}
|
121 |
+
|
122 |
+
function pmpro_isLevelFree(&$level)
|
123 |
+
{
|
124 |
+
if(!empty($level) && $level->initial_payment <= 0 && $level->billing_amount <= 0 && $level->trial_amount <= 0)
|
125 |
+
return true;
|
126 |
+
else
|
127 |
+
return false;
|
128 |
+
}
|
129 |
+
|
130 |
+
function pmpro_isLevelRecurring(&$level)
|
131 |
+
{
|
132 |
+
if(!empty($level) && ($level->billing_amount > 0 || $level->trial_amount > 0))
|
133 |
+
return true;
|
134 |
+
else
|
135 |
+
return false;
|
136 |
+
}
|
137 |
+
|
138 |
+
function pmpro_isLevelTrial(&$level)
|
139 |
+
{
|
140 |
+
if($level->trial_limit > 0)
|
141 |
+
{
|
142 |
+
return true;
|
143 |
+
}
|
144 |
+
else
|
145 |
+
return false;
|
146 |
+
}
|
147 |
+
|
148 |
+
function pmpro_isLevelExpiring(&$level)
|
149 |
+
{
|
150 |
+
if($level->expiration_number > 0)
|
151 |
+
return true;
|
152 |
+
else
|
153 |
+
return false;
|
154 |
+
}
|
155 |
+
|
156 |
+
function pmpro_getLevelCost(&$level, $tags = true)
|
157 |
+
{
|
158 |
+
global $pmpro_currency_symbol;
|
159 |
+
//initial payment
|
160 |
+
$r = sprintf(_x('The price for membership is <strong>%s</strong> now', 'Initial payment in cost text generation.', 'pmpro'), $pmpro_currency_symbol . number_format($level->initial_payment, 2));
|
161 |
+
|
162 |
+
//recurring part
|
163 |
+
if($level->billing_amount != '0.00')
|
164 |
+
{
|
165 |
+
if($level->billing_limit > 1)
|
166 |
+
{
|
167 |
+
if($level->cycle_number == '1')
|
168 |
+
{
|
169 |
+
$r .= sprintf(__(' and then <strong>%s per %s for %d more %s</strong>.', 'Recurring payment in cost text generation. E.g. $5 every month for 2 more payments.', 'pmpro'), $pmpro_currency_symbol . $level->billing_amount, pmpro_translate_billing_period($level->cycle_period), $level->billing_limit, pmpro_translate_billing_period($level->cycle_period, $level->billing_limit));
|
170 |
+
}
|
171 |
+
else
|
172 |
+
{
|
173 |
+
$r .= sprintf(__(' and then <strong>%s every %d %s for %d more %s</strong>.', 'Recurring payment in cost text generation. E.g., $5 every 2 months for 2 more payments.', 'pmpro'), $pmpro_currency_symbol . $level->billing_amount, $level->cycle_number, pmpro_translate_billing_period($level->cycle_period, $level->cycle_number), $level->billing_limit, pmpro_translate_billing_period($level->cycle_period, $level->billing_limit));
|
174 |
+
}
|
175 |
+
}
|
176 |
+
elseif($level->billing_limit == 1)
|
177 |
+
{
|
178 |
+
$r .= sprintf(__(' and then <strong>%s after %d %s</strong>.', 'Recurring payment in cost text generation. E.g. $5 after 2 months.', 'pmpro'), $pmpro_currency_symbol . $level->billing_amount, $level->cycle_number, pmpro_translate_billing_period($level->cycle_period, $level->cycle_number));
|
179 |
+
}
|
180 |
+
else
|
181 |
+
{
|
182 |
+
if($level->cycle_number == '1')
|
183 |
+
{
|
184 |
+
$r .= sprintf(__(' and then <strong>%s per %s</strong>.', 'Recurring payment in cost text generation. E.g. $5 every month.', 'pmpro'), $pmpro_currency_symbol . $level->billing_amount, pmpro_translate_billing_period($level->cycle_period));
|
185 |
+
}
|
186 |
+
else
|
187 |
+
{
|
188 |
+
$r .= sprintf(__(' and then <strong>%s every %d %s</strong>.', 'Recurring payment in cost text generation. E.g., $5 every 2 months.', 'pmpro'), $pmpro_currency_symbol . $level->billing_amount, $level->cycle_number, pmpro_translate_billing_period($level->cycle_period, $level->cycle_number));
|
189 |
+
}
|
190 |
+
}
|
191 |
+
}
|
192 |
+
else
|
193 |
+
$r .= '.';
|
194 |
+
|
195 |
+
//trial part
|
196 |
+
if($level->trial_limit)
|
197 |
+
{
|
198 |
+
if($level->trial_amount == '0.00')
|
199 |
+
{
|
200 |
+
if($level->trial_limit == '1')
|
201 |
+
{
|
202 |
+
$r .= ' ' . _x('After your initial payment, your first payment is Free.', 'Trial payment in cost text generation.', 'pmpro');
|
203 |
+
}
|
204 |
+
else
|
205 |
+
{
|
206 |
+
$r .= ' ' . sprintf(_x('After your initial payment, your first %d payments are Free.', 'Trial payment in cost text generation.', 'pmpro'), $level->trial_limit);
|
207 |
+
}
|
208 |
+
}
|
209 |
+
else
|
210 |
+
{
|
211 |
+
if($level->trial_limit == '1')
|
212 |
+
{
|
213 |
+
$r .= ' ' . sprintf(_x('After your initial payment, your first payment will cost %s.', 'Trial payment in cost text generation.', 'pmpro'), $pmpro_currency_symbol . $level->trial_amount);
|
214 |
+
}
|
215 |
+
else
|
216 |
+
{
|
217 |
+
$r .= ' ' . sprintf(_x('After your initial payment, your first %d payments will cost %s.', 'Trial payment in cost text generation. E.g. ... first 2 payments will cost $5', 'pmpro'), $level->trial_limit, $pmpro_currency_symbol . $level->trial_amount);
|
218 |
+
}
|
219 |
+
}
|
220 |
+
}
|
221 |
+
|
222 |
+
//taxes part
|
223 |
+
$tax_state = pmpro_getOption("tax_state");
|
224 |
+
$tax_rate = pmpro_getOption("tax_rate");
|
225 |
+
|
226 |
+
if($tax_state && $tax_rate && !pmpro_isLevelFree($level))
|
227 |
+
{
|
228 |
+
$r .= sprintf(_x('Customers in %s will be charged %s%% tax.', 'Tax part in cost text generation', 'pmpro'), $tax_state, round($tax_rate * 100, 2));
|
229 |
+
}
|
230 |
+
|
231 |
+
if(!$tags)
|
232 |
+
$r = strip_tags($r);
|
233 |
+
|
234 |
+
$r = apply_filters("pmpro_level_cost_text", $r, $level);
|
235 |
+
return $r;
|
236 |
+
}
|
237 |
+
|
238 |
+
function pmpro_getLevelExpiration(&$level)
|
239 |
+
{
|
240 |
+
if($level->expiration_number)
|
241 |
+
{
|
242 |
+
$expiration_text = sprintf(_x("Membership expires after %d %s.", "Expiration text. E.g. Membership expires after 5 Months.", "pmpro"), $level->expiration_number, pmpro_translate_billing_period($level->expiration_period, $level->expiration_number));
|
243 |
+
}
|
244 |
+
else
|
245 |
+
$expiration_text = "";
|
246 |
+
|
247 |
+
$expiration_text = apply_filters("pmpro_level_expiration_text", $expiration_text, $level);
|
248 |
+
return $expiration_text;
|
249 |
+
}
|
250 |
+
|
251 |
+
function pmpro_hideAds()
|
252 |
+
{
|
253 |
+
global $pmpro_display_ads;
|
254 |
+
return !$pmpro_display_ads;
|
255 |
+
}
|
256 |
+
|
257 |
+
function pmpro_displayAds()
|
258 |
+
{
|
259 |
+
global $pmpro_display_ads;
|
260 |
+
return $pmpro_display_ads;
|
261 |
+
}
|
262 |
+
|
263 |
+
function pmpro_next_payment($user_id = NULL)
|
264 |
+
{
|
265 |
+
global $wpdb, $current_user;
|
266 |
+
if(!$user_id)
|
267 |
+
$user_id = $current_user->ID;
|
268 |
+
|
269 |
+
if(!$user_id)
|
270 |
+
return false;
|
271 |
+
|
272 |
+
//when were they last billed
|
273 |
+
$lastdate = $wpdb->get_var("SELECT UNIX_TIMESTAMP(timestamp) as timestamp FROM $wpdb->pmpro_membership_orders WHERE user_id = '" . $user_id . "' ORDER BY timestamp DESC LIMIT 1");
|
274 |
+
|
275 |
+
if($lastdate)
|
276 |
+
{
|
277 |
+
//next payment will be same day, following month
|
278 |
+
$lastmonth = date("n", $lastdate);
|
279 |
+
$lastday = date("j", $lastdate);
|
280 |
+
$lastyear = date("Y", $lastdate);
|
281 |
+
|
282 |
+
$nextmonth = ((int)$lastmonth) + 1;
|
283 |
+
if($nextmonth == 13)
|
284 |
+
{
|
285 |
+
$nextmonth = 1;
|
286 |
+
$nextyear = ((int)$lastyear) + 1;
|
287 |
+
}
|
288 |
+
else
|
289 |
+
$nextyear = $lastyear;
|
290 |
+
|
291 |
+
$daysinnextmonth = date("t", strtotime($nextyear . "-" . $nextmonth . "-1"));
|
292 |
+
|
293 |
+
if($daysinnextmonth < $lastday)
|
294 |
+
{
|
295 |
+
$nextday = $daysinnextmonth;
|
296 |
+
}
|
297 |
+
else
|
298 |
+
$nextday = $lastday;
|
299 |
+
|
300 |
+
return strtotime($nextyear . "-" . $nextmonth . "-" . $nextday);
|
301 |
+
}
|
302 |
+
else
|
303 |
+
{
|
304 |
+
return false;
|
305 |
+
}
|
306 |
+
|
307 |
+
}
|
308 |
+
|
309 |
+
if(!function_exists("last4"))
|
310 |
+
{
|
311 |
+
function last4($t)
|
312 |
+
{
|
313 |
+
return substr($t, strlen($t) - 4, 4);
|
314 |
+
}
|
315 |
+
}
|
316 |
+
|
317 |
+
if(!function_exists("hideCardNumber"))
|
318 |
+
{
|
319 |
+
function hideCardNumber($c, $dashes = true)
|
320 |
+
{
|
321 |
+
if($c)
|
322 |
+
{
|
323 |
+
if($dashes)
|
324 |
+
return "XXXX-XXXX-XXXX-" . substr($c, strlen($c) - 4, 4);
|
325 |
+
else
|
326 |
+
return "XXXXXXXXXXXX" . substr($c, strlen($c) - 4, 4);
|
327 |
+
}
|
328 |
+
else
|
329 |
+
{
|
330 |
+
return "";
|
331 |
+
}
|
332 |
+
}
|
333 |
+
}
|
334 |
+
|
335 |
+
if(!function_exists("cleanPhone"))
|
336 |
+
{
|
337 |
+
function cleanPhone($phone)
|
338 |
+
{
|
339 |
+
//if a + is passed, just pass it along
|
340 |
+
if(strpos($phone, "+") !== false)
|
341 |
+
return $phone;
|
342 |
+
|
343 |
+
//clean the phone
|
344 |
+
$phone = str_replace("-", "", $phone);
|
345 |
+
$phone = str_replace(".", "", $phone);
|
346 |
+
$phone = str_replace("(", "", $phone);
|
347 |
+
$phone = str_replace(")", "", $phone);
|
348 |
+
$phone = str_replace(" ", "", $phone);
|
349 |
+
|
350 |
+
return $phone;
|
351 |
+
}
|
352 |
+
}
|
353 |
+
|
354 |
+
if(!function_exists("formatPhone"))
|
355 |
+
{
|
356 |
+
function formatPhone($phone)
|
357 |
+
{
|
358 |
+
$phone = cleanPhone($phone);
|
359 |
+
|
360 |
+
if(strlen($phone) == 11)
|
361 |
+
return substr($phone, 0, 1) . " (" . substr($phone, 1, 3) . ") " . substr($phone, 4, 3) . "-" . substr($phone, 7, 4);
|
362 |
+
elseif(strlen($phone) == 10)
|
363 |
+
return "(" . substr($phone, 0, 3) . ") " . substr($phone, 3, 3) . "-" . substr($phone, 6, 4);
|
364 |
+
elseif(strlen($phone) == 7)
|
365 |
+
return substr($phone, 0, 3) . "-" . substr($phone, 3, 4);
|
366 |
+
else
|
367 |
+
return $phone;
|
368 |
+
}
|
369 |
+
}
|
370 |
+
|
371 |
+
function pmpro_showRequiresMembershipMessage()
|
372 |
+
{
|
373 |
+
//get the correct message
|
374 |
+
if(is_feed())
|
375 |
+
{
|
376 |
+
$content = pmpro_getOption("rsstext");
|
377 |
+
$content = str_replace("!!levels!!", implode(", ", $post_membership_levels_names), $content);
|
378 |
+
}
|
379 |
+
elseif($current_user->ID)
|
380 |
+
{
|
381 |
+
//not a member
|
382 |
+
$content = pmpro_getOption("nonmembertext");
|
383 |
+
$content = str_replace("!!levels!!", implode(", ", $post_membership_levels_names), $content);
|
384 |
+
}
|
385 |
+
else
|
386 |
+
{
|
387 |
+
//not logged in!
|
388 |
+
$content = pmpro_getOption("notloggedintext");
|
389 |
+
$content = str_replace("!!levels!!", implode(", ", $post_membership_levels_names), $content);
|
390 |
+
}
|
391 |
+
}
|
392 |
+
|
393 |
+
/* pmpro_hasMembershipLevel() checks if the passed user is a member of the passed level
|
394 |
+
*
|
395 |
+
* $level may either be the ID or name of the desired membership_level. (or an array of such)
|
396 |
+
* If $user_id is omitted, the value will be retrieved from $current_user.
|
397 |
+
*
|
398 |
+
* Return values:
|
399 |
+
* Success returns boolean true.
|
400 |
+
* Failure returns a string containing the error message.
|
401 |
+
*/
|
402 |
+
function pmpro_hasMembershipLevel($levels = NULL, $user_id = NULL)
|
403 |
+
{
|
404 |
+
global $current_user, $all_membership_levels, $wpdb;
|
405 |
+
|
406 |
+
$return = false;
|
407 |
+
|
408 |
+
if(empty($user_id)) //no user_id passed, check the current user
|
409 |
+
{
|
410 |
+
$user_id = $current_user->ID;
|
411 |
+
$membership_levels = $current_user->membership_levels;
|
412 |
+
}
|
413 |
+
else //get membership levels for given user
|
414 |
+
{
|
415 |
+
$membership_levels = pmpro_getMembershipLevelsForUser($user_id);
|
416 |
+
}
|
417 |
+
|
418 |
+
if($levels === "0" || $levels === 0) //if 0 was passed, return true if they have no level and false if they have any
|
419 |
+
{
|
420 |
+
$return = empty($membership_levels);
|
421 |
+
}
|
422 |
+
elseif(empty($levels)) //if no level var was passed, we're just checking if they have any level
|
423 |
+
{
|
424 |
+
$return = !empty($membership_levels);
|
425 |
+
}
|
426 |
+
else
|
427 |
+
{
|
428 |
+
if(!is_array($levels)) //make an array out of a single element so we can use the same code
|
429 |
+
{
|
430 |
+
$levels = array($levels);
|
431 |
+
}
|
432 |
+
|
433 |
+
if(empty($membership_levels))
|
434 |
+
{
|
435 |
+
//user has no levels just check if 0 was sent in one of the levels
|
436 |
+
if(in_array(0, $levels) || in_array("0", $levels))
|
437 |
+
$return = true;
|
438 |
+
}
|
439 |
+
else
|
440 |
+
{
|
441 |
+
foreach($levels as $level)
|
442 |
+
{
|
443 |
+
$level_obj = pmpro_getLevel(is_numeric($level) ? abs(intval($level)) : $level); //make sure our level is in a proper format
|
444 |
+
if(empty($level_obj)){continue;} //invalid level
|
445 |
+
$found_level = false;
|
446 |
+
foreach($membership_levels as $membership_level)
|
447 |
+
{
|
448 |
+
if($membership_level->id == $level_obj->id) //found a match
|
449 |
+
{
|
450 |
+
$found_level = true;
|
451 |
+
}
|
452 |
+
}
|
453 |
+
|
454 |
+
if(is_numeric($level) and intval($level) < 0 and !$found_level) //checking for the absence of this level
|
455 |
+
{
|
456 |
+
$return = true;
|
457 |
+
}
|
458 |
+
else if($found_level) //checking for the presence of this level
|
459 |
+
{
|
460 |
+
$return = true;
|
461 |
+
}
|
462 |
+
}
|
463 |
+
}
|
464 |
+
}
|
465 |
+
|
466 |
+
$return = apply_filters("pmpro_has_membership_level", $return, $user_id, $levels);
|
467 |
+
return $return;
|
468 |
+
}
|
469 |
+
|
470 |
+
/* pmpro_changeMembershipLevel() creates or updates the membership level of the given user to the given level.
|
471 |
+
*
|
472 |
+
* $level may either be the ID or name of the desired membership_level.
|
473 |
+
* If $user_id is omitted, the value will be retrieved from $current_user.
|
474 |
+
*
|
475 |
+
* Return values:
|
476 |
+
* Success returns boolean true.
|
477 |
+
* Failure returns boolean false.
|
478 |
+
*/
|
479 |
+
function pmpro_changeMembershipLevel($level, $user_id = NULL)
|
480 |
+
{
|
481 |
+
global $wpdb;
|
482 |
+
global $current_user, $pmpro_error;
|
483 |
+
|
484 |
+
if(empty($user_id))
|
485 |
+
{
|
486 |
+
$user_id = $current_user->ID;
|
487 |
+
}
|
488 |
+
|
489 |
+
if(empty($user_id))
|
490 |
+
{
|
491 |
+
$pmpro_error = __("User ID not found.", "pmpro");
|
492 |
+
return false;
|
493 |
+
}
|
494 |
+
|
495 |
+
if(empty($level)) //cancelling membership
|
496 |
+
{
|
497 |
+
$level = 0;
|
498 |
+
}
|
499 |
+
else if(is_array($level))
|
500 |
+
{
|
501 |
+
//custom level
|
502 |
+
}
|
503 |
+
else
|
504 |
+
{
|
505 |
+
$level_obj = pmpro_getLevel($level);
|
506 |
+
if(empty($level_obj))
|
507 |
+
{
|
508 |
+
$pmpro_error = __("Invalid level.", "pmpro");
|
509 |
+
return false;
|
510 |
+
}
|
511 |
+
$level = $level_obj->id;
|
512 |
+
}
|
513 |
+
|
514 |
+
|
515 |
+
//if it's a custom level, they're changing
|
516 |
+
if(!is_array($level))
|
517 |
+
{
|
518 |
+
//are they even changing?
|
519 |
+
if(pmpro_hasMembershipLevel($level, $user_id)) {
|
520 |
+
$pmpro_error = __("not changing?", "pmpro");
|
521 |
+
return false; //not changing
|
522 |
+
}
|
523 |
+
}
|
524 |
+
|
525 |
+
$old_levels = pmpro_getMembershipLevelsForUser($user_id);
|
526 |
+
|
527 |
+
$pmpro_cancel_previous_subscriptions = apply_filters("pmpro_cancel_previous_subscriptions", true);
|
528 |
+
if($pmpro_cancel_previous_subscriptions)
|
529 |
+
{
|
530 |
+
//deactivate old memberships (updates pmpro_memberships_users table)
|
531 |
+
if(!empty($old_levels))
|
532 |
+
{
|
533 |
+
foreach($old_levels as $old_level) {
|
534 |
+
$sql = "UPDATE $wpdb->pmpro_memberships_users SET `status`='inactive', `enddate`=NOW() WHERE `id`=".$old_level->subscription_id;
|
535 |
+
if(!$wpdb->query($sql))
|
536 |
+
{
|
537 |
+
$pmpro_error = __("Error interacting with database", "pmpro") . ": ".(mysql_errno()?mysql_error():'unavailable');
|
538 |
+
return false;
|
539 |
+
}
|
540 |
+
}
|
541 |
+
}
|
542 |
+
|
543 |
+
//cancel any other subscriptions they have (updates pmpro_membership_orders table)
|
544 |
+
$other_order_ids = $wpdb->get_col("SELECT id FROM $wpdb->pmpro_membership_orders WHERE user_id = '" . $user_id . "' AND status = 'success' ORDER BY id DESC");
|
545 |
+
foreach($other_order_ids as $order_id)
|
546 |
+
{
|
547 |
+
$c_order = new MemberOrder($order_id);
|
548 |
+
$c_order->cancel();
|
549 |
+
}
|
550 |
+
}
|
551 |
+
|
552 |
+
//insert current membership
|
553 |
+
if(!empty($level)) //are we getting a new one or just cancelling the old ones
|
554 |
+
{
|
555 |
+
if(is_array($level))
|
556 |
+
{
|
557 |
+
//make sure the dates are in good formats
|
558 |
+
if($level['startdate'] != "NOW()" && $level['startdate'] != "NULL" && substr($level['startdate'], 0, 1) != "'")
|
559 |
+
$level['startdate'] = "'" . $level['startdate'] . "'";
|
560 |
+
|
561 |
+
if($level['enddate'] != "NOW()" && $level['enddate'] != "NULL" && substr($level['enddate'], 0, 1) != "'")
|
562 |
+
$level['enddate'] = "'" . $level['enddate'] . "'";
|
563 |
+
|
564 |
+
//Better support mySQL Strict Mode by passing a proper enum value for cycle_period
|
565 |
+
if ($level['cycle_period'] == '') $level['cycle_period'] = 0;
|
566 |
+
|
567 |
+
$sql = "INSERT INTO $wpdb->pmpro_memberships_users (user_id, membership_id, code_id, initial_payment, billing_amount, cycle_number, cycle_period, billing_limit, trial_amount, trial_limit, startdate, enddate)
|
568 |
+
VALUES('" . $level['user_id'] . "',
|
569 |
+
'" . $level['membership_id'] . "',
|
570 |
+
'" . intval($level['code_id']) . "',
|
571 |
+
'" . $level['initial_payment'] . "',
|
572 |
+
'" . $level['billing_amount'] . "',
|
573 |
+
'" . $level['cycle_number'] . "',
|
574 |
+
'" . $level['cycle_period'] . "',
|
575 |
+
'" . $level['billing_limit'] . "',
|
576 |
+
'" . $level['trial_amount'] . "',
|
577 |
+
'" . $level['trial_limit'] . "',
|
578 |
+
" . $level['startdate'] . ",
|
579 |
+
" . $level['enddate'] . ")";
|
580 |
+
|
581 |
+
if(!$wpdb->query($sql))
|
582 |
+
{
|
583 |
+
$pmpro_error = __("Error interacting with database", "pmpro") . ": ".(mysql_errno()?mysql_error():'unavailable');
|
584 |
+
return false;
|
585 |
+
}
|
586 |
+
}
|
587 |
+
else
|
588 |
+
{
|
589 |
+
$sql = "INSERT INTO $wpdb->pmpro_memberships_users (`membership_id`,`user_id`) VALUES ('" . $level . "','" . $user_id . "')";
|
590 |
+
if(!$wpdb->query($sql))
|
591 |
+
{
|
592 |
+
$pmpro_error = __("Error interacting with database", "pmpro") . ": ".(mysql_errno()?mysql_error():'unavailable');
|
593 |
+
return false;
|
594 |
+
}
|
595 |
+
}
|
596 |
+
}
|
597 |
+
|
598 |
+
//get level id
|
599 |
+
if(is_array($level))
|
600 |
+
$level_id = $level['membership_id']; //custom level
|
601 |
+
else
|
602 |
+
$level_id = $level; //just id
|
603 |
+
|
604 |
+
//update user data and call action
|
605 |
+
pmpro_set_current_user();
|
606 |
+
do_action("pmpro_after_change_membership_level", $level_id, $user_id); //$level is the $level_id here
|
607 |
+
return true;
|
608 |
+
}
|
609 |
+
|
610 |
+
/* pmpro_toggleMembershipCategory() creates or deletes a linking entry between the membership level and post category tables.
|
611 |
+
*
|
612 |
+
* $level may either be the ID or name of the desired membership_level.
|
613 |
+
* $category must be a valid post category ID.
|
614 |
+
*
|
615 |
+
* Return values:
|
616 |
+
* Success returns boolean true.
|
617 |
+
* Failure returns a string containing the error message.
|
618 |
+
*/
|
619 |
+
function pmpro_toggleMembershipCategory( $level, $category, $value )
|
620 |
+
{
|
621 |
+
global $wpdb;
|
622 |
+
$category = intval($category);
|
623 |
+
|
624 |
+
if ( ($level = intval($level)) <= 0 )
|
625 |
+
{
|
626 |
+
$safe = addslashes($level);
|
627 |
+
if ( ($level = intval($wpdb->get_var("SELECT id FROM {$wpdb->pmpro_membership_levels} WHERE name = '$safe' LIMIT 1"))) <= 0 )
|
628 |
+
{
|
629 |
+
return __("Membership level not found.", "pmpro");
|
630 |
+
}
|
631 |
+
}
|
632 |
+
|
633 |
+
if ( $value )
|
634 |
+
{
|
635 |
+
$sql = "REPLACE INTO {$wpdb->pmpro_memberships_categories} (`membership_id`,`category_id`) VALUES ('$level','$category')";
|
636 |
+
$wpdb->query($sql);
|
637 |
+
if(mysql_errno()) return mysql_error();
|
638 |
+
}
|
639 |
+
else
|
640 |
+
{
|
641 |
+
$sql = "DELETE FROM {$wpdb->pmpro_memberships_categories} WHERE `membership_id` = '$level' AND `category_id` = '$category' LIMIT 1";
|
642 |
+
$wpdb->query($sql);
|
643 |
+
if(mysql_errno()) return mysql_error();
|
644 |
+
}
|
645 |
+
|
646 |
+
return true;
|
647 |
+
}
|
648 |
+
|
649 |
+
/* pmpro_updateMembershipCategories() ensures that all those and only those categories given
|
650 |
+
* are associated with the given membership level.
|
651 |
+
*
|
652 |
+
* $level is a valid membership level ID or name
|
653 |
+
* $categories is an array of post category IDs
|
654 |
+
*
|
655 |
+
* Return values:
|
656 |
+
* Success returns boolean true.
|
657 |
+
* Failure returns a string containing the error message.
|
658 |
+
*/
|
659 |
+
function pmpro_updateMembershipCategories($level, $categories)
|
660 |
+
{
|
661 |
+
global $wpdb;
|
662 |
+
|
663 |
+
if(!is_numeric($level))
|
664 |
+
{
|
665 |
+
$level = $wpdb->get_var("SELECT id FROM $wpdb->pmpro_membership_levels WHERE name = '" . $wpdb->escape($level) . "' LIMIT 1");
|
666 |
+
if(empty($level))
|
667 |
+
{
|
668 |
+
return __("Membership level not found.", "pmpro");
|
669 |
+
}
|
670 |
+
}
|
671 |
+
|
672 |
+
// remove all existing links...
|
673 |
+
$sqlQuery = "DELETE FROM $wpdb->pmpro_memberships_categories WHERE `membership_id` = '" . $wpdb->escape($level) . "'";
|
674 |
+
$wpdb->query($sqlQuery);
|
675 |
+
if(mysql_errno()) return mysql_error();
|
676 |
+
|
677 |
+
// add the given links [back?] in...
|
678 |
+
foreach($categories as $cat)
|
679 |
+
{
|
680 |
+
if(is_string($r = pmpro_toggleMembershipCategory( $level, $cat, true)))
|
681 |
+
{
|
682 |
+
//uh oh, error
|
683 |
+
return $r;
|
684 |
+
}
|
685 |
+
}
|
686 |
+
|
687 |
+
//all good
|
688 |
+
return true;
|
689 |
+
}
|
690 |
+
|
691 |
+
/* pmpro_getMembershipCategories() returns the categories for a given level
|
692 |
+
*
|
693 |
+
* $level_id is a valid membership level ID
|
694 |
+
*
|
695 |
+
* Return values:
|
696 |
+
* Success returns boolean true.
|
697 |
+
* Failure returns boolean false.
|
698 |
+
*/
|
699 |
+
function pmpro_getMembershipCategories($level_id)
|
700 |
+
{
|
701 |
+
global $wpdb;
|
702 |
+
$categories = $wpdb->get_results("SELECT c.category_id
|
703 |
+
FROM {$wpdb->pmpro_memberships_categories} AS c
|
704 |
+
WHERE c.membership_id = '" . $level_id . "'", ARRAY_N);
|
705 |
+
|
706 |
+
$returns = array();
|
707 |
+
if(is_array($categories))
|
708 |
+
{
|
709 |
+
foreach($categories as $cat)
|
710 |
+
{
|
711 |
+
$returns[] = $cat;
|
712 |
+
}
|
713 |
+
}
|
714 |
+
return $returns;
|
715 |
+
}
|
716 |
+
|
717 |
+
function pmpro_isAdmin($user_id = NULL)
|
718 |
+
{
|
719 |
+
global $current_user, $wpdb;
|
720 |
+
if(!$user_id)
|
721 |
+
$user_id = $current_user->ID;
|
722 |
+
|
723 |
+
if(!$user_id)
|
724 |
+
return false;
|
725 |
+
|
726 |
+
$admincap = user_can($user_id, "manage_options");
|
727 |
+
if($admincap)
|
728 |
+
return true;
|
729 |
+
else
|
730 |
+
return false;
|
731 |
+
}
|
732 |
+
|
733 |
+
function pmpro_replaceUserMeta($user_id, $meta_keys, $meta_values, $prev_values = NULL)
|
734 |
+
{
|
735 |
+
//expects all arrays for last 3 params or all strings
|
736 |
+
if(!is_array($meta_keys))
|
737 |
+
{
|
738 |
+
$meta_keys = array($meta_keys);
|
739 |
+
$meta_values = array($meta_values);
|
740 |
+
$prev_values = array($prev_values);
|
741 |
+
}
|
742 |
+
|
743 |
+
for($i = 0; $i < count($meta_values); $i++)
|
744 |
+
{
|
745 |
+
if($prev_values[$i])
|
746 |
+
{
|
747 |
+
update_user_meta($user_id, $meta_keys[$i], $meta_values[$i], $prev_values[$i]);
|
748 |
+
}
|
749 |
+
else
|
750 |
+
{
|
751 |
+
$old_value = get_user_meta($user_id, $meta_keys[$i], true);
|
752 |
+
if($old_value)
|
753 |
+
{
|
754 |
+
update_user_meta($user_id, $meta_keys[$i], $meta_values[$i], $old_value);
|
755 |
+
}
|
756 |
+
else
|
757 |
+
{
|
758 |
+
update_user_meta($user_id, $meta_keys[$i], $meta_values[$i]);
|
759 |
+
}
|
760 |
+
}
|
761 |
+
}
|
762 |
+
|
763 |
+
return $i;
|
764 |
+
}
|
765 |
+
|
766 |
+
function pmpro_getMetavalues($query)
|
767 |
+
{
|
768 |
+
global $wpdb;
|
769 |
+
|
770 |
+
$results = $wpdb->get_results($query);
|
771 |
+
foreach($results as $result)
|
772 |
+
{
|
773 |
+
$r->{$result->key} = $result->value;
|
774 |
+
}
|
775 |
+
|
776 |
+
return $r;
|
777 |
+
}
|
778 |
+
|
779 |
+
//function to return the pagination string
|
780 |
+
function pmpro_getPaginationString($page = 1, $totalitems, $limit = 15, $adjacents = 1, $targetpage = "/", $pagestring = "&pn=")
|
781 |
+
{
|
782 |
+
//defaults
|
783 |
+
if(!$adjacents) $adjacents = 1;
|
784 |
+
if(!$limit) $limit = 15;
|
785 |
+
if(!$page) $page = 1;
|
786 |
+
if(!$targetpage) $targetpage = "/";
|
787 |
+
|
788 |
+
//other vars
|
789 |
+
$prev = $page - 1; //previous page is page - 1
|
790 |
+
$next = $page + 1; //next page is page + 1
|
791 |
+
$lastpage = ceil($totalitems / $limit); //lastpage is = total items / items per page, rounded up.
|
792 |
+
$lpm1 = $lastpage - 1; //last page minus 1
|
793 |
+
|
794 |
+
/*
|
795 |
+
Now we apply our rules and draw the pagination object.
|
796 |
+
We're actually saving the code to a variable in case we want to draw it more than once.
|
797 |
+
*/
|
798 |
+
$pagination = "";
|
799 |
+
if($lastpage > 1)
|
800 |
+
{
|
801 |
+
$pagination .= "<div class=\"pmpro_pagination\"";
|
802 |
+
if(!empty($margin) || !empty($padding))
|
803 |
+
{
|
804 |
+
$pagination .= " style=\"";
|
805 |
+
if($margin)
|
806 |
+
$pagination .= "margin: $margin;";
|
807 |
+
if($padding)
|
808 |
+
$pagination .= "padding: $padding;";
|
809 |
+
$pagination .= "\"";
|
810 |
+
}
|
811 |
+
$pagination .= ">";
|
812 |
+
|
813 |
+
//previous button
|
814 |
+
if ($page > 1)
|
815 |
+
$pagination .= "<a href=\"$targetpage$pagestring$prev\">« prev</a>";
|
816 |
+
else
|
817 |
+
$pagination .= "<span class=\"disabled\">« prev</span>";
|
818 |
+
|
819 |
+
//pages
|
820 |
+
if ($lastpage < 7 + ($adjacents * 2)) //not enough pages to bother breaking it up
|
821 |
+
{
|
822 |
+
for ($counter = 1; $counter <= $lastpage; $counter++)
|
823 |
+
{
|
824 |
+
if ($counter == $page)
|
825 |
+
$pagination .= "<span class=\"current\">$counter</span>";
|
826 |
+
else
|
827 |
+
$pagination .= "<a href=\"" . $targetpage . $pagestring . $counter . "\">$counter</a>";
|
828 |
+
}
|
829 |
+
}
|
830 |
+
elseif($lastpage >= 7 + ($adjacents * 2)) //enough pages to hide some
|
831 |
+
{
|
832 |
+
//close to beginning; only hide later pages
|
833 |
+
if($page < 1 + ($adjacents * 3))
|
834 |
+
{
|
835 |
+
for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
|
836 |
+
{
|
837 |
+
if ($counter == $page)
|
838 |
+
$pagination .= "<span class=\"current\">$counter</span>";
|
839 |
+
else
|
840 |
+
$pagination .= "<a href=\"" . $targetpage . $pagestring . $counter . "\">$counter</a>";
|
841 |
+
}
|
842 |
+
$pagination .= "...";
|
843 |
+
$pagination .= "<a href=\"" . $targetpage . $pagestring . $lpm1 . "\">$lpm1</a>";
|
844 |
+
$pagination .= "<a href=\"" . $targetpage . $pagestring . $lastpage . "\">$lastpage</a>";
|
845 |
+
}
|
846 |
+
//in middle; hide some front and some back
|
847 |
+
elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
|
848 |
+
{
|
849 |
+
$pagination .= "<a href=\"" . $targetpage . $pagestring . "1\">1</a>";
|
850 |
+
$pagination .= "<a href=\"" . $targetpage . $pagestring . "2\">2</a>";
|
851 |
+
$pagination .= "...";
|
852 |
+
for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
|
853 |
+
{
|
854 |
+
if ($counter == $page)
|
855 |
+
$pagination .= "<span class=\"current\">$counter</span>";
|
856 |
+
else
|
857 |
+
$pagination .= "<a href=\"" . $targetpage . $pagestring . $counter . "\">$counter</a>";
|
858 |
+
}
|
859 |
+
$pagination .= "...";
|
860 |
+
$pagination .= "<a href=\"" . $targetpage . $pagestring . $lpm1 . "\">$lpm1</a>";
|
861 |
+
$pagination .= "<a href=\"" . $targetpage . $pagestring . $lastpage . "\">$lastpage</a>";
|
862 |
+
}
|
863 |
+
//close to end; only hide early pages
|
864 |
+
else
|
865 |
+
{
|
866 |
+
$pagination .= "<a href=\"" . $targetpage . $pagestring . "1\">1</a>";
|
867 |
+
$pagination .= "<a href=\"" . $targetpage . $pagestring . "2\">2</a>";
|
868 |
+
$pagination .= "...";
|
869 |
+
for ($counter = $lastpage - (1 + ($adjacents * 3)); $counter <= $lastpage; $counter++)
|
870 |
+
{
|
871 |
+
if ($counter == $page)
|
872 |
+
$pagination .= "<span class=\"current\">$counter</span>";
|
873 |
+
else
|
874 |
+
$pagination .= "<a href=\"" . $targetpage . $pagestring . $counter . "\">$counter</a>";
|
875 |
+
}
|
876 |
+
}
|
877 |
+
}
|
878 |
+
|
879 |
+
//next button
|
880 |
+
if ($page < $counter - 1)
|
881 |
+
$pagination .= "<a href=\"" . $targetpage . $pagestring . $next . "\">next »</a>";
|
882 |
+
else
|
883 |
+
$pagination .= "<span class=\"disabled\">next »</span>";
|
884 |
+
$pagination .= "</div>\n";
|
885 |
+
}
|
886 |
+
|
887 |
+
return $pagination;
|
888 |
+
|
889 |
+
}
|
890 |
+
|
891 |
+
function pmpro_calculateInitialPaymentRevenue($s = NULL, $l = NULL)
|
892 |
+
{
|
893 |
+
global $wpdb;
|
894 |
+
|
895 |
+
//if we're limiting users by search
|
896 |
+
if($s || $l)
|
897 |
+
{
|
898 |
+
$user_ids_query = "SELECT u.ID FROM $wpdb->users u LEFT JOIN $wpdb->usermeta um ON u.ID = um.user_id LEFT JOIN $wpdb->pmpro_memberships_users mu ON u.ID = mu.user_id WHERE mu.status = 'active' ";
|
899 |
+
if($s)
|
900 |
+
$user_ids_query .= "AND (u.user_login LIKE '%$s%' OR u.user_email LIKE '%$s%' OR um.meta_value LIKE '%$s%') ";
|
901 |
+
if($l)
|
902 |
+
$user_ids_query .= "AND mu.membership_id = '$l' ";
|
903 |
+
}
|
904 |
+
|
905 |
+
//query to sum initial payments
|
906 |
+
$sqlQuery = "SELECT SUM(initial_payment) FROM $wpdb->pmpro_memberships_users WHERE `status` = 'active' ";
|
907 |
+
if(!empty($user_ids_query))
|
908 |
+
$sqlQuery .= "AND user_id IN(" . $user_ids_query . ") ";
|
909 |
+
|
910 |
+
$total = $wpdb->get_var($sqlQuery);
|
911 |
+
|
912 |
+
return (double)$total;
|
913 |
+
}
|
914 |
+
|
915 |
+
function pmpro_calculateRecurringRevenue($s, $l)
|
916 |
+
{
|
917 |
+
global $wpdb;
|
918 |
+
|
919 |
+
//if we're limiting users by search
|
920 |
+
if($s || $l)
|
921 |
+
{
|
922 |
+
$user_ids_query = "AND user_id IN(SELECT u.ID FROM $wpdb->users u LEFT JOIN $wpdb->usermeta um ON u.ID = um.user_id LEFT JOIN $wpdb->pmpro_memberships_users mu ON u.ID = mu.user_id WHERE mu.status = 'active' ";
|
923 |
+
if($s)
|
924 |
+
$user_ids_query .= "AND (u.user_login LIKE '%$s%' OR u.user_email LIKE '%$s%' OR um.meta_value LIKE '%$s%') ";
|
925 |
+
if($l)
|
926 |
+
$user_ids_query .= "AND mu.membership_id = '$l' ";
|
927 |
+
$user_ids_query .= ")";
|
928 |
+
}
|
929 |
+
else
|
930 |
+
$user_ids_query = "";
|
931 |
+
|
932 |
+
//4 queries to get annual earnings for each cycle period. currently ignoring trial periods and billing limits.
|
933 |
+
$sqlQuery = "
|
934 |
+
SELECT SUM((12/cycle_number)*billing_amount) FROM $wpdb->pmpro_memberships_users WHERE status = 'active' AND cycle_period = 'Month' AND cycle_number <> 12 $user_ids_query
|
935 |
+
UNION
|
936 |
+
SELECT SUM((365/cycle_number)*billing_amount) FROM $wpdb->pmpro_memberships_users WHERE status = 'active' AND cycle_period = 'Day' AND cycle_number <> 365 $user_ids_query
|
937 |
+
UNION
|
938 |
+
SELECT SUM((52/cycle_number)*billing_amount) FROM $wpdb->pmpro_memberships_users WHERE status = 'active' AND cycle_period = 'Week' AND cycle_number <> 52 $user_ids_query
|
939 |
+
UNION
|
940 |
+
SELECT SUM(billing_amount) FROM $wpdb->pmpro_memberships_users WHERE status = 'active' AND cycle_period = 'Year' $user_ids_query
|
941 |
+
";
|
942 |
+
|
943 |
+
$annual_revenues = $wpdb->get_col($sqlQuery);
|
944 |
+
|
945 |
+
$total = 0;
|
946 |
+
foreach($annual_revenues as $r)
|
947 |
+
{
|
948 |
+
$total += $r;
|
949 |
+
}
|
950 |
+
|
951 |
+
return $total;
|
952 |
+
}
|
953 |
+
|
954 |
+
function pmpro_generateUsername($firstname = "", $lastname = "", $email = "")
|
955 |
+
{
|
956 |
+
global $wpdb;
|
957 |
+
|
958 |
+
//try first initial + last name, firstname, lastname
|
959 |
+
$firstname = preg_replace("/[^A-Za-z]/", "", $firstname);
|
960 |
+
$lastname = preg_replace("/[^A-Za-z]/", "", $lastname);
|
961 |
+
if($firstname && $lastname)
|
962 |
+
{
|
963 |
+
$username = substr($firstname, 0, 1) . $lastname;
|
964 |
+
}
|
965 |
+
elseif($firstname)
|
966 |
+
{
|
967 |
+
$username = $firstname;
|
968 |
+
}
|
969 |
+
elseif($lastname)
|
970 |
+
{
|
971 |
+
$username = $lastname;
|
972 |
+
}
|
973 |
+
|
974 |
+
//is it taken?
|
975 |
+
$taken = $wpdb->get_var("SELECT user_login FROM $wpdb->users WHERE user_login = '" . $username . "' LIMIT 1");
|
976 |
+
|
977 |
+
if(!$taken)
|
978 |
+
return $username;
|
979 |
+
|
980 |
+
//try the beginning of the email address
|
981 |
+
$emailparts = explode("@", "email");
|
982 |
+
if(is_array($emailparts))
|
983 |
+
$email = preg_replace("/[^A-Za-z]/", "", $emailparts[0]);
|
984 |
+
|
985 |
+
if($email)
|
986 |
+
{
|
987 |
+
$username = $email;
|
988 |
+
}
|
989 |
+
|
990 |
+
//is this taken? if not, add numbers until it works
|
991 |
+
$taken = true;
|
992 |
+
$count = 0;
|
993 |
+
while($taken)
|
994 |
+
{
|
995 |
+
//add a # to the end
|
996 |
+
if($count)
|
997 |
+
{
|
998 |
+
$username = preg_replace("/[0-9]/", "", $username) . $count;
|
999 |
+
}
|
1000 |
+
|
1001 |
+
//taken?
|
1002 |
+
$taken = $wpdb->get_var("SELECT user_login FROM $wpdb->users WHERE user_login = '" . $username . "' LIMIT 1");
|
1003 |
+
|
1004 |
+
//increment the number
|
1005 |
+
$count++;
|
1006 |
+
}
|
1007 |
+
|
1008 |
+
//must have a good username now
|
1009 |
+
return $username;
|
1010 |
+
}
|
1011 |
+
|
1012 |
+
//get a new random code for discount codes
|
1013 |
+
function pmpro_getDiscountCode()
|
1014 |
+
{
|
1015 |
+
global $wpdb;
|
1016 |
+
|
1017 |
+
while(empty($code))
|
1018 |
+
{
|
1019 |
+
$scramble = md5(AUTH_KEY . time() . SECURE_AUTH_KEY);
|
1020 |
+
$code = substr($scramble, 0, 10);
|
1021 |
+
$check = $wpdb->get_var("SELECT code FROM $wpdb->pmpro_discount_codes WHERE code = '$code' LIMIT 1");
|
1022 |
+
if($check || is_numeric($code))
|
1023 |
+
$code = NULL;
|
1024 |
+
}
|
1025 |
+
|
1026 |
+
return strtoupper($code);
|
1027 |
+
}
|
1028 |
+
|
1029 |
+
//is a discount code valid
|
1030 |
+
function pmpro_checkDiscountCode($code, $level_id = NULL, $return_errors = false)
|
1031 |
+
{
|
1032 |
+
global $wpdb;
|
1033 |
+
|
1034 |
+
//no code, no code
|
1035 |
+
if(empty($code))
|
1036 |
+
{
|
1037 |
+
if($return_errors)
|
1038 |
+
return array(false, "No code was given to check.");
|
1039 |
+
else
|
1040 |
+
return false;
|
1041 |
+
}
|
1042 |
+
|
1043 |
+
//get code from db
|
1044 |
+
$dbcode = $wpdb->get_row("SELECT *, UNIX_TIMESTAMP(starts) as starts, UNIX_TIMESTAMP(expires) as expires FROM $wpdb->pmpro_discount_codes WHERE code ='" . $code . "' LIMIT 1");
|
1045 |
+
|
1046 |
+
//did we find it?
|
1047 |
+
if(empty($dbcode->id))
|
1048 |
+
{
|
1049 |
+
if($return_errors)
|
1050 |
+
return array(false, __("The discount code could not be found.", "pmpro"));
|
1051 |
+
else
|
1052 |
+
return false;
|
1053 |
+
}
|
1054 |
+
|
1055 |
+
//fix the date timestamps
|
1056 |
+
$dbcode->starts = strtotime(date("m/d/Y", $dbcode->starts));
|
1057 |
+
$dbcode->expires = strtotime(date("m/d/Y", $dbcode->expires));
|
1058 |
+
|
1059 |
+
//today
|
1060 |
+
$today = strtotime(date("m/d/Y 00:00:00"));
|
1061 |
+
|
1062 |
+
//has this code started yet?
|
1063 |
+
if(!empty($dbcode->starts) && $dbcode->starts > $today)
|
1064 |
+
{
|
1065 |
+
if($return_errors)
|
1066 |
+
return array(false, sprintf(__("This discount code goes into effect on %s.", "pmpro"), date(get_option('date_format'), $dbcode->starts)));
|
1067 |
+
else
|
1068 |
+
return false;
|
1069 |
+
}
|
1070 |
+
|
1071 |
+
//has this code expired?
|
1072 |
+
if(!empty($dbcode->expires) && $dbcode->expires < $today)
|
1073 |
+
{
|
1074 |
+
if($return_errors)
|
1075 |
+
return array(false, sprintf(__("This discount code expired on %s.", "pmpro"), date(get_option('date_format'), $dbcode->expires)));
|
1076 |
+
else
|
1077 |
+
return false;
|
1078 |
+
}
|
1079 |
+
|
1080 |
+
//have we run out of uses?
|
1081 |
+
if($dbcode->uses > 0)
|
1082 |
+
{
|
1083 |
+
$used = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->pmpro_discount_codes_uses WHERE code_id = '" . $dbcode->id . "'");
|
1084 |
+
if($used >= $dbcode->uses)
|
1085 |
+
{
|
1086 |
+
if($return_errors)
|
1087 |
+
return array(false, __("This discount code is no longer valid.", "pmpro"));
|
1088 |
+
else
|
1089 |
+
return false;
|
1090 |
+
}
|
1091 |
+
}
|
1092 |
+
|
1093 |
+
//if a level was passed check if this code applies
|
1094 |
+
$pmpro_check_discount_code_levels = apply_filters("pmpro_check_discount_code_levels", true, $dbcode->id);
|
1095 |
+
if(!empty($level_id) && $pmpro_check_discount_code_levels)
|
1096 |
+
{
|
1097 |
+
$code_level = $wpdb->get_row("SELECT l.id, cl.*, l.name, l.description, l.allow_signups FROM $wpdb->pmpro_discount_codes_levels cl LEFT JOIN $wpdb->pmpro_membership_levels l ON cl.level_id = l.id WHERE cl.code_id = '" . $dbcode->id . "' AND cl.level_id = '" . $level_id . "' LIMIT 1");
|
1098 |
+
|
1099 |
+
if(empty($code_level))
|
1100 |
+
{
|
1101 |
+
if(!empty($return_errors))
|
1102 |
+
return array(false, __("This discount code does not apply to this membership level.", "pmpro"));
|
1103 |
+
else
|
1104 |
+
return false;
|
1105 |
+
}
|
1106 |
+
}
|
1107 |
+
|
1108 |
+
//guess we're all good
|
1109 |
+
if(!empty($return_errors))
|
1110 |
+
return array(true, __("This discount code is okay.", "pmpro"));
|
1111 |
+
else
|
1112 |
+
return true;
|
1113 |
+
}
|
1114 |
+
|
1115 |
+
function pmpro_no_quotes($s, $quotes = array("'", '"'))
|
1116 |
+
{
|
1117 |
+
return str_replace($quotes, "", $s);
|
1118 |
+
}
|
1119 |
+
|
1120 |
+
//from: http://www.php.net/manual/en/function.implode.php#86845
|
1121 |
+
function pmpro_implodeToEnglish($array)
|
1122 |
+
{
|
1123 |
+
// sanity check
|
1124 |
+
if (!$array || !count ($array))
|
1125 |
+
return '';
|
1126 |
+
|
1127 |
+
// get last element
|
1128 |
+
$last = array_pop ($array);
|
1129 |
+
|
1130 |
+
// if it was the only element - return it
|
1131 |
+
if (!count ($array))
|
1132 |
+
return $last;
|
1133 |
+
|
1134 |
+
return implode (', ', $array).' ' . _x('and', 'Used in generation of a list. E.g. a, b, c (AND) d.', 'pmpro') . ' '.$last;
|
1135 |
+
}
|
1136 |
+
|
1137 |
+
//from yoast wordpress seo
|
1138 |
+
function pmpro_text_limit( $text, $limit, $finish = '…')
|
1139 |
+
{
|
1140 |
+
if( strlen( $text ) > $limit ) {
|
1141 |
+
$text = substr( $text, 0, $limit );
|
1142 |
+
$text = substr( $text, 0, - ( strlen( strrchr( $text,' ') ) ) );
|
1143 |
+
$text .= $finish;
|
1144 |
+
}
|
1145 |
+
return $text;
|
1146 |
+
}
|
1147 |
+
|
1148 |
+
/* pmpro_getMembershipLevelForUser() returns the first active membership level for a user
|
1149 |
+
*
|
1150 |
+
* If $user_id is omitted, the value will be retrieved from $current_user.
|
1151 |
+
*
|
1152 |
+
* Return values:
|
1153 |
+
* Success returns the level object.
|
1154 |
+
* Failure returns false.
|
1155 |
+
*/
|
1156 |
+
function pmpro_getMembershipLevelForUser($user_id = NULL)
|
1157 |
+
{
|
1158 |
+
if(empty($user_id))
|
1159 |
+
{
|
1160 |
+
global $current_user;
|
1161 |
+
$user_id = $current_user->ID;
|
1162 |
+
}
|
1163 |
+
|
1164 |
+
if(empty($user_id))
|
1165 |
+
{
|
1166 |
+
return false;
|
1167 |
+
}
|
1168 |
+
|
1169 |
+
global $all_membership_levels;
|
1170 |
+
|
1171 |
+
if(isset($all_membership_levels[$user_id]))
|
1172 |
+
{
|
1173 |
+
return $all_membership_levels[$user_id];
|
1174 |
+
}
|
1175 |
+
else
|
1176 |
+
{
|
1177 |
+
global $wpdb;
|
1178 |
+
$all_membership_levels[$user_id] = $wpdb->get_row("SELECT
|
1179 |
+
l.id AS ID,
|
1180 |
+
l.id as id,
|
1181 |
+
mu.id as subscription_id,
|
1182 |
+
l.name AS name,
|
1183 |
+
l.description,
|
1184 |
+
l.expiration_number,
|
1185 |
+
l.expiration_period,
|
1186 |
+
mu.initial_payment,
|
1187 |
+
mu.billing_amount,
|
1188 |
+
mu.cycle_number,
|
1189 |
+
mu.cycle_period,
|
1190 |
+
mu.billing_limit,
|
1191 |
+
mu.trial_amount,
|
1192 |
+
mu.trial_limit,
|
1193 |
+
mu.code_id as code_id,
|
1194 |
+
UNIX_TIMESTAMP(startdate) as startdate,
|
1195 |
+
UNIX_TIMESTAMP(enddate) as enddate
|
1196 |
+
FROM {$wpdb->pmpro_membership_levels} AS l
|
1197 |
+
JOIN {$wpdb->pmpro_memberships_users} AS mu ON (l.id = mu.membership_id)
|
1198 |
+
WHERE mu.user_id = $user_id AND mu.status = 'active'
|
1199 |
+
LIMIT 1");
|
1200 |
+
return $all_membership_levels[$user_id];
|
1201 |
+
}
|
1202 |
+
}
|
1203 |
+
|
1204 |
+
/* pmpro_getMembershipLevelsForUser() returns the membership levels for a user
|
1205 |
+
*
|
1206 |
+
* If $user_id is omitted, the value will be retrieved from $current_user.
|
1207 |
+
* By default it only includes actvie memberships.
|
1208 |
+
*
|
1209 |
+
* Return values:
|
1210 |
+
* Success returns an array of level objects.
|
1211 |
+
* Failure returns false.
|
1212 |
+
*/
|
1213 |
+
function pmpro_getMembershipLevelsForUser($user_id = NULL, $include_inactive = false)
|
1214 |
+
{
|
1215 |
+
if(empty($user_id))
|
1216 |
+
{
|
1217 |
+
global $current_user;
|
1218 |
+
$user_id = $current_user->ID;
|
1219 |
+
}
|
1220 |
+
|
1221 |
+
if(empty($user_id))
|
1222 |
+
{
|
1223 |
+
return false;
|
1224 |
+
}
|
1225 |
+
|
1226 |
+
global $wpdb;
|
1227 |
+
return $wpdb->get_results("SELECT
|
1228 |
+
l.id AS ID,
|
1229 |
+
l.id as id,
|
1230 |
+
mu.id as subscription_id,
|
1231 |
+
l.name,
|
1232 |
+
l.description,
|
1233 |
+
l.expiration_number,
|
1234 |
+
l.expiration_period,
|
1235 |
+
mu.initial_payment,
|
1236 |
+
mu.billing_amount,
|
1237 |
+
mu.cycle_number,
|
1238 |
+
mu.cycle_period,
|
1239 |
+
mu.billing_limit,
|
1240 |
+
mu.trial_amount,
|
1241 |
+
mu.trial_limit,
|
1242 |
+
mu.code_id as code_id,
|
1243 |
+
UNIX_TIMESTAMP(startdate) as startdate,
|
1244 |
+
UNIX_TIMESTAMP(enddate) as enddate
|
1245 |
+
FROM {$wpdb->pmpro_membership_levels} AS l
|
1246 |
+
JOIN {$wpdb->pmpro_memberships_users} AS mu ON (l.id = mu.membership_id)
|
1247 |
+
WHERE mu.user_id = $user_id".($include_inactive?"":" AND mu.status = 'active'"));
|
1248 |
+
}
|
1249 |
+
|
1250 |
+
/* pmpro_getLevel() returns the level object for a level
|
1251 |
+
*
|
1252 |
+
* $level may be the level id or name
|
1253 |
+
*
|
1254 |
+
* Return values:
|
1255 |
+
* Success returns the level object.
|
1256 |
+
* Failure returns false.
|
1257 |
+
*/
|
1258 |
+
function pmpro_getLevel($level)
|
1259 |
+
{
|
1260 |
+
global $pmpro_levels;
|
1261 |
+
|
1262 |
+
if(is_object($level) && !empty($level->id))
|
1263 |
+
$level = $level->id;
|
1264 |
+
|
1265 |
+
//was a name passed? (Todo: make sure level names have at least one non-numeric character.
|
1266 |
+
if(is_numeric($level))
|
1267 |
+
{
|
1268 |
+
$level_id = intval($level);
|
1269 |
+
if(isset($pmpro_levels[$level_id]))
|
1270 |
+
{
|
1271 |
+
return $pmpro_levels[$level_id];
|
1272 |
+
}
|
1273 |
+
else
|
1274 |
+
{
|
1275 |
+
global $wpdb;
|
1276 |
+
$pmpro_levels[$level_id] = $wpdb->get_row("SELECT * FROM $wpdb->pmpro_membership_levels WHERE id = '" . $level_id . "' LIMIT 1");
|
1277 |
+
return $pmpro_levels[$level_id];
|
1278 |
+
}
|
1279 |
+
}
|
1280 |
+
else
|
1281 |
+
{
|
1282 |
+
global $wpdb;
|
1283 |
+
$level_obj = $wpdb->get_row("SELECT * FROM $wpdb->pmpro_membership_levels WHERE name = '" . $level . "' LIMIT 1");
|
1284 |
+
$level_id = $level->ID;
|
1285 |
+
$pmpro_levels[$level_id] = $level_obj;
|
1286 |
+
return $pmpro_levels[$level_id];
|
1287 |
+
}
|
1288 |
+
}
|
1289 |
+
|
1290 |
+
/*
|
1291 |
+
Function to populate pmpro_levels with all levels. We query the DB every time just to be sure we have the latest.
|
1292 |
+
This should be called if you want to be sure you get all levels as $pmpro_levels may only have a subset of levels.
|
1293 |
+
*/
|
1294 |
+
function pmpro_getAllLevels($include_hidden = false)
|
1295 |
+
{
|
1296 |
+
global $pmpro_levels, $wpdb;
|
1297 |
+
|
1298 |
+
//build query
|
1299 |
+
$sqlQuery = "SELECT * FROM $wpdb->pmpro_membership_levels ";
|
1300 |
+
if(!$include_hidden)
|
1301 |
+
$sqlQuery .= " WHERE allow_signups = 1 ORDER BY id";
|
1302 |
+
|
1303 |
+
//get levels from the DB
|
1304 |
+
$raw_levels = $wpdb->get_results($sqlQuery);
|
1305 |
+
|
1306 |
+
//lets put them into an array where the key is the id of the level
|
1307 |
+
$pmpro_levels = array();
|
1308 |
+
foreach($raw_levels as $raw_level)
|
1309 |
+
{
|
1310 |
+
$pmpro_levels[$raw_level->id] = $raw_level;
|
1311 |
+
}
|
1312 |
+
|
1313 |
+
return $pmpro_levels;
|
1314 |
+
}
|
1315 |
+
|
1316 |
+
function pmpro_getCheckoutButton($level_id, $button_text = NULL, $classes = NULL)
|
1317 |
+
{
|
1318 |
+
if(empty($button_text))
|
1319 |
+
$button_text = _x("Sign Up for !!name!! Now", "Do not translate !!name!!", "pmpro");
|
1320 |
+
|
1321 |
+
if(empty($classes))
|
1322 |
+
$classes = "btn btn-primary";
|
1323 |
+
|
1324 |
+
if(empty($level_id))
|
1325 |
+
$r = __("Please specify a level id.", "pmpro");
|
1326 |
+
else
|
1327 |
+
{
|
1328 |
+
//get level
|
1329 |
+
$level = pmpro_getLevel($level_id);
|
1330 |
+
|
1331 |
+
//replace vars
|
1332 |
+
$replacements = array(
|
1333 |
+
"!!id!!" => $level->id,
|
1334 |
+
"!!name!!" => $level->name,
|
1335 |
+
"!!description!!" => $level->description,
|
1336 |
+
"!!confirmation!!" => $level->confirmation,
|
1337 |
+
"!!initial_payment!!" => $level->initial_payment,
|
1338 |
+
"!!billing_amount!!" => $level->billing_amount,
|
1339 |
+
"!!cycle_number!!" => $level->cycle_number,
|
1340 |
+
"!!cycle_period!!" => $level->cycle_period,
|
1341 |
+
"!!billing_limit!!" => $level->billing_limit,
|
1342 |
+
"!!trial_amount!!" => $level->trial_amount,
|
1343 |
+
"!!trial_limit!!" => $level->trial_limit,
|
1344 |
+
"!!expiration_number!!" => $level->expiration_number,
|
1345 |
+
"!!expiration_period!!" => $level->expiration_period
|
1346 |
+
);
|
1347 |
+
$button_text = str_replace(array_keys($replacements), $replacements, $button_text);
|
1348 |
+
|
1349 |
+
//button text
|
1350 |
+
$r = "<a href=\"" . pmpro_url("checkout", "?level=" . $level_id) . "\" class=\"" . $classes . "\">" . $button_text . "</a>";
|
1351 |
+
}
|
1352 |
+
return $r;
|
1353 |
+
}
|
1354 |
+
|
1355 |
+
/**
|
1356 |
+
* Get the "domain" from a URL. By domain, we mean the host name, minus any subdomains. So just the domain and TLD.
|
1357 |
+
*
|
1358 |
+
* @param string $url The URL to parse. (generally pass site_url() in WP)
|
1359 |
+
* @return string The domain.
|
1360 |
+
*/
|
1361 |
+
function pmpro_getDomainFromURL($url = NULL)
|
1362 |
+
{
|
1363 |
+
$domainparts = parse_url($url);
|
1364 |
+
$domainparts = explode(".", $domainparts['host']);
|
1365 |
+
if(count($domainparts) > 1)
|
1366 |
+
{
|
1367 |
+
//check for ips
|
1368 |
+
$isip = true;
|
1369 |
+
foreach($domainparts as $part)
|
1370 |
+
{
|
1371 |
+
if(!is_numeric($part))
|
1372 |
+
{
|
1373 |
+
$isip = false;
|
1374 |
+
break;
|
1375 |
+
}
|
1376 |
+
}
|
1377 |
+
|
1378 |
+
if($isip)
|
1379 |
+
{
|
1380 |
+
//ip, e.g. 127.1.1.1
|
1381 |
+
$domain = implode(".", $domainparts);
|
1382 |
+
}
|
1383 |
+
else
|
1384 |
+
{
|
1385 |
+
//www.something.com, etc.
|
1386 |
+
$domain = $domainparts[count($domainparts)-2] . "." . $domainparts[count($domainparts)-1];
|
1387 |
+
}
|
1388 |
+
}
|
1389 |
+
else
|
1390 |
+
{
|
1391 |
+
//localhost or another single word domain
|
1392 |
+
$domain = $domainparts[0];
|
1393 |
+
}
|
1394 |
+
|
1395 |
+
return $domain;
|
1396 |
+
}
|
1397 |
+
|
1398 |
+
/*
|
1399 |
+
Get a member's start date... either in general or for a specific level_id.
|
1400 |
+
*/
|
1401 |
+
if(!function_exists("pmpro_getMemberStartdate"))
|
1402 |
+
{
|
1403 |
+
function pmpro_getMemberStartdate($user_id = NULL, $level_id = 0)
|
1404 |
+
{
|
1405 |
+
if(empty($user_id))
|
1406 |
+
{
|
1407 |
+
global $current_user;
|
1408 |
+
$user_id = $current_user->ID;
|
1409 |
+
}
|
1410 |
+
|
1411 |
+
global $pmpro_startdates; //for cache
|
1412 |
+
if(empty($pmpro_startdates[$user_id][$level_id]))
|
1413 |
+
{
|
1414 |
+
global $wpdb;
|
1415 |
+
|
1416 |
+
if(!empty($level_id))
|
1417 |
+
$sqlQuery = "SELECT UNIX_TIMESTAMP(startdate) FROM $wpdb->pmpro_memberships_users WHERE status = 'active' AND membership_id IN(" . $wpdb->escape($level_id) . ") AND user_id = '" . $user_id . "' ORDER BY id LIMIT 1";
|
1418 |
+
else
|
1419 |
+
$sqlQuery = "SELECT UNIX_TIMESTAMP(startdate) FROM $wpdb->pmpro_memberships_users WHERE status = 'active' AND user_id = '" . $user_id . "' ORDER BY id LIMIT 1";
|
1420 |
+
|
1421 |
+
$startdate = $wpdb->get_var($sqlQuery);
|
1422 |
+
|
1423 |
+
$pmpro_startdates[$user_id][$level_id] = $startdate;
|
1424 |
+
}
|
1425 |
+
|
1426 |
+
return $pmpro_startdates[$user_id][$level_id];
|
1427 |
+
}
|
1428 |
+
}
|
1429 |
+
|
1430 |
+
/*
|
1431 |
+
How long has this member been a member
|
1432 |
+
*/
|
1433 |
+
if(!function_exists("pmpro_getMemberDays"))
|
1434 |
+
{
|
1435 |
+
function pmpro_getMemberDays($user_id = NULL, $level_id = 0)
|
1436 |
+
{
|
1437 |
+
if(empty($user_id))
|
1438 |
+
{
|
1439 |
+
global $current_user;
|
1440 |
+
$user_id = $current_user->ID;
|
1441 |
+
}
|
1442 |
+
|
1443 |
+
global $pmpro_member_days;
|
1444 |
+
if(empty($pmpro_member_days[$user_id][$level_id]))
|
1445 |
+
{
|
1446 |
+
$startdate = pmpro_getMemberStartdate($user_id, $level_id);
|
1447 |
+
|
1448 |
+
$now = time();
|
1449 |
+
$days = ($now - $startdate)/3600/24;
|
1450 |
+
|
1451 |
+
$pmpro_member_days[$user_id][$level_id] = $days;
|
1452 |
+
}
|
1453 |
+
|
1454 |
+
return $pmpro_member_days[$user_id][$level_id];
|
1455 |
+
}
|
1456 |
+
}
|
1457 |
+
|
1458 |
+
//the start of a message handling script
|
1459 |
+
function pmpro_setMessage($message, $type, $force = false)
|
1460 |
+
{
|
1461 |
+
global $pmpro_msg, $pmpro_msgt;
|
1462 |
+
|
1463 |
+
//for now, we only show the first message generated
|
1464 |
+
if($force || empty($pmpro_msg))
|
1465 |
+
{
|
1466 |
+
$pmpro_msg = $message;
|
1467 |
+
$pmpro_msgt = $type;
|
1468 |
+
}
|
1469 |
+
}
|
1470 |
+
|
1471 |
+
//used in class definitions for input fields to see if there was an error
|
1472 |
+
function pmpro_getClassForField($field)
|
1473 |
+
{
|
1474 |
+
global $pmpro_error_fields, $pmpro_required_billing_fields, $pmpro_required_user_fields;
|
1475 |
+
$classes = array();
|
1476 |
+
|
1477 |
+
//error on this field?
|
1478 |
+
if(in_array($field, $pmpro_error_fields))
|
1479 |
+
{
|
1480 |
+
$classes[] = "pmpro_error";
|
1481 |
+
}
|
1482 |
+
|
1483 |
+
$required_fields = array_merge(array_keys($pmpro_required_billing_fields), array_keys($pmpro_required_user_fields));
|
1484 |
+
|
1485 |
+
//required?
|
1486 |
+
if(in_array($field, $required_fields))
|
1487 |
+
{
|
1488 |
+
$classes[] = "pmpro_required";
|
1489 |
+
}
|
1490 |
+
|
1491 |
+
$classes = apply_filters("pmpro_field_classes", $classes, $field);
|
1492 |
+
|
1493 |
+
if(!empty($classes))
|
1494 |
+
return implode(" ", $classes);
|
1495 |
+
else
|
1496 |
+
return "";
|
1497 |
+
}
|
1498 |
+
|
1499 |
+
//get a var from $_GET or $_POST
|
1500 |
+
function pmpro_getParam($index, $method = "REQUEST", $default = "")
|
1501 |
+
{
|
1502 |
+
if($method == "REQUEST")
|
1503 |
+
{
|
1504 |
+
if(!empty($_REQUEST[$index]))
|
1505 |
+
return $_REQUEST[$index];
|
1506 |
+
}
|
1507 |
+
elseif($method == "POST")
|
1508 |
+
{
|
1509 |
+
if(!empty($_POST[$index]))
|
1510 |
+
return $_POST[$index];
|
1511 |
+
}
|
1512 |
+
elseif($method == "GET")
|
1513 |
+
{
|
1514 |
+
if(!empty($_GET[$index]))
|
1515 |
+
return $_GET[$index];
|
1516 |
+
}
|
1517 |
+
|
1518 |
+
return $default;
|
1519 |
+
}
|
1520 |
+
|
1521 |
+
/*
|
1522 |
+
Checks if all required settings are set.
|
1523 |
+
*/
|
1524 |
+
function pmpro_is_ready()
|
1525 |
+
{
|
1526 |
+
global $wpdb, $pmpro_pages, $pmpro_level_ready, $pmpro_gateway_ready, $pmpro_pages_ready;
|
1527 |
+
|
1528 |
+
//check if there is at least one level
|
1529 |
+
$pmpro_level_ready = (bool)$wpdb->get_var("SELECT id FROM $wpdb->pmpro_membership_levels LIMIT 1");
|
1530 |
+
|
1531 |
+
//check if the gateway settings are good. first check if it's needed (is there paid membership level)
|
1532 |
+
$paid_membership_level = $wpdb->get_var("SELECT id FROM $wpdb->pmpro_membership_levels WHERE allow_signups = 1 AND (initial_payment > 0 OR billing_amount > 0 OR trial_amount > 0) LIMIT 1");
|
1533 |
+
$paid_user_subscription = $wpdb->get_var("SELECT user_id FROM $wpdb->pmpro_memberships_users WHERE initial_payment > 0 OR billing_amount > 0 OR trial_amount > 0 LIMIT 1");
|
1534 |
+
|
1535 |
+
if(empty($paid_membership_level) && empty($paid_user_subscription))
|
1536 |
+
{
|
1537 |
+
//no paid membership level now or attached to a user. we don't need the gateway setup
|
1538 |
+
$pmpro_gateway_ready = true;
|
1539 |
+
}
|
1540 |
+
else
|
1541 |
+
{
|
1542 |
+
$gateway = pmpro_getOption("gateway");
|
1543 |
+
if($gateway == "authorizenet")
|
1544 |
+
{
|
1545 |
+
if(pmpro_getOption("gateway_environment") && pmpro_getOption("loginname") && pmpro_getOption("transactionkey"))
|
1546 |
+
$pmpro_gateway_ready = true;
|
1547 |
+
else
|
1548 |
+
$pmpro_gateway_ready = false;
|
1549 |
+
}
|
1550 |
+
elseif($gateway == "paypal" || $gateway == "paypalexpress")
|
1551 |
+
{
|
1552 |
+
if(pmpro_getOption("gateway_environment") && pmpro_getOption("gateway_email") && pmpro_getOption("apiusername") && pmpro_getOption("apipassword") && pmpro_getOption("apisignature"))
|
1553 |
+
$pmpro_gateway_ready = true;
|
1554 |
+
else
|
1555 |
+
$pmpro_gateway_ready = false;
|
1556 |
+
}
|
1557 |
+
elseif($gateway == "paypalstandard")
|
1558 |
+
{
|
1559 |
+
if(pmpro_getOption("gateway_environment") && pmpro_getOption("gateway_email"))
|
1560 |
+
$pmpro_gateway_ready = true;
|
1561 |
+
else
|
1562 |
+
$pmpro_gateway_ready = false;
|
1563 |
+
}
|
1564 |
+
elseif($gateway == "payflowpro")
|
1565 |
+
{
|
1566 |
+
if(pmpro_getOption("payflow_partner") && pmpro_getOption("payflow_vendor") && pmpro_getOption("payflow_user") && pmpro_getOption("payflow_pwd"))
|
1567 |
+
$pmpro_gateway_ready = true;
|
1568 |
+
else
|
1569 |
+
$pmpro_gateway_ready = false;
|
1570 |
+
}
|
1571 |
+
elseif($gateway == "stripe")
|
1572 |
+
{
|
1573 |
+
if(pmpro_getOption("gateway_environment") && pmpro_getOption("stripe_secretkey") && pmpro_getOption("stripe_publishablekey"))
|
1574 |
+
$pmpro_gateway_ready = true;
|
1575 |
+
else
|
1576 |
+
$pmpro_gateway_ready = false;
|
1577 |
+
}
|
1578 |
+
elseif($gateway == "braintree")
|
1579 |
+
{
|
1580 |
+
if(pmpro_getOption("gateway_environment") && pmpro_getOption("braintree_merchantid") && pmpro_getOption("braintree_publickey") && pmpro_getOption("braintree_privatekey"))
|
1581 |
+
$pmpro_gateway_ready = true;
|
1582 |
+
else
|
1583 |
+
$pmpro_gateway_ready = false;
|
1584 |
+
}
|
1585 |
+
else
|
1586 |
+
{
|
1587 |
+
$pmpro_gateway_ready = false;
|
1588 |
+
}
|
1589 |
+
}
|
1590 |
+
|
1591 |
+
//check if we have all pages
|
1592 |
+
if($pmpro_pages["account"] &&
|
1593 |
+
$pmpro_pages["billing"] &&
|
1594 |
+
$pmpro_pages["cancel"] &&
|
1595 |
+
$pmpro_pages["checkout"] &&
|
1596 |
+
$pmpro_pages["confirmation"] &&
|
1597 |
+
$pmpro_pages["invoice"] &&
|
1598 |
+
$pmpro_pages["levels"])
|
1599 |
+
$pmpro_pages_ready = true;
|
1600 |
+
else
|
1601 |
+
$pmpro_pages_ready = false;
|
1602 |
+
|
1603 |
+
//now check both
|
1604 |
+
if($pmpro_gateway_ready && $pmpro_pages_ready)
|
1605 |
+
return true;
|
1606 |
+
else
|
1607 |
+
return false;
|
1608 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/https.php
CHANGED
@@ -50,72 +50,37 @@ add_action('init', 'pmpro_besecure_set', 2);
|
|
50 |
function pmpro_besecure()
|
51 |
{
|
52 |
global $besecure, $post;
|
53 |
-
|
54 |
//check the post option
|
55 |
-
if(!
|
56 |
$besecure = get_post_meta($post->ID, "besecure", true);
|
57 |
-
|
58 |
//if forcing ssl on admin, be secure in admin and login page
|
59 |
if(!$besecure && force_ssl_admin() && (is_admin() || pmpro_is_login_page()))
|
60 |
$besecure = true;
|
61 |
-
|
62 |
//if forcing ssl on login, be secure on the login page
|
63 |
if(!$besecure && force_ssl_login() && pmpro_is_login_page())
|
64 |
$besecure = true;
|
65 |
-
|
66 |
$besecure = apply_filters("pmpro_besecure", $besecure);
|
67 |
-
|
68 |
-
$
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
//need to be secure
|
74 |
-
wp_redirect("https://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
|
75 |
-
exit;
|
76 |
-
}
|
77 |
-
elseif(!$besecure && !empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != "off" && $_SERVER['HTTPS'] != "false")
|
78 |
-
{
|
79 |
-
//don't need to be secure
|
80 |
-
wp_redirect("http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
|
81 |
-
exit;
|
82 |
-
}
|
83 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
84 |
}
|
85 |
add_action('wp', 'pmpro_besecure', 2);
|
86 |
add_action('login_init', 'pmpro_besecure', 2);
|
87 |
|
88 |
-
//JavaScript SSL redirect
|
89 |
-
function pmpro_ssl_javascript_redirect()
|
90 |
-
{
|
91 |
-
global $besecure;
|
92 |
-
$use_ssl = pmpro_getOption("use_ssl");
|
93 |
-
if(!is_admin() && $use_ssl == 2)
|
94 |
-
{
|
95 |
-
if($besecure)
|
96 |
-
{
|
97 |
-
?>
|
98 |
-
<script lang="JavaScript">
|
99 |
-
//needs to be secure
|
100 |
-
if (window.location.protocol != "https:")
|
101 |
-
window.location.href = "https:" + window.location.href.substring(window.location.protocol.length);
|
102 |
-
</script>
|
103 |
-
<?php
|
104 |
-
}
|
105 |
-
else
|
106 |
-
{
|
107 |
-
?>
|
108 |
-
<script lang="JavaScript">
|
109 |
-
//should be over http
|
110 |
-
if (window.location.protocol != "http:")
|
111 |
-
window.location.href = "http:" + window.location.href.substring(window.location.protocol.length);
|
112 |
-
</script>
|
113 |
-
<?php
|
114 |
-
}
|
115 |
-
}
|
116 |
-
}
|
117 |
-
add_action('wp_print_scripts', 'pmpro_ssl_javascript_redirect');
|
118 |
-
|
119 |
//If the site URL starts with https:, then force SSL/besecure to true. (Added 1.5.2)
|
120 |
function pmpro_check_site_url_for_https($besecure)
|
121 |
{
|
@@ -182,4 +147,4 @@ function pmpro_replaceURLsInBuffer($buffer)
|
|
182 |
}
|
183 |
|
184 |
return $buffer;
|
185 |
-
}
|
50 |
function pmpro_besecure()
|
51 |
{
|
52 |
global $besecure, $post;
|
53 |
+
|
54 |
//check the post option
|
55 |
+
if(!empty($post->ID) && !$besecure)
|
56 |
$besecure = get_post_meta($post->ID, "besecure", true);
|
57 |
+
|
58 |
//if forcing ssl on admin, be secure in admin and login page
|
59 |
if(!$besecure && force_ssl_admin() && (is_admin() || pmpro_is_login_page()))
|
60 |
$besecure = true;
|
61 |
+
|
62 |
//if forcing ssl on login, be secure on the login page
|
63 |
if(!$besecure && force_ssl_login() && pmpro_is_login_page())
|
64 |
$besecure = true;
|
65 |
+
|
66 |
$besecure = apply_filters("pmpro_besecure", $besecure);
|
67 |
+
|
68 |
+
if($besecure && (empty($_SERVER['HTTPS']) || $_SERVER['HTTPS'] == "off" || $_SERVER['HTTPS'] == "false"))
|
69 |
+
{
|
70 |
+
//need to be secure
|
71 |
+
wp_redirect("https://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
|
72 |
+
exit;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
}
|
74 |
+
elseif(!$besecure && !empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != "off" && $_SERVER['HTTPS'] != "false")
|
75 |
+
{
|
76 |
+
//don't need to be secure
|
77 |
+
wp_redirect("http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
|
78 |
+
exit;
|
79 |
+
}
|
80 |
}
|
81 |
add_action('wp', 'pmpro_besecure', 2);
|
82 |
add_action('login_init', 'pmpro_besecure', 2);
|
83 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
84 |
//If the site URL starts with https:, then force SSL/besecure to true. (Added 1.5.2)
|
85 |
function pmpro_check_site_url_for_https($besecure)
|
86 |
{
|
147 |
}
|
148 |
|
149 |
return $buffer;
|
150 |
+
}
|
includes/init.php
CHANGED
@@ -13,51 +13,23 @@ function pmpro_init()
|
|
13 |
|
14 |
if(is_admin())
|
15 |
{
|
16 |
-
|
17 |
-
if(file_exists(get_stylesheet_directory() . "/paid-memberships-pro/css/admin.css")) {
|
18 |
$admin_css = get_stylesheet_directory_uri() . "/paid-memberships-pro/css/admin.css";
|
19 |
-
|
20 |
-
$admin_css_rtl = get_stylesheet_directory_uri() . "/paid-memberships-pro/css/admin-rtl.css";
|
21 |
-
}
|
22 |
-
} elseif(file_exists(get_template_directory() . "/paid-memberships-pro/admin.css")) {
|
23 |
$admin_css = get_template_directory_uri() . "/paid-memberships-pro/admin.css";
|
24 |
-
|
25 |
-
|
26 |
-
}
|
27 |
-
} else {
|
28 |
-
$admin_css = plugins_url('css/admin.css',dirname(__FILE__) );
|
29 |
-
if( is_rtl() ) {
|
30 |
-
$admin_css_rtl = plugins_url('css/admin-rtl.css',dirname(__FILE__) );
|
31 |
-
}
|
32 |
-
}
|
33 |
wp_enqueue_style('pmpro_admin', $admin_css, array(), PMPRO_VERSION, "screen");
|
34 |
-
if( $admin_css_rtl ) {
|
35 |
-
wp_enqueue_style('pmpro_admin_rtl', $admin_css_rtl, array(), PMPRO_VERSION, "screen");
|
36 |
-
}
|
37 |
}
|
38 |
else
|
39 |
{
|
40 |
-
|
41 |
-
if(file_exists(get_stylesheet_directory() . "/paid-memberships-pro/css/frontend.css")) {
|
42 |
$frontend_css = get_stylesheet_directory_uri() . "/paid-memberships-pro/css/frontend.css";
|
43 |
-
|
44 |
-
$frontend_css_rtl = get_stylesheet_directory_uri() . "/paid-memberships-pro/css/frontend-rtl.css";
|
45 |
-
}
|
46 |
-
} elseif(file_exists(get_template_directory() . "/paid-memberships-pro/frontend.css")) {
|
47 |
$frontend_css = get_template_directory_uri() . "/paid-memberships-pro/frontend.css";
|
48 |
-
|
49 |
-
$frontend_css_rtl = get_template_directory_uri() . "/paid-memberships-pro/css/frontend-rtl.css";
|
50 |
-
}
|
51 |
-
} else {
|
52 |
$frontend_css = plugins_url('css/frontend.css',dirname(__FILE__) );
|
53 |
-
if( is_rtl() ) {
|
54 |
-
$frontend_css_rtl = plugins_url('css/frontend-rtl.css',dirname(__FILE__) );
|
55 |
-
}
|
56 |
-
}
|
57 |
wp_enqueue_style('pmpro_frontend', $frontend_css, array(), PMPRO_VERSION, "screen");
|
58 |
-
if( $frontend_css_rtl ) {
|
59 |
-
wp_enqueue_style('pmpro_frontend_rtl', $frontend_css_rtl, array(), PMPRO_VERSION, "screen");
|
60 |
-
}
|
61 |
|
62 |
if(file_exists(get_stylesheet_directory() . "/paid-memberships-pro/css/print.css"))
|
63 |
$print_css = get_stylesheet_directory_uri() . "/paid-memberships-pro/css/print.css";
|
@@ -108,11 +80,16 @@ function pmpro_wp()
|
|
108 |
if(!is_admin())
|
109 |
{
|
110 |
global $post, $pmpro_pages, $pmpro_page_name, $pmpro_page_id, $pmpro_body_classes;
|
111 |
-
|
112 |
//run the appropriate preheader function
|
113 |
foreach($pmpro_pages as $pmpro_page_name => $pmpro_page_id)
|
114 |
-
{
|
115 |
-
if(
|
|
|
|
|
|
|
|
|
|
|
116 |
{
|
117 |
//preheader
|
118 |
require_once(PMPRO_DIR . "/preheaders/" . $pmpro_page_name . ".php");
|
@@ -137,7 +114,14 @@ function pmpro_wp()
|
|
137 |
add_shortcode("pmpro_" . $pmpro_page_name, "pmpro_pages_shortcode");
|
138 |
break; //only the first page found gets a shortcode replacement
|
139 |
}
|
140 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
141 |
}
|
142 |
}
|
143 |
add_action("wp", "pmpro_wp", 1);
|
@@ -208,33 +192,4 @@ function pmpro_set_current_user()
|
|
208 |
|
209 |
do_action("pmpro_after_set_current_user");
|
210 |
}
|
211 |
-
add_action('set_current_user', 'pmpro_set_current_user');
|
212 |
-
add_action('init', 'pmpro_set_current_user');
|
213 |
-
|
214 |
-
/*
|
215 |
-
* Add Membership Level to Users page in WordPress dashboard.
|
216 |
-
*/
|
217 |
-
function pmpro_manage_users_columns($columns) {
|
218 |
-
$columns['pmpro_membership_level'] = __('Membership Level', 'pmpro');
|
219 |
-
return $columns;
|
220 |
-
}
|
221 |
-
|
222 |
-
function pmpro_manage_users_custom_column($column_data, $column_name, $user_id) {
|
223 |
-
|
224 |
-
if($column_name == 'pmpro_membership_level') {
|
225 |
-
$levels = pmpro_getMembershipLevelsForUser($user_id);
|
226 |
-
$level_names = array();
|
227 |
-
if(!empty($levels)) {
|
228 |
-
foreach($levels as $key => $level)
|
229 |
-
$level_names[] = $level->name;
|
230 |
-
$column_data = implode(',', $level_names);
|
231 |
-
}
|
232 |
-
else
|
233 |
-
$column_data = __('None', 'pmpro');
|
234 |
-
}
|
235 |
-
return $column_data;
|
236 |
-
}
|
237 |
-
|
238 |
-
add_filter('manage_users_columns', 'pmpro_manage_users_columns');
|
239 |
-
add_filter('manage_users_custom_column', 'pmpro_manage_users_custom_column', 10, 3);
|
240 |
-
|
13 |
|
14 |
if(is_admin())
|
15 |
{
|
16 |
+
if(file_exists(get_stylesheet_directory() . "/paid-memberships-pro/css/admin.css"))
|
|
|
17 |
$admin_css = get_stylesheet_directory_uri() . "/paid-memberships-pro/css/admin.css";
|
18 |
+
elseif(file_exists(get_template_directory() . "/paid-memberships-pro/admin.css"))
|
|
|
|
|
|
|
19 |
$admin_css = get_template_directory_uri() . "/paid-memberships-pro/admin.css";
|
20 |
+
else
|
21 |
+
$admin_css = plugins_url('css/admin.css',dirname(__FILE__) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
wp_enqueue_style('pmpro_admin', $admin_css, array(), PMPRO_VERSION, "screen");
|
|
|
|
|
|
|
23 |
}
|
24 |
else
|
25 |
{
|
26 |
+
if(file_exists(get_stylesheet_directory() . "/paid-memberships-pro/css/frontend.css"))
|
|
|
27 |
$frontend_css = get_stylesheet_directory_uri() . "/paid-memberships-pro/css/frontend.css";
|
28 |
+
elseif(file_exists(get_template_directory() . "/paid-memberships-pro/frontend.css"))
|
|
|
|
|
|
|
29 |
$frontend_css = get_template_directory_uri() . "/paid-memberships-pro/frontend.css";
|
30 |
+
else
|
|
|
|
|
|
|
31 |
$frontend_css = plugins_url('css/frontend.css',dirname(__FILE__) );
|
|
|
|
|
|
|
|
|
32 |
wp_enqueue_style('pmpro_frontend', $frontend_css, array(), PMPRO_VERSION, "screen");
|
|
|
|
|
|
|
33 |
|
34 |
if(file_exists(get_stylesheet_directory() . "/paid-memberships-pro/css/print.css"))
|
35 |
$print_css = get_stylesheet_directory_uri() . "/paid-memberships-pro/css/print.css";
|
80 |
if(!is_admin())
|
81 |
{
|
82 |
global $post, $pmpro_pages, $pmpro_page_name, $pmpro_page_id, $pmpro_body_classes;
|
83 |
+
|
84 |
//run the appropriate preheader function
|
85 |
foreach($pmpro_pages as $pmpro_page_name => $pmpro_page_id)
|
86 |
+
{
|
87 |
+
if($pmpro_page_name == "checkout")
|
88 |
+
{
|
89 |
+
continue; //we do the checkout shortcode every time now
|
90 |
+
}
|
91 |
+
|
92 |
+
if(!empty($post->ID) && $pmpro_page_id == $post->ID)
|
93 |
{
|
94 |
//preheader
|
95 |
require_once(PMPRO_DIR . "/preheaders/" . $pmpro_page_name . ".php");
|
114 |
add_shortcode("pmpro_" . $pmpro_page_name, "pmpro_pages_shortcode");
|
115 |
break; //only the first page found gets a shortcode replacement
|
116 |
}
|
117 |
+
}
|
118 |
+
|
119 |
+
//make sure you load the preheader for the checkout page. the shortcode for checkout is loaded below
|
120 |
+
if(!empty($post->post_content) && strpos($post->post_content, "[pmpro_checkout]") !== false)
|
121 |
+
{
|
122 |
+
$pmpro_body_classes[] = "pmpro-checkout";
|
123 |
+
require_once(PMPRO_DIR . "/preheaders/checkout.php");
|
124 |
+
}
|
125 |
}
|
126 |
}
|
127 |
add_action("wp", "pmpro_wp", 1);
|
192 |
|
193 |
do_action("pmpro_after_set_current_user");
|
194 |
}
|
195 |
+
add_action('set_current_user', 'pmpro_set_current_user');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/lib/CyberSource/cyber_source_soap_client.php
DELETED
@@ -1,87 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* CyberSource version of SoapClient.
|
4 |
-
*
|
5 |
-
* An extension of PHP's own SoapClient library that includes the security
|
6 |
-
* header required by CyberSource. To enable SOAP support, PHP must be
|
7 |
-
* configured with --enable-soap.
|
8 |
-
*
|
9 |
-
* @author joe bartlett (xo@jdbartlett.com)
|
10 |
-
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
11 |
-
* @package CyberSource
|
12 |
-
* @subpackage CyberSource.libs
|
13 |
-
* @github https://github.com/jdbartlett/CyberSource/blob/master/libs/cyber_source_soap_client.php
|
14 |
-
*/
|
15 |
-
class CyberSourceSoapClient extends SoapClient {
|
16 |
-
|
17 |
-
/**
|
18 |
-
* Instance-specific array to contain CyberSource-specific configuration
|
19 |
-
* settings.
|
20 |
-
*
|
21 |
-
* @var array
|
22 |
-
* @access protected
|
23 |
-
*/
|
24 |
-
protected $_cyberSourceOptions = null;
|
25 |
-
|
26 |
-
/**
|
27 |
-
* Constructor.
|
28 |
-
*
|
29 |
-
* The WSDL is generated by CyberSourceSource::_buildWsdl, in accordance with
|
30 |
-
* the DataSource settings.
|
31 |
-
*
|
32 |
-
* The CyberSource Options array should contain a 'merchantID' key and a
|
33 |
-
* 'transactionKey' key, with appropriate string values.
|
34 |
-
*
|
35 |
-
* The SOAP options array (the standard options array for PHP's SoapClient
|
36 |
-
* class) can be empty for CyberSource transactions.
|
37 |
-
*
|
38 |
-
* @param mixed $wsdl
|
39 |
-
* @param array $cyberSourceOptions
|
40 |
-
* @param array $soapOptions
|
41 |
-
* @access private
|
42 |
-
*/
|
43 |
-
public function __construct($wsdl, $cyberSourceOptions = null, $soapOptions = array()) {
|
44 |
-
parent::__construct($wsdl, $soapOptions);
|
45 |
-
|
46 |
-
$this->_cyberSourceOptions = array_merge(array(
|
47 |
-
'merchantID' => '',
|
48 |
-
'transactionKey' => '',
|
49 |
-
), is_array($cyberSourceOptions) ? $cyberSourceOptions : array());
|
50 |
-
}
|
51 |
-
|
52 |
-
/**
|
53 |
-
* Transport layer for SOAP request.
|
54 |
-
*
|
55 |
-
* This is a straightforward wrapper for the standard SoapClient::__doRequest
|
56 |
-
* method; its parameters are identical.
|
57 |
-
*
|
58 |
-
* @param string $request
|
59 |
-
* @param string $location
|
60 |
-
* @param string $action
|
61 |
-
* @param string $version
|
62 |
-
* @param integer $one_way
|
63 |
-
* @return string XML SOAP response
|
64 |
-
* @access private
|
65 |
-
*/
|
66 |
-
public function __doRequest($request, $location, $action, $version, $one_way = 0) {
|
67 |
-
$soapHeader = sprintf("<SOAP-ENV:Header xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\"><wsse:Security SOAP-ENV:mustUnderstand=\"1\"><wsse:UsernameToken><wsse:Username>%s</wsse:Username><wsse:Password Type=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText\">%s</wsse:Password></wsse:UsernameToken></wsse:Security></SOAP-ENV:Header>", $this->_cyberSourceOptions['merchantID'], $this->_cyberSourceOptions['transactionKey']);
|
68 |
-
|
69 |
-
$requestDOM = new DOMDocument('1.0');
|
70 |
-
$soapHeaderDOM = new DOMDocument('1.0');
|
71 |
-
|
72 |
-
try {
|
73 |
-
$requestDOM->loadXML($request);
|
74 |
-
$soapHeaderDOM->loadXML($soapHeader);
|
75 |
-
$node = $requestDOM->importNode($soapHeaderDOM->firstChild, true);
|
76 |
-
$requestDOM->firstChild->insertBefore(
|
77 |
-
$node, $requestDOM->firstChild->firstChild);
|
78 |
-
|
79 |
-
$request = $requestDOM->saveXML();
|
80 |
-
} catch (DOMException $e) {
|
81 |
-
trigger_error("CybserSource Error: Couldn't add token: " . $e->code, E_USER_WARNING);
|
82 |
-
}
|
83 |
-
|
84 |
-
return parent::__doRequest($request, $location, $action, $version);
|
85 |
-
}
|
86 |
-
|
87 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/lib/Stripe/Stripe.php
CHANGED
@@ -9,9 +9,6 @@ if (!function_exists('curl_init')) {
|
|
9 |
if (!function_exists('json_decode')) {
|
10 |
throw new Exception('Stripe needs the JSON PHP extension.');
|
11 |
}
|
12 |
-
if (!function_exists('mb_detect_encoding')) {
|
13 |
-
throw new Exception('Stripe needs the Multibyte String PHP extension.');
|
14 |
-
}
|
15 |
|
16 |
// Stripe singleton
|
17 |
require(dirname(__FILE__) . '/Stripe/Stripe.php');
|
@@ -33,23 +30,16 @@ require(dirname(__FILE__) . '/Stripe/Object.php');
|
|
33 |
require(dirname(__FILE__) . '/Stripe/ApiRequestor.php');
|
34 |
require(dirname(__FILE__) . '/Stripe/ApiResource.php');
|
35 |
require(dirname(__FILE__) . '/Stripe/SingletonApiResource.php');
|
36 |
-
require(dirname(__FILE__) . '/Stripe/AttachedObject.php');
|
37 |
require(dirname(__FILE__) . '/Stripe/List.php');
|
38 |
|
39 |
// Stripe API Resources
|
40 |
require(dirname(__FILE__) . '/Stripe/Account.php');
|
41 |
-
require(dirname(__FILE__) . '/Stripe/Card.php');
|
42 |
-
require(dirname(__FILE__) . '/Stripe/Balance.php');
|
43 |
-
require(dirname(__FILE__) . '/Stripe/BalanceTransaction.php');
|
44 |
require(dirname(__FILE__) . '/Stripe/Charge.php');
|
45 |
require(dirname(__FILE__) . '/Stripe/Customer.php');
|
46 |
require(dirname(__FILE__) . '/Stripe/Invoice.php');
|
47 |
require(dirname(__FILE__) . '/Stripe/InvoiceItem.php');
|
48 |
require(dirname(__FILE__) . '/Stripe/Plan.php');
|
49 |
-
require(dirname(__FILE__) . '/Stripe/Subscription.php');
|
50 |
require(dirname(__FILE__) . '/Stripe/Token.php');
|
51 |
require(dirname(__FILE__) . '/Stripe/Coupon.php');
|
52 |
require(dirname(__FILE__) . '/Stripe/Event.php');
|
53 |
require(dirname(__FILE__) . '/Stripe/Transfer.php');
|
54 |
-
require(dirname(__FILE__) . '/Stripe/Recipient.php');
|
55 |
-
require(dirname(__FILE__) . '/Stripe/ApplicationFee.php');
|
9 |
if (!function_exists('json_decode')) {
|
10 |
throw new Exception('Stripe needs the JSON PHP extension.');
|
11 |
}
|
|
|
|
|
|
|
12 |
|
13 |
// Stripe singleton
|
14 |
require(dirname(__FILE__) . '/Stripe/Stripe.php');
|
30 |
require(dirname(__FILE__) . '/Stripe/ApiRequestor.php');
|
31 |
require(dirname(__FILE__) . '/Stripe/ApiResource.php');
|
32 |
require(dirname(__FILE__) . '/Stripe/SingletonApiResource.php');
|
|
|
33 |
require(dirname(__FILE__) . '/Stripe/List.php');
|
34 |
|
35 |
// Stripe API Resources
|
36 |
require(dirname(__FILE__) . '/Stripe/Account.php');
|
|
|
|
|
|
|
37 |
require(dirname(__FILE__) . '/Stripe/Charge.php');
|
38 |
require(dirname(__FILE__) . '/Stripe/Customer.php');
|
39 |
require(dirname(__FILE__) . '/Stripe/Invoice.php');
|
40 |
require(dirname(__FILE__) . '/Stripe/InvoiceItem.php');
|
41 |
require(dirname(__FILE__) . '/Stripe/Plan.php');
|
|
|
42 |
require(dirname(__FILE__) . '/Stripe/Token.php');
|
43 |
require(dirname(__FILE__) . '/Stripe/Coupon.php');
|
44 |
require(dirname(__FILE__) . '/Stripe/Event.php');
|
45 |
require(dirname(__FILE__) . '/Stripe/Transfer.php');
|
|
|
|
includes/lib/Stripe/Stripe/Account.php
CHANGED
@@ -2,11 +2,12 @@
|
|
2 |
|
3 |
class Stripe_Account extends Stripe_SingletonApiResource
|
4 |
{
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
|
|
10 |
public static function retrieve($apiKey=null)
|
11 |
{
|
12 |
$class = get_class();
|
2 |
|
3 |
class Stripe_Account extends Stripe_SingletonApiResource
|
4 |
{
|
5 |
+
public static function constructFrom($values, $apiKey=null)
|
6 |
+
{
|
7 |
+
$class = get_class();
|
8 |
+
return self::scopedConstructFrom($class, $values, $apiKey);
|
9 |
+
}
|
10 |
+
|
11 |
public static function retrieve($apiKey=null)
|
12 |
{
|
13 |
$class = get_class();
|
includes/lib/Stripe/Stripe/ApiRequestor.php
CHANGED
@@ -2,9 +2,6 @@
|
|
2 |
|
3 |
class Stripe_ApiRequestor
|
4 |
{
|
5 |
-
/**
|
6 |
-
* @var string $apiKey The API key that's to be used to make requests.
|
7 |
-
*/
|
8 |
public $apiKey;
|
9 |
|
10 |
public function __construct($apiKey=null)
|
@@ -12,37 +9,24 @@ class Stripe_ApiRequestor
|
|
12 |
$this->_apiKey = $apiKey;
|
13 |
}
|
14 |
|
15 |
-
/**
|
16 |
-
* @param string $url The path to the API endpoint.
|
17 |
-
*
|
18 |
-
* @returns string The full path.
|
19 |
-
*/
|
20 |
public static function apiUrl($url='')
|
21 |
{
|
22 |
$apiBase = Stripe::$apiBase;
|
23 |
return "$apiBase$url";
|
24 |
}
|
25 |
|
26 |
-
/**
|
27 |
-
* @param string|mixed $value A string to UTF8-encode.
|
28 |
-
*
|
29 |
-
* @returns string|mixed The UTF8-encoded string, or the object passed in if
|
30 |
-
* it wasn't a string.
|
31 |
-
*/
|
32 |
public static function utf8($value)
|
33 |
{
|
34 |
-
if (is_string($value)
|
35 |
-
&& mb_detect_encoding($value, "UTF-8", TRUE) != "UTF-8") {
|
36 |
return utf8_encode($value);
|
37 |
-
|
38 |
return $value;
|
39 |
-
}
|
40 |
}
|
41 |
|
42 |
private static function _encodeObjects($d)
|
43 |
{
|
44 |
if ($d instanceof Stripe_ApiResource) {
|
45 |
-
return
|
46 |
} else if ($d === true) {
|
47 |
return 'true';
|
48 |
} else if ($d === false) {
|
@@ -50,136 +34,71 @@ class Stripe_ApiRequestor
|
|
50 |
} else if (is_array($d)) {
|
51 |
$res = array();
|
52 |
foreach ($d as $k => $v)
|
53 |
-
|
54 |
return $res;
|
55 |
} else {
|
56 |
-
return
|
57 |
}
|
58 |
}
|
59 |
|
60 |
-
|
61 |
-
* @param array $arr An map of param keys to values.
|
62 |
-
* @param string|null $prefix (It doesn't look like we ever use $prefix...)
|
63 |
-
*
|
64 |
-
* @returns string A querystring, essentially.
|
65 |
-
*/
|
66 |
-
public static function encode($arr, $prefix=null)
|
67 |
{
|
68 |
-
|
69 |
-
return $arr;
|
70 |
-
|
71 |
-
$r = array();
|
72 |
-
foreach ($arr as $k => $v) {
|
73 |
-
if (is_null($v))
|
74 |
-
continue;
|
75 |
-
|
76 |
-
if ($prefix && $k && !is_int($k))
|
77 |
-
$k = $prefix."[".$k."]";
|
78 |
-
else if ($prefix)
|
79 |
-
$k = $prefix."[]";
|
80 |
-
|
81 |
-
if (is_array($v)) {
|
82 |
-
$r[] = self::encode($v, $k, true);
|
83 |
-
} else {
|
84 |
-
$r[] = urlencode($k)."=".urlencode($v);
|
85 |
-
}
|
86 |
-
}
|
87 |
-
|
88 |
-
return implode("&", $r);
|
89 |
}
|
90 |
|
91 |
-
|
92 |
-
* @param string $method
|
93 |
-
* @param string $url
|
94 |
-
* @param array|null $params
|
95 |
-
*
|
96 |
-
* @return array An array whose first element is the response and second
|
97 |
-
* element is the API key used to make the request.
|
98 |
-
*/
|
99 |
-
public function request($method, $url, $params=null)
|
100 |
{
|
101 |
if (!$params)
|
102 |
$params = array();
|
103 |
-
list($rbody, $rcode, $myApiKey) = $this->_requestRaw($
|
104 |
$resp = $this->_interpretResponse($rbody, $rcode);
|
105 |
return array($resp, $myApiKey);
|
106 |
}
|
107 |
|
108 |
-
|
109 |
-
/**
|
110 |
-
* @param string $rbody A JSON string.
|
111 |
-
* @param int $rcode
|
112 |
-
* @param array $resp
|
113 |
-
*
|
114 |
-
* @throws Stripe_InvalidRequestError if the error is caused by the user.
|
115 |
-
* @throws Stripe_AuthenticationError if the error is caused by a lack of
|
116 |
-
* permissions.
|
117 |
-
* @throws Stripe_CardError if the error is the error code is 402 (payment
|
118 |
-
* required)
|
119 |
-
* @throws Stripe_ApiError otherwise.
|
120 |
-
*/
|
121 |
public function handleApiError($rbody, $rcode, $resp)
|
122 |
{
|
123 |
-
if (!is_array($resp) || !isset($resp['error']))
|
124 |
-
|
125 |
-
."(HTTP response code was $rcode)";
|
126 |
-
throw new Stripe_ApiError($msg, $rcode, $rbody, $resp);
|
127 |
-
}
|
128 |
-
|
129 |
$error = $resp['error'];
|
130 |
-
$msg = isset($error['message']) ? $error['message'] : null;
|
131 |
-
$param = isset($error['param']) ? $error['param'] : null;
|
132 |
-
$code = isset($error['code']) ? $error['code'] : null;
|
133 |
-
|
134 |
switch ($rcode) {
|
135 |
case 400:
|
136 |
case 404:
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
case 401:
|
141 |
-
|
142 |
case 402:
|
143 |
-
|
|
|
|
|
|
|
144 |
default:
|
145 |
-
|
146 |
}
|
147 |
}
|
148 |
|
149 |
-
private function _requestRaw($
|
150 |
{
|
151 |
$myApiKey = $this->_apiKey;
|
152 |
if (!$myApiKey)
|
153 |
$myApiKey = Stripe::$apiKey;
|
154 |
-
|
155 |
-
|
156 |
-
$msg = 'No API key provided. (HINT: set your API key using '
|
157 |
-
. '"Stripe::setApiKey(<API-KEY>)". You can generate API keys from '
|
158 |
-
. 'the Stripe web interface. See https://stripe.com/api for '
|
159 |
-
. 'details, or email support@stripe.com if you have any questions.';
|
160 |
-
throw new Stripe_AuthenticationError($msg);
|
161 |
-
}
|
162 |
|
163 |
$absUrl = $this->apiUrl($url);
|
164 |
$params = self::_encodeObjects($params);
|
165 |
$langVersion = phpversion();
|
166 |
$uname = php_uname();
|
167 |
$ua = array('bindings_version' => Stripe::VERSION,
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
$headers = array('X-Stripe-Client-User-Agent: ' . json_encode($ua),
|
173 |
-
|
174 |
'Authorization: Bearer ' . $myApiKey);
|
175 |
-
|
176 |
-
$headers[] = 'Stripe-Version: ' . Stripe::$apiVersion;
|
177 |
-
list($rbody, $rcode) = $this->_curlRequest(
|
178 |
-
$method,
|
179 |
-
$absUrl,
|
180 |
-
$headers,
|
181 |
-
$params
|
182 |
-
);
|
183 |
return array($rbody, $rcode, $myApiKey);
|
184 |
}
|
185 |
|
@@ -188,9 +107,7 @@ class Stripe_ApiRequestor
|
|
188 |
try {
|
189 |
$resp = json_decode($rbody, true);
|
190 |
} catch (Exception $e) {
|
191 |
-
|
192 |
-
. "(HTTP response code was $rcode)";
|
193 |
-
throw new Stripe_ApiError($msg, $rcode, $rbody);
|
194 |
}
|
195 |
|
196 |
if ($rcode < 200 || $rcode >= 300) {
|
@@ -199,28 +116,28 @@ class Stripe_ApiRequestor
|
|
199 |
return $resp;
|
200 |
}
|
201 |
|
202 |
-
private function _curlRequest($
|
203 |
{
|
204 |
$curl = curl_init();
|
205 |
-
$
|
206 |
$opts = array();
|
207 |
-
if ($
|
208 |
$opts[CURLOPT_HTTPGET] = 1;
|
209 |
if (count($params) > 0) {
|
210 |
-
|
211 |
-
|
212 |
}
|
213 |
-
} else if ($
|
214 |
$opts[CURLOPT_POST] = 1;
|
215 |
$opts[CURLOPT_POSTFIELDS] = self::encode($params);
|
216 |
-
} else if ($
|
217 |
$opts[CURLOPT_CUSTOMREQUEST] = 'DELETE';
|
218 |
if (count($params) > 0) {
|
219 |
-
|
220 |
-
|
221 |
}
|
222 |
} else {
|
223 |
-
throw new Stripe_ApiError("Unrecognized method $
|
224 |
}
|
225 |
|
226 |
$absUrl = self::utf8($absUrl);
|
@@ -236,21 +153,15 @@ class Stripe_ApiRequestor
|
|
236 |
curl_setopt_array($curl, $opts);
|
237 |
$rbody = curl_exec($curl);
|
238 |
|
239 |
-
if (!defined('CURLE_SSL_CACERT_BADFILE')) {
|
240 |
-
define('CURLE_SSL_CACERT_BADFILE', 77); // constant not defined in PHP
|
241 |
-
}
|
242 |
-
|
243 |
$errno = curl_errno($curl);
|
244 |
if ($errno == CURLE_SSL_CACERT ||
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
'X-Stripe-Client-Info: {"ca":"using Stripe-supplied CA bundle"}'
|
250 |
-
);
|
251 |
-
$cert = dirname(__FILE__) . '/../data/ca-certificates.crt';
|
252 |
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
|
253 |
-
curl_setopt($curl, CURLOPT_CAINFO,
|
|
|
254 |
$rbody = curl_exec($curl);
|
255 |
}
|
256 |
|
@@ -266,11 +177,6 @@ class Stripe_ApiRequestor
|
|
266 |
return array($rbody, $rcode);
|
267 |
}
|
268 |
|
269 |
-
/**
|
270 |
-
* @param number $errno
|
271 |
-
* @param string $message
|
272 |
-
* @throws Stripe_ApiConnectionError
|
273 |
-
*/
|
274 |
public function handleCurlError($errno, $message)
|
275 |
{
|
276 |
$apiBase = Stripe::$apiBase;
|
@@ -278,23 +184,15 @@ class Stripe_ApiRequestor
|
|
278 |
case CURLE_COULDNT_CONNECT:
|
279 |
case CURLE_COULDNT_RESOLVE_HOST:
|
280 |
case CURLE_OPERATION_TIMEOUTED:
|
281 |
-
$msg = "Could not connect to Stripe ($apiBase). Please check your "
|
282 |
-
|
283 |
-
. "you should check Stripe's service status at "
|
284 |
-
. "https://twitter.com/stripestatus, or";
|
285 |
-
break;
|
286 |
case CURLE_SSL_CACERT:
|
287 |
case CURLE_SSL_PEER_CERTIFICATE:
|
288 |
-
$msg = "Could not verify Stripe's SSL certificate. Please make sure "
|
289 |
-
|
290 |
-
. "(Try going to $apiBase in your browser.) "
|
291 |
-
. "If this problem persists,";
|
292 |
-
break;
|
293 |
default:
|
294 |
-
$msg = "Unexpected error communicating with Stripe. "
|
295 |
-
. "If this problem persists,";
|
296 |
}
|
297 |
-
$msg .= " let us know at support@stripe.com.";
|
298 |
|
299 |
$msg .= "\n\n(Network error [errno $errno]: $message)";
|
300 |
throw new Stripe_ApiConnectionError($msg);
|
2 |
|
3 |
class Stripe_ApiRequestor
|
4 |
{
|
|
|
|
|
|
|
5 |
public $apiKey;
|
6 |
|
7 |
public function __construct($apiKey=null)
|
9 |
$this->_apiKey = $apiKey;
|
10 |
}
|
11 |
|
|
|
|
|
|
|
|
|
|
|
12 |
public static function apiUrl($url='')
|
13 |
{
|
14 |
$apiBase = Stripe::$apiBase;
|
15 |
return "$apiBase$url";
|
16 |
}
|
17 |
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
public static function utf8($value)
|
19 |
{
|
20 |
+
if (is_string($value))
|
|
|
21 |
return utf8_encode($value);
|
22 |
+
else
|
23 |
return $value;
|
|
|
24 |
}
|
25 |
|
26 |
private static function _encodeObjects($d)
|
27 |
{
|
28 |
if ($d instanceof Stripe_ApiResource) {
|
29 |
+
return $d->id;
|
30 |
} else if ($d === true) {
|
31 |
return 'true';
|
32 |
} else if ($d === false) {
|
34 |
} else if (is_array($d)) {
|
35 |
$res = array();
|
36 |
foreach ($d as $k => $v)
|
37 |
+
$res[$k] = self::_encodeObjects($v);
|
38 |
return $res;
|
39 |
} else {
|
40 |
+
return $d;
|
41 |
}
|
42 |
}
|
43 |
|
44 |
+
public static function encode($d)
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
{
|
46 |
+
return http_build_query($d, null, '&');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
}
|
48 |
|
49 |
+
public function request($meth, $url, $params=null)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
50 |
{
|
51 |
if (!$params)
|
52 |
$params = array();
|
53 |
+
list($rbody, $rcode, $myApiKey) = $this->_requestRaw($meth, $url, $params);
|
54 |
$resp = $this->_interpretResponse($rbody, $rcode);
|
55 |
return array($resp, $myApiKey);
|
56 |
}
|
57 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
public function handleApiError($rbody, $rcode, $resp)
|
59 |
{
|
60 |
+
if (!is_array($resp) || !isset($resp['error']))
|
61 |
+
throw new Stripe_ApiError("Invalid response object from API: $rbody (HTTP response code was $rcode)", $rcode, $rbody, $resp);
|
|
|
|
|
|
|
|
|
62 |
$error = $resp['error'];
|
|
|
|
|
|
|
|
|
63 |
switch ($rcode) {
|
64 |
case 400:
|
65 |
case 404:
|
66 |
+
throw new Stripe_InvalidRequestError(isset($error['message']) ? $error['message'] : null,
|
67 |
+
isset($error['param']) ? $error['param'] : null,
|
68 |
+
$rcode, $rbody, $resp);
|
69 |
case 401:
|
70 |
+
throw new Stripe_AuthenticationError(isset($error['message']) ? $error['message'] : null, $rcode, $rbody, $resp);
|
71 |
case 402:
|
72 |
+
throw new Stripe_CardError(isset($error['message']) ? $error['message'] : null,
|
73 |
+
isset($error['param']) ? $error['param'] : null,
|
74 |
+
isset($error['code']) ? $error['code'] : null,
|
75 |
+
$rcode, $rbody, $resp);
|
76 |
default:
|
77 |
+
throw new Stripe_ApiError(isset($error['message']) ? $error['message'] : null, $rcode, $rbody, $resp);
|
78 |
}
|
79 |
}
|
80 |
|
81 |
+
private function _requestRaw($meth, $url, $params)
|
82 |
{
|
83 |
$myApiKey = $this->_apiKey;
|
84 |
if (!$myApiKey)
|
85 |
$myApiKey = Stripe::$apiKey;
|
86 |
+
if (!$myApiKey)
|
87 |
+
throw new Stripe_AuthenticationError('No API key provided. (HINT: set your API key using "Stripe::setApiKey(<API-KEY>)". You can generate API keys from the Stripe web interface. See https://stripe.com/api for details, or email support@stripe.com if you have any questions.');
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
|
89 |
$absUrl = $this->apiUrl($url);
|
90 |
$params = self::_encodeObjects($params);
|
91 |
$langVersion = phpversion();
|
92 |
$uname = php_uname();
|
93 |
$ua = array('bindings_version' => Stripe::VERSION,
|
94 |
+
'lang' => 'php',
|
95 |
+
'lang_version' => $langVersion,
|
96 |
+
'publisher' => 'stripe',
|
97 |
+
'uname' => $uname);
|
98 |
$headers = array('X-Stripe-Client-User-Agent: ' . json_encode($ua),
|
99 |
+
'User-Agent: Stripe/v1 PhpBindings/' . Stripe::VERSION,
|
100 |
'Authorization: Bearer ' . $myApiKey);
|
101 |
+
list($rbody, $rcode) = $this->_curlRequest($meth, $absUrl, $headers, $params);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
102 |
return array($rbody, $rcode, $myApiKey);
|
103 |
}
|
104 |
|
107 |
try {
|
108 |
$resp = json_decode($rbody, true);
|
109 |
} catch (Exception $e) {
|
110 |
+
throw new Stripe_ApiError("Invalid response body from API: $rbody (HTTP response code was $rcode)", $rcode, $rbody);
|
|
|
|
|
111 |
}
|
112 |
|
113 |
if ($rcode < 200 || $rcode >= 300) {
|
116 |
return $resp;
|
117 |
}
|
118 |
|
119 |
+
private function _curlRequest($meth, $absUrl, $headers, $params)
|
120 |
{
|
121 |
$curl = curl_init();
|
122 |
+
$meth = strtolower($meth);
|
123 |
$opts = array();
|
124 |
+
if ($meth == 'get') {
|
125 |
$opts[CURLOPT_HTTPGET] = 1;
|
126 |
if (count($params) > 0) {
|
127 |
+
$encoded = self::encode($params);
|
128 |
+
$absUrl = "$absUrl?$encoded";
|
129 |
}
|
130 |
+
} else if ($meth == 'post') {
|
131 |
$opts[CURLOPT_POST] = 1;
|
132 |
$opts[CURLOPT_POSTFIELDS] = self::encode($params);
|
133 |
+
} else if ($meth == 'delete') {
|
134 |
$opts[CURLOPT_CUSTOMREQUEST] = 'DELETE';
|
135 |
if (count($params) > 0) {
|
136 |
+
$encoded = self::encode($params);
|
137 |
+
$absUrl = "$absUrl?$encoded";
|
138 |
}
|
139 |
} else {
|
140 |
+
throw new Stripe_ApiError("Unrecognized method $meth");
|
141 |
}
|
142 |
|
143 |
$absUrl = self::utf8($absUrl);
|
153 |
curl_setopt_array($curl, $opts);
|
154 |
$rbody = curl_exec($curl);
|
155 |
|
|
|
|
|
|
|
|
|
156 |
$errno = curl_errno($curl);
|
157 |
if ($errno == CURLE_SSL_CACERT ||
|
158 |
+
$errno == CURLE_SSL_PEER_CERTIFICATE ||
|
159 |
+
$errno == 77 // CURLE_SSL_CACERT_BADFILE (constant not defined in PHP though)
|
160 |
+
) {
|
161 |
+
array_push($headers, 'X-Stripe-Client-Info: {"ca":"using Stripe-supplied CA bundle"}');
|
|
|
|
|
|
|
162 |
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
|
163 |
+
curl_setopt($curl, CURLOPT_CAINFO,
|
164 |
+
dirname(__FILE__) . '/../data/ca-certificates.crt');
|
165 |
$rbody = curl_exec($curl);
|
166 |
}
|
167 |
|
177 |
return array($rbody, $rcode);
|
178 |
}
|
179 |
|
|
|
|
|
|
|
|
|
|
|
180 |
public function handleCurlError($errno, $message)
|
181 |
{
|
182 |
$apiBase = Stripe::$apiBase;
|
184 |
case CURLE_COULDNT_CONNECT:
|
185 |
case CURLE_COULDNT_RESOLVE_HOST:
|
186 |
case CURLE_OPERATION_TIMEOUTED:
|
187 |
+
$msg = "Could not connect to Stripe ($apiBase). Please check your internet connection and try again. If this problem persists, you should check Stripe's service status at https://twitter.com/stripestatus, or let us know at support@stripe.com.";
|
188 |
+
break;
|
|
|
|
|
|
|
189 |
case CURLE_SSL_CACERT:
|
190 |
case CURLE_SSL_PEER_CERTIFICATE:
|
191 |
+
$msg = "Could not verify Stripe's SSL certificate. Please make sure that your network is not intercepting certificates. (Try going to $apiBase in your browser.) If this problem persists, let us know at support@stripe.com.";
|
192 |
+
break;
|
|
|
|
|
|
|
193 |
default:
|
194 |
+
$msg = "Unexpected error communicating with Stripe. If this problem persists, let us know at support@stripe.com.";
|
|
|
195 |
}
|
|
|
196 |
|
197 |
$msg .= "\n\n(Network error [errno $errno]: $message)";
|
198 |
throw new Stripe_ApiConnectionError($msg);
|
includes/lib/Stripe/Stripe/ApiResource.php
CHANGED
@@ -9,29 +9,16 @@ abstract class Stripe_ApiResource extends Stripe_Object
|
|
9 |
return $instance;
|
10 |
}
|
11 |
|
12 |
-
/**
|
13 |
-
* @returns Stripe_ApiResource The refreshed resource.
|
14 |
-
*/
|
15 |
public function refresh()
|
16 |
{
|
17 |
$requestor = new Stripe_ApiRequestor($this->_apiKey);
|
18 |
$url = $this->instanceUrl();
|
19 |
|
20 |
-
list($response, $apiKey) = $requestor->request(
|
21 |
-
'get',
|
22 |
-
$url,
|
23 |
-
$this->_retrieveOptions
|
24 |
-
);
|
25 |
$this->refreshFrom($response, $apiKey);
|
26 |
return $this;
|
27 |
-
|
28 |
|
29 |
-
/**
|
30 |
-
* @param string $class
|
31 |
-
*
|
32 |
-
* @returns string The name of the class, with namespacing and underscores
|
33 |
-
* stripped.
|
34 |
-
*/
|
35 |
public static function className($class)
|
36 |
{
|
37 |
// Useful for namespaces: Foo\Stripe_Charge
|
@@ -45,60 +32,38 @@ abstract class Stripe_ApiResource extends Stripe_Object
|
|
45 |
return $name;
|
46 |
}
|
47 |
|
48 |
-
/**
|
49 |
-
* @param string $class
|
50 |
-
*
|
51 |
-
* @returns string The endpoint URL for the given class.
|
52 |
-
*/
|
53 |
public static function classUrl($class)
|
54 |
{
|
55 |
-
$base = self::
|
56 |
return "/v1/${base}s";
|
57 |
}
|
58 |
|
59 |
-
/**
|
60 |
-
* @returns string The full API URL for this API resource.
|
61 |
-
*/
|
62 |
public function instanceUrl()
|
63 |
{
|
64 |
$id = $this['id'];
|
65 |
$class = get_class($this);
|
66 |
if (!$id) {
|
67 |
-
|
68 |
-
. "$class instance has invalid ID: $id";
|
69 |
-
throw new Stripe_InvalidRequestError($message, null);
|
70 |
}
|
71 |
$id = Stripe_ApiRequestor::utf8($id);
|
72 |
-
$base =
|
73 |
$extn = urlencode($id);
|
74 |
return "$base/$extn";
|
75 |
}
|
76 |
|
77 |
private static function _validateCall($method, $params=null, $apiKey=null)
|
78 |
{
|
79 |
-
if ($params && !is_array($params))
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
. "'currency' => 'usd', 'card' => array('number' => "
|
84 |
-
. "4242424242424242, 'exp_month' => 5, 'exp_year' => 2015)))\")";
|
85 |
-
throw new Stripe_Error($message);
|
86 |
-
}
|
87 |
-
|
88 |
-
if ($apiKey && !is_string($apiKey)) {
|
89 |
-
$message = 'The second argument to Stripe API method calls is an '
|
90 |
-
. 'optional per-request apiKey, which must be a string. '
|
91 |
-
. '(HINT: you can set a global apiKey by '
|
92 |
-
. '"Stripe::setApiKey(<apiKey>)")';
|
93 |
-
throw new Stripe_Error($message);
|
94 |
-
}
|
95 |
}
|
96 |
|
97 |
protected static function _scopedAll($class, $params=null, $apiKey=null)
|
98 |
{
|
99 |
self::_validateCall('all', $params, $apiKey);
|
100 |
$requestor = new Stripe_ApiRequestor($apiKey);
|
101 |
-
$url = self::
|
102 |
list($response, $apiKey) = $requestor->request('get', $url, $params);
|
103 |
return Stripe_Util::convertToStripeObject($response, $apiKey);
|
104 |
}
|
@@ -107,18 +72,19 @@ abstract class Stripe_ApiResource extends Stripe_Object
|
|
107 |
{
|
108 |
self::_validateCall('create', $params, $apiKey);
|
109 |
$requestor = new Stripe_ApiRequestor($apiKey);
|
110 |
-
$url = self::
|
111 |
list($response, $apiKey) = $requestor->request('post', $url, $params);
|
112 |
return Stripe_Util::convertToStripeObject($response, $apiKey);
|
113 |
}
|
114 |
|
115 |
-
protected function _scopedSave($class
|
116 |
{
|
117 |
self::_validateCall('save');
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
|
|
122 |
$url = $this->instanceUrl();
|
123 |
list($response, $apiKey) = $requestor->request('post', $url, $params);
|
124 |
$this->refreshFrom($response, $apiKey);
|
9 |
return $instance;
|
10 |
}
|
11 |
|
|
|
|
|
|
|
12 |
public function refresh()
|
13 |
{
|
14 |
$requestor = new Stripe_ApiRequestor($this->_apiKey);
|
15 |
$url = $this->instanceUrl();
|
16 |
|
17 |
+
list($response, $apiKey) = $requestor->request('get', $url);
|
|
|
|
|
|
|
|
|
18 |
$this->refreshFrom($response, $apiKey);
|
19 |
return $this;
|
20 |
+
}
|
21 |
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
public static function className($class)
|
23 |
{
|
24 |
// Useful for namespaces: Foo\Stripe_Charge
|
32 |
return $name;
|
33 |
}
|
34 |
|
|
|
|
|
|
|
|
|
|
|
35 |
public static function classUrl($class)
|
36 |
{
|
37 |
+
$base = self::className($class);
|
38 |
return "/v1/${base}s";
|
39 |
}
|
40 |
|
|
|
|
|
|
|
41 |
public function instanceUrl()
|
42 |
{
|
43 |
$id = $this['id'];
|
44 |
$class = get_class($this);
|
45 |
if (!$id) {
|
46 |
+
throw new Stripe_InvalidRequestError("Could not determine which URL to request: $class instance has invalid ID: $id", null);
|
|
|
|
|
47 |
}
|
48 |
$id = Stripe_ApiRequestor::utf8($id);
|
49 |
+
$base = self::classUrl($class);
|
50 |
$extn = urlencode($id);
|
51 |
return "$base/$extn";
|
52 |
}
|
53 |
|
54 |
private static function _validateCall($method, $params=null, $apiKey=null)
|
55 |
{
|
56 |
+
if ($params && !is_array($params))
|
57 |
+
throw new Stripe_Error("You must pass an array as the first argument to Stripe API method calls. (HINT: an example call to create a charge would be: \"StripeCharge::create(array('amount' => 100, 'currency' => 'usd', 'card' => array('number' => 4242424242424242, 'exp_month' => 5, 'exp_year' => 2015)))\")");
|
58 |
+
if ($apiKey && !is_string($apiKey))
|
59 |
+
throw new Stripe_Error('The second argument to Stripe API method calls is an optional per-request apiKey, which must be a string. (HINT: you can set a global apiKey by "Stripe::setApiKey(<apiKey>)")');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
60 |
}
|
61 |
|
62 |
protected static function _scopedAll($class, $params=null, $apiKey=null)
|
63 |
{
|
64 |
self::_validateCall('all', $params, $apiKey);
|
65 |
$requestor = new Stripe_ApiRequestor($apiKey);
|
66 |
+
$url = self::classUrl($class);
|
67 |
list($response, $apiKey) = $requestor->request('get', $url, $params);
|
68 |
return Stripe_Util::convertToStripeObject($response, $apiKey);
|
69 |
}
|
72 |
{
|
73 |
self::_validateCall('create', $params, $apiKey);
|
74 |
$requestor = new Stripe_ApiRequestor($apiKey);
|
75 |
+
$url = self::classUrl($class);
|
76 |
list($response, $apiKey) = $requestor->request('post', $url, $params);
|
77 |
return Stripe_Util::convertToStripeObject($response, $apiKey);
|
78 |
}
|
79 |
|
80 |
+
protected function _scopedSave($class)
|
81 |
{
|
82 |
self::_validateCall('save');
|
83 |
+
if ($this->_unsavedValues) {
|
84 |
+
$requestor = new Stripe_ApiRequestor($this->_apiKey);
|
85 |
+
$params = array();
|
86 |
+
foreach ($this->_unsavedValues->toArray() as $k)
|
87 |
+
$params[$k] = $this->$k;
|
88 |
$url = $this->instanceUrl();
|
89 |
list($response, $apiKey) = $requestor->request('post', $url, $params);
|
90 |
$this->refreshFrom($response, $apiKey);
|
includes/lib/Stripe/Stripe/ApplicationFee.php
DELETED
@@ -1,53 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Stripe_ApplicationFee extends Stripe_ApiResource
|
4 |
-
{
|
5 |
-
/**
|
6 |
-
* This is a special case because the application fee endpoint has an
|
7 |
-
* underscore in it. The parent `className` function strips underscores.
|
8 |
-
*
|
9 |
-
* @return string The name of the class.
|
10 |
-
*/
|
11 |
-
public static function className($class)
|
12 |
-
{
|
13 |
-
return 'application_fee';
|
14 |
-
}
|
15 |
-
|
16 |
-
/**
|
17 |
-
* @param string $id The ID of the application fee to retrieve.
|
18 |
-
* @param string|null $apiKey
|
19 |
-
*
|
20 |
-
* @return Stripe_ApplicationFee
|
21 |
-
*/
|
22 |
-
public static function retrieve($id, $apiKey=null)
|
23 |
-
{
|
24 |
-
$class = get_class();
|
25 |
-
return self::_scopedRetrieve($class, $id, $apiKey);
|
26 |
-
}
|
27 |
-
|
28 |
-
/**
|
29 |
-
* @param string|null $params
|
30 |
-
* @param string|null $apiKey
|
31 |
-
*
|
32 |
-
* @return array An array of application fees.
|
33 |
-
*/
|
34 |
-
public static function all($params=null, $apiKey=null)
|
35 |
-
{
|
36 |
-
$class = get_class();
|
37 |
-
return self::_scopedAll($class, $params, $apiKey);
|
38 |
-
}
|
39 |
-
|
40 |
-
/**
|
41 |
-
* @param string|null $params
|
42 |
-
*
|
43 |
-
* @return Stripe_ApplicationFee The refunded application fee.
|
44 |
-
*/
|
45 |
-
public function refund($params=null)
|
46 |
-
{
|
47 |
-
$requestor = new Stripe_ApiRequestor($this->_apiKey);
|
48 |
-
$url = $this->instanceUrl() . '/refund';
|
49 |
-
list($response, $apiKey) = $requestor->request('post', $url, $params);
|
50 |
-
$this->refreshFrom($response, $apiKey);
|
51 |
-
return $this;
|
52 |
-
}
|
53 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/lib/Stripe/Stripe/AttachedObject.php
DELETED
@@ -1,23 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
// e.g. metadata on Stripe objects.
|
4 |
-
class Stripe_AttachedObject extends Stripe_Object
|
5 |
-
{
|
6 |
-
/**
|
7 |
-
* Updates this object.
|
8 |
-
*
|
9 |
-
* @param array $properties A mapping of properties to update on this object.
|
10 |
-
*/
|
11 |
-
public function replaceWith($properties)
|
12 |
-
{
|
13 |
-
$removed = array_diff(array_keys($this->_values), array_keys($properties));
|
14 |
-
// Don't unset, but rather set to null so we send up '' for deletion.
|
15 |
-
foreach ($removed as $k) {
|
16 |
-
$this->$k = null;
|
17 |
-
}
|
18 |
-
|
19 |
-
foreach ($properties as $k => $v) {
|
20 |
-
$this->$k = $v;
|
21 |
-
}
|
22 |
-
}
|
23 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/lib/Stripe/Stripe/Balance.php
DELETED
@@ -1,15 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Stripe_Balance extends Stripe_SingletonApiResource
|
4 |
-
{
|
5 |
-
/**
|
6 |
-
* @param string|null $apiKey
|
7 |
-
*
|
8 |
-
* @return Stripe_Balance
|
9 |
-
*/
|
10 |
-
public static function retrieve($apiKey=null)
|
11 |
-
{
|
12 |
-
$class = get_class();
|
13 |
-
return self::_scopedSingletonRetrieve($class, $apiKey);
|
14 |
-
}
|
15 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/lib/Stripe/Stripe/BalanceTransaction.php
DELETED
@@ -1,39 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Stripe_BalanceTransaction extends Stripe_ApiResource
|
4 |
-
{
|
5 |
-
/**
|
6 |
-
* @param string $class Ignored.
|
7 |
-
*
|
8 |
-
* @return string The class URL for this resource. It needs to be special
|
9 |
-
* cased because it doesn't fit into the standard resource pattern.
|
10 |
-
*/
|
11 |
-
public static function classUrl($class)
|
12 |
-
{
|
13 |
-
return "/v1/balance/history";
|
14 |
-
}
|
15 |
-
|
16 |
-
/**
|
17 |
-
* @param string $id The ID of the balance transaction to retrieve.
|
18 |
-
* @param string|null $apiKey
|
19 |
-
*
|
20 |
-
* @return Stripe_BalanceTransaction
|
21 |
-
*/
|
22 |
-
public static function retrieve($id, $apiKey=null)
|
23 |
-
{
|
24 |
-
$class = get_class();
|
25 |
-
return self::_scopedRetrieve($class, $id, $apiKey);
|
26 |
-
}
|
27 |
-
|
28 |
-
/**
|
29 |
-
* @param array|null $params
|
30 |
-
* @param string|null $apiKey
|
31 |
-
*
|
32 |
-
* @return array An array of Stripe_BalanceTransactions.
|
33 |
-
*/
|
34 |
-
public static function all($params=null, $apiKey=null)
|
35 |
-
{
|
36 |
-
$class = get_class();
|
37 |
-
return self::_scopedAll($class, $params, $apiKey);
|
38 |
-
}
|
39 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/lib/Stripe/Stripe/Card.php
DELETED
@@ -1,54 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Stripe_Card extends Stripe_ApiResource
|
4 |
-
{
|
5 |
-
public static function constructFrom($values, $apiKey=null)
|
6 |
-
{
|
7 |
-
$class = get_class();
|
8 |
-
return self::scopedConstructFrom($class, $values, $apiKey);
|
9 |
-
}
|
10 |
-
|
11 |
-
/**
|
12 |
-
* @return string The instance URL for this resource. It needs to be special
|
13 |
-
* cased because it doesn't fit into the standard resource pattern.
|
14 |
-
*/
|
15 |
-
public function instanceUrl()
|
16 |
-
{
|
17 |
-
$id = $this['id'];
|
18 |
-
$customer = $this['customer'];
|
19 |
-
$class = get_class($this);
|
20 |
-
if (!$id) {
|
21 |
-
$msg = "Could not determine which URL to request: $class instance "
|
22 |
-
. "has invalid ID: $id";
|
23 |
-
throw new Stripe_InvalidRequestError($msg, null);
|
24 |
-
}
|
25 |
-
$id = Stripe_ApiRequestor::utf8($id);
|
26 |
-
$customer = Stripe_ApiRequestor::utf8($customer);
|
27 |
-
|
28 |
-
$base = self::classUrl('Stripe_Customer');
|
29 |
-
$customerExtn = urlencode($customer);
|
30 |
-
$extn = urlencode($id);
|
31 |
-
return "$base/$customerExtn/cards/$extn";
|
32 |
-
}
|
33 |
-
|
34 |
-
/**
|
35 |
-
* @param array|null $params
|
36 |
-
*
|
37 |
-
* @return Stripe_Card The deleted card.
|
38 |
-
*/
|
39 |
-
public function delete($params=null)
|
40 |
-
{
|
41 |
-
$class = get_class();
|
42 |
-
return self::_scopedDelete($class, $params);
|
43 |
-
}
|
44 |
-
|
45 |
-
/**
|
46 |
-
* @return Stripe_Card The saved card.
|
47 |
-
*/
|
48 |
-
public function save()
|
49 |
-
{
|
50 |
-
$class = get_class();
|
51 |
-
return self::_scopedSave($class);
|
52 |
-
}
|
53 |
-
}
|
54 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/lib/Stripe/Stripe/CardError.php
CHANGED
@@ -2,11 +2,9 @@
|
|
2 |
|
3 |
class Stripe_CardError extends Stripe_Error
|
4 |
{
|
5 |
-
public function __construct($message, $param, $code, $
|
6 |
-
$httpBody, $jsonBody
|
7 |
-
)
|
8 |
{
|
9 |
-
parent::__construct($message, $
|
10 |
$this->param = $param;
|
11 |
$this->code = $code;
|
12 |
}
|
2 |
|
3 |
class Stripe_CardError extends Stripe_Error
|
4 |
{
|
5 |
+
public function __construct($message, $param, $code, $http_status=null, $http_body=null, $json_body=null)
|
|
|
|
|
6 |
{
|
7 |
+
parent::__construct($message, $http_status, $http_body, $json_body);
|
8 |
$this->param = $param;
|
9 |
$this->code = $code;
|
10 |
}
|
includes/lib/Stripe/Stripe/Charge.php
CHANGED
@@ -2,56 +2,30 @@
|
|
2 |
|
3 |
class Stripe_Charge extends Stripe_ApiResource
|
4 |
{
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
public static function retrieve($id, $apiKey=null)
|
12 |
{
|
13 |
$class = get_class();
|
14 |
return self::_scopedRetrieve($class, $id, $apiKey);
|
15 |
}
|
16 |
|
17 |
-
/**
|
18 |
-
* @param array|null $params
|
19 |
-
* @param string|null $apiKey
|
20 |
-
*
|
21 |
-
* @return array An array of Stripe_Charges.
|
22 |
-
*/
|
23 |
public static function all($params=null, $apiKey=null)
|
24 |
{
|
25 |
$class = get_class();
|
26 |
return self::_scopedAll($class, $params, $apiKey);
|
27 |
}
|
28 |
|
29 |
-
/**
|
30 |
-
* @param array|null $params
|
31 |
-
* @param string|null $apiKey
|
32 |
-
*
|
33 |
-
* @return Stripe_Charge The created charge.
|
34 |
-
*/
|
35 |
public static function create($params=null, $apiKey=null)
|
36 |
{
|
37 |
$class = get_class();
|
38 |
return self::_scopedCreate($class, $params, $apiKey);
|
39 |
}
|
40 |
|
41 |
-
/**
|
42 |
-
* @return Stripe_Charge The saved charge.
|
43 |
-
*/
|
44 |
-
public function save()
|
45 |
-
{
|
46 |
-
$class = get_class();
|
47 |
-
return self::_scopedSave($class);
|
48 |
-
}
|
49 |
-
|
50 |
-
/**
|
51 |
-
* @param array|null $params
|
52 |
-
*
|
53 |
-
* @return Stripe_Charge The refunded charge.
|
54 |
-
*/
|
55 |
public function refund($params=null)
|
56 |
{
|
57 |
$requestor = new Stripe_ApiRequestor($this->_apiKey);
|
@@ -61,11 +35,6 @@ class Stripe_Charge extends Stripe_ApiResource
|
|
61 |
return $this;
|
62 |
}
|
63 |
|
64 |
-
/**
|
65 |
-
* @param array|null $params
|
66 |
-
*
|
67 |
-
* @return Stripe_Charge The captured charge.
|
68 |
-
*/
|
69 |
public function capture($params=null)
|
70 |
{
|
71 |
$requestor = new Stripe_ApiRequestor($this->_apiKey);
|
@@ -75,11 +44,6 @@ class Stripe_Charge extends Stripe_ApiResource
|
|
75 |
return $this;
|
76 |
}
|
77 |
|
78 |
-
/**
|
79 |
-
* @param array|null $params
|
80 |
-
*
|
81 |
-
* @return array The updated dispute.
|
82 |
-
*/
|
83 |
public function updateDispute($params=null)
|
84 |
{
|
85 |
$requestor = new Stripe_ApiRequestor($this->_apiKey);
|
@@ -88,16 +52,4 @@ class Stripe_Charge extends Stripe_ApiResource
|
|
88 |
$this->refreshFrom(array('dispute' => $response), $apiKey, true);
|
89 |
return $this->dispute;
|
90 |
}
|
91 |
-
|
92 |
-
/**
|
93 |
-
* @return Stripe_Charge The updated charge.
|
94 |
-
*/
|
95 |
-
public function closeDispute()
|
96 |
-
{
|
97 |
-
$requestor = new Stripe_ApiRequestor($this->_apiKey);
|
98 |
-
$url = $this->instanceUrl() . '/dispute/close';
|
99 |
-
list($response, $apiKey) = $requestor->request('post', $url);
|
100 |
-
$this->refreshFrom($response, $apiKey);
|
101 |
-
return $this;
|
102 |
-
}
|
103 |
-
}
|
2 |
|
3 |
class Stripe_Charge extends Stripe_ApiResource
|
4 |
{
|
5 |
+
public static function constructFrom($values, $apiKey=null)
|
6 |
+
{
|
7 |
+
$class = get_class();
|
8 |
+
return self::scopedConstructFrom($class, $values, $apiKey);
|
9 |
+
}
|
10 |
+
|
11 |
public static function retrieve($id, $apiKey=null)
|
12 |
{
|
13 |
$class = get_class();
|
14 |
return self::_scopedRetrieve($class, $id, $apiKey);
|
15 |
}
|
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
public static function all($params=null, $apiKey=null)
|
18 |
{
|
19 |
$class = get_class();
|
20 |
return self::_scopedAll($class, $params, $apiKey);
|
21 |
}
|
22 |
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
public static function create($params=null, $apiKey=null)
|
24 |
{
|
25 |
$class = get_class();
|
26 |
return self::_scopedCreate($class, $params, $apiKey);
|
27 |
}
|
28 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
public function refund($params=null)
|
30 |
{
|
31 |
$requestor = new Stripe_ApiRequestor($this->_apiKey);
|
35 |
return $this;
|
36 |
}
|
37 |
|
|
|
|
|
|
|
|
|
|
|
38 |
public function capture($params=null)
|
39 |
{
|
40 |
$requestor = new Stripe_ApiRequestor($this->_apiKey);
|
44 |
return $this;
|
45 |
}
|
46 |
|
|
|
|
|
|
|
|
|
|
|
47 |
public function updateDispute($params=null)
|
48 |
{
|
49 |
$requestor = new Stripe_ApiRequestor($this->_apiKey);
|
52 |
$this->refreshFrom(array('dispute' => $response), $apiKey, true);
|
53 |
return $this->dispute;
|
54 |
}
|
55 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/lib/Stripe/Stripe/Coupon.php
CHANGED
@@ -2,47 +2,30 @@
|
|
2 |
|
3 |
class Stripe_Coupon extends Stripe_ApiResource
|
4 |
{
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
public static function retrieve($id, $apiKey=null)
|
12 |
{
|
13 |
$class = get_class();
|
14 |
return self::_scopedRetrieve($class, $id, $apiKey);
|
15 |
}
|
16 |
|
17 |
-
/**
|
18 |
-
* @param array|null $params
|
19 |
-
* @param string|null $apiKey
|
20 |
-
*
|
21 |
-
* @return Stripe_Coupon The created coupon.
|
22 |
-
*/
|
23 |
public static function create($params=null, $apiKey=null)
|
24 |
{
|
25 |
$class = get_class();
|
26 |
return self::_scopedCreate($class, $params, $apiKey);
|
27 |
}
|
28 |
|
29 |
-
/**
|
30 |
-
* @param array|null $params
|
31 |
-
*
|
32 |
-
* @return Stripe_Coupon The deleted coupon.
|
33 |
-
*/
|
34 |
public function delete($params=null)
|
35 |
{
|
36 |
$class = get_class();
|
37 |
return self::_scopedDelete($class, $params);
|
38 |
}
|
39 |
-
|
40 |
-
/**
|
41 |
-
* @param array|null $params
|
42 |
-
* @param string|null $apiKey
|
43 |
-
*
|
44 |
-
* @return array An array of Stripe_Coupons.
|
45 |
-
*/
|
46 |
public static function all($params=null, $apiKey=null)
|
47 |
{
|
48 |
$class = get_class();
|
2 |
|
3 |
class Stripe_Coupon extends Stripe_ApiResource
|
4 |
{
|
5 |
+
public static function constructFrom($values, $apiKey=null)
|
6 |
+
{
|
7 |
+
$class = get_class();
|
8 |
+
return self::scopedConstructFrom($class, $values, $apiKey);
|
9 |
+
}
|
10 |
+
|
11 |
public static function retrieve($id, $apiKey=null)
|
12 |
{
|
13 |
$class = get_class();
|
14 |
return self::_scopedRetrieve($class, $id, $apiKey);
|
15 |
}
|
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
public static function create($params=null, $apiKey=null)
|
18 |
{
|
19 |
$class = get_class();
|
20 |
return self::_scopedCreate($class, $params, $apiKey);
|
21 |
}
|
22 |
|
|
|
|
|
|
|
|
|
|
|
23 |
public function delete($params=null)
|
24 |
{
|
25 |
$class = get_class();
|
26 |
return self::_scopedDelete($class, $params);
|
27 |
}
|
28 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
public static function all($params=null, $apiKey=null)
|
30 |
{
|
31 |
$class = get_class();
|
includes/lib/Stripe/Stripe/Customer.php
CHANGED
@@ -2,67 +2,42 @@
|
|
2 |
|
3 |
class Stripe_Customer extends Stripe_ApiResource
|
4 |
{
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
public static function retrieve($id, $apiKey=null)
|
12 |
{
|
13 |
$class = get_class();
|
14 |
return self::_scopedRetrieve($class, $id, $apiKey);
|
15 |
}
|
16 |
|
17 |
-
/**
|
18 |
-
* @param array|null $params
|
19 |
-
* @param string|null $apiKey
|
20 |
-
*
|
21 |
-
* @return array An array of Stripe_Customers.
|
22 |
-
*/
|
23 |
public static function all($params=null, $apiKey=null)
|
24 |
{
|
25 |
$class = get_class();
|
26 |
return self::_scopedAll($class, $params, $apiKey);
|
27 |
}
|
28 |
|
29 |
-
/**
|
30 |
-
* @param array|null $params
|
31 |
-
* @param string|null $apiKey
|
32 |
-
*
|
33 |
-
* @return Stripe_Customer The created customer.
|
34 |
-
*/
|
35 |
public static function create($params=null, $apiKey=null)
|
36 |
{
|
37 |
$class = get_class();
|
38 |
return self::_scopedCreate($class, $params, $apiKey);
|
39 |
}
|
40 |
|
41 |
-
/**
|
42 |
-
* @returns Stripe_Customer The saved customer.
|
43 |
-
*/
|
44 |
public function save()
|
45 |
{
|
46 |
$class = get_class();
|
47 |
return self::_scopedSave($class);
|
48 |
}
|
49 |
|
50 |
-
/**
|
51 |
-
* @param array|null $params
|
52 |
-
*
|
53 |
-
* @returns Stripe_Customer The deleted customer.
|
54 |
-
*/
|
55 |
public function delete($params=null)
|
56 |
{
|
57 |
$class = get_class();
|
58 |
return self::_scopedDelete($class, $params);
|
59 |
}
|
60 |
|
61 |
-
/**
|
62 |
-
* @param array|null $params
|
63 |
-
*
|
64 |
-
* @returns Stripe_InvoiceItem The resulting invoice item.
|
65 |
-
*/
|
66 |
public function addInvoiceItem($params=null)
|
67 |
{
|
68 |
if (!$params)
|
@@ -72,11 +47,6 @@ class Stripe_Customer extends Stripe_ApiResource
|
|
72 |
return $ii;
|
73 |
}
|
74 |
|
75 |
-
/**
|
76 |
-
* @param array|null $params
|
77 |
-
*
|
78 |
-
* @returns array An array of the customer's Stripe_Invoices.
|
79 |
-
*/
|
80 |
public function invoices($params=null)
|
81 |
{
|
82 |
if (!$params)
|
@@ -86,11 +56,6 @@ class Stripe_Customer extends Stripe_ApiResource
|
|
86 |
return $invoices;
|
87 |
}
|
88 |
|
89 |
-
/**
|
90 |
-
* @param array|null $params
|
91 |
-
*
|
92 |
-
* @returns array An array of the customer's Stripe_InvoiceItems.
|
93 |
-
*/
|
94 |
public function invoiceItems($params=null)
|
95 |
{
|
96 |
if (!$params)
|
@@ -100,11 +65,6 @@ class Stripe_Customer extends Stripe_ApiResource
|
|
100 |
return $iis;
|
101 |
}
|
102 |
|
103 |
-
/**
|
104 |
-
* @param array|null $params
|
105 |
-
*
|
106 |
-
* @returns array An array of the customer's Stripe_Charges.
|
107 |
-
*/
|
108 |
public function charges($params=null)
|
109 |
{
|
110 |
if (!$params)
|
@@ -114,11 +74,6 @@ class Stripe_Customer extends Stripe_ApiResource
|
|
114 |
return $charges;
|
115 |
}
|
116 |
|
117 |
-
/**
|
118 |
-
* @param array|null $params
|
119 |
-
*
|
120 |
-
* @returns Stripe_Subscription The updated subscription.
|
121 |
-
*/
|
122 |
public function updateSubscription($params=null)
|
123 |
{
|
124 |
$requestor = new Stripe_ApiRequestor($this->_apiKey);
|
@@ -128,11 +83,6 @@ class Stripe_Customer extends Stripe_ApiResource
|
|
128 |
return $this->subscription;
|
129 |
}
|
130 |
|
131 |
-
/**
|
132 |
-
* @param array|null $params
|
133 |
-
*
|
134 |
-
* @returns Stripe_Subscription The cancelled subscription.
|
135 |
-
*/
|
136 |
public function cancelSubscription($params=null)
|
137 |
{
|
138 |
$requestor = new Stripe_ApiRequestor($this->_apiKey);
|
@@ -142,11 +92,6 @@ class Stripe_Customer extends Stripe_ApiResource
|
|
142 |
return $this->subscription;
|
143 |
}
|
144 |
|
145 |
-
/**
|
146 |
-
* @param array|null $params
|
147 |
-
*
|
148 |
-
* @returns Stripe_Customer The updated customer.
|
149 |
-
*/
|
150 |
public function deleteDiscount()
|
151 |
{
|
152 |
$requestor = new Stripe_ApiRequestor($this->_apiKey);
|
2 |
|
3 |
class Stripe_Customer extends Stripe_ApiResource
|
4 |
{
|
5 |
+
public static function constructFrom($values, $apiKey=null)
|
6 |
+
{
|
7 |
+
$class = get_class();
|
8 |
+
return self::scopedConstructFrom($class, $values, $apiKey);
|
9 |
+
}
|
10 |
+
|
11 |
public static function retrieve($id, $apiKey=null)
|
12 |
{
|
13 |
$class = get_class();
|
14 |
return self::_scopedRetrieve($class, $id, $apiKey);
|
15 |
}
|
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
public static function all($params=null, $apiKey=null)
|
18 |
{
|
19 |
$class = get_class();
|
20 |
return self::_scopedAll($class, $params, $apiKey);
|
21 |
}
|
22 |
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
public static function create($params=null, $apiKey=null)
|
24 |
{
|
25 |
$class = get_class();
|
26 |
return self::_scopedCreate($class, $params, $apiKey);
|
27 |
}
|
28 |
|
|
|
|
|
|
|
29 |
public function save()
|
30 |
{
|
31 |
$class = get_class();
|
32 |
return self::_scopedSave($class);
|
33 |
}
|
34 |
|
|
|
|
|
|
|
|
|
|
|
35 |
public function delete($params=null)
|
36 |
{
|
37 |
$class = get_class();
|
38 |
return self::_scopedDelete($class, $params);
|
39 |
}
|
40 |
|
|
|
|
|
|
|
|
|
|
|
41 |
public function addInvoiceItem($params=null)
|
42 |
{
|
43 |
if (!$params)
|
47 |
return $ii;
|
48 |
}
|
49 |
|
|
|
|
|
|
|
|
|
|
|
50 |
public function invoices($params=null)
|
51 |
{
|
52 |
if (!$params)
|
56 |
return $invoices;
|
57 |
}
|
58 |
|
|
|
|
|
|
|
|
|
|
|
59 |
public function invoiceItems($params=null)
|
60 |
{
|
61 |
if (!$params)
|
65 |
return $iis;
|
66 |
}
|
67 |
|
|
|
|
|
|
|
|
|
|
|
68 |
public function charges($params=null)
|
69 |
{
|
70 |
if (!$params)
|
74 |
return $charges;
|
75 |
}
|
76 |
|
|
|
|
|
|
|
|
|
|
|
77 |
public function updateSubscription($params=null)
|
78 |
{
|
79 |
$requestor = new Stripe_ApiRequestor($this->_apiKey);
|
83 |
return $this->subscription;
|
84 |
}
|
85 |
|
|
|
|
|
|
|
|
|
|
|
86 |
public function cancelSubscription($params=null)
|
87 |
{
|
88 |
$requestor = new Stripe_ApiRequestor($this->_apiKey);
|
92 |
return $this->subscription;
|
93 |
}
|
94 |
|
|
|
|
|
|
|
|
|
|
|
95 |
public function deleteDiscount()
|
96 |
{
|
97 |
$requestor = new Stripe_ApiRequestor($this->_apiKey);
|
includes/lib/Stripe/Stripe/Error.php
CHANGED
@@ -2,28 +2,26 @@
|
|
2 |
|
3 |
class Stripe_Error extends Exception
|
4 |
{
|
5 |
-
public function __construct($message, $
|
6 |
-
$httpBody=null, $jsonBody=null
|
7 |
-
)
|
8 |
{
|
9 |
parent::__construct($message);
|
10 |
-
$this->
|
11 |
-
$this->
|
12 |
-
$this->
|
13 |
}
|
14 |
|
15 |
public function getHttpStatus()
|
16 |
{
|
17 |
-
return $this->
|
18 |
}
|
19 |
|
20 |
public function getHttpBody()
|
21 |
{
|
22 |
-
return $this->
|
23 |
}
|
24 |
|
25 |
public function getJsonBody()
|
26 |
{
|
27 |
-
return $this->
|
28 |
}
|
29 |
}
|
2 |
|
3 |
class Stripe_Error extends Exception
|
4 |
{
|
5 |
+
public function __construct($message=null, $http_status=null, $http_body=null, $json_body=null)
|
|
|
|
|
6 |
{
|
7 |
parent::__construct($message);
|
8 |
+
$this->http_status = $http_status;
|
9 |
+
$this->http_body = $http_body;
|
10 |
+
$this->json_body = $json_body;
|
11 |
}
|
12 |
|
13 |
public function getHttpStatus()
|
14 |
{
|
15 |
+
return $this->http_status;
|
16 |
}
|
17 |
|
18 |
public function getHttpBody()
|
19 |
{
|
20 |
+
return $this->http_body;
|
21 |
}
|
22 |
|
23 |
public function getJsonBody()
|
24 |
{
|
25 |
+
return $this->json_body;
|
26 |
}
|
27 |
}
|
includes/lib/Stripe/Stripe/Event.php
CHANGED
@@ -2,24 +2,18 @@
|
|
2 |
|
3 |
class Stripe_Event extends Stripe_ApiResource
|
4 |
{
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
public static function retrieve($id, $apiKey=null)
|
12 |
{
|
13 |
$class = get_class();
|
14 |
return self::_scopedRetrieve($class, $id, $apiKey);
|
15 |
}
|
16 |
|
17 |
-
/**
|
18 |
-
* @param array|null $params
|
19 |
-
* @param string|null $apiKey
|
20 |
-
*
|
21 |
-
* @return array An array of Stripe_Events.
|
22 |
-
*/
|
23 |
public static function all($params=null, $apiKey=null)
|
24 |
{
|
25 |
$class = get_class();
|
2 |
|
3 |
class Stripe_Event extends Stripe_ApiResource
|
4 |
{
|
5 |
+
public static function constructFrom($values, $apiKey=null)
|
6 |
+
{
|
7 |
+
$class = get_class();
|
8 |
+
return self::scopedConstructFrom($class, $values, $apiKey);
|
9 |
+
}
|
10 |
+
|
11 |
public static function retrieve($id, $apiKey=null)
|
12 |
{
|
13 |
$class = get_class();
|
14 |
return self::_scopedRetrieve($class, $id, $apiKey);
|
15 |
}
|
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
public static function all($params=null, $apiKey=null)
|
18 |
{
|
19 |
$class = get_class();
|
includes/lib/Stripe/Stripe/InvalidRequestError.php
CHANGED
@@ -2,11 +2,9 @@
|
|
2 |
|
3 |
class Stripe_InvalidRequestError extends Stripe_Error
|
4 |
{
|
5 |
-
public function __construct($message, $param, $
|
6 |
-
$httpBody=null, $jsonBody=null
|
7 |
-
)
|
8 |
{
|
9 |
-
parent::__construct($message, $
|
10 |
$this->param = $param;
|
11 |
}
|
12 |
}
|
2 |
|
3 |
class Stripe_InvalidRequestError extends Stripe_Error
|
4 |
{
|
5 |
+
public function __construct($message, $param, $http_status=null, $http_body=null, $json_body=null)
|
|
|
|
|
6 |
{
|
7 |
+
parent::__construct($message, $http_status, $http_body, $json_body);
|
8 |
$this->param = $param;
|
9 |
}
|
10 |
}
|
includes/lib/Stripe/Stripe/Invoice.php
CHANGED
@@ -2,48 +2,30 @@
|
|
2 |
|
3 |
class Stripe_Invoice extends Stripe_ApiResource
|
4 |
{
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
public static function create($params=null, $apiKey=null)
|
12 |
{
|
13 |
$class = get_class();
|
14 |
return self::_scopedCreate($class, $params, $apiKey);
|
15 |
}
|
16 |
|
17 |
-
/**
|
18 |
-
* @param string $id The ID of the invoice to retrieve.
|
19 |
-
* @param string|null $apiKey
|
20 |
-
*
|
21 |
-
* @return Stripe_Invoice
|
22 |
-
*/
|
23 |
public static function retrieve($id, $apiKey=null)
|
24 |
{
|
25 |
$class = get_class();
|
26 |
return self::_scopedRetrieve($class, $id, $apiKey);
|
27 |
}
|
28 |
|
29 |
-
/**
|
30 |
-
* @param array|null $params
|
31 |
-
* @param string|null $apiKey
|
32 |
-
*
|
33 |
-
* @return array An array of Stripe_Invoices.
|
34 |
-
*/
|
35 |
public static function all($params=null, $apiKey=null)
|
36 |
{
|
37 |
$class = get_class();
|
38 |
return self::_scopedAll($class, $params, $apiKey);
|
39 |
}
|
40 |
|
41 |
-
/**
|
42 |
-
* @param array|null $params
|
43 |
-
* @param string|null $apiKey
|
44 |
-
*
|
45 |
-
* @return Stripe_Invoice The upcoming invoice.
|
46 |
-
*/
|
47 |
public static function upcoming($params=null, $apiKey=null)
|
48 |
{
|
49 |
$requestor = new Stripe_ApiRequestor($apiKey);
|
@@ -52,18 +34,12 @@ class Stripe_Invoice extends Stripe_ApiResource
|
|
52 |
return Stripe_Util::convertToStripeObject($response, $apiKey);
|
53 |
}
|
54 |
|
55 |
-
/**
|
56 |
-
* @return Stripe_Invoice The saved invoice.
|
57 |
-
*/
|
58 |
public function save()
|
59 |
{
|
60 |
$class = get_class();
|
61 |
return self::_scopedSave($class);
|
62 |
}
|
63 |
|
64 |
-
/**
|
65 |
-
* @return Stripe_Invoice The paid invoice.
|
66 |
-
*/
|
67 |
public function pay()
|
68 |
{
|
69 |
$requestor = new Stripe_ApiRequestor($this->_apiKey);
|
2 |
|
3 |
class Stripe_Invoice extends Stripe_ApiResource
|
4 |
{
|
5 |
+
public static function constructFrom($values, $apiKey=null)
|
6 |
+
{
|
7 |
+
$class = get_class();
|
8 |
+
return self::scopedConstructFrom($class, $values, $apiKey);
|
9 |
+
}
|
10 |
+
|
11 |
public static function create($params=null, $apiKey=null)
|
12 |
{
|
13 |
$class = get_class();
|
14 |
return self::_scopedCreate($class, $params, $apiKey);
|
15 |
}
|
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
public static function retrieve($id, $apiKey=null)
|
18 |
{
|
19 |
$class = get_class();
|
20 |
return self::_scopedRetrieve($class, $id, $apiKey);
|
21 |
}
|
22 |
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
public static function all($params=null, $apiKey=null)
|
24 |
{
|
25 |
$class = get_class();
|
26 |
return self::_scopedAll($class, $params, $apiKey);
|
27 |
}
|
28 |
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
public static function upcoming($params=null, $apiKey=null)
|
30 |
{
|
31 |
$requestor = new Stripe_ApiRequestor($apiKey);
|
34 |
return Stripe_Util::convertToStripeObject($response, $apiKey);
|
35 |
}
|
36 |
|
|
|
|
|
|
|
37 |
public function save()
|
38 |
{
|
39 |
$class = get_class();
|
40 |
return self::_scopedSave($class);
|
41 |
}
|
42 |
|
|
|
|
|
|
|
43 |
public function pay()
|
44 |
{
|
45 |
$requestor = new Stripe_ApiRequestor($this->_apiKey);
|
includes/lib/Stripe/Stripe/InvoiceItem.php
CHANGED
@@ -2,54 +2,36 @@
|
|
2 |
|
3 |
class Stripe_InvoiceItem extends Stripe_ApiResource
|
4 |
{
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
public static function retrieve($id, $apiKey=null)
|
12 |
{
|
13 |
$class = get_class();
|
14 |
return self::_scopedRetrieve($class, $id, $apiKey);
|
15 |
}
|
16 |
|
17 |
-
/**
|
18 |
-
* @param array|null $params
|
19 |
-
* @param string|null $apiKey
|
20 |
-
*
|
21 |
-
* @return array An array of Stripe_InvoiceItems.
|
22 |
-
*/
|
23 |
public static function all($params=null, $apiKey=null)
|
24 |
{
|
25 |
$class = get_class();
|
26 |
return self::_scopedAll($class, $params, $apiKey);
|
27 |
}
|
28 |
|
29 |
-
/**
|
30 |
-
* @param array|null $params
|
31 |
-
* @param string|null $apiKey
|
32 |
-
*
|
33 |
-
* @return Stripe_InvoiceItem The created invoice item.
|
34 |
-
*/
|
35 |
public static function create($params=null, $apiKey=null)
|
36 |
{
|
37 |
$class = get_class();
|
38 |
return self::_scopedCreate($class, $params, $apiKey);
|
39 |
}
|
40 |
|
41 |
-
/**
|
42 |
-
* @return Stripe_InvoiceItem The saved invoice item.
|
43 |
-
*/
|
44 |
public function save()
|
45 |
{
|
46 |
$class = get_class();
|
47 |
return self::_scopedSave($class);
|
48 |
}
|
49 |
|
50 |
-
/**
|
51 |
-
* @return Stripe_InvoiceItem The deleted invoice item.
|
52 |
-
*/
|
53 |
public function delete($params=null)
|
54 |
{
|
55 |
$class = get_class();
|
2 |
|
3 |
class Stripe_InvoiceItem extends Stripe_ApiResource
|
4 |
{
|
5 |
+
public static function constructFrom($values, $apiKey=null)
|
6 |
+
{
|
7 |
+
$class = get_class();
|
8 |
+
return self::scopedConstructFrom($class, $values, $apiKey);
|
9 |
+
}
|
10 |
+
|
11 |
public static function retrieve($id, $apiKey=null)
|
12 |
{
|
13 |
$class = get_class();
|
14 |
return self::_scopedRetrieve($class, $id, $apiKey);
|
15 |
}
|
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
public static function all($params=null, $apiKey=null)
|
18 |
{
|
19 |
$class = get_class();
|
20 |
return self::_scopedAll($class, $params, $apiKey);
|
21 |
}
|
22 |
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
public static function create($params=null, $apiKey=null)
|
24 |
{
|
25 |
$class = get_class();
|
26 |
return self::_scopedCreate($class, $params, $apiKey);
|
27 |
}
|
28 |
|
|
|
|
|
|
|
29 |
public function save()
|
30 |
{
|
31 |
$class = get_class();
|
32 |
return self::_scopedSave($class);
|
33 |
}
|
34 |
|
|
|
|
|
|
|
35 |
public function delete($params=null)
|
36 |
{
|
37 |
$class = get_class();
|
includes/lib/Stripe/Stripe/List.php
CHANGED
@@ -2,36 +2,16 @@
|
|
2 |
|
3 |
class Stripe_List extends Stripe_Object
|
4 |
{
|
5 |
-
public function
|
6 |
-
{
|
7 |
-
$requestor = new Stripe_ApiRequestor($this->_apiKey);
|
8 |
-
list($response, $apiKey) = $requestor->request(
|
9 |
-
'get',
|
10 |
-
$this['url'],
|
11 |
-
$params
|
12 |
-
);
|
13 |
-
return Stripe_Util::convertToStripeObject($response, $apiKey);
|
14 |
-
}
|
15 |
-
|
16 |
-
public function create($params=null)
|
17 |
{
|
18 |
-
$
|
19 |
-
|
20 |
-
'post', $this['url'], $params
|
21 |
-
);
|
22 |
-
return Stripe_Util::convertToStripeObject($response, $apiKey);
|
23 |
}
|
24 |
|
25 |
-
public function
|
26 |
{
|
27 |
$requestor = new Stripe_ApiRequestor($this->_apiKey);
|
28 |
-
$
|
29 |
-
$id = Stripe_ApiRequestor::utf8($id);
|
30 |
-
$extn = urlencode($id);
|
31 |
-
list($response, $apiKey) = $requestor->request(
|
32 |
-
'get', "$base/$extn", $params
|
33 |
-
);
|
34 |
return Stripe_Util::convertToStripeObject($response, $apiKey);
|
35 |
}
|
36 |
-
|
37 |
}
|
2 |
|
3 |
class Stripe_List extends Stripe_Object
|
4 |
{
|
5 |
+
public static function constructFrom($values, $apiKey=null)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
{
|
7 |
+
$class = get_class();
|
8 |
+
return self::scopedConstructFrom($class, $values, $apiKey);
|
|
|
|
|
|
|
9 |
}
|
10 |
|
11 |
+
public function all($params=null)
|
12 |
{
|
13 |
$requestor = new Stripe_ApiRequestor($this->_apiKey);
|
14 |
+
list($response, $apiKey) = $requestor->request('get', $this['url'], $params);
|
|
|
|
|
|
|
|
|
|
|
15 |
return Stripe_Util::convertToStripeObject($response, $apiKey);
|
16 |
}
|
|
|
17 |
}
|
includes/lib/Stripe/Stripe/Object.php
CHANGED
@@ -2,28 +2,17 @@
|
|
2 |
|
3 |
class Stripe_Object implements ArrayAccess
|
4 |
{
|
5 |
-
|
6 |
-
* @var array Attributes that should not be sent to the API because they're
|
7 |
-
* not updatable (e.g. API key, ID).
|
8 |
-
*/
|
9 |
-
public static $permanentAttributes;
|
10 |
-
/**
|
11 |
-
* @var array Attributes that are nested but still updatable from the parent
|
12 |
-
* class's URL (e.g. metadata).
|
13 |
-
*/
|
14 |
-
public static $nestedUpdatableAttributes;
|
15 |
|
16 |
public static function init()
|
17 |
{
|
18 |
-
self::$
|
19 |
-
self::$nestedUpdatableAttributes = new Stripe_Util_Set(array('metadata'));
|
20 |
}
|
21 |
|
22 |
protected $_apiKey;
|
23 |
protected $_values;
|
24 |
protected $_unsavedValues;
|
25 |
protected $_transientValues;
|
26 |
-
protected $_retrieveOptions;
|
27 |
|
28 |
public function __construct($id=null, $apiKey=null)
|
29 |
{
|
@@ -31,16 +20,6 @@ class Stripe_Object implements ArrayAccess
|
|
31 |
$this->_values = array();
|
32 |
$this->_unsavedValues = new Stripe_Util_Set();
|
33 |
$this->_transientValues = new Stripe_Util_Set();
|
34 |
-
|
35 |
-
$this->_retrieveOptions = array();
|
36 |
-
if (is_array($id)) {
|
37 |
-
foreach ($id as $key => $value) {
|
38 |
-
if ($key != 'id')
|
39 |
-
$this->_retrieveOptions[$key] = $value;
|
40 |
-
}
|
41 |
-
$id = $id['id'];
|
42 |
-
}
|
43 |
-
|
44 |
if ($id)
|
45 |
$this->id = $id;
|
46 |
}
|
@@ -48,21 +27,9 @@ class Stripe_Object implements ArrayAccess
|
|
48 |
// Standard accessor magic methods
|
49 |
public function __set($k, $v)
|
50 |
{
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
.'We interpret empty strings as NULL in requests. '
|
55 |
-
.'You may set obj->'.$k.' = NULL to delete the property'
|
56 |
-
);
|
57 |
-
}
|
58 |
-
|
59 |
-
if (self::$nestedUpdatableAttributes->includes($k) && isset($this->$k) && is_array($v)) {
|
60 |
-
$this->$k->replaceWith($v);
|
61 |
-
} else {
|
62 |
-
// TODO: may want to clear from $_transientValues. (Won't be user-visible.)
|
63 |
-
$this->_values[$k] = $v;
|
64 |
-
}
|
65 |
-
if (!self::$permanentAttributes->includes($k))
|
66 |
$this->_unsavedValues->add($k);
|
67 |
}
|
68 |
public function __isset($k)
|
@@ -82,13 +49,7 @@ class Stripe_Object implements ArrayAccess
|
|
82 |
} else if ($this->_transientValues->includes($k)) {
|
83 |
$class = get_class($this);
|
84 |
$attrs = join(', ', array_keys($this->_values));
|
85 |
-
|
86 |
-
. "HINT: The $k attribute was set in the past, however. "
|
87 |
-
. "It was then wiped when refreshing the object "
|
88 |
-
. "with the result returned by Stripe's API, "
|
89 |
-
. "probably as a result of a save(). The attributes currently "
|
90 |
-
. "available on this object are: $attrs";
|
91 |
-
error_log($message);
|
92 |
return null;
|
93 |
} else {
|
94 |
$class = get_class($this);
|
@@ -102,7 +63,7 @@ class Stripe_Object implements ArrayAccess
|
|
102 |
{
|
103 |
$this->$k = $v;
|
104 |
}
|
105 |
-
|
106 |
public function offsetExists($k)
|
107 |
{
|
108 |
return array_key_exists($k, $this->_values);
|
@@ -117,20 +78,7 @@ class Stripe_Object implements ArrayAccess
|
|
117 |
return array_key_exists($k, $this->_values) ? $this->_values[$k] : null;
|
118 |
}
|
119 |
|
120 |
-
public
|
121 |
-
{
|
122 |
-
return array_keys($this->_values);
|
123 |
-
}
|
124 |
-
|
125 |
-
/**
|
126 |
-
* This unfortunately needs to be public to be used in Util.php
|
127 |
-
*
|
128 |
-
* @param Stripe_Object $class
|
129 |
-
* @param array $values
|
130 |
-
* @param string|null $apiKey
|
131 |
-
*
|
132 |
-
* @return Stripe_Object The object constructed from the given values.
|
133 |
-
*/
|
134 |
public static function scopedConstructFrom($class, $values, $apiKey=null)
|
135 |
{
|
136 |
$obj = new $class(isset($values['id']) ? $values['id'] : null, $apiKey);
|
@@ -138,30 +86,15 @@ class Stripe_Object implements ArrayAccess
|
|
138 |
return $obj;
|
139 |
}
|
140 |
|
141 |
-
/**
|
142 |
-
* @param array $values
|
143 |
-
* @param string|null $apiKey
|
144 |
-
*
|
145 |
-
* @return Stripe_Object The object of the same class as $this constructed
|
146 |
-
* from the given values.
|
147 |
-
*/
|
148 |
public static function constructFrom($values, $apiKey=null)
|
149 |
{
|
150 |
-
$class = get_class(
|
151 |
return self::scopedConstructFrom($class, $values, $apiKey);
|
152 |
}
|
153 |
|
154 |
-
/**
|
155 |
-
* Refreshes this object using the provided values.
|
156 |
-
*
|
157 |
-
* @param array $values
|
158 |
-
* @param string $apiKey
|
159 |
-
* @param boolean $partial Defaults to false.
|
160 |
-
*/
|
161 |
public function refreshFrom($values, $apiKey, $partial=false)
|
162 |
{
|
163 |
$this->_apiKey = $apiKey;
|
164 |
-
|
165 |
// Wipe old state before setting new. This is useful for e.g. updating a
|
166 |
// customer, where there is no persistent card parameter. Mark those values
|
167 |
// which don't persist as transient
|
@@ -171,64 +104,20 @@ class Stripe_Object implements ArrayAccess
|
|
171 |
$removed = array_diff(array_keys($this->_values), array_keys($values));
|
172 |
|
173 |
foreach ($removed as $k) {
|
174 |
-
if (self::$
|
175 |
continue;
|
176 |
unset($this->$k);
|
177 |
}
|
178 |
|
179 |
foreach ($values as $k => $v) {
|
180 |
-
if (self::$
|
181 |
continue;
|
182 |
-
|
183 |
-
if (self::$nestedUpdatableAttributes->includes($k) && is_array($v))
|
184 |
-
$this->_values[$k] = Stripe_Object::scopedConstructFrom('Stripe_AttachedObject', $v, $apiKey);
|
185 |
-
else
|
186 |
-
$this->_values[$k] = Stripe_Util::convertToStripeObject($v, $apiKey);
|
187 |
-
|
188 |
$this->_transientValues->discard($k);
|
189 |
$this->_unsavedValues->discard($k);
|
190 |
}
|
191 |
}
|
192 |
|
193 |
-
/**
|
194 |
-
* @return array A recursive mapping of attributes to values for this object,
|
195 |
-
* including the proper value for deleted attributes.
|
196 |
-
*/
|
197 |
-
public function serializeParameters()
|
198 |
-
{
|
199 |
-
$params = array();
|
200 |
-
if ($this->_unsavedValues) {
|
201 |
-
foreach ($this->_unsavedValues->toArray() as $k) {
|
202 |
-
$v = $this->$k;
|
203 |
-
if ($v === NULL) {
|
204 |
-
$v = '';
|
205 |
-
}
|
206 |
-
$params[$k] = $v;
|
207 |
-
}
|
208 |
-
}
|
209 |
-
|
210 |
-
// Get nested updates.
|
211 |
-
foreach (self::$nestedUpdatableAttributes->toArray() as $property) {
|
212 |
-
if (isset($this->$property) && $this->$property instanceOf Stripe_Object) {
|
213 |
-
$params[$property] = $this->$property->serializeParameters();
|
214 |
-
}
|
215 |
-
}
|
216 |
-
return $params;
|
217 |
-
}
|
218 |
-
|
219 |
-
// Pretend to have late static bindings, even in PHP 5.2
|
220 |
-
protected function _lsb($method)
|
221 |
-
{
|
222 |
-
$class = get_class($this);
|
223 |
-
$args = array_slice(func_get_args(), 1);
|
224 |
-
return call_user_func_array(array($class, $method), $args);
|
225 |
-
}
|
226 |
-
protected static function _scopedLsb($class, $method)
|
227 |
-
{
|
228 |
-
$args = array_slice(func_get_args(), 2);
|
229 |
-
return call_user_func_array(array($class, $method), $args);
|
230 |
-
}
|
231 |
-
|
232 |
public function __toJSON()
|
233 |
{
|
234 |
if (defined('JSON_PRETTY_PRINT'))
|
2 |
|
3 |
class Stripe_Object implements ArrayAccess
|
4 |
{
|
5 |
+
public static $_permanentAttributes;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
|
7 |
public static function init()
|
8 |
{
|
9 |
+
self::$_permanentAttributes = new Stripe_Util_Set(array('_apiKey'));
|
|
|
10 |
}
|
11 |
|
12 |
protected $_apiKey;
|
13 |
protected $_values;
|
14 |
protected $_unsavedValues;
|
15 |
protected $_transientValues;
|
|
|
16 |
|
17 |
public function __construct($id=null, $apiKey=null)
|
18 |
{
|
20 |
$this->_values = array();
|
21 |
$this->_unsavedValues = new Stripe_Util_Set();
|
22 |
$this->_transientValues = new Stripe_Util_Set();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
if ($id)
|
24 |
$this->id = $id;
|
25 |
}
|
27 |
// Standard accessor magic methods
|
28 |
public function __set($k, $v)
|
29 |
{
|
30 |
+
// TODO: may want to clear from $_transientValues. (Won't be user-visible.)
|
31 |
+
$this->_values[$k] = $v;
|
32 |
+
if (!self::$_permanentAttributes->includes($k))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
$this->_unsavedValues->add($k);
|
34 |
}
|
35 |
public function __isset($k)
|
49 |
} else if ($this->_transientValues->includes($k)) {
|
50 |
$class = get_class($this);
|
51 |
$attrs = join(', ', array_keys($this->_values));
|
52 |
+
error_log("Stripe Notice: Undefined property of $class instance: $k. HINT: The $k attribute was set in the past, however. It was then wiped when refreshing the object with the result returned by Stripe's API, probably as a result of a save(). The attributes currently available on this object are: $attrs");
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
return null;
|
54 |
} else {
|
55 |
$class = get_class($this);
|
63 |
{
|
64 |
$this->$k = $v;
|
65 |
}
|
66 |
+
|
67 |
public function offsetExists($k)
|
68 |
{
|
69 |
return array_key_exists($k, $this->_values);
|
78 |
return array_key_exists($k, $this->_values) ? $this->_values[$k] : null;
|
79 |
}
|
80 |
|
81 |
+
// This unfortunately needs to be public to be used in Util.php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
public static function scopedConstructFrom($class, $values, $apiKey=null)
|
83 |
{
|
84 |
$obj = new $class(isset($values['id']) ? $values['id'] : null, $apiKey);
|
86 |
return $obj;
|
87 |
}
|
88 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
public static function constructFrom($values, $apiKey=null)
|
90 |
{
|
91 |
+
$class = get_class();
|
92 |
return self::scopedConstructFrom($class, $values, $apiKey);
|
93 |
}
|
94 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
95 |
public function refreshFrom($values, $apiKey, $partial=false)
|
96 |
{
|
97 |
$this->_apiKey = $apiKey;
|
|
|
98 |
// Wipe old state before setting new. This is useful for e.g. updating a
|
99 |
// customer, where there is no persistent card parameter. Mark those values
|
100 |
// which don't persist as transient
|
104 |
$removed = array_diff(array_keys($this->_values), array_keys($values));
|
105 |
|
106 |
foreach ($removed as $k) {
|
107 |
+
if (self::$_permanentAttributes->includes($k))
|
108 |
continue;
|
109 |
unset($this->$k);
|
110 |
}
|
111 |
|
112 |
foreach ($values as $k => $v) {
|
113 |
+
if (self::$_permanentAttributes->includes($k))
|
114 |
continue;
|
115 |
+
$this->_values[$k] = Stripe_Util::convertToStripeObject($v, $apiKey);
|
|
|
|
|
|
|
|
|
|
|
116 |
$this->_transientValues->discard($k);
|
117 |
$this->_unsavedValues->discard($k);
|
118 |
}
|
119 |
}
|
120 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
121 |
public function __toJSON()
|
122 |
{
|
123 |
if (defined('JSON_PRETTY_PRINT'))
|
includes/lib/Stripe/Stripe/Plan.php
CHANGED
@@ -2,56 +2,36 @@
|
|
2 |
|
3 |
class Stripe_Plan extends Stripe_ApiResource
|
4 |
{
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
public static function retrieve($id, $apiKey=null)
|
12 |
{
|
13 |
$class = get_class();
|
14 |
return self::_scopedRetrieve($class, $id, $apiKey);
|
15 |
}
|
16 |
|
17 |
-
/**
|
18 |
-
* @param array|null $params
|
19 |
-
* @param string|null $apiKey
|
20 |
-
*
|
21 |
-
* @return Stripe_Plan The created plan.
|
22 |
-
*/
|
23 |
public static function create($params=null, $apiKey=null)
|
24 |
{
|
25 |
$class = get_class();
|
26 |
return self::_scopedCreate($class, $params, $apiKey);
|
27 |
}
|
28 |
|
29 |
-
/**
|
30 |
-
* @param array|null $params
|
31 |
-
*
|
32 |
-
* @return Stripe_Plan The deleted plan.
|
33 |
-
*/
|
34 |
public function delete($params=null)
|
35 |
{
|
36 |
$class = get_class();
|
37 |
return self::_scopedDelete($class, $params);
|
38 |
}
|
39 |
|
40 |
-
/**
|
41 |
-
* @return Stripe_Plan The saved plan.
|
42 |
-
*/
|
43 |
public function save()
|
44 |
{
|
45 |
$class = get_class();
|
46 |
return self::_scopedSave($class);
|
47 |
}
|
48 |
|
49 |
-
/**
|
50 |
-
* @param array|null $params
|
51 |
-
* @param string|null $apiKey
|
52 |
-
*
|
53 |
-
* @return array An array of Stripe_Plans.
|
54 |
-
*/
|
55 |
public static function all($params=null, $apiKey=null)
|
56 |
{
|
57 |
$class = get_class();
|
2 |
|
3 |
class Stripe_Plan extends Stripe_ApiResource
|
4 |
{
|
5 |
+
public static function constructFrom($values, $apiKey=null)
|
6 |
+
{
|
7 |
+
$class = get_class();
|
8 |
+
return self::scopedConstructFrom($class, $values, $apiKey);
|
9 |
+
}
|
10 |
+
|
11 |
public static function retrieve($id, $apiKey=null)
|
12 |
{
|
13 |
$class = get_class();
|
14 |
return self::_scopedRetrieve($class, $id, $apiKey);
|
15 |
}
|
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
public static function create($params=null, $apiKey=null)
|
18 |
{
|
19 |
$class = get_class();
|
20 |
return self::_scopedCreate($class, $params, $apiKey);
|
21 |
}
|
22 |
|
|
|
|
|
|
|
|
|
|
|
23 |
public function delete($params=null)
|
24 |
{
|
25 |
$class = get_class();
|
26 |
return self::_scopedDelete($class, $params);
|
27 |
}
|
28 |
|
|
|
|
|
|
|
29 |
public function save()
|
30 |
{
|
31 |
$class = get_class();
|
32 |
return self::_scopedSave($class);
|
33 |
}
|
34 |
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
public static function all($params=null, $apiKey=null)
|
36 |
{
|
37 |
$class = get_class();
|
includes/lib/Stripe/Stripe/Recipient.php
DELETED
@@ -1,75 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Stripe_Recipient extends Stripe_ApiResource
|
4 |
-
{
|
5 |
-
/**
|
6 |
-
* @param string $id The ID of the recipient to retrieve.
|
7 |
-
* @param string|null $apiKey
|
8 |
-
*
|
9 |
-
* @return Stripe_Recipient
|
10 |
-
*/
|
11 |
-
public static function retrieve($id, $apiKey=null)
|
12 |
-
{
|
13 |
-
$class = get_class();
|
14 |
-
return self::_scopedRetrieve($class, $id, $apiKey);
|
15 |
-
}
|
16 |
-
|
17 |
-
/**
|
18 |
-
* @param array|null $params
|
19 |
-
* @param string|null $apiKey
|
20 |
-
*
|
21 |
-
* @return array An array of Stripe_Recipients.
|
22 |
-
*/
|
23 |
-
public static function all($params=null, $apiKey=null)
|
24 |
-
{
|
25 |
-
$class = get_class();
|
26 |
-
return self::_scopedAll($class, $params, $apiKey);
|
27 |
-
}
|
28 |
-
|
29 |
-
/**
|
30 |
-
* @param array|null $params
|
31 |
-
* @param string|null $apiKey
|
32 |
-
*
|
33 |
-
* @return Stripe_Recipient The created recipient.
|
34 |
-
*/
|
35 |
-
public static function create($params=null, $apiKey=null)
|
36 |
-
{
|
37 |
-
$class = get_class();
|
38 |
-
return self::_scopedCreate($class, $params, $apiKey);
|
39 |
-
}
|
40 |
-
|
41 |
-
/**
|
42 |
-
* @return Stripe_Recipient The saved recipient.
|
43 |
-
*/
|
44 |
-
public function save()
|
45 |
-
{
|
46 |
-
$class = get_class();
|
47 |
-
return self::_scopedSave($class);
|
48 |
-
}
|
49 |
-
|
50 |
-
/**
|
51 |
-
* @param array|null $params
|
52 |
-
*
|
53 |
-
* @return Stripe_Recipient The deleted recipient.
|
54 |
-
*/
|
55 |
-
public function delete($params=null)
|
56 |
-
{
|
57 |
-
$class = get_class();
|
58 |
-
return self::_scopedDelete($class, $params);
|
59 |
-
}
|
60 |
-
|
61 |
-
|
62 |
-
/**
|
63 |
-
* @param array|null $params
|
64 |
-
*
|
65 |
-
* @return array An array of the recipient's Stripe_Transfers.
|
66 |
-
*/
|
67 |
-
public function transfers($params=null)
|
68 |
-
{
|
69 |
-
if (!$params)
|
70 |
-
$params = array();
|
71 |
-
$params['recipient'] = $this->id;
|
72 |
-
$transfers = Stripe_Transfer::all($params, $this->_apiKey);
|
73 |
-
return $transfers;
|
74 |
-
}
|
75 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/lib/Stripe/Stripe/SingletonApiResource.php
CHANGED
@@ -9,19 +9,12 @@ abstract class Stripe_SingletonApiResource extends Stripe_ApiResource
|
|
9 |
return $instance;
|
10 |
}
|
11 |
|
12 |
-
/**
|
13 |
-
* @param Stripe_SingletonApiResource $class
|
14 |
-
* @return string The endpoint associated with this singleton class.
|
15 |
-
*/
|
16 |
public static function classUrl($class)
|
17 |
{
|
18 |
$base = self::className($class);
|
19 |
return "/v1/${base}";
|
20 |
}
|
21 |
|
22 |
-
/**
|
23 |
-
* @return string The endpoint associated with this singleton API resource.
|
24 |
-
*/
|
25 |
public function instanceUrl()
|
26 |
{
|
27 |
$class = get_class($this);
|
9 |
return $instance;
|
10 |
}
|
11 |
|
|
|
|
|
|
|
|
|
12 |
public static function classUrl($class)
|
13 |
{
|
14 |
$base = self::className($class);
|
15 |
return "/v1/${base}";
|
16 |
}
|
17 |
|
|
|
|
|
|
|
18 |
public function instanceUrl()
|
19 |
{
|
20 |
$class = get_class($this);
|
includes/lib/Stripe/Stripe/Stripe.php
CHANGED
@@ -2,72 +2,26 @@
|
|
2 |
|
3 |
abstract class Stripe
|
4 |
{
|
5 |
-
/**
|
6 |
-
* @var string The Stripe API key to be used for requests.
|
7 |
-
*/
|
8 |
public static $apiKey;
|
9 |
-
/**
|
10 |
-
* @var string The base URL for the Stripe API.
|
11 |
-
*/
|
12 |
public static $apiBase = 'https://api.stripe.com';
|
13 |
-
/**
|
14 |
-
* @var string|null The version of the Stripe API to use for requests.
|
15 |
-
*/
|
16 |
-
public static $apiVersion = null;
|
17 |
-
/**
|
18 |
-
* @var boolean Defaults to true.
|
19 |
-
*/
|
20 |
public static $verifySslCerts = true;
|
21 |
-
const VERSION = '1.
|
22 |
|
23 |
-
/**
|
24 |
-
* @return string The API key used for requests.
|
25 |
-
*/
|
26 |
public static function getApiKey()
|
27 |
{
|
28 |
return self::$apiKey;
|
29 |
}
|
30 |
|
31 |
-
/**
|
32 |
-
* Sets the API key to be used for requests.
|
33 |
-
*
|
34 |
-
* @param string $apiKey
|
35 |
-
*/
|
36 |
public static function setApiKey($apiKey)
|
37 |
{
|
38 |
self::$apiKey = $apiKey;
|
39 |
}
|
40 |
|
41 |
-
|
42 |
-
* @return string The API version used for requests. null if we're using the
|
43 |
-
* latest version.
|
44 |
-
*/
|
45 |
-
public static function getApiVersion()
|
46 |
-
{
|
47 |
-
return self::$apiVersion;
|
48 |
-
}
|
49 |
-
|
50 |
-
/**
|
51 |
-
* @param string $apiVersion The API version to use for requests.
|
52 |
-
*/
|
53 |
-
public static function setApiVersion($apiVersion)
|
54 |
-
{
|
55 |
-
self::$apiVersion = $apiVersion;
|
56 |
-
}
|
57 |
-
|
58 |
-
/**
|
59 |
-
* @return boolean
|
60 |
-
*/
|
61 |
-
public static function getVerifySslCerts()
|
62 |
-
{
|
63 |
return self::$verifySslCerts;
|
64 |
}
|
65 |
|
66 |
-
|
67 |
-
* @param boolean $verify
|
68 |
-
*/
|
69 |
-
public static function setVerifySslCerts($verify)
|
70 |
-
{
|
71 |
self::$verifySslCerts = $verify;
|
72 |
}
|
73 |
}
|
2 |
|
3 |
abstract class Stripe
|
4 |
{
|
|
|
|
|
|
|
5 |
public static $apiKey;
|
|
|
|
|
|
|
6 |
public static $apiBase = 'https://api.stripe.com';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
public static $verifySslCerts = true;
|
8 |
+
const VERSION = '1.7.9';
|
9 |
|
|
|
|
|
|
|
10 |
public static function getApiKey()
|
11 |
{
|
12 |
return self::$apiKey;
|
13 |
}
|
14 |
|
|
|
|
|
|
|
|
|
|
|
15 |
public static function setApiKey($apiKey)
|
16 |
{
|
17 |
self::$apiKey = $apiKey;
|
18 |
}
|
19 |
|
20 |
+
public static function getVerifySslCerts() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
return self::$verifySslCerts;
|
22 |
}
|
23 |
|
24 |
+
public static function setVerifySslCerts($verify) {
|
|
|
|
|
|
|
|
|
25 |
self::$verifySslCerts = $verify;
|
26 |
}
|
27 |
}
|
includes/lib/Stripe/Stripe/Subscription.php
DELETED
@@ -1,58 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Stripe_Subscription extends Stripe_ApiResource
|
4 |
-
{
|
5 |
-
/**
|
6 |
-
* @return string The API URL for this Stripe subscription.
|
7 |
-
*/
|
8 |
-
public function instanceUrl()
|
9 |
-
{
|
10 |
-
$id = $this['id'];
|
11 |
-
$customer = $this['customer'];
|
12 |
-
$class = get_class($this);
|
13 |
-
if (!$id) {
|
14 |
-
throw new Stripe_InvalidRequestError(
|
15 |
-
"Could not determine which URL to request: " .
|
16 |
-
"class instance has invalid ID: $id",
|
17 |
-
null
|
18 |
-
);
|
19 |
-
}
|
20 |
-
$id = Stripe_ApiRequestor::utf8($id);
|
21 |
-
$customer = Stripe_ApiRequestor::utf8($customer);
|
22 |
-
|
23 |
-
$base = self::classUrl('Stripe_Customer');
|
24 |
-
$customerExtn = urlencode($customer);
|
25 |
-
$extn = urlencode($id);
|
26 |
-
return "$base/$customerExtn/subscriptions/$extn";
|
27 |
-
}
|
28 |
-
|
29 |
-
/**
|
30 |
-
* @param array|null $params
|
31 |
-
* @return Stripe_Subscription The deleted subscription.
|
32 |
-
*/
|
33 |
-
public function cancel($params=null)
|
34 |
-
{
|
35 |
-
$class = get_class();
|
36 |
-
return self::_scopedDelete($class, $params);
|
37 |
-
}
|
38 |
-
|
39 |
-
/**
|
40 |
-
* @return Stripe_Subscription The saved subscription.
|
41 |
-
*/
|
42 |
-
public function save()
|
43 |
-
{
|
44 |
-
$class = get_class();
|
45 |
-
return self::_scopedSave($class);
|
46 |
-
}
|
47 |
-
|
48 |
-
/**
|
49 |
-
* @return Stripe_Subscription The updated subscription.
|
50 |
-
*/
|
51 |
-
public function deleteDiscount()
|
52 |
-
{
|
53 |
-
$requestor = new Stripe_ApiRequestor($this->_apiKey);
|
54 |
-
$url = $this->instanceUrl() . '/discount';
|
55 |
-
list($response, $apiKey) = $requestor->request('delete', $url);
|
56 |
-
$this->refreshFrom(array('discount' => null), $apiKey, true);
|
57 |
-
}
|
58 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/lib/Stripe/Stripe/Token.php
CHANGED
@@ -2,24 +2,18 @@
|
|
2 |
|
3 |
class Stripe_Token extends Stripe_ApiResource
|
4 |
{
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
public static function retrieve($id, $apiKey=null)
|
12 |
{
|
13 |
$class = get_class();
|
14 |
return self::_scopedRetrieve($class, $id, $apiKey);
|
15 |
}
|
16 |
|
17 |
-
/**
|
18 |
-
* @param array|null $params
|
19 |
-
* @param string|null $apiKey
|
20 |
-
*
|
21 |
-
* @return Stripe_Coupon The created token.
|
22 |
-
*/
|
23 |
public static function create($params=null, $apiKey=null)
|
24 |
{
|
25 |
$class = get_class();
|
2 |
|
3 |
class Stripe_Token extends Stripe_ApiResource
|
4 |
{
|
5 |
+
public static function constructFrom($values, $apiKey=null)
|
6 |
+
{
|
7 |
+
$class = get_class();
|
8 |
+
return self::scopedConstructFrom($class, $values, $apiKey);
|
9 |
+
}
|
10 |
+
|
11 |
public static function retrieve($id, $apiKey=null)
|
12 |
{
|
13 |
$class = get_class();
|
14 |
return self::_scopedRetrieve($class, $id, $apiKey);
|
15 |
}
|
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
public static function create($params=null, $apiKey=null)
|
18 |
{
|
19 |
$class = get_class();
|
includes/lib/Stripe/Stripe/Transfer.php
CHANGED
@@ -2,49 +2,21 @@
|
|
2 |
|
3 |
class Stripe_Transfer extends Stripe_ApiResource
|
4 |
{
|
5 |
-
|
6 |
-
* @param string $id The ID of the transfer to retrieve.
|
7 |
-
* @param string|null $apiKey
|
8 |
-
*
|
9 |
-
* @return Stripe_Transfer
|
10 |
-
*/
|
11 |
-
public static function retrieve($id, $apiKey=null)
|
12 |
{
|
13 |
$class = get_class();
|
14 |
-
return self::
|
15 |
}
|
16 |
|
17 |
-
|
18 |
-
* @param array|null $params
|
19 |
-
* @param string|null $apiKey
|
20 |
-
*
|
21 |
-
* @return array An array of Stripe_Transfers.
|
22 |
-
*/
|
23 |
-
public static function all($params=null, $apiKey=null)
|
24 |
-
{
|
25 |
-
$class = get_class();
|
26 |
-
return self::_scopedAll($class, $params, $apiKey);
|
27 |
-
}
|
28 |
-
|
29 |
-
/**
|
30 |
-
* @param array|null $params
|
31 |
-
* @param string|null $apiKey
|
32 |
-
*
|
33 |
-
* @return Stripe_Transfer The created transfer.
|
34 |
-
*/
|
35 |
-
public static function create($params=null, $apiKey=null)
|
36 |
{
|
37 |
$class = get_class();
|
38 |
-
return self::
|
39 |
}
|
40 |
|
41 |
-
|
42 |
-
* @return Stripe_Transfer The saved transfer.
|
43 |
-
*/
|
44 |
-
public function save()
|
45 |
{
|
46 |
$class = get_class();
|
47 |
-
return self::
|
48 |
}
|
49 |
-
|
50 |
}
|
2 |
|
3 |
class Stripe_Transfer extends Stripe_ApiResource
|
4 |
{
|
5 |
+
public static function constructFrom($values, $apiKey=null)
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
{
|
7 |
$class = get_class();
|
8 |
+
return self::scopedConstructFrom($class, $values, $apiKey);
|
9 |
}
|
10 |
|
11 |
+
public static function retrieve($id, $apiKey=null)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
{
|
13 |
$class = get_class();
|
14 |
+
return self::_scopedRetrieve($class, $id, $apiKey);
|
15 |
}
|
16 |
|
17 |
+
public static function all($params=null, $apiKey=null)
|
|
|
|
|
|
|
18 |
{
|
19 |
$class = get_class();
|
20 |
+
return self::_scopedAll($class, $params, $apiKey);
|
21 |
}
|
|
|
22 |
}
|
includes/lib/Stripe/Stripe/Util.php
CHANGED
@@ -2,18 +2,11 @@
|
|
2 |
|
3 |
abstract class Stripe_Util
|
4 |
{
|
5 |
-
/**
|
6 |
-
* Whether the provided array (or other) is a list rather than a dictionary.
|
7 |
-
*
|
8 |
-
* @param array|mixed $array
|
9 |
-
* @return boolean True if the given object is a list.
|
10 |
-
*/
|
11 |
public static function isList($array)
|
12 |
{
|
13 |
if (!is_array($array))
|
14 |
return false;
|
15 |
-
|
16 |
-
// TODO: generally incorrect, but it's correct given Stripe's response
|
17 |
foreach (array_keys($array) as $k) {
|
18 |
if (!is_numeric($k))
|
19 |
return false;
|
@@ -21,66 +14,45 @@ abstract class Stripe_Util
|
|
21 |
return true;
|
22 |
}
|
23 |
|
24 |
-
/**
|
25 |
-
* Recursively converts the PHP Stripe object to an array.
|
26 |
-
*
|
27 |
-
* @param array $values The PHP Stripe object to convert.
|
28 |
-
* @return array
|
29 |
-
*/
|
30 |
public static function convertStripeObjectToArray($values)
|
31 |
{
|
32 |
$results = array();
|
33 |
foreach ($values as $k => $v) {
|
34 |
// FIXME: this is an encapsulation violation
|
35 |
-
if ($k
|
36 |
continue;
|
37 |
}
|
38 |
if ($v instanceof Stripe_Object) {
|
39 |
$results[$k] = $v->__toArray(true);
|
40 |
-
}
|
|
|
41 |
$results[$k] = self::convertStripeObjectToArray($v);
|
42 |
-
}
|
|
|
43 |
$results[$k] = $v;
|
44 |
}
|
45 |
}
|
46 |
return $results;
|
47 |
}
|
48 |
|
49 |
-
/**
|
50 |
-
* Converts a response from the Stripe API to the corresponding PHP object.
|
51 |
-
*
|
52 |
-
* @param array $resp The response from the Stripe API.
|
53 |
-
* @param string $apiKey
|
54 |
-
* @return Stripe_Object|array
|
55 |
-
*/
|
56 |
public static function convertToStripeObject($resp, $apiKey)
|
57 |
{
|
58 |
-
$types = array(
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
'invoiceitem' => 'Stripe_InvoiceItem',
|
65 |
-
'event' => 'Stripe_Event',
|
66 |
-
'transfer' => 'Stripe_Transfer',
|
67 |
-
'plan' => 'Stripe_Plan',
|
68 |
-
'recipient' => 'Stripe_Recipient',
|
69 |
-
'subscription' => 'Stripe_Subscription'
|
70 |
-
);
|
71 |
if (self::isList($resp)) {
|
72 |
$mapped = array();
|
73 |
foreach ($resp as $i)
|
74 |
array_push($mapped, self::convertToStripeObject($i, $apiKey));
|
75 |
return $mapped;
|
76 |
} else if (is_array($resp)) {
|
77 |
-
if (isset($resp['object'])
|
78 |
-
&& is_string($resp['object'])
|
79 |
-
&& isset($types[$resp['object']])) {
|
80 |
$class = $types[$resp['object']];
|
81 |
-
|
82 |
$class = 'Stripe_Object';
|
83 |
-
}
|
84 |
return Stripe_Object::scopedConstructFrom($class, $resp, $apiKey);
|
85 |
} else {
|
86 |
return $resp;
|
2 |
|
3 |
abstract class Stripe_Util
|
4 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
public static function isList($array)
|
6 |
{
|
7 |
if (!is_array($array))
|
8 |
return false;
|
9 |
+
// TODO: this isn't actually correct in general, but it's correct given Stripe's responses
|
|
|
10 |
foreach (array_keys($array) as $k) {
|
11 |
if (!is_numeric($k))
|
12 |
return false;
|
14 |
return true;
|
15 |
}
|
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
public static function convertStripeObjectToArray($values)
|
18 |
{
|
19 |
$results = array();
|
20 |
foreach ($values as $k => $v) {
|
21 |
// FIXME: this is an encapsulation violation
|
22 |
+
if (Stripe_Object::$_permanentAttributes->includes($k)) {
|
23 |
continue;
|
24 |
}
|
25 |
if ($v instanceof Stripe_Object) {
|
26 |
$results[$k] = $v->__toArray(true);
|
27 |
+
}
|
28 |
+
else if (is_array($v)) {
|
29 |
$results[$k] = self::convertStripeObjectToArray($v);
|
30 |
+
}
|
31 |
+
else {
|
32 |
$results[$k] = $v;
|
33 |
}
|
34 |
}
|
35 |
return $results;
|
36 |
}
|
37 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
public static function convertToStripeObject($resp, $apiKey)
|
39 |
{
|
40 |
+
$types = array('charge' => 'Stripe_Charge',
|
41 |
+
'customer' => 'Stripe_Customer',
|
42 |
+
'list' => 'Stripe_List',
|
43 |
+
'invoice' => 'Stripe_Invoice',
|
44 |
+
'invoiceitem' => 'Stripe_InvoiceItem', 'event' => 'Stripe_Event',
|
45 |
+
'transfer' => 'Stripe_Transfer');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
if (self::isList($resp)) {
|
47 |
$mapped = array();
|
48 |
foreach ($resp as $i)
|
49 |
array_push($mapped, self::convertToStripeObject($i, $apiKey));
|
50 |
return $mapped;
|
51 |
} else if (is_array($resp)) {
|
52 |
+
if (isset($resp['object']) && is_string($resp['object']) && isset($types[$resp['object']]))
|
|
|
|
|
53 |
$class = $types[$resp['object']];
|
54 |
+
else
|
55 |
$class = 'Stripe_Object';
|
|
|
56 |
return Stripe_Object::scopedConstructFrom($class, $resp, $apiKey);
|
57 |
} else {
|
58 |
return $resp;
|
includes/lib/Twocheckout/Twocheckout.php
DELETED
@@ -1,31 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
abstract class Twocheckout
|
4 |
-
{
|
5 |
-
public static $user;
|
6 |
-
public static $pass;
|
7 |
-
public static $format = "json";
|
8 |
-
public static $apiBaseUrl = "https://www.2checkout.com/api/";
|
9 |
-
public static $error;
|
10 |
-
const VERSION = '0.1.2';
|
11 |
-
|
12 |
-
static function setCredentials($user, $pass)
|
13 |
-
{
|
14 |
-
self::$user = $user;
|
15 |
-
self::$pass = $pass;
|
16 |
-
}
|
17 |
-
}
|
18 |
-
|
19 |
-
require(dirname(__FILE__) . '/Twocheckout/Api/TwocheckoutAccount.php');
|
20 |
-
require(dirname(__FILE__) . '/Twocheckout/Api/TwocheckoutPayment.php');
|
21 |
-
require(dirname(__FILE__) . '/Twocheckout/Api/TwocheckoutApi.php');
|
22 |
-
require(dirname(__FILE__) . '/Twocheckout/Api/TwocheckoutSale.php');
|
23 |
-
require(dirname(__FILE__) . '/Twocheckout/Api/TwocheckoutProduct.php');
|
24 |
-
require(dirname(__FILE__) . '/Twocheckout/Api/TwocheckoutCoupon.php');
|
25 |
-
require(dirname(__FILE__) . '/Twocheckout/Api/TwocheckoutOption.php');
|
26 |
-
require(dirname(__FILE__) . '/Twocheckout/Api/TwocheckoutUtil.php');
|
27 |
-
require(dirname(__FILE__) . '/Twocheckout/Api/TwocheckoutError.php');
|
28 |
-
require(dirname(__FILE__) . '/Twocheckout/TwocheckoutReturn.php');
|
29 |
-
require(dirname(__FILE__) . '/Twocheckout/TwocheckoutNotification.php');
|
30 |
-
require(dirname(__FILE__) . '/Twocheckout/TwocheckoutCharge.php');
|
31 |
-
require(dirname(__FILE__) . '/Twocheckout/TwocheckoutMessage.php');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/lib/Twocheckout/Twocheckout/Api/TwocheckoutAccount.php
DELETED
@@ -1,25 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Twocheckout_Company extends Twocheckout
|
4 |
-
{
|
5 |
-
|
6 |
-
public static function retrieve($format='json')
|
7 |
-
{
|
8 |
-
$request = new Twocheckout_Api_Requester();
|
9 |
-
$urlSuffix = 'acct/detail_company_info';
|
10 |
-
$result = $request->do_call($urlSuffix);
|
11 |
-
return Twocheckout_Util::return_resp($result, $format);
|
12 |
-
}
|
13 |
-
}
|
14 |
-
|
15 |
-
class Twocheckout_Contact extends Twocheckout
|
16 |
-
{
|
17 |
-
|
18 |
-
public static function retrieve($format='json')
|
19 |
-
{
|
20 |
-
$request = new Twocheckout_Api_Requester();
|
21 |
-
$urlSuffix = 'acct/detail_contact_info';
|
22 |
-
$result = $request->do_call($urlSuffix);
|
23 |
-
return Twocheckout_Util::return_resp($result, $format);
|
24 |
-
}
|
25 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/lib/Twocheckout/Twocheckout/Api/TwocheckoutApi.php
DELETED
@@ -1,33 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Twocheckout_Api_Requester
|
4 |
-
{
|
5 |
-
public $apiBaseUrl;
|
6 |
-
private $user;
|
7 |
-
private $pass;
|
8 |
-
|
9 |
-
function __construct() {
|
10 |
-
$this->user = Twocheckout::$user;
|
11 |
-
$this->pass = Twocheckout::$pass;
|
12 |
-
$this->apiBaseUrl = Twocheckout::$apiBaseUrl;
|
13 |
-
}
|
14 |
-
|
15 |
-
function do_call($urlSuffix, $data=array())
|
16 |
-
{
|
17 |
-
$url = $this->apiBaseUrl . $urlSuffix;
|
18 |
-
$ch = curl_init($url);
|
19 |
-
curl_setopt($ch, CURLOPT_HEADER, 0);
|
20 |
-
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Accept: application/json"));
|
21 |
-
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
|
22 |
-
curl_setopt($ch, CURLOPT_USERAGENT, "2Checkout PHP/0.1.0%s");
|
23 |
-
curl_setopt($ch, CURLOPT_POST, 0);
|
24 |
-
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
25 |
-
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
|
26 |
-
curl_setopt($ch, CURLOPT_USERPWD, "{$this->user}:{$this->pass}");
|
27 |
-
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
|
28 |
-
$resp = curl_exec($ch);
|
29 |
-
curl_close($ch);
|
30 |
-
return $resp;
|
31 |
-
}
|
32 |
-
|
33 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/lib/Twocheckout/Twocheckout/Api/TwocheckoutCoupon.php
DELETED
@@ -1,42 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Twocheckout_Coupon extends Twocheckout
|
4 |
-
{
|
5 |
-
|
6 |
-
public static function create($params=array(), $format='json')
|
7 |
-
{
|
8 |
-
$request = new Twocheckout_Api_Requester();
|
9 |
-
$urlSuffix = 'products/create_coupon';
|
10 |
-
$result = $request->do_call($urlSuffix, $params);
|
11 |
-
return Twocheckout_Util::return_resp($result, $format);
|
12 |
-
}
|
13 |
-
|
14 |
-
public static function retrieve($params=array(), $format='json')
|
15 |
-
{
|
16 |
-
$request = new Twocheckout_Api_Requester();
|
17 |
-
if(array_key_exists("coupon_code",$params)) {
|
18 |
-
$urlSuffix = 'products/detail_coupon';
|
19 |
-
} else {
|
20 |
-
$urlSuffix = 'products/list_coupons';
|
21 |
-
}
|
22 |
-
$result = $request->do_call($urlSuffix, $params);
|
23 |
-
return Twocheckout_Util::return_resp($result, $format);
|
24 |
-
}
|
25 |
-
|
26 |
-
public static function update($params=array(), $format='json')
|
27 |
-
{
|
28 |
-
$request = new Twocheckout_Api_Requester();
|
29 |
-
$urlSuffix = 'products/update_coupon';
|
30 |
-
$result = $request->do_call($urlSuffix, $params);
|
31 |
-
return Twocheckout_Util::return_resp($result, $format);
|
32 |
-
}
|
33 |
-
|
34 |
-
public static function delete($params=array(), $format='json')
|
35 |
-
{
|
36 |
-
$request = new Twocheckout_Api_Requester();
|
37 |
-
$urlSuffix = 'products/delete_coupon';
|
38 |
-
$result = $request->do_call($urlSuffix, $params);
|
39 |
-
return Twocheckout_Util::return_resp($result, $format);
|
40 |
-
}
|
41 |
-
|
42 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/lib/Twocheckout/Twocheckout/Api/TwocheckoutError.php
DELETED
@@ -1,14 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Twocheckout_Error extends Exception
|
4 |
-
{
|
5 |
-
public function __construct($message, $code = 0, Exception $previous = null)
|
6 |
-
{
|
7 |
-
parent::__construct($message, $code, $previous);
|
8 |
-
}
|
9 |
-
|
10 |
-
public function __toString()
|
11 |
-
{
|
12 |
-
return __CLASS__ . ": [{$this->code}]: {$this->message}\n";
|
13 |
-
}
|
14 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/lib/Twocheckout/Twocheckout/Api/TwocheckoutOption.php
DELETED
@@ -1,42 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Twocheckout_Option extends Twocheckout
|
4 |
-
{
|
5 |
-
|
6 |
-
public static function create($params=array(), $format='json')
|
7 |
-
{
|
8 |
-
$request = new Twocheckout_Api_Requester();
|
9 |
-
$urlSuffix = 'products/create_option';
|
10 |
-
$result = $request->do_call($urlSuffix, $params);
|
11 |
-
return Twocheckout_Util::return_resp($result, $format);
|
12 |
-
}
|
13 |
-
|
14 |
-
public static function retrieve($params=array(), $format='json')
|
15 |
-
{
|
16 |
-
$request = new Twocheckout_Api_Requester();
|
17 |
-
if(array_key_exists("option_id",$params)) {
|
18 |
-
$urlSuffix = 'products/detail_option';
|
19 |
-
} else {
|
20 |
-
$urlSuffix = 'products/list_options';
|
21 |
-
}
|
22 |
-
$result = $request->do_call($urlSuffix, $params);
|
23 |
-
return Twocheckout_Util::return_resp($result, $format);
|
24 |
-
}
|
25 |
-
|
26 |
-
public static function update($params=array(), $format='json')
|
27 |
-
{
|
28 |
-
$request = new Twocheckout_Api_Requester();
|
29 |
-
$urlSuffix = 'products/update_option';
|
30 |
-
$result = $request->do_call($urlSuffix, $params);
|
31 |
-
return Twocheckout_Util::return_resp($result, $format);
|
32 |
-
}
|
33 |
-
|
34 |
-
public static function delete($params=array(), $format='json')
|
35 |
-
{
|
36 |
-
$request = new Twocheckout_Api_Requester();
|
37 |
-
$urlSuffix = 'products/delete_option';
|
38 |
-
$result = $request->do_call($urlSuffix, $params);
|
39 |
-
return Twocheckout_Util::return_resp($result, $format);
|
40 |
-
}
|
41 |
-
|
42 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/lib/Twocheckout/Twocheckout/Api/TwocheckoutPayment.php
DELETED
@@ -1,24 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Twocheckout_Payment extends Twocheckout
|
4 |
-
{
|
5 |
-
|
6 |
-
public static function retrieve($format='json')
|
7 |
-
{
|
8 |
-
$request = new Twocheckout_Api_Requester();
|
9 |
-
$urlSuffix = 'acct/list_payments';
|
10 |
-
$result = $request->do_call($urlSuffix);
|
11 |
-
$response = Twocheckout_Util::return_resp($result, $format);
|
12 |
-
return $response;
|
13 |
-
}
|
14 |
-
|
15 |
-
public static function pending($format='json')
|
16 |
-
{
|
17 |
-
$request = new Twocheckout_Api_Requester();
|
18 |
-
$urlSuffix = 'acct/detail_pending_payment';
|
19 |
-
$result = $request->do_call($urlSuffix);
|
20 |
-
$response = Twocheckout_Util::return_resp($result, $format);
|
21 |
-
return $response;
|
22 |
-
}
|
23 |
-
|
24 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/lib/Twocheckout/Twocheckout/Api/TwocheckoutProduct.php
DELETED
@@ -1,42 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Twocheckout_Product extends Twocheckout
|
4 |
-
{
|
5 |
-
|
6 |
-
public static function create($params=array(), $format='json')
|
7 |
-
{
|
8 |
-
$request = new Twocheckout_Api_Requester();
|
9 |
-
$urlSuffix = 'products/create_product';
|
10 |
-
$result = $request->do_call($urlSuffix, $params);
|
11 |
-
return Twocheckout_Util::return_resp($result, $format);
|
12 |
-
}
|
13 |
-
|
14 |
-
public static function retrieve($params=array(), $format='json')
|
15 |
-
{
|
16 |
-
$request = new Twocheckout_Api_Requester();
|
17 |
-
if(array_key_exists("product_id",$params)) {
|
18 |
-
$urlSuffix = 'products/detail_product';
|
19 |
-
} else {
|
20 |
-
$urlSuffix = 'products/list_products';
|
21 |
-
}
|
22 |
-
$result = $request->do_call($urlSuffix, $params);
|
23 |
-
return Twocheckout_Util::return_resp($result, $format);
|
24 |
-
}
|
25 |
-
|
26 |
-
public static function update($params=array(), $format='json')
|
27 |
-
{
|
28 |
-
$request = new Twocheckout_Api_Requester();
|
29 |
-
$urlSuffix = 'products/update_product';
|
30 |
-
$result = $request->do_call($urlSuffix, $params);
|
31 |
-
return Twocheckout_Util::return_resp($result, $format);
|
32 |
-
}
|
33 |
-
|
34 |
-
public static function delete($params=array(), $format='json')
|
35 |
-
{
|
36 |
-
$request = new Twocheckout_Api_Requester();
|
37 |
-
$urlSuffix = 'products/delete_product';
|
38 |
-
$result = $request->do_call($urlSuffix, $params);
|
39 |
-
return Twocheckout_Util::return_resp($result, $format);
|
40 |
-
}
|
41 |
-
|
42 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/lib/Twocheckout/Twocheckout/Api/TwocheckoutSale.php
DELETED
@@ -1,104 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Twocheckout_Sale extends Twocheckout
|
4 |
-
{
|
5 |
-
|
6 |
-
public static function retrieve($params=array(), $format='json')
|
7 |
-
{
|
8 |
-
$request = new Twocheckout_Api_Requester();
|
9 |
-
if(array_key_exists("sale_id",$params) || array_key_exists("invoice_id",$params)) {
|
10 |
-
$urlSuffix = 'sales/detail_sale';
|
11 |
-
} else {
|
12 |
-
$urlSuffix = 'sales/list_sales';
|
13 |
-
}
|
14 |
-
$result = $request->do_call($urlSuffix, $params);
|
15 |
-
return Twocheckout_Util::return_resp($result, $format);
|
16 |
-
}
|
17 |
-
|
18 |
-
public static function refund($params=array(), $format='json') {
|
19 |
-
$request = new Twocheckout_Api_Requester();
|
20 |
-
if(array_key_exists("lineitem_id",$params)) {
|
21 |
-
$urlSuffix ='sales/refund_lineitem';
|
22 |
-
$result = $request->do_call($urlSuffix, $params);
|
23 |
-
} elseif(array_key_exists("invoice_id",$params) || array_key_exists("sale_id",$params)) {
|
24 |
-
$urlSuffix ='sales/refund_invoice';
|
25 |
-
$result = $request->do_call($urlSuffix, $params);
|
26 |
-
} else {
|
27 |
-
$result = Twocheckout_Message::message('Error', 'You must pass a sale_id, invoice_id or lineitem_id to use this method.');
|
28 |
-
}
|
29 |
-
return Twocheckout_Util::return_resp($result, $format);
|
30 |
-
}
|
31 |
-
|
32 |
-
public static function stop($params=array(), $format='json') {
|
33 |
-
$request = new Twocheckout_Api_Requester();
|
34 |
-
$urlSuffix ='sales/stop_lineitem_recurring';
|
35 |
-
if(array_key_exists("lineitem_id",$params)) {
|
36 |
-
$result = $request->do_call($urlSuffix, $params);
|
37 |
-
} elseif(array_key_exists("sale_id",$params)) {
|
38 |
-
$result = Twocheckout_Sale::retrieve($params, 'array');
|
39 |
-
$lineitemData = Twocheckout_Util::get_recurring_lineitems($result);
|
40 |
-
if (isset($lineitemData[0])) {
|
41 |
-
$i = 0;
|
42 |
-
$stoppedLineitems = array();
|
43 |
-
foreach( $lineitemData as $value )
|
44 |
-
{
|
45 |
-
$params = array('lineitem_id' => $value);
|
46 |
-
$result = $request->do_call($urlSuffix, $params);
|
47 |
-
$result = json_decode($result, true);
|
48 |
-
if ($result['response_code'] == "OK") {
|
49 |
-
$stoppedLineitems[$i] = $value;
|
50 |
-
}
|
51 |
-
$i++;
|
52 |
-
}
|
53 |
-
$result = Twocheckout_Message::message('OK', $stoppedLineitems);
|
54 |
-
} else {
|
55 |
-
throw new Twocheckout_Error("No recurring lineitems to stop.");
|
56 |
-
}
|
57 |
-
} else {
|
58 |
-
throw new Twocheckout_Error('You must pass a sale_id or lineitem_id to use this method.');
|
59 |
-
}
|
60 |
-
return Twocheckout_Util::return_resp($result, $format);
|
61 |
-
}
|
62 |
-
|
63 |
-
public static function active($params=array(), $format='json') {
|
64 |
-
if(array_key_exists("sale_id",$params)) {
|
65 |
-
$result = Twocheckout_Sale::retrieve($params);
|
66 |
-
$array = Twocheckout_Util::return_resp($result, 'array');
|
67 |
-
$lineitemData = Twocheckout_Util::get_recurring_lineitems($array);
|
68 |
-
if (isset($lineitemData[0])) {
|
69 |
-
$result = Twocheckout_Message::message('OK', $lineitemData);
|
70 |
-
if ($format == 'array') {
|
71 |
-
return Twocheckout_Util::return_resp($result, $format);
|
72 |
-
} else {
|
73 |
-
return Twocheckout_Util::return_resp($result, 'force_json');
|
74 |
-
}
|
75 |
-
} else {
|
76 |
-
throw new Twocheckout_Error("No active recurring lineitems.");
|
77 |
-
}
|
78 |
-
} else {
|
79 |
-
throw new Twocheckout_Error("You must pass a sale_id to use this method.");
|
80 |
-
}
|
81 |
-
}
|
82 |
-
|
83 |
-
public static function comment($params=array(), $format='json') {
|
84 |
-
$request = new Twocheckout_Api_Requester();
|
85 |
-
$urlSuffix ='sales/create_comment';
|
86 |
-
$result = $request->do_call($urlSuffix, $params);
|
87 |
-
return Twocheckout_Util::return_resp($result, $format);
|
88 |
-
}
|
89 |
-
|
90 |
-
public static function ship($params=array(), $format='json') {
|
91 |
-
$request = new Twocheckout_Api_Requester();
|
92 |
-
$urlSuffix ='sales/mark_shipped';
|
93 |
-
$result = $request->do_call($urlSuffix, $params);
|
94 |
-
return Twocheckout_Util::return_resp($result, $format);
|
95 |
-
}
|
96 |
-
|
97 |
-
public static function reauth($params=array(), $format='json') {
|
98 |
-
$request = new Twocheckout_Api_Requester();
|
99 |
-
$urlSuffix ='sales/reauth';
|
100 |
-
$result = $request->do_call($urlSuffix, $params);
|
101 |
-
return Twocheckout_Util::return_resp($result, $format);
|
102 |
-
}
|
103 |
-
|
104 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/lib/Twocheckout/Twocheckout/Api/TwocheckoutUtil.php
DELETED
@@ -1,72 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Twocheckout_Util
|
4 |
-
{
|
5 |
-
|
6 |
-
static function return_resp($contents, $format) {
|
7 |
-
switch ($format) {
|
8 |
-
case "array":
|
9 |
-
$arrayObject = self::objectToArray($contents);
|
10 |
-
self::checkError($arrayObject);
|
11 |
-
return $arrayObject;
|
12 |
-
break;
|
13 |
-
case "force_json":
|
14 |
-
$arrayObject = self::objectToJson($contents);
|
15 |
-
return $arrayObject;
|
16 |
-
break;
|
17 |
-
default:
|
18 |
-
$arrayObject = self::objectToArray($contents);
|
19 |
-
self::checkError($arrayObject);
|
20 |
-
$jsonData = json_encode($contents);
|
21 |
-
return json_decode($jsonData);
|
22 |
-
}
|
23 |
-
}
|
24 |
-
|
25 |
-
public static function objectToArray($object)
|
26 |
-
{
|
27 |
-
$object = json_decode($object, true);
|
28 |
-
$array=array();
|
29 |
-
foreach($object as $member=>$data)
|
30 |
-
{
|
31 |
-
$array[$member]=$data;
|
32 |
-
}
|
33 |
-
return $array;
|
34 |
-
}
|
35 |
-
|
36 |
-
public static function objectToJson($object)
|
37 |
-
{
|
38 |
-
return json_encode($object);
|
39 |
-
}
|
40 |
-
|
41 |
-
public static function get_recurring_lineitems($saleDetail) {
|
42 |
-
$i = 0;
|
43 |
-
$invoiceData = array();
|
44 |
-
|
45 |
-
while (isset($saleDetail['sale']['invoices'][$i])) {
|
46 |
-
$invoiceData[$i] = $saleDetail['sale']['invoices'][$i];
|
47 |
-
$i++;
|
48 |
-
}
|
49 |
-
|
50 |
-
$invoice = max($invoiceData);
|
51 |
-
$i = 0;
|
52 |
-
$lineitemData = array();
|
53 |
-
|
54 |
-
while (isset($invoice['lineitems'][$i])) {
|
55 |
-
if ($invoice['lineitems'][$i]['billing']['recurring_status'] == "active") {
|
56 |
-
$lineitemData[$i] = $invoice['lineitems'][$i]['billing']['lineitem_id'];
|
57 |
-
}
|
58 |
-
$i++;
|
59 |
-
};
|
60 |
-
|
61 |
-
return $lineitemData;
|
62 |
-
|
63 |
-
}
|
64 |
-
|
65 |
-
public static function checkError($contents)
|
66 |
-
{
|
67 |
-
if (isset($contents['errors'])) {
|
68 |
-
throw new Twocheckout_Error($contents['errors'][0]['message']);
|
69 |
-
}
|
70 |
-
}
|
71 |
-
|
72 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/lib/Twocheckout/Twocheckout/TwocheckoutCharge.php
DELETED
@@ -1,61 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Twocheckout_Charge extends Twocheckout
|
4 |
-
{
|
5 |
-
|
6 |
-
public static function form($params, $type='Checkout')
|
7 |
-
{
|
8 |
-
echo '<form id="2checkout" action="https://www.2checkout.com/checkout/purchase" method="post">';
|
9 |
-
|
10 |
-
foreach ($params as $key => $value)
|
11 |
-
{
|
12 |
-
echo '<input type="hidden" name="'.$key.'" value="'.$value.'"/>';
|
13 |
-
}
|
14 |
-
if ($type == 'auto') {
|
15 |
-
echo '<input type="submit" value="Click here if you are not redirected automatically" /></form>';
|
16 |
-
echo '<script type="text/javascript">document.getElementById("2checkout").submit();</script>';
|
17 |
-
} else {
|
18 |
-
echo '<input type="submit" value="'.$type.'" />';
|
19 |
-
echo '</form>';
|
20 |
-
}
|
21 |
-
}
|
22 |
-
|
23 |
-
public static function direct($params, $type='Checkout')
|
24 |
-
{
|
25 |
-
echo '<form id="2checkout" action="https://www.2checkout.com/checkout/purchase" method="post">';
|
26 |
-
|
27 |
-
foreach ($params as $key => $value)
|
28 |
-
{
|
29 |
-
echo '<input type="hidden" name="'.$key.'" value="'.$value.'"/>';
|
30 |
-
}
|
31 |
-
|
32 |
-
if ($type == 'auto') {
|
33 |
-
echo '<input type="submit" value="Click here if the payment form does not open automatically." /></form>';
|
34 |
-
echo '<script type="text/javascript">
|
35 |
-
function submitForm() {
|
36 |
-
document.getElementById("tco_lightbox").style.display = "block";
|
37 |
-
document.getElementById("2checkout").submit();
|
38 |
-
}
|
39 |
-
setTimeout("submitForm()", 2000);
|
40 |
-
</script>';
|
41 |
-
} else {
|
42 |
-
echo '<input type="submit" value="'.$type.'" />';
|
43 |
-
echo '</form>';
|
44 |
-
}
|
45 |
-
|
46 |
-
echo '<script src="https://www.2checkout.com/static/checkout/javascript/direct.min.js"></script>';
|
47 |
-
}
|
48 |
-
|
49 |
-
public static function link($params)
|
50 |
-
{
|
51 |
-
$url = 'https://www.2checkout.com/checkout/purchase?'.http_build_query($params, '', '&');
|
52 |
-
return $url;
|
53 |
-
}
|
54 |
-
|
55 |
-
public static function redirect($params)
|
56 |
-
{
|
57 |
-
$url = 'https://www.2checkout.com/checkout/purchase?'.http_build_query($params, '', '&');
|
58 |
-
header("Location: $url");
|
59 |
-
}
|
60 |
-
|
61 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/lib/Twocheckout/Twocheckout/TwocheckoutMessage.php
DELETED
@@ -1,13 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Twocheckout_Message
|
4 |
-
{
|
5 |
-
public static function message($code, $message)
|
6 |
-
{
|
7 |
-
$response = array();
|
8 |
-
$response['response_code'] = $code;
|
9 |
-
$response['response_message'] = $message;
|
10 |
-
$response = json_encode($response);
|
11 |
-
return $response;
|
12 |
-
}
|
13 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/lib/Twocheckout/Twocheckout/TwocheckoutNotification.php
DELETED
@@ -1,20 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Twocheckout_Notification extends Twocheckout
|
4 |
-
{
|
5 |
-
|
6 |
-
public static function check($insMessage, $secretWord, $format='json')
|
7 |
-
{
|
8 |
-
$hashSid = $insMessage['vendor_id'];
|
9 |
-
$hashOrder = $insMessage['sale_id'];
|
10 |
-
$hashInvoice = $insMessage['invoice_id'];
|
11 |
-
$StringToHash = strtoupper(md5($hashOrder . $hashSid . $hashInvoice . $secretWord));
|
12 |
-
if ($StringToHash != $insMessage['md5_hash']) {
|
13 |
-
$result = Twocheckout_Message::message('Fail', 'Hash Mismatch');
|
14 |
-
} else {
|
15 |
-
$result = Twocheckout_Message::message('Success', 'Hash Matched');
|
16 |
-
}
|
17 |
-
return Twocheckout_Util::return_resp($result, $format);
|
18 |
-
}
|
19 |
-
|
20 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/lib/Twocheckout/Twocheckout/TwocheckoutReturn.php
DELETED
@@ -1,21 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Twocheckout_Return extends Twocheckout
|
4 |
-
{
|
5 |
-
|
6 |
-
public static function check($params=array(), $secretWord, $format='json')
|
7 |
-
{
|
8 |
-
$hashSecretWord = $secretWord;
|
9 |
-
$hashSid = $params['sid'];
|
10 |
-
$hashTotal = $params['total'];
|
11 |
-
$hashOrder = $params['order_number'];
|
12 |
-
$StringToHash = strtoupper(md5($hashSecretWord . $hashSid . $hashOrder . $hashTotal));
|
13 |
-
if ($StringToHash != $params['key']) {
|
14 |
-
$result = Twocheckout_Message::message('Fail', 'Hash Mismatch');
|
15 |
-
} else {
|
16 |
-
$result = Twocheckout_Message::message('Success', 'Hash Matched');
|
17 |
-
}
|
18 |
-
return Twocheckout_Util::return_resp($result, $format);
|
19 |
-
}
|
20 |
-
|
21 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/localization.php
CHANGED
@@ -3,12 +3,12 @@ function pmpro_load_textdomain()
|
|
3 |
{
|
4 |
//get the locale
|
5 |
$locale = apply_filters("plugin_locale", get_locale(), "pmpro");
|
6 |
-
$mofile = "pmpro-" . $locale . ".mo";
|
7 |
-
|
8 |
//paths to local (plugin) and global (WP) language files
|
9 |
-
$mofile_local = dirname(__FILE__)."
|
10 |
$mofile_global = WP_LANG_DIR . '/pmpro/' . $mofile;
|
11 |
-
|
12 |
//load global first
|
13 |
load_textdomain("pmpro", $mofile_global);
|
14 |
|
3 |
{
|
4 |
//get the locale
|
5 |
$locale = apply_filters("plugin_locale", get_locale(), "pmpro");
|
6 |
+
$mofile = "pmpro-" . $locale . ".mo";
|
7 |
+
|
8 |
//paths to local (plugin) and global (WP) language files
|
9 |
+
$mofile_local = dirname(plugin_basename(__FILE__))."/languages/" . $mofile;
|
10 |
$mofile_global = WP_LANG_DIR . '/pmpro/' . $mofile;
|
11 |
+
|
12 |
//load global first
|
13 |
load_textdomain("pmpro", $mofile_global);
|
14 |
|
includes/login.php
CHANGED
@@ -54,23 +54,15 @@ add_filter('wp_signup_location', 'pmpro_wp_signup_location');
|
|
54 |
|
55 |
//redirect from default login pages to PMPro
|
56 |
function pmpro_login_head()
|
57 |
-
{
|
58 |
$login_redirect = apply_filters("pmpro_login_redirect", true);
|
59 |
-
|
60 |
-
if((pmpro_is_login_page() || is_page("login") ||
|
61 |
-
class_exists("Theme_My_Login") && defined('Theme_My_Login::version') && version_compare(Theme_My_Login::version, "6.3") >= 0 && (Theme_My_Login::is_tml_page("register") || Theme_My_Login::is_tml_page("login"))
|
62 |
-
)
|
63 |
-
&& $login_redirect
|
64 |
-
)
|
65 |
{
|
66 |
//redirect registration page to levels page
|
67 |
-
if(
|
68 |
-
isset($_REQUEST['registration']) && $_REQUEST['registration'] == "disabled" ||
|
69 |
-
!is_admin() && class_exists("Theme_My_Login") && defined('Theme_My_Login::version') && version_compare(Theme_My_Login::version, "6.3") >= 0 && Theme_My_Login::is_tml_page("register")
|
70 |
-
)
|
71 |
{
|
72 |
//redirect to levels page unless filter is set.
|
73 |
-
$link = apply_filters("pmpro_register_redirect", pmpro_url("levels"));
|
74 |
if(!empty($link))
|
75 |
{
|
76 |
wp_redirect($link);
|
@@ -86,7 +78,7 @@ function pmpro_login_head()
|
|
86 |
//check for the login page id and redirect there if we're not there already
|
87 |
global $post;
|
88 |
|
89 |
-
if(
|
90 |
{
|
91 |
//an older version of TML stores it this way
|
92 |
if($GLOBALS['theme_my_login']->options['page_id'] !== $post->ID)
|
@@ -112,7 +104,7 @@ function pmpro_login_head()
|
|
112 |
exit;
|
113 |
}
|
114 |
}
|
115 |
-
elseif(class_exists("Theme_My_Login") &&
|
116 |
{
|
117 |
//TML > 6.3
|
118 |
$link = Theme_My_Login::get_page_link("login");
|
@@ -139,20 +131,4 @@ function pmpro_login_head()
|
|
139 |
}
|
140 |
}
|
141 |
add_action('wp', 'pmpro_login_head');
|
142 |
-
add_action('login_init', 'pmpro_login_head');
|
143 |
-
|
144 |
-
/*
|
145 |
-
If a redirect_to value is passed into /login/ and you are logged in already, just redirect there
|
146 |
-
|
147 |
-
@since 1.7.14
|
148 |
-
*/
|
149 |
-
function pmpro_redirect_to_logged_in()
|
150 |
-
{
|
151 |
-
if((pmpro_is_login_page() || is_page("login")) && !empty($_REQUEST['redirect_to']) && is_user_logged_in())
|
152 |
-
{
|
153 |
-
wp_redirect($_REQUEST['redirect_to']);
|
154 |
-
exit;
|
155 |
-
}
|
156 |
-
}
|
157 |
-
add_action("template_redirect", "pmpro_redirect_to_logged_in", 5);
|
158 |
-
add_action("login_init", "pmpro_redirect_to_logged_in", 5);
|
54 |
|
55 |
//redirect from default login pages to PMPro
|
56 |
function pmpro_login_head()
|
57 |
+
{
|
58 |
$login_redirect = apply_filters("pmpro_login_redirect", true);
|
59 |
+
if((pmpro_is_login_page() || is_page("login")) && $login_redirect)
|
|
|
|
|
|
|
|
|
|
|
60 |
{
|
61 |
//redirect registration page to levels page
|
62 |
+
if(isset($_REQUEST['action']) && $_REQUEST['action'] == "register" || isset($_REQUEST['registration']) && $_REQUEST['registration'] == "disabled")
|
|
|
|
|
|
|
63 |
{
|
64 |
//redirect to levels page unless filter is set.
|
65 |
+
$link = apply_filters("pmpro_register_redirect", pmpro_url("levels"));
|
66 |
if(!empty($link))
|
67 |
{
|
68 |
wp_redirect($link);
|
78 |
//check for the login page id and redirect there if we're not there already
|
79 |
global $post;
|
80 |
|
81 |
+
if(is_array($GLOBALS['theme_my_login']->options))
|
82 |
{
|
83 |
//an older version of TML stores it this way
|
84 |
if($GLOBALS['theme_my_login']->options['page_id'] !== $post->ID)
|
104 |
exit;
|
105 |
}
|
106 |
}
|
107 |
+
elseif(class_exists("Theme_My_Login") && version_compare(Theme_My_Login::version, "6.3") >= 0)
|
108 |
{
|
109 |
//TML > 6.3
|
110 |
$link = Theme_My_Login::get_page_link("login");
|
131 |
}
|
132 |
}
|
133 |
add_action('wp', 'pmpro_login_head');
|
134 |
+
add_action('login_init', 'pmpro_login_head');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/metaboxes.php
CHANGED
@@ -96,8 +96,8 @@ function pmpro_page_save($post_id)
|
|
96 |
//wrapper to add meta boxes
|
97 |
function pmpro_page_meta_wrapper()
|
98 |
{
|
99 |
-
add_meta_box('pmpro_page_meta',
|
100 |
-
add_meta_box('pmpro_page_meta',
|
101 |
}
|
102 |
if (is_admin())
|
103 |
{
|
96 |
//wrapper to add meta boxes
|
97 |
function pmpro_page_meta_wrapper()
|
98 |
{
|
99 |
+
add_meta_box('pmpro_page_meta', _x('Require Membership', 'metabox heading', 'pmpro'), 'pmpro_page_meta', 'page', 'side');
|
100 |
+
add_meta_box('pmpro_page_meta', _x('Require Membership', 'metabox heading', 'pmpro'), 'pmpro_page_meta', 'post', 'side');
|
101 |
}
|
102 |
if (is_admin())
|
103 |
{
|
includes/notifications.php
CHANGED
@@ -12,16 +12,10 @@ function pmpro_notifications()
|
|
12 |
if(empty($pmpro_notification))
|
13 |
{
|
14 |
if(is_ssl())
|
15 |
-
|
16 |
-
$remote_notification = wp_remote_get("https://www.paidmembershipspro.com/notifications/?v=" . PMPRO_VERSION);
|
17 |
-
}
|
18 |
else
|
19 |
-
|
20 |
-
|
21 |
-
}
|
22 |
-
|
23 |
-
$pmpro_notification = wp_remote_retrieve_body($remote_notification);
|
24 |
-
|
25 |
set_transient("pmpro_notification_" . PMPRO_VERSION, $pmpro_notification, 86400);
|
26 |
}
|
27 |
|
12 |
if(empty($pmpro_notification))
|
13 |
{
|
14 |
if(is_ssl())
|
15 |
+
$pmpro_notification = wp_remote_retrieve_body(wp_remote_get("https://www.paidmembershipspro.com/notifications/?v=" . PMPRO_VERSION));
|
|
|
|
|
16 |
else
|
17 |
+
$pmpro_notification = wp_remote_retrieve_body(wp_remote_get("http://www.paidmembershipspro.com/notifications/?v=" . PMPRO_VERSION));
|
18 |
+
|
|
|
|
|
|
|
|
|
19 |
set_transient("pmpro_notification_" . PMPRO_VERSION, $pmpro_notification, 86400);
|
20 |
}
|
21 |
|
includes/profile.php
CHANGED
@@ -130,7 +130,7 @@ function pmpro_membership_level_profile_fields($user)
|
|
130 |
for($i = 1; $i < 13; $i++)
|
131 |
{
|
132 |
?>
|
133 |
-
<option value="<?php echo $i?>" <?php if($i == $selected_expires_month) { ?>selected="selected"<?php } ?>><?php echo date("M", strtotime($i . "/1/" . $current_year
|
134 |
<?php
|
135 |
}
|
136 |
?>
|
@@ -183,8 +183,8 @@ function pmpro_membership_level_profile_fields_update()
|
|
183 |
if(!empty($_REQUEST['expires']))
|
184 |
{
|
185 |
//update the expiration date
|
186 |
-
$expiration_date = intval($_REQUEST['expires_year']) . "-" .
|
187 |
-
$sqlQuery = "UPDATE $wpdb->pmpro_memberships_users SET enddate = '" . $expiration_date . "' WHERE status = 'active' AND
|
188 |
if($wpdb->query($sqlQuery))
|
189 |
$expiration_changed = true;
|
190 |
}
|
@@ -197,7 +197,7 @@ function pmpro_membership_level_profile_fields_update()
|
|
197 |
if(empty($blank))
|
198 |
{
|
199 |
//null out the expiration
|
200 |
-
$sqlQuery = "UPDATE $wpdb->pmpro_memberships_users SET enddate = NULL WHERE status = 'active' AND
|
201 |
if($wpdb->query($sqlQuery))
|
202 |
$expiration_changed = true;
|
203 |
}
|
130 |
for($i = 1; $i < 13; $i++)
|
131 |
{
|
132 |
?>
|
133 |
+
<option value="<?php echo $i?>" <?php if($i == $selected_expires_month) { ?>selected="selected"<?php } ?>><?php echo date("M", strtotime($i . "/1/" . $current_year))?></option>
|
134 |
<?php
|
135 |
}
|
136 |
?>
|
183 |
if(!empty($_REQUEST['expires']))
|
184 |
{
|
185 |
//update the expiration date
|
186 |
+
$expiration_date = intval($_REQUEST['expires_year']) . "-" . intval($_REQUEST['expires_month']) . "-" . intval($_REQUEST['expires_day']);
|
187 |
+
$sqlQuery = "UPDATE $wpdb->pmpro_memberships_users SET enddate = '" . $expiration_date . "' WHERE status = 'active' AND user_id = '" . $user_ID . "' LIMIT 1";
|
188 |
if($wpdb->query($sqlQuery))
|
189 |
$expiration_changed = true;
|
190 |
}
|
197 |
if(empty($blank))
|
198 |
{
|
199 |
//null out the expiration
|
200 |
+
$sqlQuery = "UPDATE $wpdb->pmpro_memberships_users SET enddate = NULL WHERE status = 'active' AND user_id = '" . $user_ID . "' LIMIT 1";
|
201 |
if($wpdb->query($sqlQuery))
|
202 |
$expiration_changed = true;
|
203 |
}
|
includes/services.php
CHANGED
@@ -12,7 +12,7 @@ if(isset($_REQUEST['action']) && $_REQUEST['action'] == "applydiscountcode")
|
|
12 |
require_once(dirname(__FILE__) . "/../services/applydiscountcode.php");
|
13 |
exit;
|
14 |
}
|
15 |
-
add_action("init", "pmpro_applydiscountcode_init"
|
16 |
}
|
17 |
function pmpro_wp_ajax_authnet_silent_post()
|
18 |
{
|
@@ -49,13 +49,6 @@ function pmpro_wp_ajax_braintree_webhook()
|
|
49 |
}
|
50 |
add_action('wp_ajax_nopriv_braintree_webhook', 'pmpro_wp_ajax_braintree_webhook');
|
51 |
add_action('wp_ajax_braintree_webhook', 'pmpro_wp_ajax_braintree_webhook');
|
52 |
-
function pmpro_wp_ajax_twocheckout_ins()
|
53 |
-
{
|
54 |
-
require_once(dirname(__FILE__) . "/../services/twocheckout-ins.php");
|
55 |
-
exit;
|
56 |
-
}
|
57 |
-
add_action('wp_ajax_nopriv_twocheckout-ins', 'pmpro_wp_ajax_twocheckout_ins');
|
58 |
-
add_action('wp_ajax_twocheckout-ins', 'pmpro_wp_ajax_twocheckout_ins');
|
59 |
function pmpro_wp_ajax_memberlist_csv()
|
60 |
{
|
61 |
require_once(dirname(__FILE__) . "/../adminpages/memberslist-csv.php");
|
12 |
require_once(dirname(__FILE__) . "/../services/applydiscountcode.php");
|
13 |
exit;
|
14 |
}
|
15 |
+
add_action("init", "pmpro_applydiscountcode_init");
|
16 |
}
|
17 |
function pmpro_wp_ajax_authnet_silent_post()
|
18 |
{
|
49 |
}
|
50 |
add_action('wp_ajax_nopriv_braintree_webhook', 'pmpro_wp_ajax_braintree_webhook');
|
51 |
add_action('wp_ajax_braintree_webhook', 'pmpro_wp_ajax_braintree_webhook');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
function pmpro_wp_ajax_memberlist_csv()
|
53 |
{
|
54 |
require_once(dirname(__FILE__) . "/../adminpages/memberslist-csv.php");
|
includes/upgradecheck.php
CHANGED
@@ -73,38 +73,11 @@ function pmpro_checkForUpgrades()
|
|
73 |
if($pmpro_db_version < 1.72)
|
74 |
{
|
75 |
//schedule the credit card expiring cron
|
76 |
-
wp_schedule_event(
|
77 |
|
78 |
pmpro_setOption("db_version", "1.72");
|
79 |
$pmpro_db_version = 1.72;
|
80 |
}
|
81 |
-
|
82 |
-
/*
|
83 |
-
1.7.3
|
84 |
-
- default Stripe Billing Fields to true
|
85 |
-
- unless Stripe Lite is activated, then deactivate Stripe Lite and set Stripe Billing Fields to false
|
86 |
-
*/
|
87 |
-
|
88 |
-
if($pmpro_db_version < 1.79)
|
89 |
-
{
|
90 |
-
//need to register caps for menu
|
91 |
-
pmpro_activation();
|
92 |
-
|
93 |
-
pmpro_setOption("db_version", "1.79");
|
94 |
-
$pmpro_db_version = 1.79;
|
95 |
-
}
|
96 |
-
|
97 |
-
//set default filter_queries setting
|
98 |
-
if($pmpro_db_version < 1.791)
|
99 |
-
{
|
100 |
-
if(!pmpro_getOption("showexcerpts"))
|
101 |
-
pmpro_setOption("filterqueries", 1);
|
102 |
-
else
|
103 |
-
pmpro_SetOption("filterqueries", 0);
|
104 |
-
|
105 |
-
pmpro_setOption("db_version", "1.791");
|
106 |
-
$pmpro_db_version = 1.791;
|
107 |
-
}
|
108 |
}
|
109 |
|
110 |
function pmpro_upgrade_1_7()
|
@@ -419,14 +392,14 @@ function pmpro_upgrade_1()
|
|
419 |
/*
|
420 |
default options
|
421 |
*/
|
422 |
-
$nonmembertext =
|
423 |
pmpro_setOption("nonmembertext", $nonmembertext);
|
424 |
|
425 |
-
$notloggedintext =
|
426 |
'?action=register">Register</a>';
|
427 |
pmpro_setOption("notloggedintext", $notloggedintext);
|
428 |
|
429 |
-
$rsstext =
|
430 |
pmpro_setOption("rsstext", $rsstext);
|
431 |
|
432 |
$gateway_environment = "sandbox";
|
73 |
if($pmpro_db_version < 1.72)
|
74 |
{
|
75 |
//schedule the credit card expiring cron
|
76 |
+
wp_schedule_event(time(), 'monthly', 'pmpro_cron_credit_card_expiring_warnings');
|
77 |
|
78 |
pmpro_setOption("db_version", "1.72");
|
79 |
$pmpro_db_version = 1.72;
|
80 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
81 |
}
|
82 |
|
83 |
function pmpro_upgrade_1_7()
|
392 |
/*
|
393 |
default options
|
394 |
*/
|
395 |
+
$nonmembertext = 'This content is for !!levels!! members only.<br /><a href="' . wp_login_url() . '?action=register">Register</a>';
|
396 |
pmpro_setOption("nonmembertext", $nonmembertext);
|
397 |
|
398 |
+
$notloggedintext = 'This content is for !!levels!! members only.<br /><a href="' . wp_login_url() . '">Log In</a> <a href="' . wp_login_url() .
|
399 |
'?action=register">Register</a>';
|
400 |
pmpro_setOption("notloggedintext", $notloggedintext);
|
401 |
|
402 |
+
$rsstext = "This content is for !!levels!! members only. Visit the site and log in/register to read.";
|
403 |
pmpro_setOption("rsstext", $rsstext);
|
404 |
|
405 |
$gateway_environment = "sandbox";
|
includes/xmlrpc.php
DELETED
@@ -1,80 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Define the XMLRPC Methods We Add
|
4 |
-
* Since v2.0
|
5 |
-
*/
|
6 |
-
add_filter('xmlrpc_methods', 'pmpro_xmlrpc_methods');
|
7 |
-
function pmpro_xmlrpc_methods($methods)
|
8 |
-
{
|
9 |
-
$methods['pmpro.getMembershipLevelForUser'] = 'pmpro_xmlrpc_getMembershipLevelForUser';
|
10 |
-
$methods['pmpro.hasMembershipAccess'] = 'pmpro_xmlrpc_hasMembershipAccess';
|
11 |
-
return $methods;
|
12 |
-
}
|
13 |
-
|
14 |
-
/**
|
15 |
-
* API method to get the membership level info for a user.
|
16 |
-
* Since v2.0
|
17 |
-
*/
|
18 |
-
function pmpro_xmlrpc_getMembershipLevelForUser($args)
|
19 |
-
{
|
20 |
-
// Parse the arguments, assuming they're in the correct order
|
21 |
-
$username = $args[0];
|
22 |
-
$password = $args[1];
|
23 |
-
$user_id = $args[2]; //optional user id passed in
|
24 |
-
|
25 |
-
global $wp_xmlrpc_server;
|
26 |
-
|
27 |
-
// Let's run a check to see if credentials are okay
|
28 |
-
if ( !$user = $wp_xmlrpc_server->login($username, $password) ) {
|
29 |
-
return $wp_xmlrpc_server->error;
|
30 |
-
}
|
31 |
-
|
32 |
-
// The user passed should be an admin or have the pmpro_xmlprc capability
|
33 |
-
if(!user_can($user->ID, "manage_options") && !user_can($user->ID, "pmpro_xmlrpc"))
|
34 |
-
return "ERROR: User does not have access to the PMPro XMLRPC methods.";
|
35 |
-
|
36 |
-
// Default to logged in user if no user_id is given.
|
37 |
-
if(empty($user_id))
|
38 |
-
{
|
39 |
-
$user_id = $user->ID;
|
40 |
-
}
|
41 |
-
|
42 |
-
$membership_level = pmpro_getMembershipLevelForUser($user_id);
|
43 |
-
|
44 |
-
return $membership_level;
|
45 |
-
}
|
46 |
-
|
47 |
-
/**
|
48 |
-
* API method to check if a user has access to a certain post.
|
49 |
-
* Since v2.0
|
50 |
-
*/
|
51 |
-
function pmpro_xmlrpc_hasMembershipAccess($args)
|
52 |
-
{
|
53 |
-
// Parse the arguments, assuming they're in the correct order
|
54 |
-
$username = $args[0];
|
55 |
-
$password = $args[1];
|
56 |
-
$post_id = $args[2]; //post id to check
|
57 |
-
$user_id = $args[3]; //optional user id passed in
|
58 |
-
$return_membership_levels = $args[4]; //option to also include an array of membership levels with access to the post
|
59 |
-
|
60 |
-
global $wp_xmlrpc_server;
|
61 |
-
|
62 |
-
// Let's run a check to see if credentials are okay
|
63 |
-
if ( !$user = $wp_xmlrpc_server->login($username, $password) ) {
|
64 |
-
return $wp_xmlrpc_server->error;
|
65 |
-
}
|
66 |
-
|
67 |
-
// The user passed should be an admin or have the pmpro_xmlprc capability
|
68 |
-
if(!user_can($user->ID, "manage_options") && !user_can($user->ID, "pmpro_xmlrpc"))
|
69 |
-
return "ERROR: User does not have access to the PMPro XMLRPC methods.";
|
70 |
-
|
71 |
-
// Default to logged in user if no user_id is given.
|
72 |
-
if(empty($user_id))
|
73 |
-
{
|
74 |
-
$user_id = $user->ID;
|
75 |
-
}
|
76 |
-
|
77 |
-
$has_access = pmpro_has_membership_access($post_id, $user_id, $return_membership_levels);
|
78 |
-
|
79 |
-
return $has_access;
|
80 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/email/da_DK/admin_change.html
DELETED
@@ -1,7 +0,0 @@
|
|
1 |
-
<p>En Administrator hos !!sitename!! har ændret dit medlemsskab niveau.</p>
|
2 |
-
|
3 |
-
<p>!!membership_change!!.</p>
|
4 |
-
|
5 |
-
<p>Hvis du ikke har bedt om, at få dit medlemsskab ændret, og gerne ville vide mere omkring det, kontakt os venligst på denne mail !!siteemail!!</p>
|
6 |
-
|
7 |
-
<p>Log ind på din konto her: !!login_link!!</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/email/da_DK/admin_change_admin.html
DELETED
@@ -1,5 +0,0 @@
|
|
1 |
-
<p>En Administrator hos !!sitename!! har ændret medlemsskab niveau.</p>
|
2 |
-
|
3 |
-
<p>!!membership_change!!.</p>
|
4 |
-
|
5 |
-
<p>Log ind på din Wordpress admin her: !!login_link!!</p>
|
|
|
|
|
|
|
|
|
|
languages/email/da_DK/billing.html
DELETED
@@ -1,16 +0,0 @@
|
|
1 |
-
<p>Din betaings informationer hos !!sitename!! er bleven ændret.</p>
|
2 |
-
|
3 |
-
<p>Konto: !!display_name!! (!!user_email!!)</p>
|
4 |
-
<p>
|
5 |
-
Betalings Informationer:<br />
|
6 |
-
!!billing_address!!
|
7 |
-
</p>
|
8 |
-
|
9 |
-
<p>
|
10 |
-
!!cardtype!!: !!accountnumber!!<br />
|
11 |
-
Udløber: !!expirationmonth!!/!!expirationyear!!
|
12 |
-
</p>
|
13 |
-
|
14 |
-
<p>Hvis du ikke har bedt om, at ændre betalings informationer, så kontakt os via !!siteemail!!</p>
|
15 |
-
|
16 |
-
<p>Log ind til din medlems konto her: !!login_link!!</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/email/da_DK/billing_admin.html
DELETED
@@ -1,17 +0,0 @@
|
|
1 |
-
<p>Betalings informationer for !!display_name!! hos !!sitename!! er bleven ændret.</p>
|
2 |
-
|
3 |
-
<p>Konto: !!display_name!! (!!user_email!!)</p>
|
4 |
-
<p>
|
5 |
-
Betalings informationer:<br />
|
6 |
-
!!billing_name!!<br />
|
7 |
-
!!billing_street!!<br />
|
8 |
-
!!billing_city!!, !!billing_state!! !!billing_zip!! !!billing_country!!
|
9 |
-
!!billing_phone!!
|
10 |
-
</p>
|
11 |
-
|
12 |
-
<p>
|
13 |
-
!!cardtype!!: !!accountnumber!!<br />
|
14 |
-
Udløber: !!expirationmonth!!/!!expirationyear!!
|
15 |
-
</p>
|
16 |
-
|
17 |
-
<p>Log ind på din Wordpress kontrolpanel her: !!login_link!!</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/email/da_DK/billing_failure.html
DELETED
@@ -1,11 +0,0 @@
|
|
1 |
-
<p>Den nuværende abonnements betaling for dit !!sitename!! medlemsskab har fejlet. <strong>Klik på følgende link for at logge ind og opdatere dine betalings informationer for at undgå at din konto blive deaktiveret. !!login_link!!</strong></p>
|
2 |
-
|
3 |
-
<p>Konto: !!display_name!! (!!user_email!!)</p>
|
4 |
-
<p>De seneste konto informationer vi på arkiv er:</p>
|
5 |
-
|
6 |
-
<p>!!billing_address!!</p>
|
7 |
-
|
8 |
-
<p>
|
9 |
-
!!cardtype!!: !!accountnumber!!<br />
|
10 |
-
Udløber: !!expirationmonth!!/!!expirationyear!!
|
11 |
-
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/email/da_DK/billing_failure_admin.html
DELETED
@@ -1,11 +0,0 @@
|
|
1 |
-
<p>Betaling Fejlet</p>
|
2 |
-
|
3 |
-
<p>Konto: !!display_name!! (!!user_email!!)</p>
|
4 |
-
<p>De seneste konto informationer vi på arkiv er:</p>
|
5 |
-
|
6 |
-
<p>!!billing_address!!</p>
|
7 |
-
|
8 |
-
<p>
|
9 |
-
!!cardtype!!: !!accountnumber!!<br />
|
10 |
-
Udløber: !!expirationmonth!!/!!expirationyear!!
|
11 |
-
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/email/da_DK/cancel.html
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
<p>Dit medlemsskab hos !!sitename!! er bleven annulleret.</p>
|
2 |
-
|
3 |
-
<p>Hvis du ikke har anmodet om at denne annullering, og ville vide mere omkring det. Kontakt os via !!siteemail!!</p>
|
|
|
|
|
|
languages/email/da_DK/cancel_admin.html
DELETED
@@ -1,8 +0,0 @@
|
|
1 |
-
<p>Medlemsskabet for !!user_login!! hos !!sitename!! er bleven annulleret.</p>
|
2 |
-
|
3 |
-
<p>Konto: !!display_name!! (!!user_email!!)</p>
|
4 |
-
<p>Medlemsskab Niveau: !!membership_level_name!!</p>
|
5 |
-
<p>Start Dato: !!startdate!!</p>
|
6 |
-
<p>Annullering Dato: !!enddate!!</p>
|
7 |
-
|
8 |
-
<p>Log ind på din Wordpress admin her: !!login_link!!</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/email/da_DK/checkout_check.html
DELETED
@@ -1,17 +0,0 @@
|
|
1 |
-
<p>Tak for din bestilling til !!sitename!!. Dit medlemsskab er nu aktiveret.</p>
|
2 |
-
|
3 |
-
!!instructions!!
|
4 |
-
|
5 |
-
<p>Nedenfor er detaljerne omkring dit nye medlemsskab og en faktura.</p>
|
6 |
-
|
7 |
-
<p>Konto: !!display_name!! (!!user_email!!)</p>
|
8 |
-
<p>Medlemsskabs Niveau: !!membership_level_name!!</p>
|
9 |
-
<p>Medlemsskabs Gebyr: !!membership_cost!!</p>
|
10 |
-
!!membership_expiration!! !!discount_code!!
|
11 |
-
|
12 |
-
<p>
|
13 |
-
Faktura #!!invoice_id!! on !!invoice_date!!<br />
|
14 |
-
Regning Total: !!invoice_total!!
|
15 |
-
</p>
|
16 |
-
|
17 |
-
<p>Log ind på din konto her: !!login_link!!</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/email/da_DK/checkout_check_admin.html
DELETED
@@ -1,17 +0,0 @@
|
|
1 |
-
<p>Der er kommet et nyt medlem hos !!sitename!!.</p>
|
2 |
-
|
3 |
-
<p><strong>De har valgt at betale med check.</strong></p>
|
4 |
-
|
5 |
-
<p>Nedenfor er detaljer omkring det nye medlems konto og en forklaring på medlemmets faktura.</p>
|
6 |
-
|
7 |
-
<p>Konto: !!display_name!! (!!user_email!!)</p>
|
8 |
-
<p>Meldlemsskab Niveau: !!membership_level_name!!</p>
|
9 |
-
<p>Medlemsskab Gebyr: !!membership_cost!!</p>
|
10 |
-
!!membership_expiration!! !!discount_code!!
|
11 |
-
|
12 |
-
<p>
|
13 |
-
Faktura #!!invoice_id!! on !!invoice_date!!<br />
|
14 |
-
Regning Total: $!!invoice_total!!
|
15 |
-
</p>
|
16 |
-
|
17 |
-
<p>Log ind på din konto her: !!login_link!!</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/email/da_DK/checkout_express.html
DELETED
@@ -1,14 +0,0 @@
|
|
1 |
-
<p>Tak for din bestilling til !!sitename!!. Dit medlemsskab er nu aktiveret.</p>
|
2 |
-
<p>Nedenfor er detaljerne omkring dit nye medlemsskab og en faktura.</p>
|
3 |
-
|
4 |
-
<p>Konto: !!display_name!! (!!user_email!!)</p>
|
5 |
-
<p>Medlemsskabs Niveau: !!membership_level_name!!</p>
|
6 |
-
<p>Medlemsskabs Gebyr: !!membership_cost!!</p>
|
7 |
-
!!membership_expiration!! !!discount_code!!
|
8 |
-
|
9 |
-
<p>
|
10 |
-
Faktura #!!invoice_id!! on !!invoice_date!!<br />
|
11 |
-
Regning Total: !!invoice_total!!
|
12 |
-
</p>
|
13 |
-
|
14 |
-
<p>Log ind på din konto her: !!login_link!!</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/email/da_DK/checkout_express_admin.html
DELETED
@@ -1,14 +0,0 @@
|
|
1 |
-
<p>Der er kommet et nyt medlem hos !!sitename!!.</p>
|
2 |
-
<p>Nedenfor er detaljer omkring det nye medlems konto og en forklaring på medlemmets faktura.</p>
|
3 |
-
|
4 |
-
<p>Konto: !!display_name!! (!!user_email!!)</p>
|
5 |
-
<p>Medlemsskab Nivea: !!membership_level_name!!</p>
|
6 |
-
<p>Medlemsskab Gebyr: !!membership_cost!!</p>
|
7 |
-
!!membership_expiration!! !!discount_code!!
|
8 |
-
|
9 |
-
<p>
|
10 |
-
Faktura #!!invoice_id!! on !!invoice_date!!<br />
|
11 |
-
Regning Total: !!invoice_total!!
|
12 |
-
</p>
|
13 |
-
|
14 |
-
<p>Log ind på din konto her: !!login_link!!</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/email/da_DK/checkout_free.html
DELETED
@@ -1,8 +0,0 @@
|
|
1 |
-
<p>Tak for din bestilling til !!sitename!!. Dit medlemsskab er nu aktiveret.</p>
|
2 |
-
<p>Nedenfor er detaljerne omkring dit nye medlemsskab.</p>
|
3 |
-
|
4 |
-
<p>Konto: !!display_name!! (!!user_email!!)</p>
|
5 |
-
<p>Medlemsskabs Niveau: !!membership_level_name!!</p>
|
6 |
-
!!membership_expiration!! !!discount_code!!
|
7 |
-
|
8 |
-
<p>Log ind på din konto her: !!login_link!!</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/email/da_DK/checkout_free_admin.html
DELETED
@@ -1,8 +0,0 @@
|
|
1 |
-
<p>Der er kommet et nyt medlem hos !!sitename!!.</p>
|
2 |
-
<p>Nedenfor er detaljerne omkring det nye medlemsskabs konto.</p>
|
3 |
-
|
4 |
-
<p>Konto: !!display_name!! (!!user_email!!)</p>
|
5 |
-
<p>Medlemsskabs Niveau: !!membership_level_name!!</p>
|
6 |
-
!!membership_expiration!! !!discount_code!!
|
7 |
-
|
8 |
-
<p>Log ind på din konto her: !!login_link!!</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/email/da_DK/checkout_freetrial.html
DELETED
@@ -1,19 +0,0 @@
|
|
1 |
-
<p>Tak for din bestilling til !!sitename!!. Dit medlemsskab er nu aktiveret</p>
|
2 |
-
<p>Nedenfor er detaljerne omkring dit nye medlemsskab.</p>
|
3 |
-
|
4 |
-
<p>Konto: !!display_name!! (!!user_email!!)</p>
|
5 |
-
<p>Medlemsskabs Niveau: !!membership_level_name!!</p>
|
6 |
-
<p>Medlemsskabs Gebyr: !!membership_cost!!</p>
|
7 |
-
!!membership_expiration!! !!discount_code!!
|
8 |
-
|
9 |
-
<p>
|
10 |
-
Betalings informationer i Arkivet:<br />
|
11 |
-
!!billing_address!!
|
12 |
-
</p>
|
13 |
-
|
14 |
-
<p>
|
15 |
-
!!cardtype!!: !!accountnumber!!<br />
|
16 |
-
Udløber: !!expirationmonth!!/!!expirationyear!!
|
17 |
-
</p>
|
18 |
-
|
19 |
-
<p>Log ind på din konto her: !!login_link!!</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/email/da_DK/checkout_freetrial_admin.html
DELETED
@@ -1,19 +0,0 @@
|
|
1 |
-
<p>Der er kommet et nyt medlem hos !!sitename!!.</p>
|
2 |
-
<p>Nedenfor er detaljer omkring det nye medlems konto og en forklaring på medlemmets faktura.</p>
|
3 |
-
|
4 |
-
<p>Konto: !!display_name!! (!!user_email!!)</p>
|
5 |
-
<p>Medlemsskabs Niveau: !!membership_level_name!!</p>
|
6 |
-
<p>Medlemsskabs Gebyr: !!membership_cost!!</p>
|
7 |
-
!!membership_expiration!! !!discount_code!!
|
8 |
-
|
9 |
-
<p>
|
10 |
-
Betalings informationer i Arkivet:<br />
|
11 |
-
!!billing_address!!
|
12 |
-
</p>
|
13 |
-
|
14 |
-
<p>
|
15 |
-
!!cardtype!!: !!accountnumber!!<br />
|
16 |
-
Udløber: !!expirationmonth!!/!!expirationyear!!
|
17 |
-
</p>
|
18 |
-
|
19 |
-
<p>Log ind på din konto her: !!login_link!!</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/email/da_DK/checkout_paid.html
DELETED
@@ -1,23 +0,0 @@
|
|
1 |
-
<p>Tak for din bestilling til !!sitename!!. Dit medlemsskab er nu aktiveret.</p>
|
2 |
-
<p>Nedenfor er detaljerne omkring dit nye medlemsskab og en faktura.</p>
|
3 |
-
|
4 |
-
<p>Konto: !!display_name!! (!!user_email!!)</p>
|
5 |
-
<p>Medlemsskabs Niveau: !!membership_level_name!!</p>
|
6 |
-
<p>Medlemsskabs Gebyr: !!membership_cost!!</p>
|
7 |
-
!!membership_expiration!! !!discount_code!!
|
8 |
-
|
9 |
-
<p>
|
10 |
-
Faktura #!!invoice_id!! on !!invoice_date!!<br />
|
11 |
-
Regning Total: !!invoice_total!!
|
12 |
-
</p>
|
13 |
-
<p>
|
14 |
-
Betalings Informationer:<br />
|
15 |
-
!!billing_address!!
|
16 |
-
</p>
|
17 |
-
|
18 |
-
<p>
|
19 |
-
!!cardtype!!: !!accountnumber!!<br />
|
20 |
-
Udløber: !!expirationmonth!!/!!expirationyear!!
|
21 |
-
</p>
|
22 |
-
|
23 |
-
<p>Log ind på din konto her: !!login_link!!</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/email/da_DK/checkout_paid_admin.html
DELETED
@@ -1,23 +0,0 @@
|
|
1 |
-
<p>Der er kommet et nyt medlem hos !!sitename!!.</p>
|
2 |
-
<p>Nedenfor er detaljer omkring det nye medlems konto og en forklaring på medlemmets faktura.</p>
|
3 |
-
|
4 |
-
<p>Konto: !!display_name!! (!!user_email!!)</p>
|
5 |
-
<p>Medlemsskabs Niveau: !!membership_level_name!!</p>
|
6 |
-
<p>Medlemsskabs Gebyr: !!membership_cost!!</p>
|
7 |
-
!!membership_expiration!! !!discount_code!!
|
8 |
-
|
9 |
-
<p>
|
10 |
-
Faktura #!!invoice_id!! on !!invoice_date!!<br />
|
11 |
-
Regning Total: !!invoice_total!!
|
12 |
-
</p>
|
13 |
-
<p>
|
14 |
-
Betalings Informationer:<br />
|
15 |
-
!!billing_address!!
|
16 |
-
</p>
|
17 |
-
|
18 |
-
<p>
|
19 |
-
!!cardtype!!: !!accountnumber!!<br />
|
20 |
-
Udløber: !!expirationmonth!!/!!expirationyear!!
|
21 |
-
</p>
|
22 |
-
|
23 |
-
<p>Log ind på din konto her: !!login_link!!</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/email/da_DK/checkout_trial.html
DELETED
@@ -1,23 +0,0 @@
|
|
1 |
-
<p>Tak for din bestilling til !!sitename!!. Dit medlemsskab er nu aktiveret.</p>
|
2 |
-
<p>Nedenfor er detaljerne omkring dit nye medlemsskab og en faktura.</p>
|
3 |
-
|
4 |
-
<p>Konto: !!display_name!! (!!user_email!!)</p>
|
5 |
-
<p>Medlemsskabs Niveau: !!membership_level_name!!</p>
|
6 |
-
<p>Medlemsskabs Gebyr: !!membership_cost!!</p>
|
7 |
-
!!membership_expiration!! !!discount_code!!
|
8 |
-
|
9 |
-
<p>
|
10 |
-
Faktura #!!invoice_id!! on !!invoice_date!!<br />
|
11 |
-
Regning Total: !!invoice_total!!
|
12 |
-
</p>
|
13 |
-
<p>
|
14 |
-
Betalings Informationer:<br />
|
15 |
-
!!billing_address!!
|
16 |
-
</p>
|
17 |
-
|
18 |
-
<p>
|
19 |
-
!!cardtype!!: !!accountnumber!!<br />
|
20 |
-
Udløber: !!expirationmonth!!/!!expirationyear!!
|
21 |
-
</p>
|
22 |
-
|
23 |
-
<p>Log ind på din konto her: !!login_link!!</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/email/da_DK/checkout_trial_admin.html
DELETED
@@ -1,23 +0,0 @@
|
|
1 |
-
<p>Der er kommet et nyt medlem hos !!sitename!!.</p>
|
2 |
-
<p>Nedenfor er detaljer omkring det nye medlems konto og en forklaring på medlemmets faktura.</p>
|
3 |
-
|
4 |
-
<p>Konto: !!display_name!! (!!user_email!!)</p>
|
5 |
-
<p>Medlemsskabs Niveau: !!membership_level_name!!</p>
|
6 |
-
<p>Medlemsskabs Gebyr: !!membership_cost!!</p>
|
7 |
-
!!membership_expiration!! !!discount_code!!
|
8 |
-
|
9 |
-
<p>
|
10 |
-
Faktura #!!invoice_id!! on !!invoice_date!!<br />
|
11 |
-
Regning Total: !!invoice_total!!
|
12 |
-
</p>
|
13 |
-
<p>
|
14 |
-
Betalings Informationer:<br />
|
15 |
-
!!billing_address!!
|
16 |
-
</p>
|
17 |
-
|
18 |
-
<p>
|
19 |
-
!!cardtype!!: !!accountnumber!!<br />
|
20 |
-
Udløber: !!expirationmonth!!/!!expirationyear!!
|
21 |
-
</p>
|
22 |
-
|
23 |
-
<p>Log ind på din konto her: !!login_link!!</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/email/da_DK/credit_card_expiring.html
DELETED
@@ -1,13 +0,0 @@
|
|
1 |
-
<p>Den nuværende abonnements betaling for dit !!sitename!! medlemsskab har fejlet. <strong>Klik på følgende link for at logge ind og opdatere dine betalings informationer for at undgå at din konto blive deaktiveret. !!login_link!!</strong></p>
|
2 |
-
|
3 |
-
<p>Konto: !!display_name!! (!!user_email!!)</p>
|
4 |
-
<p>De seneste konto informationer vi på arkiv er:</p>
|
5 |
-
|
6 |
-
<p>!!billing_name!!</br />
|
7 |
-
!!billing_address!!
|
8 |
-
</p>
|
9 |
-
|
10 |
-
<p>
|
11 |
-
!!cardtype!!: !!accountnumber!!<br />
|
12 |
-
Udløber: !!expirationmonth!!/!!expirationyear!!
|
13 |
-
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/email/da_DK/default.html
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
!!body!!
|
|
languages/email/da_DK/footer.html
DELETED
@@ -1,4 +0,0 @@
|
|
1 |
-
<p>
|
2 |
-
Respectfully,<br />
|
3 |
-
!!sitename!!
|
4 |
-
</p>
|
|
|
|
|
|
|
|
languages/email/da_DK/header.html
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
<p>Kære !!name!!,</p>
|
|
languages/email/da_DK/invoice.html
DELETED
@@ -1,19 +0,0 @@
|
|
1 |
-
<p>Thank you for your membership to !!sitename!!. Below is a receipt for your most recent membership invoice.</p>
|
2 |
-
|
3 |
-
<p>Account: !!display_name!! (!!user_email!!)</p>
|
4 |
-
<p>
|
5 |
-
Invoice #!!invoice_id!! on !!invoice_date!!<br />
|
6 |
-
Total Billed: !!invoice_total!!
|
7 |
-
</p>
|
8 |
-
<p>
|
9 |
-
Billing Information:<br />
|
10 |
-
!!billing_address!!
|
11 |
-
</p>
|
12 |
-
|
13 |
-
<p>
|
14 |
-
!!cardtype!!: !!accountnumber!!<br />
|
15 |
-
Expires: !!expirationmonth!!/!!expirationyear!!
|
16 |
-
</p>
|
17 |
-
|
18 |
-
<p>Log in to your membership account here: !!login_link!!</p>
|
19 |
-
<p>To view an online version of this invoice, click here: !!invoice_link!!</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/email/da_DK/membership_expired.html
DELETED
@@ -1,7 +0,0 @@
|
|
1 |
-
<p>Dit medlemsskab hos !!sitename!! er ophørt.</p>
|
2 |
-
|
3 |
-
<p>Vi takker for din support.</p>
|
4 |
-
|
5 |
-
<p>Se vores nuværende medlems tilbud: !!levels_link!!</p>
|
6 |
-
|
7 |
-
<p>Log in, for at håndtere din konto her: !!login_link!!</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/email/da_DK/membership_expiring.html
DELETED
@@ -1,6 +0,0 @@
|
|
1 |
-
<p>Vi er glade for dit medlemsskab hos !!sitename!!. Dette er bare en påmindelse om, at dit medlemsskab ender den !!enddate!!.</p>
|
2 |
-
|
3 |
-
<p>Konto: !!display_name!! (!!user_email!!)</p>
|
4 |
-
<p>Medlemsskabs Niveau: !!membership_level_name!!</p>
|
5 |
-
|
6 |
-
<p>Log ind på din konto her: !!login_link!!</p>
|
|
|
|
|
|
|
|
|
|
|
|
languages/email/da_DK/trial_ending.html
DELETED
@@ -1,8 +0,0 @@
|
|
1 |
-
<p>Vi er glade for dit medlemsskab hos !!sitename!!. Din prøveperiode ender den !!trial_end!!.</p>
|
2 |
-
|
3 |
-
<p>Konto: !!display_name!! (!!user_email!!)</p>
|
4 |
-
<p>Medlemsskabs Niveau: !!membership_level_name!!</p>
|
5 |
-
|
6 |
-
<p>Dit gebyr ville ændre sig fra !!trial_amount!! til !!billing_amount!! hver !!cycle_number!! !!cycle_period!!(s).</p>
|
7 |
-
|
8 |
-
<p>Log ind på din konto her: !!login_link!!</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/gettext.sh
DELETED
@@ -1,23 +0,0 @@
|
|
1 |
-
#---------------------------
|
2 |
-
# This script generates a new pmpro.pot file for use in translations.
|
3 |
-
# To generate a new pmpro.pot, cd to the main /paid-memberships-pro/ directory,
|
4 |
-
# then execute `languages/gettext.sh` from the command line.
|
5 |
-
# then fix the header info (helps to have the old pmpro.pot open before running script above)
|
6 |
-
# then execute `cp languages/pmpro.pot languages/pmpro.po` to copy the .pot to .po
|
7 |
-
# then execute `msgfmt languages/pmpro.po --output-file languages/pmpro.mo` to generate the .mo
|
8 |
-
#---------------------------
|
9 |
-
echo "Updating pmpro.pot... "
|
10 |
-
xgettext -j -o languages/pmpro.pot \
|
11 |
-
--default-domain=pmpro \
|
12 |
-
--language=PHP \
|
13 |
-
--keyword=_ \
|
14 |
-
--keyword=__ \
|
15 |
-
--keyword=_e \
|
16 |
-
--keyword=_ex \
|
17 |
-
--keyword=_n \
|
18 |
-
--keyword=_x \
|
19 |
-
--sort-by-file \
|
20 |
-
--package-version=1.0 \
|
21 |
-
--msgid-bugs-address="jason@strangerstudios.com" \
|
22 |
-
$(find . -name "*.php")
|
23 |
-
echo "Done!"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/pmpro-cs_CZ.mo
DELETED
Binary file
|
languages/pmpro-cs_CZ.po
DELETED
@@ -1,2889 +0,0 @@
|
|
1 |
-
#
|
2 |
-
# Hi there! Details on how to help out translating Paid Memberships Pro can be found at:
|
3 |
-
# http://www.paidmembershipspro.com/documentation/languages/
|
4 |
-
#
|
5 |
-
msgid ""
|
6 |
-
msgstr ""
|
7 |
-
"Project-Id-Version: pmpro\n"
|
8 |
-
"POT-Creation-Date: 2013-12-10 12:14-0500\n"
|
9 |
-
"PO-Revision-Date: 2013-12-20 13:36+0100\n"
|
10 |
-
"Last-Translator: Milan Hrnčál <hrncal.junior@seznam.cz>\n"
|
11 |
-
"Language-Team: Stranger Studios <jason@strangerstudios.com>\n"
|
12 |
-
"MIME-Version: 1.0\n"
|
13 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
14 |
-
"Content-Transfer-Encoding: 8bit\n"
|
15 |
-
"Language: cs_CZ\n"
|
16 |
-
"X-Generator: Poedit 1.6.3\n"
|
17 |
-
|
18 |
-
#: adminpages/addons.php:5 adminpages/advancedsettings.php:5
|
19 |
-
#: adminpages/discountcodes.php:5 adminpages/emailsettings.php:5
|
20 |
-
#: adminpages/membershiplevels.php:5 adminpages/memberslist-csv.php:5
|
21 |
-
#: adminpages/memberslist.php:5 adminpages/orders-csv.php:5
|
22 |
-
#: adminpages/orders.php:5 adminpages/pagesettings.php:5
|
23 |
-
#: adminpages/paymentsettings.php:5
|
24 |
-
msgid "You do not have permissions to perform this action."
|
25 |
-
msgstr "K provedení této akce nemáte dostatečná opravnění."
|
26 |
-
|
27 |
-
#: adminpages/addons.php:79
|
28 |
-
msgid "Disabled"
|
29 |
-
msgstr "Nepovoleno"
|
30 |
-
|
31 |
-
#: adminpages/addons.php:79
|
32 |
-
msgid "Enabled"
|
33 |
-
msgstr "Povoleno"
|
34 |
-
|
35 |
-
#: adminpages/admin_header.php:25
|
36 |
-
msgid "Add a membership level to get started."
|
37 |
-
msgstr "Ke spuštění zadejte úroveň ćlenství"
|
38 |
-
|
39 |
-
#: adminpages/admin_header.php:27
|
40 |
-
msgid "Setup the membership pages"
|
41 |
-
msgstr "Nastavit stránky členů"
|
42 |
-
|
43 |
-
#: adminpages/admin_header.php:29
|
44 |
-
msgid "Setup your SSL certificate and payment gateway"
|
45 |
-
msgstr "Nastavení vašeho SSL certifikátu a platební brány"
|
46 |
-
|
47 |
-
#: adminpages/admin_header.php:38
|
48 |
-
msgid ""
|
49 |
-
"The billing details for some of your membership levels is not supported by "
|
50 |
-
"Stripe."
|
51 |
-
msgstr ""
|
52 |
-
"Pro některé uživatelské úrovně není možné zobrazit fakturační podrobnosti "
|
53 |
-
"(nepodporováno STRIPEM)."
|
54 |
-
|
55 |
-
#: adminpages/admin_header.php:46
|
56 |
-
msgid ""
|
57 |
-
"The billing details for this level are not supported by Stripe. Please "
|
58 |
-
"review the notes in the Billing Details section below."
|
59 |
-
msgstr ""
|
60 |
-
"Pro tuto úroveň nejsou podporovány fakturační údaje (nepodporuje STRIPE). "
|
61 |
-
"Níže, v části fakturační údaje, si přečtěte pokyny."
|
62 |
-
|
63 |
-
#: adminpages/admin_header.php:50 adminpages/admin_header.php:70
|
64 |
-
#: adminpages/admin_header.php:90 adminpages/admin_header.php:111
|
65 |
-
msgid "The levels with issues are highlighted below."
|
66 |
-
msgstr "Úrovně s otázkami jsou označeny níže."
|
67 |
-
|
68 |
-
#: adminpages/admin_header.php:52 adminpages/admin_header.php:72
|
69 |
-
#: adminpages/admin_header.php:92 adminpages/admin_header.php:113
|
70 |
-
msgid "Please edit your levels"
|
71 |
-
msgstr "Prosím upravte vaše úrovně"
|
72 |
-
|
73 |
-
#: adminpages/admin_header.php:58
|
74 |
-
msgid ""
|
75 |
-
"The billing details for some of your membership levels is not supported by "
|
76 |
-
"Payflow."
|
77 |
-
msgstr ""
|
78 |
-
"Fakturační údaje pro některé z vašich členských úrovní nejsou podporovány "
|
79 |
-
"Payflow."
|
80 |
-
|
81 |
-
#: adminpages/admin_header.php:66
|
82 |
-
msgid ""
|
83 |
-
"The billing details for this level are not supported by Payflow. Please "
|
84 |
-
"review the notes in the Billing Details section below."
|
85 |
-
msgstr ""
|
86 |
-
"Payflow nepodporuje fakturační detaily pro tuto úroveň. Níže, v části "
|
87 |
-
"fakturační údaje, si přečtěte pokyny."
|
88 |
-
|
89 |
-
#: adminpages/admin_header.php:78
|
90 |
-
msgid ""
|
91 |
-
"The billing details for some of your membership levels is not supported by "
|
92 |
-
"Braintree."
|
93 |
-
msgstr ""
|
94 |
-
"Braintree nepodporuje fakturační detaily pro některé vaše členské úrovně."
|
95 |
-
|
96 |
-
#: adminpages/admin_header.php:86
|
97 |
-
msgid ""
|
98 |
-
"The billing details for this level are not supported by Braintree. Please "
|
99 |
-
"review the notes in the Billing Details section below."
|
100 |
-
msgstr ""
|
101 |
-
"Braintree nepodporuje fakturační detaily pro tuto členskou úroveň. Prosím "
|
102 |
-
"prostudujte poznámky v sekci fakturační údaje. Tyto poznámky naleznete níže."
|
103 |
-
|
104 |
-
#: adminpages/admin_header.php:98
|
105 |
-
msgid ""
|
106 |
-
"The billing details for some of your membership levels is not supported by "
|
107 |
-
"TwoCheckout."
|
108 |
-
msgstr ""
|
109 |
-
"TwoCheckout nepodporuje fakturační detaily pro některé vaše členské úrovně."
|
110 |
-
|
111 |
-
#: adminpages/admin_header.php:107
|
112 |
-
msgid ""
|
113 |
-
"The billing details for this level are not supported by 2Checkout. Please "
|
114 |
-
"review the notes in the Billing Details section below."
|
115 |
-
msgstr ""
|
116 |
-
"TwoCheckout nepodporuje fakturační detaily pro tuto úroveň. Prosím "
|
117 |
-
"prostudujte poznámky v sekci fakturační údaje. Tyto poznámky naleznete níže."
|
118 |
-
|
119 |
-
#: adminpages/admin_header.php:127 adminpages/admin_header.php:106
|
120 |
-
msgid "Plugin Support"
|
121 |
-
msgstr "Podpora pluginu"
|
122 |
-
|
123 |
-
#: adminpages/admin_header.php:127 adminpages/admin_header.php:106
|
124 |
-
msgid "User Forum"
|
125 |
-
msgstr "Uživatelské fórum"
|
126 |
-
|
127 |
-
#: adminpages/admin_header.php:149 adminpages/membershiplevels.php:496
|
128 |
-
#: includes/adminpages.php:44 adminpages/admin_header.php:128
|
129 |
-
#: adminpages/membershiplevels.php:490
|
130 |
-
msgid "Membership Levels"
|
131 |
-
msgstr "Úroveň členství"
|
132 |
-
|
133 |
-
#: adminpages/admin_header.php:150 adminpages/pagesettings.php:92
|
134 |
-
#: adminpages/admin_header.php:129
|
135 |
-
msgid "Pages"
|
136 |
-
msgstr "Stránky"
|
137 |
-
|
138 |
-
#: adminpages/admin_header.php:151 adminpages/admin_header.php:130
|
139 |
-
msgid "Payment Gateway & SSL"
|
140 |
-
msgstr "Platební brány & SSL"
|
141 |
-
|
142 |
-
#: adminpages/admin_header.php:152 adminpages/memberslist.php:115
|
143 |
-
#: pages/account.php:52 adminpages/admin_header.php:131
|
144 |
-
msgid "Email"
|
145 |
-
msgstr "Email"
|
146 |
-
|
147 |
-
#: adminpages/admin_header.php:153 adminpages/admin_header.php:132
|
148 |
-
msgid "Advanced"
|
149 |
-
msgstr "Pokročilé"
|
150 |
-
|
151 |
-
#: adminpages/admin_header.php:154 includes/adminpages.php:14
|
152 |
-
#: includes/adminpages.php:69 adminpages/admin_header.php:133
|
153 |
-
msgid "Add Ons"
|
154 |
-
msgstr "Doplňky"
|
155 |
-
|
156 |
-
#: adminpages/advancedsettings.php:35
|
157 |
-
msgid "Your advanced settings have been updated."
|
158 |
-
msgstr "Vaše pokročilá nastavení budou aktualizována."
|
159 |
-
|
160 |
-
#: adminpages/advancedsettings.php:79 includes/adminpages.php:13
|
161 |
-
#: includes/adminpages.php:64
|
162 |
-
msgid "Advanced Settings"
|
163 |
-
msgstr "Pokročilá nastavení"
|
164 |
-
|
165 |
-
#: adminpages/advancedsettings.php:85
|
166 |
-
msgid "Message for Logged-in Non-members"
|
167 |
-
msgstr "Zpráva pro přihlášené v nečlenech"
|
168 |
-
|
169 |
-
#: adminpages/advancedsettings.php:89
|
170 |
-
msgid ""
|
171 |
-
"This message replaces the post content for non-members. Available variables"
|
172 |
-
msgstr "Tato zpráva nahrazuje obsah příspěvku pro nečleny. Dostupné proměné"
|
173 |
-
|
174 |
-
#: adminpages/advancedsettings.php:94
|
175 |
-
msgid "Message for Logged-out Users"
|
176 |
-
msgstr "Zpráva pro odhlášené uživatele"
|
177 |
-
|
178 |
-
#: adminpages/advancedsettings.php:98
|
179 |
-
msgid "This message replaces the post content for logged-out visitors."
|
180 |
-
msgstr "Tato zpráva nahrazuje obsah příspěvku pro odhlášené uživatele."
|
181 |
-
|
182 |
-
#: adminpages/advancedsettings.php:103
|
183 |
-
msgid "Message for RSS Feed"
|
184 |
-
msgstr "Zpráva pro RSS Feed"
|
185 |
-
|
186 |
-
#: adminpages/advancedsettings.php:107
|
187 |
-
msgid "This message replaces the post content in RSS feeds."
|
188 |
-
msgstr "Tato zpráva nahrazuje obsah příspěvku v RSSfeedu."
|
189 |
-
|
190 |
-
#: adminpages/advancedsettings.php:113
|
191 |
-
msgid "Show Excerpts to Non-Members?"
|
192 |
-
msgstr "Zobrazit ukázky pro nečleny?"
|
193 |
-
|
194 |
-
#: adminpages/advancedsettings.php:117
|
195 |
-
msgid "No - Hide excerpts."
|
196 |
-
msgstr "Ne - Skrýt ukázky"
|
197 |
-
|
198 |
-
#: adminpages/advancedsettings.php:118
|
199 |
-
msgid "Yes - Show excerpts."
|
200 |
-
msgstr "Ano - Ukázat ukázky"
|
201 |
-
|
202 |
-
#: adminpages/advancedsettings.php:128 adminpages/advancedsettings.php:187
|
203 |
-
#: adminpages/advancedsettings.php:199 adminpages/membershiplevels.php:569
|
204 |
-
#: adminpages/paymentsettings.php:429 adminpages/paymentsettings.php:454
|
205 |
-
#: includes/profile.php:123 adminpages/membershiplevels.php:563
|
206 |
-
#: adminpages/paymentsettings.php:414 includes/profile.php:121
|
207 |
-
msgid "No"
|
208 |
-
msgstr "Ne"
|
209 |
-
|
210 |
-
#: adminpages/advancedsettings.php:129
|
211 |
-
msgid "Hide Ads From All Members"
|
212 |
-
msgstr "Skrýt reklamy pro všechny členy"
|
213 |
-
|
214 |
-
#: adminpages/advancedsettings.php:130
|
215 |
-
msgid "Hide Ads From Certain Members"
|
216 |
-
msgstr "Skrýt reklamy pro některé členy"
|
217 |
-
|
218 |
-
#: adminpages/advancedsettings.php:137
|
219 |
-
msgid "Ads from the following plugins will be automatically turned off"
|
220 |
-
msgstr "Reklama z následujících pluginů se automaticky vypne"
|
221 |
-
|
222 |
-
#: adminpages/advancedsettings.php:138
|
223 |
-
msgid "To hide ads in your template code, use code like the following"
|
224 |
-
msgstr ""
|
225 |
-
"Chcete-li skrýt reklamy ve vašem kódu šablony, použijté kód jako je tento"
|
226 |
-
|
227 |
-
#: adminpages/advancedsettings.php:149
|
228 |
-
msgid "Choose Levels to Hide Ads From"
|
229 |
-
msgstr "Zvolte úrovně pro skrité reklam"
|
230 |
-
|
231 |
-
#: adminpages/advancedsettings.php:183
|
232 |
-
msgid "Redirect all traffic from registration page to /susbcription/?"
|
233 |
-
msgstr "Přesměrovat veškerý provoz z registrační stránky na / susbcription /?"
|
234 |
-
|
235 |
-
#: adminpages/advancedsettings.php:183
|
236 |
-
msgid "multisite only"
|
237 |
-
msgstr "Pouze pro multisite"
|
238 |
-
|
239 |
-
#: adminpages/advancedsettings.php:188 adminpages/membershiplevels.php:569
|
240 |
-
#: adminpages/paymentsettings.php:430 adminpages/paymentsettings.php:455
|
241 |
-
#: includes/profile.php:124 adminpages/membershiplevels.php:563
|
242 |
-
#: adminpages/paymentsettings.php:415 adminpages/paymentsettings.php:424
|
243 |
-
#: includes/profile.php:122
|
244 |
-
msgid "Yes"
|
245 |
-
msgstr "Ano"
|
246 |
-
|
247 |
-
#: adminpages/advancedsettings.php:195
|
248 |
-
msgid "Use reCAPTCHA?"
|
249 |
-
msgstr "Použít reCAPTCHU?"
|
250 |
-
|
251 |
-
#: adminpages/advancedsettings.php:200
|
252 |
-
msgid "Yes - Free memberships only."
|
253 |
-
msgstr "Ano - Pouze členové zdarma "
|
254 |
-
|
255 |
-
#: adminpages/advancedsettings.php:201
|
256 |
-
msgid "Yes - All memberships."
|
257 |
-
msgstr "Ano - všichni členové"
|
258 |
-
|
259 |
-
#: adminpages/advancedsettings.php:203
|
260 |
-
msgid "A free reCAPTCHA key is required."
|
261 |
-
msgstr "Je vyžadován volný reCAPTCHA klíč."
|
262 |
-
|
263 |
-
#: adminpages/advancedsettings.php:203
|
264 |
-
msgid "Click here to signup for reCAPTCHA"
|
265 |
-
msgstr "Klikněte zde pro registraci re CAPTCHA"
|
266 |
-
|
267 |
-
#: adminpages/advancedsettings.php:209
|
268 |
-
msgid "reCAPTCHA Public Key"
|
269 |
-
msgstr "reCAPTCHA veřejný klíč"
|
270 |
-
|
271 |
-
#: adminpages/advancedsettings.php:212
|
272 |
-
msgid "reCAPTCHA Private Key"
|
273 |
-
msgstr "reCAPTCHA osobní klíč"
|
274 |
-
|
275 |
-
#: adminpages/advancedsettings.php:218
|
276 |
-
msgid "Require Terms of Service on signups?"
|
277 |
-
msgstr "Vyžadovat souhlas s podmínkami služeb o registraci?"
|
278 |
-
|
279 |
-
#: adminpages/advancedsettings.php:225
|
280 |
-
msgid ""
|
281 |
-
"If yes, create a WordPress page containing your TOS agreement and assign it "
|
282 |
-
"using the dropdown above."
|
283 |
-
msgstr ""
|
284 |
-
"Pokud ano, WordPress vytvoří stránky obsahující váš souhlas s podmínkami "
|
285 |
-
"služeb a přiřadít jej pomocí rozevíracího seznamu výše."
|
286 |
-
|
287 |
-
#: adminpages/advancedsettings.php:284 adminpages/pagesettings.php:223
|
288 |
-
#: adminpages/paymentsettings.php:526 adminpages/pagesettings.php:209
|
289 |
-
#: adminpages/paymentsettings.php:485
|
290 |
-
msgid "Save Settings"
|
291 |
-
msgstr "Uložit nastavení"
|
292 |
-
|
293 |
-
#: adminpages/discountcodes.php:48
|
294 |
-
msgid "Discount code updated successfully."
|
295 |
-
msgstr "Slevový kód byl úspěšně upraven."
|
296 |
-
|
297 |
-
#: adminpages/discountcodes.php:55
|
298 |
-
msgid "Error updating discount code. That code may already be in use."
|
299 |
-
msgstr ""
|
300 |
-
"Chyba při aktualizaci slevového kupónu. Tento kupón může být již v provozu."
|
301 |
-
|
302 |
-
#: adminpages/discountcodes.php:64
|
303 |
-
msgid "Discount code added successfully."
|
304 |
-
msgstr "Slevový kód byl úspěšně přidán"
|
305 |
-
|
306 |
-
#: adminpages/discountcodes.php:71
|
307 |
-
msgid "Error adding discount code. That code may already be in use."
|
308 |
-
msgstr ""
|
309 |
-
"Chyba při přidání slevového kupónu. Tento kupón může být již v provozu."
|
310 |
-
|
311 |
-
#: adminpages/discountcodes.php:196
|
312 |
-
#, php-format
|
313 |
-
msgid "Error saving values for the %s level."
|
314 |
-
msgstr "Chyba při hodnotě pro %s úroveň."
|
315 |
-
|
316 |
-
#: adminpages/discountcodes.php:204
|
317 |
-
msgid "There were errors updating the level values: "
|
318 |
-
msgstr "Došlo k chybám při aktualizací hodnot úrovní:"
|
319 |
-
|
320 |
-
#: adminpages/discountcodes.php:234
|
321 |
-
#, php-format
|
322 |
-
msgid "Code %s deleted successfully."
|
323 |
-
msgstr "Kúpón %s byl úspěšně smazán."
|
324 |
-
|
325 |
-
#: adminpages/discountcodes.php:239
|
326 |
-
msgid ""
|
327 |
-
"Error deleting discount code. The code was only partially deleted. Please "
|
328 |
-
"try again."
|
329 |
-
msgstr ""
|
330 |
-
"Chyba při mazání slevového kupónu. Kód byl jen částečně odstraněn. Zkuste to "
|
331 |
-
"prosím znovu."
|
332 |
-
|
333 |
-
#: adminpages/discountcodes.php:245
|
334 |
-
msgid "Error deleting code. Please try again."
|
335 |
-
msgstr "Chyba při mazání kupónu. Zkuste to znovu."
|
336 |
-
|
337 |
-
#: adminpages/discountcodes.php:251
|
338 |
-
msgid "Code not found."
|
339 |
-
msgstr "Kupón nenalezen."
|
340 |
-
|
341 |
-
#: adminpages/discountcodes.php:264
|
342 |
-
msgid "Edit Discount Code"
|
343 |
-
msgstr "Upravit slevový kupón"
|
344 |
-
|
345 |
-
#: adminpages/discountcodes.php:266 adminpages/discountcodes.php:526
|
346 |
-
msgid "Add New Discount Code"
|
347 |
-
msgstr "Vložit nový slevový kupón"
|
348 |
-
|
349 |
-
#: adminpages/discountcodes.php:306 adminpages/discountcodes.php:547
|
350 |
-
#: adminpages/membershiplevels.php:284 adminpages/membershiplevels.php:511
|
351 |
-
#: adminpages/memberslist.php:111 adminpages/orders.php:597
|
352 |
-
#: adminpages/reports/login.php:140 adminpages/membershiplevels.php:505
|
353 |
-
msgid "ID"
|
354 |
-
msgstr "ID"
|
355 |
-
|
356 |
-
#: adminpages/discountcodes.php:307 adminpages/orders.php:211
|
357 |
-
msgid "This will be generated when you save."
|
358 |
-
msgstr "Toto bude generováno, když práci uložíte."
|
359 |
-
|
360 |
-
#: adminpages/discountcodes.php:311 adminpages/discountcodes.php:548
|
361 |
-
#: adminpages/orders.php:215 adminpages/orders.php:598
|
362 |
-
msgid "Code"
|
363 |
-
msgstr "Kód"
|
364 |
-
|
365 |
-
#: adminpages/discountcodes.php:349
|
366 |
-
msgid "Start Date"
|
367 |
-
msgstr "Počáteční datum"
|
368 |
-
|
369 |
-
#: adminpages/discountcodes.php:367 pages/billing.php:249
|
370 |
-
#: pages/checkout.php:532 pages/checkout.php:525
|
371 |
-
msgid "Expiration Date"
|
372 |
-
msgstr "Datum vypršení"
|
373 |
-
|
374 |
-
#: adminpages/discountcodes.php:385 adminpages/discountcodes.php:551
|
375 |
-
msgid "Uses"
|
376 |
-
msgstr "Uživatelé"
|
377 |
-
|
378 |
-
#: adminpages/discountcodes.php:388
|
379 |
-
msgid "Leave blank for unlimited uses."
|
380 |
-
msgstr "Pro neomezené použití zanechte prázdné."
|
381 |
-
|
382 |
-
#: adminpages/discountcodes.php:427 adminpages/membershiplevels.php:337
|
383 |
-
#: adminpages/membershiplevels.php:513 pages/levels.php:14
|
384 |
-
#: adminpages/membershiplevels.php:507
|
385 |
-
msgid "Initial Payment"
|
386 |
-
msgstr "Počáteční platba"
|
387 |
-
|
388 |
-
#: adminpages/discountcodes.php:428 adminpages/membershiplevels.php:338
|
389 |
-
msgid "The initial amount collected at registration."
|
390 |
-
msgstr "Počáteční částka získaná při registraci."
|
391 |
-
|
392 |
-
#: adminpages/discountcodes.php:432 adminpages/membershiplevels.php:342
|
393 |
-
msgid "Recurring Subscription"
|
394 |
-
msgstr "Opakované předplatné"
|
395 |
-
|
396 |
-
#: adminpages/discountcodes.php:433 adminpages/membershiplevels.php:343
|
397 |
-
msgid "Check if this level has a recurring subscription payment."
|
398 |
-
msgstr "Zkontrolujte, zda má tato úroveň opakující se platby předplatného."
|
399 |
-
|
400 |
-
#: adminpages/discountcodes.php:437
|
401 |
-
msgid "Billing Ammount"
|
402 |
-
msgstr "Fakturační množství"
|
403 |
-
|
404 |
-
#: adminpages/discountcodes.php:451 adminpages/membershiplevels.php:362
|
405 |
-
msgid "The amount to be billed one cycle after the initial payment."
|
406 |
-
msgstr "Částka, která má být účtována za jeden cyklus, po první platbě."
|
407 |
-
|
408 |
-
#: adminpages/discountcodes.php:456 adminpages/membershiplevels.php:380
|
409 |
-
msgid "Billing Cycle Limit"
|
410 |
-
msgstr "Limit fakturačního cyklu"
|
411 |
-
|
412 |
-
#: adminpages/discountcodes.php:459 adminpages/membershiplevels.php:384
|
413 |
-
msgid ""
|
414 |
-
"The <strong>total</strong> number of recurring billing cycles for this "
|
415 |
-
"level, including the trial period (if applicable) but not including the "
|
416 |
-
"initial payment. Set to zero if membership is indefinite."
|
417 |
-
msgstr ""
|
418 |
-
"<strong> Všech </ strong> počet opakujících se fakturačních cyklů na této "
|
419 |
-
"úrovni, včetně zkušební doby (pokud existuje), ale ne včetně počáteční "
|
420 |
-
"platby. Nastavit na nulu, pokud je členství na dobu neurčitou."
|
421 |
-
|
422 |
-
#: adminpages/discountcodes.php:464 adminpages/membershiplevels.php:393
|
423 |
-
msgid "Custom Trial"
|
424 |
-
msgstr "Vlastní zkušební verze"
|
425 |
-
|
426 |
-
#: adminpages/discountcodes.php:465 adminpages/membershiplevels.php:395
|
427 |
-
#: adminpages/membershiplevels.php:394
|
428 |
-
msgid "Check to add a custom trial period."
|
429 |
-
msgstr "Zkontrolujte, zda jste přidal vlastní zkušební dobu."
|
430 |
-
|
431 |
-
#: adminpages/discountcodes.php:469 adminpages/membershiplevels.php:404
|
432 |
-
#: adminpages/membershiplevels.php:398
|
433 |
-
msgid "Trial Billing Amount"
|
434 |
-
msgstr "Množství zkušebních fakturací"
|
435 |
-
|
436 |
-
#: adminpages/discountcodes.php:472 adminpages/membershiplevels.php:407
|
437 |
-
#: adminpages/membershiplevels.php:401
|
438 |
-
msgid "for the first"
|
439 |
-
msgstr "zaprvé"
|
440 |
-
|
441 |
-
#: adminpages/discountcodes.php:474 adminpages/membershiplevels.php:409
|
442 |
-
#: adminpages/membershiplevels.php:403
|
443 |
-
msgid "subscription payments"
|
444 |
-
msgstr "Předplatné"
|
445 |
-
|
446 |
-
#: adminpages/discountcodes.php:479 adminpages/membershiplevels.php:437
|
447 |
-
#: adminpages/membershiplevels.php:431
|
448 |
-
msgid "Membership Expiration"
|
449 |
-
msgstr "Vypršení členství"
|
450 |
-
|
451 |
-
#: adminpages/discountcodes.php:480
|
452 |
-
msgid "Check this to set an expiration date for new sign ups."
|
453 |
-
msgstr "Zkontorlujte datum vypršení platnosti nového zápisu."
|
454 |
-
|
455 |
-
#: adminpages/discountcodes.php:484 adminpages/membershiplevels.php:442
|
456 |
-
#: adminpages/membershiplevels.php:436
|
457 |
-
msgid "Expires In"
|
458 |
-
msgstr "Vyprší v"
|
459 |
-
|
460 |
-
#: adminpages/discountcodes.php:497
|
461 |
-
msgid ""
|
462 |
-
"How long before the expiration expires. Note that any future payments will "
|
463 |
-
"be cancelled when the membership expires."
|
464 |
-
msgstr ""
|
465 |
-
"Jak dlouho před vypršením platnosti. Všimněte si, že všechny budoucí platby "
|
466 |
-
"budou zrušeny po vypršení členství."
|
467 |
-
|
468 |
-
#: adminpages/discountcodes.php:525
|
469 |
-
msgid "Memberships Discount Codes"
|
470 |
-
msgstr "Slevové kupóny pro členy"
|
471 |
-
|
472 |
-
#: adminpages/discountcodes.php:535
|
473 |
-
msgid "Search Discount Codes"
|
474 |
-
msgstr "Najít slevové kupóny"
|
475 |
-
|
476 |
-
#: adminpages/discountcodes.php:538 adminpages/reports/login.php:81
|
477 |
-
msgid "Search"
|
478 |
-
msgstr "Hledat"
|
479 |
-
|
480 |
-
#: adminpages/discountcodes.php:549
|
481 |
-
msgid "Starts"
|
482 |
-
msgstr "Statistiky"
|
483 |
-
|
484 |
-
#: adminpages/discountcodes.php:550 adminpages/memberslist.php:121
|
485 |
-
#: adminpages/reports/login.php:145 includes/profile.php:120
|
486 |
-
#: includes/profile.php:118
|
487 |
-
msgid "Expires"
|
488 |
-
msgstr "Vyprší"
|
489 |
-
|
490 |
-
#: adminpages/discountcodes.php:552
|
491 |
-
msgid "Levels"
|
492 |
-
msgstr "Úrovně"
|
493 |
-
|
494 |
-
#: adminpages/discountcodes.php:570
|
495 |
-
msgid "Create your first discount code now"
|
496 |
-
msgstr "Nyní vytvořte Váš první slevový kupón"
|
497 |
-
|
498 |
-
#: adminpages/discountcodes.php:570
|
499 |
-
msgid ""
|
500 |
-
"Discount codes allow you to offer your memberships at discounted prices to "
|
501 |
-
"select customers."
|
502 |
-
msgstr ""
|
503 |
-
"Slevové kupóny vám umožňují nabízet své členství, pro vybrané zákazníky, za "
|
504 |
-
"zvýhodněné ceny"
|
505 |
-
|
506 |
-
#: adminpages/discountcodes.php:614 adminpages/membershiplevels.php:570
|
507 |
-
#: adminpages/orders.php:658 adminpages/membershiplevels.php:564
|
508 |
-
msgid "edit"
|
509 |
-
msgstr "upravit"
|
510 |
-
|
511 |
-
#: adminpages/discountcodes.php:617
|
512 |
-
#, php-format
|
513 |
-
msgid ""
|
514 |
-
"Are you sure you want to delete the %s discount code? The subscriptions for "
|
515 |
-
"existing users will not change, but new users will not be able to use this "
|
516 |
-
"code anymore."
|
517 |
-
msgstr ""
|
518 |
-
"Jste si jisti, že chcete smazat % s slevový kupón? Odběry pro stávající "
|
519 |
-
"uživatele se nezmění, ale noví uživatelé nebudou moci použít tyto kupóny."
|
520 |
-
|
521 |
-
#: adminpages/discountcodes.php:617 adminpages/membershiplevels.php:572
|
522 |
-
#: adminpages/orders.php:664 adminpages/membershiplevels.php:566
|
523 |
-
msgid "delete"
|
524 |
-
msgstr "smazat"
|
525 |
-
|
526 |
-
#: adminpages/emailsettings.php:60 includes/adminpages.php:12
|
527 |
-
#: includes/adminpages.php:59
|
528 |
-
msgid "Email Settings"
|
529 |
-
msgstr "Nastavení e-mailu"
|
530 |
-
|
531 |
-
#: adminpages/emailsettings.php:61
|
532 |
-
msgid ""
|
533 |
-
"By default, system generated emails are sent from "
|
534 |
-
"<em><strong>wordpress@yourdomain.com</strong></em>. You can update this from "
|
535 |
-
"address using the fields below."
|
536 |
-
msgstr ""
|
537 |
-
"Ve výchozím nastavení jsou generovány e-maily, které jsou odesílány z "
|
538 |
-
"<em><strong>wordpress@yourdomain.com</strong></em>. Můžete aktualizovat z "
|
539 |
-
"adresy, pomocí níže uvedených polí."
|
540 |
-
|
541 |
-
#: adminpages/emailsettings.php:63
|
542 |
-
msgid ""
|
543 |
-
"To modify the appearance of system generated emails, add the files "
|
544 |
-
"<em>email_header.html</em> and <em>email_footer.html</em> to your theme's "
|
545 |
-
"directory. This will modify both the WordPress default messages as well as "
|
546 |
-
"messages generated by Paid Memberships Pro. <a title=\"Paid Memberships Pro "
|
547 |
-
"- Member Communications\" target=\"_blank\" href=\"http://www."
|
548 |
-
"paidmembershipspro.com/documentation/member-communications/\">Click here to "
|
549 |
-
"learn more about Paid Memberships Pro emails</a>."
|
550 |
-
msgstr ""
|
551 |
-
"Chcete-li změnit vzhled systémem generovaných e-mailů, přidejte soubory "
|
552 |
-
"<em>email_header.html < em> a <em>email_footer.html </em> do adresáře vašeho "
|
553 |
-
"motivu. To bude upravovat jak výchozí zprávy WordPress, tak i zprávy "
|
554 |
-
"generované pomocí Paid Memberships Pro. <a title=\"Paid Memberships Pro - "
|
555 |
-
"Member Communications\" target=\"_blank\" href=\"http://www."
|
556 |
-
"paidmembershipspro.com/documentation/member-communications/\"> Klikněte zde "
|
557 |
-
"a dozvíte se více o Paid Memberships Pro emails</a>."
|
558 |
-
|
559 |
-
#: adminpages/emailsettings.php:69
|
560 |
-
msgid "From Email"
|
561 |
-
msgstr "Z e-mailu"
|
562 |
-
|
563 |
-
#: adminpages/emailsettings.php:77
|
564 |
-
msgid "From Name"
|
565 |
-
msgstr "Z názvu"
|
566 |
-
|
567 |
-
#: adminpages/emailsettings.php:86
|
568 |
-
msgid "Send the site admin emails"
|
569 |
-
msgstr "Odešlete emaly správci webu"
|
570 |
-
|
571 |
-
#: adminpages/emailsettings.php:92
|
572 |
-
msgid "Checkout"
|
573 |
-
msgstr "Pokladna"
|
574 |
-
|
575 |
-
#: adminpages/emailsettings.php:96
|
576 |
-
msgid "when a member checks out."
|
577 |
-
msgstr "když členové zaplatí"
|
578 |
-
|
579 |
-
#: adminpages/emailsettings.php:101
|
580 |
-
msgid "Admin Changes"
|
581 |
-
msgstr "Změny správce"
|
582 |
-
|
583 |
-
#: adminpages/emailsettings.php:105
|
584 |
-
msgid "when an admin changes a user's membership level through the dashboard."
|
585 |
-
msgstr "když správce změní úrověň členství uživatelů přes nástěnku."
|
586 |
-
|
587 |
-
#: adminpages/emailsettings.php:110
|
588 |
-
msgid "Cancellation"
|
589 |
-
msgstr "Zrušení."
|
590 |
-
|
591 |
-
#: adminpages/emailsettings.php:114
|
592 |
-
msgid "when a user cancels his or her account."
|
593 |
-
msgstr "když uživatel zruší svůj účet."
|
594 |
-
|
595 |
-
#: adminpages/emailsettings.php:119
|
596 |
-
msgid "Bill Updates"
|
597 |
-
msgstr "Aktualizace účtenky"
|
598 |
-
|
599 |
-
#: adminpages/emailsettings.php:123
|
600 |
-
msgid "when a user updates his or her billing information."
|
601 |
-
msgstr "pokud uživatel aktualizuje svoje fakturační údaje."
|
602 |
-
|
603 |
-
#: adminpages/emailsettings.php:129
|
604 |
-
msgid "Send members emails"
|
605 |
-
msgstr "Poslat uživatelské e-maily"
|
606 |
-
|
607 |
-
#: adminpages/emailsettings.php:135
|
608 |
-
msgid "New Users"
|
609 |
-
msgstr "Noví uživatelé"
|
610 |
-
|
611 |
-
#: adminpages/emailsettings.php:139
|
612 |
-
msgid ""
|
613 |
-
"Default WP notification email. (Recommended: Leave unchecked. Members will "
|
614 |
-
"still get an email confirmation from PMPro after checkout.)"
|
615 |
-
msgstr ""
|
616 |
-
"Výchozí WP e-mailové upozornění. (Doporučeno: Nechte zaškrtnuté. Členové "
|
617 |
-
"budou ještě dostat e-mailem potvrzení od PMPro po vyzkoušení.)."
|
618 |
-
|
619 |
-
#: adminpages/membershiplevels.php:118
|
620 |
-
msgid "Membership level updated successfully."
|
621 |
-
msgstr "Úroveň členství byla úspěšne uprave."
|
622 |
-
|
623 |
-
#: adminpages/membershiplevels.php:124
|
624 |
-
msgid "Error updating membership level."
|
625 |
-
msgstr "Chyba při aktualizaci členské úrovně."
|
626 |
-
|
627 |
-
#: adminpages/membershiplevels.php:141
|
628 |
-
msgid "Membership level added successfully."
|
629 |
-
msgstr "Členská úroveň úspěšně přidána."
|
630 |
-
|
631 |
-
#: adminpages/membershiplevels.php:146
|
632 |
-
msgid "Error adding membership level."
|
633 |
-
msgstr "Chyba při přidávání členské úrovně."
|
634 |
-
|
635 |
-
#: adminpages/membershiplevels.php:179
|
636 |
-
#, php-format
|
637 |
-
msgid ""
|
638 |
-
"There was an error canceling the subscription for user with ID=%d. You will "
|
639 |
-
"want to check your payment gateway to see if their subscription is still "
|
640 |
-
"active."
|
641 |
-
msgstr ""
|
642 |
-
"Došlo k chybě při zrušení odběru pro uživatele s ID =%d. Budete chtít "
|
643 |
-
"zkontrolovat platební bránu, zda je jejich předplatné je stále aktivní."
|
644 |
-
|
645 |
-
#: adminpages/membershiplevels.php:182
|
646 |
-
msgid "Last Invoice"
|
647 |
-
msgstr "Poslední faktury"
|
648 |
-
|
649 |
-
#: adminpages/membershiplevels.php:196
|
650 |
-
msgid "Membership level deleted successfully."
|
651 |
-
msgstr "Úroveň členství byla úspěšně smazána."
|
652 |
-
|
653 |
-
#: adminpages/membershiplevels.php:201 adminpages/membershiplevels.php:207
|
654 |
-
msgid "Error deleting membership level."
|
655 |
-
msgstr "Chyb a při mazání členské úrovně."
|
656 |
-
|
657 |
-
#: adminpages/membershiplevels.php:222
|
658 |
-
msgid "Edit Membership Level"
|
659 |
-
msgstr "Změna uživatelské úrovně"
|
660 |
-
|
661 |
-
#: adminpages/membershiplevels.php:224
|
662 |
-
msgid "Add New Membership Level"
|
663 |
-
msgstr "Vložit novou úroveň členství"
|
664 |
-
|
665 |
-
#: adminpages/membershiplevels.php:291 adminpages/membershiplevels.php:512
|
666 |
-
#: adminpages/reports/login.php:142 adminpages/membershiplevels.php:506
|
667 |
-
msgid "Name"
|
668 |
-
msgstr "Jméno"
|
669 |
-
|
670 |
-
#: adminpages/membershiplevels.php:296
|
671 |
-
msgid "Description"
|
672 |
-
msgstr "Popis"
|
673 |
-
|
674 |
-
#: adminpages/membershiplevels.php:314
|
675 |
-
msgid "Confirmation Message"
|
676 |
-
msgstr "Potvrzovací zpráva"
|
677 |
-
|
678 |
-
#: adminpages/membershiplevels.php:333
|
679 |
-
msgid "Billing Details"
|
680 |
-
msgstr "Fakturační detaily"
|
681 |
-
|
682 |
-
#: adminpages/membershiplevels.php:347
|
683 |
-
msgid "Billing Amount"
|
684 |
-
msgstr "Množství faktur"
|
685 |
-
|
686 |
-
#: adminpages/membershiplevels.php:349
|
687 |
-
msgid "per"
|
688 |
-
msgstr "na"
|
689 |
-
|
690 |
-
#: adminpages/membershiplevels.php:353
|
691 |
-
msgid "Day(s)"
|
692 |
-
msgstr "Den(y)"
|
693 |
-
|
694 |
-
#: adminpages/membershiplevels.php:353
|
695 |
-
msgid "Month(s)"
|
696 |
-
msgstr "Měsíc(e)"
|
697 |
-
|
698 |
-
#: adminpages/membershiplevels.php:353
|
699 |
-
msgid "Week(s)"
|
700 |
-
msgstr "Týden(y)"
|
701 |
-
|
702 |
-
#: adminpages/membershiplevels.php:353
|
703 |
-
msgid "Year(s)"
|
704 |
-
msgstr "Rok(y)"
|
705 |
-
|
706 |
-
#: adminpages/membershiplevels.php:364
|
707 |
-
msgid ""
|
708 |
-
"Stripe integration currently only supports billing periods of \"Month\" or "
|
709 |
-
"\"Year\"."
|
710 |
-
msgstr ""
|
711 |
-
"Integrace Stripe v současné době podporuje pouze fakturace období \"Month\" "
|
712 |
-
"or \"Year\"."
|
713 |
-
|
714 |
-
#: adminpages/membershiplevels.php:366
|
715 |
-
msgid ""
|
716 |
-
"Braintree integration currently only supports billing periods of \"Month\" "
|
717 |
-
"or \"Year\"."
|
718 |
-
msgstr ""
|
719 |
-
"Integrace Braintree v současné době podporuje pouze fakturace období \"Month"
|
720 |
-
"\" or \"Year\"."
|
721 |
-
|
722 |
-
#: adminpages/membershiplevels.php:368
|
723 |
-
msgid ""
|
724 |
-
"Payflow integration currently only supports billing frequencies of 1 and "
|
725 |
-
"billing periods of \"Week\", \"Month\" or \"Year\"."
|
726 |
-
msgstr ""
|
727 |
-
"Integrace Payflow v současné době podporuje pouze fakturace frekvence 1 a "
|
728 |
-
"fakturace období \"Week\", \"Month\" nebo \"Year\"."
|
729 |
-
|
730 |
-
#: adminpages/membershiplevels.php:372
|
731 |
-
msgid ""
|
732 |
-
"After saving this level, make note of the ID and create a \"Plan\" in your "
|
733 |
-
"Braintree dashboard with the same settings and the \"Plan ID\" set to "
|
734 |
-
"<em>pmpro_#</em>, where # is the level ID."
|
735 |
-
msgstr ""
|
736 |
-
"Po uložení této úrovně si poznamenejte ID a vytvořte \"Plan\" ve vašem "
|
737 |
-
"Braintree nástěnce se stejným nastavením a \"Plan ID\" nastavte na "
|
738 |
-
"<em>pmpro_#</em>, kde # je úroveň ID."
|
739 |
-
|
740 |
-
#: adminpages/membershiplevels.php:372 adminpages/membershiplevels.php:374
|
741 |
-
#: adminpages/paymentsettings.php:174 adminpages/paymentsettings.php:170
|
742 |
-
msgid "Note"
|
743 |
-
msgstr "Poznámka"
|
744 |
-
|
745 |
-
#: adminpages/membershiplevels.php:374
|
746 |
-
msgid ""
|
747 |
-
"You will need to create a \"Plan\" in your Braintree dashboard with the same "
|
748 |
-
"settings and the \"Plan ID\" set to"
|
749 |
-
msgstr ""
|
750 |
-
"Budete muset vytvořit \"Plan\" v Braintree nástěnce se stejným nastavením a "
|
751 |
-
"\"Plan ID\" nastavit na"
|
752 |
-
|
753 |
-
#: adminpages/membershiplevels.php:386
|
754 |
-
msgid ""
|
755 |
-
"Stripe integration currently does not support billing limits. You can still "
|
756 |
-
"set an expiration date below."
|
757 |
-
msgstr ""
|
758 |
-
"Integrace Stripe v současné době nepodporuje fakturační limity. Níže můžete "
|
759 |
-
"nastavit datum vypršení platnosti."
|
760 |
-
|
761 |
-
#: adminpages/membershiplevels.php:398
|
762 |
-
msgid ""
|
763 |
-
"2Checkout integration does not support custom trials. You can do one period "
|
764 |
-
"trials by setting an initial payment different from the billing amount."
|
765 |
-
msgstr ""
|
766 |
-
"2Checkout integrace nepodporuje zkušební dobu. Můžete to udělat v jedné "
|
767 |
-
"zkušební době nastavením počáteční platbu, která se liší od fakturační "
|
768 |
-
"částky."
|
769 |
-
|
770 |
-
#: adminpages/membershiplevels.php:412 adminpages/membershiplevels.php:406
|
771 |
-
msgid ""
|
772 |
-
"Stripe integration currently does not support trial amounts greater than $0."
|
773 |
-
msgstr ""
|
774 |
-
"Integrace Stripe v současné době nepodporuje zkušební částky vyšší než 0 Kč."
|
775 |
-
|
776 |
-
#: adminpages/membershiplevels.php:416 adminpages/membershiplevels.php:410
|
777 |
-
msgid ""
|
778 |
-
"Braintree integration currently does not support trial amounts greater than "
|
779 |
-
"$0."
|
780 |
-
msgstr ""
|
781 |
-
"Integrace Braintree v současné době nepodporuje zkušební částky vyšší než 0 "
|
782 |
-
"Kč."
|
783 |
-
|
784 |
-
#: adminpages/membershiplevels.php:420 adminpages/membershiplevels.php:414
|
785 |
-
msgid ""
|
786 |
-
"Payflow integration currently does not support trial amounts greater than $0."
|
787 |
-
msgstr ""
|
788 |
-
"Integrace Payflow v současné době nepodporuje zkušební částky vyšší než 0 Kč."
|
789 |
-
|
790 |
-
#: adminpages/membershiplevels.php:428 adminpages/membershiplevels.php:422
|
791 |
-
msgid "Other Settings"
|
792 |
-
msgstr "Další nastavení"
|
793 |
-
|
794 |
-
#: adminpages/membershiplevels.php:432 adminpages/membershiplevels.php:426
|
795 |
-
msgid "Disable New Signups"
|
796 |
-
msgstr "Zastavení novích registrací"
|
797 |
-
|
798 |
-
#: adminpages/membershiplevels.php:433 adminpages/membershiplevels.php:427
|
799 |
-
msgid ""
|
800 |
-
"Check to hide this level from the membership levels page and disable "
|
801 |
-
"registration."
|
802 |
-
msgstr ""
|
803 |
-
"Podívejte se na skrytí této úrovně na stránce úrovní a zakažte registraci."
|
804 |
-
|
805 |
-
#: adminpages/membershiplevels.php:438 adminpages/membershiplevels.php:432
|
806 |
-
msgid "Check this to set when membership access expires."
|
807 |
-
msgstr "Zkontrolujte, zda je toto nastaveno, když vyprší přístup k členství."
|
808 |
-
|
809 |
-
#: adminpages/membershiplevels.php:455 adminpages/membershiplevels.php:449
|
810 |
-
msgid ""
|
811 |
-
"Set the duration of membership access. Note that the any future payments "
|
812 |
-
"(recurring subscription, if any) will be cancelled when the membership "
|
813 |
-
"expires."
|
814 |
-
msgstr ""
|
815 |
-
"Nastavte dobu trvání přístupu členství. Všimněte si, že všechny budoucí "
|
816 |
-
"platby (opakující předplatné, pokud existuje) budou zrušeny, pokud vyprší "
|
817 |
-
"členství."
|
818 |
-
|
819 |
-
#: adminpages/membershiplevels.php:463 adminpages/membershiplevels.php:457
|
820 |
-
msgid "Content Settings"
|
821 |
-
msgstr "Nastavení obsahu"
|
822 |
-
|
823 |
-
#: adminpages/membershiplevels.php:467 adminpages/membershiplevels.php:461
|
824 |
-
msgid "Categories"
|
825 |
-
msgstr "Kategorie"
|
826 |
-
|
827 |
-
#: adminpages/membershiplevels.php:496 adminpages/membershiplevels.php:490
|
828 |
-
msgid "Add New Level"
|
829 |
-
msgstr "Vložit novou úroveň"
|
830 |
-
|
831 |
-
#: adminpages/membershiplevels.php:499 adminpages/membershiplevels.php:502
|
832 |
-
#: adminpages/membershiplevels.php:493 adminpages/membershiplevels.php:496
|
833 |
-
msgid "Search Levels"
|
834 |
-
msgstr "Najít úrovně"
|
835 |
-
|
836 |
-
#: adminpages/membershiplevels.php:514 adminpages/membershiplevels.php:508
|
837 |
-
msgid "Billing Cycle"
|
838 |
-
msgstr "Cyklus fakturací"
|
839 |
-
|
840 |
-
#: adminpages/membershiplevels.php:515 adminpages/membershiplevels.php:509
|
841 |
-
msgid "Trial Cycle"
|
842 |
-
msgstr "Zkušební cyklus"
|
843 |
-
|
844 |
-
#: adminpages/membershiplevels.php:516 pages/confirmation.php:83
|
845 |
-
#: pages/invoice.php:70 adminpages/membershiplevels.php:510
|
846 |
-
#: pages/confirmation.php:81 pages/invoice.php:68
|
847 |
-
msgid "Expiration"
|
848 |
-
msgstr "Vypršení"
|
849 |
-
|
850 |
-
#: adminpages/membershiplevels.php:517 adminpages/membershiplevels.php:511
|
851 |
-
msgid "Allow Signups"
|
852 |
-
msgstr "Povolit registraci"
|
853 |
-
|
854 |
-
#: adminpages/membershiplevels.php:540 adminpages/membershiplevels.php:534
|
855 |
-
msgid "FREE"
|
856 |
-
msgstr "ZDARMA"
|
857 |
-
|
858 |
-
#: adminpages/membershiplevels.php:549 adminpages/membershiplevels.php:543
|
859 |
-
msgid "every"
|
860 |
-
msgstr "každý"
|
861 |
-
|
862 |
-
#: adminpages/membershiplevels.php:551 adminpages/membershiplevels.php:559
|
863 |
-
#: adminpages/reports/memberships.php:304
|
864 |
-
#: adminpages/reports/memberships.php:315 adminpages/reports/sales.php:204
|
865 |
-
#: adminpages/reports/sales.php:215 adminpages/membershiplevels.php:545
|
866 |
-
#: adminpages/membershiplevels.php:553 adminpages/reports/sales.php:195
|
867 |
-
#: adminpages/reports/sales.php:206
|
868 |
-
msgid "for"
|
869 |
-
msgstr "pro"
|
870 |
-
|
871 |
-
#: adminpages/membershiplevels.php:566 adminpages/membershiplevels.php:560
|
872 |
-
msgid "After"
|
873 |
-
msgstr "Po"
|
874 |
-
|
875 |
-
#: adminpages/membershiplevels.php:571 adminpages/orders.php:661
|
876 |
-
#: adminpages/membershiplevels.php:565
|
877 |
-
msgid "copy"
|
878 |
-
msgstr "kopie"
|
879 |
-
|
880 |
-
#: adminpages/membershiplevels.php:572 adminpages/membershiplevels.php:566
|
881 |
-
#, php-format
|
882 |
-
msgid ""
|
883 |
-
"Are you sure you want to delete membership level %s? All subscriptions will "
|
884 |
-
"be cancelled."
|
885 |
-
msgstr ""
|
886 |
-
"Jste si jisti, že chcete smazat úrovně členství % s? Všechny odběry budou "
|
887 |
-
"zrušeny."
|
888 |
-
|
889 |
-
#: adminpages/memberslist.php:25 includes/adminpages.php:15
|
890 |
-
#: includes/adminpages.php:74
|
891 |
-
msgid "Members List"
|
892 |
-
msgstr "Seznam členů"
|
893 |
-
|
894 |
-
#: adminpages/memberslist.php:26 adminpages/orders.php:522
|
895 |
-
msgid "Export to CSV"
|
896 |
-
msgstr "Export do CSV"
|
897 |
-
|
898 |
-
#: adminpages/memberslist.php:30 adminpages/reports/login.php:65
|
899 |
-
#: adminpages/reports/memberships.php:292 adminpages/reports/sales.php:194
|
900 |
-
#: adminpages/reports/sales.php:185
|
901 |
-
msgid "Show"
|
902 |
-
msgstr "Ukaž"
|
903 |
-
|
904 |
-
#: adminpages/memberslist.php:32 adminpages/reports/login.php:67
|
905 |
-
#: adminpages/reports/memberships.php:317 adminpages/reports/sales.php:217
|
906 |
-
#: adminpages/reports/sales.php:208
|
907 |
-
msgid "All Levels"
|
908 |
-
msgstr "Všechny úrovně"
|
909 |
-
|
910 |
-
#: adminpages/memberslist.php:46 adminpages/memberslist.php:49
|
911 |
-
msgid "Search Members"
|
912 |
-
msgstr "Prohledat členy"
|
913 |
-
|
914 |
-
#: adminpages/memberslist.php:103
|
915 |
-
#, php-format
|
916 |
-
msgid "%d members found."
|
917 |
-
msgstr "%d členů nalezeno"
|
918 |
-
|
919 |
-
#: adminpages/memberslist.php:112 pages/account.php:51 pages/checkout.php:171
|
920 |
-
#: pages/checkout.php:168
|
921 |
-
msgid "Username"
|
922 |
-
msgstr "Uživatelské jméno"
|
923 |
-
|
924 |
-
#: adminpages/memberslist.php:113
|
925 |
-
msgid "First Name"
|
926 |
-
msgstr "Jméno"
|
927 |
-
|
928 |
-
#: adminpages/memberslist.php:114
|
929 |
-
msgid "Last Name"
|
930 |
-
msgstr "Příjmení"
|
931 |
-
|
932 |
-
#: adminpages/memberslist.php:117 pages/account.php:90 pages/billing.php:58
|
933 |
-
#: pages/checkout.php:321 pages/confirmation.php:61 pages/invoice.php:48
|
934 |
-
#: pages/checkout.php:314 pages/confirmation.php:59 pages/invoice.php:46
|
935 |
-
msgid "Billing Address"
|
936 |
-
msgstr "Fakturační adresa"
|
937 |
-
|
938 |
-
#: adminpages/memberslist.php:118 adminpages/pagesettings.php:51
|
939 |
-
#: adminpages/reports/login.php:143
|
940 |
-
#: classes/gateways/class.pmprogateway_authorizenet.php:187
|
941 |
-
msgid "Membership"
|
942 |
-
msgstr "Členství"
|
943 |
-
|
944 |
-
#: adminpages/memberslist.php:119
|
945 |
-
msgid "Fee"
|
946 |
-
msgstr "Odměna"
|
947 |
-
|
948 |
-
#: adminpages/memberslist.php:120 adminpages/reports/login.php:144
|
949 |
-
msgid "Joined"
|
950 |
-
msgstr "Připojil"
|
951 |
-
|
952 |
-
#: adminpages/memberslist.php:184
|
953 |
-
msgid "Never"
|
954 |
-
msgstr "Nikdy"
|
955 |
-
|
956 |
-
#: adminpages/memberslist.php:195 adminpages/reports/login.php:210
|
957 |
-
msgid "No members found."
|
958 |
-
msgstr "Žádní členové nebyly nalezeni"
|
959 |
-
|
960 |
-
#: adminpages/memberslist.php:195 adminpages/reports/login.php:210
|
961 |
-
msgid "Search all levels"
|
962 |
-
msgstr "Prohledat všechny úrovně"
|
963 |
-
|
964 |
-
#: adminpages/orders.php:26
|
965 |
-
msgid "Order deleted successfully."
|
966 |
-
msgstr "Objednávka byla úspěšně smazána."
|
967 |
-
|
968 |
-
#: adminpages/orders.php:31
|
969 |
-
msgid "Error deleting order."
|
970 |
-
msgstr "Chyba při mazání objednávky"
|
971 |
-
|
972 |
-
#: adminpages/orders.php:119
|
973 |
-
msgid "Order saved successfully."
|
974 |
-
msgstr "Objednávka byla úspěšne uložena."
|
975 |
-
|
976 |
-
#: adminpages/orders.php:124
|
977 |
-
msgid "Error updating order timestamp."
|
978 |
-
msgstr "Chyba při aktualizaci časového razítka"
|
979 |
-
|
980 |
-
#: adminpages/orders.php:130
|
981 |
-
msgid "Error saving order."
|
982 |
-
msgstr "Chyba při ukládání zboží"
|
983 |
-
|
984 |
-
#: adminpages/orders.php:195
|
985 |
-
msgid "Order"
|
986 |
-
msgstr "Objednávka"
|
987 |
-
|
988 |
-
#: adminpages/orders.php:197
|
989 |
-
msgid "New Order"
|
990 |
-
msgstr "Nová objednávka"
|
991 |
-
|
992 |
-
#: adminpages/orders.php:220
|
993 |
-
msgid "Randomly generated for you."
|
994 |
-
msgstr "Náhodně generované pro Vás."
|
995 |
-
|
996 |
-
#: adminpages/orders.php:225
|
997 |
-
msgid "User ID"
|
998 |
-
msgstr "Uživatelské ID"
|
999 |
-
|
1000 |
-
#: adminpages/orders.php:234
|
1001 |
-
msgid "Membership Level ID"
|
1002 |
-
msgstr "ID členské úrovně"
|
1003 |
-
|
1004 |
-
#: adminpages/orders.php:243
|
1005 |
-
msgid "Billing Name"
|
1006 |
-
msgstr "Fakturační adresa"
|
1007 |
-
|
1008 |
-
#: adminpages/orders.php:251
|
1009 |
-
msgid "Billing Street"
|
1010 |
-
msgstr "Fakturační ulice"
|
1011 |
-
|
1012 |
-
#: adminpages/orders.php:258
|
1013 |
-
msgid "Billing City"
|
1014 |
-
msgstr "Fakturační město"
|
1015 |
-
|
1016 |
-
#: adminpages/orders.php:265
|
1017 |
-
msgid "Billing State"
|
1018 |
-
msgstr "Fakturační stát"
|
1019 |
-
|
1020 |
-
#: adminpages/orders.php:272
|
1021 |
-
msgid "Billing Postal Code"
|
1022 |
-
msgstr "Fakturační PSČ"
|
1023 |
-
|
1024 |
-
#: adminpages/orders.php:279
|
1025 |
-
msgid "Billing Country"
|
1026 |
-
msgstr "Fakturační země"
|
1027 |
-
|
1028 |
-
#: adminpages/orders.php:287
|
1029 |
-
msgid "Billing Phone"
|
1030 |
-
msgstr "Fakturační telefon"
|
1031 |
-
|
1032 |
-
#: adminpages/orders.php:296
|
1033 |
-
msgid "Sub Total"
|
1034 |
-
msgstr "Mezisoučet"
|
1035 |
-
|
1036 |
-
#: adminpages/orders.php:304 pages/invoice.php:80 pages/invoice.php:78
|
1037 |
-
msgid "Tax"
|
1038 |
-
msgstr "Daň"
|
1039 |
-
|
1040 |
-
#: adminpages/orders.php:312
|
1041 |
-
msgid "Coupon Amount"
|
1042 |
-
msgstr "Množství kupónu"
|
1043 |
-
|
1044 |
-
#: adminpages/orders.php:320 adminpages/orders.php:602 pages/invoice.php:84
|
1045 |
-
#: pages/invoice.php:82
|
1046 |
-
msgid "Total"
|
1047 |
-
msgstr "Celkem"
|
1048 |
-
|
1049 |
-
#: adminpages/orders.php:325
|
1050 |
-
msgid "Should be subtotal + tax - couponamount."
|
1051 |
-
msgstr "Měl by obsahovat součet + daň - množství kupónu"
|
1052 |
-
|
1053 |
-
#: adminpages/orders.php:330
|
1054 |
-
msgid "Payment Type"
|
1055 |
-
msgstr "Typ platby"
|
1056 |
-
|
1057 |
-
#: adminpages/orders.php:335
|
1058 |
-
msgid "e.g. PayPal Express, PayPal Standard, Credit Card."
|
1059 |
-
msgstr "Například PayPal Express, PayPal Standard, Kreditní karta."
|
1060 |
-
|
1061 |
-
#: adminpages/orders.php:339 pages/billing.php:234 pages/checkout.php:517
|
1062 |
-
#: pages/checkout.php:510
|
1063 |
-
msgid "Card Type"
|
1064 |
-
msgstr "Typ karty"
|
1065 |
-
|
1066 |
-
#: adminpages/orders.php:344
|
1067 |
-
msgid "e.g. Visa, MasterCard, AMEX, etc"
|
1068 |
-
msgstr "Například Visa, MasterCard, AMEX, atd."
|
1069 |
-
|
1070 |
-
#: adminpages/orders.php:348 adminpages/paymentsettings.php:347
|
1071 |
-
msgid "Account Number"
|
1072 |
-
msgstr "Číslo účtu"
|
1073 |
-
|
1074 |
-
#: adminpages/orders.php:353
|
1075 |
-
msgid "Obscure all but last 4 digits."
|
1076 |
-
msgstr "Vše nejasné, ale poslední 4 čísla"
|
1077 |
-
|
1078 |
-
#: adminpages/orders.php:358
|
1079 |
-
msgid "Expiration Month"
|
1080 |
-
msgstr "Datum expirace"
|
1081 |
-
|
1082 |
-
#: adminpages/orders.php:365
|
1083 |
-
msgid "Expiration Year"
|
1084 |
-
msgstr "Rok expirace"
|
1085 |
-
|
1086 |
-
#: adminpages/orders.php:373 adminpages/orders.php:606
|
1087 |
-
msgid "Status"
|
1088 |
-
msgstr "Postavení"
|
1089 |
-
|
1090 |
-
#: adminpages/orders.php:394 adminpages/orders.php:604
|
1091 |
-
msgid "Gateway"
|
1092 |
-
msgstr "Brána"
|
1093 |
-
|
1094 |
-
#: adminpages/orders.php:398
|
1095 |
-
msgid "Testing Only"
|
1096 |
-
msgstr "Pouze testování"
|
1097 |
-
|
1098 |
-
#: adminpages/orders.php:399 adminpages/paymentsettings.php:159
|
1099 |
-
#: adminpages/paymentsettings.php:157
|
1100 |
-
msgid "Pay by Check"
|
1101 |
-
msgstr "Platit kupónem"
|
1102 |
-
|
1103 |
-
#: adminpages/orders.php:411 adminpages/paymentsettings.php:179
|
1104 |
-
#: adminpages/paymentsettings.php:175
|
1105 |
-
msgid "Gateway Environment"
|
1106 |
-
msgstr "Brána životního prostředí"
|
1107 |
-
|
1108 |
-
#: adminpages/orders.php:415 adminpages/paymentsettings.php:183
|
1109 |
-
#: adminpages/paymentsettings.php:179
|
1110 |
-
msgid "Sandbox/Testing"
|
1111 |
-
msgstr "Bezpečnostní mechanismus / testování"
|
1112 |
-
|
1113 |
-
#: adminpages/orders.php:416 adminpages/paymentsettings.php:184
|
1114 |
-
#: adminpages/paymentsettings.php:180
|
1115 |
-
msgid "Live/Production"
|
1116 |
-
msgstr "Naživo / produkce"
|
1117 |
-
|
1118 |
-
#: adminpages/orders.php:423
|
1119 |
-
msgid "Payment Transaction ID"
|
1120 |
-
msgstr "Číslo platební transakce"
|
1121 |
-
|
1122 |
-
#: adminpages/orders.php:428
|
1123 |
-
msgid "Generated by the gateway. Useful to cross reference orders."
|
1124 |
-
msgstr "Generováno bránou. Užitečný pro spárování referenčních zakázek."
|
1125 |
-
|
1126 |
-
#: adminpages/orders.php:432
|
1127 |
-
msgid "Subscription Transaction ID"
|
1128 |
-
msgstr "Číslo předplatného"
|
1129 |
-
|
1130 |
-
#: adminpages/orders.php:437
|
1131 |
-
msgid "Generated by the gateway. Useful to cross reference subscriptions."
|
1132 |
-
msgstr "Generováno bránou. Užitečný pro spárování referenčního předplatného."
|
1133 |
-
|
1134 |
-
#: adminpages/orders.php:442 adminpages/orders.php:607 pages/invoice.php:107
|
1135 |
-
#: pages/invoice.php:105
|
1136 |
-
msgid "Date"
|
1137 |
-
msgstr "Datum"
|
1138 |
-
|
1139 |
-
#: adminpages/orders.php:477
|
1140 |
-
msgid "Affiliate ID"
|
1141 |
-
msgstr "Partnerské ID"
|
1142 |
-
|
1143 |
-
#: adminpages/orders.php:485
|
1144 |
-
msgid "Affiliate SubID"
|
1145 |
-
msgstr "Partnerské subID"
|
1146 |
-
|
1147 |
-
#: adminpages/orders.php:495
|
1148 |
-
msgid "Notes"
|
1149 |
-
msgstr "Poznámky"
|
1150 |
-
|
1151 |
-
#: adminpages/orders.php:510
|
1152 |
-
msgid "Save Order"
|
1153 |
-
msgstr "Uložit"
|
1154 |
-
|
1155 |
-
#: adminpages/orders.php:511 pages/billing.php:295
|
1156 |
-
msgid "Cancel"
|
1157 |
-
msgstr "Zrušit"
|
1158 |
-
|
1159 |
-
#: adminpages/orders.php:520 includes/adminpages.php:17
|
1160 |
-
#: includes/adminpages.php:84
|
1161 |
-
msgid "Orders"
|
1162 |
-
msgstr "Objednávky"
|
1163 |
-
|
1164 |
-
#: adminpages/orders.php:521
|
1165 |
-
msgid "Add New Order"
|
1166 |
-
msgstr "Vložit novou objednávku"
|
1167 |
-
|
1168 |
-
#: adminpages/orders.php:535 adminpages/orders.php:538
|
1169 |
-
msgid "Search Orders"
|
1170 |
-
msgstr "Najít objednávku"
|
1171 |
-
|
1172 |
-
#: adminpages/orders.php:590
|
1173 |
-
#, php-format
|
1174 |
-
msgid "%d orders found."
|
1175 |
-
msgstr "%d objednávek nalezeno."
|
1176 |
-
|
1177 |
-
#: adminpages/orders.php:599 adminpages/paymentsettings.php:215
|
1178 |
-
#: adminpages/reports/login.php:141 adminpages/paymentsettings.php:211
|
1179 |
-
msgid "User"
|
1180 |
-
msgstr "Uživatel"
|
1181 |
-
|
1182 |
-
#: adminpages/orders.php:601 includes/profile.php:27 pages/checkout.php:33
|
1183 |
-
#: pages/confirmation.php:47 pages/confirmation.php:64
|
1184 |
-
#: pages/confirmation.php:105 pages/invoice.php:28 pages/invoice.php:51
|
1185 |
-
#: includes/profile.php:25 pages/checkout.php:34 pages/confirmation.php:46
|
1186 |
-
#: pages/confirmation.php:62 pages/confirmation.php:103 pages/invoice.php:27
|
1187 |
-
#: pages/invoice.php:49
|
1188 |
-
msgid "Membership Level"
|
1189 |
-
msgstr "Úroveň členství"
|
1190 |
-
|
1191 |
-
#: adminpages/orders.php:603 adminpages/orders.php:651
|
1192 |
-
msgid "Payment"
|
1193 |
-
msgstr "Platba"
|
1194 |
-
|
1195 |
-
#: adminpages/orders.php:605
|
1196 |
-
msgid "Transaction IDs"
|
1197 |
-
msgstr "Číslo transakce"
|
1198 |
-
|
1199 |
-
#: adminpages/orders.php:630
|
1200 |
-
msgid "deleted"
|
1201 |
-
msgstr "smazáno"
|
1202 |
-
|
1203 |
-
#: adminpages/orders.php:653
|
1204 |
-
msgid "Subscription"
|
1205 |
-
msgstr "Předplatné"
|
1206 |
-
|
1207 |
-
#: adminpages/orders.php:664
|
1208 |
-
#, php-format
|
1209 |
-
msgid ""
|
1210 |
-
"Deleting orders is permanent and can affect active users. Are you sure you "
|
1211 |
-
"want to delete order %s?"
|
1212 |
-
msgstr ""
|
1213 |
-
"Vymazání objednávek je trvalé a může to mít vliv na aktivní uživatele. Jste "
|
1214 |
-
"si jisti, že chcete smazat objednávky % s?"
|
1215 |
-
|
1216 |
-
#: adminpages/orders.php:674
|
1217 |
-
msgid "No orders found."
|
1218 |
-
msgstr "žádné nalezené objednávky"
|
1219 |
-
|
1220 |
-
#: adminpages/pagesettings.php:83
|
1221 |
-
msgid "The following pages have been created for you"
|
1222 |
-
msgstr "Následující stránky budou vytvořeny pro Vás"
|
1223 |
-
|
1224 |
-
#: adminpages/pagesettings.php:98
|
1225 |
-
msgid ""
|
1226 |
-
"Manage the WordPress pages assigned to each required Paid Memberships Pro "
|
1227 |
-
"page."
|
1228 |
-
msgstr ""
|
1229 |
-
"Správa WordPress stránky přiřazené ke každé požadované, placené Memberships "
|
1230 |
-
"Pro page."
|
1231 |
-
|
1232 |
-
#: adminpages/pagesettings.php:104
|
1233 |
-
msgid ""
|
1234 |
-
"Assign the WordPress pages for each required Paid Memberships Pro page or"
|
1235 |
-
msgstr "Přiřaďte Wordpress stránku pro každé požadované placené členství nebo,"
|
1236 |
-
|
1237 |
-
#: adminpages/pagesettings.php:104
|
1238 |
-
msgid "click here to let us generate them for you"
|
1239 |
-
msgstr "klikněte zde a my vám ho vytvoříme"
|
1240 |
-
|
1241 |
-
#: adminpages/pagesettings.php:112
|
1242 |
-
msgid "Account Page"
|
1243 |
-
msgstr "Stránka účtu"
|
1244 |
-
|
1245 |
-
#: adminpages/pagesettings.php:119 adminpages/pagesettings.php:134
|
1246 |
-
#: adminpages/pagesettings.php:149 adminpages/pagesettings.php:165
|
1247 |
-
#: adminpages/pagesettings.php:181 adminpages/pagesettings.php:197
|
1248 |
-
#: adminpages/pagesettings.php:213 adminpages/pagesettings.php:132
|
1249 |
-
#: adminpages/pagesettings.php:145 adminpages/pagesettings.php:159
|
1250 |
-
#: adminpages/pagesettings.php:173 adminpages/pagesettings.php:187
|
1251 |
-
#: adminpages/pagesettings.php:201
|
1252 |
-
msgid "edit page"
|
1253 |
-
msgstr "upravit stránku"
|
1254 |
-
|
1255 |
-
#: adminpages/pagesettings.php:121 adminpages/pagesettings.php:136
|
1256 |
-
#: adminpages/pagesettings.php:151 adminpages/pagesettings.php:167
|
1257 |
-
#: adminpages/pagesettings.php:183 adminpages/pagesettings.php:199
|
1258 |
-
#: adminpages/pagesettings.php:215
|
1259 |
-
msgid "view page"
|
1260 |
-
msgstr "zobrazit stránku"
|
1261 |
-
|
1262 |
-
#: adminpages/pagesettings.php:123 adminpages/pagesettings.php:138
|
1263 |
-
#: adminpages/pagesettings.php:153 adminpages/pagesettings.php:169
|
1264 |
-
#: adminpages/pagesettings.php:185 adminpages/pagesettings.php:201
|
1265 |
-
#: adminpages/pagesettings.php:217 adminpages/pagesettings.php:121
|
1266 |
-
#: adminpages/pagesettings.php:134 adminpages/pagesettings.php:147
|
1267 |
-
#: adminpages/pagesettings.php:161 adminpages/pagesettings.php:175
|
1268 |
-
#: adminpages/pagesettings.php:189 adminpages/pagesettings.php:203
|
1269 |
-
msgid "Include the shortcode"
|
1270 |
-
msgstr "Vložit shortcode"
|
1271 |
-
|
1272 |
-
#: adminpages/pagesettings.php:127 adminpages/pagesettings.php:125
|
1273 |
-
msgid "Billing Information Page"
|
1274 |
-
msgstr "Stránka fakturačních údajů"
|
1275 |
-
|
1276 |
-
#: adminpages/pagesettings.php:142 adminpages/pagesettings.php:138
|
1277 |
-
msgid "Cancel Page"
|
1278 |
-
msgstr "Zrušit stránku"
|
1279 |
-
|
1280 |
-
#: adminpages/pagesettings.php:158 adminpages/pagesettings.php:152
|
1281 |
-
msgid "Checkout Page"
|
1282 |
-
msgstr "Pokladna"
|
1283 |
-
|
1284 |
-
#: adminpages/pagesettings.php:174 adminpages/pagesettings.php:166
|
1285 |
-
msgid "Confirmation Page"
|
1286 |
-
msgstr "Potvrzovací stránka"
|
1287 |
-
|
1288 |
-
#: adminpages/pagesettings.php:190 adminpages/pagesettings.php:180
|
1289 |
-
msgid "Invoice Page"
|
1290 |
-
msgstr "Stránka fakturací"
|
1291 |
-
|
1292 |
-
#: adminpages/pagesettings.php:206 adminpages/pagesettings.php:194
|
1293 |
-
msgid "Levels Page"
|
1294 |
-
msgstr "Stránka úrovní"
|
1295 |
-
|
1296 |
-
#: adminpages/paymentsettings.php:77 adminpages/paymentsettings.php:82
|
1297 |
-
msgid "Your payment settings have been updated."
|
1298 |
-
msgstr "Vaše nastavení plateb bylo úspěšně aktualizováno"
|
1299 |
-
|
1300 |
-
#: adminpages/paymentsettings.php:146 adminpages/paymentsettings.php:154
|
1301 |
-
#: adminpages/paymentsettings.php:144 adminpages/paymentsettings.php:152
|
1302 |
-
msgid "Payment Gateway"
|
1303 |
-
msgstr "Platební brána"
|
1304 |
-
|
1305 |
-
#: adminpages/paymentsettings.php:146 adminpages/paymentsettings.php:144
|
1306 |
-
msgid "SSL Settings"
|
1307 |
-
msgstr "Nastavení SSL"
|
1308 |
-
|
1309 |
-
#: adminpages/paymentsettings.php:174
|
1310 |
-
msgid ""
|
1311 |
-
"This gateway option is in beta. Some functionality may not be available. "
|
1312 |
-
"Please contact Paid Memberships Pro with any issues you run into. "
|
1313 |
-
"<strong>Please be sure to upgrade Paid Memberships Pro to the latest "
|
1314 |
-
"versions when available.</strong>"
|
1315 |
-
msgstr ""
|
1316 |
-
"Tato platební brána je v beta verzi. Nekteré funkce nemusí být k dispozici. "
|
1317 |
-
"Obraťte se prosím na Memberships Pro s případnými otázkami, které poté "
|
1318 |
-
"můžete konzultovat. <strong> Prosím ujistěte se, že jste upgradovali "
|
1319 |
-
"Memberships Pro na nejnovější verzi, která je k dispozici. </ strong>"
|
1320 |
-
|
1321 |
-
#: adminpages/paymentsettings.php:199 adminpages/paymentsettings.php:195
|
1322 |
-
msgid "Partner"
|
1323 |
-
msgstr "Partner"
|
1324 |
-
|
1325 |
-
#: adminpages/paymentsettings.php:207 adminpages/paymentsettings.php:203
|
1326 |
-
msgid "Vendor"
|
1327 |
-
msgstr "Prodejce"
|
1328 |
-
|
1329 |
-
#: adminpages/paymentsettings.php:223 pages/checkout.php:180
|
1330 |
-
#: adminpages/paymentsettings.php:219 pages/checkout.php:177
|
1331 |
-
msgid "Password"
|
1332 |
-
msgstr "Heslo"
|
1333 |
-
|
1334 |
-
#: adminpages/paymentsettings.php:231 adminpages/paymentsettings.php:227
|
1335 |
-
msgid "Gateway Account Email"
|
1336 |
-
msgstr "E-mail k bráně účtu"
|
1337 |
-
|
1338 |
-
#: adminpages/paymentsettings.php:239 adminpages/paymentsettings.php:331
|
1339 |
-
#: adminpages/paymentsettings.php:235
|
1340 |
-
msgid "API Username"
|
1341 |
-
msgstr "API uživatelské jméno"
|
1342 |
-
|
1343 |
-
#: adminpages/paymentsettings.php:247 adminpages/paymentsettings.php:339
|
1344 |
-
#: adminpages/paymentsettings.php:243
|
1345 |
-
msgid "API Password"
|
1346 |
-
msgstr "API heslo"
|
1347 |
-
|
1348 |
-
#: adminpages/paymentsettings.php:255 adminpages/paymentsettings.php:251
|
1349 |
-
msgid "API Signature"
|
1350 |
-
msgstr "API podpis"
|
1351 |
-
|
1352 |
-
#: adminpages/paymentsettings.php:264 adminpages/paymentsettings.php:260
|
1353 |
-
msgid "Login Name"
|
1354 |
-
msgstr "Přihlašovací jméno"
|
1355 |
-
|
1356 |
-
#: adminpages/paymentsettings.php:272 adminpages/paymentsettings.php:268
|
1357 |
-
msgid "Transaction Key"
|
1358 |
-
msgstr "Transakční klíč"
|
1359 |
-
|
1360 |
-
#: adminpages/paymentsettings.php:281 adminpages/paymentsettings.php:277
|
1361 |
-
msgid "Secret Key"
|
1362 |
-
msgstr "Tajný klíč"
|
1363 |
-
|
1364 |
-
#: adminpages/paymentsettings.php:289 adminpages/paymentsettings.php:285
|
1365 |
-
msgid "Publishable Key"
|
1366 |
-
msgstr "Nezávadný klíč"
|
1367 |
-
|
1368 |
-
#: adminpages/paymentsettings.php:298 adminpages/paymentsettings.php:364
|
1369 |
-
#: adminpages/paymentsettings.php:294
|
1370 |
-
msgid "Merchant ID"
|
1371 |
-
msgstr "ID obchodníka"
|
1372 |
-
|
1373 |
-
#: adminpages/paymentsettings.php:306 adminpages/paymentsettings.php:302
|
1374 |
-
msgid "Public Key"
|
1375 |
-
msgstr "Veřejný klíč"
|
1376 |
-
|
1377 |
-
#: adminpages/paymentsettings.php:314 adminpages/paymentsettings.php:310
|
1378 |
-
msgid "Private Key"
|
1379 |
-
msgstr "Osobní klíč"
|
1380 |
-
|
1381 |
-
#: adminpages/paymentsettings.php:322 adminpages/paymentsettings.php:318
|
1382 |
-
msgid "Client-Side Encryption Key"
|
1383 |
-
msgstr "Klientův dešifrovací klíč"
|
1384 |
-
|
1385 |
-
#: adminpages/paymentsettings.php:355
|
1386 |
-
msgid "Secret Word"
|
1387 |
-
msgstr "Tajné slovo"
|
1388 |
-
|
1389 |
-
#: adminpages/paymentsettings.php:372
|
1390 |
-
msgid "Transaction Security Key"
|
1391 |
-
msgstr "Bezpečnostní klíč transakce"
|
1392 |
-
|
1393 |
-
#: adminpages/paymentsettings.php:381 adminpages/paymentsettings.php:327
|
1394 |
-
#: adminpages/paymentsettings.php:337 adminpages/paymentsettings.php:356
|
1395 |
-
msgid "Currency"
|
1396 |
-
msgstr "Měna"
|
1397 |
-
|
1398 |
-
#: adminpages/paymentsettings.php:401 adminpages/paymentsettings.php:375
|
1399 |
-
msgid "Accepted Credit Card Types"
|
1400 |
-
msgstr "Akceptujeme tyto platební karty"
|
1401 |
-
|
1402 |
-
#: adminpages/paymentsettings.php:415 adminpages/paymentsettings.php:389
|
1403 |
-
msgid "Instructions"
|
1404 |
-
msgstr "Instrukce"
|
1405 |
-
|
1406 |
-
#: adminpages/paymentsettings.php:419 adminpages/paymentsettings.php:393
|
1407 |
-
msgid ""
|
1408 |
-
"Who to write the check out to. Where to mail it. Shown on checkout, "
|
1409 |
-
"confirmation, and invoice pages."
|
1410 |
-
msgstr ""
|
1411 |
-
"Kdo napsal šek. Kde je e-mail. Zobrazení pokladny, potvrzení a fakturační "
|
1412 |
-
"stránky."
|
1413 |
-
|
1414 |
-
#: adminpages/paymentsettings.php:425
|
1415 |
-
msgid "Show Billing Address Fields"
|
1416 |
-
msgstr "Ukázat pole - Fakturační údaje"
|
1417 |
-
|
1418 |
-
#: adminpages/paymentsettings.php:432
|
1419 |
-
msgid ""
|
1420 |
-
"Stripe doesn't require billing address fields. Choose 'No' to hide them on "
|
1421 |
-
"the checkout page."
|
1422 |
-
msgstr ""
|
1423 |
-
"Stripe nevyžaduje pole fakturační adresa. Zvolte \"Ne\" pro skování na "
|
1424 |
-
"platební stránce."
|
1425 |
-
|
1426 |
-
#: adminpages/paymentsettings.php:438 adminpages/paymentsettings.php:398
|
1427 |
-
msgid "Sales Tax"
|
1428 |
-
msgstr "Daň z prodeje"
|
1429 |
-
|
1430 |
-
#: adminpages/paymentsettings.php:438 pages/billing.php:78
|
1431 |
-
#: adminpages/paymentsettings.php:398
|
1432 |
-
msgid "optional"
|
1433 |
-
msgstr "volitelné"
|
1434 |
-
|
1435 |
-
#: adminpages/paymentsettings.php:441 adminpages/paymentsettings.php:401
|
1436 |
-
msgid "Tax State"
|
1437 |
-
msgstr "DPH"
|
1438 |
-
|
1439 |
-
#: adminpages/paymentsettings.php:442 adminpages/paymentsettings.php:402
|
1440 |
-
msgid "abbreviation, e.g. \"PA\""
|
1441 |
-
msgstr "zkratka, např. \"PA\""
|
1442 |
-
|
1443 |
-
#: adminpages/paymentsettings.php:444 adminpages/paymentsettings.php:404
|
1444 |
-
msgid "decimal, e.g. \"0.06\""
|
1445 |
-
msgstr "desetinný, např. \"0.06\""
|
1446 |
-
|
1447 |
-
#: adminpages/paymentsettings.php:445 adminpages/paymentsettings.php:405
|
1448 |
-
msgid ""
|
1449 |
-
"If values are given, tax will be applied for any members ordering from the "
|
1450 |
-
"selected state. For more complex tax rules, use the \"pmpro_tax\" filter."
|
1451 |
-
msgstr ""
|
1452 |
-
"Jestliže máte nastaveny hodnoty, daň bude použita pro všechny členy z "
|
1453 |
-
"určitého státu, kteří si objednají službu. U složitějších daňových pravidel, "
|
1454 |
-
"použijte \"pmpro_tax \" filtr."
|
1455 |
-
|
1456 |
-
#: adminpages/paymentsettings.php:450
|
1457 |
-
msgid "Force SSL"
|
1458 |
-
msgstr "Silný SSL"
|
1459 |
-
|
1460 |
-
#: adminpages/paymentsettings.php:456
|
1461 |
-
msgid "Yes (with JavaScript redirects)"
|
1462 |
-
msgstr "Ano (s JavaScript přesměrováním)"
|
1463 |
-
|
1464 |
-
#: adminpages/paymentsettings.php:463 adminpages/paymentsettings.php:430
|
1465 |
-
msgid "SSL Seal Code"
|
1466 |
-
msgstr "SSL Seal Code"
|
1467 |
-
|
1468 |
-
#: adminpages/paymentsettings.php:471 adminpages/paymentsettings.php:438
|
1469 |
-
msgid "HTTPS Nuclear Option"
|
1470 |
-
msgstr "nastavení HTTPS"
|
1471 |
-
|
1472 |
-
#: adminpages/paymentsettings.php:474 adminpages/paymentsettings.php:441
|
1473 |
-
msgid ""
|
1474 |
-
"Use the \"Nuclear Option\" to use secure (HTTPS) URLs on your secure pages. "
|
1475 |
-
"Check this if you are using SSL and have warnings on your checkout pages."
|
1476 |
-
msgstr ""
|
1477 |
-
"Použijte \"Nuclear Option\" k použití zabezpečené (HTTPS) URL na vaše "
|
1478 |
-
"zabezpečené stránky. Podívejte se na to, zda používáte SSL a máte upozornění "
|
1479 |
-
"na vašich platebních stránkách."
|
1480 |
-
|
1481 |
-
#: adminpages/paymentsettings.php:479 adminpages/paymentsettings.php:446
|
1482 |
-
msgid "IPN Handler URL"
|
1483 |
-
msgstr "IPN Handler URL"
|
1484 |
-
|
1485 |
-
#: adminpages/paymentsettings.php:482 adminpages/paymentsettings.php:449
|
1486 |
-
msgid "To fully integrate with PayPal, be sure to set your IPN Handler URL to "
|
1487 |
-
msgstr ""
|
1488 |
-
"Chcete-li plně integrovat PayPal, ujistěte se že jste nastavily IPN Handler "
|
1489 |
-
"URL"
|
1490 |
-
|
1491 |
-
#: adminpages/paymentsettings.php:487
|
1492 |
-
msgid "TwoCheckout INS URL"
|
1493 |
-
msgstr "TwoCheckout INS URL"
|
1494 |
-
|
1495 |
-
#: adminpages/paymentsettings.php:490
|
1496 |
-
msgid ""
|
1497 |
-
"To fully integrate with 2Checkout, be sure to set your 2Checkout INS URL "
|
1498 |
-
msgstr ""
|
1499 |
-
"Chcete-li plně integrovat 2Checkout, ujistěte se že jste nastavily "
|
1500 |
-
"2Checkout IPN Handler URL"
|
1501 |
-
|
1502 |
-
#: adminpages/paymentsettings.php:495 adminpages/paymentsettings.php:454
|
1503 |
-
msgid "Silent Post URL"
|
1504 |
-
msgstr "Tichý příspěvek URL"
|
1505 |
-
|
1506 |
-
#: adminpages/paymentsettings.php:498 adminpages/paymentsettings.php:457
|
1507 |
-
msgid ""
|
1508 |
-
"To fully integrate with Authorize.net, be sure to set your Silent Post URL to"
|
1509 |
-
msgstr ""
|
1510 |
-
"Chcete-li plně integrovat s Authorize.net, ujistěte se, že máte správně "
|
1511 |
-
"nastaven Silent Post URL na"
|
1512 |
-
|
1513 |
-
#: adminpages/paymentsettings.php:503 adminpages/paymentsettings.php:511
|
1514 |
-
#: adminpages/paymentsettings.php:462 adminpages/paymentsettings.php:470
|
1515 |
-
msgid "Web Hook URL"
|
1516 |
-
msgstr "Web Hook URL"
|
1517 |
-
|
1518 |
-
#: adminpages/paymentsettings.php:506 adminpages/paymentsettings.php:465
|
1519 |
-
msgid "To fully integrate with Stripe, be sure to set your Web Hook URL to"
|
1520 |
-
msgstr ""
|
1521 |
-
"Chcete-li plně integrovat s Stripe, ujistěte se, že máte správně nastaven "
|
1522 |
-
"Web Hook URL na"
|
1523 |
-
|
1524 |
-
#: adminpages/paymentsettings.php:515 adminpages/paymentsettings.php:474
|
1525 |
-
msgid "To fully integrate with Braintree, be sure to set your Web Hook URL to"
|
1526 |
-
msgstr ""
|
1527 |
-
"Chcete-li plně integrovat s Braintree, ujistěte se, že máte správně nastaven "
|
1528 |
-
"Web Hook URL na"
|
1529 |
-
|
1530 |
-
#: adminpages/reports.php:37 adminpages/reports.php:26
|
1531 |
-
msgid "Details"
|
1532 |
-
msgstr "Detaily"
|
1533 |
-
|
1534 |
-
#: adminpages/reports/login.php:16
|
1535 |
-
msgid "Visits, Views, and Logins"
|
1536 |
-
msgstr "Návštěvy, zobrazení a přihlášení"
|
1537 |
-
|
1538 |
-
#: adminpages/reports/login.php:26
|
1539 |
-
msgid "Visits Today"
|
1540 |
-
msgstr "Dnešní návštěvy"
|
1541 |
-
|
1542 |
-
#: adminpages/reports/login.php:27 adminpages/reports/login.php:147
|
1543 |
-
msgid "Visits This Month"
|
1544 |
-
msgstr "Návštěvy tento měsíc"
|
1545 |
-
|
1546 |
-
#: adminpages/reports/login.php:28
|
1547 |
-
msgid "Visits All Time"
|
1548 |
-
msgstr "Celková návštěvnost"
|
1549 |
-
|
1550 |
-
#: adminpages/reports/login.php:31
|
1551 |
-
msgid "Views Today"
|
1552 |
-
msgstr "Dnešní zobrazení"
|
1553 |
-
|
1554 |
-
#: adminpages/reports/login.php:32 adminpages/reports/login.php:149
|
1555 |
-
msgid "Views This Month"
|
1556 |
-
msgstr "Zobrazeno tento měsíc"
|
1557 |
-
|
1558 |
-
#: adminpages/reports/login.php:33
|
1559 |
-
msgid "Views All Time"
|
1560 |
-
msgstr "Zobrazeno celkem"
|
1561 |
-
|
1562 |
-
#: adminpages/reports/login.php:36
|
1563 |
-
msgid "Logins Today"
|
1564 |
-
msgstr "Přihlášeno dnes"
|
1565 |
-
|
1566 |
-
#: adminpages/reports/login.php:37 adminpages/reports/login.php:152
|
1567 |
-
msgid "Logins This Month"
|
1568 |
-
msgstr "Přihlášeno tento měsíc"
|
1569 |
-
|
1570 |
-
#: adminpages/reports/login.php:38
|
1571 |
-
msgid "Logins All Time"
|
1572 |
-
msgstr "Přihlášeno celkem"
|
1573 |
-
|
1574 |
-
#: adminpages/reports/login.php:61
|
1575 |
-
msgid "Visits, Views, and Logins Report"
|
1576 |
-
msgstr "Zprávy z návštěv, zobrazení a přihlášení"
|
1577 |
-
|
1578 |
-
#: adminpages/reports/login.php:66
|
1579 |
-
msgid "All Users"
|
1580 |
-
msgstr "Všichni uživatelé"
|
1581 |
-
|
1582 |
-
#: adminpages/reports/login.php:146
|
1583 |
-
msgid "Last Visit"
|
1584 |
-
msgstr "Poslední návštěva"
|
1585 |
-
|
1586 |
-
#: adminpages/reports/login.php:148
|
1587 |
-
msgid "Total Visits"
|
1588 |
-
msgstr "Návštěv celkem"
|
1589 |
-
|
1590 |
-
#: adminpages/reports/login.php:150
|
1591 |
-
msgid "Total Views"
|
1592 |
-
msgstr "Zobrazeno celkem"
|
1593 |
-
|
1594 |
-
#: adminpages/reports/login.php:151
|
1595 |
-
msgid "Last Login"
|
1596 |
-
msgstr "Poslední přihlášení"
|
1597 |
-
|
1598 |
-
#: adminpages/reports/login.php:153
|
1599 |
-
msgid "Total Logins"
|
1600 |
-
msgstr "Přihlášení celkem"
|
1601 |
-
|
1602 |
-
#: adminpages/reports/memberships.php:18
|
1603 |
-
#: adminpages/reports/memberships.php:288
|
1604 |
-
msgid "Membership Stats"
|
1605 |
-
msgstr "Členská statistika"
|
1606 |
-
|
1607 |
-
#: adminpages/reports/memberships.php:294 adminpages/reports/sales.php:196
|
1608 |
-
#: adminpages/reports/sales.php:187
|
1609 |
-
msgid "Daily"
|
1610 |
-
msgstr "Denně"
|
1611 |
-
|
1612 |
-
#: adminpages/reports/memberships.php:295 adminpages/reports/sales.php:197
|
1613 |
-
#: adminpages/reports/sales.php:188
|
1614 |
-
msgid "Monthly"
|
1615 |
-
msgstr "Měsíčně"
|
1616 |
-
|
1617 |
-
#: adminpages/reports/memberships.php:296 adminpages/reports/sales.php:198
|
1618 |
-
#: adminpages/reports/sales.php:189
|
1619 |
-
msgid "Annual"
|
1620 |
-
msgstr "Ročně"
|
1621 |
-
|
1622 |
-
#: adminpages/reports/memberships.php:299
|
1623 |
-
msgid "Signups vs. Cancellations"
|
1624 |
-
msgstr "Registrace vs. storna"
|
1625 |
-
|
1626 |
-
#: adminpages/reports/memberships.php:331 adminpages/reports/sales.php:231
|
1627 |
-
#: adminpages/reports/sales.php:222
|
1628 |
-
msgid "Generate Report"
|
1629 |
-
msgstr "Vytvořit zprávu"
|
1630 |
-
|
1631 |
-
#: adminpages/reports/sales.php:18
|
1632 |
-
msgid "Sales and Revenue (Testing/Sandbox)"
|
1633 |
-
msgstr "Prodeje a výnosy (testování / bezpečnostní mechanismus)"
|
1634 |
-
|
1635 |
-
#: adminpages/reports/sales.php:20 adminpages/reports/sales.php:189
|
1636 |
-
#: adminpages/reports/sales.php:180
|
1637 |
-
msgid "Sales and Revenue"
|
1638 |
-
msgstr "Prodeje a příjmy"
|
1639 |
-
|
1640 |
-
#: adminpages/reports/sales.php:201 adminpages/reports/sales.php:192
|
1641 |
-
msgid "Revenue"
|
1642 |
-
msgstr "Příjmy"
|
1643 |
-
|
1644 |
-
#: adminpages/reports/sales.php:202 adminpages/reports/sales.php:193
|
1645 |
-
msgid "Sales"
|
1646 |
-
msgstr "Prodeje"
|
1647 |
-
|
1648 |
-
#: classes/class.pmproemail.php:37
|
1649 |
-
#, php-format
|
1650 |
-
msgid "An Email From %s"
|
1651 |
-
msgstr "E-mail od %s"
|
1652 |
-
|
1653 |
-
#: classes/class.pmproemail.php:120
|
1654 |
-
#, php-format
|
1655 |
-
msgid "Your membership at %s has been CANCELLED"
|
1656 |
-
msgstr "Vaše členství na %s bylo ZRUŠENO"
|
1657 |
-
|
1658 |
-
#: classes/class.pmproemail.php:142
|
1659 |
-
#, php-format
|
1660 |
-
msgid "Membership for %s at %s has been CANCELLED"
|
1661 |
-
msgstr "Členství pro %s na %s bylo ZRUŠENO"
|
1662 |
-
|
1663 |
-
#: classes/class.pmproemail.php:173 classes/class.pmproemail.php:172
|
1664 |
-
#, php-format
|
1665 |
-
msgid "Your membership confirmation for %s"
|
1666 |
-
msgstr "Vaše členství potvzeno do %s"
|
1667 |
-
|
1668 |
-
#: classes/class.pmproemail.php:218 classes/class.pmproemail.php:227
|
1669 |
-
#: classes/class.pmproemail.php:236 classes/class.pmproemail.php:307
|
1670 |
-
#: classes/class.pmproemail.php:316 classes/class.pmproemail.php:580
|
1671 |
-
#: pages/checkout.php:66 pages/checkout.php:76 pages/checkout.php:573
|
1672 |
-
#: pages/confirmation.php:52 pages/invoice.php:33
|
1673 |
-
#: classes/class.pmproemail.php:216 classes/class.pmproemail.php:225
|
1674 |
-
#: classes/class.pmproemail.php:234 classes/class.pmproemail.php:304
|
1675 |
-
#: classes/class.pmproemail.php:313 classes/class.pmproemail.php:532
|
1676 |
-
#: pages/checkout.php:67 pages/checkout.php:77 pages/checkout.php:566
|
1677 |
-
#: pages/confirmation.php:51 pages/invoice.php:32
|
1678 |
-
msgid "Discount Code"
|
1679 |
-
msgstr "Slevový kód"
|
1680 |
-
|
1681 |
-
#: classes/class.pmproemail.php:243 classes/class.pmproemail.php:328
|
1682 |
-
#: classes/class.pmproemail.php:586 classes/class.pmproemail.php:241
|
1683 |
-
#: classes/class.pmproemail.php:325 classes/class.pmproemail.php:538
|
1684 |
-
#, php-format
|
1685 |
-
msgid "This membership will expire on %s."
|
1686 |
-
msgstr "Toto členství vyprší %s."
|
1687 |
-
|
1688 |
-
#: classes/class.pmproemail.php:265 classes/class.pmproemail.php:263
|
1689 |
-
#, php-format
|
1690 |
-
msgid "Member Checkout for %s at %s"
|
1691 |
-
msgstr "Členská platba pro% s na% s"
|
1692 |
-
|
1693 |
-
#: classes/class.pmproemail.php:345 classes/class.pmproemail.php:342
|
1694 |
-
#, php-format
|
1695 |
-
msgid "Your billing information has been udpated at %s"
|
1696 |
-
msgstr "Vaše fakturační údaje byly aktualizovány na %s"
|
1697 |
-
|
1698 |
-
#: classes/class.pmproemail.php:390 classes/class.pmproemail.php:386
|
1699 |
-
#, php-format
|
1700 |
-
msgid "Billing information has been udpated for %s at %s"
|
1701 |
-
msgstr "Fakturační údaje byly aktualizovány z %s na %s"
|
1702 |
-
|
1703 |
-
#: classes/class.pmproemail.php:430 classes/class.pmproemail.php:425
|
1704 |
-
#, php-format
|
1705 |
-
msgid "Membership Payment Failed at %s"
|
1706 |
-
msgstr "Platba za členství se nezdařila na %s"
|
1707 |
-
|
1708 |
-
#: classes/class.pmproemail.php:468 classes/class.pmproemail.php:462
|
1709 |
-
#, php-format
|
1710 |
-
msgid "Membership Payment Failed For %s at %s"
|
1711 |
-
msgstr "Členská platba se nezdařila pro %s na %s"
|
1712 |
-
|
1713 |
-
#: classes/class.pmproemail.php:508
|
1714 |
-
#, php-format
|
1715 |
-
msgid "Credit Card on File Expiring Soon at %s"
|
1716 |
-
msgstr "Kreditní karta brzy skončí na %s"
|
1717 |
-
|
1718 |
-
#: classes/class.pmproemail.php:548 classes/class.pmproemail.php:501
|
1719 |
-
#, php-format
|
1720 |
-
msgid "INVOICE for %s membership"
|
1721 |
-
msgstr "Faktura za %s členství"
|
1722 |
-
|
1723 |
-
#: classes/class.pmproemail.php:611 classes/class.pmproemail.php:563
|
1724 |
-
#, php-format
|
1725 |
-
msgid "Your trial at %s is ending soon"
|
1726 |
-
msgstr "Vaše zkušební verze na %s brzy končí"
|
1727 |
-
|
1728 |
-
#: classes/class.pmproemail.php:645 classes/class.pmproemail.php:596
|
1729 |
-
#, php-format
|
1730 |
-
msgid "Your membership at %s has ended"
|
1731 |
-
msgstr "Vaše členství na %s bylo ukončeno"
|
1732 |
-
|
1733 |
-
#: classes/class.pmproemail.php:670 classes/class.pmproemail.php:621
|
1734 |
-
#, php-format
|
1735 |
-
msgid "Your membership at %s will end soon"
|
1736 |
-
msgstr "Vaše členství na %s brzy zkončí"
|
1737 |
-
|
1738 |
-
#: classes/class.pmproemail.php:690 classes/class.pmproemail.php:641
|
1739 |
-
#, php-format
|
1740 |
-
msgid "Your membership at %s has been changed"
|
1741 |
-
msgstr "Vaše členství na %s bude změněno"
|
1742 |
-
|
1743 |
-
#: classes/class.pmproemail.php:694 classes/class.pmproemail.php:732
|
1744 |
-
#: classes/class.pmproemail.php:645 classes/class.pmproemail.php:683
|
1745 |
-
#, php-format
|
1746 |
-
msgid "The new level is %s. This membership is free"
|
1747 |
-
msgstr "Nová úroveň je% s. Toto členství je zdarma"
|
1748 |
-
|
1749 |
-
#: classes/class.pmproemail.php:696 classes/class.pmproemail.php:647
|
1750 |
-
msgid "Your membership has been cancelled"
|
1751 |
-
msgstr "Vaše členství bylo ukončeno"
|
1752 |
-
|
1753 |
-
#: classes/class.pmproemail.php:700 classes/class.pmproemail.php:738
|
1754 |
-
#: classes/class.pmproemail.php:651 classes/class.pmproemail.php:689
|
1755 |
-
#, php-format
|
1756 |
-
msgid "This membership will expire on %s"
|
1757 |
-
msgstr "Toto členství vyprší %s"
|
1758 |
-
|
1759 |
-
#: classes/class.pmproemail.php:704 classes/class.pmproemail.php:742
|
1760 |
-
#: classes/class.pmproemail.php:655 classes/class.pmproemail.php:693
|
1761 |
-
msgid "This membership does not expire"
|
1762 |
-
msgstr "Toto členství nevyprší"
|
1763 |
-
|
1764 |
-
#: classes/class.pmproemail.php:728 classes/class.pmproemail.php:679
|
1765 |
-
#, php-format
|
1766 |
-
msgid "Membership for %s at %s has been changed"
|
1767 |
-
msgstr "členství pro %s na %s bylo změněno"
|
1768 |
-
|
1769 |
-
#: classes/class.pmproemail.php:734 classes/class.pmproemail.php:685
|
1770 |
-
msgid "membership has been cancelled"
|
1771 |
-
msgstr "členství ukončeno"
|
1772 |
-
|
1773 |
-
#: classes/gateways/class.pmprogateway.php:55
|
1774 |
-
#: classes/gateways/class.pmprogateway_authorizenet.php:55
|
1775 |
-
#: classes/gateways/class.pmprogateway_check.php:60
|
1776 |
-
#: classes/gateways/class.pmprogateway_cybersource.php:57
|
1777 |
-
#: classes/gateways/class.pmprogateway_payflowpro.php:27
|
1778 |
-
#: classes/gateways/class.pmprogateway_paypal.php:27
|
1779 |
-
msgid "Unknown error: Authorization failed."
|
1780 |
-
msgstr "Neznámá chyba: Autorizace selhala"
|
1781 |
-
|
1782 |
-
#: classes/gateways/class.pmprogateway.php:106
|
1783 |
-
#: classes/gateways/class.pmprogateway.php:111
|
1784 |
-
#: classes/gateways/class.pmprogateway.php:129
|
1785 |
-
#: classes/gateways/class.pmprogateway_authorizenet.php:106
|
1786 |
-
#: classes/gateways/class.pmprogateway_authorizenet.php:111
|
1787 |
-
#: classes/gateways/class.pmprogateway_authorizenet.php:128
|
1788 |
-
#: classes/gateways/class.pmprogateway_check.php:111
|
1789 |
-
#: classes/gateways/class.pmprogateway_check.php:116
|
1790 |
-
#: classes/gateways/class.pmprogateway_check.php:134
|
1791 |
-
#: classes/gateways/class.pmprogateway_cybersource.php:108
|
1792 |
-
#: classes/gateways/class.pmprogateway_cybersource.php:113
|
1793 |
-
#: classes/gateways/class.pmprogateway_cybersource.php:131
|
1794 |
-
#: classes/gateways/class.pmprogateway_payflowpro.php:50
|
1795 |
-
#: classes/gateways/class.pmprogateway_payflowpro.php:55
|
1796 |
-
#: classes/gateways/class.pmprogateway_paypal.php:50
|
1797 |
-
msgid "Unknown error: Payment failed."
|
1798 |
-
msgstr "Neznámá chyba: Platba selhala"
|
1799 |
-
|
1800 |
-
#: classes/gateways/class.pmprogateway.php:113
|
1801 |
-
#: classes/gateways/class.pmprogateway_authorizenet.php:112
|
1802 |
-
#: classes/gateways/class.pmprogateway_check.php:118
|
1803 |
-
#: classes/gateways/class.pmprogateway_cybersource.php:115
|
1804 |
-
msgid ""
|
1805 |
-
"A partial payment was made that we could not void. Please contact the site "
|
1806 |
-
"owner immediately to correct this."
|
1807 |
-
msgstr ""
|
1808 |
-
"Částečně provedená platba. Prosím, obraťte se na vlastníka stránky, který "
|
1809 |
-
"problém okamžitě napraví."
|
1810 |
-
|
1811 |
-
#: classes/gateways/class.pmprogateway_authorizenet.php:787
|
1812 |
-
#: classes/gateways/class.pmprogateway_authorizenet.php:788
|
1813 |
-
#: classes/gateways/class.pmprogateway_authorizenet.php:789
|
1814 |
-
msgid "Could not connect to Authorize.net"
|
1815 |
-
msgstr "Nelze se připojit k Authorize.net"
|
1816 |
-
|
1817 |
-
#: classes/gateways/class.pmprogateway_braintree.php:61
|
1818 |
-
#: classes/gateways/class.pmprogateway_stripe.php:53
|
1819 |
-
msgid "Unknown error: Initial payment failed."
|
1820 |
-
msgstr "Neznámá platba: První platba se nezdařila."
|
1821 |
-
|
1822 |
-
#: classes/gateways/class.pmprogateway_braintree.php:120
|
1823 |
-
msgid "Error during settlement:"
|
1824 |
-
msgstr "Chyba při zúčtování:"
|
1825 |
-
|
1826 |
-
#: classes/gateways/class.pmprogateway_braintree.php:129
|
1827 |
-
msgid "Error during charge:"
|
1828 |
-
msgstr "Chyba během placení:"
|
1829 |
-
|
1830 |
-
#: classes/gateways/class.pmprogateway_braintree.php:198
|
1831 |
-
msgid "Failed to update customer."
|
1832 |
-
msgstr "Nepodařilo se aktualizovat zákazníka."
|
1833 |
-
|
1834 |
-
#: classes/gateways/class.pmprogateway_braintree.php:246
|
1835 |
-
msgid "Failed to create customer."
|
1836 |
-
msgstr "Nepodařilo se vytvořit zákazníka."
|
1837 |
-
|
1838 |
-
#: classes/gateways/class.pmprogateway_braintree.php:253
|
1839 |
-
msgid "Error creating customer record with Braintree:"
|
1840 |
-
msgstr "Chyba při vytváření zákazníka nahrána do Braintree:"
|
1841 |
-
|
1842 |
-
#: classes/gateways/class.pmprogateway_braintree.php:344
|
1843 |
-
#: classes/gateways/class.pmprogateway_braintree.php:345
|
1844 |
-
msgid "Error subscribing customer to plan with Braintree:"
|
1845 |
-
msgstr "Chyba při objednání zákazníka nahrána do Braintree:"
|
1846 |
-
|
1847 |
-
#: classes/gateways/class.pmprogateway_braintree.php:359
|
1848 |
-
#: classes/gateways/class.pmprogateway_braintree.php:360
|
1849 |
-
msgid "Failed to subscribe with Braintree:"
|
1850 |
-
msgstr "Přihlášení s Braintree se nezdařilo:"
|
1851 |
-
|
1852 |
-
#: classes/gateways/class.pmprogateway_braintree.php:397
|
1853 |
-
#: classes/gateways/class.pmprogateway_braintree.php:410
|
1854 |
-
#: classes/gateways/class.pmprogateway_braintree.php:417
|
1855 |
-
#: classes/gateways/class.pmprogateway_stripe.php:344
|
1856 |
-
#: classes/gateways/class.pmprogateway_stripe.php:354
|
1857 |
-
#: classes/gateways/class.pmprogateway_braintree.php:398
|
1858 |
-
#: classes/gateways/class.pmprogateway_braintree.php:411
|
1859 |
-
#: classes/gateways/class.pmprogateway_braintree.php:418
|
1860 |
-
#: classes/gateways/class.pmprogateway_stripe.php:343
|
1861 |
-
#: classes/gateways/class.pmprogateway_stripe.php:353
|
1862 |
-
msgid "Could not find the subscription."
|
1863 |
-
msgstr "Nelze najít předplatné."
|
1864 |
-
|
1865 |
-
#: classes/gateways/class.pmprogateway_payflowpro.php:57
|
1866 |
-
#: classes/gateways/class.pmprogateway_paypal.php:57
|
1867 |
-
msgid ""
|
1868 |
-
"A partial payment was made that we could not refund. Please contact the site "
|
1869 |
-
"owner immediately to correct this."
|
1870 |
-
msgstr ""
|
1871 |
-
"Částečná platba byla provedena, ale nemůžeme ji vrátit. Obraťte se na "
|
1872 |
-
"vlastníka webu, který problém okamžitě vyřeší."
|
1873 |
-
|
1874 |
-
#: classes/gateways/class.pmprogateway_stripe.php:192
|
1875 |
-
#: classes/gateways/class.pmprogateway_stripe.php:190
|
1876 |
-
msgid "Error creating customer record with Stripe:"
|
1877 |
-
msgstr "Chyba při vytváření zákazníka nahrána do Stripe:"
|
1878 |
-
|
1879 |
-
#: classes/gateways/class.pmprogateway_stripe.php:279
|
1880 |
-
#: classes/gateways/class.pmprogateway_stripe.php:278
|
1881 |
-
msgid "Error creating plan with Stripe:"
|
1882 |
-
msgstr "Chyba vytvoření plánu pomocí Stripe:"
|
1883 |
-
|
1884 |
-
#: classes/gateways/class.pmprogateway_stripe.php:295
|
1885 |
-
#: classes/gateways/class.pmprogateway_stripe.php:294
|
1886 |
-
msgid "Error subscribing customer to plan with Stripe:"
|
1887 |
-
msgstr "Chyba při objednání zákazníka nahrána do Stripe:"
|
1888 |
-
|
1889 |
-
#: includes/adminpages.php:9 includes/adminpages.php:39
|
1890 |
-
msgid "Memberships"
|
1891 |
-
msgstr "Členství"
|
1892 |
-
|
1893 |
-
#: includes/adminpages.php:10 includes/adminpages.php:49
|
1894 |
-
msgid "Page Settings"
|
1895 |
-
msgstr "Nastavení stránek"
|
1896 |
-
|
1897 |
-
#: includes/adminpages.php:11 includes/adminpages.php:54
|
1898 |
-
msgid "Payment Settings"
|
1899 |
-
msgstr "Nastavení plateb"
|
1900 |
-
|
1901 |
-
#: includes/adminpages.php:16 includes/adminpages.php:79
|
1902 |
-
msgid "Reports"
|
1903 |
-
msgstr "Statistiky"
|
1904 |
-
|
1905 |
-
#: includes/adminpages.php:18 includes/adminpages.php:89
|
1906 |
-
msgid "Discount Codes"
|
1907 |
-
msgstr "Slevové kupóny"
|
1908 |
-
|
1909 |
-
#: includes/cleanup.php:24
|
1910 |
-
#, php-format
|
1911 |
-
msgid ""
|
1912 |
-
"There was an error canceling the subscription for user with ID=%s. You will "
|
1913 |
-
"want to check your payment gateway to see if their subscription is still "
|
1914 |
-
"active."
|
1915 |
-
msgstr ""
|
1916 |
-
"Došlo k chybě při zrušení předplatného pro uživatele s ID=%s. Budete chtít "
|
1917 |
-
"zkontrolovat platební bránu, zda je jejich předplatné stále aktivní?"
|
1918 |
-
|
1919 |
-
#: includes/currencies.php:7 includes/currencies.php:44
|
1920 |
-
#: includes/currencies.php:37
|
1921 |
-
msgid "US Dollars ($)"
|
1922 |
-
msgstr "Americký dolar ($)"
|
1923 |
-
|
1924 |
-
#: includes/currencies.php:8 includes/currencies.php:47
|
1925 |
-
#: includes/currencies.php:40
|
1926 |
-
msgid "Euros (€)"
|
1927 |
-
msgstr "Euro (€)"
|
1928 |
-
|
1929 |
-
#: includes/currencies.php:9 includes/currencies.php:46
|
1930 |
-
#: includes/currencies.php:39
|
1931 |
-
msgid "Pounds Sterling (£)"
|
1932 |
-
msgstr "Libra (£)"
|
1933 |
-
|
1934 |
-
#: includes/currencies.php:10
|
1935 |
-
msgid "Australian Dollars ($)"
|
1936 |
-
msgstr "Australský dolar ($)"
|
1937 |
-
|
1938 |
-
#: includes/currencies.php:11
|
1939 |
-
msgid "Brazilian Real ($)"
|
1940 |
-
msgstr "Brazilský real ($)"
|
1941 |
-
|
1942 |
-
#: includes/currencies.php:12 includes/currencies.php:45
|
1943 |
-
#: includes/currencies.php:38
|
1944 |
-
msgid "Canadian Dollars ($)"
|
1945 |
-
msgstr "Kanadský dolar ($)"
|
1946 |
-
|
1947 |
-
#: includes/currencies.php:13
|
1948 |
-
msgid "Chinese Yuan"
|
1949 |
-
msgstr "Čínský Jen"
|
1950 |
-
|
1951 |
-
#: includes/currencies.php:14 includes/currencies.php:13
|
1952 |
-
msgid "Czech Koruna"
|
1953 |
-
msgstr "Český koruna"
|
1954 |
-
|
1955 |
-
#: includes/currencies.php:15 includes/currencies.php:14
|
1956 |
-
msgid "Danish Krone"
|
1957 |
-
msgstr "Dánská koruna"
|
1958 |
-
|
1959 |
-
#: includes/currencies.php:16 includes/currencies.php:15
|
1960 |
-
msgid "Hong Kong Dollar ($)"
|
1961 |
-
msgstr "Hong Kongský dolar ($)"
|
1962 |
-
|
1963 |
-
#: includes/currencies.php:17 includes/currencies.php:16
|
1964 |
-
msgid "Hungarian Forint"
|
1965 |
-
msgstr "Maďarský forint"
|
1966 |
-
|
1967 |
-
#: includes/currencies.php:18
|
1968 |
-
msgid "Indian Rupee"
|
1969 |
-
msgstr "Indická rupie"
|
1970 |
-
|
1971 |
-
#: includes/currencies.php:19
|
1972 |
-
msgid "Indonesia Rupiah"
|
1973 |
-
msgstr "Indonézská rupie"
|
1974 |
-
|
1975 |
-
#: includes/currencies.php:20 includes/currencies.php:17
|
1976 |
-
msgid "Israeli Shekel"
|
1977 |
-
msgstr "Izraelský Shekel"
|
1978 |
-
|
1979 |
-
#: includes/currencies.php:21 includes/currencies.php:18
|
1980 |
-
msgid "Japanese Yen (¥)"
|
1981 |
-
msgstr "Japonský Jen (¥)"
|
1982 |
-
|
1983 |
-
#: includes/currencies.php:22 includes/currencies.php:19
|
1984 |
-
msgid "Malaysian Ringgits"
|
1985 |
-
msgstr "Malajský ringgits"
|
1986 |
-
|
1987 |
-
#: includes/currencies.php:23 includes/currencies.php:20
|
1988 |
-
msgid "Mexican Peso ($)"
|
1989 |
-
msgstr "Mexické peso ($)"
|
1990 |
-
|
1991 |
-
#: includes/currencies.php:24 includes/currencies.php:21
|
1992 |
-
msgid "New Zealand Dollar ($)"
|
1993 |
-
msgstr "Novozélanský dolar ($)"
|
1994 |
-
|
1995 |
-
#: includes/currencies.php:25 includes/currencies.php:22
|
1996 |
-
msgid "Norwegian Krone"
|
1997 |
-
msgstr "Norská koruna"
|
1998 |
-
|
1999 |
-
#: includes/currencies.php:26 includes/currencies.php:23
|
2000 |
-
msgid "Philippine Pesos"
|
2001 |
-
msgstr "Filipínské pesos"
|
2002 |
-
|
2003 |
-
#: includes/currencies.php:27 includes/currencies.php:24
|
2004 |
-
msgid "Polish Zloty"
|
2005 |
-
msgstr "Polský zlotý"
|
2006 |
-
|
2007 |
-
#: includes/currencies.php:28 includes/currencies.php:25
|
2008 |
-
msgid "Singapore Dollar ($)"
|
2009 |
-
msgstr "Singapurský dolar ($)"
|
2010 |
-
|
2011 |
-
#: includes/currencies.php:29
|
2012 |
-
msgid "South African Rand"
|
2013 |
-
msgstr "Jihoafrický Rand"
|
2014 |
-
|
2015 |
-
#: includes/currencies.php:30
|
2016 |
-
msgid "South Korean Won"
|
2017 |
-
msgstr "Jihokorejský Won"
|
2018 |
-
|
2019 |
-
#: includes/currencies.php:31 includes/currencies.php:26
|
2020 |
-
msgid "Swedish Krona"
|
2021 |
-
msgstr "švédská koruna"
|
2022 |
-
|
2023 |
-
#: includes/currencies.php:32 includes/currencies.php:27
|
2024 |
-
msgid "Swiss Franc"
|
2025 |
-
msgstr "Švýcarský Frank"
|
2026 |
-
|
2027 |
-
#: includes/currencies.php:33 includes/currencies.php:28
|
2028 |
-
msgid "Taiwan New Dollars"
|
2029 |
-
msgstr "Taiwanský noví dolar"
|
2030 |
-
|
2031 |
-
#: includes/currencies.php:34 includes/currencies.php:29
|
2032 |
-
msgid "Thai Baht"
|
2033 |
-
msgstr "Thaiský Baht"
|
2034 |
-
|
2035 |
-
#: includes/currencies.php:35
|
2036 |
-
msgid "Turkish Lira"
|
2037 |
-
msgstr "Turecká lira"
|
2038 |
-
|
2039 |
-
#: includes/currencies.php:36
|
2040 |
-
msgid "Vietnamese Dong"
|
2041 |
-
msgstr "Vietnamský Dong"
|
2042 |
-
|
2043 |
-
#: includes/functions.php:196 includes/functions.php:160
|
2044 |
-
#, php-format
|
2045 |
-
msgid "The price for membership is <strong>%s</strong> now"
|
2046 |
-
msgstr "Cena za členství je nyní <strong>%s</strong>"
|
2047 |
-
|
2048 |
-
#: includes/functions.php:205 includes/functions.php:169
|
2049 |
-
#, php-format
|
2050 |
-
msgid " and then <strong>%s per %s for %d more %s</strong>."
|
2051 |
-
msgstr "a pak <strong>%s na %s pro %d další %s</strong>."
|
2052 |
-
|
2053 |
-
#: includes/functions.php:209 includes/functions.php:173
|
2054 |
-
#, php-format
|
2055 |
-
msgid " and then <strong>%s every %d %s for %d more %s</strong>."
|
2056 |
-
msgstr "a pak <strong>%s každý %d %s pro %d více %s</strong>."
|
2057 |
-
|
2058 |
-
#: includes/functions.php:214 includes/functions.php:178
|
2059 |
-
#, php-format
|
2060 |
-
msgid " and then <strong>%s after %d %s</strong>."
|
2061 |
-
msgstr "a pak <strong>%s po %d %s</strong>."
|
2062 |
-
|
2063 |
-
#: includes/functions.php:220 includes/functions.php:184
|
2064 |
-
#, php-format
|
2065 |
-
msgid " and then <strong>%s per %s</strong>."
|
2066 |
-
msgstr "a pak <strong>%s na %s</strong>."
|
2067 |
-
|
2068 |
-
#: includes/functions.php:224 includes/functions.php:188
|
2069 |
-
#, php-format
|
2070 |
-
msgid " and then <strong>%s every %d %s</strong>."
|
2071 |
-
msgstr "a pak <strong>%s každý %d %s</strong>."
|
2072 |
-
|
2073 |
-
#: includes/functions.php:238 pages/levels.php:82 includes/functions.php:202
|
2074 |
-
msgid "After your initial payment, your first payment is Free."
|
2075 |
-
msgstr "Pro vaši výchozí platbu je první platba zdarma."
|
2076 |
-
|
2077 |
-
#: includes/functions.php:242 pages/levels.php:86 includes/functions.php:206
|
2078 |
-
#, php-format
|
2079 |
-
msgid "After your initial payment, your first %d payments are Free."
|
2080 |
-
msgstr "Pro vaši výchozí platbu jsou vaše %d platby zdarma"
|
2081 |
-
|
2082 |
-
#: includes/functions.php:249 pages/levels.php:93 includes/functions.php:213
|
2083 |
-
#, php-format
|
2084 |
-
msgid "After your initial payment, your first payment will cost %s."
|
2085 |
-
msgstr "Pro vaši výchozí platbu bude vaše první platba stát %s."
|
2086 |
-
|
2087 |
-
#: includes/functions.php:253 pages/levels.php:97 includes/functions.php:217
|
2088 |
-
#, php-format
|
2089 |
-
msgid "After your initial payment, your first %d payments will cost %s."
|
2090 |
-
msgstr "Pro vaši výchozí platbu bude vaše první %d platby stát %s."
|
2091 |
-
|
2092 |
-
#: includes/functions.php:264 includes/functions.php:228
|
2093 |
-
#, php-format
|
2094 |
-
msgid "Customers in %s will be charged %s%% tax."
|
2095 |
-
msgstr "Zákazníkovi %s bude účtována %s%% daň."
|
2096 |
-
|
2097 |
-
#: includes/functions.php:278 includes/functions.php:242
|
2098 |
-
#, php-format
|
2099 |
-
msgid "Membership expires after %d %s."
|
2100 |
-
msgstr "Členství vyprší %d %s."
|
2101 |
-
|
2102 |
-
#: includes/functions.php:514 includes/functions.php:491
|
2103 |
-
msgid "User ID not found."
|
2104 |
-
msgstr "Uživatelské ID nenalezeno."
|
2105 |
-
|
2106 |
-
#: includes/functions.php:531 includes/functions.php:508
|
2107 |
-
msgid "Invalid level."
|
2108 |
-
msgstr "špatná úroveň."
|
2109 |
-
|
2110 |
-
#: includes/functions.php:542 includes/functions.php:520
|
2111 |
-
msgid "not changing?"
|
2112 |
-
msgstr "bez změn?"
|
2113 |
-
|
2114 |
-
#: includes/functions.php:559 includes/functions.php:605
|
2115 |
-
#: includes/functions.php:614 includes/functions.php:537
|
2116 |
-
#: includes/functions.php:583 includes/functions.php:592
|
2117 |
-
msgid "Error interacting with database"
|
2118 |
-
msgstr "Chyba interakce s databází"
|
2119 |
-
|
2120 |
-
#: includes/functions.php:651 includes/functions.php:690
|
2121 |
-
#: includes/functions.php:629 includes/functions.php:668
|
2122 |
-
msgid "Membership level not found."
|
2123 |
-
msgstr "Uživatelská úroveň nenalezena."
|
2124 |
-
|
2125 |
-
#: includes/functions.php:1072 includes/functions.php:1050
|
2126 |
-
msgid "The discount code could not be found."
|
2127 |
-
msgstr "Slevový kupón nenalezen."
|
2128 |
-
|
2129 |
-
#: includes/functions.php:1088 includes/functions.php:1066
|
2130 |
-
#, php-format
|
2131 |
-
msgid "This discount code goes into effect on %s."
|
2132 |
-
msgstr "Slevový kupón bude platný od %s."
|
2133 |
-
|
2134 |
-
#: includes/functions.php:1097 includes/functions.php:1075
|
2135 |
-
#, php-format
|
2136 |
-
msgid "This discount code expired on %s."
|
2137 |
-
msgstr "Tento slevový kupón vyprší %s."
|
2138 |
-
|
2139 |
-
#: includes/functions.php:1109 includes/functions.php:1087
|
2140 |
-
msgid "This discount code is no longer valid."
|
2141 |
-
msgstr "Tento slevový kupó již není platný."
|
2142 |
-
|
2143 |
-
#: includes/functions.php:1124 includes/functions.php:1102
|
2144 |
-
msgid "This discount code does not apply to this membership level."
|
2145 |
-
msgstr "Tento slevový kupón nelze použit pro tuto členskou úroveň."
|
2146 |
-
|
2147 |
-
#: includes/functions.php:1132 includes/functions.php:1110
|
2148 |
-
msgid "This discount code is okay."
|
2149 |
-
msgstr "Slevový kupón je vpořádku."
|
2150 |
-
|
2151 |
-
#: includes/functions.php:1156 includes/functions.php:1134
|
2152 |
-
msgid "and"
|
2153 |
-
msgstr "a"
|
2154 |
-
|
2155 |
-
#: includes/functions.php:1341 includes/functions.php:1319
|
2156 |
-
msgid "Sign Up for !!name!! Now"
|
2157 |
-
msgstr "Přihlašte se !!name!! nyní"
|
2158 |
-
|
2159 |
-
#: includes/functions.php:1347 includes/functions.php:1325
|
2160 |
-
msgid "Please specify a level id."
|
2161 |
-
msgstr "Zadejte číslo úrovně."
|
2162 |
-
|
2163 |
-
#: includes/localization.php:23
|
2164 |
-
msgid "Day"
|
2165 |
-
msgstr "Den"
|
2166 |
-
|
2167 |
-
#: includes/localization.php:25
|
2168 |
-
msgid "Week"
|
2169 |
-
msgstr "Týden"
|
2170 |
-
|
2171 |
-
#: includes/localization.php:27
|
2172 |
-
msgid "Month"
|
2173 |
-
msgstr "Měsíc"
|
2174 |
-
|
2175 |
-
#: includes/localization.php:29
|
2176 |
-
msgid "Year"
|
2177 |
-
msgstr "Rok"
|
2178 |
-
|
2179 |
-
#: includes/metaboxes.php:38
|
2180 |
-
msgid ""
|
2181 |
-
"This post is already protected for this level because it is within a "
|
2182 |
-
"category that requires membership."
|
2183 |
-
msgstr ""
|
2184 |
-
"Tento příspěvek je již chráněna pro tuto úrověň, protože je v kategorii, "
|
2185 |
-
"která vyžaduje členství."
|
2186 |
-
|
2187 |
-
#: includes/metaboxes.php:99 includes/metaboxes.php:100
|
2188 |
-
msgid "Require Membership"
|
2189 |
-
msgstr "Vyžadovat členství"
|
2190 |
-
|
2191 |
-
#: includes/profile.php:36 includes/profile.php:34
|
2192 |
-
msgid "Current Level"
|
2193 |
-
msgstr "Aktuální úrověň"
|
2194 |
-
|
2195 |
-
#: includes/profile.php:39 includes/profile.php:37
|
2196 |
-
msgid "None"
|
2197 |
-
msgstr "Nic"
|
2198 |
-
|
2199 |
-
#: includes/profile.php:84 includes/profile.php:82
|
2200 |
-
msgid "User is not paying."
|
2201 |
-
msgstr "Uživatel nezaplatil."
|
2202 |
-
|
2203 |
-
#: pages/account.php:10
|
2204 |
-
msgid "Your membership is <strong>active</strong>."
|
2205 |
-
msgstr "Vaše členství je <strong>aktivní</strong>."
|
2206 |
-
|
2207 |
-
#: pages/account.php:12 pages/billing.php:16 pages/levels.php:13
|
2208 |
-
msgid "Level"
|
2209 |
-
msgstr "Úroveň"
|
2210 |
-
|
2211 |
-
#: pages/account.php:14 pages/billing.php:18
|
2212 |
-
msgid "Membership Fee"
|
2213 |
-
msgstr "členský poplatek"
|
2214 |
-
|
2215 |
-
#: pages/account.php:25 pages/billing.php:29
|
2216 |
-
msgid "Duration"
|
2217 |
-
msgstr "Trvání"
|
2218 |
-
|
2219 |
-
#: pages/account.php:29 pages/confirmation.php:49 pages/invoice.php:30
|
2220 |
-
#: pages/confirmation.php:48 pages/invoice.php:29
|
2221 |
-
msgid "Membership Expires"
|
2222 |
-
msgstr "členství vyprší"
|
2223 |
-
|
2224 |
-
#: pages/account.php:34
|
2225 |
-
#, php-format
|
2226 |
-
msgid "Your first payment will cost %s."
|
2227 |
-
msgstr "Vaše první platba bude stát %s."
|
2228 |
-
|
2229 |
-
#: pages/account.php:38
|
2230 |
-
#, php-format
|
2231 |
-
msgid "Your first %d payments will cost %s."
|
2232 |
-
msgstr "Vaše první %d budou stát %s."
|
2233 |
-
|
2234 |
-
#: pages/account.php:46
|
2235 |
-
msgid "My Account"
|
2236 |
-
msgstr "Muj účet"
|
2237 |
-
|
2238 |
-
#: pages/account.php:55
|
2239 |
-
msgid "Edit Profile"
|
2240 |
-
msgstr "Upravit profil"
|
2241 |
-
|
2242 |
-
#: pages/account.php:56
|
2243 |
-
msgid "Change Password"
|
2244 |
-
msgstr "Změnit heslo"
|
2245 |
-
|
2246 |
-
#: pages/account.php:87
|
2247 |
-
msgid "Billing Information"
|
2248 |
-
msgstr "Fakturační údaje"
|
2249 |
-
|
2250 |
-
#: pages/account.php:105 pages/confirmation.php:63 pages/invoice.php:50
|
2251 |
-
#: pages/confirmation.php:61 pages/invoice.php:48
|
2252 |
-
msgid "Payment Method"
|
2253 |
-
msgstr "Platební metody"
|
2254 |
-
|
2255 |
-
#: pages/account.php:114
|
2256 |
-
msgid "Edit Billing Information"
|
2257 |
-
msgstr "Upravit fakturační údaje"
|
2258 |
-
|
2259 |
-
#: pages/account.php:125
|
2260 |
-
msgid "Past Invoices"
|
2261 |
-
msgstr "Minulé faktury"
|
2262 |
-
|
2263 |
-
#: pages/account.php:140
|
2264 |
-
msgid "View All Invoices"
|
2265 |
-
msgstr "Zobrazit všechny faktury"
|
2266 |
-
|
2267 |
-
#: pages/account.php:146
|
2268 |
-
msgid "Member Links"
|
2269 |
-
msgstr "Odkazy členů"
|
2270 |
-
|
2271 |
-
#: pages/account.php:152
|
2272 |
-
msgid "Update Billing Information"
|
2273 |
-
msgstr "Upravit fakturační údaje"
|
2274 |
-
|
2275 |
-
#: pages/account.php:155
|
2276 |
-
msgid "Change Membership Level"
|
2277 |
-
msgstr "Změnit úroveň členství"
|
2278 |
-
|
2279 |
-
#: pages/account.php:157
|
2280 |
-
msgid "Cancel Membership"
|
2281 |
-
msgstr "Zrušení členství"
|
2282 |
-
|
2283 |
-
#: pages/billing.php:14
|
2284 |
-
#, php-format
|
2285 |
-
msgid "Logged in as <strong>%s</strong>."
|
2286 |
-
msgstr "Přihlášen jako <strong>%s</strong>."
|
2287 |
-
|
2288 |
-
#: pages/billing.php:14
|
2289 |
-
msgid "logout"
|
2290 |
-
msgstr "odhlásit"
|
2291 |
-
|
2292 |
-
#: pages/billing.php:39
|
2293 |
-
msgid ""
|
2294 |
-
"Your payment subscription is managed by PayPal. Please <a href=\"http://www."
|
2295 |
-
"paypal.com\">login to PayPal here</a> to update your billing information."
|
2296 |
-
msgstr ""
|
2297 |
-
"Váš odběr plateb řídí PayPal. <a href=\"http://www.paypal.com\">Přihlašte se "
|
2298 |
-
"do PayPal</a> a aktualizujte své fakturační údaje."
|
2299 |
-
|
2300 |
-
#: pages/billing.php:65 pages/checkout.php:328 pages/checkout.php:321
|
2301 |
-
msgid "First Name"
|
2302 |
-
msgstr "Jméno"
|
2303 |
-
|
2304 |
-
#: pages/billing.php:69 pages/checkout.php:332 pages/checkout.php:325
|
2305 |
-
msgid "Last Name"
|
2306 |
-
msgstr "Příjmení"
|
2307 |
-
|
2308 |
-
#: pages/billing.php:73 pages/checkout.php:336 pages/checkout.php:329
|
2309 |
-
msgid "Address 1"
|
2310 |
-
msgstr "Adresa 1"
|
2311 |
-
|
2312 |
-
#: pages/billing.php:77 pages/checkout.php:340 pages/checkout.php:333
|
2313 |
-
msgid "Address 2"
|
2314 |
-
msgstr "Adresa 2"
|
2315 |
-
|
2316 |
-
#: pages/billing.php:87 pages/checkout.php:350 pages/checkout.php:343
|
2317 |
-
msgid "City"
|
2318 |
-
msgstr "Město"
|
2319 |
-
|
2320 |
-
#: pages/billing.php:91 pages/checkout.php:354 pages/checkout.php:347
|
2321 |
-
msgid "State"
|
2322 |
-
msgstr "Stát"
|
2323 |
-
|
2324 |
-
#: pages/billing.php:95 pages/checkout.php:358 pages/checkout.php:351
|
2325 |
-
msgid "Postal Code"
|
2326 |
-
msgstr "PSČ"
|
2327 |
-
|
2328 |
-
#: pages/billing.php:104 pages/checkout.php:367 pages/checkout.php:360
|
2329 |
-
msgid "City, State Zip"
|
2330 |
-
msgstr "Město, PSČ státu"
|
2331 |
-
|
2332 |
-
#: pages/billing.php:157 pages/checkout.php:420 pages/checkout.php:413
|
2333 |
-
msgid "Country"
|
2334 |
-
msgstr "Země"
|
2335 |
-
|
2336 |
-
#: pages/billing.php:182 pages/checkout.php:445 pages/checkout.php:438
|
2337 |
-
msgid "Phone"
|
2338 |
-
msgstr "Telefon"
|
2339 |
-
|
2340 |
-
#: pages/billing.php:193 pages/checkout.php:207 pages/checkout.php:460
|
2341 |
-
#: pages/checkout.php:204 pages/checkout.php:453
|
2342 |
-
msgid "E-mail Address"
|
2343 |
-
msgstr "E-mail"
|
2344 |
-
|
2345 |
-
#: pages/billing.php:197 pages/checkout.php:469 pages/checkout.php:462
|
2346 |
-
msgid "Confirm E-mail"
|
2347 |
-
msgstr "Potvrdit e-mail"
|
2348 |
-
|
2349 |
-
#: pages/billing.php:217
|
2350 |
-
msgid "Credit Card Information"
|
2351 |
-
msgstr "Informace o platební kartě"
|
2352 |
-
|
2353 |
-
#: pages/billing.php:217
|
2354 |
-
#, php-format
|
2355 |
-
msgid "We accept %s"
|
2356 |
-
msgstr "Přijímáme %s"
|
2357 |
-
|
2358 |
-
#: pages/billing.php:244 pages/checkout.php:527 pages/checkout.php:520
|
2359 |
-
msgid "Card Number"
|
2360 |
-
msgstr "Číslo karty"
|
2361 |
-
|
2362 |
-
#: pages/billing.php:281 pages/checkout.php:564 pages/checkout.php:557
|
2363 |
-
msgid "CVV"
|
2364 |
-
msgstr "CVV"
|
2365 |
-
|
2366 |
-
#: pages/billing.php:282 pages/checkout.php:565 pages/checkout.php:558
|
2367 |
-
msgid "what's this?"
|
2368 |
-
msgstr "Co je toto?"
|
2369 |
-
|
2370 |
-
#: pages/billing.php:294
|
2371 |
-
msgid "Update"
|
2372 |
-
msgstr "Upraveno"
|
2373 |
-
|
2374 |
-
#: pages/billing.php:309
|
2375 |
-
msgid ""
|
2376 |
-
"This subscription is not recurring. So you don't need to update your billing "
|
2377 |
-
"information."
|
2378 |
-
msgstr ""
|
2379 |
-
"Tento odběr se neopakuje, takže nemusíte aktualizovat své fakturační údaje."
|
2380 |
-
|
2381 |
-
#: pages/cancel.php:14
|
2382 |
-
msgid "Are you sure you want to cancel your membership?"
|
2383 |
-
msgstr "Jste si jisti, že chcete zrušit Vaše členství?"
|
2384 |
-
|
2385 |
-
#: pages/cancel.php:17
|
2386 |
-
msgid "Yes, cancel my account"
|
2387 |
-
msgstr "Ano, chci zrušit účet"
|
2388 |
-
|
2389 |
-
#: pages/cancel.php:19
|
2390 |
-
msgid "No, keep my account"
|
2391 |
-
msgstr "Ne, chci si ponechat účet"
|
2392 |
-
|
2393 |
-
#: pages/cancel.php:22
|
2394 |
-
msgid "Click here to go to the home page."
|
2395 |
-
msgstr "Pro návrat na hlavní stranu klikněte zde."
|
2396 |
-
|
2397 |
-
#: pages/checkout.php:26 pages/checkout.php:27
|
2398 |
-
msgid ""
|
2399 |
-
"Almost done. Review the membership information and pricing below then "
|
2400 |
-
"<strong>click the \"Complete Payment\" button</strong> to finish your order."
|
2401 |
-
msgstr ""
|
2402 |
-
"Téměř hotovo. Zkontrolujte informace o členství a ceny níže, pak "
|
2403 |
-
"<strong>klikněte na tlačítko \"Complete Payment\" </ strong> a objednávka "
|
2404 |
-
"se dokončí."
|
2405 |
-
|
2406 |
-
#: pages/checkout.php:33 pages/checkout.php:34
|
2407 |
-
msgid "change"
|
2408 |
-
msgstr "změna"
|
2409 |
-
|
2410 |
-
#: pages/checkout.php:41 pages/checkout.php:42
|
2411 |
-
#, php-format
|
2412 |
-
msgid "You have selected the <strong>%s</strong> membership level."
|
2413 |
-
msgstr "Vybrali jste si <strong>%s</strong> úřověň členství."
|
2414 |
-
|
2415 |
-
#: pages/checkout.php:51 pages/checkout.php:52
|
2416 |
-
#, php-format
|
2417 |
-
msgid "<p>The <strong>%s</strong> code has been applied to your order.</p>"
|
2418 |
-
msgstr "<p><strong>%s</strong> kupón byl použit k Vaši objednávce.</p>"
|
2419 |
-
|
2420 |
-
#: pages/checkout.php:62 services/applydiscountcode.php:74
|
2421 |
-
#: pages/checkout.php:63
|
2422 |
-
msgid "Click here to change your discount code"
|
2423 |
-
msgstr "Pro úpravu slevového kupónu klikněte zde"
|
2424 |
-
|
2425 |
-
#: pages/checkout.php:64 pages/checkout.php:65
|
2426 |
-
msgid "Click here to enter your discount code"
|
2427 |
-
msgstr "Pro vložení slevového kupónu klikněte zde"
|
2428 |
-
|
2429 |
-
#: pages/checkout.php:64 pages/checkout.php:65
|
2430 |
-
msgid "Do you have a discount code?"
|
2431 |
-
msgstr "Chcete použít slevový kupón?"
|
2432 |
-
|
2433 |
-
#: pages/checkout.php:78 pages/checkout.php:575 pages/checkout.php:79
|
2434 |
-
#: pages/checkout.php:568
|
2435 |
-
msgid "Apply"
|
2436 |
-
msgstr "použít"
|
2437 |
-
|
2438 |
-
#: pages/checkout.php:163 pages/checkout.php:160
|
2439 |
-
msgid "Account Information"
|
2440 |
-
msgstr "Informace o účtu"
|
2441 |
-
|
2442 |
-
#: pages/checkout.php:163 pages/checkout.php:160
|
2443 |
-
msgid "Already have an account?"
|
2444 |
-
msgstr "Máte již svůj účet?"
|
2445 |
-
|
2446 |
-
#: pages/checkout.php:163 pages/checkout.php:160
|
2447 |
-
msgid "Log in here"
|
2448 |
-
msgstr "Přihlašte se zde"
|
2449 |
-
|
2450 |
-
#: pages/checkout.php:189 pages/checkout.php:186
|
2451 |
-
msgid "Confirm Password"
|
2452 |
-
msgstr "Potvrzení hesla"
|
2453 |
-
|
2454 |
-
#: pages/checkout.php:216 pages/checkout.php:213
|
2455 |
-
msgid "Confirm E-mail Address"
|
2456 |
-
msgstr "Potvrzení e-mailové adresy"
|
2457 |
-
|
2458 |
-
#: pages/checkout.php:235 pages/checkout.php:232
|
2459 |
-
msgid "Full Name"
|
2460 |
-
msgstr "Celé jméno"
|
2461 |
-
|
2462 |
-
#: pages/checkout.php:236 pages/checkout.php:233
|
2463 |
-
msgid "LEAVE THIS BLANK"
|
2464 |
-
msgstr "VZÍT ZPĚT"
|
2465 |
-
|
2466 |
-
#: pages/checkout.php:260 pages/checkout.php:257
|
2467 |
-
#, php-format
|
2468 |
-
msgid ""
|
2469 |
-
"You are logged in as <strong>%s</strong>. If you would like to use a "
|
2470 |
-
"different account for this membership, <a href=\"%s\">log out now</a>."
|
2471 |
-
msgstr ""
|
2472 |
-
"Jste přihlášen jako <strong>%s</strong>. Pokud jste chtěl použít jiný účet, "
|
2473 |
-
"<a href=\"%s\">odhlašte se</a>."
|
2474 |
-
|
2475 |
-
#: pages/checkout.php:284 pages/checkout.php:277
|
2476 |
-
#, php-format
|
2477 |
-
msgid "I agree to the %s"
|
2478 |
-
msgstr "Souhlasím s %s"
|
2479 |
-
|
2480 |
-
#: pages/checkout.php:299 pages/checkout.php:292
|
2481 |
-
msgid "Choose your Payment Method"
|
2482 |
-
msgstr "Zvolte vaši platební metodu"
|
2483 |
-
|
2484 |
-
#: pages/checkout.php:307 pages/checkout.php:300
|
2485 |
-
msgid "Check Out with a Credit Card Here"
|
2486 |
-
msgstr "Zde ověřte Vaši kreditní kartu"
|
2487 |
-
|
2488 |
-
#: pages/checkout.php:309 pages/checkout.php:682 pages/checkout.php:302
|
2489 |
-
#: pages/checkout.php:675
|
2490 |
-
msgid "Check Out with PayPal"
|
2491 |
-
msgstr "Zde ověřte PayPal"
|
2492 |
-
|
2493 |
-
#: pages/checkout.php:500 pages/checkout.php:493
|
2494 |
-
msgid "Payment Information"
|
2495 |
-
msgstr "Platební informace"
|
2496 |
-
|
2497 |
-
#: pages/checkout.php:500 pages/checkout.php:493
|
2498 |
-
#, php-format
|
2499 |
-
msgid "We Accept %s"
|
2500 |
-
msgstr "Přijímáme %s"
|
2501 |
-
|
2502 |
-
#: pages/checkout.php:674 pages/checkout.php:667
|
2503 |
-
msgid "Complete Payment"
|
2504 |
-
msgstr "Kompletní platby"
|
2505 |
-
|
2506 |
-
#: pages/checkout.php:688 pages/checkout.php:681
|
2507 |
-
msgid "Submit and Check Out"
|
2508 |
-
msgstr "Ověřit a odeslat"
|
2509 |
-
|
2510 |
-
#: pages/checkout.php:688 pages/checkout.php:681
|
2511 |
-
msgid "Submit and Confirm"
|
2512 |
-
msgstr "Potvrdit a odeslat"
|
2513 |
-
|
2514 |
-
#: pages/checkout.php:688
|
2515 |
-
msgid "Submit and Pay with 2CheckOut"
|
2516 |
-
msgstr "Zaplatit a odeslat pomocí 2CheckOut"
|
2517 |
-
|
2518 |
-
#: pages/checkout.php:694 pages/checkout.php:687
|
2519 |
-
msgid "Processing..."
|
2520 |
-
msgstr "Zpracování..."
|
2521 |
-
|
2522 |
-
#: pages/confirmation.php:12
|
2523 |
-
msgid ""
|
2524 |
-
"Your payment has been submitted. Your membership will be activated shortly."
|
2525 |
-
msgstr "Platba přijata. Vaše členství bude zakrátko aktivní."
|
2526 |
-
|
2527 |
-
#: pages/confirmation.php:14
|
2528 |
-
#, php-format
|
2529 |
-
msgid "Thank you for your membership to %s. Your %s membership is now active."
|
2530 |
-
msgstr "Děkujeme Vám za vaše členství na %s Váše %s členství je nyní aktivní."
|
2531 |
-
|
2532 |
-
#: pages/confirmation.php:28
|
2533 |
-
#, php-format
|
2534 |
-
msgid ""
|
2535 |
-
"Below are details about your membership account and a receipt for your "
|
2536 |
-
"initial membership invoice. A welcome email with a copy of your initial "
|
2537 |
-
"membership invoice has been sent to %s."
|
2538 |
-
msgstr ""
|
2539 |
-
"Níže jsou uvedeny informace o vašem členském účtu. Uvítací e-mail s kopií "
|
2540 |
-
"vašeho členství byl odeslán na % s."
|
2541 |
-
|
2542 |
-
#: pages/confirmation.php:41 pages/invoice.php:22
|
2543 |
-
#, php-format
|
2544 |
-
msgid "Invoice #%s on %s"
|
2545 |
-
msgstr "Faktura #%s na %s"
|
2546 |
-
|
2547 |
-
#: pages/confirmation.php:43
|
2548 |
-
msgid "Print"
|
2549 |
-
msgstr "Tisk"
|
2550 |
-
|
2551 |
-
#: pages/confirmation.php:46 pages/confirmation.php:104 pages/invoice.php:27
|
2552 |
-
#: pages/confirmation.php:45 pages/confirmation.php:102 pages/invoice.php:26
|
2553 |
-
msgid "Account"
|
2554 |
-
msgstr "Účet"
|
2555 |
-
|
2556 |
-
#: pages/confirmation.php:65 pages/invoice.php:52 pages/invoice.php:109
|
2557 |
-
#: pages/confirmation.php:63 pages/invoice.php:50 pages/invoice.php:107
|
2558 |
-
msgid "Total Billed"
|
2559 |
-
msgstr "Celkový účet"
|
2560 |
-
|
2561 |
-
#: pages/confirmation.php:82 pages/invoice.php:69 pages/confirmation.php:80
|
2562 |
-
#: pages/invoice.php:67
|
2563 |
-
msgid "ending in"
|
2564 |
-
msgstr "Končí"
|
2565 |
-
|
2566 |
-
#: pages/confirmation.php:97 pages/confirmation.php:95
|
2567 |
-
#, php-format
|
2568 |
-
msgid ""
|
2569 |
-
"Below are details about your membership account. A welcome email with has "
|
2570 |
-
"been sent to %s."
|
2571 |
-
msgstr ""
|
2572 |
-
"Níže jsou uvedeny informace o vašem účtu. Uvítací e-mail byl odeslán na %s."
|
2573 |
-
|
2574 |
-
#: pages/confirmation.php:105 pages/confirmation.php:103
|
2575 |
-
msgid "Pending"
|
2576 |
-
msgstr "Až do"
|
2577 |
-
|
2578 |
-
#: pages/confirmation.php:113 pages/invoice.php:141 pages/confirmation.php:111
|
2579 |
-
#: pages/invoice.php:139
|
2580 |
-
msgid "View Your Membership Account →"
|
2581 |
-
msgstr "Zobrazit Vás členský účet →"
|
2582 |
-
|
2583 |
-
#: pages/confirmation.php:115 pages/confirmation.php:113
|
2584 |
-
msgid ""
|
2585 |
-
"If your account is not activated within a few minutes, please contact the "
|
2586 |
-
"site owner."
|
2587 |
-
msgstr ""
|
2588 |
-
"Pokud není váš účet aktivován během několika minut, kontaktujte vlastníka "
|
2589 |
-
"webu."
|
2590 |
-
|
2591 |
-
#: pages/invoice.php:79 pages/invoice.php:77
|
2592 |
-
msgid "Subtotal"
|
2593 |
-
msgstr "Mezisoučet"
|
2594 |
-
|
2595 |
-
#: pages/invoice.php:82 pages/invoice.php:80
|
2596 |
-
msgid "Coupon"
|
2597 |
-
msgstr "Kupón"
|
2598 |
-
|
2599 |
-
#: pages/invoice.php:108 pages/invoice.php:106
|
2600 |
-
msgid "Invoice #"
|
2601 |
-
msgstr "Faktura #"
|
2602 |
-
|
2603 |
-
#: pages/invoice.php:122 pages/invoice.php:120
|
2604 |
-
msgid "View Invoice"
|
2605 |
-
msgstr "Zobrazit fakturu"
|
2606 |
-
|
2607 |
-
#: pages/invoice.php:134 pages/invoice.php:132
|
2608 |
-
msgid "No invoices found."
|
2609 |
-
msgstr "Faktruy nenalezeny"
|
2610 |
-
|
2611 |
-
#: pages/invoice.php:145 pages/invoice.php:143
|
2612 |
-
msgid "← View All Invoices"
|
2613 |
-
msgstr "← Zobrazení všech faktur"
|
2614 |
-
|
2615 |
-
#: pages/levels.php:15
|
2616 |
-
msgid "Subscription Information"
|
2617 |
-
msgstr "Přihlašovací informace"
|
2618 |
-
|
2619 |
-
#: pages/levels.php:33
|
2620 |
-
msgid "--"
|
2621 |
-
msgstr "--"
|
2622 |
-
|
2623 |
-
#: pages/levels.php:43
|
2624 |
-
msgid "Free"
|
2625 |
-
msgstr "Zdarma"
|
2626 |
-
|
2627 |
-
#: pages/levels.php:51
|
2628 |
-
#, php-format
|
2629 |
-
msgid "%s per %s for %d more %s."
|
2630 |
-
msgstr "%s na %s pro %d více %s."
|
2631 |
-
|
2632 |
-
#: pages/levels.php:55
|
2633 |
-
#, php-format
|
2634 |
-
msgid "%s every %d %s for %d more %s."
|
2635 |
-
msgstr "%s každý %d %s pro %d více %s."
|
2636 |
-
|
2637 |
-
#: pages/levels.php:60
|
2638 |
-
#, php-format
|
2639 |
-
msgid "%s after %d %s."
|
2640 |
-
msgstr "%s po %d %s."
|
2641 |
-
|
2642 |
-
#: pages/levels.php:66
|
2643 |
-
#, php-format
|
2644 |
-
msgid "%s per %s."
|
2645 |
-
msgstr "%s na %s."
|
2646 |
-
|
2647 |
-
#: pages/levels.php:70
|
2648 |
-
#, php-format
|
2649 |
-
msgid "%s every %d %s."
|
2650 |
-
msgstr "%s každý %d %s."
|
2651 |
-
|
2652 |
-
#: pages/levels.php:113 pages/levels.php:115
|
2653 |
-
msgid "Select"
|
2654 |
-
msgstr "Označit"
|
2655 |
-
|
2656 |
-
#: pages/levels.php:123
|
2657 |
-
msgid "Renew"
|
2658 |
-
msgstr "Obnovit"
|
2659 |
-
|
2660 |
-
#: pages/levels.php:129 pages/levels.php:117
|
2661 |
-
msgid "Your Level"
|
2662 |
-
msgstr "Vaše úrověň"
|
2663 |
-
|
2664 |
-
#: pages/levels.php:145 pages/levels.php:129
|
2665 |
-
msgid "← Return to Your Account"
|
2666 |
-
msgstr "← Návrat k účtu"
|
2667 |
-
|
2668 |
-
#: pages/levels.php:147 pages/levels.php:131
|
2669 |
-
msgid "← Return to Home"
|
2670 |
-
msgstr "← Návrat domů"
|
2671 |
-
|
2672 |
-
#: preheaders/account.php:7 preheaders/levels.php:19
|
2673 |
-
msgid "Your membership status has been updated - Thank you!"
|
2674 |
-
msgstr "Váš členský satus byl upraven - Děkujeme!"
|
2675 |
-
|
2676 |
-
#: preheaders/account.php:11 preheaders/levels.php:23
|
2677 |
-
msgid ""
|
2678 |
-
"Sorry, your request could not be completed - please try again in a few "
|
2679 |
-
"moments."
|
2680 |
-
msgstr "Váš požadavek nemůže bát dokončen - zkuste to prosím později."
|
2681 |
-
|
2682 |
-
#: preheaders/billing.php:258 preheaders/checkout.php:481
|
2683 |
-
#: preheaders/checkout.php:464
|
2684 |
-
msgid "Please complete all required fields."
|
2685 |
-
msgstr "Vyplňte všechna poviná pole."
|
2686 |
-
|
2687 |
-
#: preheaders/billing.php:263 preheaders/checkout.php:491
|
2688 |
-
#: preheaders/checkout.php:474
|
2689 |
-
msgid "Your email addresses do not match. Please try again."
|
2690 |
-
msgstr "Vaše e-mailová adresa nesouhlasí. Zadejte ji znovu"
|
2691 |
-
|
2692 |
-
#: preheaders/billing.php:268 preheaders/checkout.php:497
|
2693 |
-
#: preheaders/checkout.php:480
|
2694 |
-
msgid "The email address entered is in an invalid format. Please try again."
|
2695 |
-
msgstr ""
|
2696 |
-
"Vaše e-mailová adresa nebyla vložena ve správném formátu. Zkuste to znovu."
|
2697 |
-
|
2698 |
-
#: preheaders/billing.php:274
|
2699 |
-
msgid "All good!"
|
2700 |
-
msgstr "Vše v pořádku!"
|
2701 |
-
|
2702 |
-
#: preheaders/billing.php:340
|
2703 |
-
#, php-format
|
2704 |
-
msgid "Information updated. <a href=\"%s\">« back to my account</a>"
|
2705 |
-
msgstr "Informace upraveny. <a href=\"%s\">« zpět k Vašemu účtu</a>"
|
2706 |
-
|
2707 |
-
#: preheaders/billing.php:347
|
2708 |
-
msgid "Error updating billing information."
|
2709 |
-
msgstr "Chyba při aktualizaci faktruačních údajů."
|
2710 |
-
|
2711 |
-
#: preheaders/cancel.php:24
|
2712 |
-
msgid "Your membership has been cancelled."
|
2713 |
-
msgstr "Vaše členství bylo ukončeno."
|
2714 |
-
|
2715 |
-
#: preheaders/checkout.php:28 preheaders/checkout.php:508
|
2716 |
-
#: preheaders/checkout.php:491
|
2717 |
-
msgid "Invalid gateway."
|
2718 |
-
msgstr "Neplatná brána."
|
2719 |
-
|
2720 |
-
#: preheaders/checkout.php:96
|
2721 |
-
msgid "Checkout: Payment Information"
|
2722 |
-
msgstr "Pokladna: Informace o platbě"
|
2723 |
-
|
2724 |
-
#: preheaders/checkout.php:109
|
2725 |
-
msgid "Setup Your Account"
|
2726 |
-
msgstr "Nastavit S´áš účet"
|
2727 |
-
|
2728 |
-
#: preheaders/checkout.php:485 preheaders/checkout.php:468
|
2729 |
-
msgid "Your passwords do not match. Please try again."
|
2730 |
-
msgstr "Vaše heslo se neshoduje. Zkuste to prosím znovu."
|
2731 |
-
|
2732 |
-
#: preheaders/checkout.php:503 preheaders/checkout.php:486
|
2733 |
-
#, php-format
|
2734 |
-
msgid "Please check the box to agree to the %s."
|
2735 |
-
msgstr "Prosím, proveďte kontrolu políčka k odsouhlasení %s."
|
2736 |
-
|
2737 |
-
#: preheaders/checkout.php:512 preheaders/checkout.php:495
|
2738 |
-
msgid "Are you a spammer?"
|
2739 |
-
msgstr "Jste spamer?"
|
2740 |
-
|
2741 |
-
#: preheaders/checkout.php:535 preheaders/checkout.php:518
|
2742 |
-
msgid "That username is already taken. Please try another."
|
2743 |
-
msgstr "Toto uživatelské heslo je již použito. Prosím zkuste to znovu."
|
2744 |
-
|
2745 |
-
#: preheaders/checkout.php:541 preheaders/checkout.php:524
|
2746 |
-
msgid "That email address is already taken. Please try another."
|
2747 |
-
msgstr "Tato e-mailová adresa je již použita. Zkuste prosím jinou."
|
2748 |
-
|
2749 |
-
#: preheaders/checkout.php:561 preheaders/checkout.php:544
|
2750 |
-
#, php-format
|
2751 |
-
msgid "reCAPTCHA failed. (%s) Please try again."
|
2752 |
-
msgstr "reCAPTCHA neúspěšna. (%s) Zkuste to prosím znovu."
|
2753 |
-
|
2754 |
-
#: preheaders/checkout.php:701 preheaders/checkout.php:683
|
2755 |
-
msgid "Payment accepted."
|
2756 |
-
msgstr "Platba potvrzena."
|
2757 |
-
|
2758 |
-
#: preheaders/checkout.php:709 preheaders/checkout.php:691
|
2759 |
-
msgid ""
|
2760 |
-
"Unknown error generating account. Please contact us to setup your membership."
|
2761 |
-
msgstr ""
|
2762 |
-
"Neznámá chyba generování uživatelského účtu. Kontaktujte vlastníka webu."
|
2763 |
-
|
2764 |
-
#: preheaders/checkout.php:753 preheaders/checkout.php:822
|
2765 |
-
#: preheaders/checkout.php:735 preheaders/checkout.php:803
|
2766 |
-
msgid "The PayPal Token was lost."
|
2767 |
-
msgstr "Paypal Token byl ztracen."
|
2768 |
-
|
2769 |
-
#: preheaders/checkout.php:859 preheaders/checkout.php:825
|
2770 |
-
#: preheaders/checkout.php:844
|
2771 |
-
msgid ""
|
2772 |
-
"Your payment was accepted, but there was an error setting up your account. "
|
2773 |
-
"Please contact us."
|
2774 |
-
msgstr ""
|
2775 |
-
"Vaše platba byla přijata, ale ve vašem účtu byla objevena chyba. Prosím, "
|
2776 |
-
"kontaktujte nás."
|
2777 |
-
|
2778 |
-
#: preheaders/checkout.php:1045 preheaders/checkout.php:983
|
2779 |
-
#: preheaders/checkout.php:1030
|
2780 |
-
msgid ""
|
2781 |
-
"IMPORTANT: Something went wrong during membership creation. Your credit card "
|
2782 |
-
"authorized, but we cancelled the order immediately. You should not try to "
|
2783 |
-
"submit this form again. Please contact the site owner to fix this issue."
|
2784 |
-
msgstr ""
|
2785 |
-
"DŮLEŽITÉ: Při vytváření členství se něco pokazilo. Vaše kreditní karta je "
|
2786 |
-
"autorizována, ale objednávka byla okamžitě zrušena. Obraťte se na vlastníka "
|
2787 |
-
"stránky, který tento problém vyřeší."
|
2788 |
-
|
2789 |
-
#: preheaders/checkout.php:1050 preheaders/checkout.php:988
|
2790 |
-
#: preheaders/checkout.php:1035
|
2791 |
-
msgid ""
|
2792 |
-
"IMPORTANT: Something went wrong during membership creation. Your credit card "
|
2793 |
-
"was charged, but we couldn't assign your membership. You should not submit "
|
2794 |
-
"this form again. Please contact the site owner to fix this issue."
|
2795 |
-
msgstr ""
|
2796 |
-
"DŮLEŽITÉ: Při vytváření členství se něco pokazilo. Vaše kreditní karta byla "
|
2797 |
-
"nabitá, ale jsme se nemohli aktivovat vaše členství. Obraťte se na vlastníka "
|
2798 |
-
"stránky, který tento problém vyřeší."
|
2799 |
-
|
2800 |
-
#: preheaders/checkout.php:1063 preheaders/checkout.php:1001
|
2801 |
-
#: preheaders/checkout.php:1048
|
2802 |
-
#, php-format
|
2803 |
-
msgid ""
|
2804 |
-
"You must <a href=\"%s\">setup a Payment Gateway</a> before any payments will "
|
2805 |
-
"be processed."
|
2806 |
-
msgstr ""
|
2807 |
-
"Před započetím plateb musíte <a href=\"%s\">nastavit platební bránu</a>."
|
2808 |
-
|
2809 |
-
#: preheaders/checkout.php:1065 preheaders/checkout.php:1003
|
2810 |
-
#: preheaders/checkout.php:1050
|
2811 |
-
msgid "A Payment Gateway must be setup before any payments will be processed."
|
2812 |
-
msgstr ""
|
2813 |
-
"Platební brána musí být nastavena předtím, než budou zpracovány veškeré "
|
2814 |
-
"platby."
|
2815 |
-
|
2816 |
-
#: scheduled/crons.php:31 scheduled/crons.php:61
|
2817 |
-
#, php-format
|
2818 |
-
msgid "Membership expired email sent to %s. "
|
2819 |
-
msgstr "Členství skončílo pomocí e-mailu zaslaného na% s."
|
2820 |
-
|
2821 |
-
#: scheduled/crons.php:74 scheduled/crons.php:27
|
2822 |
-
#, php-format
|
2823 |
-
msgid "Membership expiring email sent to %s. "
|
2824 |
-
msgstr "Členství skončí pomocí e-mailu zaslaného na% s."
|
2825 |
-
|
2826 |
-
#: scheduled/crons.php:143
|
2827 |
-
#, php-format
|
2828 |
-
msgid "Credit card expiring email sent to %s. "
|
2829 |
-
msgstr "Kreditní karta skončí pomocí e-mailu zaslaného na% s."
|
2830 |
-
|
2831 |
-
#: scheduled/crons.php:196 scheduled/crons.php:104
|
2832 |
-
#, php-format
|
2833 |
-
msgid "Trial ending email sent to %s. "
|
2834 |
-
msgstr "Zkušební doba zkončí po zaslání emailu %s."
|
2835 |
-
|
2836 |
-
#: services/applydiscountcode.php:82
|
2837 |
-
#, php-format
|
2838 |
-
msgid "The <strong>%s</strong> code has been applied to your order."
|
2839 |
-
msgstr "<strong>%s</strong> kupón byl použit k Vaší objednávce."
|
2840 |
-
|
2841 |
-
#: services/authnet-silent-post.php:133
|
2842 |
-
msgid ""
|
2843 |
-
"<p>A payment is being held for review within Authorize.net.</p><p>Payment "
|
2844 |
-
"Information From Authorize.net"
|
2845 |
-
msgstr ""
|
2846 |
-
"<p>Platba se uskuteční v rámci Authorize.net. </p><p> Informace o platbě od "
|
2847 |
-
"Authorize.net"
|
2848 |
-
|
2849 |
-
#: services/stripe-webhook.php:176
|
2850 |
-
#, php-format
|
2851 |
-
msgid ""
|
2852 |
-
"%s has had their payment subscription cancelled by Stripe. Please check that "
|
2853 |
-
"this user's membership is cancelled on your site if it should be."
|
2854 |
-
msgstr ""
|
2855 |
-
"% s má své předplatné zrušeno Stripem. Zkontrolujte prosím, zda se "
|
2856 |
-
"uživatelovo členství zruší na vašich stránkách, pokud by to tak mělo být."
|
2857 |
-
|
2858 |
-
#: adminpages/membershiplevels.php:398
|
2859 |
-
msgid ""
|
2860 |
-
"2Checkout integration does not currently support custom trials. You can do "
|
2861 |
-
"one period trials by setting an initial payment different from the billing "
|
2862 |
-
"amount."
|
2863 |
-
msgstr ""
|
2864 |
-
"Integrace 2Checkout v současné době nepodporuje vlastní zkušební dobu. "
|
2865 |
-
"Můžete to udělat v jednom období zkušební doby, nastavením počáteční platby "
|
2866 |
-
"lišící se od fakturační částky."
|
2867 |
-
|
2868 |
-
#: adminpages/paymentsettings.php:170
|
2869 |
-
msgid ""
|
2870 |
-
"Payflow Pro currently only supports one-time payments. Users will not be "
|
2871 |
-
"able to checkout for levels with recurring payments."
|
2872 |
-
msgstr ""
|
2873 |
-
"Payflow Pro v současné době podporuje pouze jednorázové platby. Uživatelé "
|
2874 |
-
"nebudou moci zaplatit pro úrovně opakujících se plateb."
|
2875 |
-
|
2876 |
-
#: adminpages/paymentsettings.php:410 adminpages/paymentsettings.php:421
|
2877 |
-
msgid "Use SSL"
|
2878 |
-
msgstr "Použít SSL"
|
2879 |
-
|
2880 |
-
#: adminpages/paymentsettings.php:425
|
2881 |
-
msgid "Required by this Gateway Option"
|
2882 |
-
msgstr "Vyžadované nastavením brány"
|
2883 |
-
|
2884 |
-
#: pages/confirmation.php:12
|
2885 |
-
msgid ""
|
2886 |
-
"Your payment has been submitted to PayPal. Your membership will be activated "
|
2887 |
-
"shortly."
|
2888 |
-
msgstr ""
|
2889 |
-
"Vaše platba byla odeslána na PayPal. Vaše členství bude zakrátko aktivní."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/pmpro-da_DK.mo
DELETED
Binary file
|
languages/pmpro-da_DK.po
DELETED
@@ -1,3502 +0,0 @@
|
|
1 |
-
#
|
2 |
-
# Hi there! Details on how to help out translating Paid Memberships Pro can be found at:
|
3 |
-
# http://www.paidmembershipspro.com/documentation/languages/
|
4 |
-
#
|
5 |
-
msgid ""
|
6 |
-
msgstr ""
|
7 |
-
"Project-Id-Version: pmpro-dk_DA\n"
|
8 |
-
"POT-Creation-Date: 2014-05-05 13:29-0400\n"
|
9 |
-
"PO-Revision-Date: 2014-07-26 16:43+0100\n"
|
10 |
-
"Last-Translator: Miscni <miscni@hotmail.com>\n"
|
11 |
-
"Language-Team: Stranger Studios DK section <miscni@hotmail.com>\n"
|
12 |
-
"MIME-Version: 1.0\n"
|
13 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
14 |
-
"Content-Transfer-Encoding: 8bit\n"
|
15 |
-
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
16 |
-
"Language: da_DK\n"
|
17 |
-
"X-Generator: Poedit 1.6.7\n"
|
18 |
-
"X-Poedit-Bookmarks: -1,-1,215,-1,-1,-1,-1,-1,-1,-1\n"
|
19 |
-
|
20 |
-
#: adminpages/addons.php:5 adminpages/advancedsettings.php:5
|
21 |
-
#: adminpages/discountcodes.php:5 adminpages/emailsettings.php:5
|
22 |
-
#: adminpages/membershiplevels.php:5 adminpages/memberslist-csv.php:5
|
23 |
-
#: adminpages/memberslist.php:5 adminpages/orders-csv.php:5
|
24 |
-
#: adminpages/orders.php:5 adminpages/pagesettings.php:5
|
25 |
-
#: adminpages/paymentsettings.php:5
|
26 |
-
msgid "You do not have permissions to perform this action."
|
27 |
-
msgstr "Du har ikke tilladelse, til at udfører denne handling."
|
28 |
-
|
29 |
-
#: adminpages/addons.php:79
|
30 |
-
msgid "Disabled"
|
31 |
-
msgstr "Deaktiveret."
|
32 |
-
|
33 |
-
#: adminpages/addons.php:79
|
34 |
-
msgid "Enabled"
|
35 |
-
msgstr "Aktiver"
|
36 |
-
|
37 |
-
#: adminpages/admin_header.php:25
|
38 |
-
msgid "Add a membership level to get started."
|
39 |
-
msgstr "Tilføj et medlems niveau for at komme igang."
|
40 |
-
|
41 |
-
#: adminpages/admin_header.php:27
|
42 |
-
msgid "Setup the membership pages"
|
43 |
-
msgstr "Sæt en medleys side op"
|
44 |
-
|
45 |
-
#: adminpages/admin_header.php:29
|
46 |
-
msgid "Setup your SSL certificate and payment gateway"
|
47 |
-
msgstr "Sæt op din SSL certifikater og betalings gateway"
|
48 |
-
|
49 |
-
#: adminpages/admin_header.php:38
|
50 |
-
msgid ""
|
51 |
-
"The billing details for some of your membership levels is not supported by "
|
52 |
-
"Stripe."
|
53 |
-
msgstr ""
|
54 |
-
"Betalings detaljer, for nogle af dine medlems niveaur, understøttes ikke af "
|
55 |
-
"Stripe."
|
56 |
-
|
57 |
-
#: adminpages/admin_header.php:46
|
58 |
-
msgid ""
|
59 |
-
"The billing details for this level are not supported by Stripe. Please "
|
60 |
-
"review the notes in the Billing Details section below."
|
61 |
-
msgstr ""
|
62 |
-
"Betalings detaljer, for dette niveau understøttes ikke af Stripe. Gennemgå "
|
63 |
-
"venligst notater under Betalings Detaljer sektionen."
|
64 |
-
|
65 |
-
#: adminpages/admin_header.php:50 adminpages/admin_header.php:70
|
66 |
-
#: adminpages/admin_header.php:90 adminpages/admin_header.php:111
|
67 |
-
msgid "The levels with issues are highlighted below."
|
68 |
-
msgstr "De niveaur med problemer er fremhævet nedenfor."
|
69 |
-
|
70 |
-
#: adminpages/admin_header.php:52 adminpages/admin_header.php:72
|
71 |
-
#: adminpages/admin_header.php:92 adminpages/admin_header.php:113
|
72 |
-
msgid "Please edit your levels"
|
73 |
-
msgstr "Venlig redigere dine niveaur"
|
74 |
-
|
75 |
-
#: adminpages/admin_header.php:58
|
76 |
-
msgid ""
|
77 |
-
"The billing details for some of your membership levels is not supported by "
|
78 |
-
"Payflow."
|
79 |
-
msgstr ""
|
80 |
-
"Betalings detaljer for nogle af dine medlems niveauer, understøttes ikke af "
|
81 |
-
"Payflow."
|
82 |
-
|
83 |
-
#: adminpages/admin_header.php:66
|
84 |
-
msgid ""
|
85 |
-
"The billing details for this level are not supported by Payflow. Please "
|
86 |
-
"review the notes in the Billing Details section below."
|
87 |
-
msgstr ""
|
88 |
-
"Betalings detaljer for dette niveau understøttes ikke af Payflow. Gennemgå "
|
89 |
-
"venligst notater under Betalings Detajler sektionen."
|
90 |
-
|
91 |
-
#: adminpages/admin_header.php:78
|
92 |
-
msgid ""
|
93 |
-
"The billing details for some of your membership levels is not supported by "
|
94 |
-
"Braintree."
|
95 |
-
msgstr ""
|
96 |
-
"Betalings detaljer for nogen af dine medlems niveaur, undersøttes ikke af "
|
97 |
-
"Braintree."
|
98 |
-
|
99 |
-
#: adminpages/admin_header.php:86
|
100 |
-
msgid ""
|
101 |
-
"The billing details for this level are not supported by Braintree. Please "
|
102 |
-
"review the notes in the Billing Details section below."
|
103 |
-
msgstr ""
|
104 |
-
"Betalings detaljer for dette niveau understøttes ikke af Braintree. Gennemgå "
|
105 |
-
"venligst noter I Betalings Detaljer sektion nedenfor."
|
106 |
-
|
107 |
-
#: adminpages/admin_header.php:98
|
108 |
-
msgid ""
|
109 |
-
"The billing details for some of your membership levels is not supported by "
|
110 |
-
"TwoCheckout."
|
111 |
-
msgstr ""
|
112 |
-
"Betalings detaljer for nogle af dine medlemsskab niveaur, understøttes ikke "
|
113 |
-
"af TwoCheckout. "
|
114 |
-
|
115 |
-
#: adminpages/admin_header.php:107
|
116 |
-
msgid ""
|
117 |
-
"The billing details for this level are not supported by 2Checkout. Please "
|
118 |
-
"review the notes in the Billing Details section below."
|
119 |
-
msgstr ""
|
120 |
-
"Betalings detaljer for dette niveau understøttes ikke af 2Checkout. Gennemgå "
|
121 |
-
"venligst noter I Betalings Detaljer sektionen nedenfor."
|
122 |
-
|
123 |
-
#: adminpages/admin_header.php:127 adminpages/admin_header.php:106
|
124 |
-
msgid "Plugin Support"
|
125 |
-
msgstr "Plugin Support"
|
126 |
-
|
127 |
-
#: adminpages/admin_header.php:127 adminpages/admin_header.php:106
|
128 |
-
msgid "User Forum"
|
129 |
-
msgstr "Bruger Forum"
|
130 |
-
|
131 |
-
#: adminpages/admin_header.php:149 adminpages/membershiplevels.php:498
|
132 |
-
#: adminpages/pagesettings.php:69 includes/adminpages.php:107
|
133 |
-
#: adminpages/admin_header.php:128 adminpages/membershiplevels.php:490
|
134 |
-
#: adminpages/membershiplevels.php:496 includes/adminpages.php:44
|
135 |
-
#: includes/adminpages.php:100
|
136 |
-
msgid "Membership Levels"
|
137 |
-
msgstr "Medlemsskab Niveaur"
|
138 |
-
|
139 |
-
#: adminpages/admin_header.php:150 adminpages/pagesettings.php:120
|
140 |
-
#: adminpages/admin_header.php:129 adminpages/pagesettings.php:92
|
141 |
-
msgid "Pages"
|
142 |
-
msgstr "Sider"
|
143 |
-
|
144 |
-
#: adminpages/admin_header.php:151 adminpages/admin_header.php:130
|
145 |
-
msgid "Payment Gateway & SSL"
|
146 |
-
msgstr "Betalings Gateway & SSL"
|
147 |
-
|
148 |
-
#: adminpages/admin_header.php:152 adminpages/memberslist.php:148
|
149 |
-
#: pages/account.php:56 adminpages/admin_header.php:131
|
150 |
-
#: adminpages/memberslist.php:115 pages/account.php:52
|
151 |
-
msgid "Email"
|
152 |
-
msgstr "Email"
|
153 |
-
|
154 |
-
#: adminpages/admin_header.php:153 adminpages/admin_header.php:132
|
155 |
-
msgid "Advanced"
|
156 |
-
msgstr "Avanceret"
|
157 |
-
|
158 |
-
#: adminpages/admin_header.php:154 includes/adminpages.php:52
|
159 |
-
#: includes/adminpages.php:142 adminpages/admin_header.php:133
|
160 |
-
#: includes/adminpages.php:14 includes/adminpages.php:69
|
161 |
-
#: includes/adminpages.php:135
|
162 |
-
msgid "Add Ons"
|
163 |
-
msgstr "Add Ons"
|
164 |
-
|
165 |
-
#: adminpages/advancedsettings.php:42 adminpages/advancedsettings.php:35
|
166 |
-
msgid "Your advanced settings have been updated."
|
167 |
-
msgstr "Dine advanceret indstillinger er bleven opdateret."
|
168 |
-
|
169 |
-
#: adminpages/advancedsettings.php:66
|
170 |
-
#, php-format
|
171 |
-
msgid ""
|
172 |
-
"This content is for !!levels!! members only. <a href=\"%s\">Register here</"
|
173 |
-
"a>."
|
174 |
-
msgstr ""
|
175 |
-
"Dette indhold er kun for !!levels!! medlemmer. <a href=\"%s\">Registrerer "
|
176 |
-
"her</a>."
|
177 |
-
|
178 |
-
#: adminpages/advancedsettings.php:71
|
179 |
-
#, php-format
|
180 |
-
msgid ""
|
181 |
-
"Please <a href=\"%s\">login</a> to view this content. (<a href=\"%s"
|
182 |
-
"\">Register here</a>.)"
|
183 |
-
msgstr ""
|
184 |
-
"Vær venlig at <a href=\"%s\">Log Ind</a> for at læse dette indhold. (<a href="
|
185 |
-
"\"%s\">Registerer her</a>.)"
|
186 |
-
|
187 |
-
#: adminpages/advancedsettings.php:76
|
188 |
-
msgid ""
|
189 |
-
"This content is for members only. Visit the site and log in/register to read."
|
190 |
-
msgstr ""
|
191 |
-
"Dette indhold er kun for medllemmer. Besøg siden og log ind/registrerer for "
|
192 |
-
"at læse."
|
193 |
-
|
194 |
-
#: adminpages/advancedsettings.php:86 includes/adminpages.php:51
|
195 |
-
#: includes/adminpages.php:135 adminpages/advancedsettings.php:79
|
196 |
-
#: includes/adminpages.php:13 includes/adminpages.php:64
|
197 |
-
#: includes/adminpages.php:128
|
198 |
-
msgid "Advanced Settings"
|
199 |
-
msgstr "Avanceret Indstillinger"
|
200 |
-
|
201 |
-
#: adminpages/advancedsettings.php:92 adminpages/advancedsettings.php:85
|
202 |
-
msgid "Message for Logged-in Non-members"
|
203 |
-
msgstr "Beskeder til logget ind ikke-medlemmer"
|
204 |
-
|
205 |
-
#: adminpages/advancedsettings.php:96 adminpages/advancedsettings.php:89
|
206 |
-
msgid ""
|
207 |
-
"This message replaces the post content for non-members. Available variables"
|
208 |
-
msgstr ""
|
209 |
-
"Denne besked erstatter dette indhold for ikke-medlemmer. Forskellige "
|
210 |
-
"muligheder er tilgængelig"
|
211 |
-
|
212 |
-
#: adminpages/advancedsettings.php:101 adminpages/advancedsettings.php:94
|
213 |
-
msgid "Message for Logged-out Users"
|
214 |
-
msgstr "Besked til brugere der er logget ud"
|
215 |
-
|
216 |
-
#: adminpages/advancedsettings.php:105 adminpages/advancedsettings.php:98
|
217 |
-
msgid "This message replaces the post content for logged-out visitors."
|
218 |
-
msgstr "Denne besked erstatter det postet indhold for lbesøgende."
|
219 |
-
|
220 |
-
#: adminpages/advancedsettings.php:110 adminpages/advancedsettings.php:103
|
221 |
-
msgid "Message for RSS Feed"
|
222 |
-
msgstr "Besked til RSS Feed"
|
223 |
-
|
224 |
-
#: adminpages/advancedsettings.php:114 adminpages/advancedsettings.php:107
|
225 |
-
msgid "This message replaces the post content in RSS feeds."
|
226 |
-
msgstr "Denne besked erstatter postet indhold I RSS feeds."
|
227 |
-
|
228 |
-
#: adminpages/advancedsettings.php:120 adminpages/advancedsettings.php:113
|
229 |
-
msgid "Show Excerpts to Non-Members?"
|
230 |
-
msgstr "Vis Uddrag til ikke-medlemmer?"
|
231 |
-
|
232 |
-
#: adminpages/advancedsettings.php:124 adminpages/advancedsettings.php:117
|
233 |
-
msgid "No - Hide excerpts."
|
234 |
-
msgstr "Nej - Skjul uddrag"
|
235 |
-
|
236 |
-
#: adminpages/advancedsettings.php:125 adminpages/advancedsettings.php:118
|
237 |
-
msgid "Yes - Show excerpts."
|
238 |
-
msgstr "Ja - Vis uddrag"
|
239 |
-
|
240 |
-
#: adminpages/advancedsettings.php:135 adminpages/advancedsettings.php:194
|
241 |
-
#: adminpages/advancedsettings.php:206 adminpages/membershiplevels.php:571
|
242 |
-
#: adminpages/paymentsettings.php:434 adminpages/paymentsettings.php:459
|
243 |
-
#: includes/profile.php:123 adminpages/advancedsettings.php:128
|
244 |
-
#: adminpages/advancedsettings.php:187 adminpages/advancedsettings.php:199
|
245 |
-
#: adminpages/membershiplevels.php:563 adminpages/membershiplevels.php:569
|
246 |
-
#: adminpages/paymentsettings.php:414 adminpages/paymentsettings.php:429
|
247 |
-
#: adminpages/paymentsettings.php:454 includes/profile.php:121
|
248 |
-
msgid "No"
|
249 |
-
msgstr "Nej"
|
250 |
-
|
251 |
-
#: adminpages/advancedsettings.php:136 adminpages/advancedsettings.php:129
|
252 |
-
msgid "Hide Ads From All Members"
|
253 |
-
msgstr "Skjul Reklamer For Alle Medlemmer"
|
254 |
-
|
255 |
-
#: adminpages/advancedsettings.php:137 adminpages/advancedsettings.php:130
|
256 |
-
msgid "Hide Ads From Certain Members"
|
257 |
-
msgstr "Skjul Reklamer For Specifikke Medlemmer"
|
258 |
-
|
259 |
-
#: adminpages/advancedsettings.php:144 adminpages/advancedsettings.php:137
|
260 |
-
msgid "Ads from the following plugins will be automatically turned off"
|
261 |
-
msgstr "Reklamer fra følgende plugins ville automatisk blive slået fra"
|
262 |
-
|
263 |
-
#: adminpages/advancedsettings.php:145 adminpages/advancedsettings.php:138
|
264 |
-
msgid "To hide ads in your template code, use code like the following"
|
265 |
-
msgstr "For at skjule reklamer i din template kode, brug følgende"
|
266 |
-
|
267 |
-
#: adminpages/advancedsettings.php:156 adminpages/advancedsettings.php:149
|
268 |
-
msgid "Choose Levels to Hide Ads From"
|
269 |
-
msgstr "Vælg nivauer for at Skjule Reklamer Fra"
|
270 |
-
|
271 |
-
#: adminpages/advancedsettings.php:190 adminpages/advancedsettings.php:183
|
272 |
-
msgid "Redirect all traffic from registration page to /susbcription/?"
|
273 |
-
msgstr "Omdigerer alt trafik fra Registrerings siden til /registrering/?"
|
274 |
-
|
275 |
-
#: adminpages/advancedsettings.php:190 adminpages/advancedsettings.php:183
|
276 |
-
msgid "multisite only"
|
277 |
-
msgstr "kun for flere sites"
|
278 |
-
|
279 |
-
#: adminpages/advancedsettings.php:195 adminpages/membershiplevels.php:571
|
280 |
-
#: adminpages/paymentsettings.php:435 adminpages/paymentsettings.php:460
|
281 |
-
#: includes/profile.php:124 adminpages/advancedsettings.php:188
|
282 |
-
#: adminpages/membershiplevels.php:563 adminpages/membershiplevels.php:569
|
283 |
-
#: adminpages/paymentsettings.php:415 adminpages/paymentsettings.php:424
|
284 |
-
#: adminpages/paymentsettings.php:430 adminpages/paymentsettings.php:455
|
285 |
-
#: includes/profile.php:122
|
286 |
-
msgid "Yes"
|
287 |
-
msgstr "Ja"
|
288 |
-
|
289 |
-
#: adminpages/advancedsettings.php:202 adminpages/advancedsettings.php:195
|
290 |
-
msgid "Use reCAPTCHA?"
|
291 |
-
msgstr "Brug reCAPTCHA?"
|
292 |
-
|
293 |
-
#: adminpages/advancedsettings.php:207 adminpages/advancedsettings.php:200
|
294 |
-
msgid "Yes - Free memberships only."
|
295 |
-
msgstr "Ja - Kun for gratis medlemsskab."
|
296 |
-
|
297 |
-
#: adminpages/advancedsettings.php:208 adminpages/advancedsettings.php:201
|
298 |
-
msgid "Yes - All memberships."
|
299 |
-
msgstr "Ja - Alle medlemsskaber."
|
300 |
-
|
301 |
-
#: adminpages/advancedsettings.php:210 adminpages/advancedsettings.php:203
|
302 |
-
msgid "A free reCAPTCHA key is required."
|
303 |
-
msgstr "En gratis reCAPTCHA nøgle er påkrævet."
|
304 |
-
|
305 |
-
#: adminpages/advancedsettings.php:210 adminpages/advancedsettings.php:203
|
306 |
-
msgid "Click here to signup for reCAPTCHA"
|
307 |
-
msgstr "Klik her, for at registerer med reCAPTCHA"
|
308 |
-
|
309 |
-
#: adminpages/advancedsettings.php:216 adminpages/advancedsettings.php:209
|
310 |
-
msgid "reCAPTCHA Public Key"
|
311 |
-
msgstr "reCAPTCHA Offentlig Nøgle"
|
312 |
-
|
313 |
-
#: adminpages/advancedsettings.php:219 adminpages/advancedsettings.php:212
|
314 |
-
msgid "reCAPTCHA Private Key"
|
315 |
-
msgstr "reCAPTCHA Privat Nøgle"
|
316 |
-
|
317 |
-
#: adminpages/advancedsettings.php:225 adminpages/advancedsettings.php:218
|
318 |
-
msgid "Require Terms of Service on signups?"
|
319 |
-
msgstr "Ønskes Vilkår og Betingelser med registrering? "
|
320 |
-
|
321 |
-
#: adminpages/advancedsettings.php:232 adminpages/advancedsettings.php:225
|
322 |
-
msgid ""
|
323 |
-
"If yes, create a WordPress page containing your TOS agreement and assign it "
|
324 |
-
"using the dropdown above."
|
325 |
-
msgstr ""
|
326 |
-
"Hvis ja er valgt, opret en Wordpress side, med indhold af din VOB aftale, og "
|
327 |
-
"tilføje den, med dropdown ovenfor.t"
|
328 |
-
|
329 |
-
#: adminpages/advancedsettings.php:272
|
330 |
-
msgid "selected"
|
331 |
-
msgstr "valgte"
|
332 |
-
|
333 |
-
#: adminpages/advancedsettings.php:355 adminpages/pagesettings.php:251
|
334 |
-
#: adminpages/paymentsettings.php:532 adminpages/advancedsettings.php:284
|
335 |
-
#: adminpages/pagesettings.php:209 adminpages/pagesettings.php:223
|
336 |
-
#: adminpages/paymentsettings.php:485 adminpages/paymentsettings.php:526
|
337 |
-
msgid "Save Settings"
|
338 |
-
msgstr "Gem Indstillinger"
|
339 |
-
|
340 |
-
#: adminpages/discountcodes.php:48
|
341 |
-
msgid "Discount code updated successfully."
|
342 |
-
msgstr "Rabat kode er opdateret succesfuldt"
|
343 |
-
|
344 |
-
#: adminpages/discountcodes.php:55
|
345 |
-
msgid "Error updating discount code. That code may already be in use."
|
346 |
-
msgstr "Fejl I at opdatere rabat kode. Denne kode er nok allerede i brug."
|
347 |
-
|
348 |
-
#: adminpages/discountcodes.php:64
|
349 |
-
msgid "Discount code added successfully."
|
350 |
-
msgstr "Rabat kode er tilføjet succesfuldt."
|
351 |
-
|
352 |
-
#: adminpages/discountcodes.php:71
|
353 |
-
msgid "Error adding discount code. That code may already be in use."
|
354 |
-
msgstr "Fejl i at tilføje rabat kode. Denne kode må allerede være i brug,"
|
355 |
-
|
356 |
-
#: adminpages/discountcodes.php:196
|
357 |
-
#, php-format
|
358 |
-
msgid "Error saving values for the %s level."
|
359 |
-
msgstr "Fejl i at gemme værdier til denne %s niveau."
|
360 |
-
|
361 |
-
#: adminpages/discountcodes.php:204
|
362 |
-
msgid "There were errors updating the level values: "
|
363 |
-
msgstr "Der opstod fejl I at opdatere niveau værdier: "
|
364 |
-
|
365 |
-
#: adminpages/discountcodes.php:237 adminpages/discountcodes.php:234
|
366 |
-
#, php-format
|
367 |
-
msgid "Code %s deleted successfully."
|
368 |
-
msgstr "Kode %s slettet succesfuldt."
|
369 |
-
|
370 |
-
#: adminpages/discountcodes.php:242 adminpages/discountcodes.php:239
|
371 |
-
msgid ""
|
372 |
-
"Error deleting discount code. The code was only partially deleted. Please "
|
373 |
-
"try again."
|
374 |
-
msgstr ""
|
375 |
-
"Fejl opstod, med at slette rabat kode. Koden blev delvist slettet. Prøv igen."
|
376 |
-
|
377 |
-
#: adminpages/discountcodes.php:248 adminpages/discountcodes.php:245
|
378 |
-
msgid "Error deleting code. Please try again."
|
379 |
-
msgstr "Fejl opstod I at slette koden. Prøv igen"
|
380 |
-
|
381 |
-
#: adminpages/discountcodes.php:254 adminpages/discountcodes.php:251
|
382 |
-
msgid "Code not found."
|
383 |
-
msgstr "Kode ikke fundet."
|
384 |
-
|
385 |
-
#: adminpages/discountcodes.php:267 adminpages/discountcodes.php:264
|
386 |
-
msgid "Edit Discount Code"
|
387 |
-
msgstr "Redigere Rabat Kode"
|
388 |
-
|
389 |
-
#: adminpages/discountcodes.php:269 adminpages/discountcodes.php:529
|
390 |
-
#: adminpages/discountcodes.php:266 adminpages/discountcodes.php:526
|
391 |
-
msgid "Add New Discount Code"
|
392 |
-
msgstr "Tilføj Ny Rabat Kode"
|
393 |
-
|
394 |
-
#: adminpages/discountcodes.php:309 adminpages/discountcodes.php:557
|
395 |
-
#: adminpages/membershiplevels.php:286 adminpages/membershiplevels.php:513
|
396 |
-
#: adminpages/memberslist.php:144 adminpages/orders.php:900
|
397 |
-
#: adminpages/reports/login.php:140 adminpages/discountcodes.php:306
|
398 |
-
#: adminpages/discountcodes.php:547 adminpages/membershiplevels.php:284
|
399 |
-
#: adminpages/membershiplevels.php:505 adminpages/membershiplevels.php:511
|
400 |
-
#: adminpages/memberslist.php:111 adminpages/orders.php:597
|
401 |
-
msgid "ID"
|
402 |
-
msgstr "ID"
|
403 |
-
|
404 |
-
#: adminpages/discountcodes.php:310 adminpages/orders.php:261
|
405 |
-
#: adminpages/discountcodes.php:307 adminpages/orders.php:211
|
406 |
-
msgid "This will be generated when you save."
|
407 |
-
msgstr "Dette ville blive generet, når du gemmer."
|
408 |
-
|
409 |
-
#: adminpages/discountcodes.php:314 adminpages/discountcodes.php:558
|
410 |
-
#: adminpages/orders.php:265 adminpages/orders.php:901
|
411 |
-
#: adminpages/discountcodes.php:311 adminpages/discountcodes.php:548
|
412 |
-
#: adminpages/orders.php:215 adminpages/orders.php:598
|
413 |
-
msgid "Code"
|
414 |
-
msgstr "Kode"
|
415 |
-
|
416 |
-
#: adminpages/discountcodes.php:352 adminpages/discountcodes.php:349
|
417 |
-
msgid "Start Date"
|
418 |
-
msgstr "Start Dato"
|
419 |
-
|
420 |
-
#: adminpages/discountcodes.php:370 pages/billing.php:253
|
421 |
-
#: pages/checkout.php:508 adminpages/discountcodes.php:367
|
422 |
-
#: pages/billing.php:249 pages/checkout.php:525 pages/checkout.php:532
|
423 |
-
msgid "Expiration Date"
|
424 |
-
msgstr "Udløbs Dato"
|
425 |
-
|
426 |
-
#: adminpages/discountcodes.php:388 adminpages/discountcodes.php:561
|
427 |
-
#: adminpages/discountcodes.php:385 adminpages/discountcodes.php:551
|
428 |
-
msgid "Uses"
|
429 |
-
msgstr "Forbrug"
|
430 |
-
|
431 |
-
#: adminpages/discountcodes.php:391 adminpages/discountcodes.php:388
|
432 |
-
msgid "Leave blank for unlimited uses."
|
433 |
-
msgstr "Lad dette stå blank, for uendelig brug."
|
434 |
-
|
435 |
-
#: adminpages/discountcodes.php:430 adminpages/membershiplevels.php:339
|
436 |
-
#: adminpages/membershiplevels.php:515 adminpages/discountcodes.php:427
|
437 |
-
#: adminpages/membershiplevels.php:337 adminpages/membershiplevels.php:507
|
438 |
-
#: adminpages/membershiplevels.php:513 pages/levels.php:14
|
439 |
-
msgid "Initial Payment"
|
440 |
-
msgstr "Begynd Betaling"
|
441 |
-
|
442 |
-
#: adminpages/discountcodes.php:431 adminpages/membershiplevels.php:340
|
443 |
-
#: adminpages/discountcodes.php:428 adminpages/membershiplevels.php:338
|
444 |
-
msgid "The initial amount collected at registration."
|
445 |
-
msgstr "Det påbegyndte beløb, er indsamlet ved registrering."
|
446 |
-
|
447 |
-
#: adminpages/discountcodes.php:435 adminpages/membershiplevels.php:344
|
448 |
-
#: adminpages/discountcodes.php:432 adminpages/membershiplevels.php:342
|
449 |
-
msgid "Recurring Subscription"
|
450 |
-
msgstr "Gentag Abonnoment"
|
451 |
-
|
452 |
-
#: adminpages/discountcodes.php:436 adminpages/membershiplevels.php:345
|
453 |
-
#: adminpages/discountcodes.php:433 adminpages/membershiplevels.php:343
|
454 |
-
msgid "Check if this level has a recurring subscription payment."
|
455 |
-
msgstr "Klik her, hvis dette niveau har en gentagene betaling."
|
456 |
-
|
457 |
-
#: adminpages/discountcodes.php:440 adminpages/membershiplevels.php:349
|
458 |
-
#: adminpages/membershiplevels.php:347
|
459 |
-
msgid "Billing Amount"
|
460 |
-
msgstr "Fakture Beløb"
|
461 |
-
|
462 |
-
#: adminpages/discountcodes.php:446 adminpages/discountcodes.php:492
|
463 |
-
#: adminpages/membershiplevels.php:355 adminpages/membershiplevels.php:449
|
464 |
-
#: adminpages/membershiplevels.php:353
|
465 |
-
msgid "Day(s)"
|
466 |
-
msgstr "Dag(e)"
|
467 |
-
|
468 |
-
#: adminpages/discountcodes.php:446 adminpages/discountcodes.php:492
|
469 |
-
#: adminpages/membershiplevels.php:355 adminpages/membershiplevels.php:449
|
470 |
-
#: adminpages/membershiplevels.php:353
|
471 |
-
msgid "Month(s)"
|
472 |
-
msgstr "Måned(er)"
|
473 |
-
|
474 |
-
#: adminpages/discountcodes.php:446 adminpages/discountcodes.php:492
|
475 |
-
#: adminpages/membershiplevels.php:355 adminpages/membershiplevels.php:449
|
476 |
-
#: adminpages/membershiplevels.php:353
|
477 |
-
msgid "Week(s)"
|
478 |
-
msgstr "Uge(r)"
|
479 |
-
|
480 |
-
#: adminpages/discountcodes.php:446 adminpages/discountcodes.php:492
|
481 |
-
#: adminpages/membershiplevels.php:355 adminpages/membershiplevels.php:449
|
482 |
-
#: adminpages/membershiplevels.php:353
|
483 |
-
msgid "Year(s)"
|
484 |
-
msgstr "År()"
|
485 |
-
|
486 |
-
#: adminpages/discountcodes.php:454 adminpages/membershiplevels.php:364
|
487 |
-
#: adminpages/discountcodes.php:451 adminpages/membershiplevels.php:362
|
488 |
-
msgid "The amount to be billed one cycle after the initial payment."
|
489 |
-
msgstr ""
|
490 |
-
"Det beløb, der faktureres den ene cyklus efter den oprindelige betaling."
|
491 |
-
|
492 |
-
#: adminpages/discountcodes.php:459 adminpages/membershiplevels.php:382
|
493 |
-
#: adminpages/discountcodes.php:456 adminpages/membershiplevels.php:380
|
494 |
-
msgid "Billing Cycle Limit"
|
495 |
-
msgstr "Betalings Cyklus Grænse "
|
496 |
-
|
497 |
-
#: adminpages/discountcodes.php:462 adminpages/membershiplevels.php:386
|
498 |
-
#: adminpages/discountcodes.php:459 adminpages/membershiplevels.php:384
|
499 |
-
msgid ""
|
500 |
-
"The <strong>total</strong> number of recurring billing cycles for this "
|
501 |
-
"level, including the trial period (if applicable) but not including the "
|
502 |
-
"initial payment. Set to zero if membership is indefinite."
|
503 |
-
msgstr ""
|
504 |
-
"Det <strong>totale</strong> antal af gentagende fakture cykluser for dette "
|
505 |
-
"niveau, herunder prøveperioden (hvis relevant), men ikke inkluderet I den "
|
506 |
-
"oprindelige betaling. Sæt til nul, hvis medlemskab er ubegrænset."
|
507 |
-
|
508 |
-
#: adminpages/discountcodes.php:467 adminpages/membershiplevels.php:395
|
509 |
-
#: adminpages/discountcodes.php:464 adminpages/membershiplevels.php:393
|
510 |
-
msgid "Custom Trial"
|
511 |
-
msgstr "Brugerdefineret Prøveperiode"
|
512 |
-
|
513 |
-
#: adminpages/discountcodes.php:468 adminpages/membershiplevels.php:397
|
514 |
-
#: adminpages/discountcodes.php:465 adminpages/membershiplevels.php:394
|
515 |
-
#: adminpages/membershiplevels.php:395
|
516 |
-
msgid "Check to add a custom trial period."
|
517 |
-
msgstr "Klik her, for at tilføje en brugerdefineret prøve periode"
|
518 |
-
|
519 |
-
#: adminpages/discountcodes.php:472 adminpages/membershiplevels.php:406
|
520 |
-
#: adminpages/discountcodes.php:469 adminpages/membershiplevels.php:398
|
521 |
-
#: adminpages/membershiplevels.php:404
|
522 |
-
msgid "Trial Billing Amount"
|
523 |
-
msgstr "Prøveperiode Fakture konto"
|
524 |
-
|
525 |
-
#: adminpages/discountcodes.php:475 adminpages/membershiplevels.php:409
|
526 |
-
#: adminpages/discountcodes.php:472 adminpages/membershiplevels.php:401
|
527 |
-
#: adminpages/membershiplevels.php:407
|
528 |
-
msgid "for the first"
|
529 |
-
msgstr "for det første"
|
530 |
-
|
531 |
-
#: adminpages/discountcodes.php:477 adminpages/membershiplevels.php:411
|
532 |
-
#: adminpages/discountcodes.php:474 adminpages/membershiplevels.php:403
|
533 |
-
#: adminpages/membershiplevels.php:409
|
534 |
-
msgid "subscription payments"
|
535 |
-
msgstr "abonnoments betalings"
|
536 |
-
|
537 |
-
#: adminpages/discountcodes.php:482 adminpages/membershiplevels.php:439
|
538 |
-
#: adminpages/discountcodes.php:479 adminpages/membershiplevels.php:431
|
539 |
-
#: adminpages/membershiplevels.php:437
|
540 |
-
msgid "Membership Expiration"
|
541 |
-
msgstr "Medlemskab Udløber"
|
542 |
-
|
543 |
-
#: adminpages/discountcodes.php:483 adminpages/membershiplevels.php:440
|
544 |
-
#: adminpages/membershiplevels.php:432 adminpages/membershiplevels.php:438
|
545 |
-
msgid "Check this to set when membership access expires."
|
546 |
-
msgstr "Klik her, for at sætte, hvornår medlemsskab udløber"
|
547 |
-
|
548 |
-
#: adminpages/discountcodes.php:487 adminpages/membershiplevels.php:444
|
549 |
-
#: adminpages/discountcodes.php:484 adminpages/membershiplevels.php:436
|
550 |
-
#: adminpages/membershiplevels.php:442
|
551 |
-
msgid "Expires In"
|
552 |
-
msgstr "Udløber om"
|
553 |
-
|
554 |
-
#: adminpages/discountcodes.php:500 adminpages/membershiplevels.php:457
|
555 |
-
#: adminpages/membershiplevels.php:449 adminpages/membershiplevels.php:455
|
556 |
-
msgid ""
|
557 |
-
"Set the duration of membership access. Note that the any future payments "
|
558 |
-
"(recurring subscription, if any) will be cancelled when the membership "
|
559 |
-
"expires."
|
560 |
-
msgstr ""
|
561 |
-
"Indstil varigheden af medlemskab. Bemærk, at de eventuelle fremtidige "
|
562 |
-
"betalinger (tilbagevendende abonnementer, hvis nogen) vil blive annulleret, "
|
563 |
-
"når medlemskabet udløber."
|
564 |
-
|
565 |
-
#: adminpages/discountcodes.php:528 adminpages/discountcodes.php:525
|
566 |
-
msgid "Memberships Discount Codes"
|
567 |
-
msgstr "Medlemsskab Rabat Kode"
|
568 |
-
|
569 |
-
#: adminpages/discountcodes.php:538 adminpages/discountcodes.php:535
|
570 |
-
msgid "Search Discount Codes"
|
571 |
-
msgstr "Søg efter Rabat Koder"
|
572 |
-
|
573 |
-
#: adminpages/discountcodes.php:541 adminpages/reports/login.php:81
|
574 |
-
#: adminpages/discountcodes.php:538
|
575 |
-
msgid "Search"
|
576 |
-
msgstr "Søg"
|
577 |
-
|
578 |
-
#: adminpages/discountcodes.php:559 adminpages/discountcodes.php:549
|
579 |
-
msgid "Starts"
|
580 |
-
msgstr "Starter"
|
581 |
-
|
582 |
-
#: adminpages/discountcodes.php:560 adminpages/memberslist.php:159
|
583 |
-
#: adminpages/reports/login.php:145 includes/profile.php:120
|
584 |
-
#: adminpages/discountcodes.php:550 adminpages/memberslist.php:121
|
585 |
-
#: includes/profile.php:118
|
586 |
-
msgid "Expires"
|
587 |
-
msgstr "Udløber"
|
588 |
-
|
589 |
-
#: adminpages/discountcodes.php:562 adminpages/discountcodes.php:552
|
590 |
-
msgid "Levels"
|
591 |
-
msgstr "Niveauer"
|
592 |
-
|
593 |
-
#: adminpages/discountcodes.php:574 adminpages/discountcodes.php:570
|
594 |
-
msgid "Create your first discount code now"
|
595 |
-
msgstr "Opret din første Rabat kode nu"
|
596 |
-
|
597 |
-
#: adminpages/discountcodes.php:574 adminpages/discountcodes.php:570
|
598 |
-
msgid ""
|
599 |
-
"Discount codes allow you to offer your memberships at discounted prices to "
|
600 |
-
"select customers."
|
601 |
-
msgstr ""
|
602 |
-
"Rabat koder, giver dig mulighed for, at tilbyde medlemmer Rabat priser til "
|
603 |
-
"udvalgte kunder."
|
604 |
-
|
605 |
-
#: adminpages/discountcodes.php:619 adminpages/membershiplevels.php:572
|
606 |
-
#: adminpages/orders.php:961 adminpages/discountcodes.php:614
|
607 |
-
#: adminpages/membershiplevels.php:564 adminpages/membershiplevels.php:570
|
608 |
-
#: adminpages/orders.php:658
|
609 |
-
msgid "edit"
|
610 |
-
msgstr "Redigere"
|
611 |
-
|
612 |
-
#: adminpages/discountcodes.php:622 adminpages/discountcodes.php:617
|
613 |
-
#, php-format
|
614 |
-
msgid ""
|
615 |
-
"Are you sure you want to delete the %s discount code? The subscriptions for "
|
616 |
-
"existing users will not change, but new users will not be able to use this "
|
617 |
-
"code anymore."
|
618 |
-
msgstr ""
|
619 |
-
"Er du sikker på, at du ville slette %s rabat kode?. Abonnement for den "
|
620 |
-
"eksisterende bruger ville ikke ændre sig, men nye brugere har ikke mulighed "
|
621 |
-
"for, at bruge koden."
|
622 |
-
|
623 |
-
#: adminpages/discountcodes.php:622 adminpages/membershiplevels.php:574
|
624 |
-
#: adminpages/orders.php:967 adminpages/discountcodes.php:617
|
625 |
-
#: adminpages/membershiplevels.php:566 adminpages/membershiplevels.php:572
|
626 |
-
#: adminpages/orders.php:664
|
627 |
-
msgid "delete"
|
628 |
-
msgstr "Slet"
|
629 |
-
|
630 |
-
#: adminpages/emailsettings.php:69 includes/adminpages.php:50
|
631 |
-
#: includes/adminpages.php:128 adminpages/emailsettings.php:60
|
632 |
-
#: includes/adminpages.php:12 includes/adminpages.php:59
|
633 |
-
#: includes/adminpages.php:121
|
634 |
-
msgid "Email Settings"
|
635 |
-
msgstr "Email Indstillinger"
|
636 |
-
|
637 |
-
#: adminpages/emailsettings.php:70 adminpages/emailsettings.php:61
|
638 |
-
msgid ""
|
639 |
-
"By default, system generated emails are sent from "
|
640 |
-
"<em><strong>wordpress@yourdomain.com</strong></em>. You can update this from "
|
641 |
-
"address using the fields below."
|
642 |
-
msgstr ""
|
643 |
-
"Som standard, vil systemet generere email sendt fra "
|
644 |
-
"<em><strong>wordpress@ditdomæne.com</strong></em>. Du har mulighed for, at "
|
645 |
-
"opdatere adresse, ved at bruge felterne nedenfor. "
|
646 |
-
|
647 |
-
#: adminpages/emailsettings.php:72 adminpages/emailsettings.php:63
|
648 |
-
msgid ""
|
649 |
-
"To modify the appearance of system generated emails, add the files "
|
650 |
-
"<em>email_header.html</em> and <em>email_footer.html</em> to your theme's "
|
651 |
-
"directory. This will modify both the WordPress default messages as well as "
|
652 |
-
"messages generated by Paid Memberships Pro. <a title=\"Paid Memberships Pro "
|
653 |
-
"- Member Communications\" target=\"_blank\" href=\"http://www."
|
654 |
-
"paidmembershipspro.com/documentation/member-communications/\">Click here to "
|
655 |
-
"learn more about Paid Memberships Pro emails</a>."
|
656 |
-
msgstr ""
|
657 |
-
"Hvis du vil ændre udseendet af systemet genererede e-mails, tilføje filerne "
|
658 |
-
"<em>email_header.html</em> og <em>email_footer.html</em> til din tema mappe. "
|
659 |
-
"Dette vil ændre både WordPress standard beskeder samt meddelelser genereres "
|
660 |
-
"af Paid Memberships Pro.<a title=\"Paid medlemskaber Pro - Medlber "
|
661 |
-
"Communications\" target=\"_blank\" href=\"http://www.paidmembershipspro.com/"
|
662 |
-
"documentation/member-communications/\">Klik her for at lære mere om Paid "
|
663 |
-
"Memberships Pro emails</a>."
|
664 |
-
|
665 |
-
#: adminpages/emailsettings.php:78 adminpages/emailsettings.php:69
|
666 |
-
msgid "From Email"
|
667 |
-
msgstr "Fra Email"
|
668 |
-
|
669 |
-
#: adminpages/emailsettings.php:86 adminpages/emailsettings.php:77
|
670 |
-
msgid "From Name"
|
671 |
-
msgstr "Fra Navn"
|
672 |
-
|
673 |
-
#: adminpages/emailsettings.php:94
|
674 |
-
msgid "Only Filter PMPro Emails?"
|
675 |
-
msgstr "Filtere Kun PMPro Emails?"
|
676 |
-
|
677 |
-
#: adminpages/emailsettings.php:98
|
678 |
-
msgid "If unchecked, all emails from \"WordPress <"
|
679 |
-
msgstr "Hvis ikke aktiveret, alle emails fra \"WordPress <"
|
680 |
-
|
681 |
-
#: adminpages/emailsettings.php:115 adminpages/emailsettings.php:86
|
682 |
-
#: adminpages/emailsettings.php:104
|
683 |
-
msgid "Send the site admin emails"
|
684 |
-
msgstr "Send site admin emails"
|
685 |
-
|
686 |
-
#: adminpages/emailsettings.php:121 adminpages/emailsettings.php:92
|
687 |
-
#: adminpages/emailsettings.php:110
|
688 |
-
msgid "Checkout"
|
689 |
-
msgstr "Gå til Kassen"
|
690 |
-
|
691 |
-
#: adminpages/emailsettings.php:125 adminpages/emailsettings.php:96
|
692 |
-
#: adminpages/emailsettings.php:114
|
693 |
-
msgid "when a member checks out."
|
694 |
-
msgstr "Når et medlem går til Kassen"
|
695 |
-
|
696 |
-
#: adminpages/emailsettings.php:130 adminpages/emailsettings.php:101
|
697 |
-
#: adminpages/emailsettings.php:119
|
698 |
-
msgid "Admin Changes"
|
699 |
-
msgstr "Admin Ændringer"
|
700 |
-
|
701 |
-
#: adminpages/emailsettings.php:134 adminpages/emailsettings.php:105
|
702 |
-
#: adminpages/emailsettings.php:123
|
703 |
-
msgid "when an admin changes a user's membership level through the dashboard."
|
704 |
-
msgstr "Når en admin ændre en bruger's medlemsskab niveau gennem kontrolpanel."
|
705 |
-
|
706 |
-
#: adminpages/emailsettings.php:139 adminpages/emailsettings.php:110
|
707 |
-
#: adminpages/emailsettings.php:128
|
708 |
-
msgid "Cancellation"
|
709 |
-
msgstr "Annullering"
|
710 |
-
|
711 |
-
#: adminpages/emailsettings.php:143 adminpages/emailsettings.php:114
|
712 |
-
#: adminpages/emailsettings.php:132
|
713 |
-
msgid "when a user cancels his or her account."
|
714 |
-
msgstr "når en bruger annullere hans eller hendes konto."
|
715 |
-
|
716 |
-
#: adminpages/emailsettings.php:148 adminpages/emailsettings.php:119
|
717 |
-
#: adminpages/emailsettings.php:137
|
718 |
-
msgid "Bill Updates"
|
719 |
-
msgstr "Fakture Opdates"
|
720 |
-
|
721 |
-
#: adminpages/emailsettings.php:152 adminpages/emailsettings.php:123
|
722 |
-
#: adminpages/emailsettings.php:141
|
723 |
-
msgid "when a user updates his or her billing information."
|
724 |
-
msgstr "når en bruger opdatere hans eller hendes betalings informationer."
|
725 |
-
|
726 |
-
#: adminpages/emailsettings.php:158 adminpages/emailsettings.php:129
|
727 |
-
#: adminpages/emailsettings.php:147
|
728 |
-
msgid "Send members emails"
|
729 |
-
msgstr "Send medlemmers email"
|
730 |
-
|
731 |
-
#: adminpages/emailsettings.php:164 adminpages/emailsettings.php:135
|
732 |
-
#: adminpages/emailsettings.php:153
|
733 |
-
msgid "New Users"
|
734 |
-
msgstr "Nye Brugere"
|
735 |
-
|
736 |
-
#: adminpages/emailsettings.php:168 adminpages/emailsettings.php:139
|
737 |
-
#: adminpages/emailsettings.php:157
|
738 |
-
msgid ""
|
739 |
-
"Default WP notification email. (Recommended: Leave unchecked. Members will "
|
740 |
-
"still get an email confirmation from PMPro after checkout.)"
|
741 |
-
msgstr ""
|
742 |
-
"Standard WP notifikations email. (Anbefales: Ikke Aktiveret. Medlemmer vil "
|
743 |
-
"stadig få email bekræftigelse fra PMPRO efter de har været kassen.)"
|
744 |
-
|
745 |
-
#: adminpages/membershiplevels.php:118
|
746 |
-
msgid "Membership level updated successfully."
|
747 |
-
msgstr "Medlemsskab Niveau opdateret succesfuldt."
|
748 |
-
|
749 |
-
#: adminpages/membershiplevels.php:124
|
750 |
-
msgid "Error updating membership level."
|
751 |
-
msgstr "Fejl I opdatering af medlemsskab niveau."
|
752 |
-
|
753 |
-
#: adminpages/membershiplevels.php:141
|
754 |
-
msgid "Membership level added successfully."
|
755 |
-
msgstr "Medlemsskab niveau tilføjet succesfuldt."
|
756 |
-
|
757 |
-
#: adminpages/membershiplevels.php:146
|
758 |
-
msgid "Error adding membership level."
|
759 |
-
msgstr "Fejl I at tilføje medlemskabs niveau."
|
760 |
-
|
761 |
-
#: adminpages/membershiplevels.php:181 adminpages/membershiplevels.php:179
|
762 |
-
#, php-format
|
763 |
-
msgid ""
|
764 |
-
"There was an error canceling the subscription for user with ID=%d. You will "
|
765 |
-
"want to check your payment gateway to see if their subscription is still "
|
766 |
-
"active."
|
767 |
-
msgstr ""
|
768 |
-
"Der opstod en fejl, med annullering af abonnement for bruger med ID=%d. Du "
|
769 |
-
"bliver nødtil at kontrollere din betalings gateway, for at se, om deres "
|
770 |
-
"betaling stadig er aktiv. "
|
771 |
-
|
772 |
-
#: adminpages/membershiplevels.php:184 adminpages/membershiplevels.php:182
|
773 |
-
msgid "Last Invoice"
|
774 |
-
msgstr "Sidste Faktura"
|
775 |
-
|
776 |
-
#: adminpages/membershiplevels.php:198 adminpages/membershiplevels.php:196
|
777 |
-
msgid "Membership level deleted successfully."
|
778 |
-
msgstr "Medlemskabs niveau slettet succesfuldt."
|
779 |
-
|
780 |
-
#: adminpages/membershiplevels.php:203 adminpages/membershiplevels.php:209
|
781 |
-
#: adminpages/membershiplevels.php:201 adminpages/membershiplevels.php:207
|
782 |
-
msgid "Error deleting membership level."
|
783 |
-
msgstr "Fejl I at slette medlemsskab niveau."
|
784 |
-
|
785 |
-
#: adminpages/membershiplevels.php:224 adminpages/membershiplevels.php:222
|
786 |
-
msgid "Edit Membership Level"
|
787 |
-
msgstr "Redigere medlemsskab niveau"
|
788 |
-
|
789 |
-
#: adminpages/membershiplevels.php:226 adminpages/membershiplevels.php:224
|
790 |
-
msgid "Add New Membership Level"
|
791 |
-
msgstr "Tilføj Ny Medlemsskab Niveau"
|
792 |
-
|
793 |
-
#: adminpages/membershiplevels.php:293 adminpages/membershiplevels.php:514
|
794 |
-
#: adminpages/reports/login.php:142 adminpages/membershiplevels.php:291
|
795 |
-
#: adminpages/membershiplevels.php:506 adminpages/membershiplevels.php:512
|
796 |
-
msgid "Name"
|
797 |
-
msgstr "Navn"
|
798 |
-
|
799 |
-
#: adminpages/membershiplevels.php:298 adminpages/membershiplevels.php:296
|
800 |
-
msgid "Description"
|
801 |
-
msgstr "Beskrivelse"
|
802 |
-
|
803 |
-
#: adminpages/membershiplevels.php:316 adminpages/membershiplevels.php:314
|
804 |
-
msgid "Confirmation Message"
|
805 |
-
msgstr "Bekræftigelses Besked"
|
806 |
-
|
807 |
-
#: adminpages/membershiplevels.php:335 adminpages/membershiplevels.php:333
|
808 |
-
msgid "Billing Details"
|
809 |
-
msgstr "Faktura Detaljer"
|
810 |
-
|
811 |
-
#: adminpages/membershiplevels.php:351 adminpages/membershiplevels.php:349
|
812 |
-
msgid "per"
|
813 |
-
msgstr "pr"
|
814 |
-
|
815 |
-
#: adminpages/membershiplevels.php:366
|
816 |
-
msgid ""
|
817 |
-
"Stripe integration currently only supports billing periods of \"Week\", "
|
818 |
-
"\"Month\" or \"Year\"."
|
819 |
-
msgstr ""
|
820 |
-
"Stripe integration understøtter kun Faktura af \"Uge\", \"Måned\" eller \"År"
|
821 |
-
"\"."
|
822 |
-
|
823 |
-
#: adminpages/membershiplevels.php:368 adminpages/membershiplevels.php:366
|
824 |
-
msgid ""
|
825 |
-
"Braintree integration currently only supports billing periods of \"Month\" "
|
826 |
-
"or \"Year\"."
|
827 |
-
msgstr ""
|
828 |
-
"Braintree integration understøtter kun Faktura af \"Uge\", \"Måned\" eller "
|
829 |
-
"\"År\"."
|
830 |
-
|
831 |
-
#: adminpages/membershiplevels.php:370 adminpages/membershiplevels.php:368
|
832 |
-
msgid ""
|
833 |
-
"Payflow integration currently only supports billing frequencies of 1 and "
|
834 |
-
"billing periods of \"Week\", \"Month\" or \"Year\"."
|
835 |
-
msgstr ""
|
836 |
-
"Payflow integration understøtter kun Faktura frekvens af og faktura periode "
|
837 |
-
"af \"Uge\", \"Måned\" eller \"År\"."
|
838 |
-
|
839 |
-
#: adminpages/membershiplevels.php:374 adminpages/membershiplevels.php:372
|
840 |
-
msgid ""
|
841 |
-
"After saving this level, make note of the ID and create a \"Plan\" in your "
|
842 |
-
"Braintree dashboard with the same settings and the \"Plan ID\" set to "
|
843 |
-
"<em>pmpro_#</em>, where # is the level ID."
|
844 |
-
msgstr ""
|
845 |
-
"Efter at gemme dette niveau, lav en note af ID og opret en \"Plan\" i dit "
|
846 |
-
"Braintree kontrolpanel, med det samme indstillinger, og at \"Plan ID\" er "
|
847 |
-
"sat til <em>pmpro_#</em>, hvor # er niveau ID."
|
848 |
-
|
849 |
-
#: adminpages/membershiplevels.php:374 adminpages/membershiplevels.php:376
|
850 |
-
#: adminpages/paymentsettings.php:174 adminpages/paymentsettings.php:179
|
851 |
-
#: adminpages/membershiplevels.php:372 adminpages/paymentsettings.php:170
|
852 |
-
msgid "Note"
|
853 |
-
msgstr "Note"
|
854 |
-
|
855 |
-
#: adminpages/membershiplevels.php:376 adminpages/membershiplevels.php:374
|
856 |
-
msgid ""
|
857 |
-
"You will need to create a \"Plan\" in your Braintree dashboard with the same "
|
858 |
-
"settings and the \"Plan ID\" set to"
|
859 |
-
msgstr ""
|
860 |
-
"Du er nødtil at oprette en \"Plan\" i dit Braintree kontrolpanel med de "
|
861 |
-
"samme indstillinger og hvor \"Plan ID\" er sat til"
|
862 |
-
|
863 |
-
#: adminpages/membershiplevels.php:388 adminpages/membershiplevels.php:386
|
864 |
-
msgid ""
|
865 |
-
"Stripe integration currently does not support billing limits. You can still "
|
866 |
-
"set an expiration date below."
|
867 |
-
msgstr ""
|
868 |
-
"Stripe integration understøtter ikke faktura begræsninger. Du kan stadig "
|
869 |
-
"sætte en udløbsdato på nedenfor."
|
870 |
-
|
871 |
-
#: adminpages/membershiplevels.php:400 adminpages/membershiplevels.php:398
|
872 |
-
msgid ""
|
873 |
-
"2Checkout integration does not support custom trials. You can do one period "
|
874 |
-
"trials by setting an initial payment different from the billing amount."
|
875 |
-
msgstr ""
|
876 |
-
"2Checkout integration understøtter ikke brugerdefineret prøveperiode. Du kan "
|
877 |
-
"lave en prøveperiode via indstillinger, og sætte betalings mulighed til en "
|
878 |
-
"anden fakture."
|
879 |
-
|
880 |
-
#: adminpages/membershiplevels.php:414 adminpages/membershiplevels.php:406
|
881 |
-
#: adminpages/membershiplevels.php:412
|
882 |
-
msgid ""
|
883 |
-
"Stripe integration currently does not support trial amounts greater than $0."
|
884 |
-
msgstr ""
|
885 |
-
"Stripe integration understøtter ikke prøveperioder der er større en $0."
|
886 |
-
|
887 |
-
#: adminpages/membershiplevels.php:418 adminpages/membershiplevels.php:410
|
888 |
-
#: adminpages/membershiplevels.php:416
|
889 |
-
msgid ""
|
890 |
-
"Braintree integration currently does not support trial amounts greater than "
|
891 |
-
"$0."
|
892 |
-
msgstr "Braintree integration understøtter prøveperioder der er større end $0."
|
893 |
-
|
894 |
-
#: adminpages/membershiplevels.php:422 adminpages/membershiplevels.php:414
|
895 |
-
#: adminpages/membershiplevels.php:420
|
896 |
-
msgid ""
|
897 |
-
"Payflow integration currently does not support trial amounts greater than $0."
|
898 |
-
msgstr ""
|
899 |
-
"Payflow integration understøtter ikke prøveåerioder der er større end $0."
|
900 |
-
|
901 |
-
#: adminpages/membershiplevels.php:430 adminpages/membershiplevels.php:422
|
902 |
-
#: adminpages/membershiplevels.php:428
|
903 |
-
msgid "Other Settings"
|
904 |
-
msgstr "Andre Indstillinger"
|
905 |
-
|
906 |
-
#: adminpages/membershiplevels.php:434 adminpages/membershiplevels.php:426
|
907 |
-
#: adminpages/membershiplevels.php:432
|
908 |
-
msgid "Disable New Signups"
|
909 |
-
msgstr "Deaktivere Nye Tilmeldinger"
|
910 |
-
|
911 |
-
#: adminpages/membershiplevels.php:435 adminpages/membershiplevels.php:427
|
912 |
-
#: adminpages/membershiplevels.php:433
|
913 |
-
msgid ""
|
914 |
-
"Check to hide this level from the membership levels page and disable "
|
915 |
-
"registration."
|
916 |
-
msgstr ""
|
917 |
-
"Klik her, for at skjule dette Niveau fra medlemsskabs Niveau side, og "
|
918 |
-
"deaktivere registrering."
|
919 |
-
|
920 |
-
#: adminpages/membershiplevels.php:465 adminpages/membershiplevels.php:457
|
921 |
-
#: adminpages/membershiplevels.php:463
|
922 |
-
msgid "Content Settings"
|
923 |
-
msgstr "Indhols Indstillinger"
|
924 |
-
|
925 |
-
#: adminpages/membershiplevels.php:469 adminpages/membershiplevels.php:461
|
926 |
-
#: adminpages/membershiplevels.php:467
|
927 |
-
msgid "Categories"
|
928 |
-
msgstr "Kategorier"
|
929 |
-
|
930 |
-
#: adminpages/membershiplevels.php:498 adminpages/membershiplevels.php:490
|
931 |
-
#: adminpages/membershiplevels.php:496
|
932 |
-
msgid "Add New Level"
|
933 |
-
msgstr "Tilføj Ny Niveau"
|
934 |
-
|
935 |
-
#: adminpages/membershiplevels.php:501 adminpages/membershiplevels.php:504
|
936 |
-
#: adminpages/membershiplevels.php:493 adminpages/membershiplevels.php:496
|
937 |
-
#: adminpages/membershiplevels.php:499 adminpages/membershiplevels.php:502
|
938 |
-
msgid "Search Levels"
|
939 |
-
msgstr "Søg Niveauer"
|
940 |
-
|
941 |
-
#: adminpages/membershiplevels.php:516 adminpages/membershiplevels.php:508
|
942 |
-
#: adminpages/membershiplevels.php:514
|
943 |
-
msgid "Billing Cycle"
|
944 |
-
msgstr "Faktura Cyklus"
|
945 |
-
|
946 |
-
#: adminpages/membershiplevels.php:517 adminpages/membershiplevels.php:509
|
947 |
-
#: adminpages/membershiplevels.php:515
|
948 |
-
msgid "Trial Cycle"
|
949 |
-
msgstr "Prøveperiode Cyklus"
|
950 |
-
|
951 |
-
#: adminpages/membershiplevels.php:518 pages/confirmation.php:83
|
952 |
-
#: pages/invoice.php:70 adminpages/membershiplevels.php:510
|
953 |
-
#: adminpages/membershiplevels.php:516 pages/confirmation.php:81
|
954 |
-
#: pages/invoice.php:68
|
955 |
-
msgid "Expiration"
|
956 |
-
msgstr "Udløbs"
|
957 |
-
|
958 |
-
#: adminpages/membershiplevels.php:519 adminpages/membershiplevels.php:511
|
959 |
-
#: adminpages/membershiplevels.php:517
|
960 |
-
msgid "Allow Signups"
|
961 |
-
msgstr "Tillad Registrering"
|
962 |
-
|
963 |
-
#: adminpages/membershiplevels.php:542 adminpages/membershiplevels.php:534
|
964 |
-
#: adminpages/membershiplevels.php:540
|
965 |
-
msgid "FREE"
|
966 |
-
msgstr "GRATIS"
|
967 |
-
|
968 |
-
#: adminpages/membershiplevels.php:551 adminpages/membershiplevels.php:543
|
969 |
-
#: adminpages/membershiplevels.php:549
|
970 |
-
msgid "every"
|
971 |
-
msgstr "alle"
|
972 |
-
|
973 |
-
#: adminpages/membershiplevels.php:553 adminpages/membershiplevels.php:561
|
974 |
-
#: adminpages/reports/memberships.php:304
|
975 |
-
#: adminpages/reports/memberships.php:315 adminpages/reports/sales.php:203
|
976 |
-
#: adminpages/reports/sales.php:214 adminpages/membershiplevels.php:545
|
977 |
-
#: adminpages/membershiplevels.php:551 adminpages/membershiplevels.php:559
|
978 |
-
#: adminpages/reports/sales.php:195 adminpages/reports/sales.php:204
|
979 |
-
#: adminpages/reports/sales.php:206 adminpages/reports/sales.php:215
|
980 |
-
msgid "for"
|
981 |
-
msgstr "for"
|
982 |
-
|
983 |
-
#: adminpages/membershiplevels.php:568 adminpages/membershiplevels.php:560
|
984 |
-
#: adminpages/membershiplevels.php:566
|
985 |
-
msgid "After"
|
986 |
-
msgstr "Efter"
|
987 |
-
|
988 |
-
#: adminpages/membershiplevels.php:573 adminpages/orders.php:964
|
989 |
-
#: adminpages/membershiplevels.php:565 adminpages/membershiplevels.php:571
|
990 |
-
#: adminpages/orders.php:661
|
991 |
-
msgid "copy"
|
992 |
-
msgstr "Kopiere"
|
993 |
-
|
994 |
-
#: adminpages/membershiplevels.php:574 adminpages/membershiplevels.php:566
|
995 |
-
#: adminpages/membershiplevels.php:572
|
996 |
-
#, php-format
|
997 |
-
msgid ""
|
998 |
-
"Are you sure you want to delete membership level %s? All subscriptions will "
|
999 |
-
"be cancelled."
|
1000 |
-
msgstr ""
|
1001 |
-
"Er du sikker på, at du ville slette medlemsskab niveau %s? Alle abonnenter "
|
1002 |
-
"ville blive annulleret."
|
1003 |
-
|
1004 |
-
#: adminpages/memberslist.php:25 includes/adminpages.php:53
|
1005 |
-
#: includes/adminpages.php:149 includes/adminpages.php:15
|
1006 |
-
#: includes/adminpages.php:74 includes/adminpages.php:142
|
1007 |
-
msgid "Members List"
|
1008 |
-
msgstr "Medlems Liste"
|
1009 |
-
|
1010 |
-
#: adminpages/memberslist.php:26 adminpages/orders.php:591
|
1011 |
-
#: adminpages/orders.php:522
|
1012 |
-
msgid "Export to CSV"
|
1013 |
-
msgstr "Eksportere til CSV"
|
1014 |
-
|
1015 |
-
#: adminpages/memberslist.php:30 adminpages/orders.php:603
|
1016 |
-
#: adminpages/reports/login.php:65 adminpages/reports/memberships.php:292
|
1017 |
-
#: adminpages/reports/sales.php:193 adminpages/reports/sales.php:185
|
1018 |
-
#: adminpages/reports/sales.php:194
|
1019 |
-
msgid "Show"
|
1020 |
-
msgstr "Vis"
|
1021 |
-
|
1022 |
-
#: adminpages/memberslist.php:32 adminpages/reports/login.php:67
|
1023 |
-
#: adminpages/reports/memberships.php:317 adminpages/reports/sales.php:216
|
1024 |
-
#: adminpages/reports/sales.php:208 adminpages/reports/sales.php:217
|
1025 |
-
msgid "All Levels"
|
1026 |
-
msgstr "All Niveauer"
|
1027 |
-
|
1028 |
-
#: adminpages/memberslist.php:42
|
1029 |
-
msgid "Old Members"
|
1030 |
-
msgstr "Gamle Medlemmer"
|
1031 |
-
|
1032 |
-
#: adminpages/memberslist.php:47 adminpages/memberslist.php:50
|
1033 |
-
#: adminpages/memberslist.php:46 adminpages/memberslist.php:49
|
1034 |
-
msgid "Search Members"
|
1035 |
-
msgstr "Søg Medlemmer"
|
1036 |
-
|
1037 |
-
#: adminpages/memberslist.php:136 adminpages/memberslist.php:103
|
1038 |
-
#, php-format
|
1039 |
-
msgid "%d members found."
|
1040 |
-
msgstr "%d medlemmer fundet."
|
1041 |
-
|
1042 |
-
#: adminpages/memberslist.php:145 pages/account.php:55 pages/checkout.php:171
|
1043 |
-
#: adminpages/memberslist.php:112 pages/account.php:51 pages/checkout.php:168
|
1044 |
-
msgid "Username"
|
1045 |
-
msgstr "Brugernavn"
|
1046 |
-
|
1047 |
-
#: adminpages/memberslist.php:146 adminpages/memberslist.php:113
|
1048 |
-
msgid "First Name"
|
1049 |
-
msgstr "For Navn"
|
1050 |
-
|
1051 |
-
#: adminpages/memberslist.php:147 adminpages/memberslist.php:114
|
1052 |
-
msgid "Last Name"
|
1053 |
-
msgstr "Efter Navn"
|
1054 |
-
|
1055 |
-
#: adminpages/memberslist.php:150 pages/account.php:94 pages/billing.php:62
|
1056 |
-
#: pages/checkout.php:298 pages/confirmation.php:61 pages/invoice.php:48
|
1057 |
-
#: adminpages/memberslist.php:117 pages/account.php:90 pages/billing.php:58
|
1058 |
-
#: pages/checkout.php:314 pages/checkout.php:321 pages/confirmation.php:59
|
1059 |
-
#: pages/invoice.php:46
|
1060 |
-
msgid "Billing Address"
|
1061 |
-
msgstr "Fakture Addresse"
|
1062 |
-
|
1063 |
-
#: adminpages/memberslist.php:151 adminpages/reports/login.php:143
|
1064 |
-
#: classes/gateways/class.pmprogateway_authorizenet.php:187
|
1065 |
-
#: adminpages/memberslist.php:118 adminpages/pagesettings.php:51
|
1066 |
-
msgid "Membership"
|
1067 |
-
msgstr "Medlemsskab"
|
1068 |
-
|
1069 |
-
#: adminpages/memberslist.php:152 adminpages/memberslist.php:119
|
1070 |
-
msgid "Fee"
|
1071 |
-
msgstr "Gebyr"
|
1072 |
-
|
1073 |
-
#: adminpages/memberslist.php:153 adminpages/reports/login.php:144
|
1074 |
-
#: adminpages/memberslist.php:120
|
1075 |
-
msgid "Joined"
|
1076 |
-
msgstr "Forbundet"
|
1077 |
-
|
1078 |
-
#: adminpages/memberslist.php:157
|
1079 |
-
msgid "Ended"
|
1080 |
-
msgstr "Sluttet"
|
1081 |
-
|
1082 |
-
#: adminpages/memberslist.php:223 adminpages/reports/login.php:210
|
1083 |
-
#: adminpages/memberslist.php:195
|
1084 |
-
msgid "No members found."
|
1085 |
-
msgstr "Ingen Medlemmer fundet."
|
1086 |
-
|
1087 |
-
#: adminpages/memberslist.php:223 adminpages/reports/login.php:210
|
1088 |
-
#: adminpages/memberslist.php:195
|
1089 |
-
msgid "Search all levels"
|
1090 |
-
msgstr "Søg efter Niveauer"
|
1091 |
-
|
1092 |
-
#: adminpages/orders.php:67 adminpages/orders.php:26
|
1093 |
-
msgid "Order deleted successfully."
|
1094 |
-
msgstr "Ordre blev slettet succesfuldt."
|
1095 |
-
|
1096 |
-
#: adminpages/orders.php:72 adminpages/orders.php:31
|
1097 |
-
msgid "Error deleting order."
|
1098 |
-
msgstr "Fejl i at slette ordre."
|
1099 |
-
|
1100 |
-
#: adminpages/orders.php:169 adminpages/orders.php:119
|
1101 |
-
msgid "Order saved successfully."
|
1102 |
-
msgstr "Ordre gent succesfuldt."
|
1103 |
-
|
1104 |
-
#: adminpages/orders.php:174 adminpages/orders.php:124
|
1105 |
-
msgid "Error updating order timestamp."
|
1106 |
-
msgstr "Fejl i at opdatere tidsstempel ordre."
|
1107 |
-
|
1108 |
-
#: adminpages/orders.php:180 adminpages/orders.php:130
|
1109 |
-
msgid "Error saving order."
|
1110 |
-
msgstr "Fejl i at gemme ordre."
|
1111 |
-
|
1112 |
-
#: adminpages/orders.php:245 adminpages/orders.php:195
|
1113 |
-
msgid "Order"
|
1114 |
-
msgstr "Ordre"
|
1115 |
-
|
1116 |
-
#: adminpages/orders.php:247 adminpages/orders.php:197
|
1117 |
-
msgid "New Order"
|
1118 |
-
msgstr "Ny Ordre"
|
1119 |
-
|
1120 |
-
#: adminpages/orders.php:270 adminpages/orders.php:220
|
1121 |
-
msgid "Randomly generated for you."
|
1122 |
-
msgstr "Tilfældig genereret kun for dig"
|
1123 |
-
|
1124 |
-
#: adminpages/orders.php:275 adminpages/orders.php:225
|
1125 |
-
msgid "User ID"
|
1126 |
-
msgstr "Bruger ID"
|
1127 |
-
|
1128 |
-
#: adminpages/orders.php:284 adminpages/orders.php:234
|
1129 |
-
msgid "Membership Level ID"
|
1130 |
-
msgstr "Medlems Niveau ID"
|
1131 |
-
|
1132 |
-
#: adminpages/orders.php:293 adminpages/orders.php:243
|
1133 |
-
msgid "Billing Name"
|
1134 |
-
msgstr "Faktura Navn"
|
1135 |
-
|
1136 |
-
#: adminpages/orders.php:301 adminpages/orders.php:251
|
1137 |
-
msgid "Billing Street"
|
1138 |
-
msgstr "Faktura Vej"
|
1139 |
-
|
1140 |
-
#: adminpages/orders.php:308 adminpages/orders.php:258
|
1141 |
-
msgid "Billing City"
|
1142 |
-
msgstr "Faktura By"
|
1143 |
-
|
1144 |
-
#: adminpages/orders.php:315 adminpages/orders.php:265
|
1145 |
-
msgid "Billing State"
|
1146 |
-
msgstr "Faktura Region"
|
1147 |
-
|
1148 |
-
#: adminpages/orders.php:322 adminpages/orders.php:272
|
1149 |
-
msgid "Billing Postal Code"
|
1150 |
-
msgstr "Faktura Post Nummer"
|
1151 |
-
|
1152 |
-
#: adminpages/orders.php:329 adminpages/orders.php:279
|
1153 |
-
msgid "Billing Country"
|
1154 |
-
msgstr "Faktura Land"
|
1155 |
-
|
1156 |
-
#: adminpages/orders.php:337 adminpages/orders.php:287
|
1157 |
-
msgid "Billing Phone"
|
1158 |
-
msgstr "Faktura Telefon"
|
1159 |
-
|
1160 |
-
#: adminpages/orders.php:346 adminpages/orders.php:296
|
1161 |
-
msgid "Sub Total"
|
1162 |
-
msgstr "Subtotal"
|
1163 |
-
|
1164 |
-
#: adminpages/orders.php:354 pages/invoice.php:80 adminpages/orders.php:304
|
1165 |
-
#: pages/invoice.php:78
|
1166 |
-
msgid "Tax"
|
1167 |
-
msgstr "Skat"
|
1168 |
-
|
1169 |
-
#: adminpages/orders.php:362 adminpages/orders.php:312
|
1170 |
-
msgid "Coupon Amount"
|
1171 |
-
msgstr "Rabat Beløb"
|
1172 |
-
|
1173 |
-
#: adminpages/orders.php:370 adminpages/orders.php:905 pages/invoice.php:84
|
1174 |
-
#: adminpages/orders.php:320 adminpages/orders.php:602 pages/invoice.php:82
|
1175 |
-
msgid "Total"
|
1176 |
-
msgstr "Total"
|
1177 |
-
|
1178 |
-
#: adminpages/orders.php:375 adminpages/orders.php:325
|
1179 |
-
msgid "Should be subtotal + tax - couponamount."
|
1180 |
-
msgstr "Skulle være subtotal + skat - rabat beløb"
|
1181 |
-
|
1182 |
-
#: adminpages/orders.php:380 adminpages/orders.php:330
|
1183 |
-
msgid "Payment Type"
|
1184 |
-
msgstr "Betalings Type"
|
1185 |
-
|
1186 |
-
#: adminpages/orders.php:385 adminpages/orders.php:335
|
1187 |
-
msgid "e.g. PayPal Express, PayPal Standard, Credit Card."
|
1188 |
-
msgstr "e.g. PayPal Express, PayPal Standard. Kreditkort."
|
1189 |
-
|
1190 |
-
#: adminpages/orders.php:389 pages/billing.php:238 pages/checkout.php:493
|
1191 |
-
#: adminpages/orders.php:339 pages/billing.php:234 pages/checkout.php:510
|
1192 |
-
#: pages/checkout.php:517
|
1193 |
-
msgid "Card Type"
|
1194 |
-
msgstr "Kort Type"
|
1195 |
-
|
1196 |
-
#: adminpages/orders.php:394 adminpages/orders.php:344
|
1197 |
-
msgid "e.g. Visa, MasterCard, AMEX, etc"
|
1198 |
-
msgstr "e.g Visa, MasterCard. AMEX, etc"
|
1199 |
-
|
1200 |
-
#: adminpages/orders.php:398 adminpages/paymentsettings.php:352
|
1201 |
-
#: adminpages/orders.php:348 adminpages/paymentsettings.php:347
|
1202 |
-
msgid "Account Number"
|
1203 |
-
msgstr "Konto Nummer"
|
1204 |
-
|
1205 |
-
#: adminpages/orders.php:403 adminpages/orders.php:353
|
1206 |
-
msgid "Obscure all but last 4 digits."
|
1207 |
-
msgstr "Skjul alle personlige oplysninger, undtagen de sidste 4 cifre"
|
1208 |
-
|
1209 |
-
#: adminpages/orders.php:408 adminpages/orders.php:358
|
1210 |
-
msgid "Expiration Month"
|
1211 |
-
msgstr "Udløbs Måned"
|
1212 |
-
|
1213 |
-
#: adminpages/orders.php:415 adminpages/orders.php:365
|
1214 |
-
msgid "Expiration Year"
|
1215 |
-
msgstr "Udløbs År"
|
1216 |
-
|
1217 |
-
#: adminpages/orders.php:423 adminpages/orders.php:909
|
1218 |
-
#: adminpages/orders.php:373 adminpages/orders.php:606
|
1219 |
-
msgid "Status"
|
1220 |
-
msgstr "Status"
|
1221 |
-
|
1222 |
-
#: adminpages/orders.php:444 adminpages/orders.php:907
|
1223 |
-
#: adminpages/orders.php:394 adminpages/orders.php:604
|
1224 |
-
msgid "Gateway"
|
1225 |
-
msgstr "Gateway"
|
1226 |
-
|
1227 |
-
#: adminpages/orders.php:448 adminpages/orders.php:398
|
1228 |
-
msgid "Testing Only"
|
1229 |
-
msgstr "Kun for Test"
|
1230 |
-
|
1231 |
-
#: adminpages/orders.php:449 adminpages/paymentsettings.php:159
|
1232 |
-
#: adminpages/orders.php:399 adminpages/paymentsettings.php:157
|
1233 |
-
msgid "Pay by Check"
|
1234 |
-
msgstr "Betal med Check"
|
1235 |
-
|
1236 |
-
#: adminpages/orders.php:461 adminpages/paymentsettings.php:184
|
1237 |
-
#: adminpages/orders.php:411 adminpages/paymentsettings.php:175
|
1238 |
-
#: adminpages/paymentsettings.php:179
|
1239 |
-
msgid "Gateway Environment"
|
1240 |
-
msgstr "Gateway Miljø"
|
1241 |
-
|
1242 |
-
#: adminpages/orders.php:465 adminpages/paymentsettings.php:188
|
1243 |
-
#: adminpages/orders.php:415 adminpages/paymentsettings.php:179
|
1244 |
-
#: adminpages/paymentsettings.php:183
|
1245 |
-
msgid "Sandbox/Testing"
|
1246 |
-
msgstr "Sandkasse/Test"
|
1247 |
-
|
1248 |
-
#: adminpages/orders.php:466 adminpages/paymentsettings.php:189
|
1249 |
-
#: adminpages/orders.php:416 adminpages/paymentsettings.php:180
|
1250 |
-
#: adminpages/paymentsettings.php:184
|
1251 |
-
msgid "Live/Production"
|
1252 |
-
msgstr "Live/Produktion"
|
1253 |
-
|
1254 |
-
#: adminpages/orders.php:473 adminpages/orders.php:423
|
1255 |
-
msgid "Payment Transaction ID"
|
1256 |
-
msgstr "Betalings Transaktions ID"
|
1257 |
-
|
1258 |
-
#: adminpages/orders.php:478 adminpages/orders.php:428
|
1259 |
-
msgid "Generated by the gateway. Useful to cross reference orders."
|
1260 |
-
msgstr "Genereret af Gateway. Nyttigt til at krydse referencer med ordre."
|
1261 |
-
|
1262 |
-
#: adminpages/orders.php:482 adminpages/orders.php:432
|
1263 |
-
msgid "Subscription Transaction ID"
|
1264 |
-
msgstr "Abonnoments Transaktion ID"
|
1265 |
-
|
1266 |
-
#: adminpages/orders.php:487 adminpages/orders.php:437
|
1267 |
-
msgid "Generated by the gateway. Useful to cross reference subscriptions."
|
1268 |
-
msgstr ""
|
1269 |
-
"Genereret af Gateway. Nyttigt til at krydse referencer med abonnomenter. "
|
1270 |
-
|
1271 |
-
#: adminpages/orders.php:492 adminpages/orders.php:910 pages/invoice.php:107
|
1272 |
-
#: adminpages/orders.php:442 adminpages/orders.php:607 pages/invoice.php:105
|
1273 |
-
msgid "Date"
|
1274 |
-
msgstr "Dato"
|
1275 |
-
|
1276 |
-
#: adminpages/orders.php:527 adminpages/orders.php:477
|
1277 |
-
msgid "Affiliate ID"
|
1278 |
-
msgstr "Assosieret ID"
|
1279 |
-
|
1280 |
-
#: adminpages/orders.php:535 adminpages/orders.php:485
|
1281 |
-
msgid "Affiliate SubID"
|
1282 |
-
msgstr "Assosieret SubID"
|
1283 |
-
|
1284 |
-
#: adminpages/orders.php:545 adminpages/orders.php:495
|
1285 |
-
msgid "Notes"
|
1286 |
-
msgstr "Noter"
|
1287 |
-
|
1288 |
-
#: adminpages/orders.php:560 adminpages/orders.php:510
|
1289 |
-
msgid "Save Order"
|
1290 |
-
msgstr "Gem Ordre"
|
1291 |
-
|
1292 |
-
#: adminpages/orders.php:561 pages/billing.php:330 adminpages/orders.php:511
|
1293 |
-
#: pages/billing.php:295 pages/billing.php:299
|
1294 |
-
msgid "Cancel"
|
1295 |
-
msgstr "Annullere"
|
1296 |
-
|
1297 |
-
#: adminpages/orders.php:570 includes/adminpages.php:55
|
1298 |
-
#: includes/adminpages.php:163 adminpages/orders.php:520
|
1299 |
-
#: includes/adminpages.php:17 includes/adminpages.php:84
|
1300 |
-
#: includes/adminpages.php:156
|
1301 |
-
msgid "Orders"
|
1302 |
-
msgstr "Ordrer"
|
1303 |
-
|
1304 |
-
#: adminpages/orders.php:571 adminpages/orders.php:521
|
1305 |
-
msgid "Add New Order"
|
1306 |
-
msgstr "Tilføj Ny Ordrer"
|
1307 |
-
|
1308 |
-
#: adminpages/orders.php:605
|
1309 |
-
msgid "All"
|
1310 |
-
msgstr "Alle"
|
1311 |
-
|
1312 |
-
#: adminpages/orders.php:606
|
1313 |
-
msgid "Within a Date Range"
|
1314 |
-
msgstr "Inden for et datointerval"
|
1315 |
-
|
1316 |
-
#: adminpages/orders.php:607
|
1317 |
-
msgid "Predefined Date Range"
|
1318 |
-
msgstr "Foruddefineret datointerval"
|
1319 |
-
|
1320 |
-
#: adminpages/orders.php:608
|
1321 |
-
msgid "Within a Level"
|
1322 |
-
msgstr "Indenfor et Niveau"
|
1323 |
-
|
1324 |
-
#: adminpages/orders.php:609
|
1325 |
-
msgid "Within a Status"
|
1326 |
-
msgstr "Indenfor en Status"
|
1327 |
-
|
1328 |
-
#: adminpages/orders.php:612
|
1329 |
-
msgid "From"
|
1330 |
-
msgstr "Fra"
|
1331 |
-
|
1332 |
-
#: adminpages/orders.php:624
|
1333 |
-
msgid "To"
|
1334 |
-
msgstr "Til"
|
1335 |
-
|
1336 |
-
#: adminpages/orders.php:636
|
1337 |
-
msgid "filter by "
|
1338 |
-
msgstr "Filtreret af"
|
1339 |
-
|
1340 |
-
#: adminpages/orders.php:674
|
1341 |
-
msgid "Filter"
|
1342 |
-
msgstr "Filtreret"
|
1343 |
-
|
1344 |
-
#: adminpages/orders.php:777 adminpages/orders.php:780
|
1345 |
-
#: adminpages/orders.php:535 adminpages/orders.php:538
|
1346 |
-
msgid "Search Orders"
|
1347 |
-
msgstr "Søg Ordrer"
|
1348 |
-
|
1349 |
-
#: adminpages/orders.php:893 adminpages/orders.php:590
|
1350 |
-
#, php-format
|
1351 |
-
msgid "%d orders found."
|
1352 |
-
msgstr "%d ordre fundet."
|
1353 |
-
|
1354 |
-
#: adminpages/orders.php:902 adminpages/paymentsettings.php:220
|
1355 |
-
#: adminpages/reports/login.php:141 adminpages/orders.php:599
|
1356 |
-
#: adminpages/paymentsettings.php:211 adminpages/paymentsettings.php:215
|
1357 |
-
msgid "User"
|
1358 |
-
msgstr "Bruger"
|
1359 |
-
|
1360 |
-
#: adminpages/orders.php:904 includes/profile.php:27 pages/checkout.php:33
|
1361 |
-
#: pages/confirmation.php:47 pages/confirmation.php:64
|
1362 |
-
#: pages/confirmation.php:105 pages/invoice.php:28 pages/invoice.php:51
|
1363 |
-
#: adminpages/orders.php:601 includes/profile.php:25 pages/checkout.php:34
|
1364 |
-
#: pages/confirmation.php:46 pages/confirmation.php:62
|
1365 |
-
#: pages/confirmation.php:103 pages/invoice.php:27 pages/invoice.php:49
|
1366 |
-
msgid "Membership Level"
|
1367 |
-
msgstr "Medlems Niveau"
|
1368 |
-
|
1369 |
-
#: adminpages/orders.php:906 adminpages/orders.php:954
|
1370 |
-
#: adminpages/orders.php:603 adminpages/orders.php:651
|
1371 |
-
msgid "Payment"
|
1372 |
-
msgstr "Betaling"
|
1373 |
-
|
1374 |
-
#: adminpages/orders.php:908 adminpages/orders.php:605
|
1375 |
-
msgid "Transaction IDs"
|
1376 |
-
msgstr "Transaktion ID'er"
|
1377 |
-
|
1378 |
-
#: adminpages/orders.php:933 adminpages/orders.php:630
|
1379 |
-
msgid "deleted"
|
1380 |
-
msgstr "slettet"
|
1381 |
-
|
1382 |
-
#: adminpages/orders.php:956 adminpages/orders.php:653
|
1383 |
-
msgid "Subscription"
|
1384 |
-
msgstr "Abonnoment"
|
1385 |
-
|
1386 |
-
#: adminpages/orders.php:967 adminpages/orders.php:664
|
1387 |
-
#, php-format
|
1388 |
-
msgid ""
|
1389 |
-
"Deleting orders is permanent and can affect active users. Are you sure you "
|
1390 |
-
"want to delete order %s?"
|
1391 |
-
msgstr ""
|
1392 |
-
"Slette ordrer er permanent og kan ikke påvirke aktive brugere. Er du sikker "
|
1393 |
-
"på, at du ville slette ordrer %s?"
|
1394 |
-
|
1395 |
-
#: adminpages/orders.php:977 adminpages/orders.php:674
|
1396 |
-
msgid "No orders found."
|
1397 |
-
msgstr "Ingen ordrer fundet."
|
1398 |
-
|
1399 |
-
#: adminpages/pagesettings.php:51
|
1400 |
-
msgid "Membership Account"
|
1401 |
-
msgstr "Medlems Konto"
|
1402 |
-
|
1403 |
-
#: adminpages/pagesettings.php:54
|
1404 |
-
msgid "Membership Billing"
|
1405 |
-
msgstr "Medlems Regning"
|
1406 |
-
|
1407 |
-
#: adminpages/pagesettings.php:57
|
1408 |
-
msgid "Membership Cancel"
|
1409 |
-
msgstr "Medlems Annullering"
|
1410 |
-
|
1411 |
-
#: adminpages/pagesettings.php:60
|
1412 |
-
msgid "Membership Checkout"
|
1413 |
-
msgstr "Medlems Gå til Kassen"
|
1414 |
-
|
1415 |
-
#: adminpages/pagesettings.php:63
|
1416 |
-
msgid "Membership Confirmation"
|
1417 |
-
msgstr "Medlems Bekræftigelse"
|
1418 |
-
|
1419 |
-
#: adminpages/pagesettings.php:66
|
1420 |
-
msgid "Membership Invoice"
|
1421 |
-
msgstr "Medlems Faktura"
|
1422 |
-
|
1423 |
-
#: adminpages/pagesettings.php:73
|
1424 |
-
#, php-format
|
1425 |
-
msgid "Membership %s"
|
1426 |
-
msgstr "Medlems %s"
|
1427 |
-
|
1428 |
-
#: adminpages/pagesettings.php:111 adminpages/pagesettings.php:83
|
1429 |
-
msgid "The following pages have been created for you"
|
1430 |
-
msgstr "De følgende sider, er bleven oprettet for dig"
|
1431 |
-
|
1432 |
-
#: adminpages/pagesettings.php:126 adminpages/pagesettings.php:98
|
1433 |
-
msgid ""
|
1434 |
-
"Manage the WordPress pages assigned to each required Paid Memberships Pro "
|
1435 |
-
"page."
|
1436 |
-
msgstr ""
|
1437 |
-
"Håndtere Wordpress sider, som er tildelt og påkrævet til hver Paid "
|
1438 |
-
"Memberships Pro sider eller."
|
1439 |
-
|
1440 |
-
#: adminpages/pagesettings.php:132 adminpages/pagesettings.php:104
|
1441 |
-
msgid ""
|
1442 |
-
"Assign the WordPress pages for each required Paid Memberships Pro page or"
|
1443 |
-
msgstr ""
|
1444 |
-
"Tildel Wordpress sider, til hver påkrævet Paid Memberships Pro sider eller"
|
1445 |
-
|
1446 |
-
#: adminpages/pagesettings.php:132 adminpages/pagesettings.php:104
|
1447 |
-
msgid "click here to let us generate them for you"
|
1448 |
-
msgstr "Klik her, for at lade dem generere dem for dig"
|
1449 |
-
|
1450 |
-
#: adminpages/pagesettings.php:140 adminpages/pagesettings.php:112
|
1451 |
-
msgid "Account Page"
|
1452 |
-
msgstr "Konto Side"
|
1453 |
-
|
1454 |
-
#: adminpages/pagesettings.php:147 adminpages/pagesettings.php:162
|
1455 |
-
#: adminpages/pagesettings.php:177 adminpages/pagesettings.php:193
|
1456 |
-
#: adminpages/pagesettings.php:209 adminpages/pagesettings.php:225
|
1457 |
-
#: adminpages/pagesettings.php:241 adminpages/pagesettings.php:119
|
1458 |
-
#: adminpages/pagesettings.php:132 adminpages/pagesettings.php:134
|
1459 |
-
#: adminpages/pagesettings.php:145 adminpages/pagesettings.php:149
|
1460 |
-
#: adminpages/pagesettings.php:159 adminpages/pagesettings.php:165
|
1461 |
-
#: adminpages/pagesettings.php:173 adminpages/pagesettings.php:181
|
1462 |
-
#: adminpages/pagesettings.php:187 adminpages/pagesettings.php:197
|
1463 |
-
#: adminpages/pagesettings.php:201 adminpages/pagesettings.php:213
|
1464 |
-
msgid "edit page"
|
1465 |
-
msgstr "redigere side"
|
1466 |
-
|
1467 |
-
#: adminpages/pagesettings.php:149 adminpages/pagesettings.php:164
|
1468 |
-
#: adminpages/pagesettings.php:179 adminpages/pagesettings.php:195
|
1469 |
-
#: adminpages/pagesettings.php:211 adminpages/pagesettings.php:227
|
1470 |
-
#: adminpages/pagesettings.php:243 adminpages/pagesettings.php:121
|
1471 |
-
#: adminpages/pagesettings.php:136 adminpages/pagesettings.php:151
|
1472 |
-
#: adminpages/pagesettings.php:167 adminpages/pagesettings.php:183
|
1473 |
-
#: adminpages/pagesettings.php:199 adminpages/pagesettings.php:215
|
1474 |
-
msgid "view page"
|
1475 |
-
msgstr "se side"
|
1476 |
-
|
1477 |
-
#: adminpages/pagesettings.php:151 adminpages/pagesettings.php:166
|
1478 |
-
#: adminpages/pagesettings.php:181 adminpages/pagesettings.php:197
|
1479 |
-
#: adminpages/pagesettings.php:213 adminpages/pagesettings.php:229
|
1480 |
-
#: adminpages/pagesettings.php:245 adminpages/pagesettings.php:121
|
1481 |
-
#: adminpages/pagesettings.php:123 adminpages/pagesettings.php:134
|
1482 |
-
#: adminpages/pagesettings.php:138 adminpages/pagesettings.php:147
|
1483 |
-
#: adminpages/pagesettings.php:153 adminpages/pagesettings.php:161
|
1484 |
-
#: adminpages/pagesettings.php:169 adminpages/pagesettings.php:175
|
1485 |
-
#: adminpages/pagesettings.php:185 adminpages/pagesettings.php:189
|
1486 |
-
#: adminpages/pagesettings.php:201 adminpages/pagesettings.php:203
|
1487 |
-
#: adminpages/pagesettings.php:217
|
1488 |
-
msgid "Include the shortcode"
|
1489 |
-
msgstr "Include kort kode"
|
1490 |
-
|
1491 |
-
#: adminpages/pagesettings.php:155 adminpages/pagesettings.php:125
|
1492 |
-
#: adminpages/pagesettings.php:127
|
1493 |
-
msgid "Billing Information Page"
|
1494 |
-
msgstr "Regnings Informations Side"
|
1495 |
-
|
1496 |
-
#: adminpages/pagesettings.php:170 adminpages/pagesettings.php:138
|
1497 |
-
#: adminpages/pagesettings.php:142
|
1498 |
-
msgid "Cancel Page"
|
1499 |
-
msgstr "Annullere Side"
|
1500 |
-
|
1501 |
-
#: adminpages/pagesettings.php:186 adminpages/pagesettings.php:152
|
1502 |
-
#: adminpages/pagesettings.php:158
|
1503 |
-
msgid "Checkout Page"
|
1504 |
-
msgstr "Gå til Kassen Side"
|
1505 |
-
|
1506 |
-
#: adminpages/pagesettings.php:202 adminpages/pagesettings.php:166
|
1507 |
-
#: adminpages/pagesettings.php:174
|
1508 |
-
msgid "Confirmation Page"
|
1509 |
-
msgstr "Bekræftigelses Side"
|
1510 |
-
|
1511 |
-
#: adminpages/pagesettings.php:218 adminpages/pagesettings.php:180
|
1512 |
-
#: adminpages/pagesettings.php:190
|
1513 |
-
msgid "Invoice Page"
|
1514 |
-
msgstr "Fakturer Side"
|
1515 |
-
|
1516 |
-
#: adminpages/pagesettings.php:234 adminpages/pagesettings.php:194
|
1517 |
-
#: adminpages/pagesettings.php:206
|
1518 |
-
msgid "Levels Page"
|
1519 |
-
msgstr "Nivauers Side"
|
1520 |
-
|
1521 |
-
#: adminpages/paymentsettings.php:77 adminpages/paymentsettings.php:82
|
1522 |
-
msgid "Your payment settings have been updated."
|
1523 |
-
msgstr "Din betalings indstillinger er bleven opdatert."
|
1524 |
-
|
1525 |
-
#: adminpages/paymentsettings.php:146 adminpages/paymentsettings.php:154
|
1526 |
-
#: adminpages/paymentsettings.php:144 adminpages/paymentsettings.php:152
|
1527 |
-
msgid "Payment Gateway"
|
1528 |
-
msgstr "Betalings Gateway"
|
1529 |
-
|
1530 |
-
#: adminpages/paymentsettings.php:146 adminpages/paymentsettings.php:144
|
1531 |
-
msgid "SSL Settings"
|
1532 |
-
msgstr "SSL Indstillinger"
|
1533 |
-
|
1534 |
-
#: adminpages/paymentsettings.php:148
|
1535 |
-
msgid ""
|
1536 |
-
"Learn more about <a title=\"Paid Memberships Pro - SSL Settings\" target="
|
1537 |
-
"\"_blank\" href=\"http://www.paidmembershipspro.com/support/initial-plugin-"
|
1538 |
-
"setup/ssl/\">SSL</a> or <a title=\"Paid Memberships Pro - Payment Gateway "
|
1539 |
-
"Settings\" target=\"_blank\" href=\"http://www.paidmembershipspro.com/"
|
1540 |
-
"support/initial-plugin-setup/payment-gateway/\">Payment Gateway Settings</a>."
|
1541 |
-
msgstr ""
|
1542 |
-
"Lær mere omkring <a title=\"Paid Memberships Pro - SSL Indstillinger\" "
|
1543 |
-
"target=\"_blank\" href=\"http://www.paidmembershipspro.com/support/initial-"
|
1544 |
-
"plugin-setup/ssl/\">SSL</a> eller <a title=\"Paid Memberships Pro - Betaling "
|
1545 |
-
"Gateway Indstillinger\" target=\"_blank\" href=\"http://www."
|
1546 |
-
"paidmembershipspro.com/support/initial-plugin-setup/payment-gateway/"
|
1547 |
-
"\">Betalings Gateway Indstillinger</a>."
|
1548 |
-
|
1549 |
-
#: adminpages/paymentsettings.php:174
|
1550 |
-
msgid ""
|
1551 |
-
"This gateway option is in beta. Some functionality may not be available. "
|
1552 |
-
"Please contact Paid Memberships Pro with any issues you run into. "
|
1553 |
-
"<strong>Please be sure to upgrade Paid Memberships Pro to the latest "
|
1554 |
-
"versions when available.</strong>"
|
1555 |
-
msgstr ""
|
1556 |
-
"Denne gateway funktion er I beta. Nogle funktioner er nok ikke tilgængelig. "
|
1557 |
-
"Venlig kontakt Paid Memberships Pro med de problemer, du oplever. "
|
1558 |
-
"<strong>Husk at opgradere Paid Memberships Pro til den seneste version, når "
|
1559 |
-
"det er tilgængeligt.</strong>"
|
1560 |
-
|
1561 |
-
#: adminpages/paymentsettings.php:179
|
1562 |
-
msgid ""
|
1563 |
-
"We do not recommend using PayPal Standard. We suggest using PayPal Express, "
|
1564 |
-
"Website Payments Pro (Legacy), or PayPal Pro (Payflow Pro). <a target="
|
1565 |
-
"\"_blank\" href=\"http://www.paidmembershipspro.com/2013/09/read-using-"
|
1566 |
-
"paypal-standard-paid-memberships-pro/\">More information on why can be found "
|
1567 |
-
"here.</a>"
|
1568 |
-
msgstr ""
|
1569 |
-
"Vi anbefaler ikke, at bruge Paypal Standard. Vi forslår at brute PayPal "
|
1570 |
-
"Express, Website Payments Pro (Legacy), eller PayPal Pro (Payflow Pro). <a "
|
1571 |
-
"target=\"_blank\" href=\"http://www.paidmembershipspro.com/2013/09/read-"
|
1572 |
-
"using-paypal-standard-paid-memberships-pro/\">Mere information om hvorfor, "
|
1573 |
-
"kan findes her.</a>"
|
1574 |
-
|
1575 |
-
#: adminpages/paymentsettings.php:204 adminpages/paymentsettings.php:195
|
1576 |
-
#: adminpages/paymentsettings.php:199
|
1577 |
-
msgid "Partner"
|
1578 |
-
msgstr "Partner"
|
1579 |
-
|
1580 |
-
#: adminpages/paymentsettings.php:212 adminpages/paymentsettings.php:203
|
1581 |
-
#: adminpages/paymentsettings.php:207
|
1582 |
-
msgid "Vendor"
|
1583 |
-
msgstr "Sælger"
|
1584 |
-
|
1585 |
-
#: adminpages/paymentsettings.php:228 pages/checkout.php:180
|
1586 |
-
#: adminpages/paymentsettings.php:219 adminpages/paymentsettings.php:223
|
1587 |
-
#: pages/checkout.php:177
|
1588 |
-
msgid "Password"
|
1589 |
-
msgstr "Adgangskode"
|
1590 |
-
|
1591 |
-
#: adminpages/paymentsettings.php:236 adminpages/paymentsettings.php:227
|
1592 |
-
#: adminpages/paymentsettings.php:231
|
1593 |
-
msgid "Gateway Account Email"
|
1594 |
-
msgstr "Gateway Konto Email"
|
1595 |
-
|
1596 |
-
#: adminpages/paymentsettings.php:244 adminpages/paymentsettings.php:336
|
1597 |
-
#: adminpages/paymentsettings.php:235 adminpages/paymentsettings.php:239
|
1598 |
-
#: adminpages/paymentsettings.php:331
|
1599 |
-
msgid "API Username"
|
1600 |
-
msgstr "API Brugernavn"
|
1601 |
-
|
1602 |
-
#: adminpages/paymentsettings.php:252 adminpages/paymentsettings.php:344
|
1603 |
-
#: adminpages/paymentsettings.php:243 adminpages/paymentsettings.php:247
|
1604 |
-
#: adminpages/paymentsettings.php:339
|
1605 |
-
msgid "API Password"
|
1606 |
-
msgstr "API Adgangskode"
|
1607 |
-
|
1608 |
-
#: adminpages/paymentsettings.php:260 adminpages/paymentsettings.php:251
|
1609 |
-
#: adminpages/paymentsettings.php:255
|
1610 |
-
msgid "API Signature"
|
1611 |
-
msgstr "API Signatur"
|
1612 |
-
|
1613 |
-
#: adminpages/paymentsettings.php:269 adminpages/paymentsettings.php:260
|
1614 |
-
#: adminpages/paymentsettings.php:264
|
1615 |
-
msgid "Login Name"
|
1616 |
-
msgstr "Login Navn"
|
1617 |
-
|
1618 |
-
#: adminpages/paymentsettings.php:277 adminpages/paymentsettings.php:268
|
1619 |
-
#: adminpages/paymentsettings.php:272
|
1620 |
-
msgid "Transaction Key"
|
1621 |
-
msgstr "Transaktions Nøgle"
|
1622 |
-
|
1623 |
-
#: adminpages/paymentsettings.php:286 adminpages/paymentsettings.php:277
|
1624 |
-
#: adminpages/paymentsettings.php:281
|
1625 |
-
msgid "Secret Key"
|
1626 |
-
msgstr "Hemmelig Nøgle"
|
1627 |
-
|
1628 |
-
#: adminpages/paymentsettings.php:294 adminpages/paymentsettings.php:285
|
1629 |
-
#: adminpages/paymentsettings.php:289
|
1630 |
-
msgid "Publishable Key"
|
1631 |
-
msgstr "Publicerbar Nøgle"
|
1632 |
-
|
1633 |
-
#: adminpages/paymentsettings.php:303 adminpages/paymentsettings.php:369
|
1634 |
-
#: adminpages/paymentsettings.php:294 adminpages/paymentsettings.php:298
|
1635 |
-
#: adminpages/paymentsettings.php:364
|
1636 |
-
msgid "Merchant ID"
|
1637 |
-
msgstr "Købmands ID"
|
1638 |
-
|
1639 |
-
#: adminpages/paymentsettings.php:311 adminpages/paymentsettings.php:302
|
1640 |
-
#: adminpages/paymentsettings.php:306
|
1641 |
-
msgid "Public Key"
|
1642 |
-
msgstr "Offentlig Nøgle"
|
1643 |
-
|
1644 |
-
#: adminpages/paymentsettings.php:319 adminpages/paymentsettings.php:310
|
1645 |
-
#: adminpages/paymentsettings.php:314
|
1646 |
-
msgid "Private Key"
|
1647 |
-
msgstr "Privat Nøgle"
|
1648 |
-
|
1649 |
-
#: adminpages/paymentsettings.php:327 adminpages/paymentsettings.php:318
|
1650 |
-
#: adminpages/paymentsettings.php:322
|
1651 |
-
msgid "Client-Side Encryption Key"
|
1652 |
-
msgstr "Klient-Side Krypteret Nøgle"
|
1653 |
-
|
1654 |
-
#: adminpages/paymentsettings.php:360 adminpages/paymentsettings.php:355
|
1655 |
-
msgid "Secret Word"
|
1656 |
-
msgstr "Hemmlig Ord"
|
1657 |
-
|
1658 |
-
#: adminpages/paymentsettings.php:377 adminpages/paymentsettings.php:372
|
1659 |
-
msgid "Transaction Security Key"
|
1660 |
-
msgstr "Transaktion Sikkerheds Nøgle"
|
1661 |
-
|
1662 |
-
#: adminpages/paymentsettings.php:386 adminpages/paymentsettings.php:327
|
1663 |
-
#: adminpages/paymentsettings.php:337 adminpages/paymentsettings.php:356
|
1664 |
-
#: adminpages/paymentsettings.php:381
|
1665 |
-
msgid "Currency"
|
1666 |
-
msgstr "Valuta"
|
1667 |
-
|
1668 |
-
#: adminpages/paymentsettings.php:400
|
1669 |
-
msgid ""
|
1670 |
-
"Not all currencies will be supported by every gateway. Please check with "
|
1671 |
-
"your gateway."
|
1672 |
-
msgstr ""
|
1673 |
-
"Ikke alt Valuta understøtter alle gateways. Kontrollere venligst din Gateway."
|
1674 |
-
|
1675 |
-
#: adminpages/paymentsettings.php:406 adminpages/paymentsettings.php:375
|
1676 |
-
#: adminpages/paymentsettings.php:401
|
1677 |
-
msgid "Accepted Credit Card Types"
|
1678 |
-
msgstr "Accepteret Kreditkort Typer"
|
1679 |
-
|
1680 |
-
#: adminpages/paymentsettings.php:420 adminpages/paymentsettings.php:389
|
1681 |
-
#: adminpages/paymentsettings.php:415
|
1682 |
-
msgid "Instructions"
|
1683 |
-
msgstr "Instruktioner"
|
1684 |
-
|
1685 |
-
#: adminpages/paymentsettings.php:424 adminpages/paymentsettings.php:393
|
1686 |
-
#: adminpages/paymentsettings.php:419
|
1687 |
-
msgid ""
|
1688 |
-
"Who to write the check out to. Where to mail it. Shown on checkout, "
|
1689 |
-
"confirmation, and invoice pages."
|
1690 |
-
msgstr ""
|
1691 |
-
"Hvem skal checken udskrives til. Hvor skal den mails til. Vis ved gå til "
|
1692 |
-
"kassen, bekræftigelse, og faktura sider."
|
1693 |
-
|
1694 |
-
#: adminpages/paymentsettings.php:430 adminpages/paymentsettings.php:425
|
1695 |
-
msgid "Show Billing Address Fields"
|
1696 |
-
msgstr "Vis Regnings Adresse Felter."
|
1697 |
-
|
1698 |
-
#: adminpages/paymentsettings.php:437
|
1699 |
-
msgid ""
|
1700 |
-
"Stripe doesn't require billing address fields. Choose 'No' to hide them on "
|
1701 |
-
"the checkout page.<br /><strong>If No, make sure you disable address "
|
1702 |
-
"verification in the Stripe dashboard settings.</strong>"
|
1703 |
-
msgstr ""
|
1704 |
-
"Stripe behøver ikke regnings adresse felter. Vælg 'Nej' for at skjule dem "
|
1705 |
-
"ved gå til kassen side.<br/><strong>Hvis Nej, så vær sikker på, at du har "
|
1706 |
-
"deaktiveret bekræftigelse I Strip Kontrolpanel Indstillinger.</strong>"
|
1707 |
-
|
1708 |
-
#: adminpages/paymentsettings.php:443 adminpages/paymentsettings.php:398
|
1709 |
-
#: adminpages/paymentsettings.php:438
|
1710 |
-
msgid "Sales Tax"
|
1711 |
-
msgstr "Moms"
|
1712 |
-
|
1713 |
-
#: adminpages/paymentsettings.php:443 pages/billing.php:82
|
1714 |
-
#: adminpages/paymentsettings.php:398 adminpages/paymentsettings.php:438
|
1715 |
-
#: pages/billing.php:78
|
1716 |
-
msgid "optional"
|
1717 |
-
msgstr "valgfri"
|
1718 |
-
|
1719 |
-
#: adminpages/paymentsettings.php:446 adminpages/paymentsettings.php:401
|
1720 |
-
#: adminpages/paymentsettings.php:441
|
1721 |
-
msgid "Tax State"
|
1722 |
-
msgstr "Moms ialt"
|
1723 |
-
|
1724 |
-
#: adminpages/paymentsettings.php:447 adminpages/paymentsettings.php:402
|
1725 |
-
#: adminpages/paymentsettings.php:442
|
1726 |
-
msgid "abbreviation, e.g. \"PA\""
|
1727 |
-
msgstr "forkortelse, e.g. \"PA\""
|
1728 |
-
|
1729 |
-
#: adminpages/paymentsettings.php:449 adminpages/paymentsettings.php:404
|
1730 |
-
#: adminpages/paymentsettings.php:444
|
1731 |
-
msgid "decimal, e.g. \"0.06\""
|
1732 |
-
msgstr "decimal, e.g \"0.06\""
|
1733 |
-
|
1734 |
-
#: adminpages/paymentsettings.php:450
|
1735 |
-
msgid ""
|
1736 |
-
"US only. If values are given, tax will be applied for any members ordering "
|
1737 |
-
"from the selected state.<br />For non-US or more complex tax rules, use the "
|
1738 |
-
"<a target=\"_blank\" href=\"http://www.paidmembershipspro.com/2013/10/non-us-"
|
1739 |
-
"taxes-paid-memberships-pro/\">pmpro_tax filter</a>."
|
1740 |
-
msgstr ""
|
1741 |
-
"Kun for US. Hvis værdien er sat korret op, så ville skat blive tilføjet til "
|
1742 |
-
"hvilken som helst medlems ordre fra den valgte stat.<br> For ikke-US eller "
|
1743 |
-
"mere komplekse skatte regler, brug dette <a target=\"_blank\" href=\"http://"
|
1744 |
-
"www.paidmembershipspro.com/2013/10/non-us-taxes-paid-memberships-pro/"
|
1745 |
-
"\">pmpro_tax filter</a>."
|
1746 |
-
|
1747 |
-
#: adminpages/paymentsettings.php:455 adminpages/paymentsettings.php:450
|
1748 |
-
msgid "Force SSL"
|
1749 |
-
msgstr "Tving SSL"
|
1750 |
-
|
1751 |
-
#: adminpages/paymentsettings.php:461 adminpages/paymentsettings.php:456
|
1752 |
-
msgid "Yes (with JavaScript redirects)"
|
1753 |
-
msgstr "Ja (med JavaScript omdirigering)"
|
1754 |
-
|
1755 |
-
#: adminpages/paymentsettings.php:468 adminpages/paymentsettings.php:430
|
1756 |
-
#: adminpages/paymentsettings.php:463
|
1757 |
-
msgid "SSL Seal Code"
|
1758 |
-
msgstr "SSL Seal Kode"
|
1759 |
-
|
1760 |
-
#: adminpages/paymentsettings.php:477 adminpages/paymentsettings.php:438
|
1761 |
-
#: adminpages/paymentsettings.php:471
|
1762 |
-
msgid "HTTPS Nuclear Option"
|
1763 |
-
msgstr "HTTPS Nuclear Funktioner"
|
1764 |
-
|
1765 |
-
#: adminpages/paymentsettings.php:480 adminpages/paymentsettings.php:441
|
1766 |
-
#: adminpages/paymentsettings.php:474
|
1767 |
-
msgid ""
|
1768 |
-
"Use the \"Nuclear Option\" to use secure (HTTPS) URLs on your secure pages. "
|
1769 |
-
"Check this if you are using SSL and have warnings on your checkout pages."
|
1770 |
-
msgstr ""
|
1771 |
-
"Brug \"Nuclear Funktion\" for at sikre (HTTPS) URLs på dine sikre sider. "
|
1772 |
-
"Tjek hvis du bruger SSL og har advarsler på din gå til kassen sider."
|
1773 |
-
|
1774 |
-
#: adminpages/paymentsettings.php:485 adminpages/paymentsettings.php:446
|
1775 |
-
#: adminpages/paymentsettings.php:479
|
1776 |
-
msgid "IPN Handler URL"
|
1777 |
-
msgstr "IPN Handler URL"
|
1778 |
-
|
1779 |
-
#: adminpages/paymentsettings.php:488 adminpages/paymentsettings.php:449
|
1780 |
-
#: adminpages/paymentsettings.php:482
|
1781 |
-
msgid "To fully integrate with PayPal, be sure to set your IPN Handler URL to "
|
1782 |
-
msgstr ""
|
1783 |
-
"For at integrerer fuldt ud med PayPal, vær sikker på, sæt din IPN Handler "
|
1784 |
-
"URL til "
|
1785 |
-
|
1786 |
-
#: adminpages/paymentsettings.php:493 adminpages/paymentsettings.php:487
|
1787 |
-
msgid "TwoCheckout INS URL"
|
1788 |
-
msgstr "TwoCheckout INS URL"
|
1789 |
-
|
1790 |
-
#: adminpages/paymentsettings.php:496 adminpages/paymentsettings.php:490
|
1791 |
-
msgid ""
|
1792 |
-
"To fully integrate with 2Checkout, be sure to set your 2Checkout INS URL "
|
1793 |
-
msgstr ""
|
1794 |
-
"For at kunne integrerer fuldtud med 2Checkout, vær sikker på, at sætte din "
|
1795 |
-
"2Checkout INS URL"
|
1796 |
-
|
1797 |
-
#: adminpages/paymentsettings.php:501 adminpages/paymentsettings.php:454
|
1798 |
-
#: adminpages/paymentsettings.php:495
|
1799 |
-
msgid "Silent Post URL"
|
1800 |
-
msgstr "Skjul Post URL"
|
1801 |
-
|
1802 |
-
#: adminpages/paymentsettings.php:504 adminpages/paymentsettings.php:457
|
1803 |
-
#: adminpages/paymentsettings.php:498
|
1804 |
-
msgid ""
|
1805 |
-
"To fully integrate with Authorize.net, be sure to set your Silent Post URL to"
|
1806 |
-
msgstr ""
|
1807 |
-
"For at kunne integrerer fuldtud med Authorize.net, vær sikker på, at sætte "
|
1808 |
-
"din Silent Post URL til"
|
1809 |
-
|
1810 |
-
#: adminpages/paymentsettings.php:509 adminpages/paymentsettings.php:517
|
1811 |
-
#: adminpages/paymentsettings.php:462 adminpages/paymentsettings.php:470
|
1812 |
-
#: adminpages/paymentsettings.php:503 adminpages/paymentsettings.php:511
|
1813 |
-
msgid "Web Hook URL"
|
1814 |
-
msgstr "Web Hook URL"
|
1815 |
-
|
1816 |
-
#: adminpages/paymentsettings.php:512 adminpages/paymentsettings.php:465
|
1817 |
-
#: adminpages/paymentsettings.php:506
|
1818 |
-
msgid "To fully integrate with Stripe, be sure to set your Web Hook URL to"
|
1819 |
-
msgstr ""
|
1820 |
-
"For at kunne integrerer fuldtud med Stripe, vær sikker på, at sætte din web "
|
1821 |
-
"Hook URL til"
|
1822 |
-
|
1823 |
-
#: adminpages/paymentsettings.php:521 adminpages/paymentsettings.php:474
|
1824 |
-
#: adminpages/paymentsettings.php:515
|
1825 |
-
msgid "To fully integrate with Braintree, be sure to set your Web Hook URL to"
|
1826 |
-
msgstr ""
|
1827 |
-
"For at kunne integrerer fuldtud med Braintree, vær sikker på, at sætte din "
|
1828 |
-
"Silent Post URL til"
|
1829 |
-
|
1830 |
-
#: adminpages/reports.php:40 adminpages/reports.php:26
|
1831 |
-
#: adminpages/reports.php:37
|
1832 |
-
msgid "Details"
|
1833 |
-
msgstr "Detaljer"
|
1834 |
-
|
1835 |
-
#: adminpages/reports/login.php:16
|
1836 |
-
msgid "Visits, Views, and Logins"
|
1837 |
-
msgstr "Besøgende, Set, og Logget Ind"
|
1838 |
-
|
1839 |
-
#: adminpages/reports/login.php:26
|
1840 |
-
msgid "Visits Today"
|
1841 |
-
msgstr "Besøgende Idag"
|
1842 |
-
|
1843 |
-
#: adminpages/reports/login.php:27 adminpages/reports/login.php:147
|
1844 |
-
msgid "Visits This Month"
|
1845 |
-
msgstr "Besøgende I denne Måned"
|
1846 |
-
|
1847 |
-
#: adminpages/reports/login.php:28
|
1848 |
-
msgid "Visits All Time"
|
1849 |
-
msgstr "Besøgende Hele Tiden"
|
1850 |
-
|
1851 |
-
#: adminpages/reports/login.php:31
|
1852 |
-
msgid "Views Today"
|
1853 |
-
msgstr "Set Idag"
|
1854 |
-
|
1855 |
-
#: adminpages/reports/login.php:32 adminpages/reports/login.php:149
|
1856 |
-
msgid "Views This Month"
|
1857 |
-
msgstr "Set I Denne Måned"
|
1858 |
-
|
1859 |
-
#: adminpages/reports/login.php:33
|
1860 |
-
msgid "Views All Time"
|
1861 |
-
msgstr "Set Hele Tiden"
|
1862 |
-
|
1863 |
-
#: adminpages/reports/login.php:36
|
1864 |
-
msgid "Logins Today"
|
1865 |
-
msgstr "Logget ind Idag"
|
1866 |
-
|
1867 |
-
#: adminpages/reports/login.php:37 adminpages/reports/login.php:152
|
1868 |
-
msgid "Logins This Month"
|
1869 |
-
msgstr "Logget ind I denne måned"
|
1870 |
-
|
1871 |
-
#: adminpages/reports/login.php:38
|
1872 |
-
msgid "Logins All Time"
|
1873 |
-
msgstr "Logget ind hele Tiden"
|
1874 |
-
|
1875 |
-
#: adminpages/reports/login.php:61
|
1876 |
-
msgid "Visits, Views, and Logins Report"
|
1877 |
-
msgstr "Besøgende, Set. og Logget Ind Report"
|
1878 |
-
|
1879 |
-
#: adminpages/reports/login.php:66
|
1880 |
-
msgid "All Users"
|
1881 |
-
msgstr "Alle Brugere"
|
1882 |
-
|
1883 |
-
#: adminpages/reports/login.php:146
|
1884 |
-
msgid "Last Visit"
|
1885 |
-
msgstr "Sidst Besøgt"
|
1886 |
-
|
1887 |
-
#: adminpages/reports/login.php:148
|
1888 |
-
msgid "Total Visits"
|
1889 |
-
msgstr "Total Besøgende"
|
1890 |
-
|
1891 |
-
#: adminpages/reports/login.php:150
|
1892 |
-
msgid "Total Views"
|
1893 |
-
msgstr "Total Set"
|
1894 |
-
|
1895 |
-
#: adminpages/reports/login.php:151
|
1896 |
-
msgid "Last Login"
|
1897 |
-
msgstr "Sidst Logget Ind"
|
1898 |
-
|
1899 |
-
#: adminpages/reports/login.php:153
|
1900 |
-
msgid "Total Logins"
|
1901 |
-
msgstr "Logget ind Total"
|
1902 |
-
|
1903 |
-
#: adminpages/reports/memberships.php:18
|
1904 |
-
#: adminpages/reports/memberships.php:288
|
1905 |
-
msgid "Membership Stats"
|
1906 |
-
msgstr "Medlems Statestikker"
|
1907 |
-
|
1908 |
-
#: adminpages/reports/memberships.php:48
|
1909 |
-
msgid "Signups"
|
1910 |
-
msgstr "Regestreringer"
|
1911 |
-
|
1912 |
-
#: adminpages/reports/memberships.php:50 adminpages/reports/memberships.php:69
|
1913 |
-
msgid "All Time"
|
1914 |
-
msgstr "Hele Tiden"
|
1915 |
-
|
1916 |
-
#: adminpages/reports/memberships.php:54 adminpages/reports/memberships.php:73
|
1917 |
-
msgid "This Year"
|
1918 |
-
msgstr "Dette År"
|
1919 |
-
|
1920 |
-
#: adminpages/reports/memberships.php:58 adminpages/reports/memberships.php:77
|
1921 |
-
msgid "This Month"
|
1922 |
-
msgstr "Denne Måned"
|
1923 |
-
|
1924 |
-
#: adminpages/reports/memberships.php:62 adminpages/reports/memberships.php:81
|
1925 |
-
msgid "Today"
|
1926 |
-
msgstr "Idag"
|
1927 |
-
|
1928 |
-
#: adminpages/reports/memberships.php:67
|
1929 |
-
msgid "Cancellations"
|
1930 |
-
msgstr "Annulleringer"
|
1931 |
-
|
1932 |
-
#: adminpages/reports/memberships.php:86
|
1933 |
-
msgid "Other Stats"
|
1934 |
-
msgstr "Andre Statestikker"
|
1935 |
-
|
1936 |
-
#: adminpages/reports/memberships.php:88
|
1937 |
-
msgid "Monthly Recurring Revenue (MRR)"
|
1938 |
-
msgstr "Månedligt Tilbagevendende Indtægter (MTI)"
|
1939 |
-
|
1940 |
-
#: adminpages/reports/memberships.php:92
|
1941 |
-
msgid "Cancellation Rate"
|
1942 |
-
msgstr "Annullerings Rate"
|
1943 |
-
|
1944 |
-
#: adminpages/reports/memberships.php:96
|
1945 |
-
msgid "Lifetime Value (LTV)"
|
1946 |
-
msgstr "Livstids Værdi (LTV)"
|
1947 |
-
|
1948 |
-
#: adminpages/reports/memberships.php:294 adminpages/reports/sales.php:195
|
1949 |
-
#: adminpages/reports/sales.php:187 adminpages/reports/sales.php:196
|
1950 |
-
msgid "Daily"
|
1951 |
-
msgstr "Daglig"
|
1952 |
-
|
1953 |
-
#: adminpages/reports/memberships.php:295 adminpages/reports/sales.php:196
|
1954 |
-
#: adminpages/reports/sales.php:188 adminpages/reports/sales.php:197
|
1955 |
-
msgid "Monthly"
|
1956 |
-
msgstr "Månedelig"
|
1957 |
-
|
1958 |
-
#: adminpages/reports/memberships.php:296 adminpages/reports/sales.php:197
|
1959 |
-
#: adminpages/reports/sales.php:189 adminpages/reports/sales.php:198
|
1960 |
-
msgid "Annual"
|
1961 |
-
msgstr "Årlig"
|
1962 |
-
|
1963 |
-
#: adminpages/reports/memberships.php:299
|
1964 |
-
msgid "Signups vs. Cancellations"
|
1965 |
-
msgstr "Regestreringer vs Annulleringer"
|
1966 |
-
|
1967 |
-
#: adminpages/reports/memberships.php:331 adminpages/reports/sales.php:230
|
1968 |
-
#: adminpages/reports/sales.php:222 adminpages/reports/sales.php:231
|
1969 |
-
msgid "Generate Report"
|
1970 |
-
msgstr "Genereret Report"
|
1971 |
-
|
1972 |
-
#: adminpages/reports/sales.php:18
|
1973 |
-
msgid "Sales and Revenue (Testing/Sandbox)"
|
1974 |
-
msgstr "Salg og Indtægter (Test/Sandkasse)"
|
1975 |
-
|
1976 |
-
#: adminpages/reports/sales.php:20 adminpages/reports/sales.php:189
|
1977 |
-
#: adminpages/reports/sales.php:180
|
1978 |
-
msgid "Sales and Revenue"
|
1979 |
-
msgstr "Salg og Indtægter"
|
1980 |
-
|
1981 |
-
#: adminpages/reports/sales.php:200 adminpages/reports/sales.php:192
|
1982 |
-
#: adminpages/reports/sales.php:201
|
1983 |
-
msgid "Revenue"
|
1984 |
-
msgstr "Indtægter"
|
1985 |
-
|
1986 |
-
#: adminpages/reports/sales.php:201 adminpages/reports/sales.php:193
|
1987 |
-
#: adminpages/reports/sales.php:202
|
1988 |
-
msgid "Sales"
|
1989 |
-
msgstr "Salg"
|
1990 |
-
|
1991 |
-
#: classes/class.memberorder.php:564 classes/class.memberorder.php:553
|
1992 |
-
#: classes/class.memberorder.php:561 includes/cleanup.php:24
|
1993 |
-
#, php-format
|
1994 |
-
msgid ""
|
1995 |
-
"There was an error canceling the subscription for user with ID=%s. You will "
|
1996 |
-
"want to check your payment gateway to see if their subscription is still "
|
1997 |
-
"active."
|
1998 |
-
msgstr ""
|
1999 |
-
"Der var en fejl, med annullering af abonnement for bruger med ID=%s. Du "
|
2000 |
-
"ville nok kontrollere din betalings gateway, for at kunne se om deres "
|
2001 |
-
"abonnement stadig er aktiv"
|
2002 |
-
|
2003 |
-
#: classes/class.pmproemail.php:37
|
2004 |
-
#, php-format
|
2005 |
-
msgid "An Email From %s"
|
2006 |
-
msgstr "En Email Fra %s"
|
2007 |
-
|
2008 |
-
#: classes/class.pmproemail.php:122 classes/class.pmproemail.php:120
|
2009 |
-
#, php-format
|
2010 |
-
msgid "Your membership at %s has been CANCELLED"
|
2011 |
-
msgstr "Dit medlemskab hos %s er blevet ANNULLERET"
|
2012 |
-
|
2013 |
-
#: classes/class.pmproemail.php:144 classes/class.pmproemail.php:142
|
2014 |
-
#, php-format
|
2015 |
-
msgid "Membership for %s at %s has been CANCELLED"
|
2016 |
-
msgstr "Medlemskab for %s hos %s er blevet ANNULLERET"
|
2017 |
-
|
2018 |
-
#: classes/class.pmproemail.php:175 classes/class.pmproemail.php:172
|
2019 |
-
#: classes/class.pmproemail.php:173
|
2020 |
-
#, php-format
|
2021 |
-
msgid "Your membership confirmation for %s"
|
2022 |
-
msgstr "Dit medlemskab bekræftigelse for %s"
|
2023 |
-
|
2024 |
-
#: classes/class.pmproemail.php:228 classes/class.pmproemail.php:237
|
2025 |
-
#: classes/class.pmproemail.php:246 classes/class.pmproemail.php:325
|
2026 |
-
#: classes/class.pmproemail.php:334 classes/class.pmproemail.php:645
|
2027 |
-
#: pages/checkout.php:66 pages/checkout.php:76 pages/checkout.php:549
|
2028 |
-
#: pages/confirmation.php:52 pages/invoice.php:33
|
2029 |
-
#: classes/class.pmproemail.php:216 classes/class.pmproemail.php:218
|
2030 |
-
#: classes/class.pmproemail.php:225 classes/class.pmproemail.php:227
|
2031 |
-
#: classes/class.pmproemail.php:234 classes/class.pmproemail.php:236
|
2032 |
-
#: classes/class.pmproemail.php:304 classes/class.pmproemail.php:307
|
2033 |
-
#: classes/class.pmproemail.php:313 classes/class.pmproemail.php:316
|
2034 |
-
#: classes/class.pmproemail.php:532 classes/class.pmproemail.php:580
|
2035 |
-
#: pages/checkout.php:67 pages/checkout.php:77 pages/checkout.php:566
|
2036 |
-
#: pages/checkout.php:573 pages/confirmation.php:51 pages/invoice.php:32
|
2037 |
-
msgid "Discount Code"
|
2038 |
-
msgstr "Rabat Kode"
|
2039 |
-
|
2040 |
-
#: classes/class.pmproemail.php:253 classes/class.pmproemail.php:346
|
2041 |
-
#: classes/class.pmproemail.php:651 classes/class.pmproemail.php:241
|
2042 |
-
#: classes/class.pmproemail.php:243 classes/class.pmproemail.php:325
|
2043 |
-
#: classes/class.pmproemail.php:328 classes/class.pmproemail.php:538
|
2044 |
-
#: classes/class.pmproemail.php:586
|
2045 |
-
#, php-format
|
2046 |
-
msgid "This membership will expire on %s."
|
2047 |
-
msgstr "Dette medlemskab udløber den %s."
|
2048 |
-
|
2049 |
-
#: classes/class.pmproemail.php:275 classes/class.pmproemail.php:263
|
2050 |
-
#: classes/class.pmproemail.php:265
|
2051 |
-
#, php-format
|
2052 |
-
msgid "Member Checkout for %s at %s"
|
2053 |
-
msgstr "Medlem gå til kassen ved %s hos %s"
|
2054 |
-
|
2055 |
-
#: classes/class.pmproemail.php:363 classes/class.pmproemail.php:342
|
2056 |
-
#: classes/class.pmproemail.php:345
|
2057 |
-
#, php-format
|
2058 |
-
msgid "Your billing information has been udpated at %s"
|
2059 |
-
msgstr "Dine betalings informationer er blevet opdateret hos %s"
|
2060 |
-
|
2061 |
-
#: classes/class.pmproemail.php:416 classes/class.pmproemail.php:386
|
2062 |
-
#: classes/class.pmproemail.php:390
|
2063 |
-
#, php-format
|
2064 |
-
msgid "Billing information has been udpated for %s at %s"
|
2065 |
-
msgstr "Betalings informationer er blevet opdateret ved %s hos %s"
|
2066 |
-
|
2067 |
-
#: classes/class.pmproemail.php:464 classes/class.pmproemail.php:425
|
2068 |
-
#: classes/class.pmproemail.php:430
|
2069 |
-
#, php-format
|
2070 |
-
msgid "Membership Payment Failed at %s"
|
2071 |
-
msgstr "Medlemsskabs Betaling Fejlet hos %s"
|
2072 |
-
|
2073 |
-
#: classes/class.pmproemail.php:510 classes/class.pmproemail.php:462
|
2074 |
-
#: classes/class.pmproemail.php:468
|
2075 |
-
#, php-format
|
2076 |
-
msgid "Membership Payment Failed For %s at %s"
|
2077 |
-
msgstr "Medlemsskat Betaling Fejlet for %s ved %s"
|
2078 |
-
|
2079 |
-
#: classes/class.pmproemail.php:557 classes/class.pmproemail.php:508
|
2080 |
-
#, php-format
|
2081 |
-
msgid "Credit Card on File Expiring Soon at %s"
|
2082 |
-
msgstr "Kreditkort udløber snart hos %s"
|
2083 |
-
|
2084 |
-
#: classes/class.pmproemail.php:605 classes/class.pmproemail.php:501
|
2085 |
-
#: classes/class.pmproemail.php:548
|
2086 |
-
#, php-format
|
2087 |
-
msgid "INVOICE for %s membership"
|
2088 |
-
msgstr "FAKTURA for %s medlemsskab"
|
2089 |
-
|
2090 |
-
#: classes/class.pmproemail.php:676 classes/class.pmproemail.php:563
|
2091 |
-
#: classes/class.pmproemail.php:611
|
2092 |
-
#, php-format
|
2093 |
-
msgid "Your trial at %s is ending soon"
|
2094 |
-
msgstr "Din prøveperiode ved %s ender snart"
|
2095 |
-
|
2096 |
-
#: classes/class.pmproemail.php:710 classes/class.pmproemail.php:596
|
2097 |
-
#: classes/class.pmproemail.php:645
|
2098 |
-
#, php-format
|
2099 |
-
msgid "Your membership at %s has ended"
|
2100 |
-
msgstr "Dit medlemskab hos %s er endt"
|
2101 |
-
|
2102 |
-
#: classes/class.pmproemail.php:735 classes/class.pmproemail.php:621
|
2103 |
-
#: classes/class.pmproemail.php:670
|
2104 |
-
#, php-format
|
2105 |
-
msgid "Your membership at %s will end soon"
|
2106 |
-
msgstr "Dit medlemsskab hos %s vil snart ende"
|
2107 |
-
|
2108 |
-
#: classes/class.pmproemail.php:755 classes/class.pmproemail.php:641
|
2109 |
-
#: classes/class.pmproemail.php:690
|
2110 |
-
#, php-format
|
2111 |
-
msgid "Your membership at %s has been changed"
|
2112 |
-
msgstr "Dit medlemsskab hos %s er belven ændret"
|
2113 |
-
|
2114 |
-
#: classes/class.pmproemail.php:759
|
2115 |
-
#, php-format
|
2116 |
-
msgid "The new level is %s."
|
2117 |
-
msgstr "Det nye niveau er %s."
|
2118 |
-
|
2119 |
-
#: classes/class.pmproemail.php:761 classes/class.pmproemail.php:647
|
2120 |
-
#: classes/class.pmproemail.php:696
|
2121 |
-
msgid "Your membership has been cancelled"
|
2122 |
-
msgstr "Dit medlskabskab er bleven annulleret"
|
2123 |
-
|
2124 |
-
#: classes/class.pmproemail.php:765 classes/class.pmproemail.php:803
|
2125 |
-
#: classes/class.pmproemail.php:651 classes/class.pmproemail.php:689
|
2126 |
-
#: classes/class.pmproemail.php:700 classes/class.pmproemail.php:738
|
2127 |
-
#, php-format
|
2128 |
-
msgid "This membership will expire on %s"
|
2129 |
-
msgstr "Dette medlemsskab ville udløbe hos %s"
|
2130 |
-
|
2131 |
-
#: classes/class.pmproemail.php:769 classes/class.pmproemail.php:807
|
2132 |
-
#: classes/class.pmproemail.php:655 classes/class.pmproemail.php:693
|
2133 |
-
#: classes/class.pmproemail.php:704 classes/class.pmproemail.php:742
|
2134 |
-
msgid "This membership does not expire"
|
2135 |
-
msgstr "Dette medlemsskab udløber ikke"
|
2136 |
-
|
2137 |
-
#: classes/class.pmproemail.php:793 classes/class.pmproemail.php:679
|
2138 |
-
#: classes/class.pmproemail.php:728
|
2139 |
-
#, php-format
|
2140 |
-
msgid "Membership for %s at %s has been changed"
|
2141 |
-
msgstr "Medlemsskab for %s hos %s er bleven ændret"
|
2142 |
-
|
2143 |
-
#: classes/class.pmproemail.php:797 classes/class.pmproemail.php:645
|
2144 |
-
#: classes/class.pmproemail.php:683 classes/class.pmproemail.php:694
|
2145 |
-
#: classes/class.pmproemail.php:732
|
2146 |
-
#, php-format
|
2147 |
-
msgid "The new level is %s. This membership is free"
|
2148 |
-
msgstr "Det nye niveau er %s. Dette medlemsskab er gratis"
|
2149 |
-
|
2150 |
-
#: classes/class.pmproemail.php:799
|
2151 |
-
msgid "Membership has been cancelled"
|
2152 |
-
msgstr "Medlemsskab er bleven annulleret"
|
2153 |
-
|
2154 |
-
#: classes/gateways/class.pmprogateway.php:55
|
2155 |
-
#: classes/gateways/class.pmprogateway_authorizenet.php:55
|
2156 |
-
#: classes/gateways/class.pmprogateway_check.php:60
|
2157 |
-
#: classes/gateways/class.pmprogateway_cybersource.php:57
|
2158 |
-
#: classes/gateways/class.pmprogateway_payflowpro.php:27
|
2159 |
-
#: classes/gateways/class.pmprogateway_paypal.php:27
|
2160 |
-
msgid "Unknown error: Authorization failed."
|
2161 |
-
msgstr "Ukendt fejl: Godkendelse fejlet."
|
2162 |
-
|
2163 |
-
#: classes/gateways/class.pmprogateway.php:106
|
2164 |
-
#: classes/gateways/class.pmprogateway.php:111
|
2165 |
-
#: classes/gateways/class.pmprogateway.php:129
|
2166 |
-
#: classes/gateways/class.pmprogateway_authorizenet.php:106
|
2167 |
-
#: classes/gateways/class.pmprogateway_authorizenet.php:111
|
2168 |
-
#: classes/gateways/class.pmprogateway_authorizenet.php:128
|
2169 |
-
#: classes/gateways/class.pmprogateway_check.php:111
|
2170 |
-
#: classes/gateways/class.pmprogateway_check.php:116
|
2171 |
-
#: classes/gateways/class.pmprogateway_check.php:134
|
2172 |
-
#: classes/gateways/class.pmprogateway_cybersource.php:108
|
2173 |
-
#: classes/gateways/class.pmprogateway_cybersource.php:113
|
2174 |
-
#: classes/gateways/class.pmprogateway_cybersource.php:131
|
2175 |
-
#: classes/gateways/class.pmprogateway_payflowpro.php:50
|
2176 |
-
#: classes/gateways/class.pmprogateway_payflowpro.php:55
|
2177 |
-
#: classes/gateways/class.pmprogateway_paypal.php:50
|
2178 |
-
msgid "Unknown error: Payment failed."
|
2179 |
-
msgstr "Ukendt fejl. Betaling fejlet."
|
2180 |
-
|
2181 |
-
#: classes/gateways/class.pmprogateway.php:113
|
2182 |
-
#: classes/gateways/class.pmprogateway_authorizenet.php:112
|
2183 |
-
#: classes/gateways/class.pmprogateway_check.php:118
|
2184 |
-
#: classes/gateways/class.pmprogateway_cybersource.php:115
|
2185 |
-
msgid ""
|
2186 |
-
"A partial payment was made that we could not void. Please contact the site "
|
2187 |
-
"owner immediately to correct this."
|
2188 |
-
msgstr ""
|
2189 |
-
"Noget af betaling var sket, som vi ikke kunne stoppe. Kontakt venligst site "
|
2190 |
-
"admin med det sammme, for at få det rettet."
|
2191 |
-
|
2192 |
-
#: classes/gateways/class.pmprogateway_authorizenet.php:787
|
2193 |
-
#: classes/gateways/class.pmprogateway_authorizenet.php:788
|
2194 |
-
#: classes/gateways/class.pmprogateway_authorizenet.php:789
|
2195 |
-
msgid "Could not connect to Authorize.net"
|
2196 |
-
msgstr "Kunne ikke forbinde til Authorize.net"
|
2197 |
-
|
2198 |
-
#: classes/gateways/class.pmprogateway_braintree.php:61
|
2199 |
-
#: classes/gateways/class.pmprogateway_stripe.php:53
|
2200 |
-
msgid "Unknown error: Initial payment failed."
|
2201 |
-
msgstr "Ukendt fejl: Indledende betaling mislykkedes."
|
2202 |
-
|
2203 |
-
#: classes/gateways/class.pmprogateway_braintree.php:120
|
2204 |
-
msgid "Error during settlement:"
|
2205 |
-
msgstr "Fejl under afvikling:"
|
2206 |
-
|
2207 |
-
#: classes/gateways/class.pmprogateway_braintree.php:129
|
2208 |
-
msgid "Error during charge:"
|
2209 |
-
msgstr "Fejl under ændrening:"
|
2210 |
-
|
2211 |
-
#: classes/gateways/class.pmprogateway_braintree.php:198
|
2212 |
-
msgid "Failed to update customer."
|
2213 |
-
msgstr "Fejlet I at opdatere kunde."
|
2214 |
-
|
2215 |
-
#: classes/gateways/class.pmprogateway_braintree.php:246
|
2216 |
-
msgid "Failed to create customer."
|
2217 |
-
msgstr "Fejlret I at oprette kunde."
|
2218 |
-
|
2219 |
-
#: classes/gateways/class.pmprogateway_braintree.php:253
|
2220 |
-
msgid "Error creating customer record with Braintree:"
|
2221 |
-
msgstr "Fejl I at oprette en kunde rekord med Braintree:"
|
2222 |
-
|
2223 |
-
#: classes/gateways/class.pmprogateway_braintree.php:344
|
2224 |
-
#: classes/gateways/class.pmprogateway_braintree.php:345
|
2225 |
-
msgid "Error subscribing customer to plan with Braintree:"
|
2226 |
-
msgstr "Fejl i at abonnere kunde til plan med Braintree:"
|
2227 |
-
|
2228 |
-
#: classes/gateways/class.pmprogateway_braintree.php:359
|
2229 |
-
#: classes/gateways/class.pmprogateway_braintree.php:360
|
2230 |
-
msgid "Failed to subscribe with Braintree:"
|
2231 |
-
msgstr "Fejl i at abonnere med Braintree:"
|
2232 |
-
|
2233 |
-
#: classes/gateways/class.pmprogateway_braintree.php:397
|
2234 |
-
#: classes/gateways/class.pmprogateway_braintree.php:410
|
2235 |
-
#: classes/gateways/class.pmprogateway_braintree.php:417
|
2236 |
-
#: classes/gateways/class.pmprogateway_stripe.php:396
|
2237 |
-
#: classes/gateways/class.pmprogateway_braintree.php:398
|
2238 |
-
#: classes/gateways/class.pmprogateway_braintree.php:411
|
2239 |
-
#: classes/gateways/class.pmprogateway_braintree.php:418
|
2240 |
-
#: classes/gateways/class.pmprogateway_stripe.php:343
|
2241 |
-
#: classes/gateways/class.pmprogateway_stripe.php:344
|
2242 |
-
#: classes/gateways/class.pmprogateway_stripe.php:351
|
2243 |
-
#: classes/gateways/class.pmprogateway_stripe.php:353
|
2244 |
-
#: classes/gateways/class.pmprogateway_stripe.php:354
|
2245 |
-
#: classes/gateways/class.pmprogateway_stripe.php:361
|
2246 |
-
msgid "Could not find the subscription."
|
2247 |
-
msgstr "Kunne ikke finde abonnere."
|
2248 |
-
|
2249 |
-
#: classes/gateways/class.pmprogateway_payflowpro.php:57
|
2250 |
-
#: classes/gateways/class.pmprogateway_paypal.php:57
|
2251 |
-
msgid ""
|
2252 |
-
"A partial payment was made that we could not refund. Please contact the site "
|
2253 |
-
"owner immediately to correct this."
|
2254 |
-
msgstr ""
|
2255 |
-
"Noget af betaling gik igennem, men vi kunne ikke refundere beløbet. Kontakt "
|
2256 |
-
"venligst site admin med det samme, for at få det rettet."
|
2257 |
-
|
2258 |
-
#: classes/gateways/class.pmprogateway_paypal.php:385
|
2259 |
-
#: classes/gateways/class.pmprogateway_paypalexpress.php:305
|
2260 |
-
#: classes/gateways/class.pmprogateway_paypalstandard.php:220
|
2261 |
-
#: classes/gateways/class.pmprogateway_paypalexpress.php:301
|
2262 |
-
#: classes/gateways/class.pmprogateway_paypalstandard.php:216
|
2263 |
-
msgid ""
|
2264 |
-
"Please contact the site owner or cancel your subscription from within PayPal "
|
2265 |
-
"to make sure you are not charged going forward."
|
2266 |
-
msgstr ""
|
2267 |
-
"Kontakt venligst site admin eller annullere dit abonnement gennem PAyPal, "
|
2268 |
-
"for at være sikker på, at du ikke bliver trukket I betaling."
|
2269 |
-
|
2270 |
-
#: classes/gateways/class.pmprogateway_stripe.php:199
|
2271 |
-
#: classes/gateways/class.pmprogateway_stripe.php:190
|
2272 |
-
#: classes/gateways/class.pmprogateway_stripe.php:192
|
2273 |
-
msgid "Error creating customer record with Stripe:"
|
2274 |
-
msgstr "Fejl i at oprette kunde rekord med Stripe;"
|
2275 |
-
|
2276 |
-
#: classes/gateways/class.pmprogateway_stripe.php:302
|
2277 |
-
#: classes/gateways/class.pmprogateway_stripe.php:278
|
2278 |
-
#: classes/gateways/class.pmprogateway_stripe.php:279
|
2279 |
-
#: classes/gateways/class.pmprogateway_stripe.php:286
|
2280 |
-
msgid "Error creating plan with Stripe:"
|
2281 |
-
msgstr "Fejl I at oprette plan med Stripe:"
|
2282 |
-
|
2283 |
-
#: classes/gateways/class.pmprogateway_stripe.php:318
|
2284 |
-
#: classes/gateways/class.pmprogateway_stripe.php:294
|
2285 |
-
#: classes/gateways/class.pmprogateway_stripe.php:295
|
2286 |
-
#: classes/gateways/class.pmprogateway_stripe.php:302
|
2287 |
-
msgid "Error subscribing customer to plan with Stripe:"
|
2288 |
-
msgstr "Fejl I at abonnere kunde til plan med Stripe:"
|
2289 |
-
|
2290 |
-
#: classes/gateways/class.pmprogateway_stripe.php:383
|
2291 |
-
msgid "Could not cancel old subscription."
|
2292 |
-
msgstr "Kunne ikke annullere gammel abonnement."
|
2293 |
-
|
2294 |
-
#: includes/adminpages.php:47 includes/adminpages.php:100
|
2295 |
-
#: includes/adminpages.php:9 includes/adminpages.php:39
|
2296 |
-
#: includes/adminpages.php:93
|
2297 |
-
msgid "Memberships"
|
2298 |
-
msgstr "Medlemsskaber"
|
2299 |
-
|
2300 |
-
#: includes/adminpages.php:48 includes/adminpages.php:114
|
2301 |
-
#: includes/adminpages.php:10 includes/adminpages.php:49
|
2302 |
-
#: includes/adminpages.php:107
|
2303 |
-
msgid "Page Settings"
|
2304 |
-
msgstr "Side Indstilinger"
|
2305 |
-
|
2306 |
-
#: includes/adminpages.php:49 includes/adminpages.php:121
|
2307 |
-
#: includes/adminpages.php:11 includes/adminpages.php:54
|
2308 |
-
#: includes/adminpages.php:114
|
2309 |
-
msgid "Payment Settings"
|
2310 |
-
msgstr "Betalings Indstillinger"
|
2311 |
-
|
2312 |
-
#: includes/adminpages.php:54 includes/adminpages.php:156
|
2313 |
-
#: includes/adminpages.php:16 includes/adminpages.php:79
|
2314 |
-
#: includes/adminpages.php:149
|
2315 |
-
msgid "Reports"
|
2316 |
-
msgstr "Reporter"
|
2317 |
-
|
2318 |
-
#: includes/adminpages.php:56 includes/adminpages.php:170
|
2319 |
-
#: includes/adminpages.php:18 includes/adminpages.php:89
|
2320 |
-
#: includes/adminpages.php:163
|
2321 |
-
msgid "Discount Codes"
|
2322 |
-
msgstr "Rabat Kode"
|
2323 |
-
|
2324 |
-
#: includes/currencies.php:7 includes/currencies.php:44
|
2325 |
-
#: includes/currencies.php:37
|
2326 |
-
msgid "US Dollars ($)"
|
2327 |
-
msgstr "US Dollar ($)"
|
2328 |
-
|
2329 |
-
#: includes/currencies.php:8 includes/currencies.php:47
|
2330 |
-
#: includes/currencies.php:40
|
2331 |
-
msgid "Euros (€)"
|
2332 |
-
msgstr "Euro (€)"
|
2333 |
-
|
2334 |
-
#: includes/currencies.php:9 includes/currencies.php:46
|
2335 |
-
#: includes/currencies.php:39
|
2336 |
-
msgid "Pounds Sterling (£)"
|
2337 |
-
msgstr "Pound Sterling (£)"
|
2338 |
-
|
2339 |
-
#: includes/currencies.php:10
|
2340 |
-
msgid "Australian Dollars ($)"
|
2341 |
-
msgstr "Australsk Dollar ($)"
|
2342 |
-
|
2343 |
-
#: includes/currencies.php:11
|
2344 |
-
msgid "Brazilian Real ($)"
|
2345 |
-
msgstr "Brasilian Real ($)"
|
2346 |
-
|
2347 |
-
#: includes/currencies.php:12 includes/currencies.php:45
|
2348 |
-
#: includes/currencies.php:38
|
2349 |
-
msgid "Canadian Dollars ($)"
|
2350 |
-
msgstr "Canadisk Dollar ($)"
|
2351 |
-
|
2352 |
-
#: includes/currencies.php:13
|
2353 |
-
msgid "Chinese Yuan"
|
2354 |
-
msgstr "Kinesisk Yuan"
|
2355 |
-
|
2356 |
-
#: includes/currencies.php:14 includes/currencies.php:13
|
2357 |
-
msgid "Czech Koruna"
|
2358 |
-
msgstr "Tjekkisk Koruna"
|
2359 |
-
|
2360 |
-
#: includes/currencies.php:15 includes/currencies.php:14
|
2361 |
-
msgid "Danish Krone"
|
2362 |
-
msgstr "Dansk Krone"
|
2363 |
-
|
2364 |
-
#: includes/currencies.php:16 includes/currencies.php:15
|
2365 |
-
msgid "Hong Kong Dollar ($)"
|
2366 |
-
msgstr "Kong Kong Dollar ($)"
|
2367 |
-
|
2368 |
-
#: includes/currencies.php:17 includes/currencies.php:16
|
2369 |
-
msgid "Hungarian Forint"
|
2370 |
-
msgstr "Ungarnsk Forint"
|
2371 |
-
|
2372 |
-
#: includes/currencies.php:18
|
2373 |
-
msgid "Indian Rupee"
|
2374 |
-
msgstr "Indisk Rupee"
|
2375 |
-
|
2376 |
-
#: includes/currencies.php:19
|
2377 |
-
msgid "Indonesia Rupiah"
|
2378 |
-
msgstr "Indonesien Rupiah"
|
2379 |
-
|
2380 |
-
#: includes/currencies.php:20 includes/currencies.php:17
|
2381 |
-
msgid "Israeli Shekel"
|
2382 |
-
msgstr "Isralsk Shekel"
|
2383 |
-
|
2384 |
-
#: includes/currencies.php:21 includes/currencies.php:18
|
2385 |
-
msgid "Japanese Yen (¥)"
|
2386 |
-
msgstr "Japansk Yen (¥)"
|
2387 |
-
|
2388 |
-
#: includes/currencies.php:22 includes/currencies.php:19
|
2389 |
-
msgid "Malaysian Ringgits"
|
2390 |
-
msgstr "Malaysisk Ringgits"
|
2391 |
-
|
2392 |
-
#: includes/currencies.php:23 includes/currencies.php:20
|
2393 |
-
msgid "Mexican Peso ($)"
|
2394 |
-
msgstr "Mexicansk Peso ($)"
|
2395 |
-
|
2396 |
-
#: includes/currencies.php:24 includes/currencies.php:21
|
2397 |
-
msgid "New Zealand Dollar ($)"
|
2398 |
-
msgstr "New Zealand Dollar (8#36;)"
|
2399 |
-
|
2400 |
-
#: includes/currencies.php:25 includes/currencies.php:22
|
2401 |
-
msgid "Norwegian Krone"
|
2402 |
-
msgstr "Norsk Krone"
|
2403 |
-
|
2404 |
-
#: includes/currencies.php:26 includes/currencies.php:23
|
2405 |
-
msgid "Philippine Pesos"
|
2406 |
-
msgstr "Filippinsk Pesos"
|
2407 |
-
|
2408 |
-
#: includes/currencies.php:27 includes/currencies.php:24
|
2409 |
-
msgid "Polish Zloty"
|
2410 |
-
msgstr "Polsk Zloty"
|
2411 |
-
|
2412 |
-
#: includes/currencies.php:28 includes/currencies.php:25
|
2413 |
-
msgid "Singapore Dollar ($)"
|
2414 |
-
msgstr "Singapore Dollar ($)"
|
2415 |
-
|
2416 |
-
#: includes/currencies.php:29
|
2417 |
-
msgid "South African Rand"
|
2418 |
-
msgstr "Syd Afrikansk Rand"
|
2419 |
-
|
2420 |
-
#: includes/currencies.php:30
|
2421 |
-
msgid "South Korean Won"
|
2422 |
-
msgstr "Syd Korea Won"
|
2423 |
-
|
2424 |
-
#: includes/currencies.php:31 includes/currencies.php:26
|
2425 |
-
msgid "Swedish Krona"
|
2426 |
-
msgstr "Svensk Krone"
|
2427 |
-
|
2428 |
-
#: includes/currencies.php:32 includes/currencies.php:27
|
2429 |
-
msgid "Swiss Franc"
|
2430 |
-
msgstr "Swiss Franc"
|
2431 |
-
|
2432 |
-
#: includes/currencies.php:33 includes/currencies.php:28
|
2433 |
-
msgid "Taiwan New Dollars"
|
2434 |
-
msgstr "Taiwan New Dollar"
|
2435 |
-
|
2436 |
-
#: includes/currencies.php:34 includes/currencies.php:29
|
2437 |
-
msgid "Thai Baht"
|
2438 |
-
msgstr "Thai Baht"
|
2439 |
-
|
2440 |
-
#: includes/currencies.php:35
|
2441 |
-
msgid "Turkish Lira"
|
2442 |
-
msgstr "Tyrkisk Lira"
|
2443 |
-
|
2444 |
-
#: includes/currencies.php:36
|
2445 |
-
msgid "Vietnamese Dong"
|
2446 |
-
msgstr "Vietnamesisk Dong"
|
2447 |
-
|
2448 |
-
#: includes/functions.php:204 includes/functions.php:160
|
2449 |
-
#: includes/functions.php:196 includes/functions.php:202
|
2450 |
-
#, php-format
|
2451 |
-
msgid "The price for membership is <strong>%s</strong> now"
|
2452 |
-
msgstr "Pris for medlemskab er <strong>%s</strong> nu "
|
2453 |
-
|
2454 |
-
#: includes/functions.php:206 includes/functions.php:204
|
2455 |
-
#, php-format
|
2456 |
-
msgid "<strong>%s</strong> now"
|
2457 |
-
msgstr "<strong>%s</strong> nu"
|
2458 |
-
|
2459 |
-
#: includes/functions.php:215 includes/functions.php:169
|
2460 |
-
#: includes/functions.php:205 includes/functions.php:213
|
2461 |
-
#, php-format
|
2462 |
-
msgid " and then <strong>%s per %s for %d more %s</strong>."
|
2463 |
-
msgstr "og denne <strong>%s pr %s for %d mere %s</strong>."
|
2464 |
-
|
2465 |
-
#: includes/functions.php:219 includes/functions.php:173
|
2466 |
-
#: includes/functions.php:209 includes/functions.php:217
|
2467 |
-
#, php-format
|
2468 |
-
msgid " and then <strong>%s every %d %s for %d more %s</strong>."
|
2469 |
-
msgstr "og så <strong>%s hver %d %s for %d mere %s</strong>."
|
2470 |
-
|
2471 |
-
#: includes/functions.php:224 includes/functions.php:178
|
2472 |
-
#: includes/functions.php:214 includes/functions.php:222
|
2473 |
-
#, php-format
|
2474 |
-
msgid " and then <strong>%s after %d %s</strong>."
|
2475 |
-
msgstr "og derfeter <strong>%s efter %d %s</strong>."
|
2476 |
-
|
2477 |
-
#: includes/functions.php:231 includes/functions.php:229
|
2478 |
-
#, php-format
|
2479 |
-
msgid "The price for membership is <strong>%s per %s</strong>."
|
2480 |
-
msgstr "Prisen for medlemskab er <strong>%s pr %s</strong>."
|
2481 |
-
|
2482 |
-
#: includes/functions.php:235 includes/functions.php:233
|
2483 |
-
#, php-format
|
2484 |
-
msgid "The price for membership is <strong>%s every %d %s</strong>."
|
2485 |
-
msgstr "Prisen for medlemskab er <strong>%s hver %d %s</strong>."
|
2486 |
-
|
2487 |
-
#: includes/functions.php:240 includes/functions.php:184
|
2488 |
-
#: includes/functions.php:220 includes/functions.php:228
|
2489 |
-
#: includes/functions.php:238
|
2490 |
-
#, php-format
|
2491 |
-
msgid " and then <strong>%s per %s</strong>."
|
2492 |
-
msgstr "og derefter <strong>%s pr %s</strong>."
|
2493 |
-
|
2494 |
-
#: includes/functions.php:244 includes/functions.php:188
|
2495 |
-
#: includes/functions.php:224 includes/functions.php:232
|
2496 |
-
#: includes/functions.php:242
|
2497 |
-
#, php-format
|
2498 |
-
msgid " and then <strong>%s every %d %s</strong>."
|
2499 |
-
msgstr "og derefter <strong>%s hver %d %s</strong>."
|
2500 |
-
|
2501 |
-
#: includes/functions.php:262 includes/functions.php:202
|
2502 |
-
#: includes/functions.php:238 includes/functions.php:249
|
2503 |
-
#: includes/functions.php:260 pages/levels.php:82
|
2504 |
-
msgid "After your initial payment, your first payment is Free."
|
2505 |
-
msgstr ""
|
2506 |
-
"Efter du har indsat din betaling, ville din første betaling være GRATIS."
|
2507 |
-
|
2508 |
-
#: includes/functions.php:266 includes/functions.php:206
|
2509 |
-
#: includes/functions.php:242 includes/functions.php:253
|
2510 |
-
#: includes/functions.php:264 pages/levels.php:86
|
2511 |
-
#, php-format
|
2512 |
-
msgid "After your initial payment, your first %d payments are Free."
|
2513 |
-
msgstr ""
|
2514 |
-
"Efter du har indsat din betaling, ville din først %d betaling være GRATIS."
|
2515 |
-
|
2516 |
-
#: includes/functions.php:273 includes/functions.php:213
|
2517 |
-
#: includes/functions.php:249 includes/functions.php:260
|
2518 |
-
#: includes/functions.php:271 pages/levels.php:93
|
2519 |
-
#, php-format
|
2520 |
-
msgid "After your initial payment, your first payment will cost %s."
|
2521 |
-
msgstr "Efter du har indsat din betaling, ville din første betaling koste %s."
|
2522 |
-
|
2523 |
-
#: includes/functions.php:277 includes/functions.php:217
|
2524 |
-
#: includes/functions.php:253 includes/functions.php:264
|
2525 |
-
#: includes/functions.php:275 pages/levels.php:97
|
2526 |
-
#, php-format
|
2527 |
-
msgid "After your initial payment, your first %d payments will cost %s."
|
2528 |
-
msgstr "Efter du har indsat din betaling, vil dit %d betaling koste %s."
|
2529 |
-
|
2530 |
-
#: includes/functions.php:288 includes/functions.php:228
|
2531 |
-
#: includes/functions.php:264 includes/functions.php:275
|
2532 |
-
#: includes/functions.php:286
|
2533 |
-
#, php-format
|
2534 |
-
msgid "Customers in %s will be charged %s%% tax."
|
2535 |
-
msgstr "Kunder hos %s ville blive opkrævet i %s%% skat."
|
2536 |
-
|
2537 |
-
#: includes/functions.php:302 includes/functions.php:242
|
2538 |
-
#: includes/functions.php:278 includes/functions.php:289
|
2539 |
-
#: includes/functions.php:300
|
2540 |
-
#, php-format
|
2541 |
-
msgid "Membership expires after %d %s."
|
2542 |
-
msgstr "Medlemsskab udløber efter %d %s."
|
2543 |
-
|
2544 |
-
#: includes/functions.php:538 includes/functions.php:491
|
2545 |
-
#: includes/functions.php:514 includes/functions.php:525
|
2546 |
-
#: includes/functions.php:536
|
2547 |
-
msgid "User ID not found."
|
2548 |
-
msgstr "Bruger ID ikke fundet."
|
2549 |
-
|
2550 |
-
#: includes/functions.php:555 includes/functions.php:508
|
2551 |
-
#: includes/functions.php:531 includes/functions.php:542
|
2552 |
-
#: includes/functions.php:553
|
2553 |
-
msgid "Invalid level."
|
2554 |
-
msgstr "Ugyldigt niveau."
|
2555 |
-
|
2556 |
-
#: includes/functions.php:566 includes/functions.php:520
|
2557 |
-
#: includes/functions.php:542 includes/functions.php:553
|
2558 |
-
#: includes/functions.php:564
|
2559 |
-
msgid "not changing?"
|
2560 |
-
msgstr "ændres ikke?"
|
2561 |
-
|
2562 |
-
#: includes/functions.php:583 includes/functions.php:633
|
2563 |
-
#: includes/functions.php:657 includes/functions.php:537
|
2564 |
-
#: includes/functions.php:559 includes/functions.php:570
|
2565 |
-
#: includes/functions.php:581 includes/functions.php:592
|
2566 |
-
#: includes/functions.php:605 includes/functions.php:614
|
2567 |
-
#: includes/functions.php:617 includes/functions.php:626
|
2568 |
-
#: includes/functions.php:628 includes/functions.php:631
|
2569 |
-
#: includes/functions.php:637 includes/functions.php:640
|
2570 |
-
msgid "Error interacting with database"
|
2571 |
-
msgstr "Fejl med at kommunikere med database"
|
2572 |
-
|
2573 |
-
#: includes/functions.php:698 includes/functions.php:737
|
2574 |
-
#: includes/functions.php:629 includes/functions.php:651
|
2575 |
-
#: includes/functions.php:667 includes/functions.php:668
|
2576 |
-
#: includes/functions.php:678 includes/functions.php:681
|
2577 |
-
#: includes/functions.php:690 includes/functions.php:706
|
2578 |
-
#: includes/functions.php:717 includes/functions.php:720
|
2579 |
-
msgid "Membership level not found."
|
2580 |
-
msgstr "Medlemsskabs niveau ikke fundet."
|
2581 |
-
|
2582 |
-
#: includes/functions.php:1112 includes/functions.php:1050
|
2583 |
-
#: includes/functions.php:1072 includes/functions.php:1088
|
2584 |
-
#: includes/functions.php:1099 includes/functions.php:1102
|
2585 |
-
msgid "The discount code could not be found."
|
2586 |
-
msgstr "Denne rabat kode kunne ikke findes."
|
2587 |
-
|
2588 |
-
#: includes/functions.php:1128 includes/functions.php:1066
|
2589 |
-
#: includes/functions.php:1088 includes/functions.php:1104
|
2590 |
-
#: includes/functions.php:1115 includes/functions.php:1118
|
2591 |
-
#, php-format
|
2592 |
-
msgid "This discount code goes into effect on %s."
|
2593 |
-
msgstr "Denne rabat kode træder i kraft til %s."
|
2594 |
-
|
2595 |
-
#: includes/functions.php:1137 includes/functions.php:1075
|
2596 |
-
#: includes/functions.php:1097 includes/functions.php:1113
|
2597 |
-
#: includes/functions.php:1124 includes/functions.php:1127
|
2598 |
-
#, php-format
|
2599 |
-
msgid "This discount code expired on %s."
|
2600 |
-
msgstr "Denne rabat kode udløber den %s."
|
2601 |
-
|
2602 |
-
#: includes/functions.php:1149 includes/functions.php:1087
|
2603 |
-
#: includes/functions.php:1109 includes/functions.php:1125
|
2604 |
-
#: includes/functions.php:1136 includes/functions.php:1139
|
2605 |
-
msgid "This discount code is no longer valid."
|
2606 |
-
msgstr "Denne rabat kode, er ikke længere gyldig."
|
2607 |
-
|
2608 |
-
#: includes/functions.php:1164 includes/functions.php:1102
|
2609 |
-
#: includes/functions.php:1124 includes/functions.php:1140
|
2610 |
-
#: includes/functions.php:1151 includes/functions.php:1154
|
2611 |
-
msgid "This discount code does not apply to this membership level."
|
2612 |
-
msgstr "Denne rabat kode, kan ikke tilføjes til dette medlemsskabs niveau."
|
2613 |
-
|
2614 |
-
#: includes/functions.php:1172 includes/functions.php:1110
|
2615 |
-
#: includes/functions.php:1132 includes/functions.php:1148
|
2616 |
-
#: includes/functions.php:1159 includes/functions.php:1162
|
2617 |
-
msgid "This discount code is okay."
|
2618 |
-
msgstr "Denne rabat kode er okay."
|
2619 |
-
|
2620 |
-
#: includes/functions.php:1196 includes/functions.php:1134
|
2621 |
-
#: includes/functions.php:1156 includes/functions.php:1172
|
2622 |
-
#: includes/functions.php:1183 includes/functions.php:1186
|
2623 |
-
msgid "and"
|
2624 |
-
msgstr "og"
|
2625 |
-
|
2626 |
-
#: includes/functions.php:1385 includes/functions.php:1319
|
2627 |
-
#: includes/functions.php:1341 includes/functions.php:1361
|
2628 |
-
#: includes/functions.php:1372 includes/functions.php:1375
|
2629 |
-
msgid "Sign Up for !!name!! Now"
|
2630 |
-
msgstr "Tilmeld !!name!! nu"
|
2631 |
-
|
2632 |
-
#: includes/functions.php:1391 includes/functions.php:1325
|
2633 |
-
#: includes/functions.php:1347 includes/functions.php:1367
|
2634 |
-
#: includes/functions.php:1378 includes/functions.php:1381
|
2635 |
-
msgid "Please specify a level id."
|
2636 |
-
msgstr "Uddybe venlig en niveau id."
|
2637 |
-
|
2638 |
-
#: includes/localization.php:23
|
2639 |
-
msgid "Day"
|
2640 |
-
msgstr "Dag"
|
2641 |
-
|
2642 |
-
#: includes/localization.php:25
|
2643 |
-
msgid "Week"
|
2644 |
-
msgstr "Uge"
|
2645 |
-
|
2646 |
-
#: includes/localization.php:27
|
2647 |
-
msgid "Month"
|
2648 |
-
msgstr "Måned"
|
2649 |
-
|
2650 |
-
#: includes/localization.php:29
|
2651 |
-
msgid "Year"
|
2652 |
-
msgstr "År"
|
2653 |
-
|
2654 |
-
#: includes/metaboxes.php:38
|
2655 |
-
msgid ""
|
2656 |
-
"This post is already protected for this level because it is within a "
|
2657 |
-
"category that requires membership."
|
2658 |
-
msgstr ""
|
2659 |
-
"Denne post er allerede beskyttet til dette niveau, pga det er inde for en "
|
2660 |
-
"kategori, hvor medlemsskab er påkrævet."
|
2661 |
-
|
2662 |
-
#: includes/metaboxes.php:99 includes/metaboxes.php:100
|
2663 |
-
msgid "Require Membership"
|
2664 |
-
msgstr "Medlemskab er Påkrævet"
|
2665 |
-
|
2666 |
-
#: includes/profile.php:36 includes/profile.php:34
|
2667 |
-
msgid "Current Level"
|
2668 |
-
msgstr "Nuværrende Niveau"
|
2669 |
-
|
2670 |
-
#: includes/profile.php:39 includes/profile.php:37
|
2671 |
-
msgid "None"
|
2672 |
-
msgstr "Ingen"
|
2673 |
-
|
2674 |
-
#: includes/profile.php:84 includes/profile.php:82
|
2675 |
-
msgid "User is not paying."
|
2676 |
-
msgstr "Bruger betaler ikke."
|
2677 |
-
|
2678 |
-
#: includes/upgradecheck.php:410 includes/upgradecheck.php:401
|
2679 |
-
#, php-format
|
2680 |
-
msgid ""
|
2681 |
-
"This content is for !!levels!! members only.<br /><a href=\"%s\">Register</a>"
|
2682 |
-
msgstr ""
|
2683 |
-
"Dette indhold er kun for !!niveau!! medlemmer.<br /><a href=\"%s"
|
2684 |
-
"\">Registrere</a>"
|
2685 |
-
|
2686 |
-
#: includes/upgradecheck.php:413 includes/upgradecheck.php:404
|
2687 |
-
#, php-format
|
2688 |
-
msgid ""
|
2689 |
-
"This content is for !!levels!! members only.<br /><a href=\"%s\">Log In</a> "
|
2690 |
-
"<a href=\"%s\">Register</a>"
|
2691 |
-
msgstr ""
|
2692 |
-
"Dette indhold er kun for !!niveau!! medlemmer.<br /><a href=\"%s\">Log Ind</"
|
2693 |
-
"a> <a href=\"%s\">Registrere</a>"
|
2694 |
-
|
2695 |
-
#: includes/upgradecheck.php:417 includes/upgradecheck.php:408
|
2696 |
-
msgid ""
|
2697 |
-
"This content is for !!levels!! members only. Visit the site and log in/"
|
2698 |
-
"register to read."
|
2699 |
-
msgstr ""
|
2700 |
-
"Dette indhold er kun for !!niveau!! medlemmer. Besøg siden og log ind eller "
|
2701 |
-
"registrere for at læse indhold."
|
2702 |
-
|
2703 |
-
#: pages/account.php:10
|
2704 |
-
msgid "Your membership is <strong>active</strong>."
|
2705 |
-
msgstr "Dit medlemskab er <strong>aktiv</strong>."
|
2706 |
-
|
2707 |
-
#: pages/account.php:12 pages/billing.php:16 pages/levels.php:13
|
2708 |
-
msgid "Level"
|
2709 |
-
msgstr "Niveau"
|
2710 |
-
|
2711 |
-
#: pages/account.php:14 pages/billing.php:18
|
2712 |
-
msgid "Membership Fee"
|
2713 |
-
msgstr "Medlemskabs Gebyr"
|
2714 |
-
|
2715 |
-
#: pages/account.php:18 pages/billing.php:22 pages/levels.php:70
|
2716 |
-
#, php-format
|
2717 |
-
msgid "%s every %d %s."
|
2718 |
-
msgstr "%s hver %d %s."
|
2719 |
-
|
2720 |
-
#: pages/account.php:20 pages/billing.php:24 pages/levels.php:66
|
2721 |
-
#, php-format
|
2722 |
-
msgid "%s per %s."
|
2723 |
-
msgstr "%s pr %s."
|
2724 |
-
|
2725 |
-
#: pages/account.php:29 pages/billing.php:33 pages/account.php:25
|
2726 |
-
#: pages/billing.php:29
|
2727 |
-
msgid "Duration"
|
2728 |
-
msgstr "Varighed"
|
2729 |
-
|
2730 |
-
#: pages/account.php:33 pages/confirmation.php:49 pages/invoice.php:30
|
2731 |
-
#: pages/account.php:29 pages/confirmation.php:48 pages/invoice.php:29
|
2732 |
-
msgid "Membership Expires"
|
2733 |
-
msgstr "Medlemskab Udløber"
|
2734 |
-
|
2735 |
-
#: pages/account.php:38 pages/account.php:34
|
2736 |
-
#, php-format
|
2737 |
-
msgid "Your first payment will cost %s."
|
2738 |
-
msgstr "Din første betaling ville koste %s."
|
2739 |
-
|
2740 |
-
#: pages/account.php:42 pages/account.php:38
|
2741 |
-
#, php-format
|
2742 |
-
msgid "Your first %d payments will cost %s."
|
2743 |
-
msgstr "Din første %d betaling ville koste %s."
|
2744 |
-
|
2745 |
-
#: pages/account.php:50 pages/account.php:46
|
2746 |
-
msgid "My Account"
|
2747 |
-
msgstr "Min Konto"
|
2748 |
-
|
2749 |
-
#: pages/account.php:59 pages/account.php:55
|
2750 |
-
msgid "Edit Profile"
|
2751 |
-
msgstr "Redigere Profil"
|
2752 |
-
|
2753 |
-
#: pages/account.php:60 pages/account.php:56
|
2754 |
-
msgid "Change Password"
|
2755 |
-
msgstr "Ændre Adganskode"
|
2756 |
-
|
2757 |
-
#: pages/account.php:91 pages/account.php:87
|
2758 |
-
msgid "Billing Information"
|
2759 |
-
msgstr "Betalings Information"
|
2760 |
-
|
2761 |
-
#: pages/account.php:109 pages/confirmation.php:63 pages/invoice.php:50
|
2762 |
-
#: pages/account.php:105 pages/confirmation.php:61 pages/invoice.php:48
|
2763 |
-
msgid "Payment Method"
|
2764 |
-
msgstr "Betalings Metode"
|
2765 |
-
|
2766 |
-
#: pages/account.php:118 pages/account.php:114
|
2767 |
-
msgid "Edit Billing Information"
|
2768 |
-
msgstr "Redigere Betalings Informationer"
|
2769 |
-
|
2770 |
-
#: pages/account.php:129 pages/account.php:125
|
2771 |
-
msgid "Past Invoices"
|
2772 |
-
msgstr "Sidste Faktura"
|
2773 |
-
|
2774 |
-
#: pages/account.php:144 pages/account.php:140
|
2775 |
-
msgid "View All Invoices"
|
2776 |
-
msgstr "Se Alle Fakturaere"
|
2777 |
-
|
2778 |
-
#: pages/account.php:150 pages/account.php:146
|
2779 |
-
msgid "Member Links"
|
2780 |
-
msgstr "Medlems Links"
|
2781 |
-
|
2782 |
-
#: pages/account.php:156 pages/account.php:152
|
2783 |
-
msgid "Update Billing Information"
|
2784 |
-
msgstr "Updatere Betalings Informationer"
|
2785 |
-
|
2786 |
-
#: pages/account.php:159 pages/account.php:155
|
2787 |
-
msgid "Change Membership Level"
|
2788 |
-
msgstr "Ændre Medlemsskabs Niveau"
|
2789 |
-
|
2790 |
-
#: pages/account.php:161 pages/account.php:157
|
2791 |
-
msgid "Cancel Membership"
|
2792 |
-
msgstr "Annullere Medlemsskab"
|
2793 |
-
|
2794 |
-
#: pages/billing.php:14
|
2795 |
-
#, php-format
|
2796 |
-
msgid "Logged in as <strong>%s</strong>."
|
2797 |
-
msgstr "Logget ind som <strong>%s</strong>."
|
2798 |
-
|
2799 |
-
#: pages/billing.php:14
|
2800 |
-
msgid "logout"
|
2801 |
-
msgstr "Log ud"
|
2802 |
-
|
2803 |
-
#: pages/billing.php:43 pages/billing.php:39
|
2804 |
-
msgid ""
|
2805 |
-
"Your payment subscription is managed by PayPal. Please <a href=\"http://www."
|
2806 |
-
"paypal.com\">login to PayPal here</a> to update your billing information."
|
2807 |
-
msgstr ""
|
2808 |
-
"Din betalings abonnement bliver behandlet af PayPal. Venlig <a href=\"http://"
|
2809 |
-
"www.paypal.com\">login til PayPal her</a> for at opdatere din regnings "
|
2810 |
-
"information."
|
2811 |
-
|
2812 |
-
#: pages/billing.php:69 pages/checkout.php:305 pages/billing.php:65
|
2813 |
-
#: pages/checkout.php:321 pages/checkout.php:328
|
2814 |
-
msgid "First Name"
|
2815 |
-
msgstr "Fornavn"
|
2816 |
-
|
2817 |
-
#: pages/billing.php:73 pages/checkout.php:309 pages/billing.php:69
|
2818 |
-
#: pages/checkout.php:325 pages/checkout.php:332
|
2819 |
-
msgid "Last Name"
|
2820 |
-
msgstr "Efternavn"
|
2821 |
-
|
2822 |
-
#: pages/billing.php:77 pages/checkout.php:313 pages/billing.php:73
|
2823 |
-
#: pages/checkout.php:329 pages/checkout.php:336
|
2824 |
-
msgid "Address 1"
|
2825 |
-
msgstr "Adresse 1"
|
2826 |
-
|
2827 |
-
#: pages/billing.php:81 pages/checkout.php:317 pages/billing.php:77
|
2828 |
-
#: pages/checkout.php:333 pages/checkout.php:340
|
2829 |
-
msgid "Address 2"
|
2830 |
-
msgstr "Adresse 2"
|
2831 |
-
|
2832 |
-
#: pages/billing.php:91 pages/checkout.php:327 pages/billing.php:87
|
2833 |
-
#: pages/checkout.php:343 pages/checkout.php:350
|
2834 |
-
msgid "City"
|
2835 |
-
msgstr "By"
|
2836 |
-
|
2837 |
-
#: pages/billing.php:95 pages/checkout.php:331 pages/billing.php:91
|
2838 |
-
#: pages/checkout.php:347 pages/checkout.php:354
|
2839 |
-
msgid "State"
|
2840 |
-
msgstr "Region"
|
2841 |
-
|
2842 |
-
#: pages/billing.php:99 pages/checkout.php:335 pages/billing.php:95
|
2843 |
-
#: pages/checkout.php:351 pages/checkout.php:358
|
2844 |
-
msgid "Postal Code"
|
2845 |
-
msgstr "Postnummer"
|
2846 |
-
|
2847 |
-
#: pages/billing.php:108 pages/checkout.php:344 pages/billing.php:104
|
2848 |
-
#: pages/checkout.php:360 pages/checkout.php:367
|
2849 |
-
msgid "City, State Zip"
|
2850 |
-
msgstr "By, Region Postnummer"
|
2851 |
-
|
2852 |
-
#: pages/billing.php:161 pages/checkout.php:397 pages/billing.php:157
|
2853 |
-
#: pages/checkout.php:413 pages/checkout.php:420
|
2854 |
-
msgid "Country"
|
2855 |
-
msgstr "Land"
|
2856 |
-
|
2857 |
-
#: pages/billing.php:186 pages/checkout.php:422 pages/billing.php:182
|
2858 |
-
#: pages/checkout.php:438 pages/checkout.php:445
|
2859 |
-
msgid "Phone"
|
2860 |
-
msgstr "Telefon"
|
2861 |
-
|
2862 |
-
#: pages/billing.php:197 pages/checkout.php:207 pages/checkout.php:436
|
2863 |
-
#: pages/billing.php:193 pages/checkout.php:204 pages/checkout.php:453
|
2864 |
-
#: pages/checkout.php:460
|
2865 |
-
msgid "E-mail Address"
|
2866 |
-
msgstr "E-mail Adresse"
|
2867 |
-
|
2868 |
-
#: pages/billing.php:201 pages/checkout.php:445 pages/billing.php:197
|
2869 |
-
#: pages/checkout.php:462 pages/checkout.php:469
|
2870 |
-
msgid "Confirm E-mail"
|
2871 |
-
msgstr "Bekræft E-mail"
|
2872 |
-
|
2873 |
-
#: pages/billing.php:221 pages/billing.php:217
|
2874 |
-
msgid "Credit Card Information"
|
2875 |
-
msgstr "Kreditkort Information"
|
2876 |
-
|
2877 |
-
#: pages/billing.php:221 pages/billing.php:217
|
2878 |
-
#, php-format
|
2879 |
-
msgid "We accept %s"
|
2880 |
-
msgstr "Vi acceptere %s"
|
2881 |
-
|
2882 |
-
#: pages/billing.php:248 pages/checkout.php:503 pages/billing.php:244
|
2883 |
-
#: pages/checkout.php:520 pages/checkout.php:527
|
2884 |
-
msgid "Card Number"
|
2885 |
-
msgstr "Kort Nummer"
|
2886 |
-
|
2887 |
-
#: pages/billing.php:285 pages/checkout.php:540 pages/billing.php:281
|
2888 |
-
#: pages/checkout.php:557 pages/checkout.php:564
|
2889 |
-
msgid "CVV"
|
2890 |
-
msgstr "CVV"
|
2891 |
-
|
2892 |
-
#: pages/billing.php:286 pages/checkout.php:541 pages/billing.php:282
|
2893 |
-
#: pages/checkout.php:558 pages/checkout.php:565
|
2894 |
-
msgid "what's this?"
|
2895 |
-
msgstr "hvad er det?"
|
2896 |
-
|
2897 |
-
#: pages/billing.php:329 pages/billing.php:294 pages/billing.php:298
|
2898 |
-
msgid "Update"
|
2899 |
-
msgstr "Opdatere"
|
2900 |
-
|
2901 |
-
#: pages/billing.php:344 pages/billing.php:309 pages/billing.php:313
|
2902 |
-
msgid ""
|
2903 |
-
"This subscription is not recurring. So you don't need to update your billing "
|
2904 |
-
"information."
|
2905 |
-
msgstr ""
|
2906 |
-
"Dette abonnement er ikke gentagene. Så du behøver ikke, at opdatere dine "
|
2907 |
-
"betalings informationer."
|
2908 |
-
|
2909 |
-
#: pages/cancel.php:14
|
2910 |
-
msgid "Are you sure you want to cancel your membership?"
|
2911 |
-
msgstr "Er du sikker på, at du vil annullere dit medlemsskab?"
|
2912 |
-
|
2913 |
-
#: pages/cancel.php:17
|
2914 |
-
msgid "Yes, cancel my account"
|
2915 |
-
msgstr "Ja, Annullere min Konto"
|
2916 |
-
|
2917 |
-
#: pages/cancel.php:19
|
2918 |
-
msgid "No, keep my account"
|
2919 |
-
msgstr "Nej, beholder min konto"
|
2920 |
-
|
2921 |
-
#: pages/cancel.php:22
|
2922 |
-
msgid "Click here to go to the home page."
|
2923 |
-
msgstr "Klik her, for at komme til forsiden."
|
2924 |
-
|
2925 |
-
#: pages/checkout.php:26 pages/checkout.php:27
|
2926 |
-
msgid ""
|
2927 |
-
"Almost done. Review the membership information and pricing below then "
|
2928 |
-
"<strong>click the \"Complete Payment\" button</strong> to finish your order."
|
2929 |
-
msgstr ""
|
2930 |
-
"Næsten færdig. Gennemgå medlemsskabs informationer og priser neden for, "
|
2931 |
-
"derefter <strong>Klik på \"Færdiggør Betaling\" Knappen</strong> for at "
|
2932 |
-
"færdiggøre din ordre."
|
2933 |
-
|
2934 |
-
#: pages/checkout.php:33 pages/checkout.php:34
|
2935 |
-
msgid "change"
|
2936 |
-
msgstr "ændre"
|
2937 |
-
|
2938 |
-
#: pages/checkout.php:41 pages/checkout.php:42
|
2939 |
-
#, php-format
|
2940 |
-
msgid "You have selected the <strong>%s</strong> membership level."
|
2941 |
-
msgstr "Du har valgt <strong>%s</strong> medlemsskab niveau."
|
2942 |
-
|
2943 |
-
#: pages/checkout.php:51
|
2944 |
-
#, php-format
|
2945 |
-
msgid ""
|
2946 |
-
"<p class=\"pmpro_level_discount_applied\">The <strong>%s</strong> code has "
|
2947 |
-
"been applied to your order.</p>"
|
2948 |
-
msgstr ""
|
2949 |
-
"<p class=\"pmpro_level_discount_applied\">Denne <strong>%s</strong> kode er "
|
2950 |
-
"bleven tilføjet til din ordre.</p>"
|
2951 |
-
|
2952 |
-
#: pages/checkout.php:62 services/applydiscountcode.php:78
|
2953 |
-
#: pages/checkout.php:63 services/applydiscountcode.php:74
|
2954 |
-
#: services/applydiscountcode.php:75
|
2955 |
-
msgid "Click here to change your discount code"
|
2956 |
-
msgstr "Klik her for at ændre din rabat kode"
|
2957 |
-
|
2958 |
-
#: pages/checkout.php:64 pages/checkout.php:65
|
2959 |
-
msgid "Click here to enter your discount code"
|
2960 |
-
msgstr "Klik her, for at indtaste din rabat kode"
|
2961 |
-
|
2962 |
-
#: pages/checkout.php:64 pages/checkout.php:65
|
2963 |
-
msgid "Do you have a discount code?"
|
2964 |
-
msgstr "Har du en rabat kode?"
|
2965 |
-
|
2966 |
-
#: pages/checkout.php:78 pages/checkout.php:551 pages/checkout.php:79
|
2967 |
-
#: pages/checkout.php:568 pages/checkout.php:575
|
2968 |
-
msgid "Apply"
|
2969 |
-
msgstr "Anvend"
|
2970 |
-
|
2971 |
-
#: pages/checkout.php:163 pages/checkout.php:160
|
2972 |
-
msgid "Account Information"
|
2973 |
-
msgstr "Konto Informationer"
|
2974 |
-
|
2975 |
-
#: pages/checkout.php:163 pages/checkout.php:160
|
2976 |
-
msgid "Already have an account?"
|
2977 |
-
msgstr "Har du allerede en konto?"
|
2978 |
-
|
2979 |
-
#: pages/checkout.php:163 pages/checkout.php:160
|
2980 |
-
msgid "Log in here"
|
2981 |
-
msgstr "Log ind her"
|
2982 |
-
|
2983 |
-
#: pages/checkout.php:189 pages/checkout.php:186
|
2984 |
-
msgid "Confirm Password"
|
2985 |
-
msgstr "Bekræft Adgangskode"
|
2986 |
-
|
2987 |
-
#: pages/checkout.php:216 pages/checkout.php:213
|
2988 |
-
msgid "Confirm E-mail Address"
|
2989 |
-
msgstr "Bekræft E-mail Adresse"
|
2990 |
-
|
2991 |
-
#: pages/checkout.php:235 pages/checkout.php:232
|
2992 |
-
msgid "Full Name"
|
2993 |
-
msgstr "Fulde Navn"
|
2994 |
-
|
2995 |
-
#: pages/checkout.php:236 pages/checkout.php:233
|
2996 |
-
msgid "LEAVE THIS BLANK"
|
2997 |
-
msgstr "LAD DETTE STÅ BLANK"
|
2998 |
-
|
2999 |
-
#: pages/checkout.php:260 pages/checkout.php:257
|
3000 |
-
#, php-format
|
3001 |
-
msgid ""
|
3002 |
-
"You are logged in as <strong>%s</strong>. If you would like to use a "
|
3003 |
-
"different account for this membership, <a href=\"%s\">log out now</a>."
|
3004 |
-
msgstr ""
|
3005 |
-
"Du er logget ind som <strong>%s</strong>. Hvis du gerne ville bruge en anden "
|
3006 |
-
"konto til dette medlemsskab, <a href=\"%s\">log ud nu</a>."
|
3007 |
-
|
3008 |
-
#: pages/checkout.php:276 pages/checkout.php:292 pages/checkout.php:299
|
3009 |
-
msgid "Choose your Payment Method"
|
3010 |
-
msgstr "Vælg din Betalings Metode"
|
3011 |
-
|
3012 |
-
#: pages/checkout.php:284 pages/checkout.php:300 pages/checkout.php:307
|
3013 |
-
msgid "Check Out with a Credit Card Here"
|
3014 |
-
msgstr "Gå til Kassen med Kreditkort her"
|
3015 |
-
|
3016 |
-
#: pages/checkout.php:286 pages/checkout.php:685 pages/checkout.php:302
|
3017 |
-
#: pages/checkout.php:309 pages/checkout.php:675 pages/checkout.php:682
|
3018 |
-
msgid "Check Out with PayPal"
|
3019 |
-
msgstr "Gå til Kassen med PayPal"
|
3020 |
-
|
3021 |
-
#: pages/checkout.php:476 pages/checkout.php:493 pages/checkout.php:500
|
3022 |
-
msgid "Payment Information"
|
3023 |
-
msgstr "Betalings Information"
|
3024 |
-
|
3025 |
-
#: pages/checkout.php:476 pages/checkout.php:493 pages/checkout.php:500
|
3026 |
-
#, php-format
|
3027 |
-
msgid "We Accept %s"
|
3028 |
-
msgstr "Vi Acceptere %s"
|
3029 |
-
|
3030 |
-
#: pages/checkout.php:657 pages/checkout.php:277 pages/checkout.php:284
|
3031 |
-
#, php-format
|
3032 |
-
msgid "I agree to the %s"
|
3033 |
-
msgstr "Jeg Accepptere til %s"
|
3034 |
-
|
3035 |
-
#: pages/checkout.php:677 pages/checkout.php:667 pages/checkout.php:674
|
3036 |
-
msgid "Complete Payment"
|
3037 |
-
msgstr "færdiggør Betaling"
|
3038 |
-
|
3039 |
-
#: pages/checkout.php:691 pages/checkout.php:681 pages/checkout.php:688
|
3040 |
-
msgid "Submit and Check Out"
|
3041 |
-
msgstr "Anvend og Gå til Kassen"
|
3042 |
-
|
3043 |
-
#: pages/checkout.php:691 pages/checkout.php:681 pages/checkout.php:688
|
3044 |
-
msgid "Submit and Confirm"
|
3045 |
-
msgstr "Anvend og Bekræft"
|
3046 |
-
|
3047 |
-
#: pages/checkout.php:691 pages/checkout.php:688
|
3048 |
-
msgid "Submit and Pay with 2CheckOut"
|
3049 |
-
msgstr "Anvend og Betal med 2CheckOut"
|
3050 |
-
|
3051 |
-
#: pages/checkout.php:697 pages/checkout.php:687 pages/checkout.php:694
|
3052 |
-
msgid "Processing..."
|
3053 |
-
msgstr "Bearbejder..."
|
3054 |
-
|
3055 |
-
#: pages/confirmation.php:12
|
3056 |
-
msgid ""
|
3057 |
-
"Your payment has been submitted. Your membership will be activated shortly."
|
3058 |
-
msgstr ""
|
3059 |
-
"Din betaling er bleven tilføjet. Dit medlemsskab ville blive aktiveret inden "
|
3060 |
-
"for kort tid."
|
3061 |
-
|
3062 |
-
#: pages/confirmation.php:14
|
3063 |
-
#, php-format
|
3064 |
-
msgid "Thank you for your membership to %s. Your %s membership is now active."
|
3065 |
-
msgstr ""
|
3066 |
-
"Vi takker dig, for dir medlemsskab hos %s. Dit %s medlemsskab er nu aktiv."
|
3067 |
-
|
3068 |
-
#: pages/confirmation.php:28
|
3069 |
-
#, php-format
|
3070 |
-
msgid ""
|
3071 |
-
"Below are details about your membership account and a receipt for your "
|
3072 |
-
"initial membership invoice. A welcome email with a copy of your initial "
|
3073 |
-
"membership invoice has been sent to %s."
|
3074 |
-
msgstr ""
|
3075 |
-
"Nedenfor er der detaljer omkring dit medlemsskabs konto, og en faktura "
|
3076 |
-
"omkring medlemsskabet. En velkomst email, med en kopi af din faktura er "
|
3077 |
-
"blevet sendt til %s."
|
3078 |
-
|
3079 |
-
#: pages/confirmation.php:41 pages/invoice.php:22
|
3080 |
-
#, php-format
|
3081 |
-
msgid "Invoice #%s on %s"
|
3082 |
-
msgstr "Faktura #%s hos %s"
|
3083 |
-
|
3084 |
-
#: pages/confirmation.php:43
|
3085 |
-
msgid "Print"
|
3086 |
-
msgstr "Print"
|
3087 |
-
|
3088 |
-
#: pages/confirmation.php:46 pages/confirmation.php:104 pages/invoice.php:27
|
3089 |
-
#: pages/confirmation.php:45 pages/confirmation.php:102 pages/invoice.php:26
|
3090 |
-
msgid "Account"
|
3091 |
-
msgstr "Konto"
|
3092 |
-
|
3093 |
-
#: pages/confirmation.php:65 pages/invoice.php:52 pages/invoice.php:109
|
3094 |
-
#: pages/confirmation.php:63 pages/invoice.php:50 pages/invoice.php:107
|
3095 |
-
msgid "Total Billed"
|
3096 |
-
msgstr "Regning total"
|
3097 |
-
|
3098 |
-
#: pages/confirmation.php:82 pages/invoice.php:69 pages/confirmation.php:80
|
3099 |
-
#: pages/invoice.php:67
|
3100 |
-
msgid "ending in"
|
3101 |
-
msgstr "ender om"
|
3102 |
-
|
3103 |
-
#: pages/confirmation.php:97 pages/confirmation.php:95
|
3104 |
-
#, php-format
|
3105 |
-
msgid ""
|
3106 |
-
"Below are details about your membership account. A welcome email with has "
|
3107 |
-
"been sent to %s."
|
3108 |
-
msgstr ""
|
3109 |
-
"Nedenfor er detajlerne omkring dit medlemsskab. En velkomst mail er bleven "
|
3110 |
-
"sendt til %s."
|
3111 |
-
|
3112 |
-
#: pages/confirmation.php:105 pages/confirmation.php:103
|
3113 |
-
msgid "Pending"
|
3114 |
-
msgstr "Afventer"
|
3115 |
-
|
3116 |
-
#: pages/confirmation.php:113 pages/invoice.php:141 pages/confirmation.php:111
|
3117 |
-
#: pages/invoice.php:139
|
3118 |
-
msgid "View Your Membership Account →"
|
3119 |
-
msgstr "Se Din Medlemsskabs Konto →"
|
3120 |
-
|
3121 |
-
#: pages/confirmation.php:115 pages/confirmation.php:113
|
3122 |
-
msgid ""
|
3123 |
-
"If your account is not activated within a few minutes, please contact the "
|
3124 |
-
"site owner."
|
3125 |
-
msgstr ""
|
3126 |
-
"Hvis din konto ikke er aktiveret inden for få minuter, kontakt venligst site "
|
3127 |
-
"admin."
|
3128 |
-
|
3129 |
-
#: pages/invoice.php:79 pages/invoice.php:77
|
3130 |
-
msgid "Subtotal"
|
3131 |
-
msgstr "Subtotal"
|
3132 |
-
|
3133 |
-
#: pages/invoice.php:82 pages/invoice.php:80
|
3134 |
-
msgid "Coupon"
|
3135 |
-
msgstr "Kupon"
|
3136 |
-
|
3137 |
-
#: pages/invoice.php:108 pages/invoice.php:106
|
3138 |
-
msgid "Invoice #"
|
3139 |
-
msgstr "Faktura #"
|
3140 |
-
|
3141 |
-
#: pages/invoice.php:122 pages/invoice.php:120
|
3142 |
-
msgid "View Invoice"
|
3143 |
-
msgstr "Se Faktura"
|
3144 |
-
|
3145 |
-
#: pages/invoice.php:134 pages/invoice.php:132
|
3146 |
-
msgid "No invoices found."
|
3147 |
-
msgstr "Ingen Faktura Fundet,"
|
3148 |
-
|
3149 |
-
#: pages/invoice.php:145 pages/invoice.php:143
|
3150 |
-
msgid "← View All Invoices"
|
3151 |
-
msgstr "← Se Alle Fakturaer"
|
3152 |
-
|
3153 |
-
#: pages/levels.php:14
|
3154 |
-
msgid "Price"
|
3155 |
-
msgstr "Pris"
|
3156 |
-
|
3157 |
-
#: pages/levels.php:47 pages/levels.php:49 pages/levels.php:113
|
3158 |
-
#: pages/levels.php:115
|
3159 |
-
msgid "Select"
|
3160 |
-
msgstr "Vælg"
|
3161 |
-
|
3162 |
-
#: pages/levels.php:57 pages/levels.php:123
|
3163 |
-
msgid "Renew"
|
3164 |
-
msgstr "Forny"
|
3165 |
-
|
3166 |
-
#: pages/levels.php:63 pages/levels.php:117 pages/levels.php:129
|
3167 |
-
msgid "Your Level"
|
3168 |
-
msgstr "Din Niveau"
|
3169 |
-
|
3170 |
-
#: pages/levels.php:79 pages/levels.php:129 pages/levels.php:145
|
3171 |
-
msgid "← Return to Your Account"
|
3172 |
-
msgstr "← Tilbage til Din Konto"
|
3173 |
-
|
3174 |
-
#: pages/levels.php:81 pages/levels.php:131 pages/levels.php:147
|
3175 |
-
msgid "← Return to Home"
|
3176 |
-
msgstr "← Tilbage til Hjem"
|
3177 |
-
|
3178 |
-
#: preheaders/account.php:7 preheaders/levels.php:19
|
3179 |
-
msgid "Your membership status has been updated - Thank you!"
|
3180 |
-
msgstr "Dit medlemsskabs status er bleven opdateret. Mange tak!"
|
3181 |
-
|
3182 |
-
#: preheaders/account.php:11 preheaders/levels.php:23
|
3183 |
-
msgid ""
|
3184 |
-
"Sorry, your request could not be completed - please try again in a few "
|
3185 |
-
"moments."
|
3186 |
-
msgstr ""
|
3187 |
-
"Beklager, din anmodning kunne ikke blive færdiggjort - venligst prøv igen om "
|
3188 |
-
"et øjeblik."
|
3189 |
-
|
3190 |
-
#: preheaders/billing.php:279 preheaders/checkout.php:482
|
3191 |
-
#: preheaders/billing.php:258 preheaders/checkout.php:464
|
3192 |
-
#: preheaders/checkout.php:481
|
3193 |
-
msgid "Please complete all required fields."
|
3194 |
-
msgstr "Venligst færdiggøre alle påkrævet felter."
|
3195 |
-
|
3196 |
-
#: preheaders/billing.php:284 preheaders/checkout.php:492
|
3197 |
-
#: preheaders/billing.php:263 preheaders/checkout.php:474
|
3198 |
-
#: preheaders/checkout.php:491
|
3199 |
-
msgid "Your email addresses do not match. Please try again."
|
3200 |
-
msgstr "Din email addresser passer ikke sammen. Prøv igen"
|
3201 |
-
|
3202 |
-
#: preheaders/billing.php:289 preheaders/checkout.php:498
|
3203 |
-
#: preheaders/billing.php:268 preheaders/checkout.php:480
|
3204 |
-
#: preheaders/checkout.php:497
|
3205 |
-
msgid "The email address entered is in an invalid format. Please try again."
|
3206 |
-
msgstr "Den indtastet email adresse er en ugyldig format. Prøv igen."
|
3207 |
-
|
3208 |
-
#: preheaders/billing.php:295 preheaders/billing.php:274
|
3209 |
-
msgid "All good!"
|
3210 |
-
msgstr "Alt er Fint!"
|
3211 |
-
|
3212 |
-
#: preheaders/billing.php:370 preheaders/billing.php:340
|
3213 |
-
#, php-format
|
3214 |
-
msgid "Information updated. <a href=\"%s\">« back to my account</a>"
|
3215 |
-
msgstr ""
|
3216 |
-
"Informationer er opdateret. <a href=\"%s\">« tilbage til min konto</a>"
|
3217 |
-
|
3218 |
-
#: preheaders/billing.php:378 preheaders/billing.php:347
|
3219 |
-
#: preheaders/billing.php:380
|
3220 |
-
msgid "Error updating billing information."
|
3221 |
-
msgstr "Fejl I opdatering af betalings informationer."
|
3222 |
-
|
3223 |
-
#: preheaders/cancel.php:24
|
3224 |
-
msgid "Your membership has been cancelled."
|
3225 |
-
msgstr "Dit medlemsskab er blevet annulleret."
|
3226 |
-
|
3227 |
-
#: preheaders/checkout.php:28 preheaders/checkout.php:509
|
3228 |
-
#: preheaders/checkout.php:491 preheaders/checkout.php:508
|
3229 |
-
msgid "Invalid gateway."
|
3230 |
-
msgstr "Ugyldig gateway."
|
3231 |
-
|
3232 |
-
#: preheaders/checkout.php:96
|
3233 |
-
msgid "Checkout: Payment Information"
|
3234 |
-
msgstr "Gå til Kassen: Betalings Informationer"
|
3235 |
-
|
3236 |
-
#: preheaders/checkout.php:109
|
3237 |
-
msgid "Setup Your Account"
|
3238 |
-
msgstr "Sæt op din Konto"
|
3239 |
-
|
3240 |
-
#: preheaders/checkout.php:486 preheaders/checkout.php:468
|
3241 |
-
#: preheaders/checkout.php:485
|
3242 |
-
msgid "Your passwords do not match. Please try again."
|
3243 |
-
msgstr "Dine adgangskoder passer ikke sammen. Prv igen."
|
3244 |
-
|
3245 |
-
#: preheaders/checkout.php:504 preheaders/checkout.php:486
|
3246 |
-
#: preheaders/checkout.php:503
|
3247 |
-
#, php-format
|
3248 |
-
msgid "Please check the box to agree to the %s."
|
3249 |
-
msgstr "Klik på boksen, for at acceptere til %s. "
|
3250 |
-
|
3251 |
-
#: preheaders/checkout.php:513 preheaders/checkout.php:495
|
3252 |
-
#: preheaders/checkout.php:512
|
3253 |
-
msgid "Are you a spammer?"
|
3254 |
-
msgstr "Er du en spammer?"
|
3255 |
-
|
3256 |
-
#: preheaders/checkout.php:536 preheaders/checkout.php:518
|
3257 |
-
#: preheaders/checkout.php:535
|
3258 |
-
msgid "That username is already taken. Please try another."
|
3259 |
-
msgstr "Dette brugernavn er allerede i brug. Prøv et andet."
|
3260 |
-
|
3261 |
-
#: preheaders/checkout.php:542 preheaders/checkout.php:524
|
3262 |
-
#: preheaders/checkout.php:541
|
3263 |
-
msgid "That email address is already taken. Please try another."
|
3264 |
-
msgstr "Denne email adresse er allerede i brug. Prøv et andet."
|
3265 |
-
|
3266 |
-
#: preheaders/checkout.php:562 preheaders/checkout.php:544
|
3267 |
-
#: preheaders/checkout.php:561
|
3268 |
-
#, php-format
|
3269 |
-
msgid "reCAPTCHA failed. (%s) Please try again."
|
3270 |
-
msgstr "reCAPTCHA fejlet. (%s) Prøv igen."
|
3271 |
-
|
3272 |
-
#: preheaders/checkout.php:702 preheaders/checkout.php:683
|
3273 |
-
#: preheaders/checkout.php:701
|
3274 |
-
msgid "Payment accepted."
|
3275 |
-
msgstr "Betaling accepteret."
|
3276 |
-
|
3277 |
-
#: preheaders/checkout.php:710 preheaders/checkout.php:691
|
3278 |
-
#: preheaders/checkout.php:709
|
3279 |
-
msgid ""
|
3280 |
-
"Unknown error generating account. Please contact us to setup your membership."
|
3281 |
-
msgstr ""
|
3282 |
-
"Ukendt fejl med at generer konto. Kontakt os, med at sætte dit medlemsskab "
|
3283 |
-
"op."
|
3284 |
-
|
3285 |
-
#: preheaders/checkout.php:754 preheaders/checkout.php:823
|
3286 |
-
#: preheaders/checkout.php:735 preheaders/checkout.php:753
|
3287 |
-
#: preheaders/checkout.php:803 preheaders/checkout.php:822
|
3288 |
-
msgid "The PayPal Token was lost."
|
3289 |
-
msgstr "PayPal Polet er væk."
|
3290 |
-
|
3291 |
-
#: preheaders/checkout.php:860 preheaders/checkout.php:825
|
3292 |
-
#: preheaders/checkout.php:844 preheaders/checkout.php:859
|
3293 |
-
msgid ""
|
3294 |
-
"Your payment was accepted, but there was an error setting up your account. "
|
3295 |
-
"Please contact us."
|
3296 |
-
msgstr ""
|
3297 |
-
"Din betaling er accepteret. Men der opstod en fejl, med at sætte din konto "
|
3298 |
-
"op. Venligst kontakt os."
|
3299 |
-
|
3300 |
-
#: preheaders/checkout.php:1046 preheaders/checkout.php:983
|
3301 |
-
#: preheaders/checkout.php:1030 preheaders/checkout.php:1045
|
3302 |
-
msgid ""
|
3303 |
-
"IMPORTANT: Something went wrong during membership creation. Your credit card "
|
3304 |
-
"authorized, but we cancelled the order immediately. You should not try to "
|
3305 |
-
"submit this form again. Please contact the site owner to fix this issue."
|
3306 |
-
msgstr ""
|
3307 |
-
"VIGTIGT: Noget gik galt, under oprettelse af medlemsskab. Dit kreditkort "
|
3308 |
-
"blive godkendt, men vi annullerede ordren med det samme. Du skal ikke "
|
3309 |
-
"anvende formularen igen. Istedet kontakt vores site admin, for at problemet "
|
3310 |
-
"kan blive fikset."
|
3311 |
-
|
3312 |
-
#: preheaders/checkout.php:1051 preheaders/checkout.php:988
|
3313 |
-
#: preheaders/checkout.php:1035 preheaders/checkout.php:1050
|
3314 |
-
msgid ""
|
3315 |
-
"IMPORTANT: Something went wrong during membership creation. Your credit card "
|
3316 |
-
"was charged, but we couldn't assign your membership. You should not submit "
|
3317 |
-
"this form again. Please contact the site owner to fix this issue."
|
3318 |
-
msgstr ""
|
3319 |
-
"VIGTIGT: Noget gik galt, under oprettelsen af medlemsskab. Der blev trukket "
|
3320 |
-
"penge fra dit kreditkort, men vi kunne ikke tildele dig dit medlemsskab. Du "
|
3321 |
-
"skal ikke anvende formularen igen. Kontakt venligst site admin, for at få "
|
3322 |
-
"fikset problemet."
|
3323 |
-
|
3324 |
-
#: preheaders/checkout.php:1064 preheaders/checkout.php:1001
|
3325 |
-
#: preheaders/checkout.php:1048 preheaders/checkout.php:1063
|
3326 |
-
#, php-format
|
3327 |
-
msgid ""
|
3328 |
-
"You must <a href=\"%s\">setup a Payment Gateway</a> before any payments will "
|
3329 |
-
"be processed."
|
3330 |
-
msgstr ""
|
3331 |
-
"Du er nødtil at sætte <a href=\"%s\">en Betalings Gateway</a> før nogen "
|
3332 |
-
"betaliger kan blive behandlet."
|
3333 |
-
|
3334 |
-
#: preheaders/checkout.php:1066 preheaders/checkout.php:1003
|
3335 |
-
#: preheaders/checkout.php:1050 preheaders/checkout.php:1065
|
3336 |
-
msgid "A Payment Gateway must be setup before any payments will be processed."
|
3337 |
-
msgstr ""
|
3338 |
-
"En Betaling Gateway må sættes op, før betalinger ville blive behandlet."
|
3339 |
-
|
3340 |
-
#: scheduled/crons.php:31 scheduled/crons.php:61
|
3341 |
-
#, php-format
|
3342 |
-
msgid "Membership expired email sent to %s. "
|
3343 |
-
msgstr "Medlemsskab udløbet email sendt til %s."
|
3344 |
-
|
3345 |
-
#: scheduled/crons.php:74 scheduled/crons.php:27
|
3346 |
-
#, php-format
|
3347 |
-
msgid "Membership expiring email sent to %s. "
|
3348 |
-
msgstr "Medlemsskab udløbnings mail sendt til %s."
|
3349 |
-
|
3350 |
-
#: scheduled/crons.php:143
|
3351 |
-
#, php-format
|
3352 |
-
msgid "Credit card expiring email sent to %s. "
|
3353 |
-
msgstr "Kreditkort udløber email er sendt til %s."
|
3354 |
-
|
3355 |
-
#: scheduled/crons.php:196 scheduled/crons.php:104
|
3356 |
-
#, php-format
|
3357 |
-
msgid "Trial ending email sent to %s. "
|
3358 |
-
msgstr "Prøveperiode slutter email sendt til %s."
|
3359 |
-
|
3360 |
-
#: services/applydiscountcode.php:67 services/applydiscountcode.php:64
|
3361 |
-
#, php-format
|
3362 |
-
msgid "The %s code has been applied to your order. "
|
3363 |
-
msgstr "Denne %s kode er blevet tilføjet til din ordre."
|
3364 |
-
|
3365 |
-
#: services/applydiscountcode.php:86 services/applydiscountcode.php:82
|
3366 |
-
#: services/applydiscountcode.php:83
|
3367 |
-
#, php-format
|
3368 |
-
msgid "The <strong>%s</strong> code has been applied to your order."
|
3369 |
-
msgstr "Denne <strong>%s</strong> kode er blevet tilføjet til din ordre."
|
3370 |
-
|
3371 |
-
#: services/authnet-silent-post.php:138 services/authnet-silent-post.php:133
|
3372 |
-
msgid ""
|
3373 |
-
"<p>A payment is being held for review within Authorize.net.</p><p>Payment "
|
3374 |
-
"Information From Authorize.net"
|
3375 |
-
msgstr ""
|
3376 |
-
"<p>En betaling holdes tilbage for undersøgelse hos Authorize.net.</"
|
3377 |
-
"p><p>Betalings information fra Authorize.net"
|
3378 |
-
|
3379 |
-
#: services/stripe-webhook.php:194 services/stripe-webhook.php:176
|
3380 |
-
#, php-format
|
3381 |
-
msgid ""
|
3382 |
-
"%s has had their payment subscription cancelled by Stripe. Please check that "
|
3383 |
-
"this user's membership is cancelled on your site if it should be."
|
3384 |
-
msgstr ""
|
3385 |
-
"%s har fået deres abonnement annulleret af Stripe. Venlig kontrollere, at "
|
3386 |
-
"brugerens medlemsskab er annulleret på din side, hvis det skulle ønskes. "
|
3387 |
-
|
3388 |
-
#: adminpages/discountcodes.php:437
|
3389 |
-
msgid "Billing Ammount"
|
3390 |
-
msgstr "Betalings Beløb"
|
3391 |
-
|
3392 |
-
#: adminpages/discountcodes.php:480
|
3393 |
-
msgid "Check this to set an expiration date for new sign ups."
|
3394 |
-
msgstr "Klik her, for at sætte en udløbsdato for nye regestreringer."
|
3395 |
-
|
3396 |
-
#: adminpages/discountcodes.php:497
|
3397 |
-
msgid ""
|
3398 |
-
"How long before the expiration expires. Note that any future payments will "
|
3399 |
-
"be cancelled when the membership expires."
|
3400 |
-
msgstr ""
|
3401 |
-
"Hvor lang tid der går, før medlemsskab udløber. Husk at fremtidige betaling "
|
3402 |
-
"ville blive annulleret, når medlemskabet udløber. "
|
3403 |
-
|
3404 |
-
#: adminpages/membershiplevels.php:364
|
3405 |
-
msgid ""
|
3406 |
-
"Stripe integration currently only supports billing periods of \"Month\" or "
|
3407 |
-
"\"Year\"."
|
3408 |
-
msgstr ""
|
3409 |
-
"Integration med Stripe understøtter kun betalings perioder af \"Måneder\" "
|
3410 |
-
"eller \"År\"."
|
3411 |
-
|
3412 |
-
#: adminpages/membershiplevels.php:398
|
3413 |
-
msgid ""
|
3414 |
-
"2Checkout integration does not currently support custom trials. You can do "
|
3415 |
-
"one period trials by setting an initial payment different from the billing "
|
3416 |
-
"amount."
|
3417 |
-
msgstr ""
|
3418 |
-
"Integration til 2Checkout understøtter ikke brugerdefineret prøve periode. "
|
3419 |
-
"Du kan lave en prøve periode op, ved at sætte en betaling op, som er "
|
3420 |
-
"anderledes fra det oprindelige beløb."
|
3421 |
-
|
3422 |
-
#: adminpages/memberslist.php:184 adminpages/memberslist.php:212
|
3423 |
-
msgid "Never"
|
3424 |
-
msgstr "Aldrig"
|
3425 |
-
|
3426 |
-
#: adminpages/paymentsettings.php:170
|
3427 |
-
msgid ""
|
3428 |
-
"Payflow Pro currently only supports one-time payments. Users will not be "
|
3429 |
-
"able to checkout for levels with recurring payments."
|
3430 |
-
msgstr ""
|
3431 |
-
"Payflow Pro understøtter kun engangs betalinger. Brugere ville ikke have "
|
3432 |
-
"mulighed for at bruge Gå til kassen, med genoptagene betalinger."
|
3433 |
-
|
3434 |
-
#: adminpages/paymentsettings.php:405 adminpages/paymentsettings.php:445
|
3435 |
-
msgid ""
|
3436 |
-
"If values are given, tax will be applied for any members ordering from the "
|
3437 |
-
"selected state. For more complex tax rules, use the \"pmpro_tax\" filter."
|
3438 |
-
msgstr ""
|
3439 |
-
"Hvis værdier er given, skat ville blive tilføjet til hvilken som helst "
|
3440 |
-
"medlem, fra den valgte Stat. For mere komplekse skatte regler, brug "
|
3441 |
-
"\"pmpro_tax\" filter."
|
3442 |
-
|
3443 |
-
#: adminpages/paymentsettings.php:410 adminpages/paymentsettings.php:421
|
3444 |
-
msgid "Use SSL"
|
3445 |
-
msgstr "Brug SSL"
|
3446 |
-
|
3447 |
-
#: adminpages/paymentsettings.php:425
|
3448 |
-
msgid "Required by this Gateway Option"
|
3449 |
-
msgstr "Påkrævet af denne Gateway Indstilling"
|
3450 |
-
|
3451 |
-
#: adminpages/paymentsettings.php:432
|
3452 |
-
msgid ""
|
3453 |
-
"Stripe doesn't require billing address fields. Choose 'No' to hide them on "
|
3454 |
-
"the checkout page."
|
3455 |
-
msgstr ""
|
3456 |
-
"Stripe behøver ikke nogen faktura adresse felter. Vælg 'Nej' for at gemme "
|
3457 |
-
"dem på Gå til Kassen side."
|
3458 |
-
|
3459 |
-
#: classes/class.pmproemail.php:685 classes/class.pmproemail.php:734
|
3460 |
-
#: classes/class.pmproemail.php:799
|
3461 |
-
msgid "membership has been cancelled"
|
3462 |
-
msgstr "medlemsskab er bleven annulleret"
|
3463 |
-
|
3464 |
-
#: pages/checkout.php:51 pages/checkout.php:52
|
3465 |
-
#, php-format
|
3466 |
-
msgid "<p>The <strong>%s</strong> code has been applied to your order.</p>"
|
3467 |
-
msgstr "<p>denne <strong>%s</strong> kode er blevn tilføjet til din ordre.</p>"
|
3468 |
-
|
3469 |
-
#: pages/confirmation.php:12
|
3470 |
-
msgid ""
|
3471 |
-
"Your payment has been submitted to PayPal. Your membership will be activated "
|
3472 |
-
"shortly."
|
3473 |
-
msgstr ""
|
3474 |
-
"Din Betaling er bleven tilføjet til PayPal. Dit medlemskab bliver aktiveret "
|
3475 |
-
"inde for kort tid."
|
3476 |
-
|
3477 |
-
#: pages/levels.php:15
|
3478 |
-
msgid "Subscription Information"
|
3479 |
-
msgstr "Abonnoments Information"
|
3480 |
-
|
3481 |
-
#: pages/levels.php:33
|
3482 |
-
msgid "--"
|
3483 |
-
msgstr "--"
|
3484 |
-
|
3485 |
-
#: pages/levels.php:43
|
3486 |
-
msgid "Free"
|
3487 |
-
msgstr "Gratis"
|
3488 |
-
|
3489 |
-
#: pages/levels.php:51
|
3490 |
-
#, php-format
|
3491 |
-
msgid "%s per %s for %d more %s."
|
3492 |
-
msgstr "%s pr %s for %d mere %s."
|
3493 |
-
|
3494 |
-
#: pages/levels.php:55
|
3495 |
-
#, php-format
|
3496 |
-
msgid "%s every %d %s for %d more %s."
|
3497 |
-
msgstr "%s hver %d %s for %d mere %s."
|
3498 |
-
|
3499 |
-
#: pages/levels.php:60
|
3500 |
-
#, php-format
|
3501 |
-
msgid "%s after %d %s."
|
3502 |
-
msgstr "%s efter %d %s."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/pmpro-en_GB.mo
DELETED
Binary file
|
languages/pmpro-en_GB.po
DELETED
@@ -1,2661 +0,0 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Project-Id-Version: pmpro\n"
|
4 |
-
"POT-Creation-Date: 2014-01-31 10:16+0100\n"
|
5 |
-
"PO-Revision-Date: 2014-01-31 10:20+0100\n"
|
6 |
-
"Last-Translator: \n"
|
7 |
-
"Language-Team: Stranger Studios <jason@strangerstudios.com>\n"
|
8 |
-
"MIME-Version: 1.0\n"
|
9 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
-
"Content-Transfer-Encoding: 8bit\n"
|
11 |
-
"X-Generator: Poedit 1.5.4\n"
|
12 |
-
"X-Poedit-KeywordsList: __;_;_e;_ex;_x;_n\n"
|
13 |
-
"X-Poedit-Basepath: ../\n"
|
14 |
-
"X-Poedit-SearchPath-0: includes\n"
|
15 |
-
"X-Poedit-SearchPath-1: .\n"
|
16 |
-
"X-Poedit-SearchPath-2: classes\n"
|
17 |
-
"X-Poedit-SearchPath-3: preheaders\n"
|
18 |
-
"X-Poedit-SearchPath-4: pages\n"
|
19 |
-
"X-Poedit-SearchPath-5: adminpages\n"
|
20 |
-
"X-Poedit-SearchPath-6: classes/gateways\n"
|
21 |
-
"X-Poedit-SearchPath-7: services\n"
|
22 |
-
"X-Poedit-SearchPath-8: shortcodes\n"
|
23 |
-
"X-Poedit-SearchPath-9: scheduled\n"
|
24 |
-
|
25 |
-
#: includes/localization.php:23
|
26 |
-
msgid "Day"
|
27 |
-
msgstr ""
|
28 |
-
|
29 |
-
#: includes/localization.php:25
|
30 |
-
msgid "Week"
|
31 |
-
msgstr ""
|
32 |
-
|
33 |
-
#: includes/localization.php:27
|
34 |
-
msgid "Month"
|
35 |
-
msgstr ""
|
36 |
-
|
37 |
-
#: includes/localization.php:29
|
38 |
-
msgid "Year"
|
39 |
-
msgstr ""
|
40 |
-
|
41 |
-
#: includes/currencies.php:7 includes/currencies.php:44
|
42 |
-
msgid "US Dollars ($)"
|
43 |
-
msgstr ""
|
44 |
-
|
45 |
-
#: includes/currencies.php:8 includes/currencies.php:47
|
46 |
-
msgid "Euros (€)"
|
47 |
-
msgstr ""
|
48 |
-
|
49 |
-
#: includes/currencies.php:9 includes/currencies.php:46
|
50 |
-
msgid "Pounds Sterling (£)"
|
51 |
-
msgstr ""
|
52 |
-
|
53 |
-
#: includes/currencies.php:10
|
54 |
-
msgid "Australian Dollars ($)"
|
55 |
-
msgstr ""
|
56 |
-
|
57 |
-
#: includes/currencies.php:11
|
58 |
-
msgid "Brazilian Real ($)"
|
59 |
-
msgstr ""
|
60 |
-
|
61 |
-
#: includes/currencies.php:12 includes/currencies.php:45
|
62 |
-
msgid "Canadian Dollars ($)"
|
63 |
-
msgstr ""
|
64 |
-
|
65 |
-
#: includes/currencies.php:13
|
66 |
-
msgid "Chinese Yuan"
|
67 |
-
msgstr ""
|
68 |
-
|
69 |
-
#: includes/currencies.php:14
|
70 |
-
msgid "Czech Koruna"
|
71 |
-
msgstr ""
|
72 |
-
|
73 |
-
#: includes/currencies.php:15
|
74 |
-
msgid "Danish Krone"
|
75 |
-
msgstr ""
|
76 |
-
|
77 |
-
#: includes/currencies.php:16
|
78 |
-
msgid "Hong Kong Dollar ($)"
|
79 |
-
msgstr ""
|
80 |
-
|
81 |
-
#: includes/currencies.php:17
|
82 |
-
msgid "Hungarian Forint"
|
83 |
-
msgstr ""
|
84 |
-
|
85 |
-
#: includes/currencies.php:18
|
86 |
-
msgid "Indian Rupee"
|
87 |
-
msgstr ""
|
88 |
-
|
89 |
-
#: includes/currencies.php:19
|
90 |
-
msgid "Indonesia Rupiah"
|
91 |
-
msgstr ""
|
92 |
-
|
93 |
-
#: includes/currencies.php:20
|
94 |
-
msgid "Israeli Shekel"
|
95 |
-
msgstr ""
|
96 |
-
|
97 |
-
#: includes/currencies.php:21
|
98 |
-
msgid "Japanese Yen (¥)"
|
99 |
-
msgstr ""
|
100 |
-
|
101 |
-
#: includes/currencies.php:22
|
102 |
-
msgid "Malaysian Ringgits"
|
103 |
-
msgstr ""
|
104 |
-
|
105 |
-
#: includes/currencies.php:23
|
106 |
-
msgid "Mexican Peso ($)"
|
107 |
-
msgstr ""
|
108 |
-
|
109 |
-
#: includes/currencies.php:24
|
110 |
-
msgid "New Zealand Dollar ($)"
|
111 |
-
msgstr ""
|
112 |
-
|
113 |
-
#: includes/currencies.php:25
|
114 |
-
msgid "Norwegian Krone"
|
115 |
-
msgstr ""
|
116 |
-
|
117 |
-
#: includes/currencies.php:26
|
118 |
-
msgid "Philippine Pesos"
|
119 |
-
msgstr ""
|
120 |
-
|
121 |
-
#: includes/currencies.php:27
|
122 |
-
msgid "Polish Zloty"
|
123 |
-
msgstr ""
|
124 |
-
|
125 |
-
#: includes/currencies.php:28
|
126 |
-
msgid "Singapore Dollar ($)"
|
127 |
-
msgstr ""
|
128 |
-
|
129 |
-
#: includes/currencies.php:29
|
130 |
-
msgid "South African Rand"
|
131 |
-
msgstr ""
|
132 |
-
|
133 |
-
#: includes/currencies.php:30
|
134 |
-
msgid "South Korean Won"
|
135 |
-
msgstr ""
|
136 |
-
|
137 |
-
#: includes/currencies.php:31
|
138 |
-
msgid "Swedish Krona"
|
139 |
-
msgstr ""
|
140 |
-
|
141 |
-
#: includes/currencies.php:32
|
142 |
-
msgid "Swiss Franc"
|
143 |
-
msgstr ""
|
144 |
-
|
145 |
-
#: includes/currencies.php:33
|
146 |
-
msgid "Taiwan New Dollars"
|
147 |
-
msgstr ""
|
148 |
-
|
149 |
-
#: includes/currencies.php:34
|
150 |
-
msgid "Thai Baht"
|
151 |
-
msgstr ""
|
152 |
-
|
153 |
-
#: includes/currencies.php:35
|
154 |
-
msgid "Turkish Lira"
|
155 |
-
msgstr ""
|
156 |
-
|
157 |
-
#: includes/currencies.php:36
|
158 |
-
msgid "Vietnamese Dong"
|
159 |
-
msgstr ""
|
160 |
-
|
161 |
-
#: includes/metaboxes.php:38
|
162 |
-
msgid ""
|
163 |
-
"This post is already protected for this level because it is within a "
|
164 |
-
"category that requires membership."
|
165 |
-
msgstr ""
|
166 |
-
|
167 |
-
#: includes/metaboxes.php:99 includes/metaboxes.php:100
|
168 |
-
msgid "Require Membership"
|
169 |
-
msgstr ""
|
170 |
-
|
171 |
-
#: includes/adminpages.php:9 includes/adminpages.php:39
|
172 |
-
msgid "Memberships"
|
173 |
-
msgstr ""
|
174 |
-
|
175 |
-
#: includes/adminpages.php:10 includes/adminpages.php:49
|
176 |
-
msgid "Page Settings"
|
177 |
-
msgstr ""
|
178 |
-
|
179 |
-
#: includes/adminpages.php:11 includes/adminpages.php:54
|
180 |
-
msgid "Payment Settings"
|
181 |
-
msgstr ""
|
182 |
-
|
183 |
-
#: includes/adminpages.php:12 includes/adminpages.php:59
|
184 |
-
#: adminpages/emailsettings.php:60
|
185 |
-
msgid "Email Settings"
|
186 |
-
msgstr ""
|
187 |
-
|
188 |
-
#: includes/adminpages.php:13 includes/adminpages.php:64
|
189 |
-
#: adminpages/advancedsettings.php:79
|
190 |
-
msgid "Advanced Settings"
|
191 |
-
msgstr ""
|
192 |
-
|
193 |
-
#: includes/adminpages.php:14 includes/adminpages.php:69
|
194 |
-
#: adminpages/admin_header.php:154
|
195 |
-
msgid "Add Ons"
|
196 |
-
msgstr ""
|
197 |
-
|
198 |
-
#: includes/adminpages.php:15 includes/adminpages.php:74
|
199 |
-
#: adminpages/memberslist.php:25
|
200 |
-
msgid "Members List"
|
201 |
-
msgstr ""
|
202 |
-
|
203 |
-
#: includes/adminpages.php:16 includes/adminpages.php:79
|
204 |
-
msgid "Reports"
|
205 |
-
msgstr ""
|
206 |
-
|
207 |
-
#: includes/adminpages.php:17 includes/adminpages.php:84
|
208 |
-
#: adminpages/orders.php:520
|
209 |
-
msgid "Orders"
|
210 |
-
msgstr ""
|
211 |
-
|
212 |
-
#: includes/adminpages.php:18 includes/adminpages.php:89
|
213 |
-
msgid "Discount Codes"
|
214 |
-
msgstr ""
|
215 |
-
|
216 |
-
#: includes/adminpages.php:44 adminpages/membershiplevels.php:496
|
217 |
-
#: adminpages/admin_header.php:149
|
218 |
-
msgid "Membership Levels"
|
219 |
-
msgstr ""
|
220 |
-
|
221 |
-
#: includes/profile.php:27 pages/invoice.php:28 pages/invoice.php:51
|
222 |
-
#: pages/checkout.php:33 pages/confirmation.php:47 pages/confirmation.php:64
|
223 |
-
#: pages/confirmation.php:105 adminpages/orders.php:601
|
224 |
-
msgid "Membership Level"
|
225 |
-
msgstr ""
|
226 |
-
|
227 |
-
#: includes/profile.php:36
|
228 |
-
msgid "Current Level"
|
229 |
-
msgstr ""
|
230 |
-
|
231 |
-
#: includes/profile.php:39
|
232 |
-
msgid "None"
|
233 |
-
msgstr ""
|
234 |
-
|
235 |
-
#: includes/profile.php:84
|
236 |
-
msgid "User is not paying."
|
237 |
-
msgstr ""
|
238 |
-
|
239 |
-
#: includes/profile.php:120 adminpages/memberslist.php:159
|
240 |
-
#: adminpages/discountcodes.php:550 adminpages/reports/login.php:145
|
241 |
-
msgid "Expires"
|
242 |
-
msgstr ""
|
243 |
-
|
244 |
-
#: includes/profile.php:123 adminpages/membershiplevels.php:569
|
245 |
-
#: adminpages/paymentsettings.php:448 adminpages/paymentsettings.php:473
|
246 |
-
#: adminpages/advancedsettings.php:128 adminpages/advancedsettings.php:187
|
247 |
-
#: adminpages/advancedsettings.php:199
|
248 |
-
msgid "No"
|
249 |
-
msgstr ""
|
250 |
-
|
251 |
-
#: includes/profile.php:124 adminpages/membershiplevels.php:569
|
252 |
-
#: adminpages/paymentsettings.php:449 adminpages/paymentsettings.php:474
|
253 |
-
#: adminpages/advancedsettings.php:188
|
254 |
-
msgid "Yes"
|
255 |
-
msgstr ""
|
256 |
-
|
257 |
-
#: includes/functions.php:196
|
258 |
-
#, php-format
|
259 |
-
msgid "The price for membership is <strong>%s</strong> now"
|
260 |
-
msgstr ""
|
261 |
-
|
262 |
-
#: includes/functions.php:205
|
263 |
-
#, php-format
|
264 |
-
msgid " and then <strong>%s per %s for %d more %s</strong>."
|
265 |
-
msgstr ""
|
266 |
-
|
267 |
-
#: includes/functions.php:209
|
268 |
-
#, php-format
|
269 |
-
msgid " and then <strong>%s every %d %s for %d more %s</strong>."
|
270 |
-
msgstr ""
|
271 |
-
|
272 |
-
#: includes/functions.php:214
|
273 |
-
#, php-format
|
274 |
-
msgid " and then <strong>%s after %d %s</strong>."
|
275 |
-
msgstr ""
|
276 |
-
|
277 |
-
#: includes/functions.php:220
|
278 |
-
#, php-format
|
279 |
-
msgid " and then <strong>%s per %s</strong>."
|
280 |
-
msgstr ""
|
281 |
-
|
282 |
-
#: includes/functions.php:224
|
283 |
-
#, php-format
|
284 |
-
msgid " and then <strong>%s every %d %s</strong>."
|
285 |
-
msgstr ""
|
286 |
-
|
287 |
-
#: includes/functions.php:241 pages/levels.php:82
|
288 |
-
msgid "After your initial payment, your first payment is Free."
|
289 |
-
msgstr ""
|
290 |
-
|
291 |
-
#: includes/functions.php:245 pages/levels.php:86
|
292 |
-
#, php-format
|
293 |
-
msgid "After your initial payment, your first %d payments are Free."
|
294 |
-
msgstr ""
|
295 |
-
|
296 |
-
#: includes/functions.php:252 pages/levels.php:93
|
297 |
-
#, php-format
|
298 |
-
msgid "After your initial payment, your first payment will cost %s."
|
299 |
-
msgstr ""
|
300 |
-
|
301 |
-
#: includes/functions.php:256 pages/levels.php:97
|
302 |
-
#, php-format
|
303 |
-
msgid "After your initial payment, your first %d payments will cost %s."
|
304 |
-
msgstr ""
|
305 |
-
|
306 |
-
#: includes/functions.php:267
|
307 |
-
#, php-format
|
308 |
-
msgid "Customers in %s will be charged %s%% tax."
|
309 |
-
msgstr ""
|
310 |
-
|
311 |
-
#: includes/functions.php:281
|
312 |
-
#, php-format
|
313 |
-
msgid "Membership expires after %d %s."
|
314 |
-
msgstr ""
|
315 |
-
|
316 |
-
#: includes/functions.php:517
|
317 |
-
msgid "User ID not found."
|
318 |
-
msgstr ""
|
319 |
-
|
320 |
-
#: includes/functions.php:534
|
321 |
-
msgid "Invalid level."
|
322 |
-
msgstr ""
|
323 |
-
|
324 |
-
#: includes/functions.php:545
|
325 |
-
msgid "not changing?"
|
326 |
-
msgstr ""
|
327 |
-
|
328 |
-
#: includes/functions.php:562 includes/functions.php:609
|
329 |
-
#: includes/functions.php:618
|
330 |
-
msgid "Error interacting with database"
|
331 |
-
msgstr ""
|
332 |
-
|
333 |
-
#: includes/functions.php:659 includes/functions.php:698
|
334 |
-
msgid "Membership level not found."
|
335 |
-
msgstr ""
|
336 |
-
|
337 |
-
#: includes/functions.php:1080
|
338 |
-
msgid "The discount code could not be found."
|
339 |
-
msgstr ""
|
340 |
-
|
341 |
-
#: includes/functions.php:1096
|
342 |
-
#, php-format
|
343 |
-
msgid "This discount code goes into effect on %s."
|
344 |
-
msgstr ""
|
345 |
-
|
346 |
-
#: includes/functions.php:1105
|
347 |
-
#, php-format
|
348 |
-
msgid "This discount code expired on %s."
|
349 |
-
msgstr ""
|
350 |
-
|
351 |
-
#: includes/functions.php:1117
|
352 |
-
msgid "This discount code is no longer valid."
|
353 |
-
msgstr ""
|
354 |
-
|
355 |
-
#: includes/functions.php:1132
|
356 |
-
msgid "This discount code does not apply to this membership level."
|
357 |
-
msgstr ""
|
358 |
-
|
359 |
-
#: includes/functions.php:1140
|
360 |
-
msgid "This discount code is okay."
|
361 |
-
msgstr ""
|
362 |
-
|
363 |
-
#: includes/functions.php:1164
|
364 |
-
msgid "and"
|
365 |
-
msgstr ""
|
366 |
-
|
367 |
-
#: includes/functions.php:1349
|
368 |
-
msgid "Sign Up for !!name!! Now"
|
369 |
-
msgstr ""
|
370 |
-
|
371 |
-
#: includes/functions.php:1355
|
372 |
-
msgid "Please specify a level id."
|
373 |
-
msgstr ""
|
374 |
-
|
375 |
-
#: pages/invoice.php:22 pages/confirmation.php:41
|
376 |
-
#, php-format
|
377 |
-
msgid "Invoice #%s on %s"
|
378 |
-
msgstr ""
|
379 |
-
|
380 |
-
#: pages/invoice.php:27 pages/confirmation.php:46 pages/confirmation.php:104
|
381 |
-
msgid "Account"
|
382 |
-
msgstr ""
|
383 |
-
|
384 |
-
#: pages/invoice.php:30 pages/account.php:29 pages/confirmation.php:49
|
385 |
-
msgid "Membership Expires"
|
386 |
-
msgstr ""
|
387 |
-
|
388 |
-
#: pages/invoice.php:33 pages/checkout.php:66 pages/checkout.php:76
|
389 |
-
#: pages/checkout.php:577 pages/confirmation.php:52
|
390 |
-
#: classes/class.pmproemail.php:228 classes/class.pmproemail.php:237
|
391 |
-
#: classes/class.pmproemail.php:246 classes/class.pmproemail.php:325
|
392 |
-
#: classes/class.pmproemail.php:334 classes/class.pmproemail.php:645
|
393 |
-
msgid "Discount Code"
|
394 |
-
msgstr ""
|
395 |
-
|
396 |
-
#: pages/invoice.php:48 pages/account.php:90 pages/checkout.php:325
|
397 |
-
#: pages/confirmation.php:61 pages/billing.php:58
|
398 |
-
#: adminpages/memberslist.php:150
|
399 |
-
msgid "Billing Address"
|
400 |
-
msgstr ""
|
401 |
-
|
402 |
-
#: pages/invoice.php:50 pages/account.php:105 pages/confirmation.php:63
|
403 |
-
msgid "Payment Method"
|
404 |
-
msgstr ""
|
405 |
-
|
406 |
-
#: pages/invoice.php:52 pages/invoice.php:109 pages/confirmation.php:65
|
407 |
-
msgid "Total Billed"
|
408 |
-
msgstr ""
|
409 |
-
|
410 |
-
#: pages/invoice.php:69 pages/confirmation.php:82
|
411 |
-
msgid "ending in"
|
412 |
-
msgstr ""
|
413 |
-
|
414 |
-
#: pages/invoice.php:70 pages/confirmation.php:83
|
415 |
-
#: adminpages/membershiplevels.php:516
|
416 |
-
msgid "Expiration"
|
417 |
-
msgstr ""
|
418 |
-
|
419 |
-
#: pages/invoice.php:79
|
420 |
-
msgid "Subtotal"
|
421 |
-
msgstr ""
|
422 |
-
|
423 |
-
#: pages/invoice.php:80 adminpages/orders.php:304
|
424 |
-
msgid "Tax"
|
425 |
-
msgstr ""
|
426 |
-
|
427 |
-
#: pages/invoice.php:82
|
428 |
-
msgid "Coupon"
|
429 |
-
msgstr ""
|
430 |
-
|
431 |
-
#: pages/invoice.php:84 adminpages/orders.php:320 adminpages/orders.php:602
|
432 |
-
msgid "Total"
|
433 |
-
msgstr ""
|
434 |
-
|
435 |
-
#: pages/invoice.php:107 adminpages/orders.php:442 adminpages/orders.php:607
|
436 |
-
msgid "Date"
|
437 |
-
msgstr ""
|
438 |
-
|
439 |
-
#: pages/invoice.php:108
|
440 |
-
msgid "Invoice #"
|
441 |
-
msgstr ""
|
442 |
-
|
443 |
-
#: pages/invoice.php:122
|
444 |
-
msgid "View Invoice"
|
445 |
-
msgstr ""
|
446 |
-
|
447 |
-
#: pages/invoice.php:134
|
448 |
-
msgid "No invoices found."
|
449 |
-
msgstr ""
|
450 |
-
|
451 |
-
#: pages/invoice.php:141 pages/confirmation.php:113
|
452 |
-
msgid "View Your Membership Account →"
|
453 |
-
msgstr ""
|
454 |
-
|
455 |
-
#: pages/invoice.php:145
|
456 |
-
msgid "← View All Invoices"
|
457 |
-
msgstr ""
|
458 |
-
|
459 |
-
#: pages/account.php:10
|
460 |
-
msgid "Your membership is <strong>active</strong>."
|
461 |
-
msgstr ""
|
462 |
-
|
463 |
-
#: pages/account.php:12 pages/billing.php:16 pages/levels.php:13
|
464 |
-
msgid "Level"
|
465 |
-
msgstr ""
|
466 |
-
|
467 |
-
#: pages/account.php:14 pages/billing.php:18
|
468 |
-
msgid "Membership Fee"
|
469 |
-
msgstr ""
|
470 |
-
|
471 |
-
#: pages/account.php:25 pages/billing.php:29
|
472 |
-
msgid "Duration"
|
473 |
-
msgstr ""
|
474 |
-
|
475 |
-
#: pages/account.php:34
|
476 |
-
#, php-format
|
477 |
-
msgid "Your first payment will cost %s."
|
478 |
-
msgstr ""
|
479 |
-
|
480 |
-
#: pages/account.php:38
|
481 |
-
#, php-format
|
482 |
-
msgid "Your first %d payments will cost %s."
|
483 |
-
msgstr ""
|
484 |
-
|
485 |
-
#: pages/account.php:46
|
486 |
-
msgid "My Account"
|
487 |
-
msgstr ""
|
488 |
-
|
489 |
-
#: pages/account.php:51 pages/checkout.php:171 adminpages/memberslist.php:145
|
490 |
-
msgid "Username"
|
491 |
-
msgstr ""
|
492 |
-
|
493 |
-
#: pages/account.php:52 adminpages/memberslist.php:148
|
494 |
-
#: adminpages/admin_header.php:152
|
495 |
-
msgid "Email"
|
496 |
-
msgstr ""
|
497 |
-
|
498 |
-
#: pages/account.php:55
|
499 |
-
msgid "Edit Profile"
|
500 |
-
msgstr ""
|
501 |
-
|
502 |
-
#: pages/account.php:56
|
503 |
-
msgid "Change Password"
|
504 |
-
msgstr ""
|
505 |
-
|
506 |
-
#: pages/account.php:87
|
507 |
-
msgid "Billing Information"
|
508 |
-
msgstr ""
|
509 |
-
|
510 |
-
#: pages/account.php:114
|
511 |
-
msgid "Edit Billing Information"
|
512 |
-
msgstr ""
|
513 |
-
|
514 |
-
#: pages/account.php:125
|
515 |
-
msgid "Past Invoices"
|
516 |
-
msgstr ""
|
517 |
-
|
518 |
-
#: pages/account.php:140
|
519 |
-
msgid "View All Invoices"
|
520 |
-
msgstr ""
|
521 |
-
|
522 |
-
#: pages/account.php:146
|
523 |
-
msgid "Member Links"
|
524 |
-
msgstr ""
|
525 |
-
|
526 |
-
#: pages/account.php:152
|
527 |
-
msgid "Update Billing Information"
|
528 |
-
msgstr ""
|
529 |
-
|
530 |
-
#: pages/account.php:155
|
531 |
-
msgid "Change Membership Level"
|
532 |
-
msgstr ""
|
533 |
-
|
534 |
-
#: pages/account.php:157
|
535 |
-
msgid "Cancel Membership"
|
536 |
-
msgstr ""
|
537 |
-
|
538 |
-
#: pages/checkout.php:26
|
539 |
-
msgid ""
|
540 |
-
"Almost done. Review the membership information and pricing below then "
|
541 |
-
"<strong>click the \"Complete Payment\" button</strong> to finish your order."
|
542 |
-
msgstr ""
|
543 |
-
|
544 |
-
#: pages/checkout.php:33
|
545 |
-
msgid "change"
|
546 |
-
msgstr ""
|
547 |
-
|
548 |
-
#: pages/checkout.php:41
|
549 |
-
#, php-format
|
550 |
-
msgid "You have selected the <strong>%s</strong> membership level."
|
551 |
-
msgstr ""
|
552 |
-
|
553 |
-
#: pages/checkout.php:51
|
554 |
-
#, php-format
|
555 |
-
msgid ""
|
556 |
-
"<p class=\"pmpro_level_discount_applied\">The <strong>%s</strong> code has "
|
557 |
-
"been applied to your order.</p>"
|
558 |
-
msgstr ""
|
559 |
-
|
560 |
-
#: pages/checkout.php:62 services/applydiscountcode.php:75
|
561 |
-
msgid "Click here to change your discount code"
|
562 |
-
msgstr ""
|
563 |
-
|
564 |
-
#: pages/checkout.php:64
|
565 |
-
msgid "Do you have a discount code?"
|
566 |
-
msgstr ""
|
567 |
-
|
568 |
-
#: pages/checkout.php:64
|
569 |
-
msgid "Click here to enter your discount code"
|
570 |
-
msgstr ""
|
571 |
-
|
572 |
-
#: pages/checkout.php:78 pages/checkout.php:579
|
573 |
-
msgid "Apply"
|
574 |
-
msgstr ""
|
575 |
-
|
576 |
-
#: pages/checkout.php:163
|
577 |
-
msgid "Already have an account?"
|
578 |
-
msgstr ""
|
579 |
-
|
580 |
-
#: pages/checkout.php:163
|
581 |
-
msgid "Log in here"
|
582 |
-
msgstr ""
|
583 |
-
|
584 |
-
#: pages/checkout.php:163
|
585 |
-
msgid "Account Information"
|
586 |
-
msgstr ""
|
587 |
-
|
588 |
-
#: pages/checkout.php:180 adminpages/paymentsettings.php:233
|
589 |
-
msgid "Password"
|
590 |
-
msgstr ""
|
591 |
-
|
592 |
-
#: pages/checkout.php:189
|
593 |
-
msgid "Confirm Password"
|
594 |
-
msgstr ""
|
595 |
-
|
596 |
-
#: pages/checkout.php:207 pages/checkout.php:464 pages/billing.php:193
|
597 |
-
msgid "E-mail Address"
|
598 |
-
msgstr ""
|
599 |
-
|
600 |
-
#: pages/checkout.php:216
|
601 |
-
msgid "Confirm E-mail Address"
|
602 |
-
msgstr ""
|
603 |
-
|
604 |
-
#: pages/checkout.php:235
|
605 |
-
msgid "Full Name"
|
606 |
-
msgstr ""
|
607 |
-
|
608 |
-
#: pages/checkout.php:236
|
609 |
-
msgid "LEAVE THIS BLANK"
|
610 |
-
msgstr ""
|
611 |
-
|
612 |
-
#: pages/checkout.php:260
|
613 |
-
#, php-format
|
614 |
-
msgid ""
|
615 |
-
"You are logged in as <strong>%s</strong>. If you would like to use a "
|
616 |
-
"different account for this membership, <a href=\"%s\">log out now</a>."
|
617 |
-
msgstr ""
|
618 |
-
|
619 |
-
#: pages/checkout.php:288
|
620 |
-
#, php-format
|
621 |
-
msgid "I agree to the %s"
|
622 |
-
msgstr ""
|
623 |
-
|
624 |
-
#: pages/checkout.php:303
|
625 |
-
msgid "Choose your Payment Method"
|
626 |
-
msgstr ""
|
627 |
-
|
628 |
-
#: pages/checkout.php:311
|
629 |
-
msgid "Check Out with a Credit Card Here"
|
630 |
-
msgstr ""
|
631 |
-
|
632 |
-
#: pages/checkout.php:313 pages/checkout.php:686
|
633 |
-
msgid "Check Out with PayPal"
|
634 |
-
msgstr ""
|
635 |
-
|
636 |
-
#: pages/checkout.php:332 pages/billing.php:65
|
637 |
-
msgid "First Name"
|
638 |
-
msgstr ""
|
639 |
-
|
640 |
-
#: pages/checkout.php:336 pages/billing.php:69
|
641 |
-
msgid "Last Name"
|
642 |
-
msgstr ""
|
643 |
-
|
644 |
-
#: pages/checkout.php:340 pages/billing.php:73
|
645 |
-
msgid "Address 1"
|
646 |
-
msgstr ""
|
647 |
-
|
648 |
-
#: pages/checkout.php:344 pages/billing.php:77
|
649 |
-
msgid "Address 2"
|
650 |
-
msgstr ""
|
651 |
-
|
652 |
-
#: pages/checkout.php:354 pages/billing.php:87
|
653 |
-
msgid "City"
|
654 |
-
msgstr ""
|
655 |
-
|
656 |
-
#: pages/checkout.php:358 pages/billing.php:91
|
657 |
-
msgid "State"
|
658 |
-
msgstr "County"
|
659 |
-
|
660 |
-
#: pages/checkout.php:362 pages/billing.php:95
|
661 |
-
msgid "Postal Code"
|
662 |
-
msgstr ""
|
663 |
-
|
664 |
-
#: pages/checkout.php:371 pages/billing.php:104
|
665 |
-
msgid "City, State Zip"
|
666 |
-
msgstr ""
|
667 |
-
|
668 |
-
#: pages/checkout.php:424 pages/billing.php:157
|
669 |
-
msgid "Country"
|
670 |
-
msgstr ""
|
671 |
-
|
672 |
-
#: pages/checkout.php:449 pages/billing.php:182
|
673 |
-
msgid "Phone"
|
674 |
-
msgstr ""
|
675 |
-
|
676 |
-
#: pages/checkout.php:473 pages/billing.php:197
|
677 |
-
msgid "Confirm E-mail"
|
678 |
-
msgstr ""
|
679 |
-
|
680 |
-
#: pages/checkout.php:504
|
681 |
-
#, php-format
|
682 |
-
msgid "We Accept %s"
|
683 |
-
msgstr ""
|
684 |
-
|
685 |
-
#: pages/checkout.php:504
|
686 |
-
msgid "Payment Information"
|
687 |
-
msgstr ""
|
688 |
-
|
689 |
-
#: pages/checkout.php:521 pages/billing.php:234 adminpages/orders.php:339
|
690 |
-
msgid "Card Type"
|
691 |
-
msgstr ""
|
692 |
-
|
693 |
-
#: pages/checkout.php:531 pages/billing.php:244
|
694 |
-
msgid "Card Number"
|
695 |
-
msgstr ""
|
696 |
-
|
697 |
-
#: pages/checkout.php:536 pages/billing.php:249
|
698 |
-
#: adminpages/discountcodes.php:367
|
699 |
-
msgid "Expiration Date"
|
700 |
-
msgstr ""
|
701 |
-
|
702 |
-
#: pages/checkout.php:568 pages/billing.php:281
|
703 |
-
msgid "CVV"
|
704 |
-
msgstr ""
|
705 |
-
|
706 |
-
#: pages/checkout.php:569 pages/billing.php:282
|
707 |
-
msgid "what's this?"
|
708 |
-
msgstr ""
|
709 |
-
|
710 |
-
#: pages/checkout.php:678
|
711 |
-
msgid "Complete Payment"
|
712 |
-
msgstr ""
|
713 |
-
|
714 |
-
#: pages/checkout.php:692
|
715 |
-
msgid "Submit and Pay with 2CheckOut"
|
716 |
-
msgstr ""
|
717 |
-
|
718 |
-
#: pages/checkout.php:692
|
719 |
-
msgid "Submit and Check Out"
|
720 |
-
msgstr ""
|
721 |
-
|
722 |
-
#: pages/checkout.php:692
|
723 |
-
msgid "Submit and Confirm"
|
724 |
-
msgstr ""
|
725 |
-
|
726 |
-
#: pages/checkout.php:698
|
727 |
-
msgid "Processing..."
|
728 |
-
msgstr ""
|
729 |
-
|
730 |
-
#: pages/cancel.php:14
|
731 |
-
msgid "Are you sure you want to cancel your membership?"
|
732 |
-
msgstr ""
|
733 |
-
|
734 |
-
#: pages/cancel.php:17
|
735 |
-
msgid "Yes, cancel my account"
|
736 |
-
msgstr ""
|
737 |
-
|
738 |
-
#: pages/cancel.php:19
|
739 |
-
msgid "No, keep my account"
|
740 |
-
msgstr ""
|
741 |
-
|
742 |
-
#: pages/cancel.php:22
|
743 |
-
msgid "Click here to go to the home page."
|
744 |
-
msgstr ""
|
745 |
-
|
746 |
-
#: pages/confirmation.php:12
|
747 |
-
msgid ""
|
748 |
-
"Your payment has been submitted. Your membership will be activated shortly."
|
749 |
-
msgstr ""
|
750 |
-
|
751 |
-
#: pages/confirmation.php:14
|
752 |
-
#, php-format
|
753 |
-
msgid "Thank you for your membership to %s. Your %s membership is now active."
|
754 |
-
msgstr ""
|
755 |
-
|
756 |
-
#: pages/confirmation.php:28
|
757 |
-
#, php-format
|
758 |
-
msgid ""
|
759 |
-
"Below are details about your membership account and a receipt for your "
|
760 |
-
"initial membership invoice. A welcome email with a copy of your initial "
|
761 |
-
"membership invoice has been sent to %s."
|
762 |
-
msgstr ""
|
763 |
-
|
764 |
-
#: pages/confirmation.php:43
|
765 |
-
msgid "Print"
|
766 |
-
msgstr ""
|
767 |
-
|
768 |
-
#: pages/confirmation.php:97
|
769 |
-
#, php-format
|
770 |
-
msgid ""
|
771 |
-
"Below are details about your membership account. A welcome email with has "
|
772 |
-
"been sent to %s."
|
773 |
-
msgstr ""
|
774 |
-
|
775 |
-
#: pages/confirmation.php:105
|
776 |
-
msgid "Pending"
|
777 |
-
msgstr ""
|
778 |
-
|
779 |
-
#: pages/confirmation.php:115
|
780 |
-
msgid ""
|
781 |
-
"If your account is not activated within a few minutes, please contact the "
|
782 |
-
"site owner."
|
783 |
-
msgstr ""
|
784 |
-
|
785 |
-
#: pages/billing.php:14
|
786 |
-
#, php-format
|
787 |
-
msgid "Logged in as <strong>%s</strong>."
|
788 |
-
msgstr ""
|
789 |
-
|
790 |
-
#: pages/billing.php:14
|
791 |
-
msgid "logout"
|
792 |
-
msgstr ""
|
793 |
-
|
794 |
-
#: pages/billing.php:39
|
795 |
-
msgid ""
|
796 |
-
"Your payment subscription is managed by PayPal. Please <a href=\"http://www."
|
797 |
-
"paypal.com\">login to PayPal here</a> to update your billing information."
|
798 |
-
msgstr ""
|
799 |
-
|
800 |
-
#: pages/billing.php:78 adminpages/paymentsettings.php:457
|
801 |
-
msgid "optional"
|
802 |
-
msgstr ""
|
803 |
-
|
804 |
-
#: pages/billing.php:217
|
805 |
-
#, php-format
|
806 |
-
msgid "We accept %s"
|
807 |
-
msgstr ""
|
808 |
-
|
809 |
-
#: pages/billing.php:217
|
810 |
-
msgid "Credit Card Information"
|
811 |
-
msgstr ""
|
812 |
-
|
813 |
-
#: pages/billing.php:294
|
814 |
-
msgid "Update"
|
815 |
-
msgstr ""
|
816 |
-
|
817 |
-
#: pages/billing.php:295 adminpages/orders.php:511
|
818 |
-
msgid "Cancel"
|
819 |
-
msgstr ""
|
820 |
-
|
821 |
-
#: pages/billing.php:309
|
822 |
-
msgid ""
|
823 |
-
"This subscription is not recurring. So you don't need to update your billing "
|
824 |
-
"information."
|
825 |
-
msgstr ""
|
826 |
-
|
827 |
-
#: pages/levels.php:14 adminpages/membershiplevels.php:337
|
828 |
-
#: adminpages/membershiplevels.php:513 adminpages/discountcodes.php:427
|
829 |
-
msgid "Initial Payment"
|
830 |
-
msgstr ""
|
831 |
-
|
832 |
-
#: pages/levels.php:15
|
833 |
-
msgid "Subscription Information"
|
834 |
-
msgstr ""
|
835 |
-
|
836 |
-
#: pages/levels.php:33
|
837 |
-
msgid "--"
|
838 |
-
msgstr ""
|
839 |
-
|
840 |
-
#: pages/levels.php:43
|
841 |
-
msgid "Free"
|
842 |
-
msgstr ""
|
843 |
-
|
844 |
-
#: pages/levels.php:51
|
845 |
-
#, php-format
|
846 |
-
msgid "%s per %s for %d more %s."
|
847 |
-
msgstr ""
|
848 |
-
|
849 |
-
#: pages/levels.php:55
|
850 |
-
#, php-format
|
851 |
-
msgid "%s every %d %s for %d more %s."
|
852 |
-
msgstr ""
|
853 |
-
|
854 |
-
#: pages/levels.php:60
|
855 |
-
#, php-format
|
856 |
-
msgid "%s after %d %s."
|
857 |
-
msgstr ""
|
858 |
-
|
859 |
-
#: pages/levels.php:66
|
860 |
-
#, php-format
|
861 |
-
msgid "%s per %s."
|
862 |
-
msgstr ""
|
863 |
-
|
864 |
-
#: pages/levels.php:70
|
865 |
-
#, php-format
|
866 |
-
msgid "%s every %d %s."
|
867 |
-
msgstr ""
|
868 |
-
|
869 |
-
#: pages/levels.php:113 pages/levels.php:115
|
870 |
-
msgid "Select"
|
871 |
-
msgstr ""
|
872 |
-
|
873 |
-
#: pages/levels.php:123
|
874 |
-
msgid "Renew"
|
875 |
-
msgstr ""
|
876 |
-
|
877 |
-
#: pages/levels.php:129
|
878 |
-
msgid "Your Level"
|
879 |
-
msgstr ""
|
880 |
-
|
881 |
-
#: pages/levels.php:145
|
882 |
-
msgid "← Return to Your Account"
|
883 |
-
msgstr ""
|
884 |
-
|
885 |
-
#: pages/levels.php:147
|
886 |
-
msgid "← Return to Home"
|
887 |
-
msgstr ""
|
888 |
-
|
889 |
-
#: classes/class.memberorder.php:543
|
890 |
-
#, php-format
|
891 |
-
msgid ""
|
892 |
-
"There was an error canceling the subscription for user with ID=%s. You will "
|
893 |
-
"want to check your payment gateway to see if their subscription is still "
|
894 |
-
"active."
|
895 |
-
msgstr ""
|
896 |
-
|
897 |
-
#: classes/class.pmproemail.php:37
|
898 |
-
#, php-format
|
899 |
-
msgid "An Email From %s"
|
900 |
-
msgstr ""
|
901 |
-
|
902 |
-
#: classes/class.pmproemail.php:122
|
903 |
-
#, php-format
|
904 |
-
msgid "Your membership at %s has been CANCELLED"
|
905 |
-
msgstr ""
|
906 |
-
|
907 |
-
#: classes/class.pmproemail.php:144
|
908 |
-
#, php-format
|
909 |
-
msgid "Membership for %s at %s has been CANCELLED"
|
910 |
-
msgstr ""
|
911 |
-
|
912 |
-
#: classes/class.pmproemail.php:175
|
913 |
-
#, php-format
|
914 |
-
msgid "Your membership confirmation for %s"
|
915 |
-
msgstr ""
|
916 |
-
|
917 |
-
#: classes/class.pmproemail.php:253 classes/class.pmproemail.php:346
|
918 |
-
#: classes/class.pmproemail.php:651
|
919 |
-
#, php-format
|
920 |
-
msgid "This membership will expire on %s."
|
921 |
-
msgstr ""
|
922 |
-
|
923 |
-
#: classes/class.pmproemail.php:275
|
924 |
-
#, php-format
|
925 |
-
msgid "Member Checkout for %s at %s"
|
926 |
-
msgstr ""
|
927 |
-
|
928 |
-
#: classes/class.pmproemail.php:363
|
929 |
-
#, php-format
|
930 |
-
msgid "Your billing information has been udpated at %s"
|
931 |
-
msgstr ""
|
932 |
-
|
933 |
-
#: classes/class.pmproemail.php:416
|
934 |
-
#, php-format
|
935 |
-
msgid "Billing information has been udpated for %s at %s"
|
936 |
-
msgstr ""
|
937 |
-
|
938 |
-
#: classes/class.pmproemail.php:464
|
939 |
-
#, php-format
|
940 |
-
msgid "Membership Payment Failed at %s"
|
941 |
-
msgstr ""
|
942 |
-
|
943 |
-
#: classes/class.pmproemail.php:510
|
944 |
-
#, php-format
|
945 |
-
msgid "Membership Payment Failed For %s at %s"
|
946 |
-
msgstr ""
|
947 |
-
|
948 |
-
#: classes/class.pmproemail.php:557
|
949 |
-
#, php-format
|
950 |
-
msgid "Credit Card on File Expiring Soon at %s"
|
951 |
-
msgstr ""
|
952 |
-
|
953 |
-
#: classes/class.pmproemail.php:605
|
954 |
-
#, php-format
|
955 |
-
msgid "INVOICE for %s membership"
|
956 |
-
msgstr ""
|
957 |
-
|
958 |
-
#: classes/class.pmproemail.php:676
|
959 |
-
#, php-format
|
960 |
-
msgid "Your trial at %s is ending soon"
|
961 |
-
msgstr ""
|
962 |
-
|
963 |
-
#: classes/class.pmproemail.php:710
|
964 |
-
#, php-format
|
965 |
-
msgid "Your membership at %s has ended"
|
966 |
-
msgstr ""
|
967 |
-
|
968 |
-
#: classes/class.pmproemail.php:735
|
969 |
-
#, php-format
|
970 |
-
msgid "Your membership at %s will end soon"
|
971 |
-
msgstr ""
|
972 |
-
|
973 |
-
#: classes/class.pmproemail.php:755
|
974 |
-
#, php-format
|
975 |
-
msgid "Your membership at %s has been changed"
|
976 |
-
msgstr ""
|
977 |
-
|
978 |
-
#: classes/class.pmproemail.php:759
|
979 |
-
#, php-format
|
980 |
-
msgid "The new level is %s."
|
981 |
-
msgstr ""
|
982 |
-
|
983 |
-
#: classes/class.pmproemail.php:761
|
984 |
-
msgid "Your membership has been cancelled"
|
985 |
-
msgstr ""
|
986 |
-
|
987 |
-
#: classes/class.pmproemail.php:765 classes/class.pmproemail.php:803
|
988 |
-
#, php-format
|
989 |
-
msgid "This membership will expire on %s"
|
990 |
-
msgstr ""
|
991 |
-
|
992 |
-
#: classes/class.pmproemail.php:769 classes/class.pmproemail.php:807
|
993 |
-
msgid "This membership does not expire"
|
994 |
-
msgstr ""
|
995 |
-
|
996 |
-
#: classes/class.pmproemail.php:793
|
997 |
-
#, php-format
|
998 |
-
msgid "Membership for %s at %s has been changed"
|
999 |
-
msgstr ""
|
1000 |
-
|
1001 |
-
#: classes/class.pmproemail.php:797
|
1002 |
-
#, php-format
|
1003 |
-
msgid "The new level is %s. This membership is free"
|
1004 |
-
msgstr ""
|
1005 |
-
|
1006 |
-
#: classes/class.pmproemail.php:799
|
1007 |
-
msgid "membership has been cancelled"
|
1008 |
-
msgstr ""
|
1009 |
-
|
1010 |
-
#: classes/gateways/class.pmprogateway_check.php:60
|
1011 |
-
#: classes/gateways/class.pmprogateway_paypal.php:27
|
1012 |
-
#: classes/gateways/class.pmprogateway_authorizenet.php:55
|
1013 |
-
#: classes/gateways/class.pmprogateway_payflowpro.php:27
|
1014 |
-
#: classes/gateways/class.pmprogateway_sagepay.php:81
|
1015 |
-
#: classes/gateways/class.pmprogateway.php:55
|
1016 |
-
#: classes/gateways/class.pmprogateway_cybersource.php:57
|
1017 |
-
msgid "Unknown error: Authorization failed."
|
1018 |
-
msgstr ""
|
1019 |
-
|
1020 |
-
#: classes/gateways/class.pmprogateway_check.php:111
|
1021 |
-
#: classes/gateways/class.pmprogateway_check.php:116
|
1022 |
-
#: classes/gateways/class.pmprogateway_check.php:134
|
1023 |
-
#: classes/gateways/class.pmprogateway_paypal.php:50
|
1024 |
-
#: classes/gateways/class.pmprogateway_authorizenet.php:106
|
1025 |
-
#: classes/gateways/class.pmprogateway_authorizenet.php:111
|
1026 |
-
#: classes/gateways/class.pmprogateway_authorizenet.php:128
|
1027 |
-
#: classes/gateways/class.pmprogateway_payflowpro.php:50
|
1028 |
-
#: classes/gateways/class.pmprogateway_payflowpro.php:55
|
1029 |
-
#: classes/gateways/class.pmprogateway_sagepay.php:140
|
1030 |
-
#: classes/gateways/class.pmprogateway_sagepay.php:145
|
1031 |
-
#: classes/gateways/class.pmprogateway_sagepay.php:168
|
1032 |
-
#: classes/gateways/class.pmprogateway.php:106
|
1033 |
-
#: classes/gateways/class.pmprogateway.php:111
|
1034 |
-
#: classes/gateways/class.pmprogateway.php:129
|
1035 |
-
#: classes/gateways/class.pmprogateway_cybersource.php:108
|
1036 |
-
#: classes/gateways/class.pmprogateway_cybersource.php:113
|
1037 |
-
#: classes/gateways/class.pmprogateway_cybersource.php:131
|
1038 |
-
msgid "Unknown error: Payment failed."
|
1039 |
-
msgstr ""
|
1040 |
-
|
1041 |
-
#: classes/gateways/class.pmprogateway_check.php:118
|
1042 |
-
#: classes/gateways/class.pmprogateway_authorizenet.php:112
|
1043 |
-
#: classes/gateways/class.pmprogateway_sagepay.php:147
|
1044 |
-
#: classes/gateways/class.pmprogateway.php:113
|
1045 |
-
#: classes/gateways/class.pmprogateway_cybersource.php:115
|
1046 |
-
msgid ""
|
1047 |
-
"A partial payment was made that we could not void. Please contact the site "
|
1048 |
-
"owner immediately to correct this."
|
1049 |
-
msgstr ""
|
1050 |
-
|
1051 |
-
#: classes/gateways/class.pmprogateway_braintree.php:61
|
1052 |
-
#: classes/gateways/class.pmprogateway_stripe.php:53
|
1053 |
-
msgid "Unknown error: Initial payment failed."
|
1054 |
-
msgstr ""
|
1055 |
-
|
1056 |
-
#: classes/gateways/class.pmprogateway_braintree.php:120
|
1057 |
-
msgid "Error during settlement:"
|
1058 |
-
msgstr ""
|
1059 |
-
|
1060 |
-
#: classes/gateways/class.pmprogateway_braintree.php:129
|
1061 |
-
msgid "Error during charge:"
|
1062 |
-
msgstr ""
|
1063 |
-
|
1064 |
-
#: classes/gateways/class.pmprogateway_braintree.php:198
|
1065 |
-
msgid "Failed to update customer."
|
1066 |
-
msgstr ""
|
1067 |
-
|
1068 |
-
#: classes/gateways/class.pmprogateway_braintree.php:246
|
1069 |
-
msgid "Failed to create customer."
|
1070 |
-
msgstr ""
|
1071 |
-
|
1072 |
-
#: classes/gateways/class.pmprogateway_braintree.php:253
|
1073 |
-
msgid "Error creating customer record with Braintree:"
|
1074 |
-
msgstr ""
|
1075 |
-
|
1076 |
-
#: classes/gateways/class.pmprogateway_braintree.php:344
|
1077 |
-
msgid "Error subscribing customer to plan with Braintree:"
|
1078 |
-
msgstr ""
|
1079 |
-
|
1080 |
-
#: classes/gateways/class.pmprogateway_braintree.php:359
|
1081 |
-
msgid "Failed to subscribe with Braintree:"
|
1082 |
-
msgstr ""
|
1083 |
-
|
1084 |
-
#: classes/gateways/class.pmprogateway_braintree.php:397
|
1085 |
-
#: classes/gateways/class.pmprogateway_braintree.php:410
|
1086 |
-
#: classes/gateways/class.pmprogateway_braintree.php:417
|
1087 |
-
#: classes/gateways/class.pmprogateway_stripe.php:344
|
1088 |
-
#: classes/gateways/class.pmprogateway_stripe.php:354
|
1089 |
-
msgid "Could not find the subscription."
|
1090 |
-
msgstr ""
|
1091 |
-
|
1092 |
-
#: classes/gateways/class.pmprogateway_paypal.php:57
|
1093 |
-
#: classes/gateways/class.pmprogateway_payflowpro.php:57
|
1094 |
-
msgid ""
|
1095 |
-
"A partial payment was made that we could not refund. Please contact the site "
|
1096 |
-
"owner immediately to correct this."
|
1097 |
-
msgstr ""
|
1098 |
-
|
1099 |
-
#: classes/gateways/class.pmprogateway_authorizenet.php:187
|
1100 |
-
#: adminpages/memberslist.php:151 adminpages/pagesettings.php:51
|
1101 |
-
#: adminpages/reports/login.php:143
|
1102 |
-
msgid "Membership"
|
1103 |
-
msgstr ""
|
1104 |
-
|
1105 |
-
#: classes/gateways/class.pmprogateway_authorizenet.php:787
|
1106 |
-
#: classes/gateways/class.pmprogateway_authorizenet.php:788
|
1107 |
-
msgid "Could not connect to Authorize.net"
|
1108 |
-
msgstr ""
|
1109 |
-
|
1110 |
-
#: classes/gateways/class.pmprogateway_stripe.php:192
|
1111 |
-
msgid "Error creating customer record with Stripe:"
|
1112 |
-
msgstr ""
|
1113 |
-
|
1114 |
-
#: classes/gateways/class.pmprogateway_stripe.php:279
|
1115 |
-
msgid "Error creating plan with Stripe:"
|
1116 |
-
msgstr ""
|
1117 |
-
|
1118 |
-
#: classes/gateways/class.pmprogateway_stripe.php:295
|
1119 |
-
msgid "Error subscribing customer to plan with Stripe:"
|
1120 |
-
msgstr ""
|
1121 |
-
|
1122 |
-
#: adminpages/membershiplevels.php:5 adminpages/orders.php:5
|
1123 |
-
#: adminpages/memberslist.php:5 adminpages/paymentsettings.php:5
|
1124 |
-
#: adminpages/pagesettings.php:5 adminpages/discountcodes.php:5
|
1125 |
-
#: adminpages/memberslist-csv.php:5 adminpages/addons.php:5
|
1126 |
-
#: adminpages/emailsettings.php:5 adminpages/advancedsettings.php:5
|
1127 |
-
#: adminpages/orders-csv.php:5
|
1128 |
-
msgid "You do not have permissions to perform this action."
|
1129 |
-
msgstr ""
|
1130 |
-
|
1131 |
-
#: adminpages/membershiplevels.php:118
|
1132 |
-
msgid "Membership level updated successfully."
|
1133 |
-
msgstr ""
|
1134 |
-
|
1135 |
-
#: adminpages/membershiplevels.php:124
|
1136 |
-
msgid "Error updating membership level."
|
1137 |
-
msgstr ""
|
1138 |
-
|
1139 |
-
#: adminpages/membershiplevels.php:141
|
1140 |
-
msgid "Membership level added successfully."
|
1141 |
-
msgstr ""
|
1142 |
-
|
1143 |
-
#: adminpages/membershiplevels.php:146
|
1144 |
-
msgid "Error adding membership level."
|
1145 |
-
msgstr ""
|
1146 |
-
|
1147 |
-
#: adminpages/membershiplevels.php:179
|
1148 |
-
#, php-format
|
1149 |
-
msgid ""
|
1150 |
-
"There was an error canceling the subscription for user with ID=%d. You will "
|
1151 |
-
"want to check your payment gateway to see if their subscription is still "
|
1152 |
-
"active."
|
1153 |
-
msgstr ""
|
1154 |
-
|
1155 |
-
#: adminpages/membershiplevels.php:182
|
1156 |
-
msgid "Last Invoice"
|
1157 |
-
msgstr ""
|
1158 |
-
|
1159 |
-
#: adminpages/membershiplevels.php:196
|
1160 |
-
msgid "Membership level deleted successfully."
|
1161 |
-
msgstr ""
|
1162 |
-
|
1163 |
-
#: adminpages/membershiplevels.php:201 adminpages/membershiplevels.php:207
|
1164 |
-
msgid "Error deleting membership level."
|
1165 |
-
msgstr ""
|
1166 |
-
|
1167 |
-
#: adminpages/membershiplevels.php:222
|
1168 |
-
msgid "Edit Membership Level"
|
1169 |
-
msgstr ""
|
1170 |
-
|
1171 |
-
#: adminpages/membershiplevels.php:224
|
1172 |
-
msgid "Add New Membership Level"
|
1173 |
-
msgstr ""
|
1174 |
-
|
1175 |
-
#: adminpages/membershiplevels.php:284 adminpages/membershiplevels.php:511
|
1176 |
-
#: adminpages/orders.php:597 adminpages/memberslist.php:144
|
1177 |
-
#: adminpages/discountcodes.php:306 adminpages/discountcodes.php:547
|
1178 |
-
#: adminpages/reports/login.php:140
|
1179 |
-
msgid "ID"
|
1180 |
-
msgstr ""
|
1181 |
-
|
1182 |
-
#: adminpages/membershiplevels.php:291 adminpages/membershiplevels.php:512
|
1183 |
-
#: adminpages/reports/login.php:142
|
1184 |
-
msgid "Name"
|
1185 |
-
msgstr ""
|
1186 |
-
|
1187 |
-
#: adminpages/membershiplevels.php:296
|
1188 |
-
msgid "Description"
|
1189 |
-
msgstr ""
|
1190 |
-
|
1191 |
-
#: adminpages/membershiplevels.php:314
|
1192 |
-
msgid "Confirmation Message"
|
1193 |
-
msgstr ""
|
1194 |
-
|
1195 |
-
#: adminpages/membershiplevels.php:333
|
1196 |
-
msgid "Billing Details"
|
1197 |
-
msgstr ""
|
1198 |
-
|
1199 |
-
#: adminpages/membershiplevels.php:338 adminpages/discountcodes.php:428
|
1200 |
-
msgid "The initial amount collected at registration."
|
1201 |
-
msgstr ""
|
1202 |
-
|
1203 |
-
#: adminpages/membershiplevels.php:342 adminpages/discountcodes.php:432
|
1204 |
-
msgid "Recurring Subscription"
|
1205 |
-
msgstr ""
|
1206 |
-
|
1207 |
-
#: adminpages/membershiplevels.php:343 adminpages/discountcodes.php:433
|
1208 |
-
msgid "Check if this level has a recurring subscription payment."
|
1209 |
-
msgstr ""
|
1210 |
-
|
1211 |
-
#: adminpages/membershiplevels.php:347
|
1212 |
-
msgid "Billing Amount"
|
1213 |
-
msgstr ""
|
1214 |
-
|
1215 |
-
#: adminpages/membershiplevels.php:349
|
1216 |
-
msgid "per"
|
1217 |
-
msgstr ""
|
1218 |
-
|
1219 |
-
#: adminpages/membershiplevels.php:353
|
1220 |
-
msgid "Day(s)"
|
1221 |
-
msgstr ""
|
1222 |
-
|
1223 |
-
#: adminpages/membershiplevels.php:353
|
1224 |
-
msgid "Week(s)"
|
1225 |
-
msgstr ""
|
1226 |
-
|
1227 |
-
#: adminpages/membershiplevels.php:353
|
1228 |
-
msgid "Month(s)"
|
1229 |
-
msgstr ""
|
1230 |
-
|
1231 |
-
#: adminpages/membershiplevels.php:353
|
1232 |
-
msgid "Year(s)"
|
1233 |
-
msgstr ""
|
1234 |
-
|
1235 |
-
#: adminpages/membershiplevels.php:362 adminpages/discountcodes.php:451
|
1236 |
-
msgid "The amount to be billed one cycle after the initial payment."
|
1237 |
-
msgstr ""
|
1238 |
-
|
1239 |
-
#: adminpages/membershiplevels.php:364
|
1240 |
-
msgid ""
|
1241 |
-
"Stripe integration currently only supports billing periods of \"Week\", "
|
1242 |
-
"\"Month\" or \"Year\"."
|
1243 |
-
msgstr ""
|
1244 |
-
|
1245 |
-
#: adminpages/membershiplevels.php:366
|
1246 |
-
msgid ""
|
1247 |
-
"Braintree integration currently only supports billing periods of \"Month\" "
|
1248 |
-
"or \"Year\"."
|
1249 |
-
msgstr ""
|
1250 |
-
|
1251 |
-
#: adminpages/membershiplevels.php:368
|
1252 |
-
msgid ""
|
1253 |
-
"Payflow integration currently only supports billing frequencies of 1 and "
|
1254 |
-
"billing periods of \"Week\", \"Month\" or \"Year\"."
|
1255 |
-
msgstr ""
|
1256 |
-
|
1257 |
-
#: adminpages/membershiplevels.php:372 adminpages/membershiplevels.php:374
|
1258 |
-
#: adminpages/paymentsettings.php:179 adminpages/paymentsettings.php:184
|
1259 |
-
msgid "Note"
|
1260 |
-
msgstr ""
|
1261 |
-
|
1262 |
-
#: adminpages/membershiplevels.php:372
|
1263 |
-
msgid ""
|
1264 |
-
"After saving this level, make note of the ID and create a \"Plan\" in your "
|
1265 |
-
"Braintree dashboard with the same settings and the \"Plan ID\" set to "
|
1266 |
-
"<em>pmpro_#</em>, where # is the level ID."
|
1267 |
-
msgstr ""
|
1268 |
-
|
1269 |
-
#: adminpages/membershiplevels.php:374
|
1270 |
-
msgid ""
|
1271 |
-
"You will need to create a \"Plan\" in your Braintree dashboard with the same "
|
1272 |
-
"settings and the \"Plan ID\" set to"
|
1273 |
-
msgstr ""
|
1274 |
-
|
1275 |
-
#: adminpages/membershiplevels.php:380 adminpages/discountcodes.php:456
|
1276 |
-
msgid "Billing Cycle Limit"
|
1277 |
-
msgstr ""
|
1278 |
-
|
1279 |
-
#: adminpages/membershiplevels.php:384 adminpages/discountcodes.php:459
|
1280 |
-
msgid ""
|
1281 |
-
"The <strong>total</strong> number of recurring billing cycles for this "
|
1282 |
-
"level, including the trial period (if applicable) but not including the "
|
1283 |
-
"initial payment. Set to zero if membership is indefinite."
|
1284 |
-
msgstr ""
|
1285 |
-
|
1286 |
-
#: adminpages/membershiplevels.php:386
|
1287 |
-
msgid ""
|
1288 |
-
"Stripe integration currently does not support billing limits. You can still "
|
1289 |
-
"set an expiration date below."
|
1290 |
-
msgstr ""
|
1291 |
-
|
1292 |
-
#: adminpages/membershiplevels.php:393 adminpages/discountcodes.php:464
|
1293 |
-
msgid "Custom Trial"
|
1294 |
-
msgstr ""
|
1295 |
-
|
1296 |
-
#: adminpages/membershiplevels.php:395 adminpages/discountcodes.php:465
|
1297 |
-
msgid "Check to add a custom trial period."
|
1298 |
-
msgstr ""
|
1299 |
-
|
1300 |
-
#: adminpages/membershiplevels.php:398
|
1301 |
-
msgid ""
|
1302 |
-
"2Checkout integration does not support custom trials. You can do one period "
|
1303 |
-
"trials by setting an initial payment different from the billing amount."
|
1304 |
-
msgstr ""
|
1305 |
-
|
1306 |
-
#: adminpages/membershiplevels.php:404 adminpages/discountcodes.php:469
|
1307 |
-
msgid "Trial Billing Amount"
|
1308 |
-
msgstr ""
|
1309 |
-
|
1310 |
-
#: adminpages/membershiplevels.php:407 adminpages/discountcodes.php:472
|
1311 |
-
msgid "for the first"
|
1312 |
-
msgstr ""
|
1313 |
-
|
1314 |
-
#: adminpages/membershiplevels.php:409 adminpages/discountcodes.php:474
|
1315 |
-
msgid "subscription payments"
|
1316 |
-
msgstr ""
|
1317 |
-
|
1318 |
-
#: adminpages/membershiplevels.php:412
|
1319 |
-
msgid ""
|
1320 |
-
"Stripe integration currently does not support trial amounts greater than $0."
|
1321 |
-
msgstr ""
|
1322 |
-
|
1323 |
-
#: adminpages/membershiplevels.php:416
|
1324 |
-
msgid ""
|
1325 |
-
"Braintree integration currently does not support trial amounts greater than "
|
1326 |
-
"$0."
|
1327 |
-
msgstr ""
|
1328 |
-
|
1329 |
-
#: adminpages/membershiplevels.php:420
|
1330 |
-
msgid ""
|
1331 |
-
"Payflow integration currently does not support trial amounts greater than $0."
|
1332 |
-
msgstr ""
|
1333 |
-
|
1334 |
-
#: adminpages/membershiplevels.php:428
|
1335 |
-
msgid "Other Settings"
|
1336 |
-
msgstr ""
|
1337 |
-
|
1338 |
-
#: adminpages/membershiplevels.php:432
|
1339 |
-
msgid "Disable New Signups"
|
1340 |
-
msgstr ""
|
1341 |
-
|
1342 |
-
#: adminpages/membershiplevels.php:433
|
1343 |
-
msgid ""
|
1344 |
-
"Check to hide this level from the membership levels page and disable "
|
1345 |
-
"registration."
|
1346 |
-
msgstr ""
|
1347 |
-
|
1348 |
-
#: adminpages/membershiplevels.php:437 adminpages/discountcodes.php:479
|
1349 |
-
msgid "Membership Expiration"
|
1350 |
-
msgstr ""
|
1351 |
-
|
1352 |
-
#: adminpages/membershiplevels.php:438 adminpages/discountcodes.php:480
|
1353 |
-
msgid "Check this to set when membership access expires."
|
1354 |
-
msgstr ""
|
1355 |
-
|
1356 |
-
#: adminpages/membershiplevels.php:442 adminpages/discountcodes.php:484
|
1357 |
-
msgid "Expires In"
|
1358 |
-
msgstr ""
|
1359 |
-
|
1360 |
-
#: adminpages/membershiplevels.php:455 adminpages/discountcodes.php:497
|
1361 |
-
msgid ""
|
1362 |
-
"Set the duration of membership access. Note that the any future payments "
|
1363 |
-
"(recurring subscription, if any) will be cancelled when the membership "
|
1364 |
-
"expires."
|
1365 |
-
msgstr ""
|
1366 |
-
|
1367 |
-
#: adminpages/membershiplevels.php:463
|
1368 |
-
msgid "Content Settings"
|
1369 |
-
msgstr ""
|
1370 |
-
|
1371 |
-
#: adminpages/membershiplevels.php:467
|
1372 |
-
msgid "Categories"
|
1373 |
-
msgstr ""
|
1374 |
-
|
1375 |
-
#: adminpages/membershiplevels.php:496
|
1376 |
-
msgid "Add New Level"
|
1377 |
-
msgstr ""
|
1378 |
-
|
1379 |
-
#: adminpages/membershiplevels.php:499 adminpages/membershiplevels.php:502
|
1380 |
-
msgid "Search Levels"
|
1381 |
-
msgstr ""
|
1382 |
-
|
1383 |
-
#: adminpages/membershiplevels.php:514
|
1384 |
-
msgid "Billing Cycle"
|
1385 |
-
msgstr ""
|
1386 |
-
|
1387 |
-
#: adminpages/membershiplevels.php:515
|
1388 |
-
msgid "Trial Cycle"
|
1389 |
-
msgstr ""
|
1390 |
-
|
1391 |
-
#: adminpages/membershiplevels.php:517
|
1392 |
-
msgid "Allow Signups"
|
1393 |
-
msgstr ""
|
1394 |
-
|
1395 |
-
#: adminpages/membershiplevels.php:540
|
1396 |
-
msgid "FREE"
|
1397 |
-
msgstr ""
|
1398 |
-
|
1399 |
-
#: adminpages/membershiplevels.php:549
|
1400 |
-
msgid "every"
|
1401 |
-
msgstr ""
|
1402 |
-
|
1403 |
-
#: adminpages/membershiplevels.php:551 adminpages/membershiplevels.php:559
|
1404 |
-
#: adminpages/reports/memberships.php:304
|
1405 |
-
#: adminpages/reports/memberships.php:315 adminpages/reports/sales.php:203
|
1406 |
-
#: adminpages/reports/sales.php:214
|
1407 |
-
msgid "for"
|
1408 |
-
msgstr ""
|
1409 |
-
|
1410 |
-
#: adminpages/membershiplevels.php:566
|
1411 |
-
msgid "After"
|
1412 |
-
msgstr ""
|
1413 |
-
|
1414 |
-
#: adminpages/membershiplevels.php:570 adminpages/orders.php:658
|
1415 |
-
#: adminpages/discountcodes.php:614
|
1416 |
-
msgid "edit"
|
1417 |
-
msgstr ""
|
1418 |
-
|
1419 |
-
#: adminpages/membershiplevels.php:571 adminpages/orders.php:661
|
1420 |
-
msgid "copy"
|
1421 |
-
msgstr ""
|
1422 |
-
|
1423 |
-
#: adminpages/membershiplevels.php:572
|
1424 |
-
#, php-format
|
1425 |
-
msgid ""
|
1426 |
-
"Are you sure you want to delete membership level %s? All subscriptions will "
|
1427 |
-
"be cancelled."
|
1428 |
-
msgstr ""
|
1429 |
-
|
1430 |
-
#: adminpages/membershiplevels.php:572 adminpages/orders.php:664
|
1431 |
-
#: adminpages/discountcodes.php:617
|
1432 |
-
msgid "delete"
|
1433 |
-
msgstr ""
|
1434 |
-
|
1435 |
-
#: adminpages/orders.php:26
|
1436 |
-
msgid "Order deleted successfully."
|
1437 |
-
msgstr ""
|
1438 |
-
|
1439 |
-
#: adminpages/orders.php:31
|
1440 |
-
msgid "Error deleting order."
|
1441 |
-
msgstr ""
|
1442 |
-
|
1443 |
-
#: adminpages/orders.php:119
|
1444 |
-
msgid "Order saved successfully."
|
1445 |
-
msgstr ""
|
1446 |
-
|
1447 |
-
#: adminpages/orders.php:124
|
1448 |
-
msgid "Error updating order timestamp."
|
1449 |
-
msgstr ""
|
1450 |
-
|
1451 |
-
#: adminpages/orders.php:130
|
1452 |
-
msgid "Error saving order."
|
1453 |
-
msgstr ""
|
1454 |
-
|
1455 |
-
#: adminpages/orders.php:195
|
1456 |
-
msgid "Order"
|
1457 |
-
msgstr ""
|
1458 |
-
|
1459 |
-
#: adminpages/orders.php:197
|
1460 |
-
msgid "New Order"
|
1461 |
-
msgstr ""
|
1462 |
-
|
1463 |
-
#: adminpages/orders.php:211 adminpages/discountcodes.php:307
|
1464 |
-
msgid "This will be generated when you save."
|
1465 |
-
msgstr ""
|
1466 |
-
|
1467 |
-
#: adminpages/orders.php:215 adminpages/orders.php:598
|
1468 |
-
#: adminpages/discountcodes.php:311 adminpages/discountcodes.php:548
|
1469 |
-
msgid "Code"
|
1470 |
-
msgstr ""
|
1471 |
-
|
1472 |
-
#: adminpages/orders.php:220
|
1473 |
-
msgid "Randomly generated for you."
|
1474 |
-
msgstr ""
|
1475 |
-
|
1476 |
-
#: adminpages/orders.php:225
|
1477 |
-
msgid "User ID"
|
1478 |
-
msgstr ""
|
1479 |
-
|
1480 |
-
#: adminpages/orders.php:234
|
1481 |
-
msgid "Membership Level ID"
|
1482 |
-
msgstr ""
|
1483 |
-
|
1484 |
-
#: adminpages/orders.php:243
|
1485 |
-
msgid "Billing Name"
|
1486 |
-
msgstr ""
|
1487 |
-
|
1488 |
-
#: adminpages/orders.php:251
|
1489 |
-
msgid "Billing Street"
|
1490 |
-
msgstr ""
|
1491 |
-
|
1492 |
-
#: adminpages/orders.php:258
|
1493 |
-
msgid "Billing City"
|
1494 |
-
msgstr ""
|
1495 |
-
|
1496 |
-
#: adminpages/orders.php:265
|
1497 |
-
msgid "Billing State"
|
1498 |
-
msgstr "Billing County"
|
1499 |
-
|
1500 |
-
#: adminpages/orders.php:272
|
1501 |
-
msgid "Billing Postal Code"
|
1502 |
-
msgstr ""
|
1503 |
-
|
1504 |
-
#: adminpages/orders.php:279
|
1505 |
-
msgid "Billing Country"
|
1506 |
-
msgstr ""
|
1507 |
-
|
1508 |
-
#: adminpages/orders.php:287
|
1509 |
-
msgid "Billing Phone"
|
1510 |
-
msgstr ""
|
1511 |
-
|
1512 |
-
#: adminpages/orders.php:296
|
1513 |
-
msgid "Sub Total"
|
1514 |
-
msgstr ""
|
1515 |
-
|
1516 |
-
#: adminpages/orders.php:312
|
1517 |
-
msgid "Coupon Amount"
|
1518 |
-
msgstr ""
|
1519 |
-
|
1520 |
-
#: adminpages/orders.php:325
|
1521 |
-
msgid "Should be subtotal + tax - couponamount."
|
1522 |
-
msgstr ""
|
1523 |
-
|
1524 |
-
#: adminpages/orders.php:330
|
1525 |
-
msgid "Payment Type"
|
1526 |
-
msgstr ""
|
1527 |
-
|
1528 |
-
#: adminpages/orders.php:335
|
1529 |
-
msgid "e.g. PayPal Express, PayPal Standard, Credit Card."
|
1530 |
-
msgstr ""
|
1531 |
-
|
1532 |
-
#: adminpages/orders.php:344
|
1533 |
-
msgid "e.g. Visa, MasterCard, AMEX, etc"
|
1534 |
-
msgstr ""
|
1535 |
-
|
1536 |
-
#: adminpages/orders.php:348 adminpages/paymentsettings.php:357
|
1537 |
-
msgid "Account Number"
|
1538 |
-
msgstr ""
|
1539 |
-
|
1540 |
-
#: adminpages/orders.php:353
|
1541 |
-
msgid "Obscure all but last 4 digits."
|
1542 |
-
msgstr ""
|
1543 |
-
|
1544 |
-
#: adminpages/orders.php:358
|
1545 |
-
msgid "Expiration Month"
|
1546 |
-
msgstr ""
|
1547 |
-
|
1548 |
-
#: adminpages/orders.php:365
|
1549 |
-
msgid "Expiration Year"
|
1550 |
-
msgstr ""
|
1551 |
-
|
1552 |
-
#: adminpages/orders.php:373 adminpages/orders.php:606
|
1553 |
-
msgid "Status"
|
1554 |
-
msgstr ""
|
1555 |
-
|
1556 |
-
#: adminpages/orders.php:394 adminpages/orders.php:604
|
1557 |
-
msgid "Gateway"
|
1558 |
-
msgstr ""
|
1559 |
-
|
1560 |
-
#: adminpages/orders.php:398
|
1561 |
-
msgid "Testing Only"
|
1562 |
-
msgstr ""
|
1563 |
-
|
1564 |
-
#: adminpages/orders.php:399 adminpages/paymentsettings.php:163
|
1565 |
-
msgid "Pay by Check"
|
1566 |
-
msgstr ""
|
1567 |
-
|
1568 |
-
#: adminpages/orders.php:411 adminpages/paymentsettings.php:189
|
1569 |
-
msgid "Gateway Environment"
|
1570 |
-
msgstr ""
|
1571 |
-
|
1572 |
-
#: adminpages/orders.php:415 adminpages/paymentsettings.php:193
|
1573 |
-
msgid "Sandbox/Testing"
|
1574 |
-
msgstr ""
|
1575 |
-
|
1576 |
-
#: adminpages/orders.php:416 adminpages/paymentsettings.php:194
|
1577 |
-
msgid "Live/Production"
|
1578 |
-
msgstr ""
|
1579 |
-
|
1580 |
-
#: adminpages/orders.php:423
|
1581 |
-
msgid "Payment Transaction ID"
|
1582 |
-
msgstr ""
|
1583 |
-
|
1584 |
-
#: adminpages/orders.php:428
|
1585 |
-
msgid "Generated by the gateway. Useful to cross reference orders."
|
1586 |
-
msgstr ""
|
1587 |
-
|
1588 |
-
#: adminpages/orders.php:432
|
1589 |
-
msgid "Subscription Transaction ID"
|
1590 |
-
msgstr ""
|
1591 |
-
|
1592 |
-
#: adminpages/orders.php:437
|
1593 |
-
msgid "Generated by the gateway. Useful to cross reference subscriptions."
|
1594 |
-
msgstr ""
|
1595 |
-
|
1596 |
-
#: adminpages/orders.php:477
|
1597 |
-
msgid "Affiliate ID"
|
1598 |
-
msgstr ""
|
1599 |
-
|
1600 |
-
#: adminpages/orders.php:485
|
1601 |
-
msgid "Affiliate SubID"
|
1602 |
-
msgstr ""
|
1603 |
-
|
1604 |
-
#: adminpages/orders.php:495
|
1605 |
-
msgid "Notes"
|
1606 |
-
msgstr ""
|
1607 |
-
|
1608 |
-
#: adminpages/orders.php:510
|
1609 |
-
msgid "Save Order"
|
1610 |
-
msgstr ""
|
1611 |
-
|
1612 |
-
#: adminpages/orders.php:521
|
1613 |
-
msgid "Add New Order"
|
1614 |
-
msgstr ""
|
1615 |
-
|
1616 |
-
#: adminpages/orders.php:522 adminpages/memberslist.php:26
|
1617 |
-
msgid "Export to CSV"
|
1618 |
-
msgstr ""
|
1619 |
-
|
1620 |
-
#: adminpages/orders.php:535 adminpages/orders.php:538
|
1621 |
-
msgid "Search Orders"
|
1622 |
-
msgstr ""
|
1623 |
-
|
1624 |
-
#: adminpages/orders.php:590
|
1625 |
-
#, php-format
|
1626 |
-
msgid "%d orders found."
|
1627 |
-
msgstr ""
|
1628 |
-
|
1629 |
-
#: adminpages/orders.php:599 adminpages/paymentsettings.php:225
|
1630 |
-
#: adminpages/reports/login.php:141
|
1631 |
-
msgid "User"
|
1632 |
-
msgstr ""
|
1633 |
-
|
1634 |
-
#: adminpages/orders.php:603 adminpages/orders.php:651
|
1635 |
-
msgid "Payment"
|
1636 |
-
msgstr ""
|
1637 |
-
|
1638 |
-
#: adminpages/orders.php:605
|
1639 |
-
msgid "Transaction IDs"
|
1640 |
-
msgstr ""
|
1641 |
-
|
1642 |
-
#: adminpages/orders.php:630
|
1643 |
-
msgid "deleted"
|
1644 |
-
msgstr ""
|
1645 |
-
|
1646 |
-
#: adminpages/orders.php:653
|
1647 |
-
msgid "Subscription"
|
1648 |
-
msgstr ""
|
1649 |
-
|
1650 |
-
#: adminpages/orders.php:664
|
1651 |
-
#, php-format
|
1652 |
-
msgid ""
|
1653 |
-
"Deleting orders is permanent and can affect active users. Are you sure you "
|
1654 |
-
"want to delete order %s?"
|
1655 |
-
msgstr ""
|
1656 |
-
|
1657 |
-
#: adminpages/orders.php:674
|
1658 |
-
msgid "No orders found."
|
1659 |
-
msgstr ""
|
1660 |
-
|
1661 |
-
#: adminpages/memberslist.php:30 adminpages/reports/memberships.php:292
|
1662 |
-
#: adminpages/reports/login.php:65 adminpages/reports/sales.php:193
|
1663 |
-
msgid "Show"
|
1664 |
-
msgstr ""
|
1665 |
-
|
1666 |
-
#: adminpages/memberslist.php:32 adminpages/reports/memberships.php:317
|
1667 |
-
#: adminpages/reports/login.php:67 adminpages/reports/sales.php:216
|
1668 |
-
msgid "All Levels"
|
1669 |
-
msgstr ""
|
1670 |
-
|
1671 |
-
#: adminpages/memberslist.php:42
|
1672 |
-
msgid "Old Members"
|
1673 |
-
msgstr ""
|
1674 |
-
|
1675 |
-
#: adminpages/memberslist.php:47 adminpages/memberslist.php:50
|
1676 |
-
msgid "Search Members"
|
1677 |
-
msgstr ""
|
1678 |
-
|
1679 |
-
#: adminpages/memberslist.php:136
|
1680 |
-
#, php-format
|
1681 |
-
msgid "%d members found."
|
1682 |
-
msgstr ""
|
1683 |
-
|
1684 |
-
#: adminpages/memberslist.php:146
|
1685 |
-
msgid "First Name"
|
1686 |
-
msgstr ""
|
1687 |
-
|
1688 |
-
#: adminpages/memberslist.php:147
|
1689 |
-
msgid "Last Name"
|
1690 |
-
msgstr ""
|
1691 |
-
|
1692 |
-
#: adminpages/memberslist.php:152
|
1693 |
-
msgid "Fee"
|
1694 |
-
msgstr ""
|
1695 |
-
|
1696 |
-
#: adminpages/memberslist.php:153 adminpages/reports/login.php:144
|
1697 |
-
msgid "Joined"
|
1698 |
-
msgstr ""
|
1699 |
-
|
1700 |
-
#: adminpages/memberslist.php:157
|
1701 |
-
msgid "Ended"
|
1702 |
-
msgstr ""
|
1703 |
-
|
1704 |
-
#: adminpages/memberslist.php:212
|
1705 |
-
msgid "Never"
|
1706 |
-
msgstr ""
|
1707 |
-
|
1708 |
-
#: adminpages/memberslist.php:223 adminpages/reports/login.php:210
|
1709 |
-
msgid "No members found."
|
1710 |
-
msgstr ""
|
1711 |
-
|
1712 |
-
#: adminpages/memberslist.php:223 adminpages/reports/login.php:210
|
1713 |
-
msgid "Search all levels"
|
1714 |
-
msgstr ""
|
1715 |
-
|
1716 |
-
#: adminpages/paymentsettings.php:78
|
1717 |
-
msgid "Your payment settings have been updated."
|
1718 |
-
msgstr ""
|
1719 |
-
|
1720 |
-
#: adminpages/paymentsettings.php:150 adminpages/paymentsettings.php:158
|
1721 |
-
msgid "Payment Gateway"
|
1722 |
-
msgstr ""
|
1723 |
-
|
1724 |
-
#: adminpages/paymentsettings.php:150
|
1725 |
-
msgid "SSL Settings"
|
1726 |
-
msgstr ""
|
1727 |
-
|
1728 |
-
#: adminpages/paymentsettings.php:179
|
1729 |
-
msgid ""
|
1730 |
-
"This gateway option is in beta. Some functionality may not be available. "
|
1731 |
-
"Please contact Paid Memberships Pro with any issues you run into. "
|
1732 |
-
"<strong>Please be sure to upgrade Paid Memberships Pro to the latest "
|
1733 |
-
"versions when available.</strong>"
|
1734 |
-
msgstr ""
|
1735 |
-
|
1736 |
-
#: adminpages/paymentsettings.php:184
|
1737 |
-
msgid ""
|
1738 |
-
"We do not recommend using PayPal Standard. We suggest using PayPal Express, "
|
1739 |
-
"Website Payments Pro (Legacy), or PayPal Pro (Payflow Pro). <a target="
|
1740 |
-
"\"_blank\" href=\"http://www.paidmembershipspro.com/2013/09/read-using-"
|
1741 |
-
"paypal-standard-paid-memberships-pro/\">More information on why can be found "
|
1742 |
-
"here.</a>"
|
1743 |
-
msgstr ""
|
1744 |
-
|
1745 |
-
#: adminpages/paymentsettings.php:209
|
1746 |
-
msgid "Partner"
|
1747 |
-
msgstr ""
|
1748 |
-
|
1749 |
-
#: adminpages/paymentsettings.php:217
|
1750 |
-
msgid "Vendor"
|
1751 |
-
msgstr ""
|
1752 |
-
|
1753 |
-
#: adminpages/paymentsettings.php:241
|
1754 |
-
msgid "Gateway Account Email"
|
1755 |
-
msgstr ""
|
1756 |
-
|
1757 |
-
#: adminpages/paymentsettings.php:249 adminpages/paymentsettings.php:341
|
1758 |
-
msgid "API Username"
|
1759 |
-
msgstr ""
|
1760 |
-
|
1761 |
-
#: adminpages/paymentsettings.php:257 adminpages/paymentsettings.php:349
|
1762 |
-
msgid "API Password"
|
1763 |
-
msgstr ""
|
1764 |
-
|
1765 |
-
#: adminpages/paymentsettings.php:265
|
1766 |
-
msgid "API Signature"
|
1767 |
-
msgstr ""
|
1768 |
-
|
1769 |
-
#: adminpages/paymentsettings.php:274
|
1770 |
-
msgid "Login Name"
|
1771 |
-
msgstr ""
|
1772 |
-
|
1773 |
-
#: adminpages/paymentsettings.php:282
|
1774 |
-
msgid "Transaction Key"
|
1775 |
-
msgstr ""
|
1776 |
-
|
1777 |
-
#: adminpages/paymentsettings.php:291
|
1778 |
-
msgid "Secret Key"
|
1779 |
-
msgstr ""
|
1780 |
-
|
1781 |
-
#: adminpages/paymentsettings.php:299
|
1782 |
-
msgid "Publishable Key"
|
1783 |
-
msgstr ""
|
1784 |
-
|
1785 |
-
#: adminpages/paymentsettings.php:308 adminpages/paymentsettings.php:374
|
1786 |
-
msgid "Merchant ID"
|
1787 |
-
msgstr ""
|
1788 |
-
|
1789 |
-
#: adminpages/paymentsettings.php:316
|
1790 |
-
msgid "Public Key"
|
1791 |
-
msgstr ""
|
1792 |
-
|
1793 |
-
#: adminpages/paymentsettings.php:324
|
1794 |
-
msgid "Private Key"
|
1795 |
-
msgstr ""
|
1796 |
-
|
1797 |
-
#: adminpages/paymentsettings.php:332
|
1798 |
-
msgid "Client-Side Encryption Key"
|
1799 |
-
msgstr ""
|
1800 |
-
|
1801 |
-
#: adminpages/paymentsettings.php:365
|
1802 |
-
msgid "Secret Word"
|
1803 |
-
msgstr ""
|
1804 |
-
|
1805 |
-
#: adminpages/paymentsettings.php:382
|
1806 |
-
msgid "Transaction Security Key"
|
1807 |
-
msgstr ""
|
1808 |
-
|
1809 |
-
#: adminpages/paymentsettings.php:390
|
1810 |
-
msgid "Encryption key"
|
1811 |
-
msgstr ""
|
1812 |
-
|
1813 |
-
#: adminpages/paymentsettings.php:400
|
1814 |
-
msgid "Currency"
|
1815 |
-
msgstr ""
|
1816 |
-
|
1817 |
-
#: adminpages/paymentsettings.php:420
|
1818 |
-
msgid "Accepted Credit Card Types"
|
1819 |
-
msgstr ""
|
1820 |
-
|
1821 |
-
#: adminpages/paymentsettings.php:434
|
1822 |
-
msgid "Instructions"
|
1823 |
-
msgstr ""
|
1824 |
-
|
1825 |
-
#: adminpages/paymentsettings.php:438
|
1826 |
-
msgid ""
|
1827 |
-
"Who to write the check out to. Where to mail it. Shown on checkout, "
|
1828 |
-
"confirmation, and invoice pages."
|
1829 |
-
msgstr ""
|
1830 |
-
|
1831 |
-
#: adminpages/paymentsettings.php:444
|
1832 |
-
msgid "Show Billing Address Fields"
|
1833 |
-
msgstr ""
|
1834 |
-
|
1835 |
-
#: adminpages/paymentsettings.php:451
|
1836 |
-
msgid ""
|
1837 |
-
"Stripe doesn't require billing address fields. Choose 'No' to hide them on "
|
1838 |
-
"the checkout page.<br /><strong>If No, make sure you disable address "
|
1839 |
-
"verification in the Stripe dashboard settings.</strong>"
|
1840 |
-
msgstr ""
|
1841 |
-
|
1842 |
-
#: adminpages/paymentsettings.php:457
|
1843 |
-
msgid "Sales Tax"
|
1844 |
-
msgstr ""
|
1845 |
-
|
1846 |
-
#: adminpages/paymentsettings.php:460
|
1847 |
-
msgid "Tax State"
|
1848 |
-
msgstr ""
|
1849 |
-
|
1850 |
-
#: adminpages/paymentsettings.php:461
|
1851 |
-
msgid "abbreviation, e.g. \"PA\""
|
1852 |
-
msgstr ""
|
1853 |
-
|
1854 |
-
#: adminpages/paymentsettings.php:463
|
1855 |
-
msgid "decimal, e.g. \"0.06\""
|
1856 |
-
msgstr ""
|
1857 |
-
|
1858 |
-
#: adminpages/paymentsettings.php:464
|
1859 |
-
msgid ""
|
1860 |
-
"US only. If values are given, tax will be applied for any members ordering "
|
1861 |
-
"from the selected state.<br />For non-US or more complex tax rules, use the "
|
1862 |
-
"<a target=\"_blank\" href=\"http://www.paidmembershipspro.com/2013/10/non-us-"
|
1863 |
-
"taxes-paid-memberships-pro/\">pmpro_tax filter</a>."
|
1864 |
-
msgstr ""
|
1865 |
-
|
1866 |
-
#: adminpages/paymentsettings.php:469
|
1867 |
-
msgid "Force SSL"
|
1868 |
-
msgstr ""
|
1869 |
-
|
1870 |
-
#: adminpages/paymentsettings.php:475
|
1871 |
-
msgid "Yes (with JavaScript redirects)"
|
1872 |
-
msgstr ""
|
1873 |
-
|
1874 |
-
#: adminpages/paymentsettings.php:482
|
1875 |
-
msgid "SSL Seal Code"
|
1876 |
-
msgstr ""
|
1877 |
-
|
1878 |
-
#: adminpages/paymentsettings.php:491
|
1879 |
-
msgid "HTTPS Nuclear Option"
|
1880 |
-
msgstr ""
|
1881 |
-
|
1882 |
-
#: adminpages/paymentsettings.php:494
|
1883 |
-
msgid ""
|
1884 |
-
"Use the \"Nuclear Option\" to use secure (HTTPS) URLs on your secure pages. "
|
1885 |
-
"Check this if you are using SSL and have warnings on your checkout pages."
|
1886 |
-
msgstr ""
|
1887 |
-
|
1888 |
-
#: adminpages/paymentsettings.php:499
|
1889 |
-
msgid "IPN Handler URL"
|
1890 |
-
msgstr ""
|
1891 |
-
|
1892 |
-
#: adminpages/paymentsettings.php:502
|
1893 |
-
msgid "To fully integrate with PayPal, be sure to set your IPN Handler URL to "
|
1894 |
-
msgstr ""
|
1895 |
-
|
1896 |
-
#: adminpages/paymentsettings.php:507
|
1897 |
-
msgid "TwoCheckout INS URL"
|
1898 |
-
msgstr ""
|
1899 |
-
|
1900 |
-
#: adminpages/paymentsettings.php:510
|
1901 |
-
msgid ""
|
1902 |
-
"To fully integrate with 2Checkout, be sure to set your 2Checkout INS URL "
|
1903 |
-
msgstr ""
|
1904 |
-
|
1905 |
-
#: adminpages/paymentsettings.php:515
|
1906 |
-
msgid "Silent Post URL"
|
1907 |
-
msgstr ""
|
1908 |
-
|
1909 |
-
#: adminpages/paymentsettings.php:518
|
1910 |
-
msgid ""
|
1911 |
-
"To fully integrate with Authorize.net, be sure to set your Silent Post URL to"
|
1912 |
-
msgstr ""
|
1913 |
-
|
1914 |
-
#: adminpages/paymentsettings.php:523 adminpages/paymentsettings.php:531
|
1915 |
-
msgid "Web Hook URL"
|
1916 |
-
msgstr ""
|
1917 |
-
|
1918 |
-
#: adminpages/paymentsettings.php:526
|
1919 |
-
msgid "To fully integrate with Stripe, be sure to set your Web Hook URL to"
|
1920 |
-
msgstr ""
|
1921 |
-
|
1922 |
-
#: adminpages/paymentsettings.php:535
|
1923 |
-
msgid "To fully integrate with Braintree, be sure to set your Web Hook URL to"
|
1924 |
-
msgstr ""
|
1925 |
-
|
1926 |
-
#: adminpages/paymentsettings.php:546 adminpages/pagesettings.php:223
|
1927 |
-
#: adminpages/advancedsettings.php:284
|
1928 |
-
msgid "Save Settings"
|
1929 |
-
msgstr ""
|
1930 |
-
|
1931 |
-
#: adminpages/reports.php:37
|
1932 |
-
msgid "Details"
|
1933 |
-
msgstr ""
|
1934 |
-
|
1935 |
-
#: adminpages/admin_header.php:25
|
1936 |
-
msgid "Add a membership level to get started."
|
1937 |
-
msgstr ""
|
1938 |
-
|
1939 |
-
#: adminpages/admin_header.php:27
|
1940 |
-
msgid "Setup the membership pages"
|
1941 |
-
msgstr ""
|
1942 |
-
|
1943 |
-
#: adminpages/admin_header.php:29
|
1944 |
-
msgid "Setup your SSL certificate and payment gateway"
|
1945 |
-
msgstr ""
|
1946 |
-
|
1947 |
-
#: adminpages/admin_header.php:38
|
1948 |
-
msgid ""
|
1949 |
-
"The billing details for some of your membership levels is not supported by "
|
1950 |
-
"Stripe."
|
1951 |
-
msgstr ""
|
1952 |
-
|
1953 |
-
#: adminpages/admin_header.php:46
|
1954 |
-
msgid ""
|
1955 |
-
"The billing details for this level are not supported by Stripe. Please "
|
1956 |
-
"review the notes in the Billing Details section below."
|
1957 |
-
msgstr ""
|
1958 |
-
|
1959 |
-
#: adminpages/admin_header.php:50 adminpages/admin_header.php:70
|
1960 |
-
#: adminpages/admin_header.php:90 adminpages/admin_header.php:111
|
1961 |
-
msgid "The levels with issues are highlighted below."
|
1962 |
-
msgstr ""
|
1963 |
-
|
1964 |
-
#: adminpages/admin_header.php:52 adminpages/admin_header.php:72
|
1965 |
-
#: adminpages/admin_header.php:92 adminpages/admin_header.php:113
|
1966 |
-
msgid "Please edit your levels"
|
1967 |
-
msgstr ""
|
1968 |
-
|
1969 |
-
#: adminpages/admin_header.php:58
|
1970 |
-
msgid ""
|
1971 |
-
"The billing details for some of your membership levels is not supported by "
|
1972 |
-
"Payflow."
|
1973 |
-
msgstr ""
|
1974 |
-
|
1975 |
-
#: adminpages/admin_header.php:66
|
1976 |
-
msgid ""
|
1977 |
-
"The billing details for this level are not supported by Payflow. Please "
|
1978 |
-
"review the notes in the Billing Details section below."
|
1979 |
-
msgstr ""
|
1980 |
-
|
1981 |
-
#: adminpages/admin_header.php:78
|
1982 |
-
msgid ""
|
1983 |
-
"The billing details for some of your membership levels is not supported by "
|
1984 |
-
"Braintree."
|
1985 |
-
msgstr ""
|
1986 |
-
|
1987 |
-
#: adminpages/admin_header.php:86
|
1988 |
-
msgid ""
|
1989 |
-
"The billing details for this level are not supported by Braintree. Please "
|
1990 |
-
"review the notes in the Billing Details section below."
|
1991 |
-
msgstr ""
|
1992 |
-
|
1993 |
-
#: adminpages/admin_header.php:98
|
1994 |
-
msgid ""
|
1995 |
-
"The billing details for some of your membership levels is not supported by "
|
1996 |
-
"TwoCheckout."
|
1997 |
-
msgstr ""
|
1998 |
-
|
1999 |
-
#: adminpages/admin_header.php:107
|
2000 |
-
msgid ""
|
2001 |
-
"The billing details for this level are not supported by 2Checkout. Please "
|
2002 |
-
"review the notes in the Billing Details section below."
|
2003 |
-
msgstr ""
|
2004 |
-
|
2005 |
-
#: adminpages/admin_header.php:127
|
2006 |
-
msgid "Plugin Support"
|
2007 |
-
msgstr ""
|
2008 |
-
|
2009 |
-
#: adminpages/admin_header.php:127
|
2010 |
-
msgid "User Forum"
|
2011 |
-
msgstr ""
|
2012 |
-
|
2013 |
-
#: adminpages/admin_header.php:150 adminpages/pagesettings.php:92
|
2014 |
-
msgid "Pages"
|
2015 |
-
msgstr ""
|
2016 |
-
|
2017 |
-
#: adminpages/admin_header.php:151
|
2018 |
-
msgid "Payment Gateway & SSL"
|
2019 |
-
msgstr ""
|
2020 |
-
|
2021 |
-
#: adminpages/admin_header.php:153
|
2022 |
-
msgid "Advanced"
|
2023 |
-
msgstr ""
|
2024 |
-
|
2025 |
-
#: adminpages/pagesettings.php:83
|
2026 |
-
msgid "The following pages have been created for you"
|
2027 |
-
msgstr ""
|
2028 |
-
|
2029 |
-
#: adminpages/pagesettings.php:98
|
2030 |
-
msgid ""
|
2031 |
-
"Manage the WordPress pages assigned to each required Paid Memberships Pro "
|
2032 |
-
"page."
|
2033 |
-
msgstr ""
|
2034 |
-
|
2035 |
-
#: adminpages/pagesettings.php:104
|
2036 |
-
msgid ""
|
2037 |
-
"Assign the WordPress pages for each required Paid Memberships Pro page or"
|
2038 |
-
msgstr ""
|
2039 |
-
|
2040 |
-
#: adminpages/pagesettings.php:104
|
2041 |
-
msgid "click here to let us generate them for you"
|
2042 |
-
msgstr ""
|
2043 |
-
|
2044 |
-
#: adminpages/pagesettings.php:112
|
2045 |
-
msgid "Account Page"
|
2046 |
-
msgstr ""
|
2047 |
-
|
2048 |
-
#: adminpages/pagesettings.php:119 adminpages/pagesettings.php:134
|
2049 |
-
#: adminpages/pagesettings.php:149 adminpages/pagesettings.php:165
|
2050 |
-
#: adminpages/pagesettings.php:181 adminpages/pagesettings.php:197
|
2051 |
-
#: adminpages/pagesettings.php:213
|
2052 |
-
msgid "edit page"
|
2053 |
-
msgstr ""
|
2054 |
-
|
2055 |
-
#: adminpages/pagesettings.php:121 adminpages/pagesettings.php:136
|
2056 |
-
#: adminpages/pagesettings.php:151 adminpages/pagesettings.php:167
|
2057 |
-
#: adminpages/pagesettings.php:183 adminpages/pagesettings.php:199
|
2058 |
-
#: adminpages/pagesettings.php:215
|
2059 |
-
msgid "view page"
|
2060 |
-
msgstr ""
|
2061 |
-
|
2062 |
-
#: adminpages/pagesettings.php:123 adminpages/pagesettings.php:138
|
2063 |
-
#: adminpages/pagesettings.php:153 adminpages/pagesettings.php:169
|
2064 |
-
#: adminpages/pagesettings.php:185 adminpages/pagesettings.php:201
|
2065 |
-
#: adminpages/pagesettings.php:217
|
2066 |
-
msgid "Include the shortcode"
|
2067 |
-
msgstr ""
|
2068 |
-
|
2069 |
-
#: adminpages/pagesettings.php:127
|
2070 |
-
msgid "Billing Information Page"
|
2071 |
-
msgstr ""
|
2072 |
-
|
2073 |
-
#: adminpages/pagesettings.php:142
|
2074 |
-
msgid "Cancel Page"
|
2075 |
-
msgstr ""
|
2076 |
-
|
2077 |
-
#: adminpages/pagesettings.php:158
|
2078 |
-
msgid "Checkout Page"
|
2079 |
-
msgstr ""
|
2080 |
-
|
2081 |
-
#: adminpages/pagesettings.php:174
|
2082 |
-
msgid "Confirmation Page"
|
2083 |
-
msgstr ""
|
2084 |
-
|
2085 |
-
#: adminpages/pagesettings.php:190
|
2086 |
-
msgid "Invoice Page"
|
2087 |
-
msgstr ""
|
2088 |
-
|
2089 |
-
#: adminpages/pagesettings.php:206
|
2090 |
-
msgid "Levels Page"
|
2091 |
-
msgstr ""
|
2092 |
-
|
2093 |
-
#: adminpages/discountcodes.php:48
|
2094 |
-
msgid "Discount code updated successfully."
|
2095 |
-
msgstr ""
|
2096 |
-
|
2097 |
-
#: adminpages/discountcodes.php:55
|
2098 |
-
msgid "Error updating discount code. That code may already be in use."
|
2099 |
-
msgstr ""
|
2100 |
-
|
2101 |
-
#: adminpages/discountcodes.php:64
|
2102 |
-
msgid "Discount code added successfully."
|
2103 |
-
msgstr ""
|
2104 |
-
|
2105 |
-
#: adminpages/discountcodes.php:71
|
2106 |
-
msgid "Error adding discount code. That code may already be in use."
|
2107 |
-
msgstr ""
|
2108 |
-
|
2109 |
-
#: adminpages/discountcodes.php:196
|
2110 |
-
#, php-format
|
2111 |
-
msgid "Error saving values for the %s level."
|
2112 |
-
msgstr ""
|
2113 |
-
|
2114 |
-
#: adminpages/discountcodes.php:204
|
2115 |
-
msgid "There were errors updating the level values: "
|
2116 |
-
msgstr ""
|
2117 |
-
|
2118 |
-
#: adminpages/discountcodes.php:234
|
2119 |
-
#, php-format
|
2120 |
-
msgid "Code %s deleted successfully."
|
2121 |
-
msgstr ""
|
2122 |
-
|
2123 |
-
#: adminpages/discountcodes.php:239
|
2124 |
-
msgid ""
|
2125 |
-
"Error deleting discount code. The code was only partially deleted. Please "
|
2126 |
-
"try again."
|
2127 |
-
msgstr ""
|
2128 |
-
|
2129 |
-
#: adminpages/discountcodes.php:245
|
2130 |
-
msgid "Error deleting code. Please try again."
|
2131 |
-
msgstr ""
|
2132 |
-
|
2133 |
-
#: adminpages/discountcodes.php:251
|
2134 |
-
msgid "Code not found."
|
2135 |
-
msgstr ""
|
2136 |
-
|
2137 |
-
#: adminpages/discountcodes.php:264
|
2138 |
-
msgid "Edit Discount Code"
|
2139 |
-
msgstr ""
|
2140 |
-
|
2141 |
-
#: adminpages/discountcodes.php:266 adminpages/discountcodes.php:526
|
2142 |
-
msgid "Add New Discount Code"
|
2143 |
-
msgstr ""
|
2144 |
-
|
2145 |
-
#: adminpages/discountcodes.php:349
|
2146 |
-
msgid "Start Date"
|
2147 |
-
msgstr ""
|
2148 |
-
|
2149 |
-
#: adminpages/discountcodes.php:385 adminpages/discountcodes.php:551
|
2150 |
-
msgid "Uses"
|
2151 |
-
msgstr ""
|
2152 |
-
|
2153 |
-
#: adminpages/discountcodes.php:388
|
2154 |
-
msgid "Leave blank for unlimited uses."
|
2155 |
-
msgstr ""
|
2156 |
-
|
2157 |
-
#: adminpages/discountcodes.php:437
|
2158 |
-
msgid "Billing Ammount"
|
2159 |
-
msgstr ""
|
2160 |
-
|
2161 |
-
#: adminpages/discountcodes.php:525
|
2162 |
-
msgid "Memberships Discount Codes"
|
2163 |
-
msgstr ""
|
2164 |
-
|
2165 |
-
#: adminpages/discountcodes.php:535
|
2166 |
-
msgid "Search Discount Codes"
|
2167 |
-
msgstr ""
|
2168 |
-
|
2169 |
-
#: adminpages/discountcodes.php:538 adminpages/reports/login.php:81
|
2170 |
-
msgid "Search"
|
2171 |
-
msgstr ""
|
2172 |
-
|
2173 |
-
#: adminpages/discountcodes.php:549
|
2174 |
-
msgid "Starts"
|
2175 |
-
msgstr ""
|
2176 |
-
|
2177 |
-
#: adminpages/discountcodes.php:552
|
2178 |
-
msgid "Levels"
|
2179 |
-
msgstr ""
|
2180 |
-
|
2181 |
-
#: adminpages/discountcodes.php:570
|
2182 |
-
msgid ""
|
2183 |
-
"Discount codes allow you to offer your memberships at discounted prices to "
|
2184 |
-
"select customers."
|
2185 |
-
msgstr ""
|
2186 |
-
|
2187 |
-
#: adminpages/discountcodes.php:570
|
2188 |
-
msgid "Create your first discount code now"
|
2189 |
-
msgstr ""
|
2190 |
-
|
2191 |
-
#: adminpages/discountcodes.php:617
|
2192 |
-
#, php-format
|
2193 |
-
msgid ""
|
2194 |
-
"Are you sure you want to delete the %s discount code? The subscriptions for "
|
2195 |
-
"existing users will not change, but new users will not be able to use this "
|
2196 |
-
"code anymore."
|
2197 |
-
msgstr ""
|
2198 |
-
|
2199 |
-
#: adminpages/addons.php:79
|
2200 |
-
msgid "Enabled"
|
2201 |
-
msgstr ""
|
2202 |
-
|
2203 |
-
#: adminpages/addons.php:79
|
2204 |
-
msgid "Disabled"
|
2205 |
-
msgstr ""
|
2206 |
-
|
2207 |
-
#: adminpages/emailsettings.php:61
|
2208 |
-
msgid ""
|
2209 |
-
"By default, system generated emails are sent from "
|
2210 |
-
"<em><strong>wordpress@yourdomain.com</strong></em>. You can update this from "
|
2211 |
-
"address using the fields below."
|
2212 |
-
msgstr ""
|
2213 |
-
|
2214 |
-
#: adminpages/emailsettings.php:63
|
2215 |
-
msgid ""
|
2216 |
-
"To modify the appearance of system generated emails, add the files "
|
2217 |
-
"<em>email_header.html</em> and <em>email_footer.html</em> to your theme's "
|
2218 |
-
"directory. This will modify both the WordPress default messages as well as "
|
2219 |
-
"messages generated by Paid Memberships Pro. <a title=\"Paid Memberships Pro "
|
2220 |
-
"- Member Communications\" target=\"_blank\" href=\"http://www."
|
2221 |
-
"paidmembershipspro.com/documentation/member-communications/\">Click here to "
|
2222 |
-
"learn more about Paid Memberships Pro emails</a>."
|
2223 |
-
msgstr ""
|
2224 |
-
|
2225 |
-
#: adminpages/emailsettings.php:69
|
2226 |
-
msgid "From Email"
|
2227 |
-
msgstr ""
|
2228 |
-
|
2229 |
-
#: adminpages/emailsettings.php:77
|
2230 |
-
msgid "From Name"
|
2231 |
-
msgstr ""
|
2232 |
-
|
2233 |
-
#: adminpages/emailsettings.php:86
|
2234 |
-
msgid "Send the site admin emails"
|
2235 |
-
msgstr ""
|
2236 |
-
|
2237 |
-
#: adminpages/emailsettings.php:92
|
2238 |
-
msgid "Checkout"
|
2239 |
-
msgstr ""
|
2240 |
-
|
2241 |
-
#: adminpages/emailsettings.php:96
|
2242 |
-
msgid "when a member checks out."
|
2243 |
-
msgstr ""
|
2244 |
-
|
2245 |
-
#: adminpages/emailsettings.php:101
|
2246 |
-
msgid "Admin Changes"
|
2247 |
-
msgstr ""
|
2248 |
-
|
2249 |
-
#: adminpages/emailsettings.php:105
|
2250 |
-
msgid "when an admin changes a user's membership level through the dashboard."
|
2251 |
-
msgstr ""
|
2252 |
-
|
2253 |
-
#: adminpages/emailsettings.php:110
|
2254 |
-
msgid "Cancellation"
|
2255 |
-
msgstr ""
|
2256 |
-
|
2257 |
-
#: adminpages/emailsettings.php:114
|
2258 |
-
msgid "when a user cancels his or her account."
|
2259 |
-
msgstr ""
|
2260 |
-
|
2261 |
-
#: adminpages/emailsettings.php:119
|
2262 |
-
msgid "Bill Updates"
|
2263 |
-
msgstr ""
|
2264 |
-
|
2265 |
-
#: adminpages/emailsettings.php:123
|
2266 |
-
msgid "when a user updates his or her billing information."
|
2267 |
-
msgstr ""
|
2268 |
-
|
2269 |
-
#: adminpages/emailsettings.php:129
|
2270 |
-
msgid "Send members emails"
|
2271 |
-
msgstr ""
|
2272 |
-
|
2273 |
-
#: adminpages/emailsettings.php:135
|
2274 |
-
msgid "New Users"
|
2275 |
-
msgstr ""
|
2276 |
-
|
2277 |
-
#: adminpages/emailsettings.php:139
|
2278 |
-
msgid ""
|
2279 |
-
"Default WP notification email. (Recommended: Leave unchecked. Members will "
|
2280 |
-
"still get an email confirmation from PMPro after checkout.)"
|
2281 |
-
msgstr ""
|
2282 |
-
|
2283 |
-
#: adminpages/advancedsettings.php:35
|
2284 |
-
msgid "Your advanced settings have been updated."
|
2285 |
-
msgstr ""
|
2286 |
-
|
2287 |
-
#: adminpages/advancedsettings.php:85
|
2288 |
-
msgid "Message for Logged-in Non-members"
|
2289 |
-
msgstr ""
|
2290 |
-
|
2291 |
-
#: adminpages/advancedsettings.php:89
|
2292 |
-
msgid ""
|
2293 |
-
"This message replaces the post content for non-members. Available variables"
|
2294 |
-
msgstr ""
|
2295 |
-
|
2296 |
-
#: adminpages/advancedsettings.php:94
|
2297 |
-
msgid "Message for Logged-out Users"
|
2298 |
-
msgstr ""
|
2299 |
-
|
2300 |
-
#: adminpages/advancedsettings.php:98
|
2301 |
-
msgid "This message replaces the post content for logged-out visitors."
|
2302 |
-
msgstr ""
|
2303 |
-
|
2304 |
-
#: adminpages/advancedsettings.php:103
|
2305 |
-
msgid "Message for RSS Feed"
|
2306 |
-
msgstr ""
|
2307 |
-
|
2308 |
-
#: adminpages/advancedsettings.php:107
|
2309 |
-
msgid "This message replaces the post content in RSS feeds."
|
2310 |
-
msgstr ""
|
2311 |
-
|
2312 |
-
#: adminpages/advancedsettings.php:113
|
2313 |
-
msgid "Show Excerpts to Non-Members?"
|
2314 |
-
msgstr ""
|
2315 |
-
|
2316 |
-
#: adminpages/advancedsettings.php:117
|
2317 |
-
msgid "No - Hide excerpts."
|
2318 |
-
msgstr ""
|
2319 |
-
|
2320 |
-
#: adminpages/advancedsettings.php:118
|
2321 |
-
msgid "Yes - Show excerpts."
|
2322 |
-
msgstr ""
|
2323 |
-
|
2324 |
-
#: adminpages/advancedsettings.php:129
|
2325 |
-
msgid "Hide Ads From All Members"
|
2326 |
-
msgstr ""
|
2327 |
-
|
2328 |
-
#: adminpages/advancedsettings.php:130
|
2329 |
-
msgid "Hide Ads From Certain Members"
|
2330 |
-
msgstr ""
|
2331 |
-
|
2332 |
-
#: adminpages/advancedsettings.php:137
|
2333 |
-
msgid "Ads from the following plugins will be automatically turned off"
|
2334 |
-
msgstr ""
|
2335 |
-
|
2336 |
-
#: adminpages/advancedsettings.php:138
|
2337 |
-
msgid "To hide ads in your template code, use code like the following"
|
2338 |
-
msgstr ""
|
2339 |
-
|
2340 |
-
#: adminpages/advancedsettings.php:149
|
2341 |
-
msgid "Choose Levels to Hide Ads From"
|
2342 |
-
msgstr ""
|
2343 |
-
|
2344 |
-
#: adminpages/advancedsettings.php:183
|
2345 |
-
msgid "Redirect all traffic from registration page to /susbcription/?"
|
2346 |
-
msgstr ""
|
2347 |
-
|
2348 |
-
#: adminpages/advancedsettings.php:183
|
2349 |
-
msgid "multisite only"
|
2350 |
-
msgstr ""
|
2351 |
-
|
2352 |
-
#: adminpages/advancedsettings.php:195
|
2353 |
-
msgid "Use reCAPTCHA?"
|
2354 |
-
msgstr ""
|
2355 |
-
|
2356 |
-
#: adminpages/advancedsettings.php:200
|
2357 |
-
msgid "Yes - Free memberships only."
|
2358 |
-
msgstr ""
|
2359 |
-
|
2360 |
-
#: adminpages/advancedsettings.php:201
|
2361 |
-
msgid "Yes - All memberships."
|
2362 |
-
msgstr ""
|
2363 |
-
|
2364 |
-
#: adminpages/advancedsettings.php:203
|
2365 |
-
msgid "A free reCAPTCHA key is required."
|
2366 |
-
msgstr ""
|
2367 |
-
|
2368 |
-
#: adminpages/advancedsettings.php:203
|
2369 |
-
msgid "Click here to signup for reCAPTCHA"
|
2370 |
-
msgstr ""
|
2371 |
-
|
2372 |
-
#: adminpages/advancedsettings.php:209
|
2373 |
-
msgid "reCAPTCHA Public Key"
|
2374 |
-
msgstr ""
|
2375 |
-
|
2376 |
-
#: adminpages/advancedsettings.php:212
|
2377 |
-
msgid "reCAPTCHA Private Key"
|
2378 |
-
msgstr ""
|
2379 |
-
|
2380 |
-
#: adminpages/advancedsettings.php:218
|
2381 |
-
msgid "Require Terms of Service on signups?"
|
2382 |
-
msgstr ""
|
2383 |
-
|
2384 |
-
#: adminpages/advancedsettings.php:225
|
2385 |
-
msgid ""
|
2386 |
-
"If yes, create a WordPress page containing your TOS agreement and assign it "
|
2387 |
-
"using the dropdown above."
|
2388 |
-
msgstr ""
|
2389 |
-
|
2390 |
-
#: adminpages/reports/memberships.php:18
|
2391 |
-
#: adminpages/reports/memberships.php:288
|
2392 |
-
msgid "Membership Stats"
|
2393 |
-
msgstr ""
|
2394 |
-
|
2395 |
-
#: adminpages/reports/memberships.php:294 adminpages/reports/sales.php:195
|
2396 |
-
msgid "Daily"
|
2397 |
-
msgstr ""
|
2398 |
-
|
2399 |
-
#: adminpages/reports/memberships.php:295 adminpages/reports/sales.php:196
|
2400 |
-
msgid "Monthly"
|
2401 |
-
msgstr ""
|
2402 |
-
|
2403 |
-
#: adminpages/reports/memberships.php:296 adminpages/reports/sales.php:197
|
2404 |
-
msgid "Annual"
|
2405 |
-
msgstr ""
|
2406 |
-
|
2407 |
-
#: adminpages/reports/memberships.php:299
|
2408 |
-
msgid "Signups vs. Cancellations"
|
2409 |
-
msgstr ""
|
2410 |
-
|
2411 |
-
#: adminpages/reports/memberships.php:331 adminpages/reports/sales.php:230
|
2412 |
-
msgid "Generate Report"
|
2413 |
-
msgstr ""
|
2414 |
-
|
2415 |
-
#: adminpages/reports/login.php:16
|
2416 |
-
msgid "Visits, Views, and Logins"
|
2417 |
-
msgstr ""
|
2418 |
-
|
2419 |
-
#: adminpages/reports/login.php:26
|
2420 |
-
msgid "Visits Today"
|
2421 |
-
msgstr ""
|
2422 |
-
|
2423 |
-
#: adminpages/reports/login.php:27 adminpages/reports/login.php:147
|
2424 |
-
msgid "Visits This Month"
|
2425 |
-
msgstr ""
|
2426 |
-
|
2427 |
-
#: adminpages/reports/login.php:28
|
2428 |
-
msgid "Visits All Time"
|
2429 |
-
msgstr ""
|
2430 |
-
|
2431 |
-
#: adminpages/reports/login.php:31
|
2432 |
-
msgid "Views Today"
|
2433 |
-
msgstr ""
|
2434 |
-
|
2435 |
-
#: adminpages/reports/login.php:32 adminpages/reports/login.php:149
|
2436 |
-
msgid "Views This Month"
|
2437 |
-
msgstr ""
|
2438 |
-
|
2439 |
-
#: adminpages/reports/login.php:33
|
2440 |
-
msgid "Views All Time"
|
2441 |
-
msgstr ""
|
2442 |
-
|
2443 |
-
#: adminpages/reports/login.php:36
|
2444 |
-
msgid "Logins Today"
|
2445 |
-
msgstr ""
|
2446 |
-
|
2447 |
-
#: adminpages/reports/login.php:37 adminpages/reports/login.php:152
|
2448 |
-
msgid "Logins This Month"
|
2449 |
-
msgstr ""
|
2450 |
-
|
2451 |
-
#: adminpages/reports/login.php:38
|
2452 |
-
msgid "Logins All Time"
|
2453 |
-
msgstr ""
|
2454 |
-
|
2455 |
-
#: adminpages/reports/login.php:61
|
2456 |
-
msgid "Visits, Views, and Logins Report"
|
2457 |
-
msgstr ""
|
2458 |
-
|
2459 |
-
#: adminpages/reports/login.php:66
|
2460 |
-
msgid "All Users"
|
2461 |
-
msgstr ""
|
2462 |
-
|
2463 |
-
#: adminpages/reports/login.php:146
|
2464 |
-
msgid "Last Visit"
|
2465 |
-
msgstr ""
|
2466 |
-
|
2467 |
-
#: adminpages/reports/login.php:148
|
2468 |
-
msgid "Total Visits"
|
2469 |
-
msgstr ""
|
2470 |
-
|
2471 |
-
#: adminpages/reports/login.php:150
|
2472 |
-
msgid "Total Views"
|
2473 |
-
msgstr ""
|
2474 |
-
|
2475 |
-
#: adminpages/reports/login.php:151
|
2476 |
-
msgid "Last Login"
|
2477 |
-
msgstr ""
|
2478 |
-
|
2479 |
-
#: adminpages/reports/login.php:153
|
2480 |
-
msgid "Total Logins"
|
2481 |
-
msgstr ""
|
2482 |
-
|
2483 |
-
#: adminpages/reports/sales.php:18
|
2484 |
-
msgid "Sales and Revenue (Testing/Sandbox)"
|
2485 |
-
msgstr ""
|
2486 |
-
|
2487 |
-
#: adminpages/reports/sales.php:20 adminpages/reports/sales.php:189
|
2488 |
-
msgid "Sales and Revenue"
|
2489 |
-
msgstr ""
|
2490 |
-
|
2491 |
-
#: adminpages/reports/sales.php:200
|
2492 |
-
msgid "Revenue"
|
2493 |
-
msgstr ""
|
2494 |
-
|
2495 |
-
#: adminpages/reports/sales.php:201
|
2496 |
-
msgid "Sales"
|
2497 |
-
msgstr ""
|
2498 |
-
|
2499 |
-
#: scheduled/crons.php:31
|
2500 |
-
#, php-format
|
2501 |
-
msgid "Membership expired email sent to %s. "
|
2502 |
-
msgstr ""
|
2503 |
-
|
2504 |
-
#: scheduled/crons.php:384 scheduled/crons.php:440
|
2505 |
-
#, php-format
|
2506 |
-
msgid "Membership expiring email sent to %s. "
|
2507 |
-
msgstr ""
|
2508 |
-
|
2509 |
-
#: scheduled/crons.php:509
|
2510 |
-
#, php-format
|
2511 |
-
msgid "Credit card expiring email sent to %s. "
|
2512 |
-
msgstr ""
|
2513 |
-
|
2514 |
-
#: scheduled/crons.php:562
|
2515 |
-
#, php-format
|
2516 |
-
msgid "Trial ending email sent to %s. "
|
2517 |
-
msgstr ""
|
2518 |
-
|
2519 |
-
#: services/stripe-webhook.php:176
|
2520 |
-
#, php-format
|
2521 |
-
msgid ""
|
2522 |
-
"%s has had their payment subscription cancelled by Stripe. Please check that "
|
2523 |
-
"this user's membership is cancelled on your site if it should be."
|
2524 |
-
msgstr ""
|
2525 |
-
|
2526 |
-
#: services/authnet-silent-post.php:133
|
2527 |
-
msgid ""
|
2528 |
-
"<p>A payment is being held for review within Authorize.net.</p><p>Payment "
|
2529 |
-
"Information From Authorize.net"
|
2530 |
-
msgstr ""
|
2531 |
-
|
2532 |
-
#: services/applydiscountcode.php:64
|
2533 |
-
#, php-format
|
2534 |
-
msgid "The %s code has been applied to your order. "
|
2535 |
-
msgstr ""
|
2536 |
-
|
2537 |
-
#: services/applydiscountcode.php:83
|
2538 |
-
#, php-format
|
2539 |
-
msgid "The <strong>%s</strong> code has been applied to your order."
|
2540 |
-
msgstr ""
|
2541 |
-
|
2542 |
-
#: preheaders/account.php:7 preheaders/levels.php:19
|
2543 |
-
msgid "Your membership status has been updated - Thank you!"
|
2544 |
-
msgstr ""
|
2545 |
-
|
2546 |
-
#: preheaders/account.php:11 preheaders/levels.php:23
|
2547 |
-
msgid ""
|
2548 |
-
"Sorry, your request could not be completed - please try again in a few "
|
2549 |
-
"moments."
|
2550 |
-
msgstr ""
|
2551 |
-
|
2552 |
-
#: preheaders/checkout.php:28 preheaders/checkout.php:509
|
2553 |
-
msgid "Invalid gateway."
|
2554 |
-
msgstr ""
|
2555 |
-
|
2556 |
-
#: preheaders/checkout.php:96
|
2557 |
-
msgid "Checkout: Payment Information"
|
2558 |
-
msgstr ""
|
2559 |
-
|
2560 |
-
#: preheaders/checkout.php:109
|
2561 |
-
msgid "Setup Your Account"
|
2562 |
-
msgstr ""
|
2563 |
-
|
2564 |
-
#: preheaders/checkout.php:482 preheaders/billing.php:258
|
2565 |
-
msgid "Please complete all required fields."
|
2566 |
-
msgstr ""
|
2567 |
-
|
2568 |
-
#: preheaders/checkout.php:486
|
2569 |
-
msgid "Your passwords do not match. Please try again."
|
2570 |
-
msgstr ""
|
2571 |
-
|
2572 |
-
#: preheaders/checkout.php:492 preheaders/billing.php:263
|
2573 |
-
msgid "Your email addresses do not match. Please try again."
|
2574 |
-
msgstr ""
|
2575 |
-
|
2576 |
-
#: preheaders/checkout.php:498 preheaders/billing.php:268
|
2577 |
-
msgid "The email address entered is in an invalid format. Please try again."
|
2578 |
-
msgstr ""
|
2579 |
-
|
2580 |
-
#: preheaders/checkout.php:504
|
2581 |
-
#, php-format
|
2582 |
-
msgid "Please check the box to agree to the %s."
|
2583 |
-
msgstr ""
|
2584 |
-
|
2585 |
-
#: preheaders/checkout.php:513
|
2586 |
-
msgid "Are you a spammer?"
|
2587 |
-
msgstr ""
|
2588 |
-
|
2589 |
-
#: preheaders/checkout.php:536
|
2590 |
-
msgid "That username is already taken. Please try another."
|
2591 |
-
msgstr ""
|
2592 |
-
|
2593 |
-
#: preheaders/checkout.php:542
|
2594 |
-
msgid "That email address is already taken. Please try another."
|
2595 |
-
msgstr ""
|
2596 |
-
|
2597 |
-
#: preheaders/checkout.php:562
|
2598 |
-
#, php-format
|
2599 |
-
msgid "reCAPTCHA failed. (%s) Please try again."
|
2600 |
-
msgstr ""
|
2601 |
-
|
2602 |
-
#: preheaders/checkout.php:702
|
2603 |
-
msgid "Payment accepted."
|
2604 |
-
msgstr ""
|
2605 |
-
|
2606 |
-
#: preheaders/checkout.php:710
|
2607 |
-
msgid ""
|
2608 |
-
"Unknown error generating account. Please contact us to setup your membership."
|
2609 |
-
msgstr ""
|
2610 |
-
|
2611 |
-
#: preheaders/checkout.php:754 preheaders/checkout.php:823
|
2612 |
-
msgid "The PayPal Token was lost."
|
2613 |
-
msgstr ""
|
2614 |
-
|
2615 |
-
#: preheaders/checkout.php:860
|
2616 |
-
msgid ""
|
2617 |
-
"Your payment was accepted, but there was an error setting up your account. "
|
2618 |
-
"Please contact us."
|
2619 |
-
msgstr ""
|
2620 |
-
|
2621 |
-
#: preheaders/checkout.php:1046
|
2622 |
-
msgid ""
|
2623 |
-
"IMPORTANT: Something went wrong during membership creation. Your credit card "
|
2624 |
-
"authorized, but we cancelled the order immediately. You should not try to "
|
2625 |
-
"submit this form again. Please contact the site owner to fix this issue."
|
2626 |
-
msgstr ""
|
2627 |
-
|
2628 |
-
#: preheaders/checkout.php:1051
|
2629 |
-
msgid ""
|
2630 |
-
"IMPORTANT: Something went wrong during membership creation. Your credit card "
|
2631 |
-
"was charged, but we couldn't assign your membership. You should not submit "
|
2632 |
-
"this form again. Please contact the site owner to fix this issue."
|
2633 |
-
msgstr ""
|
2634 |
-
|
2635 |
-
#: preheaders/checkout.php:1064
|
2636 |
-
#, php-format
|
2637 |
-
msgid ""
|
2638 |
-
"You must <a href=\"%s\">setup a Payment Gateway</a> before any payments will "
|
2639 |
-
"be processed."
|
2640 |
-
msgstr ""
|
2641 |
-
|
2642 |
-
#: preheaders/checkout.php:1066
|
2643 |
-
msgid "A Payment Gateway must be setup before any payments will be processed."
|
2644 |
-
msgstr ""
|
2645 |
-
|
2646 |
-
#: preheaders/cancel.php:24
|
2647 |
-
msgid "Your membership has been cancelled."
|
2648 |
-
msgstr ""
|
2649 |
-
|
2650 |
-
#: preheaders/billing.php:274
|
2651 |
-
msgid "All good!"
|
2652 |
-
msgstr ""
|
2653 |
-
|
2654 |
-
#: preheaders/billing.php:340
|
2655 |
-
#, php-format
|
2656 |
-
msgid "Information updated. <a href=\"%s\">« back to my account</a>"
|
2657 |
-
msgstr ""
|
2658 |
-
|
2659 |
-
#: preheaders/billing.php:347
|
2660 |
-
msgid "Error updating billing information."
|
2661 |
-
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/pmpro-es_CL.mo
DELETED
Binary file
|
languages/pmpro-es_CL.po
DELETED
@@ -1,2662 +0,0 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Project-Id-Version: pmpro\n"
|
4 |
-
"POT-Creation-Date: 2013-08-01 05:01-0500\n"
|
5 |
-
"PO-Revision-Date: 2013-08-22 03:37-0800\n"
|
6 |
-
"Last-Translator: \n"
|
7 |
-
"Language-Team: Stranger Studios <jason@strangerstudios.com>\n"
|
8 |
-
"MIME-Version: 1.0\n"
|
9 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
-
"Content-Transfer-Encoding: 8bit\n"
|
11 |
-
"X-Generator: Poedit 1.5.7\n"
|
12 |
-
"X-Poedit-KeywordsList: __;_;_e;_ex;_x;_n\n"
|
13 |
-
"X-Poedit-Basepath: ../\n"
|
14 |
-
"X-Poedit-SearchPath-0: includes\n"
|
15 |
-
"X-Poedit-SearchPath-1: .\n"
|
16 |
-
"X-Poedit-SearchPath-2: classes\n"
|
17 |
-
"X-Poedit-SearchPath-3: preheaders\n"
|
18 |
-
"X-Poedit-SearchPath-4: pages\n"
|
19 |
-
"X-Poedit-SearchPath-5: adminpages\n"
|
20 |
-
"X-Poedit-SearchPath-6: classes/gateways\n"
|
21 |
-
"X-Poedit-SearchPath-7: services\n"
|
22 |
-
"X-Poedit-SearchPath-8: shortcodes\n"
|
23 |
-
"X-Poedit-SearchPath-9: scheduled\n"
|
24 |
-
|
25 |
-
#: includes/adminpages.php:9 includes/adminpages.php:39
|
26 |
-
msgid "Memberships"
|
27 |
-
msgstr "Membresía"
|
28 |
-
|
29 |
-
#: includes/adminpages.php:10 includes/adminpages.php:49
|
30 |
-
msgid "Page Settings"
|
31 |
-
msgstr "Ajustes de Página"
|
32 |
-
|
33 |
-
#: includes/adminpages.php:11 includes/adminpages.php:54
|
34 |
-
msgid "Payment Settings"
|
35 |
-
msgstr "Ajustes de Facturación"
|
36 |
-
|
37 |
-
#: includes/adminpages.php:12 includes/adminpages.php:59
|
38 |
-
#: adminpages/emailsettings.php:60
|
39 |
-
msgid "Email Settings"
|
40 |
-
msgstr "Ajustes de Email"
|
41 |
-
|
42 |
-
#: includes/adminpages.php:13 includes/adminpages.php:64
|
43 |
-
#: adminpages/advancedsettings.php:79
|
44 |
-
msgid "Advanced Settings"
|
45 |
-
msgstr "Opciones Avanzadas"
|
46 |
-
|
47 |
-
#: includes/adminpages.php:14 includes/adminpages.php:69
|
48 |
-
#: adminpages/admin_header.php:133
|
49 |
-
msgid "Add Ons"
|
50 |
-
msgstr "Add Ons"
|
51 |
-
|
52 |
-
#: includes/adminpages.php:15 includes/adminpages.php:74
|
53 |
-
#: adminpages/memberslist.php:25
|
54 |
-
msgid "Members List"
|
55 |
-
msgstr "Lista de Miembros"
|
56 |
-
|
57 |
-
#: includes/adminpages.php:16 includes/adminpages.php:79
|
58 |
-
msgid "Reports"
|
59 |
-
msgstr "Informes"
|
60 |
-
|
61 |
-
#: includes/adminpages.php:17 includes/adminpages.php:84
|
62 |
-
#: adminpages/orders.php:520
|
63 |
-
msgid "Orders"
|
64 |
-
msgstr "Órdenes"
|
65 |
-
|
66 |
-
#: includes/adminpages.php:18 includes/adminpages.php:89
|
67 |
-
msgid "Discount Codes"
|
68 |
-
msgstr "Códigos de Descuento"
|
69 |
-
|
70 |
-
#: includes/adminpages.php:44 adminpages/admin_header.php:128
|
71 |
-
#: adminpages/membershiplevels.php:490
|
72 |
-
msgid "Membership Levels"
|
73 |
-
msgstr "Niveles de Membresía"
|
74 |
-
|
75 |
-
#: includes/cleanup.php:24
|
76 |
-
#, php-format
|
77 |
-
msgid ""
|
78 |
-
"There was an error canceling the subscription for user with ID=%s. You will "
|
79 |
-
"want to check your payment gateway to see if their subscription is still "
|
80 |
-
"active."
|
81 |
-
msgstr ""
|
82 |
-
"Hubo un error cancelando la subscripcion para el usuario con ID=%s. Deberías "
|
83 |
-
"comprobar tu procesamiento de pagos (payment gateway) y ver si tu "
|
84 |
-
"suscripción sigue activa."
|
85 |
-
|
86 |
-
#: includes/currencies.php:7 includes/currencies.php:37
|
87 |
-
msgid "US Dollars ($)"
|
88 |
-
msgstr "Dólares ($)"
|
89 |
-
|
90 |
-
#: includes/currencies.php:8 includes/currencies.php:40
|
91 |
-
msgid "Euros (€)"
|
92 |
-
msgstr "Euros (€)"
|
93 |
-
|
94 |
-
#: includes/currencies.php:9 includes/currencies.php:39
|
95 |
-
msgid "Pounds Sterling (£)"
|
96 |
-
msgstr "Libras Esterlinas (£)"
|
97 |
-
|
98 |
-
#: includes/currencies.php:10
|
99 |
-
msgid "Australian Dollars ($)"
|
100 |
-
msgstr "Dólares Australianos ($)"
|
101 |
-
|
102 |
-
#: includes/currencies.php:11
|
103 |
-
msgid "Brazilian Real ($)"
|
104 |
-
msgstr "Reales Brasileños ($)"
|
105 |
-
|
106 |
-
#: includes/currencies.php:12 includes/currencies.php:38
|
107 |
-
msgid "Canadian Dollars ($)"
|
108 |
-
msgstr "Dólares Canadienses ($)"
|
109 |
-
|
110 |
-
#: includes/currencies.php:13
|
111 |
-
msgid "Czech Koruna"
|
112 |
-
msgstr "Corona Checa"
|
113 |
-
|
114 |
-
#: includes/currencies.php:14
|
115 |
-
msgid "Danish Krone"
|
116 |
-
msgstr "Corona Danesa"
|
117 |
-
|
118 |
-
#: includes/currencies.php:15
|
119 |
-
msgid "Hong Kong Dollar ($)"
|
120 |
-
msgstr "Dolares de Hong Kong ($)"
|
121 |
-
|
122 |
-
#: includes/currencies.php:16
|
123 |
-
msgid "Hungarian Forint"
|
124 |
-
msgstr "Florín húngaro"
|
125 |
-
|
126 |
-
#: includes/currencies.php:17
|
127 |
-
msgid "Israeli Shekel"
|
128 |
-
msgstr "Nuevo shéquel"
|
129 |
-
|
130 |
-
#: includes/currencies.php:18
|
131 |
-
msgid "Japanese Yen (¥)"
|
132 |
-
msgstr "Yen japonés (¥)"
|
133 |
-
|
134 |
-
#: includes/currencies.php:19
|
135 |
-
msgid "Malaysian Ringgits"
|
136 |
-
msgstr "Ringgit (dólar malayo)"
|
137 |
-
|
138 |
-
#: includes/currencies.php:20
|
139 |
-
msgid "Mexican Peso ($)"
|
140 |
-
msgstr "Peso mejicano ($)"
|
141 |
-
|
142 |
-
#: includes/currencies.php:21
|
143 |
-
msgid "New Zealand Dollar ($)"
|
144 |
-
msgstr "dólar neozelandés ($)"
|
145 |
-
|
146 |
-
#: includes/currencies.php:22
|
147 |
-
msgid "Norwegian Krone"
|
148 |
-
msgstr "Corona noruega"
|
149 |
-
|
150 |
-
#: includes/currencies.php:23
|
151 |
-
msgid "Philippine Pesos"
|
152 |
-
msgstr "Peso filipino"
|
153 |
-
|
154 |
-
#: includes/currencies.php:24
|
155 |
-
msgid "Polish Zloty"
|
156 |
-
msgstr "esloti polaco"
|
157 |
-
|
158 |
-
#: includes/currencies.php:25
|
159 |
-
msgid "Singapore Dollar ($)"
|
160 |
-
msgstr "Dólar de Singapur ($)"
|
161 |
-
|
162 |
-
#: includes/currencies.php:26
|
163 |
-
msgid "Swedish Krona"
|
164 |
-
msgstr "Corona Sueca"
|
165 |
-
|
166 |
-
#: includes/currencies.php:27
|
167 |
-
msgid "Swiss Franc"
|
168 |
-
msgstr "Franco Suizo"
|
169 |
-
|
170 |
-
#: includes/currencies.php:28
|
171 |
-
msgid "Taiwan New Dollars"
|
172 |
-
msgstr "Nuevo dólar taiwanés"
|
173 |
-
|
174 |
-
#: includes/currencies.php:29
|
175 |
-
msgid "Thai Baht"
|
176 |
-
msgstr "baht tailandés"
|
177 |
-
|
178 |
-
#: includes/functions.php:160
|
179 |
-
#, php-format
|
180 |
-
msgid "The price for membership is <strong>%s</strong> now"
|
181 |
-
msgstr "El precio por la membresía es <strong>%s</strong> ahora"
|
182 |
-
|
183 |
-
#: includes/functions.php:169
|
184 |
-
#, php-format
|
185 |
-
msgid " and then <strong>%s per %s for %d more %s</strong>."
|
186 |
-
msgstr "y después <strong>%s por %s durante %d %s mas </strong>."
|
187 |
-
|
188 |
-
#: includes/functions.php:173
|
189 |
-
#, php-format
|
190 |
-
msgid " and then <strong>%s every %d %s for %d more %s</strong>."
|
191 |
-
msgstr "y después <strong>%s cada %d %s por %d durante %s más </strong>."
|
192 |
-
|
193 |
-
#: includes/functions.php:178
|
194 |
-
#, php-format
|
195 |
-
msgid " and then <strong>%s after %d %s</strong>."
|
196 |
-
msgstr "y luego <strong>%s después %d %s</strong>."
|
197 |
-
|
198 |
-
#: includes/functions.php:184
|
199 |
-
#, php-format
|
200 |
-
msgid " and then <strong>%s per %s</strong>."
|
201 |
-
msgstr "y despues <strong>%s por %s</strong>."
|
202 |
-
|
203 |
-
#: includes/functions.php:188
|
204 |
-
#, php-format
|
205 |
-
msgid " and then <strong>%s every %d %s</strong>."
|
206 |
-
msgstr "y después <strong>%s cada %d %s</strong>."
|
207 |
-
|
208 |
-
#: includes/functions.php:202 pages/levels.php:82
|
209 |
-
msgid "After your initial payment, your first payment is Free."
|
210 |
-
msgstr "Despues de tu pago inicial, tu primera cuota no tiene coste."
|
211 |
-
|
212 |
-
#: includes/functions.php:206 pages/levels.php:86
|
213 |
-
#, php-format
|
214 |
-
msgid "After your initial payment, your first %d payments are Free."
|
215 |
-
msgstr "Despues de tu pago inicial, tus primeras %d cuotas no tienen coste."
|
216 |
-
|
217 |
-
#: includes/functions.php:213 pages/levels.php:93
|
218 |
-
#, php-format
|
219 |
-
msgid "After your initial payment, your first payment will cost %s."
|
220 |
-
msgstr "Despues de tu pago inicial, tu primera cuota costará %s."
|
221 |
-
|
222 |
-
#: includes/functions.php:217 pages/levels.php:97
|
223 |
-
#, php-format
|
224 |
-
msgid "After your initial payment, your first %d payments will cost %s."
|
225 |
-
msgstr "Despues de tu pago inicial, tus primeras %d cuotas costarán %s."
|
226 |
-
|
227 |
-
#: includes/functions.php:228
|
228 |
-
#, php-format
|
229 |
-
msgid "Customers in %s will be charged %s%% tax."
|
230 |
-
msgstr "A los clientes en %s se les cobrará %s%% de impuestos."
|
231 |
-
|
232 |
-
#: includes/functions.php:242
|
233 |
-
#, php-format
|
234 |
-
msgid "Membership expires after %d %s."
|
235 |
-
msgstr "La membresía expira despues de %d %s."
|
236 |
-
|
237 |
-
#: includes/functions.php:491
|
238 |
-
msgid "User ID not found."
|
239 |
-
msgstr "ID de usuario no encontrado."
|
240 |
-
|
241 |
-
#: includes/functions.php:508
|
242 |
-
msgid "Invalid level."
|
243 |
-
msgstr "Nivel inválido."
|
244 |
-
|
245 |
-
#: includes/functions.php:520
|
246 |
-
msgid "not changing?"
|
247 |
-
msgstr "Sin cambios?"
|
248 |
-
|
249 |
-
#: includes/functions.php:537 includes/functions.php:583
|
250 |
-
#: includes/functions.php:592
|
251 |
-
msgid "Error interacting with database"
|
252 |
-
msgstr "Error interactuando con la base de datos"
|
253 |
-
|
254 |
-
#: includes/functions.php:629 includes/functions.php:668
|
255 |
-
msgid "Membership level not found."
|
256 |
-
msgstr "Nivel de membresía no encontrado."
|
257 |
-
|
258 |
-
#: includes/functions.php:1050
|
259 |
-
msgid "The discount code could not be found."
|
260 |
-
msgstr "El cupón de descuento no se ha podido encontrar."
|
261 |
-
|
262 |
-
#: includes/functions.php:1066
|
263 |
-
#, php-format
|
264 |
-
msgid "This discount code goes into effect on %s."
|
265 |
-
msgstr "El cupón de descuento entra en efecto en %s."
|
266 |
-
|
267 |
-
#: includes/functions.php:1075
|
268 |
-
#, php-format
|
269 |
-
msgid "This discount code expired on %s."
|
270 |
-
msgstr "El cupón de descuento expiró en %s."
|
271 |
-
|
272 |
-
#: includes/functions.php:1087
|
273 |
-
msgid "This discount code is no longer valid."
|
274 |
-
msgstr "Éste cupón de descuento ya no es válido."
|
275 |
-
|
276 |
-
#: includes/functions.php:1102
|
277 |
-
msgid "This discount code does not apply to this membership level."
|
278 |
-
msgstr "Este cupón de descuento no se puede aplicar a este nivel de membresía."
|
279 |
-
|
280 |
-
#: includes/functions.php:1110
|
281 |
-
msgid "This discount code is okay."
|
282 |
-
msgstr "El cupón de descuento es válido."
|
283 |
-
|
284 |
-
#: includes/functions.php:1134
|
285 |
-
msgid "and"
|
286 |
-
msgstr "y"
|
287 |
-
|
288 |
-
#: includes/functions.php:1319
|
289 |
-
msgid "Sign Up for !!name!! Now"
|
290 |
-
msgstr "Date de alta en !!name!! ya"
|
291 |
-
|
292 |
-
#: includes/functions.php:1325
|
293 |
-
msgid "Please specify a level id."
|
294 |
-
msgstr "Por favor especifica un id de nivel."
|
295 |
-
|
296 |
-
#: includes/localization.php:23
|
297 |
-
msgid "Day"
|
298 |
-
msgstr "Día"
|
299 |
-
|
300 |
-
#: includes/localization.php:25
|
301 |
-
msgid "Week"
|
302 |
-
msgstr "Semana"
|
303 |
-
|
304 |
-
#: includes/localization.php:27
|
305 |
-
msgid "Month"
|
306 |
-
msgstr "Mes"
|
307 |
-
|
308 |
-
#: includes/localization.php:29
|
309 |
-
msgid "Year"
|
310 |
-
msgstr "Año"
|
311 |
-
|
312 |
-
#: includes/metaboxes.php:38
|
313 |
-
msgid ""
|
314 |
-
"This post is already protected for this level because it is within a "
|
315 |
-
"category that requires membership."
|
316 |
-
msgstr ""
|
317 |
-
"Esta entrada ya esta protegida para este nivel por que pertenece a una "
|
318 |
-
"categoría que requiere membresía."
|
319 |
-
|
320 |
-
#: includes/metaboxes.php:99 includes/metaboxes.php:100
|
321 |
-
msgid "Require Membership"
|
322 |
-
msgstr "Requerir membresía"
|
323 |
-
|
324 |
-
#: includes/profile.php:25 adminpages/orders.php:601 pages/checkout.php:34
|
325 |
-
#: pages/confirmation.php:46 pages/confirmation.php:62
|
326 |
-
#: pages/confirmation.php:103 pages/invoice.php:27 pages/invoice.php:49
|
327 |
-
msgid "Membership Level"
|
328 |
-
msgstr "Nivel de membresía"
|
329 |
-
|
330 |
-
#: includes/profile.php:34
|
331 |
-
msgid "Current Level"
|
332 |
-
msgstr "Nivel actual"
|
333 |
-
|
334 |
-
#: includes/profile.php:37
|
335 |
-
msgid "None"
|
336 |
-
msgstr "Ninguno"
|
337 |
-
|
338 |
-
#: includes/profile.php:82
|
339 |
-
msgid "User is not paying."
|
340 |
-
msgstr "El usuario no paga."
|
341 |
-
|
342 |
-
#: includes/profile.php:118 adminpages/discountcodes.php:550
|
343 |
-
#: adminpages/memberslist.php:121 adminpages/reports/login.php:145
|
344 |
-
msgid "Expires"
|
345 |
-
msgstr "Expira"
|
346 |
-
|
347 |
-
#: includes/profile.php:121 adminpages/advancedsettings.php:128
|
348 |
-
#: adminpages/advancedsettings.php:187 adminpages/advancedsettings.php:199
|
349 |
-
#: adminpages/membershiplevels.php:563 adminpages/paymentsettings.php:414
|
350 |
-
msgid "No"
|
351 |
-
msgstr "No"
|
352 |
-
|
353 |
-
#: includes/profile.php:122 adminpages/advancedsettings.php:188
|
354 |
-
#: adminpages/membershiplevels.php:563 adminpages/paymentsettings.php:415
|
355 |
-
#: adminpages/paymentsettings.php:424
|
356 |
-
msgid "Yes"
|
357 |
-
msgstr "Si"
|
358 |
-
|
359 |
-
#: adminpages/addons.php:5 adminpages/advancedsettings.php:5
|
360 |
-
#: adminpages/discountcodes.php:5 adminpages/emailsettings.php:5
|
361 |
-
#: adminpages/membershiplevels.php:5 adminpages/memberslist-csv.php:5
|
362 |
-
#: adminpages/memberslist.php:5 adminpages/orders-csv.php:5
|
363 |
-
#: adminpages/orders.php:5 adminpages/pagesettings.php:5
|
364 |
-
#: adminpages/paymentsettings.php:5
|
365 |
-
msgid "You do not have permissions to perform this action."
|
366 |
-
msgstr "No tienes permisos para realizar esta acción."
|
367 |
-
|
368 |
-
#: adminpages/addons.php:79
|
369 |
-
msgid "Enabled"
|
370 |
-
msgstr "Activado"
|
371 |
-
|
372 |
-
#: adminpages/addons.php:79
|
373 |
-
msgid "Disabled"
|
374 |
-
msgstr "Desactivado"
|
375 |
-
|
376 |
-
#: adminpages/admin_header.php:25
|
377 |
-
msgid "Add a membership level to get started."
|
378 |
-
msgstr "Añade un nivel de membresía para comenzar."
|
379 |
-
|
380 |
-
#: adminpages/admin_header.php:27
|
381 |
-
msgid "Setup the membership pages"
|
382 |
-
msgstr "Configura las paginas de membresía"
|
383 |
-
|
384 |
-
#: adminpages/admin_header.php:29
|
385 |
-
msgid "Setup your SSL certificate and payment gateway"
|
386 |
-
msgstr "Configura tu certificado SSL y tu pasarela de pagos"
|
387 |
-
|
388 |
-
#: adminpages/admin_header.php:38
|
389 |
-
msgid ""
|
390 |
-
"The billing details for some of your membership levels is not supported by "
|
391 |
-
"Stripe."
|
392 |
-
msgstr ""
|
393 |
-
"Los detalles de facturación para alguna de tus niveles de membresía no esta "
|
394 |
-
"soportado por Stripe."
|
395 |
-
|
396 |
-
#: adminpages/admin_header.php:46
|
397 |
-
msgid ""
|
398 |
-
"The billing details for this level are not supported by Stripe. Please "
|
399 |
-
"review the notes in the Billing Details section below."
|
400 |
-
msgstr ""
|
401 |
-
"Los detalles de facturación para este nivel no estan soportados por Stripe. "
|
402 |
-
"Por favor revisa las notas en la sección Detalles de Facturación aqui debajo."
|
403 |
-
|
404 |
-
#: adminpages/admin_header.php:50 adminpages/admin_header.php:70
|
405 |
-
#: adminpages/admin_header.php:90
|
406 |
-
msgid "The levels with issues are highlighted below."
|
407 |
-
msgstr "Los niveles con problemas estan restaltados abajo."
|
408 |
-
|
409 |
-
#: adminpages/admin_header.php:52 adminpages/admin_header.php:72
|
410 |
-
#: adminpages/admin_header.php:92
|
411 |
-
msgid "Please edit your levels"
|
412 |
-
msgstr "Por favor edita tus niveles"
|
413 |
-
|
414 |
-
#: adminpages/admin_header.php:58
|
415 |
-
msgid ""
|
416 |
-
"The billing details for some of your membership levels is not supported by "
|
417 |
-
"Payflow."
|
418 |
-
msgstr ""
|
419 |
-
"Los detalles de facturación de tus niveles de membresa no estan soportados "
|
420 |
-
"por Payflow."
|
421 |
-
|
422 |
-
#: adminpages/admin_header.php:66
|
423 |
-
msgid ""
|
424 |
-
"The billing details for this level are not supported by Payflow. Please "
|
425 |
-
"review the notes in the Billing Details section below."
|
426 |
-
msgstr ""
|
427 |
-
"Los detalles de facturación para este nivel no estan soportados por Payflow. "
|
428 |
-
"Por favor revisa las notas en la sección de detalles de facturación abajo."
|
429 |
-
|
430 |
-
#: adminpages/admin_header.php:78
|
431 |
-
msgid ""
|
432 |
-
"The billing details for some of your membership levels is not supported by "
|
433 |
-
"Braintree."
|
434 |
-
msgstr ""
|
435 |
-
"Los detalles de facturación para alguno de tus niveles de membresía no estan "
|
436 |
-
"soportados por Braintree."
|
437 |
-
|
438 |
-
#: adminpages/admin_header.php:86
|
439 |
-
msgid ""
|
440 |
-
"The billing details for this level are not supported by Braintree. Please "
|
441 |
-
"review the notes in the Billing Details section below."
|
442 |
-
msgstr ""
|
443 |
-
"Los detalles de facturación para este nivel no estan soportados por "
|
444 |
-
"Braintree. Por favor revisa las notas en la sección de detalles de "
|
445 |
-
"facturación abajo."
|
446 |
-
|
447 |
-
#: adminpages/admin_header.php:106
|
448 |
-
msgid "Plugin Support"
|
449 |
-
msgstr "Soporte del Plugin"
|
450 |
-
|
451 |
-
#: adminpages/admin_header.php:106
|
452 |
-
msgid "User Forum"
|
453 |
-
msgstr "Foro de usuarios"
|
454 |
-
|
455 |
-
#: adminpages/admin_header.php:129 adminpages/pagesettings.php:92
|
456 |
-
msgid "Pages"
|
457 |
-
msgstr "Páginas"
|
458 |
-
|
459 |
-
#: adminpages/admin_header.php:130
|
460 |
-
msgid "Payment Gateway & SSL"
|
461 |
-
msgstr "Pasarela de pagos & SSL"
|
462 |
-
|
463 |
-
#: adminpages/admin_header.php:131 adminpages/memberslist.php:115
|
464 |
-
#: pages/account.php:52
|
465 |
-
msgid "Email"
|
466 |
-
msgstr "Email"
|
467 |
-
|
468 |
-
#: adminpages/admin_header.php:132
|
469 |
-
msgid "Advanced"
|
470 |
-
msgstr "Avanzado"
|
471 |
-
|
472 |
-
#: adminpages/advancedsettings.php:35
|
473 |
-
msgid "Your advanced settings have been updated."
|
474 |
-
msgstr "Tus opciones avanzadas han sido actualizadas."
|
475 |
-
|
476 |
-
#: adminpages/advancedsettings.php:85
|
477 |
-
msgid "Message for Logged-in Non-members"
|
478 |
-
msgstr "Mensaje para no-miembros logeados"
|
479 |
-
|
480 |
-
#: adminpages/advancedsettings.php:89
|
481 |
-
msgid ""
|
482 |
-
"This message replaces the post content for non-members. Available variables"
|
483 |
-
msgstr ""
|
484 |
-
"Este mensaje reemplaza el contenido de la entrada para no-miembros. "
|
485 |
-
"Variables disponibles"
|
486 |
-
|
487 |
-
#: adminpages/advancedsettings.php:94
|
488 |
-
msgid "Message for Logged-out Users"
|
489 |
-
msgstr "Mensaje para usuarios desconectados (deslogeados)"
|
490 |
-
|
491 |
-
#: adminpages/advancedsettings.php:98
|
492 |
-
msgid "This message replaces the post content for logged-out visitors."
|
493 |
-
msgstr ""
|
494 |
-
"Este mensaje reemplaza el contenido de la entrada para visitantes no logeados"
|
495 |
-
|
496 |
-
#: adminpages/advancedsettings.php:103
|
497 |
-
msgid "Message for RSS Feed"
|
498 |
-
msgstr "Mensaje para Feed RSS"
|
499 |
-
|
500 |
-
#: adminpages/advancedsettings.php:107
|
501 |
-
msgid "This message replaces the post content in RSS feeds."
|
502 |
-
msgstr "Este mensaje reemplaza el contenido de la entrada en los feeds RSS"
|
503 |
-
|
504 |
-
#: adminpages/advancedsettings.php:113
|
505 |
-
msgid "Show Excerpts to Non-Members?"
|
506 |
-
msgstr "Mostrar Extracto a no miembros?"
|
507 |
-
|
508 |
-
#: adminpages/advancedsettings.php:117
|
509 |
-
msgid "No - Hide excerpts."
|
510 |
-
msgstr "No - Esconder Extracto."
|
511 |
-
|
512 |
-
#: adminpages/advancedsettings.php:118
|
513 |
-
msgid "Yes - Show excerpts."
|
514 |
-
msgstr "Si - Mostrar Extracto."
|
515 |
-
|
516 |
-
#: adminpages/advancedsettings.php:129
|
517 |
-
msgid "Hide Ads From All Members"
|
518 |
-
msgstr "Esconder anuncios para todos los miembros"
|
519 |
-
|
520 |
-
#: adminpages/advancedsettings.php:130
|
521 |
-
msgid "Hide Ads From Certain Members"
|
522 |
-
msgstr "Esconder anuncios para ciertos miembros"
|
523 |
-
|
524 |
-
#: adminpages/advancedsettings.php:137
|
525 |
-
msgid "Ads from the following plugins will be automatically turned off"
|
526 |
-
msgstr "Anuncios de los siguientes plugins serán automaticamente desactivados"
|
527 |
-
|
528 |
-
#: adminpages/advancedsettings.php:138
|
529 |
-
msgid "To hide ads in your template code, use code like the following"
|
530 |
-
msgstr ""
|
531 |
-
"Para esconder anuncios en el código de tus plantillas, usa codigo como el "
|
532 |
-
"siguiente"
|
533 |
-
|
534 |
-
#: adminpages/advancedsettings.php:149
|
535 |
-
msgid "Choose Levels to Hide Ads From"
|
536 |
-
msgstr "Elige niveles para los cuales esconder anuncios"
|
537 |
-
|
538 |
-
#: adminpages/advancedsettings.php:183
|
539 |
-
msgid "Redirect all traffic from registration page to /susbcription/?"
|
540 |
-
msgstr "Redirigir todo el tráfico de la página de registro a /subscription/?"
|
541 |
-
|
542 |
-
#: adminpages/advancedsettings.php:183
|
543 |
-
msgid "multisite only"
|
544 |
-
msgstr "Solo multisitio"
|
545 |
-
|
546 |
-
#: adminpages/advancedsettings.php:195
|
547 |
-
msgid "Use reCAPTCHA?"
|
548 |
-
msgstr "Usar reCAPTCHA?"
|
549 |
-
|
550 |
-
#: adminpages/advancedsettings.php:200
|
551 |
-
msgid "Yes - Free memberships only."
|
552 |
-
msgstr "Si - Solo membresías gratuitas."
|
553 |
-
|
554 |
-
#: adminpages/advancedsettings.php:201
|
555 |
-
msgid "Yes - All memberships."
|
556 |
-
msgstr "Si - Todas las membresías."
|
557 |
-
|
558 |
-
#: adminpages/advancedsettings.php:203
|
559 |
-
msgid "A free reCAPTCHA key is required."
|
560 |
-
msgstr "Una clave gratuita de reCAPTCHA es necesaria."
|
561 |
-
|
562 |
-
#: adminpages/advancedsettings.php:203
|
563 |
-
msgid "Click here to signup for reCAPTCHA"
|
564 |
-
msgstr "Haz click aquí para registrarte en reCAPTCHA"
|
565 |
-
|
566 |
-
#: adminpages/advancedsettings.php:209
|
567 |
-
msgid "reCAPTCHA Public Key"
|
568 |
-
msgstr "Clave pública reCAPTCHA"
|
569 |
-
|
570 |
-
#: adminpages/advancedsettings.php:212
|
571 |
-
msgid "reCAPTCHA Private Key"
|
572 |
-
msgstr "Clave privada reCAPTCHA"
|
573 |
-
|
574 |
-
#: adminpages/advancedsettings.php:218
|
575 |
-
msgid "Require Terms of Service on signups?"
|
576 |
-
msgstr "Requerir términos de servicio durante el registro?"
|
577 |
-
|
578 |
-
#: adminpages/advancedsettings.php:225
|
579 |
-
msgid ""
|
580 |
-
"If yes, create a WordPress page containing your TOS agreement and assign it "
|
581 |
-
"using the dropdown above."
|
582 |
-
msgstr ""
|
583 |
-
"En caso positivo, crear una página WordPress que contiene tus términos de "
|
584 |
-
"servicio y asignala usando el desplegable superior."
|
585 |
-
|
586 |
-
#: adminpages/advancedsettings.php:284 adminpages/pagesettings.php:209
|
587 |
-
#: adminpages/paymentsettings.php:485
|
588 |
-
msgid "Save Settings"
|
589 |
-
msgstr "Guardar opciones"
|
590 |
-
|
591 |
-
#: adminpages/discountcodes.php:48
|
592 |
-
msgid "Discount code updated successfully."
|
593 |
-
msgstr "Cupón de descuento actualizado correctamente."
|
594 |
-
|
595 |
-
#: adminpages/discountcodes.php:55
|
596 |
-
msgid "Error updating discount code. That code may already be in use."
|
597 |
-
msgstr ""
|
598 |
-
"Error actualizando el cupón de descuento. Es posible que el cupón "
|
599 |
-
"introducido ya este en uso."
|
600 |
-
|
601 |
-
#: adminpages/discountcodes.php:64
|
602 |
-
msgid "Discount code added successfully."
|
603 |
-
msgstr "Cupón de descuento añadido correctamente."
|
604 |
-
|
605 |
-
#: adminpages/discountcodes.php:71
|
606 |
-
msgid "Error adding discount code. That code may already be in use."
|
607 |
-
msgstr ""
|
608 |
-
"Error añadiendo cupón de descuento. Es posible que ese cupón ya este en uso."
|
609 |
-
|
610 |
-
#: adminpages/discountcodes.php:196
|
611 |
-
#, php-format
|
612 |
-
msgid "Error saving values for the %s level."
|
613 |
-
msgstr "Error guardando valores para el nivel %s."
|
614 |
-
|
615 |
-
#: adminpages/discountcodes.php:204
|
616 |
-
msgid "There were errors updating the level values: "
|
617 |
-
msgstr "Hubo errores actualizando los valores del nivel:"
|
618 |
-
|
619 |
-
#: adminpages/discountcodes.php:234
|
620 |
-
#, php-format
|
621 |
-
msgid "Code %s deleted successfully."
|
622 |
-
msgstr "Cupón %s borrado correctamente."
|
623 |
-
|
624 |
-
#: adminpages/discountcodes.php:239
|
625 |
-
msgid ""
|
626 |
-
"Error deleting discount code. The code was only partially deleted. Please "
|
627 |
-
"try again."
|
628 |
-
msgstr ""
|
629 |
-
"Error borrando cupón de descuento. El cupón fue parcialmente eliminado. Por "
|
630 |
-
"favor inténtelo de nuevo."
|
631 |
-
|
632 |
-
#: adminpages/discountcodes.php:245
|
633 |
-
msgid "Error deleting code. Please try again."
|
634 |
-
msgstr "Error eliminado el cupón. Por favor intentelo de nuevo."
|
635 |
-
|
636 |
-
#: adminpages/discountcodes.php:251
|
637 |
-
msgid "Code not found."
|
638 |
-
msgstr "Cupón no encontrado."
|
639 |
-
|
640 |
-
#: adminpages/discountcodes.php:264
|
641 |
-
msgid "Edit Discount Code"
|
642 |
-
msgstr "Edita el cupón de descuento."
|
643 |
-
|
644 |
-
#: adminpages/discountcodes.php:266 adminpages/discountcodes.php:526
|
645 |
-
msgid "Add New Discount Code"
|
646 |
-
msgstr "Añade un nuevo cupón de descuento."
|
647 |
-
|
648 |
-
#: adminpages/discountcodes.php:306 adminpages/discountcodes.php:547
|
649 |
-
#: adminpages/membershiplevels.php:284 adminpages/membershiplevels.php:505
|
650 |
-
#: adminpages/memberslist.php:111 adminpages/orders.php:597
|
651 |
-
#: adminpages/reports/login.php:140
|
652 |
-
msgid "ID"
|
653 |
-
msgstr "ID"
|
654 |
-
|
655 |
-
#: adminpages/discountcodes.php:307 adminpages/orders.php:211
|
656 |
-
msgid "This will be generated when you save."
|
657 |
-
msgstr "Esto será generado cuando guardes."
|
658 |
-
|
659 |
-
#: adminpages/discountcodes.php:311 adminpages/discountcodes.php:548
|
660 |
-
#: adminpages/orders.php:215 adminpages/orders.php:598
|
661 |
-
msgid "Code"
|
662 |
-
msgstr "Cupón"
|
663 |
-
|
664 |
-
#: adminpages/discountcodes.php:349
|
665 |
-
msgid "Start Date"
|
666 |
-
msgstr "Fecha de inicio"
|
667 |
-
|
668 |
-
#: adminpages/discountcodes.php:367 pages/billing.php:249
|
669 |
-
#: pages/checkout.php:525
|
670 |
-
msgid "Expiration Date"
|
671 |
-
msgstr "Fecha de expiración"
|
672 |
-
|
673 |
-
#: adminpages/discountcodes.php:385 adminpages/discountcodes.php:551
|
674 |
-
msgid "Uses"
|
675 |
-
msgstr "Usa"
|
676 |
-
|
677 |
-
#: adminpages/discountcodes.php:388
|
678 |
-
msgid "Leave blank for unlimited uses."
|
679 |
-
msgstr "Dejar en blanco para permitir uso ilimitado."
|
680 |
-
|
681 |
-
#: adminpages/discountcodes.php:427 adminpages/membershiplevels.php:337
|
682 |
-
#: adminpages/membershiplevels.php:507 pages/levels.php:14
|
683 |
-
msgid "Initial Payment"
|
684 |
-
msgstr "Pago inicial"
|
685 |
-
|
686 |
-
#: adminpages/discountcodes.php:428 adminpages/membershiplevels.php:338
|
687 |
-
msgid "The initial amount collected at registration."
|
688 |
-
msgstr "La cantidad inicial recogida durante el registro."
|
689 |
-
|
690 |
-
#: adminpages/discountcodes.php:432 adminpages/membershiplevels.php:342
|
691 |
-
msgid "Recurring Subscription"
|
692 |
-
msgstr "Subscripción recurrente."
|
693 |
-
|
694 |
-
#: adminpages/discountcodes.php:433 adminpages/membershiplevels.php:343
|
695 |
-
msgid "Check if this level has a recurring subscription payment."
|
696 |
-
msgstr "Comprobar si el nivel tiene una subscripción de pago recurrente."
|
697 |
-
|
698 |
-
#: adminpages/discountcodes.php:437
|
699 |
-
msgid "Billing Ammount"
|
700 |
-
msgstr "Cantidad a facturar"
|
701 |
-
|
702 |
-
#: adminpages/discountcodes.php:451 adminpages/membershiplevels.php:362
|
703 |
-
msgid "The amount to be billed one cycle after the initial payment."
|
704 |
-
msgstr "La cantidad que se cobrará un ciclo despues del pago inicial."
|
705 |
-
|
706 |
-
#: adminpages/discountcodes.php:456 adminpages/membershiplevels.php:380
|
707 |
-
msgid "Billing Cycle Limit"
|
708 |
-
msgstr "Límite del ciclo de facturación"
|
709 |
-
|
710 |
-
#: adminpages/discountcodes.php:459 adminpages/membershiplevels.php:384
|
711 |
-
msgid ""
|
712 |
-
"The <strong>total</strong> number of recurring billing cycles for this "
|
713 |
-
"level, including the trial period (if applicable) but not including the "
|
714 |
-
"initial payment. Set to zero if membership is indefinite."
|
715 |
-
msgstr ""
|
716 |
-
"El número <strong>total</strong>de ciclos recurrentes para este nivel, "
|
717 |
-
"incluyendo el periodo de prueba ( si existe) pero no incluyendo el pago "
|
718 |
-
"inicial. "
|
719 |
-
|
720 |
-
#: adminpages/discountcodes.php:464 adminpages/membershiplevels.php:393
|
721 |
-
msgid "Custom Trial"
|
722 |
-
msgstr "Periodo de prueba personalizado"
|
723 |
-
|
724 |
-
#: adminpages/discountcodes.php:465 adminpages/membershiplevels.php:394
|
725 |
-
msgid "Check to add a custom trial period."
|
726 |
-
msgstr "Seleccionar para añadir un periodo de prueba personalizado."
|
727 |
-
|
728 |
-
#: adminpages/discountcodes.php:469 adminpages/membershiplevels.php:398
|
729 |
-
msgid "Trial Billing Amount"
|
730 |
-
msgstr "Cantidad a facturar por periodo de prueba"
|
731 |
-
|
732 |
-
#: adminpages/discountcodes.php:472 adminpages/membershiplevels.php:401
|
733 |
-
msgid "for the first"
|
734 |
-
msgstr "por el/los primer/os"
|
735 |
-
|
736 |
-
#: adminpages/discountcodes.php:474 adminpages/membershiplevels.php:403
|
737 |
-
msgid "subscription payments"
|
738 |
-
msgstr "pagos de susbscipción"
|
739 |
-
|
740 |
-
#: adminpages/discountcodes.php:479 adminpages/membershiplevels.php:431
|
741 |
-
msgid "Membership Expiration"
|
742 |
-
msgstr "Expiración de la membresía"
|
743 |
-
|
744 |
-
#: adminpages/discountcodes.php:480
|
745 |
-
msgid "Check this to set an expiration date for new sign ups."
|
746 |
-
msgstr "Marcar para seleccionar una fecha de expiración para nuevos registros."
|
747 |
-
|
748 |
-
#: adminpages/discountcodes.php:484 adminpages/membershiplevels.php:436
|
749 |
-
msgid "Expires In"
|
750 |
-
msgstr "Expira en"
|
751 |
-
|
752 |
-
#: adminpages/discountcodes.php:497
|
753 |
-
msgid ""
|
754 |
-
"How long before the expiration expires. Note that any future payments will "
|
755 |
-
"be cancelled when the membership expires."
|
756 |
-
msgstr ""
|
757 |
-
"Cuanto tiempo ha de pasar antes de que la expiración expire. Ten en cuenta "
|
758 |
-
"que los pagos futuros serán cancelados cuando la membresía expire."
|
759 |
-
|
760 |
-
#: adminpages/discountcodes.php:525
|
761 |
-
msgid "Memberships Discount Codes"
|
762 |
-
msgstr "Cupónes de descuento de membresías"
|
763 |
-
|
764 |
-
#: adminpages/discountcodes.php:535
|
765 |
-
msgid "Search Discount Codes"
|
766 |
-
msgstr "Buscar cupones de descuento"
|
767 |
-
|
768 |
-
#: adminpages/discountcodes.php:538 adminpages/reports/login.php:81
|
769 |
-
msgid "Search"
|
770 |
-
msgstr "Busqueda"
|
771 |
-
|
772 |
-
#: adminpages/discountcodes.php:549
|
773 |
-
msgid "Starts"
|
774 |
-
msgstr "Estadísticas"
|
775 |
-
|
776 |
-
#: adminpages/discountcodes.php:552
|
777 |
-
msgid "Levels"
|
778 |
-
msgstr "Niveles"
|
779 |
-
|
780 |
-
#: adminpages/discountcodes.php:570
|
781 |
-
msgid ""
|
782 |
-
"Discount codes allow you to offer your memberships at discounted prices to "
|
783 |
-
"select customers."
|
784 |
-
msgstr ""
|
785 |
-
"Los cupones de descuento te permiten ofrecer tus membresías a precios "
|
786 |
-
"descontados para cierto clientes."
|
787 |
-
|
788 |
-
#: adminpages/discountcodes.php:570
|
789 |
-
msgid "Create your first discount code now"
|
790 |
-
msgstr "Crea tu primer cupón de descuento ahora"
|
791 |
-
|
792 |
-
#: adminpages/discountcodes.php:614 adminpages/membershiplevels.php:564
|
793 |
-
#: adminpages/orders.php:658
|
794 |
-
msgid "edit"
|
795 |
-
msgstr "editar"
|
796 |
-
|
797 |
-
#: adminpages/discountcodes.php:617
|
798 |
-
#, php-format
|
799 |
-
msgid ""
|
800 |
-
"Are you sure you want to delete the %s discount code? The subscriptions for "
|
801 |
-
"existing users will not change, but new users will not be able to use this "
|
802 |
-
"code anymore."
|
803 |
-
msgstr ""
|
804 |
-
"Estas seguro que quieres borrar los %s cupones de descuento? Las "
|
805 |
-
"subscripciones para los usuarios existentes no cambiarán, pero nuevos "
|
806 |
-
"usuarios no podrán usar este cupón."
|
807 |
-
|
808 |
-
#: adminpages/discountcodes.php:617 adminpages/membershiplevels.php:566
|
809 |
-
#: adminpages/orders.php:664
|
810 |
-
msgid "delete"
|
811 |
-
msgstr "borrar"
|
812 |
-
|
813 |
-
#: adminpages/emailsettings.php:61
|
814 |
-
msgid ""
|
815 |
-
"By default, system generated emails are sent from "
|
816 |
-
"<em><strong>wordpress@yourdomain.com</strong></em>. You can update this from "
|
817 |
-
"address using the fields below."
|
818 |
-
msgstr ""
|
819 |
-
"Por defecto, emails generados por el sistema son enviades desde "
|
820 |
-
"<em><strong>wordpress@tudominio.com</strong></em>. Puedes actualizar esta "
|
821 |
-
"dirección desde usando los campos de aqui abajo."
|
822 |
-
|
823 |
-
#: adminpages/emailsettings.php:63
|
824 |
-
msgid ""
|
825 |
-
"To modify the appearance of system generated emails, add the files "
|
826 |
-
"<em>email_header.html</em> and <em>email_footer.html</em> to your theme's "
|
827 |
-
"directory. This will modify both the WordPress default messages as well as "
|
828 |
-
"messages generated by Paid Memberships Pro. <a title=\"Paid Memberships Pro "
|
829 |
-
"- Member Communications\" target=\"_blank\" href=\"http://www."
|
830 |
-
"paidmembershipspro.com/documentation/member-communications/\">Click here to "
|
831 |
-
"learn more about Paid Memberships Pro emails</a>."
|
832 |
-
msgstr ""
|
833 |
-
"Para modificar la apariencia de los emails generados por el sistema, añade "
|
834 |
-
"los archivos <em>email_header.html</em> y <em>email_footer.html</em> al "
|
835 |
-
"directorio de tu tema. Esto modificará los mensajes originales de wordpress "
|
836 |
-
"tanto como los mensajes generados por Paid Memberships Pro. <a title=\"Paid "
|
837 |
-
"Memberships Pro - Comunicaciones a miembros\" target=\"_blank\" href="
|
838 |
-
"\"http://www.paidmembershipspro.com/documentation/member-communications/"
|
839 |
-
"\">Haz click aquí para aprender sobre los emails de Paid Memberships Pro</a>."
|
840 |
-
|
841 |
-
#: adminpages/emailsettings.php:69
|
842 |
-
msgid "From Email"
|
843 |
-
msgstr "Campo desde del email"
|
844 |
-
|
845 |
-
#: adminpages/emailsettings.php:77
|
846 |
-
msgid "From Name"
|
847 |
-
msgstr "Campo nombre del email"
|
848 |
-
|
849 |
-
#: adminpages/emailsettings.php:86
|
850 |
-
msgid "Send the site admin emails"
|
851 |
-
msgstr "Envía al administrador emails"
|
852 |
-
|
853 |
-
#: adminpages/emailsettings.php:92
|
854 |
-
msgid "Checkout"
|
855 |
-
msgstr "Procesamiento de pago"
|
856 |
-
|
857 |
-
#: adminpages/emailsettings.php:96
|
858 |
-
msgid "when a member checks out."
|
859 |
-
msgstr "Cuando un miembro paga"
|
860 |
-
|
861 |
-
#: adminpages/emailsettings.php:101
|
862 |
-
msgid "Admin Changes"
|
863 |
-
msgstr "Cambios por el Admin"
|
864 |
-
|
865 |
-
#: adminpages/emailsettings.php:105
|
866 |
-
msgid "when an admin changes a user's membership level through the dashboard."
|
867 |
-
msgstr ""
|
868 |
-
"cuando un administrador cambia el nivel de un usuario a traves del "
|
869 |
-
"Escritorio."
|
870 |
-
|
871 |
-
#: adminpages/emailsettings.php:110
|
872 |
-
msgid "Cancellation"
|
873 |
-
msgstr "Cancelación"
|
874 |
-
|
875 |
-
#: adminpages/emailsettings.php:114
|
876 |
-
msgid "when a user cancels his or her account."
|
877 |
-
msgstr "cuando un usuario cancela su cuenta."
|
878 |
-
|
879 |
-
#: adminpages/emailsettings.php:119
|
880 |
-
msgid "Bill Updates"
|
881 |
-
msgstr "Actualización de información de facturación"
|
882 |
-
|
883 |
-
#: adminpages/emailsettings.php:123
|
884 |
-
msgid "when a user updates his or her billing information."
|
885 |
-
msgstr "Cuando un usuario cambia su información de facturación."
|
886 |
-
|
887 |
-
#: adminpages/emailsettings.php:129
|
888 |
-
msgid "Send members emails"
|
889 |
-
msgstr "Enviar emails a miembros"
|
890 |
-
|
891 |
-
#: adminpages/emailsettings.php:135
|
892 |
-
msgid "New Users"
|
893 |
-
msgstr "Nuevos usuarios"
|
894 |
-
|
895 |
-
#: adminpages/emailsettings.php:139
|
896 |
-
msgid ""
|
897 |
-
"Default WP notification email. (Recommended: Leave unchecked. Members will "
|
898 |
-
"still get an email confirmation from PMPro after checkout.)"
|
899 |
-
msgstr ""
|
900 |
-
"Notificación por defecto de WordPress. (Recomendad: Dejar sin seleccionar. "
|
901 |
-
"Los miembros recibiran una confirmación por email de PMPro despues del "
|
902 |
-
"procesamiento de pago(checkout).)"
|
903 |
-
|
904 |
-
#: adminpages/membershiplevels.php:118
|
905 |
-
msgid "Membership level updated successfully."
|
906 |
-
msgstr "Nivel de membresa actualizado correctamente."
|
907 |
-
|
908 |
-
#: adminpages/membershiplevels.php:124
|
909 |
-
msgid "Error updating membership level."
|
910 |
-
msgstr "Error actualizando el nivel de membresa."
|
911 |
-
|
912 |
-
#: adminpages/membershiplevels.php:141
|
913 |
-
msgid "Membership level added successfully."
|
914 |
-
msgstr "Nivel de membresa añadido correctamente."
|
915 |
-
|
916 |
-
#: adminpages/membershiplevels.php:146
|
917 |
-
msgid "Error adding membership level."
|
918 |
-
msgstr "Error añadiendo nivel de membresía."
|
919 |
-
|
920 |
-
#: adminpages/membershiplevels.php:179
|
921 |
-
#, php-format
|
922 |
-
msgid ""
|
923 |
-
"There was an error canceling the subscription for user with ID=%d. You will "
|
924 |
-
"want to check your payment gateway to see if their subscription is still "
|
925 |
-
"active."
|
926 |
-
msgstr ""
|
927 |
-
"Hubo un error cancelando la subscripción para el usuario con ID=%d. Deberías "
|
928 |
-
"comprobar tu pasarela de pagos y ver si la subscripción sigue activa."
|
929 |
-
|
930 |
-
#: adminpages/membershiplevels.php:182
|
931 |
-
msgid "Last Invoice"
|
932 |
-
msgstr "Última factura"
|
933 |
-
|
934 |
-
#: adminpages/membershiplevels.php:196
|
935 |
-
msgid "Membership level deleted successfully."
|
936 |
-
msgstr "Nivel de mebresa eliminado correctamente."
|
937 |
-
|
938 |
-
#: adminpages/membershiplevels.php:201 adminpages/membershiplevels.php:207
|
939 |
-
msgid "Error deleting membership level."
|
940 |
-
msgstr "Error eliminando nivel de membresía."
|
941 |
-
|
942 |
-
#: adminpages/membershiplevels.php:222
|
943 |
-
msgid "Edit Membership Level"
|
944 |
-
msgstr "Editar nivel de membresía"
|
945 |
-
|
946 |
-
#: adminpages/membershiplevels.php:224
|
947 |
-
msgid "Add New Membership Level"
|
948 |
-
msgstr "Añade un nuevo nivel de membresía"
|
949 |
-
|
950 |
-
#: adminpages/membershiplevels.php:291 adminpages/membershiplevels.php:506
|
951 |
-
#: adminpages/reports/login.php:142
|
952 |
-
msgid "Name"
|
953 |
-
msgstr "Nombre"
|
954 |
-
|
955 |
-
#: adminpages/membershiplevels.php:296
|
956 |
-
msgid "Description"
|
957 |
-
msgstr "Descripción"
|
958 |
-
|
959 |
-
#: adminpages/membershiplevels.php:314
|
960 |
-
msgid "Confirmation Message"
|
961 |
-
msgstr "Mensaje de confirmación"
|
962 |
-
|
963 |
-
#: adminpages/membershiplevels.php:333
|
964 |
-
msgid "Billing Details"
|
965 |
-
msgstr "Detalles de facturación"
|
966 |
-
|
967 |
-
#: adminpages/membershiplevels.php:347
|
968 |
-
msgid "Billing Amount"
|
969 |
-
msgstr "Cantidad a facturar"
|
970 |
-
|
971 |
-
#: adminpages/membershiplevels.php:349
|
972 |
-
msgid "per"
|
973 |
-
msgstr "por"
|
974 |
-
|
975 |
-
#: adminpages/membershiplevels.php:353
|
976 |
-
msgid "Day(s)"
|
977 |
-
msgstr "Día(s)"
|
978 |
-
|
979 |
-
#: adminpages/membershiplevels.php:353
|
980 |
-
msgid "Week(s)"
|
981 |
-
msgstr "Semana(s)"
|
982 |
-
|
983 |
-
#: adminpages/membershiplevels.php:353
|
984 |
-
msgid "Month(s)"
|
985 |
-
msgstr "Mes(es)"
|
986 |
-
|
987 |
-
#: adminpages/membershiplevels.php:353
|
988 |
-
msgid "Year(s)"
|
989 |
-
msgstr "Año(s)"
|
990 |
-
|
991 |
-
#: adminpages/membershiplevels.php:364
|
992 |
-
msgid ""
|
993 |
-
"Stripe integration currently only supports billing periods of \"Month\" or "
|
994 |
-
"\"Year\"."
|
995 |
-
msgstr ""
|
996 |
-
"La integración con Stripe actualmente solo soporta periodos de facturación "
|
997 |
-
"\"mensuales \" o \"anuales \"."
|
998 |
-
|
999 |
-
#: adminpages/membershiplevels.php:366
|
1000 |
-
msgid ""
|
1001 |
-
"Braintree integration currently only supports billing periods of \"Month\" "
|
1002 |
-
"or \"Year\"."
|
1003 |
-
msgstr ""
|
1004 |
-
"La integración con Braintree actualmente solo soporta periodos de "
|
1005 |
-
"facturación \"mensuales \" o \"anuales \"."
|
1006 |
-
|
1007 |
-
#: adminpages/membershiplevels.php:368
|
1008 |
-
msgid ""
|
1009 |
-
"Payflow integration currently only supports billing frequencies of 1 and "
|
1010 |
-
"billing periods of \"Week\", \"Month\" or \"Year\"."
|
1011 |
-
msgstr ""
|
1012 |
-
"La integración con Payflow actualmente solo soporta frecuencias de 1 pago y "
|
1013 |
-
"periodos de facturación \"mensuales \" o \"anuales \"."
|
1014 |
-
|
1015 |
-
#: adminpages/membershiplevels.php:372 adminpages/membershiplevels.php:374
|
1016 |
-
#: adminpages/paymentsettings.php:170
|
1017 |
-
msgid "Note"
|
1018 |
-
msgstr "Nota"
|
1019 |
-
|
1020 |
-
#: adminpages/membershiplevels.php:372
|
1021 |
-
msgid ""
|
1022 |
-
"After saving this level, make note of the ID and create a \"Plan\" in your "
|
1023 |
-
"Braintree dashboard with the same settings and the \"Plan ID\" set to "
|
1024 |
-
"<em>pmpro_#</em>, where # is the level ID."
|
1025 |
-
msgstr ""
|
1026 |
-
"Despues de guardar este nivel, apunta la ID y crea un \"Plan\" en tu "
|
1027 |
-
"escritorio de Braintree con las mismas opciones y el \"Plan ID\" con valor "
|
1028 |
-
"<em>pmpro_#</em> donde # es el ID de nivel."
|
1029 |
-
|
1030 |
-
#: adminpages/membershiplevels.php:374
|
1031 |
-
msgid ""
|
1032 |
-
"You will need to create a \"Plan\" in your Braintree dashboard with the same "
|
1033 |
-
"settings and the \"Plan ID\" set to"
|
1034 |
-
msgstr ""
|
1035 |
-
"Necesitas crear un \"Plan\" en el escritorio de tu Braintree con las mismas "
|
1036 |
-
"opciones y el \"Plan ID\" con valor"
|
1037 |
-
|
1038 |
-
#: adminpages/membershiplevels.php:386
|
1039 |
-
msgid ""
|
1040 |
-
"Stripe integration currently does not support billing limits. You can still "
|
1041 |
-
"set an expiration date below."
|
1042 |
-
msgstr ""
|
1043 |
-
"La integración con Stripe actualmente no soporta límites de facturación. "
|
1044 |
-
"Pero puedes elegir una fecha de expiración aqui abajo."
|
1045 |
-
|
1046 |
-
#: adminpages/membershiplevels.php:406
|
1047 |
-
msgid ""
|
1048 |
-
"Stripe integration currently does not support trial amounts greater than $0."
|
1049 |
-
msgstr ""
|
1050 |
-
"La integracion con Stripe actualmente no soporta cantidades para el periodo "
|
1051 |
-
"de prueba superiores a $0."
|
1052 |
-
|
1053 |
-
#: adminpages/membershiplevels.php:410
|
1054 |
-
msgid ""
|
1055 |
-
"Braintree integration currently does not support trial amounts greater than "
|
1056 |
-
"$0."
|
1057 |
-
msgstr ""
|
1058 |
-
"La integracion con Braintree actualmente no soporta cantidades para el "
|
1059 |
-
"periodo de prueba superiores a $0."
|
1060 |
-
|
1061 |
-
#: adminpages/membershiplevels.php:414
|
1062 |
-
msgid ""
|
1063 |
-
"Payflow integration currently does not support trial amounts greater than $0."
|
1064 |
-
msgstr ""
|
1065 |
-
"La integracion con Payflow actualmente no soporta cantidades para el periodo "
|
1066 |
-
"de prueba superiores a $0."
|
1067 |
-
|
1068 |
-
#: adminpages/membershiplevels.php:422
|
1069 |
-
msgid "Other Settings"
|
1070 |
-
msgstr "Otras opciones"
|
1071 |
-
|
1072 |
-
#: adminpages/membershiplevels.php:426
|
1073 |
-
msgid "Disable New Signups"
|
1074 |
-
msgstr "Desactivar nuevos registros"
|
1075 |
-
|
1076 |
-
#: adminpages/membershiplevels.php:427
|
1077 |
-
msgid ""
|
1078 |
-
"Check to hide this level from the membership levels page and disable "
|
1079 |
-
"registration."
|
1080 |
-
msgstr ""
|
1081 |
-
"Marcar para esconder este nivel de la página de membresías y desactivar "
|
1082 |
-
"registro."
|
1083 |
-
|
1084 |
-
#: adminpages/membershiplevels.php:432
|
1085 |
-
msgid "Check this to set when membership access expires."
|
1086 |
-
msgstr "Marcar esto para elegir cuando termina el acceso a la membresía."
|
1087 |
-
|
1088 |
-
#: adminpages/membershiplevels.php:449
|
1089 |
-
msgid ""
|
1090 |
-
"Set the duration of membership access. Note that the any future payments "
|
1091 |
-
"(recurring subscription, if any) will be cancelled when the membership "
|
1092 |
-
"expires."
|
1093 |
-
msgstr ""
|
1094 |
-
"Elige la duración de acceso para la membresía. Ten en cuenta que cualquier "
|
1095 |
-
"futuro pago ( subscripciones recurrentes, si las hay) serán canceladas "
|
1096 |
-
"cuando la membresía expire."
|
1097 |
-
|
1098 |
-
#: adminpages/membershiplevels.php:457
|
1099 |
-
msgid "Content Settings"
|
1100 |
-
msgstr "Opciones de contenido"
|
1101 |
-
|
1102 |
-
#: adminpages/membershiplevels.php:461
|
1103 |
-
msgid "Categories"
|
1104 |
-
msgstr "Categorías"
|
1105 |
-
|
1106 |
-
#: adminpages/membershiplevels.php:490
|
1107 |
-
msgid "Add New Level"
|
1108 |
-
msgstr "Añadir un nuevo nivel"
|
1109 |
-
|
1110 |
-
#: adminpages/membershiplevels.php:493 adminpages/membershiplevels.php:496
|
1111 |
-
msgid "Search Levels"
|
1112 |
-
msgstr "Buscar Niveles"
|
1113 |
-
|
1114 |
-
#: adminpages/membershiplevels.php:508
|
1115 |
-
msgid "Billing Cycle"
|
1116 |
-
msgstr "Ciclo de facturación"
|
1117 |
-
|
1118 |
-
#: adminpages/membershiplevels.php:509
|
1119 |
-
msgid "Trial Cycle"
|
1120 |
-
msgstr "Periodo de prueba"
|
1121 |
-
|
1122 |
-
#: adminpages/membershiplevels.php:510 pages/confirmation.php:81
|
1123 |
-
#: pages/invoice.php:68
|
1124 |
-
msgid "Expiration"
|
1125 |
-
msgstr "Expiración"
|
1126 |
-
|
1127 |
-
#: adminpages/membershiplevels.php:511
|
1128 |
-
msgid "Allow Signups"
|
1129 |
-
msgstr "Permitir registros"
|
1130 |
-
|
1131 |
-
#: adminpages/membershiplevels.php:534
|
1132 |
-
msgid "FREE"
|
1133 |
-
msgstr "GRATIS"
|
1134 |
-
|
1135 |
-
#: adminpages/membershiplevels.php:543
|
1136 |
-
msgid "every"
|
1137 |
-
msgstr "cada"
|
1138 |
-
|
1139 |
-
#: adminpages/membershiplevels.php:545 adminpages/membershiplevels.php:553
|
1140 |
-
#: adminpages/reports/sales.php:195 adminpages/reports/sales.php:206
|
1141 |
-
msgid "for"
|
1142 |
-
msgstr "por"
|
1143 |
-
|
1144 |
-
#: adminpages/membershiplevels.php:560
|
1145 |
-
msgid "After"
|
1146 |
-
msgstr "Despues"
|
1147 |
-
|
1148 |
-
#: adminpages/membershiplevels.php:565 adminpages/orders.php:661
|
1149 |
-
msgid "copy"
|
1150 |
-
msgstr "copia"
|
1151 |
-
|
1152 |
-
#: adminpages/membershiplevels.php:566
|
1153 |
-
#, php-format
|
1154 |
-
msgid ""
|
1155 |
-
"Are you sure you want to delete membership level %s? All subscriptions will "
|
1156 |
-
"be cancelled."
|
1157 |
-
msgstr ""
|
1158 |
-
"¿Seguro que quieres borrar el nivel de membresía %s? Todas las "
|
1159 |
-
"subscripciones serán canceladas."
|
1160 |
-
|
1161 |
-
#: adminpages/memberslist.php:26 adminpages/orders.php:522
|
1162 |
-
msgid "Export to CSV"
|
1163 |
-
msgstr "Exportar a CSV"
|
1164 |
-
|
1165 |
-
#: adminpages/memberslist.php:30 adminpages/reports/login.php:65
|
1166 |
-
#: adminpages/reports/sales.php:185
|
1167 |
-
msgid "Show"
|
1168 |
-
msgstr "Mostrar"
|
1169 |
-
|
1170 |
-
#: adminpages/memberslist.php:32 adminpages/reports/login.php:67
|
1171 |
-
#: adminpages/reports/sales.php:208
|
1172 |
-
msgid "All Levels"
|
1173 |
-
msgstr "Todos los niveles"
|
1174 |
-
|
1175 |
-
#: adminpages/memberslist.php:46 adminpages/memberslist.php:49
|
1176 |
-
msgid "Search Members"
|
1177 |
-
msgstr "Buscar Miembros"
|
1178 |
-
|
1179 |
-
#: adminpages/memberslist.php:103
|
1180 |
-
#, php-format
|
1181 |
-
msgid "%d members found."
|
1182 |
-
msgstr "%d miembros encontrados."
|
1183 |
-
|
1184 |
-
#: adminpages/memberslist.php:112 pages/account.php:51 pages/checkout.php:168
|
1185 |
-
msgid "Username"
|
1186 |
-
msgstr "Nombre de usuario"
|
1187 |
-
|
1188 |
-
#: adminpages/memberslist.php:113
|
1189 |
-
msgid "First Name"
|
1190 |
-
msgstr "Nombre"
|
1191 |
-
|
1192 |
-
#: adminpages/memberslist.php:114
|
1193 |
-
msgid "Last Name"
|
1194 |
-
msgstr "Apellidos"
|
1195 |
-
|
1196 |
-
#: adminpages/memberslist.php:117 pages/account.php:90 pages/billing.php:58
|
1197 |
-
#: pages/checkout.php:314 pages/confirmation.php:59 pages/invoice.php:46
|
1198 |
-
msgid "Billing Address"
|
1199 |
-
msgstr "Dirección de facturación"
|
1200 |
-
|
1201 |
-
#: adminpages/memberslist.php:118 adminpages/pagesettings.php:51
|
1202 |
-
#: adminpages/reports/login.php:143
|
1203 |
-
#: classes/gateways/class.pmprogateway_authorizenet.php:187
|
1204 |
-
msgid "Membership"
|
1205 |
-
msgstr "Membresía"
|
1206 |
-
|
1207 |
-
#: adminpages/memberslist.php:119
|
1208 |
-
msgid "Fee"
|
1209 |
-
msgstr "Cuota"
|
1210 |
-
|
1211 |
-
#: adminpages/memberslist.php:120 adminpages/reports/login.php:144
|
1212 |
-
msgid "Joined"
|
1213 |
-
msgstr "Se unió"
|
1214 |
-
|
1215 |
-
#: adminpages/memberslist.php:184
|
1216 |
-
msgid "Never"
|
1217 |
-
msgstr "Nunca"
|
1218 |
-
|
1219 |
-
#: adminpages/memberslist.php:195 adminpages/reports/login.php:210
|
1220 |
-
msgid "No members found."
|
1221 |
-
msgstr "No se han encontrado miembros."
|
1222 |
-
|
1223 |
-
#: adminpages/memberslist.php:195 adminpages/reports/login.php:210
|
1224 |
-
msgid "Search all levels"
|
1225 |
-
msgstr "Buscar en todos los niveles"
|
1226 |
-
|
1227 |
-
#: adminpages/orders.php:26
|
1228 |
-
msgid "Order deleted successfully."
|
1229 |
-
msgstr "Pago eliminado correctamente."
|
1230 |
-
|
1231 |
-
#: adminpages/orders.php:31
|
1232 |
-
msgid "Error deleting order."
|
1233 |
-
msgstr "Error eliminando pago."
|
1234 |
-
|
1235 |
-
#: adminpages/orders.php:119
|
1236 |
-
msgid "Order saved successfully."
|
1237 |
-
msgstr "Pago guardado correctamente."
|
1238 |
-
|
1239 |
-
#: adminpages/orders.php:124
|
1240 |
-
msgid "Error updating order timestamp."
|
1241 |
-
msgstr "Error actualizando timestamp del pago."
|
1242 |
-
|
1243 |
-
#: adminpages/orders.php:130
|
1244 |
-
msgid "Error saving order."
|
1245 |
-
msgstr "Error guardando pago."
|
1246 |
-
|
1247 |
-
#: adminpages/orders.php:195
|
1248 |
-
msgid "Order"
|
1249 |
-
msgstr "Pagos"
|
1250 |
-
|
1251 |
-
#: adminpages/orders.php:197
|
1252 |
-
msgid "New Order"
|
1253 |
-
msgstr "Nuevo Pago"
|
1254 |
-
|
1255 |
-
#: adminpages/orders.php:220
|
1256 |
-
msgid "Randomly generated for you."
|
1257 |
-
msgstr "Generado aleatoriamente para ti."
|
1258 |
-
|
1259 |
-
#: adminpages/orders.php:225
|
1260 |
-
msgid "User ID"
|
1261 |
-
msgstr "ID de usuario"
|
1262 |
-
|
1263 |
-
#: adminpages/orders.php:234
|
1264 |
-
msgid "Membership Level ID"
|
1265 |
-
msgstr "ID de nivel de membresía"
|
1266 |
-
|
1267 |
-
#: adminpages/orders.php:243
|
1268 |
-
msgid "Billing Name"
|
1269 |
-
msgstr "Nombre (facturación)"
|
1270 |
-
|
1271 |
-
#: adminpages/orders.php:251
|
1272 |
-
msgid "Billing Street"
|
1273 |
-
msgstr "Calle (facturación)"
|
1274 |
-
|
1275 |
-
#: adminpages/orders.php:258
|
1276 |
-
msgid "Billing City"
|
1277 |
-
msgstr "Ciudad (facturación)"
|
1278 |
-
|
1279 |
-
#: adminpages/orders.php:265
|
1280 |
-
msgid "Billing State"
|
1281 |
-
msgstr "Estado (facturación)"
|
1282 |
-
|
1283 |
-
#: adminpages/orders.php:272
|
1284 |
-
msgid "Billing Postal Code"
|
1285 |
-
msgstr "Código Postal (facturación)"
|
1286 |
-
|
1287 |
-
#: adminpages/orders.php:279
|
1288 |
-
msgid "Billing Country"
|
1289 |
-
msgstr "País (facturación)"
|
1290 |
-
|
1291 |
-
#: adminpages/orders.php:287
|
1292 |
-
msgid "Billing Phone"
|
1293 |
-
msgstr "Teléfono (facturación)"
|
1294 |
-
|
1295 |
-
#: adminpages/orders.php:296
|
1296 |
-
msgid "Sub Total"
|
1297 |
-
msgstr "Subtotal"
|
1298 |
-
|
1299 |
-
#: adminpages/orders.php:304 pages/invoice.php:78
|
1300 |
-
msgid "Tax"
|
1301 |
-
msgstr "Impuesto"
|
1302 |
-
|
1303 |
-
#: adminpages/orders.php:312
|
1304 |
-
msgid "Coupon Amount"
|
1305 |
-
msgstr "Cantidad de cupón"
|
1306 |
-
|
1307 |
-
#: adminpages/orders.php:320 adminpages/orders.php:602 pages/invoice.php:82
|
1308 |
-
msgid "Total"
|
1309 |
-
msgstr "Total"
|
1310 |
-
|
1311 |
-
#: adminpages/orders.php:325
|
1312 |
-
msgid "Should be subtotal + tax - couponamount."
|
1313 |
-
msgstr "Debería ser subtotal + impuesto -cantidadcupon"
|
1314 |
-
|
1315 |
-
#: adminpages/orders.php:330
|
1316 |
-
msgid "Payment Type"
|
1317 |
-
msgstr "Tipo de pago"
|
1318 |
-
|
1319 |
-
#: adminpages/orders.php:335
|
1320 |
-
msgid "e.g. PayPal Express, PayPal Standard, Credit Card."
|
1321 |
-
msgstr "p.ej. PayPal Express, PayPal Standard, Credit Card."
|
1322 |
-
|
1323 |
-
#: adminpages/orders.php:339 pages/billing.php:234 pages/checkout.php:510
|
1324 |
-
msgid "Card Type"
|
1325 |
-
msgstr "Tipo de tarjeta"
|
1326 |
-
|
1327 |
-
#: adminpages/orders.php:344
|
1328 |
-
msgid "e.g. Visa, MasterCard, AMEX, etc"
|
1329 |
-
msgstr "p.ej. Visa, MasterCard, AMEX, etc"
|
1330 |
-
|
1331 |
-
#: adminpages/orders.php:348
|
1332 |
-
msgid "Account Number"
|
1333 |
-
msgstr "Número de cuenta"
|
1334 |
-
|
1335 |
-
#: adminpages/orders.php:353
|
1336 |
-
msgid "Obscure all but last 4 digits."
|
1337 |
-
msgstr "Esconde todo menos los últimos 4 dígitos"
|
1338 |
-
|
1339 |
-
#: adminpages/orders.php:358
|
1340 |
-
msgid "Expiration Month"
|
1341 |
-
msgstr "Mes de expiración"
|
1342 |
-
|
1343 |
-
#: adminpages/orders.php:365
|
1344 |
-
msgid "Expiration Year"
|
1345 |
-
msgstr "Año de expiración"
|
1346 |
-
|
1347 |
-
#: adminpages/orders.php:373 adminpages/orders.php:606
|
1348 |
-
msgid "Status"
|
1349 |
-
msgstr "Estado"
|
1350 |
-
|
1351 |
-
#: adminpages/orders.php:394 adminpages/orders.php:604
|
1352 |
-
msgid "Gateway"
|
1353 |
-
msgstr "Pasarela"
|
1354 |
-
|
1355 |
-
#: adminpages/orders.php:398
|
1356 |
-
msgid "Testing Only"
|
1357 |
-
msgstr "Prueba solo"
|
1358 |
-
|
1359 |
-
#: adminpages/orders.php:399 adminpages/paymentsettings.php:157
|
1360 |
-
msgid "Pay by Check"
|
1361 |
-
msgstr "Pagar con cheque"
|
1362 |
-
|
1363 |
-
#: adminpages/orders.php:411 adminpages/paymentsettings.php:175
|
1364 |
-
msgid "Gateway Environment"
|
1365 |
-
msgstr "Entorno de pasarela (Gateway Environment)"
|
1366 |
-
|
1367 |
-
#: adminpages/orders.php:415 adminpages/paymentsettings.php:179
|
1368 |
-
msgid "Sandbox/Testing"
|
1369 |
-
msgstr "Sandbox/Pruebas"
|
1370 |
-
|
1371 |
-
#: adminpages/orders.php:416 adminpages/paymentsettings.php:180
|
1372 |
-
msgid "Live/Production"
|
1373 |
-
msgstr "Vivo/Producción"
|
1374 |
-
|
1375 |
-
#: adminpages/orders.php:423
|
1376 |
-
msgid "Payment Transaction ID"
|
1377 |
-
msgstr "ID de transacción de pago"
|
1378 |
-
|
1379 |
-
#: adminpages/orders.php:428
|
1380 |
-
msgid "Generated by the gateway. Useful to cross reference orders."
|
1381 |
-
msgstr "Generado por la pasarela. Útil para comparar pagos."
|
1382 |
-
|
1383 |
-
#: adminpages/orders.php:432
|
1384 |
-
msgid "Subscription Transaction ID"
|
1385 |
-
msgstr "ID de transacción de la subscripción"
|
1386 |
-
|
1387 |
-
#: adminpages/orders.php:437
|
1388 |
-
msgid "Generated by the gateway. Useful to cross reference subscriptions."
|
1389 |
-
msgstr "Generado por la pasarela. Util para comparar subscripciones."
|
1390 |
-
|
1391 |
-
#: adminpages/orders.php:442 adminpages/orders.php:607 pages/invoice.php:105
|
1392 |
-
msgid "Date"
|
1393 |
-
msgstr "Fecha"
|
1394 |
-
|
1395 |
-
#: adminpages/orders.php:477
|
1396 |
-
msgid "Affiliate ID"
|
1397 |
-
msgstr "ID de afiliado"
|
1398 |
-
|
1399 |
-
#: adminpages/orders.php:485
|
1400 |
-
msgid "Affiliate SubID"
|
1401 |
-
msgstr "SubID de afiliado"
|
1402 |
-
|
1403 |
-
#: adminpages/orders.php:495
|
1404 |
-
msgid "Notes"
|
1405 |
-
msgstr "Notas"
|
1406 |
-
|
1407 |
-
#: adminpages/orders.php:510
|
1408 |
-
msgid "Save Order"
|
1409 |
-
msgstr "Guardar pago"
|
1410 |
-
|
1411 |
-
#: adminpages/orders.php:511 pages/billing.php:295
|
1412 |
-
msgid "Cancel"
|
1413 |
-
msgstr "Cancelar"
|
1414 |
-
|
1415 |
-
#: adminpages/orders.php:521
|
1416 |
-
msgid "Add New Order"
|
1417 |
-
msgstr "Añadir nuevo pago"
|
1418 |
-
|
1419 |
-
#: adminpages/orders.php:535 adminpages/orders.php:538
|
1420 |
-
msgid "Search Orders"
|
1421 |
-
msgstr "Buscar pagos"
|
1422 |
-
|
1423 |
-
#: adminpages/orders.php:590
|
1424 |
-
#, php-format
|
1425 |
-
msgid "%d orders found."
|
1426 |
-
msgstr "%d pagos encontrados."
|
1427 |
-
|
1428 |
-
#: adminpages/orders.php:599 adminpages/paymentsettings.php:211
|
1429 |
-
#: adminpages/reports/login.php:141
|
1430 |
-
msgid "User"
|
1431 |
-
msgstr "Usuario"
|
1432 |
-
|
1433 |
-
#: adminpages/orders.php:603 adminpages/orders.php:651
|
1434 |
-
msgid "Payment"
|
1435 |
-
msgstr "Método de pago"
|
1436 |
-
|
1437 |
-
#: adminpages/orders.php:605
|
1438 |
-
msgid "Transaction IDs"
|
1439 |
-
msgstr "IDs de transacción"
|
1440 |
-
|
1441 |
-
#: adminpages/orders.php:630
|
1442 |
-
msgid "deleted"
|
1443 |
-
msgstr "borrado"
|
1444 |
-
|
1445 |
-
#: adminpages/orders.php:653
|
1446 |
-
msgid "Subscription"
|
1447 |
-
msgstr "Subscripción"
|
1448 |
-
|
1449 |
-
#: adminpages/orders.php:664
|
1450 |
-
#, php-format
|
1451 |
-
msgid ""
|
1452 |
-
"Deleting orders is permanent and can affect active users. Are you sure you "
|
1453 |
-
"want to delete order %s?"
|
1454 |
-
msgstr ""
|
1455 |
-
"Borrar un pago es permanente y puede afectar a los usuarios activos. ¿Seguro "
|
1456 |
-
"que quieres borrar el pago %s?"
|
1457 |
-
|
1458 |
-
#: adminpages/orders.php:674
|
1459 |
-
msgid "No orders found."
|
1460 |
-
msgstr "No se han encontrado pagos."
|
1461 |
-
|
1462 |
-
#: adminpages/pagesettings.php:83
|
1463 |
-
msgid "The following pages have been created for you"
|
1464 |
-
msgstr "Las siguientes páginas han sido creadas para ti"
|
1465 |
-
|
1466 |
-
#: adminpages/pagesettings.php:98
|
1467 |
-
msgid ""
|
1468 |
-
"Manage the WordPress pages assigned to each required Paid Memberships Pro "
|
1469 |
-
"page."
|
1470 |
-
msgstr ""
|
1471 |
-
"Gestiona las páginas WordPress asignando a cada una la página de Paid "
|
1472 |
-
"Memberships Pro requerida."
|
1473 |
-
|
1474 |
-
#: adminpages/pagesettings.php:104
|
1475 |
-
msgid ""
|
1476 |
-
"Assign the WordPress pages for each required Paid Memberships Pro page or"
|
1477 |
-
msgstr ""
|
1478 |
-
"Asigna a cada página WordPress la página de Paid Memberships Pro requerida o"
|
1479 |
-
|
1480 |
-
#: adminpages/pagesettings.php:104
|
1481 |
-
msgid "click here to let us generate them for you"
|
1482 |
-
msgstr "haz click aqui para que dejarnos generarlas por ti"
|
1483 |
-
|
1484 |
-
#: adminpages/pagesettings.php:112
|
1485 |
-
msgid "Account Page"
|
1486 |
-
msgstr "Página de Cuenta"
|
1487 |
-
|
1488 |
-
#: adminpages/pagesettings.php:119 adminpages/pagesettings.php:132
|
1489 |
-
#: adminpages/pagesettings.php:145 adminpages/pagesettings.php:159
|
1490 |
-
#: adminpages/pagesettings.php:173 adminpages/pagesettings.php:187
|
1491 |
-
#: adminpages/pagesettings.php:201
|
1492 |
-
msgid "edit page"
|
1493 |
-
msgstr "editar página"
|
1494 |
-
|
1495 |
-
#: adminpages/pagesettings.php:121 adminpages/pagesettings.php:134
|
1496 |
-
#: adminpages/pagesettings.php:147 adminpages/pagesettings.php:161
|
1497 |
-
#: adminpages/pagesettings.php:175 adminpages/pagesettings.php:189
|
1498 |
-
#: adminpages/pagesettings.php:203
|
1499 |
-
msgid "Include the shortcode"
|
1500 |
-
msgstr "Incluye el shortcode"
|
1501 |
-
|
1502 |
-
#: adminpages/pagesettings.php:125
|
1503 |
-
msgid "Billing Information Page"
|
1504 |
-
msgstr "Página de información de facturación"
|
1505 |
-
|
1506 |
-
#: adminpages/pagesettings.php:138
|
1507 |
-
msgid "Cancel Page"
|
1508 |
-
msgstr "Página de cancelación"
|
1509 |
-
|
1510 |
-
#: adminpages/pagesettings.php:152
|
1511 |
-
msgid "Checkout Page"
|
1512 |
-
msgstr "Página de pago"
|
1513 |
-
|
1514 |
-
#: adminpages/pagesettings.php:166
|
1515 |
-
msgid "Confirmation Page"
|
1516 |
-
msgstr "Página de confirmación"
|
1517 |
-
|
1518 |
-
#: adminpages/pagesettings.php:180
|
1519 |
-
msgid "Invoice Page"
|
1520 |
-
msgstr "Página de facturas"
|
1521 |
-
|
1522 |
-
#: adminpages/pagesettings.php:194
|
1523 |
-
msgid "Levels Page"
|
1524 |
-
msgstr "Página de niveles"
|
1525 |
-
|
1526 |
-
#: adminpages/paymentsettings.php:82
|
1527 |
-
msgid "Your payment settings have been updated."
|
1528 |
-
msgstr "Las opciones de pago han sido actualizadas."
|
1529 |
-
|
1530 |
-
#: adminpages/paymentsettings.php:144 adminpages/paymentsettings.php:152
|
1531 |
-
msgid "Payment Gateway"
|
1532 |
-
msgstr "Pasarela de pagos"
|
1533 |
-
|
1534 |
-
#: adminpages/paymentsettings.php:144
|
1535 |
-
msgid "SSL Settings"
|
1536 |
-
msgstr "Opciones SSL"
|
1537 |
-
|
1538 |
-
#: adminpages/paymentsettings.php:170
|
1539 |
-
msgid ""
|
1540 |
-
"Payflow Pro currently only supports one-time payments. Users will not be "
|
1541 |
-
"able to checkout for levels with recurring payments."
|
1542 |
-
msgstr ""
|
1543 |
-
"Payflow Pro actualmente solo soporta pagos on-time. Los usuarios no podrán "
|
1544 |
-
"darse de alta en niveles con pagos recurrentes."
|
1545 |
-
|
1546 |
-
#: adminpages/paymentsettings.php:195
|
1547 |
-
msgid "Partner"
|
1548 |
-
msgstr "Compañero"
|
1549 |
-
|
1550 |
-
#: adminpages/paymentsettings.php:203
|
1551 |
-
msgid "Vendor"
|
1552 |
-
msgstr "Vendedor"
|
1553 |
-
|
1554 |
-
#: adminpages/paymentsettings.php:219 pages/checkout.php:177
|
1555 |
-
msgid "Password"
|
1556 |
-
msgstr "Contraseña"
|
1557 |
-
|
1558 |
-
#: adminpages/paymentsettings.php:227
|
1559 |
-
msgid "Gateway Account Email"
|
1560 |
-
msgstr "Email de cuenta de la Pasarela "
|
1561 |
-
|
1562 |
-
#: adminpages/paymentsettings.php:235
|
1563 |
-
msgid "API Username"
|
1564 |
-
msgstr "Nombre de usuario de API (API Username)"
|
1565 |
-
|
1566 |
-
#: adminpages/paymentsettings.php:243
|
1567 |
-
msgid "API Password"
|
1568 |
-
msgstr "Contraseña de API (API Password)"
|
1569 |
-
|
1570 |
-
#: adminpages/paymentsettings.php:251
|
1571 |
-
msgid "API Signature"
|
1572 |
-
msgstr "Firma de API (API Signature)"
|
1573 |
-
|
1574 |
-
#: adminpages/paymentsettings.php:260
|
1575 |
-
msgid "Login Name"
|
1576 |
-
msgstr "Nombre de login"
|
1577 |
-
|
1578 |
-
#: adminpages/paymentsettings.php:268
|
1579 |
-
msgid "Transaction Key"
|
1580 |
-
msgstr "Llave de transaccion (Transaction Key)"
|
1581 |
-
|
1582 |
-
#: adminpages/paymentsettings.php:277
|
1583 |
-
msgid "Secret Key"
|
1584 |
-
msgstr "Llave secreta (Secret Key)"
|
1585 |
-
|
1586 |
-
#: adminpages/paymentsettings.php:285
|
1587 |
-
msgid "Publishable Key"
|
1588 |
-
msgstr "Llave publicable (Publishable Key)"
|
1589 |
-
|
1590 |
-
#: adminpages/paymentsettings.php:294
|
1591 |
-
msgid "Merchant ID"
|
1592 |
-
msgstr "ID de mercader (Merchant ID)"
|
1593 |
-
|
1594 |
-
#: adminpages/paymentsettings.php:302
|
1595 |
-
msgid "Public Key"
|
1596 |
-
msgstr "Llave pública (Public Key)"
|
1597 |
-
|
1598 |
-
#: adminpages/paymentsettings.php:310
|
1599 |
-
msgid "Private Key"
|
1600 |
-
msgstr "Llave privada (Private Key)"
|
1601 |
-
|
1602 |
-
#: adminpages/paymentsettings.php:318
|
1603 |
-
msgid "Client-Side Encryption Key"
|
1604 |
-
msgstr ""
|
1605 |
-
"Llave de encripción para el lado del cliente (Client-Side Encryption Key)"
|
1606 |
-
|
1607 |
-
#: adminpages/paymentsettings.php:327 adminpages/paymentsettings.php:337
|
1608 |
-
#: adminpages/paymentsettings.php:356
|
1609 |
-
msgid "Currency"
|
1610 |
-
msgstr "Moneda"
|
1611 |
-
|
1612 |
-
#: adminpages/paymentsettings.php:375
|
1613 |
-
msgid "Accepted Credit Card Types"
|
1614 |
-
msgstr "Tipos de tarjeta de crédito aceptados"
|
1615 |
-
|
1616 |
-
#: adminpages/paymentsettings.php:389
|
1617 |
-
msgid "Instructions"
|
1618 |
-
msgstr "Instrucciones"
|
1619 |
-
|
1620 |
-
#: adminpages/paymentsettings.php:393
|
1621 |
-
msgid ""
|
1622 |
-
"Who to write the check out to. Where to mail it. Shown on checkout, "
|
1623 |
-
"confirmation, and invoice pages."
|
1624 |
-
msgstr ""
|
1625 |
-
"A nombre de quien escribir el cheque. Donde enviarlo. Mostrado durante "
|
1626 |
-
"checkout, confirmación, y página de facturación."
|
1627 |
-
|
1628 |
-
#: adminpages/paymentsettings.php:398
|
1629 |
-
msgid "Sales Tax"
|
1630 |
-
msgstr "IVA (impuesto a las ventas)"
|
1631 |
-
|
1632 |
-
#: adminpages/paymentsettings.php:398 pages/billing.php:78
|
1633 |
-
msgid "optional"
|
1634 |
-
msgstr "opcional"
|
1635 |
-
|
1636 |
-
#: adminpages/paymentsettings.php:401
|
1637 |
-
msgid "Tax State"
|
1638 |
-
msgstr "Impuesto del estado"
|
1639 |
-
|
1640 |
-
#: adminpages/paymentsettings.php:402
|
1641 |
-
msgid "abbreviation, e.g. \"PA\""
|
1642 |
-
msgstr "abreviación, p.ej. \"PA\""
|
1643 |
-
|
1644 |
-
#: adminpages/paymentsettings.php:404
|
1645 |
-
msgid "decimal, e.g. \"0.06\""
|
1646 |
-
msgstr "decimal, p.ej. \"0.06\""
|
1647 |
-
|
1648 |
-
#: adminpages/paymentsettings.php:405
|
1649 |
-
msgid ""
|
1650 |
-
"If values are given, tax will be applied for any members ordering from the "
|
1651 |
-
"selected state. For more complex tax rules, use the \"pmpro_tax\" filter."
|
1652 |
-
msgstr ""
|
1653 |
-
"Si se asignan valores, el impuesto será aplicado para miembros localizados "
|
1654 |
-
"dentro del estado seleccionado. Para reglas de impuestos mas complejas, usa "
|
1655 |
-
"el filtro \"pmpro_tax\"."
|
1656 |
-
|
1657 |
-
#: adminpages/paymentsettings.php:410 adminpages/paymentsettings.php:421
|
1658 |
-
msgid "Use SSL"
|
1659 |
-
msgstr "Usar SSL"
|
1660 |
-
|
1661 |
-
#: adminpages/paymentsettings.php:425
|
1662 |
-
msgid "Required by this Gateway Option"
|
1663 |
-
msgstr "Requerido por esta opcion de pasarela"
|
1664 |
-
|
1665 |
-
#: adminpages/paymentsettings.php:430
|
1666 |
-
msgid "SSL Seal Code"
|
1667 |
-
msgstr "Código de sellado SSL"
|
1668 |
-
|
1669 |
-
#: adminpages/paymentsettings.php:438
|
1670 |
-
msgid "HTTPS Nuclear Option"
|
1671 |
-
msgstr "Opción nuclear HTTPS"
|
1672 |
-
|
1673 |
-
#: adminpages/paymentsettings.php:441
|
1674 |
-
msgid ""
|
1675 |
-
"Use the \"Nuclear Option\" to use secure (HTTPS) URLs on your secure pages. "
|
1676 |
-
"Check this if you are using SSL and have warnings on your checkout pages."
|
1677 |
-
msgstr ""
|
1678 |
-
"Usar la \"Opción Nuclear\" para usar URLs seguras (HTTPS) en tus páginas "
|
1679 |
-
"seguras. Marca esto si usas SSL y tienes warnings en las paginas de checkout."
|
1680 |
-
|
1681 |
-
#: adminpages/paymentsettings.php:446
|
1682 |
-
msgid "IPN Handler URL"
|
1683 |
-
msgstr "IPN Handler URL"
|
1684 |
-
|
1685 |
-
#: adminpages/paymentsettings.php:449
|
1686 |
-
msgid "To fully integrate with PayPal, be sure to set your IPN Handler URL to "
|
1687 |
-
msgstr ""
|
1688 |
-
"Para integrar completamente con Paypal, asegúrate de introducir tu IPN "
|
1689 |
-
"Handler URL a"
|
1690 |
-
|
1691 |
-
#: adminpages/paymentsettings.php:454
|
1692 |
-
msgid "Silent Post URL"
|
1693 |
-
msgstr "Silent Post URL"
|
1694 |
-
|
1695 |
-
#: adminpages/paymentsettings.php:457
|
1696 |
-
msgid ""
|
1697 |
-
"To fully integrate with Authorize.net, be sure to set your Silent Post URL to"
|
1698 |
-
msgstr ""
|
1699 |
-
"Para integrar completamente con Authorize.net, asegurate de asignar tu "
|
1700 |
-
"Silent Post URL a"
|
1701 |
-
|
1702 |
-
#: adminpages/paymentsettings.php:462 adminpages/paymentsettings.php:470
|
1703 |
-
msgid "Web Hook URL"
|
1704 |
-
msgstr "Web Hook URL"
|
1705 |
-
|
1706 |
-
#: adminpages/paymentsettings.php:465
|
1707 |
-
msgid "To fully integrate with Stripe, be sure to set your Web Hook URL to"
|
1708 |
-
msgstr ""
|
1709 |
-
"Para integrar completamente con Stripe, asegurate de asignar tu Web Hook URL "
|
1710 |
-
"a"
|
1711 |
-
|
1712 |
-
#: adminpages/paymentsettings.php:474
|
1713 |
-
msgid "To fully integrate with Braintree, be sure to set your Web Hook URL to"
|
1714 |
-
msgstr ""
|
1715 |
-
"Para integrar completamente con Braintree, asegurate de asignar tu Web Hook "
|
1716 |
-
"URL a"
|
1717 |
-
|
1718 |
-
#: adminpages/reports.php:26
|
1719 |
-
msgid "Details"
|
1720 |
-
msgstr "Detalles"
|
1721 |
-
|
1722 |
-
#: adminpages/reports/login.php:16
|
1723 |
-
msgid "Visits, Views, and Logins"
|
1724 |
-
msgstr "Visitas, Vistas, y logins"
|
1725 |
-
|
1726 |
-
#: adminpages/reports/login.php:26
|
1727 |
-
msgid "Visits Today"
|
1728 |
-
msgstr "Visitas hoy"
|
1729 |
-
|
1730 |
-
#: adminpages/reports/login.php:27 adminpages/reports/login.php:147
|
1731 |
-
msgid "Visits This Month"
|
1732 |
-
msgstr "Visitas este mes"
|
1733 |
-
|
1734 |
-
#: adminpages/reports/login.php:28
|
1735 |
-
msgid "Visits All Time"
|
1736 |
-
msgstr "Visitas desde el principio"
|
1737 |
-
|
1738 |
-
#: adminpages/reports/login.php:31
|
1739 |
-
msgid "Views Today"
|
1740 |
-
msgstr "Vistas hoy"
|
1741 |
-
|
1742 |
-
#: adminpages/reports/login.php:32 adminpages/reports/login.php:149
|
1743 |
-
msgid "Views This Month"
|
1744 |
-
msgstr "Vistas este mes"
|
1745 |
-
|
1746 |
-
#: adminpages/reports/login.php:33
|
1747 |
-
msgid "Views All Time"
|
1748 |
-
msgstr "Vistas desde el principio"
|
1749 |
-
|
1750 |
-
#: adminpages/reports/login.php:36
|
1751 |
-
msgid "Logins Today"
|
1752 |
-
msgstr "Logins hoy"
|
1753 |
-
|
1754 |
-
#: adminpages/reports/login.php:37 adminpages/reports/login.php:152
|
1755 |
-
msgid "Logins This Month"
|
1756 |
-
msgstr "Logins este mes"
|
1757 |
-
|
1758 |
-
#: adminpages/reports/login.php:38
|
1759 |
-
msgid "Logins All Time"
|
1760 |
-
msgstr "Logins desde el principio"
|
1761 |
-
|
1762 |
-
#: adminpages/reports/login.php:61
|
1763 |
-
msgid "Visits, Views, and Logins Report"
|
1764 |
-
msgstr "Informe de visitas, vistas, y logins"
|
1765 |
-
|
1766 |
-
#: adminpages/reports/login.php:66
|
1767 |
-
msgid "All Users"
|
1768 |
-
msgstr "Todos los usuarios"
|
1769 |
-
|
1770 |
-
#: adminpages/reports/login.php:146
|
1771 |
-
msgid "Last Visit"
|
1772 |
-
msgstr "Última visita"
|
1773 |
-
|
1774 |
-
#: adminpages/reports/login.php:148
|
1775 |
-
msgid "Total Visits"
|
1776 |
-
msgstr "Visitas totales"
|
1777 |
-
|
1778 |
-
#: adminpages/reports/login.php:150
|
1779 |
-
msgid "Total Views"
|
1780 |
-
msgstr "Vistas totales"
|
1781 |
-
|
1782 |
-
#: adminpages/reports/login.php:151
|
1783 |
-
msgid "Last Login"
|
1784 |
-
msgstr "Último login"
|
1785 |
-
|
1786 |
-
#: adminpages/reports/login.php:153
|
1787 |
-
msgid "Total Logins"
|
1788 |
-
msgstr "Total de logins"
|
1789 |
-
|
1790 |
-
#: adminpages/reports/sales.php:18
|
1791 |
-
msgid "Sales and Revenue (Testing/Sandbox)"
|
1792 |
-
msgstr "Vengas e ingresos ( Prueba/Sandbox)"
|
1793 |
-
|
1794 |
-
#: adminpages/reports/sales.php:20 adminpages/reports/sales.php:180
|
1795 |
-
msgid "Sales and Revenue"
|
1796 |
-
msgstr "Ventas y ingresos"
|
1797 |
-
|
1798 |
-
#: adminpages/reports/sales.php:187
|
1799 |
-
msgid "Daily"
|
1800 |
-
msgstr "A diario"
|
1801 |
-
|
1802 |
-
#: adminpages/reports/sales.php:188
|
1803 |
-
msgid "Monthly"
|
1804 |
-
msgstr "Al mes"
|
1805 |
-
|
1806 |
-
#: adminpages/reports/sales.php:189
|
1807 |
-
msgid "Annual"
|
1808 |
-
msgstr "Al año"
|
1809 |
-
|
1810 |
-
#: adminpages/reports/sales.php:192
|
1811 |
-
msgid "Revenue"
|
1812 |
-
msgstr "Ingresos"
|
1813 |
-
|
1814 |
-
#: adminpages/reports/sales.php:193
|
1815 |
-
msgid "Sales"
|
1816 |
-
msgstr "Ventas"
|
1817 |
-
|
1818 |
-
#: adminpages/reports/sales.php:222
|
1819 |
-
msgid "Generate Report"
|
1820 |
-
msgstr "Generar informe"
|
1821 |
-
|
1822 |
-
#: classes/class.pmproemail.php:37
|
1823 |
-
#, php-format
|
1824 |
-
msgid "An Email From %s"
|
1825 |
-
msgstr "Un email de %s"
|
1826 |
-
|
1827 |
-
#: classes/class.pmproemail.php:120
|
1828 |
-
#, php-format
|
1829 |
-
msgid "Your membership at %s has been CANCELLED"
|
1830 |
-
msgstr "Tu membresía %s ha sido CANCELADA"
|
1831 |
-
|
1832 |
-
#: classes/class.pmproemail.php:142
|
1833 |
-
#, php-format
|
1834 |
-
msgid "Membership for %s at %s has been CANCELLED"
|
1835 |
-
msgstr "Membresía para %s en %s ha sido CANCELADA"
|
1836 |
-
|
1837 |
-
#: classes/class.pmproemail.php:172
|
1838 |
-
#, php-format
|
1839 |
-
msgid "Your membership confirmation for %s"
|
1840 |
-
msgstr "Confirmación de membresía para %s"
|
1841 |
-
|
1842 |
-
#: classes/class.pmproemail.php:216 classes/class.pmproemail.php:225
|
1843 |
-
#: classes/class.pmproemail.php:234 classes/class.pmproemail.php:304
|
1844 |
-
#: classes/class.pmproemail.php:313 classes/class.pmproemail.php:532
|
1845 |
-
#: pages/checkout.php:67 pages/checkout.php:77 pages/checkout.php:566
|
1846 |
-
#: pages/confirmation.php:51 pages/invoice.php:32
|
1847 |
-
msgid "Discount Code"
|
1848 |
-
msgstr "Cupón de descuento"
|
1849 |
-
|
1850 |
-
#: classes/class.pmproemail.php:241 classes/class.pmproemail.php:325
|
1851 |
-
#: classes/class.pmproemail.php:538
|
1852 |
-
#, php-format
|
1853 |
-
msgid "This membership will expire on %s."
|
1854 |
-
msgstr "Esta membresía caducará en %s"
|
1855 |
-
|
1856 |
-
#: classes/class.pmproemail.php:263
|
1857 |
-
#, php-format
|
1858 |
-
msgid "Member Checkout for %s at %s"
|
1859 |
-
msgstr "Checkout de miembro para %s en %s"
|
1860 |
-
|
1861 |
-
#: classes/class.pmproemail.php:342
|
1862 |
-
#, php-format
|
1863 |
-
msgid "Your billing information has been udpated at %s"
|
1864 |
-
msgstr "Tu información de facturación ha sido actualizada en %s"
|
1865 |
-
|
1866 |
-
#: classes/class.pmproemail.php:386
|
1867 |
-
#, php-format
|
1868 |
-
msgid "Billing information has been udpated for %s at %s"
|
1869 |
-
msgstr "La información de facturacion para %s ha sido actualizada a %s"
|
1870 |
-
|
1871 |
-
#: classes/class.pmproemail.php:425
|
1872 |
-
#, php-format
|
1873 |
-
msgid "Membership Payment Failed at %s"
|
1874 |
-
msgstr "Pago de membresía ha fallado a %s"
|
1875 |
-
|
1876 |
-
#: classes/class.pmproemail.php:462
|
1877 |
-
#, php-format
|
1878 |
-
msgid "Membership Payment Failed For %s at %s"
|
1879 |
-
msgstr "Pago de membresía ha fallado para %s a %s"
|
1880 |
-
|
1881 |
-
#: classes/class.pmproemail.php:501
|
1882 |
-
#, php-format
|
1883 |
-
msgid "INVOICE for %s membership"
|
1884 |
-
msgstr "FACTURA por mebresa %s"
|
1885 |
-
|
1886 |
-
#: classes/class.pmproemail.php:563
|
1887 |
-
#, php-format
|
1888 |
-
msgid "Your trial at %s is ending soon"
|
1889 |
-
msgstr "Tu periodo de prueba en %s se acaba pronto"
|
1890 |
-
|
1891 |
-
#: classes/class.pmproemail.php:596
|
1892 |
-
#, php-format
|
1893 |
-
msgid "Your membership at %s has ended"
|
1894 |
-
msgstr "Tu membresía en %s ha terminado"
|
1895 |
-
|
1896 |
-
#: classes/class.pmproemail.php:621
|
1897 |
-
#, php-format
|
1898 |
-
msgid "Your membership at %s will end soon"
|
1899 |
-
msgstr "Tu membresía en %s acabará pronto"
|
1900 |
-
|
1901 |
-
#: classes/class.pmproemail.php:641
|
1902 |
-
#, php-format
|
1903 |
-
msgid "Your membership at %s has been changed"
|
1904 |
-
msgstr "Tu membresía en %s ha cambiado"
|
1905 |
-
|
1906 |
-
#: classes/class.pmproemail.php:645 classes/class.pmproemail.php:683
|
1907 |
-
#, php-format
|
1908 |
-
msgid "The new level is %s. This membership is free"
|
1909 |
-
msgstr "El nuevo nivel es %s. Esta membresa es gratuita"
|
1910 |
-
|
1911 |
-
#: classes/class.pmproemail.php:647
|
1912 |
-
msgid "Your membership has been cancelled"
|
1913 |
-
msgstr "Tu membresa ha sido cancelada"
|
1914 |
-
|
1915 |
-
#: classes/class.pmproemail.php:651 classes/class.pmproemail.php:689
|
1916 |
-
#, php-format
|
1917 |
-
msgid "This membership will expire on %s"
|
1918 |
-
msgstr "Esta membresía terminará en %s"
|
1919 |
-
|
1920 |
-
#: classes/class.pmproemail.php:655 classes/class.pmproemail.php:693
|
1921 |
-
msgid "This membership does not expire"
|
1922 |
-
msgstr "Esta membresa no caduca"
|
1923 |
-
|
1924 |
-
#: classes/class.pmproemail.php:679
|
1925 |
-
#, php-format
|
1926 |
-
msgid "Membership for %s at %s has been changed"
|
1927 |
-
msgstr "La membresía para %s en %s ha cambiado"
|
1928 |
-
|
1929 |
-
#: classes/class.pmproemail.php:685
|
1930 |
-
msgid "membership has been cancelled"
|
1931 |
-
msgstr "La membresía ha sido cancelada"
|
1932 |
-
|
1933 |
-
#: classes/gateways/class.pmprogateway.php:55
|
1934 |
-
#: classes/gateways/class.pmprogateway_authorizenet.php:55
|
1935 |
-
#: classes/gateways/class.pmprogateway_check.php:60
|
1936 |
-
#: classes/gateways/class.pmprogateway_payflowpro.php:27
|
1937 |
-
#: classes/gateways/class.pmprogateway_paypal.php:27
|
1938 |
-
msgid "Unknown error: Authorization failed."
|
1939 |
-
msgstr "Error desconocido: La autorización ha fallado."
|
1940 |
-
|
1941 |
-
#: classes/gateways/class.pmprogateway.php:106
|
1942 |
-
#: classes/gateways/class.pmprogateway.php:111
|
1943 |
-
#: classes/gateways/class.pmprogateway.php:129
|
1944 |
-
#: classes/gateways/class.pmprogateway_authorizenet.php:106
|
1945 |
-
#: classes/gateways/class.pmprogateway_authorizenet.php:111
|
1946 |
-
#: classes/gateways/class.pmprogateway_authorizenet.php:128
|
1947 |
-
#: classes/gateways/class.pmprogateway_check.php:111
|
1948 |
-
#: classes/gateways/class.pmprogateway_check.php:116
|
1949 |
-
#: classes/gateways/class.pmprogateway_check.php:134
|
1950 |
-
#: classes/gateways/class.pmprogateway_payflowpro.php:50
|
1951 |
-
#: classes/gateways/class.pmprogateway_payflowpro.php:55
|
1952 |
-
#: classes/gateways/class.pmprogateway_paypal.php:50
|
1953 |
-
msgid "Unknown error: Payment failed."
|
1954 |
-
msgstr "Error desconocido: El pago ha fallado."
|
1955 |
-
|
1956 |
-
#: classes/gateways/class.pmprogateway.php:113
|
1957 |
-
#: classes/gateways/class.pmprogateway_authorizenet.php:112
|
1958 |
-
#: classes/gateways/class.pmprogateway_check.php:118
|
1959 |
-
msgid ""
|
1960 |
-
"A partial payment was made that we could not void. Please contact the site "
|
1961 |
-
"owner immediately to correct this."
|
1962 |
-
msgstr ""
|
1963 |
-
"Se ha realizado un pago parcial que no hemos podido cancelar. Por favor "
|
1964 |
-
"contacta al administrador del sitio inmediatamente para corregir esto."
|
1965 |
-
|
1966 |
-
#: classes/gateways/class.pmprogateway_authorizenet.php:788
|
1967 |
-
#: classes/gateways/class.pmprogateway_authorizenet.php:789
|
1968 |
-
msgid "Could not connect to Authorize.net"
|
1969 |
-
msgstr "No se pudo conectar a Authorize.net"
|
1970 |
-
|
1971 |
-
#: classes/gateways/class.pmprogateway_braintree.php:61
|
1972 |
-
#: classes/gateways/class.pmprogateway_stripe.php:53
|
1973 |
-
msgid "Unknown error: Initial payment failed."
|
1974 |
-
msgstr "Error desconocido: El pago inicial ha fallado."
|
1975 |
-
|
1976 |
-
#: classes/gateways/class.pmprogateway_braintree.php:120
|
1977 |
-
msgid "Error during settlement:"
|
1978 |
-
msgstr "Error durante la resolución del pago:"
|
1979 |
-
|
1980 |
-
#: classes/gateways/class.pmprogateway_braintree.php:129
|
1981 |
-
msgid "Error during charge:"
|
1982 |
-
msgstr "Error durante el pago:"
|
1983 |
-
|
1984 |
-
#: classes/gateways/class.pmprogateway_braintree.php:198
|
1985 |
-
msgid "Failed to update customer."
|
1986 |
-
msgstr "Falló actualizando cliente."
|
1987 |
-
|
1988 |
-
#: classes/gateways/class.pmprogateway_braintree.php:246
|
1989 |
-
msgid "Failed to create customer."
|
1990 |
-
msgstr "Falló al crear cliente."
|
1991 |
-
|
1992 |
-
#: classes/gateways/class.pmprogateway_braintree.php:253
|
1993 |
-
msgid "Error creating customer record with Braintree:"
|
1994 |
-
msgstr "Error creando entrada para el cliente con Braintree:"
|
1995 |
-
|
1996 |
-
#: classes/gateways/class.pmprogateway_braintree.php:345
|
1997 |
-
msgid "Error subscribing customer to plan with Braintree:"
|
1998 |
-
msgstr "Error subscribiendo al cliente al plan con Braintree:"
|
1999 |
-
|
2000 |
-
#: classes/gateways/class.pmprogateway_braintree.php:360
|
2001 |
-
msgid "Failed to subscribe with Braintree:"
|
2002 |
-
msgstr "Error al subscribirse con Braintree:"
|
2003 |
-
|
2004 |
-
#: classes/gateways/class.pmprogateway_braintree.php:398
|
2005 |
-
#: classes/gateways/class.pmprogateway_braintree.php:411
|
2006 |
-
#: classes/gateways/class.pmprogateway_braintree.php:418
|
2007 |
-
#: classes/gateways/class.pmprogateway_stripe.php:343
|
2008 |
-
#: classes/gateways/class.pmprogateway_stripe.php:353
|
2009 |
-
msgid "Could not find the subscription."
|
2010 |
-
msgstr "No se pudo encontrar la subscripción."
|
2011 |
-
|
2012 |
-
#: classes/gateways/class.pmprogateway_payflowpro.php:57
|
2013 |
-
#: classes/gateways/class.pmprogateway_paypal.php:57
|
2014 |
-
msgid ""
|
2015 |
-
"A partial payment was made that we could not refund. Please contact the site "
|
2016 |
-
"owner immediately to correct this."
|
2017 |
-
msgstr ""
|
2018 |
-
"Se realizó un pago parcial que hemos podido devolver. Por favor contacte al "
|
2019 |
-
"administrador del sitio para corregir este problema."
|
2020 |
-
|
2021 |
-
#: classes/gateways/class.pmprogateway_stripe.php:190
|
2022 |
-
msgid "Error creating customer record with Stripe:"
|
2023 |
-
msgstr "Error creando entrada para el cliente con Stripe:"
|
2024 |
-
|
2025 |
-
#: classes/gateways/class.pmprogateway_stripe.php:278
|
2026 |
-
msgid "Error creating plan with Stripe:"
|
2027 |
-
msgstr "Error creando plan con Stripe:"
|
2028 |
-
|
2029 |
-
#: classes/gateways/class.pmprogateway_stripe.php:294
|
2030 |
-
msgid "Error subscribing customer to plan with Stripe:"
|
2031 |
-
msgstr "Error subscribiendo al cliente al plan con Stripe:"
|
2032 |
-
|
2033 |
-
#: pages/account.php:10
|
2034 |
-
msgid "Your membership is <strong>active</strong>."
|
2035 |
-
msgstr "Tu membresía esta <strong>activa</strong>."
|
2036 |
-
|
2037 |
-
#: pages/account.php:12 pages/billing.php:16 pages/levels.php:13
|
2038 |
-
msgid "Level"
|
2039 |
-
msgstr "Nivel"
|
2040 |
-
|
2041 |
-
#: pages/account.php:14 pages/billing.php:18
|
2042 |
-
msgid "Membership Fee"
|
2043 |
-
msgstr "Cuota de membresía"
|
2044 |
-
|
2045 |
-
#: pages/account.php:25 pages/billing.php:29
|
2046 |
-
msgid "Duration"
|
2047 |
-
msgstr "Duración"
|
2048 |
-
|
2049 |
-
#: pages/account.php:29 pages/confirmation.php:48 pages/invoice.php:29
|
2050 |
-
msgid "Membership Expires"
|
2051 |
-
msgstr "La membresía expira"
|
2052 |
-
|
2053 |
-
#: pages/account.php:34
|
2054 |
-
#, php-format
|
2055 |
-
msgid "Your first payment will cost %s."
|
2056 |
-
msgstr "Tu primer pago costará %s."
|
2057 |
-
|
2058 |
-
#: pages/account.php:38
|
2059 |
-
#, php-format
|
2060 |
-
msgid "Your first %d payments will cost %s."
|
2061 |
-
msgstr "Tus primeros %d pagos costarán %s."
|
2062 |
-
|
2063 |
-
#: pages/account.php:46
|
2064 |
-
msgid "My Account"
|
2065 |
-
msgstr "Mi Cuenta"
|
2066 |
-
|
2067 |
-
#: pages/account.php:55
|
2068 |
-
msgid "Edit Profile"
|
2069 |
-
msgstr "Editar Perfil"
|
2070 |
-
|
2071 |
-
#: pages/account.php:56
|
2072 |
-
msgid "Change Password"
|
2073 |
-
msgstr "Cambiar Contraseña"
|
2074 |
-
|
2075 |
-
#: pages/account.php:105 pages/confirmation.php:61 pages/invoice.php:48
|
2076 |
-
msgid "Payment Method"
|
2077 |
-
msgstr "Método de pago"
|
2078 |
-
|
2079 |
-
#: pages/account.php:114
|
2080 |
-
msgid "Edit Billing Information"
|
2081 |
-
msgstr "Editar información de facturación"
|
2082 |
-
|
2083 |
-
#: pages/account.php:125
|
2084 |
-
msgid "Past Invoices"
|
2085 |
-
msgstr "Facturas pasadas"
|
2086 |
-
|
2087 |
-
#: pages/account.php:140
|
2088 |
-
msgid "View All Invoices"
|
2089 |
-
msgstr "Ver todas las facturas"
|
2090 |
-
|
2091 |
-
#: pages/account.php:146
|
2092 |
-
msgid "Member Links"
|
2093 |
-
msgstr "Links para miembros"
|
2094 |
-
|
2095 |
-
#: pages/account.php:152
|
2096 |
-
msgid "Update Billing Information"
|
2097 |
-
msgstr "Actualizar información de facturación"
|
2098 |
-
|
2099 |
-
#: pages/account.php:155
|
2100 |
-
msgid "Change Membership Level"
|
2101 |
-
msgstr "Cambiar nivel de membresía."
|
2102 |
-
|
2103 |
-
#: pages/account.php:157
|
2104 |
-
msgid "Cancel Membership"
|
2105 |
-
msgstr "Cancelar membresía"
|
2106 |
-
|
2107 |
-
#: pages/billing.php:14
|
2108 |
-
#, php-format
|
2109 |
-
msgid "Logged in as <strong>%s</strong>."
|
2110 |
-
msgstr "Logeado como <strong>%s</strong>."
|
2111 |
-
|
2112 |
-
#: pages/billing.php:14
|
2113 |
-
msgid "logout"
|
2114 |
-
msgstr "salir"
|
2115 |
-
|
2116 |
-
#: pages/billing.php:39
|
2117 |
-
msgid ""
|
2118 |
-
"Your payment subscription is managed by PayPal. Please <a href=\"http://www."
|
2119 |
-
"paypal.com\">login to PayPal here</a> to update your billing information."
|
2120 |
-
msgstr ""
|
2121 |
-
"Tu subscripción de pago es gestionada por Paypal. Por favor <a href=\"http://"
|
2122 |
-
"www.paypal.com\">accede a PayPal aqui</a> para actualizar tu información de "
|
2123 |
-
"facturación."
|
2124 |
-
|
2125 |
-
#: pages/billing.php:65 pages/checkout.php:321
|
2126 |
-
msgid "First Name"
|
2127 |
-
msgstr "Nombre"
|
2128 |
-
|
2129 |
-
#: pages/billing.php:69 pages/checkout.php:325
|
2130 |
-
msgid "Last Name"
|
2131 |
-
msgstr "Apellidos"
|
2132 |
-
|
2133 |
-
#: pages/billing.php:73 pages/checkout.php:329
|
2134 |
-
msgid "Address 1"
|
2135 |
-
msgstr "Direccion 1"
|
2136 |
-
|
2137 |
-
#: pages/billing.php:77 pages/checkout.php:333
|
2138 |
-
msgid "Address 2"
|
2139 |
-
msgstr "Direccion 2"
|
2140 |
-
|
2141 |
-
#: pages/billing.php:87 pages/checkout.php:343
|
2142 |
-
msgid "City"
|
2143 |
-
msgstr "Ciudad"
|
2144 |
-
|
2145 |
-
#: pages/billing.php:91 pages/checkout.php:347
|
2146 |
-
msgid "State"
|
2147 |
-
msgstr "Estado"
|
2148 |
-
|
2149 |
-
#: pages/billing.php:95 pages/checkout.php:351
|
2150 |
-
msgid "Postal Code"
|
2151 |
-
msgstr "Código postal"
|
2152 |
-
|
2153 |
-
#: pages/billing.php:104 pages/checkout.php:360
|
2154 |
-
msgid "City, State Zip"
|
2155 |
-
msgstr "Ciudad, Código postal de estado"
|
2156 |
-
|
2157 |
-
#: pages/billing.php:157 pages/checkout.php:413
|
2158 |
-
msgid "Country"
|
2159 |
-
msgstr "País"
|
2160 |
-
|
2161 |
-
#: pages/billing.php:182 pages/checkout.php:438
|
2162 |
-
msgid "Phone"
|
2163 |
-
msgstr "Teléfono"
|
2164 |
-
|
2165 |
-
#: pages/billing.php:193 pages/checkout.php:204 pages/checkout.php:453
|
2166 |
-
msgid "E-mail Address"
|
2167 |
-
msgstr "Dirección de Email"
|
2168 |
-
|
2169 |
-
#: pages/billing.php:197 pages/checkout.php:462
|
2170 |
-
msgid "Confirm E-mail"
|
2171 |
-
msgstr "Confirmar E-mail"
|
2172 |
-
|
2173 |
-
#: pages/billing.php:217
|
2174 |
-
#, php-format
|
2175 |
-
msgid "We accept %s"
|
2176 |
-
msgstr "Aceptamos %s"
|
2177 |
-
|
2178 |
-
#: pages/billing.php:217
|
2179 |
-
msgid "Credit Card Information"
|
2180 |
-
msgstr "Información de la tarjeta de crédito"
|
2181 |
-
|
2182 |
-
#: pages/billing.php:244 pages/checkout.php:520
|
2183 |
-
msgid "Card Number"
|
2184 |
-
msgstr "Número de la Tarjeta"
|
2185 |
-
|
2186 |
-
#: pages/billing.php:281 pages/checkout.php:557
|
2187 |
-
msgid "CVV"
|
2188 |
-
msgstr "CVV"
|
2189 |
-
|
2190 |
-
#: pages/billing.php:282 pages/checkout.php:558
|
2191 |
-
msgid "what's this?"
|
2192 |
-
msgstr "¿Que es esto?"
|
2193 |
-
|
2194 |
-
#: pages/billing.php:294
|
2195 |
-
msgid "Update"
|
2196 |
-
msgstr "Actualizar"
|
2197 |
-
|
2198 |
-
#: pages/billing.php:309
|
2199 |
-
msgid ""
|
2200 |
-
"This subscription is not recurring. So you don't need to update your billing "
|
2201 |
-
"information."
|
2202 |
-
msgstr ""
|
2203 |
-
"Esta subscripción no es recurrente. Por lo tanto no necesitas actualizar tu "
|
2204 |
-
"información de facturación."
|
2205 |
-
|
2206 |
-
#: pages/cancel.php:14
|
2207 |
-
msgid "Are you sure you want to cancel your membership?"
|
2208 |
-
msgstr "¿Estas seguro de que quieres cancelar tu membresía?"
|
2209 |
-
|
2210 |
-
#: pages/cancel.php:17
|
2211 |
-
msgid "Yes, cancel my account"
|
2212 |
-
msgstr "Si, cancela mi cuenta"
|
2213 |
-
|
2214 |
-
#: pages/cancel.php:19
|
2215 |
-
msgid "No, keep my account"
|
2216 |
-
msgstr "No, mantén mi cuenta"
|
2217 |
-
|
2218 |
-
#: pages/cancel.php:22
|
2219 |
-
msgid "Click here to go to the home page."
|
2220 |
-
msgstr "Haz click aquí para ir a la página principal."
|
2221 |
-
|
2222 |
-
#: pages/checkout.php:27
|
2223 |
-
msgid ""
|
2224 |
-
"Almost done. Review the membership information and pricing below then "
|
2225 |
-
"<strong>click the \"Complete Payment\" button</strong> to finish your order."
|
2226 |
-
msgstr ""
|
2227 |
-
"Casi has terminado. Revisa la información de la membresía y precios aqui "
|
2228 |
-
"abajo y después <strong>haz click en el botón \"Completar pago\" </strong> "
|
2229 |
-
"para finalizar."
|
2230 |
-
|
2231 |
-
#: pages/checkout.php:34
|
2232 |
-
msgid "change"
|
2233 |
-
msgstr "cambiar"
|
2234 |
-
|
2235 |
-
#: pages/checkout.php:42
|
2236 |
-
#, php-format
|
2237 |
-
msgid "You have selected the <strong>%s</strong> membership level."
|
2238 |
-
msgstr "Has seleccionado el nivel de membresía <strong>%s</strong>."
|
2239 |
-
|
2240 |
-
#: pages/checkout.php:52
|
2241 |
-
#, php-format
|
2242 |
-
msgid "<p>The <strong>%s</strong> code has been applied to your order.</p>"
|
2243 |
-
msgstr "<p> El cupón <strong>%s</strong> ha sido aplicado a tu pago.</p>"
|
2244 |
-
|
2245 |
-
#: pages/checkout.php:63 services/applydiscountcode.php:74
|
2246 |
-
msgid "Click here to change your discount code"
|
2247 |
-
msgstr "Haz click aquí para cambiar tu cupón de descuento"
|
2248 |
-
|
2249 |
-
#: pages/checkout.php:65
|
2250 |
-
msgid "Do you have a discount code?"
|
2251 |
-
msgstr "¿Tienes un cupón de descuento?"
|
2252 |
-
|
2253 |
-
#: pages/checkout.php:65
|
2254 |
-
msgid "Click here to enter your discount code"
|
2255 |
-
msgstr "Haz click aquí para introducir tu cupón de descuento"
|
2256 |
-
|
2257 |
-
#: pages/checkout.php:79 pages/checkout.php:568
|
2258 |
-
msgid "Apply"
|
2259 |
-
msgstr "Aplicar"
|
2260 |
-
|
2261 |
-
#: pages/checkout.php:160
|
2262 |
-
msgid "Already have an account?"
|
2263 |
-
msgstr "¿Ya tienes una cuenta?"
|
2264 |
-
|
2265 |
-
#: pages/checkout.php:160
|
2266 |
-
msgid "Log in here"
|
2267 |
-
msgstr "logeate aquí"
|
2268 |
-
|
2269 |
-
#: pages/checkout.php:160
|
2270 |
-
msgid "Account Information"
|
2271 |
-
msgstr "Información de la cuenta"
|
2272 |
-
|
2273 |
-
#: pages/checkout.php:186
|
2274 |
-
msgid "Confirm Password"
|
2275 |
-
msgstr "Confirma tu contraseña"
|
2276 |
-
|
2277 |
-
#: pages/checkout.php:213
|
2278 |
-
msgid "Confirm E-mail Address"
|
2279 |
-
msgstr "Confirma tu dirección de E-mail"
|
2280 |
-
|
2281 |
-
#: pages/checkout.php:232
|
2282 |
-
msgid "Full Name"
|
2283 |
-
msgstr "Nombre Completo"
|
2284 |
-
|
2285 |
-
#: pages/checkout.php:233
|
2286 |
-
msgid "LEAVE THIS BLANK"
|
2287 |
-
msgstr "DEJA ESTO EN BLANCO"
|
2288 |
-
|
2289 |
-
#: pages/checkout.php:257
|
2290 |
-
#, php-format
|
2291 |
-
msgid ""
|
2292 |
-
"You are logged in as <strong>%s</strong>. If you would like to use a "
|
2293 |
-
"different account for this membership, <a href=\"%s\">log out now</a>."
|
2294 |
-
msgstr ""
|
2295 |
-
"Estas logeado como <strong>%s</strong>. Si deseas usar una cuenta diferente "
|
2296 |
-
"para esta membresía,<a href=\"%s\">deslogeate ahora</a>."
|
2297 |
-
|
2298 |
-
#: pages/checkout.php:277
|
2299 |
-
#, php-format
|
2300 |
-
msgid "I agree to the %s"
|
2301 |
-
msgstr "Acepto %s"
|
2302 |
-
|
2303 |
-
#: pages/checkout.php:292
|
2304 |
-
msgid "Choose your Payment Method"
|
2305 |
-
msgstr "Elije tu método de pago"
|
2306 |
-
|
2307 |
-
#: pages/checkout.php:300
|
2308 |
-
msgid "Check Out with a Credit Card Here"
|
2309 |
-
msgstr "Pague con su tarjeta de crédito aquí"
|
2310 |
-
|
2311 |
-
#: pages/checkout.php:302 pages/checkout.php:675
|
2312 |
-
msgid "Check Out with PayPal"
|
2313 |
-
msgstr "pague con PayPal"
|
2314 |
-
|
2315 |
-
#: pages/checkout.php:493
|
2316 |
-
#, php-format
|
2317 |
-
msgid "We Accept %s"
|
2318 |
-
msgstr "Aceptamos %s"
|
2319 |
-
|
2320 |
-
#: pages/checkout.php:493
|
2321 |
-
msgid "Payment Information"
|
2322 |
-
msgstr "Información de pago"
|
2323 |
-
|
2324 |
-
#: pages/checkout.php:667
|
2325 |
-
msgid "Complete Payment"
|
2326 |
-
msgstr "Completa el pago"
|
2327 |
-
|
2328 |
-
#: pages/checkout.php:681
|
2329 |
-
msgid "Submit and Check Out"
|
2330 |
-
msgstr "Envíar y pagar"
|
2331 |
-
|
2332 |
-
#: pages/checkout.php:681
|
2333 |
-
msgid "Submit and Confirm"
|
2334 |
-
msgstr "Enviar y confirmar"
|
2335 |
-
|
2336 |
-
#: pages/checkout.php:687
|
2337 |
-
msgid "Processing..."
|
2338 |
-
msgstr "Procesando..."
|
2339 |
-
|
2340 |
-
#: pages/confirmation.php:12
|
2341 |
-
msgid ""
|
2342 |
-
"Your payment has been submitted to PayPal. Your membership will be activated "
|
2343 |
-
"shortly."
|
2344 |
-
msgstr "Tu pago ha sido enviado a PayPal. Tu membresía será activada en breve."
|
2345 |
-
|
2346 |
-
#: pages/confirmation.php:14
|
2347 |
-
#, php-format
|
2348 |
-
msgid "Thank you for your membership to %s. Your %s membership is now active."
|
2349 |
-
msgstr ""
|
2350 |
-
"Gracias por hacerte miembro en %s. Tu membresía %s ahora esta activada."
|
2351 |
-
|
2352 |
-
#: pages/confirmation.php:28
|
2353 |
-
#, php-format
|
2354 |
-
msgid ""
|
2355 |
-
"Below are details about your membership account and a receipt for your "
|
2356 |
-
"initial membership invoice. A welcome email with a copy of your initial "
|
2357 |
-
"membership invoice has been sent to %s."
|
2358 |
-
msgstr ""
|
2359 |
-
"Debajo estan los detalles sobre tu cuenta de membresía y un recibo por la "
|
2360 |
-
"factura de tu pago inicial. Un email de bienvenida y una copia de la factura "
|
2361 |
-
"de tu membresía inicial ha sido enviado a %s."
|
2362 |
-
|
2363 |
-
#: pages/confirmation.php:41 pages/invoice.php:22
|
2364 |
-
#, php-format
|
2365 |
-
msgid "Invoice #%s on %s"
|
2366 |
-
msgstr "Factura #%s en %s"
|
2367 |
-
|
2368 |
-
#: pages/confirmation.php:43
|
2369 |
-
msgid "Print"
|
2370 |
-
msgstr "Imprimir"
|
2371 |
-
|
2372 |
-
#: pages/confirmation.php:45 pages/confirmation.php:102 pages/invoice.php:26
|
2373 |
-
msgid "Account"
|
2374 |
-
msgstr "Cuenta"
|
2375 |
-
|
2376 |
-
#: pages/confirmation.php:63 pages/invoice.php:50 pages/invoice.php:107
|
2377 |
-
msgid "Total Billed"
|
2378 |
-
msgstr "Total Cobrado"
|
2379 |
-
|
2380 |
-
#: pages/confirmation.php:80 pages/invoice.php:67
|
2381 |
-
msgid "ending in"
|
2382 |
-
msgstr "terminado en"
|
2383 |
-
|
2384 |
-
#: pages/confirmation.php:95
|
2385 |
-
#, php-format
|
2386 |
-
msgid ""
|
2387 |
-
"Below are details about your membership account. A welcome email with has "
|
2388 |
-
"been sent to %s."
|
2389 |
-
msgstr ""
|
2390 |
-
"Debajo estan los detalles sobre tu cuenta de miembro. Un email de bienvenida "
|
2391 |
-
"ha sido enviado a %s."
|
2392 |
-
|
2393 |
-
#: pages/confirmation.php:103
|
2394 |
-
msgid "Pending"
|
2395 |
-
msgstr "Pendiente"
|
2396 |
-
|
2397 |
-
#: pages/confirmation.php:111 pages/invoice.php:139
|
2398 |
-
msgid "View Your Membership Account →"
|
2399 |
-
msgstr "Ver tu cuenta de miembro →"
|
2400 |
-
|
2401 |
-
#: pages/confirmation.php:113
|
2402 |
-
msgid ""
|
2403 |
-
"If your account is not activated within a few minutes, please contact the "
|
2404 |
-
"site owner."
|
2405 |
-
msgstr ""
|
2406 |
-
"Si tu cuenta no es activada en unos minutos, por favor contacta al "
|
2407 |
-
"administrador del sitio."
|
2408 |
-
|
2409 |
-
#: pages/invoice.php:77
|
2410 |
-
msgid "Subtotal"
|
2411 |
-
msgstr "Subtotal"
|
2412 |
-
|
2413 |
-
#: pages/invoice.php:80
|
2414 |
-
msgid "Coupon"
|
2415 |
-
msgstr "Cupón"
|
2416 |
-
|
2417 |
-
#: pages/invoice.php:106
|
2418 |
-
msgid "Invoice #"
|
2419 |
-
msgstr "Factura #"
|
2420 |
-
|
2421 |
-
#: pages/invoice.php:120
|
2422 |
-
msgid "View Invoice"
|
2423 |
-
msgstr "Ver factura"
|
2424 |
-
|
2425 |
-
#: pages/invoice.php:132
|
2426 |
-
msgid "No invoices found."
|
2427 |
-
msgstr "No se han encontrado facturas."
|
2428 |
-
|
2429 |
-
#: pages/invoice.php:143
|
2430 |
-
msgid "← View All Invoices"
|
2431 |
-
msgstr "← Ver todas las facturas"
|
2432 |
-
|
2433 |
-
#: pages/levels.php:15
|
2434 |
-
msgid "Subscription Information"
|
2435 |
-
msgstr "Información de subscripción"
|
2436 |
-
|
2437 |
-
#: pages/levels.php:33
|
2438 |
-
msgid "--"
|
2439 |
-
msgstr "--"
|
2440 |
-
|
2441 |
-
#: pages/levels.php:43
|
2442 |
-
msgid "Free"
|
2443 |
-
msgstr "Gratis"
|
2444 |
-
|
2445 |
-
#: pages/levels.php:51
|
2446 |
-
#, php-format
|
2447 |
-
msgid "%s per %s for %d more %s."
|
2448 |
-
msgstr "%s por %s por %d mas %s."
|
2449 |
-
|
2450 |
-
#: pages/levels.php:55
|
2451 |
-
#, php-format
|
2452 |
-
msgid "%s every %d %s for %d more %s."
|
2453 |
-
msgstr "%s cada %d %s por %d mas %s."
|
2454 |
-
|
2455 |
-
#: pages/levels.php:60
|
2456 |
-
#, php-format
|
2457 |
-
msgid "%s after %d %s."
|
2458 |
-
msgstr "%s y luego %d %s."
|
2459 |
-
|
2460 |
-
#: pages/levels.php:66
|
2461 |
-
#, php-format
|
2462 |
-
msgid "%s per %s."
|
2463 |
-
msgstr "%s por %s."
|
2464 |
-
|
2465 |
-
#: pages/levels.php:70
|
2466 |
-
#, php-format
|
2467 |
-
msgid "%s every %d %s."
|
2468 |
-
msgstr "%s cada %d %s."
|
2469 |
-
|
2470 |
-
#: pages/levels.php:113 pages/levels.php:115
|
2471 |
-
msgid "Select"
|
2472 |
-
msgstr "Selecciona"
|
2473 |
-
|
2474 |
-
#: pages/levels.php:117
|
2475 |
-
msgid "Your Level"
|
2476 |
-
msgstr "Tu Nivel"
|
2477 |
-
|
2478 |
-
#: pages/levels.php:129
|
2479 |
-
msgid "← Return to Your Account"
|
2480 |
-
msgstr "← Vover a tu cuenta"
|
2481 |
-
|
2482 |
-
#: pages/levels.php:131
|
2483 |
-
msgid "← Return to Home"
|
2484 |
-
msgstr "← Volver a la página principal"
|
2485 |
-
|
2486 |
-
#: preheaders/account.php:7 preheaders/levels.php:19
|
2487 |
-
msgid "Your membership status has been updated - Thank you!"
|
2488 |
-
msgstr "El estado de tu membresa ha sido actualizado - Gracias!"
|
2489 |
-
|
2490 |
-
#: preheaders/account.php:11 preheaders/levels.php:23
|
2491 |
-
msgid ""
|
2492 |
-
"Sorry, your request could not be completed - please try again in a few "
|
2493 |
-
"moments."
|
2494 |
-
msgstr ""
|
2495 |
-
"Disculpa, tu petición no ha podido completarse - por favor prueba en unos "
|
2496 |
-
"momentos."
|
2497 |
-
|
2498 |
-
#: preheaders/billing.php:258 preheaders/checkout.php:464
|
2499 |
-
msgid "Please complete all required fields."
|
2500 |
-
msgstr "Por favor completa todos los campos requeridos."
|
2501 |
-
|
2502 |
-
#: preheaders/billing.php:263 preheaders/checkout.php:474
|
2503 |
-
msgid "Your email addresses do not match. Please try again."
|
2504 |
-
msgstr "Tus direcciones de Email no coinciden. Por favor intentalo de nuevo."
|
2505 |
-
|
2506 |
-
#: preheaders/billing.php:268 preheaders/checkout.php:480
|
2507 |
-
msgid "The email address entered is in an invalid format. Please try again."
|
2508 |
-
msgstr ""
|
2509 |
-
"La dirección de email introducida esta en un formato inválido. Por favor "
|
2510 |
-
"prueba de nuevo."
|
2511 |
-
|
2512 |
-
#: preheaders/billing.php:274
|
2513 |
-
msgid "All good!"
|
2514 |
-
msgstr "Todo correcto!"
|
2515 |
-
|
2516 |
-
#: preheaders/billing.php:340
|
2517 |
-
#, php-format
|
2518 |
-
msgid "Information updated. <a href=\"%s\">« back to my account</a>"
|
2519 |
-
msgstr "Información actualizada.a href=\"%s\">« Volver a mi cuenta</a>"
|
2520 |
-
|
2521 |
-
#: preheaders/billing.php:347
|
2522 |
-
msgid "Error updating billing information."
|
2523 |
-
msgstr "Error actualizando la información de facturación."
|
2524 |
-
|
2525 |
-
#: preheaders/cancel.php:24
|
2526 |
-
msgid "Your membership has been cancelled."
|
2527 |
-
msgstr "Tu membresía ha sido cancelada."
|
2528 |
-
|
2529 |
-
#: preheaders/checkout.php:28 preheaders/checkout.php:491
|
2530 |
-
msgid "Invalid gateway."
|
2531 |
-
msgstr "Pasarela de pago inválida."
|
2532 |
-
|
2533 |
-
#: preheaders/checkout.php:96
|
2534 |
-
msgid "Checkout: Payment Information"
|
2535 |
-
msgstr "Checkout: Información de pago"
|
2536 |
-
|
2537 |
-
#: preheaders/checkout.php:109
|
2538 |
-
msgid "Setup Your Account"
|
2539 |
-
msgstr "Configura tu cuenta"
|
2540 |
-
|
2541 |
-
#: preheaders/checkout.php:468
|
2542 |
-
msgid "Your passwords do not match. Please try again."
|
2543 |
-
msgstr "Tus contraseñas no coinciden. Por favor intentalo de nuevo."
|
2544 |
-
|
2545 |
-
#: preheaders/checkout.php:486
|
2546 |
-
#, php-format
|
2547 |
-
msgid "Please check the box to agree to the %s."
|
2548 |
-
msgstr "Por favor marca la cajita para aceptar %s."
|
2549 |
-
|
2550 |
-
#: preheaders/checkout.php:495
|
2551 |
-
msgid "Are you a spammer?"
|
2552 |
-
msgstr "¿Eres un spammer?"
|
2553 |
-
|
2554 |
-
#: preheaders/checkout.php:518
|
2555 |
-
msgid "That username is already taken. Please try another."
|
2556 |
-
msgstr "Ese nombre de usuario ya esta en uso. Por favor prueba uno diferente."
|
2557 |
-
|
2558 |
-
#: preheaders/checkout.php:524
|
2559 |
-
msgid "That email address is already taken. Please try another."
|
2560 |
-
msgstr "Esa dirección de correo está en uso. Por favor prueba una diferente."
|
2561 |
-
|
2562 |
-
#: preheaders/checkout.php:544
|
2563 |
-
#, php-format
|
2564 |
-
msgid "reCAPTCHA failed. (%s) Please try again."
|
2565 |
-
msgstr "reCAPTCHA ha fallado.(%s) Por favor intentalo de nuevo."
|
2566 |
-
|
2567 |
-
#: preheaders/checkout.php:683
|
2568 |
-
msgid "Payment accepted."
|
2569 |
-
msgstr "Pago aceptado."
|
2570 |
-
|
2571 |
-
#: preheaders/checkout.php:691
|
2572 |
-
msgid ""
|
2573 |
-
"Unknown error generating account. Please contact us to setup your membership."
|
2574 |
-
msgstr ""
|
2575 |
-
"Error desconocido generando tu cuenta. Por favor contactanos para que "
|
2576 |
-
"podamos configurar tu membresía."
|
2577 |
-
|
2578 |
-
#: preheaders/checkout.php:735 preheaders/checkout.php:803
|
2579 |
-
msgid "The PayPal Token was lost."
|
2580 |
-
msgstr "El token de PayPal se ha perdido."
|
2581 |
-
|
2582 |
-
#: preheaders/checkout.php:825
|
2583 |
-
msgid ""
|
2584 |
-
"Your payment was accepted, but there was an error setting up your account. "
|
2585 |
-
"Please contact us."
|
2586 |
-
msgstr ""
|
2587 |
-
"Tu pago ha sido aceptado, pero hubo un error creando tu cuenta. Contáctanos "
|
2588 |
-
"por favor."
|
2589 |
-
|
2590 |
-
#: preheaders/checkout.php:983
|
2591 |
-
msgid ""
|
2592 |
-
"IMPORTANT: Something went wrong during membership creation. Your credit card "
|
2593 |
-
"authorized, but we cancelled the order immediately. You should not try to "
|
2594 |
-
"submit this form again. Please contact the site owner to fix this issue."
|
2595 |
-
msgstr ""
|
2596 |
-
"IMPORTANTE: Algún error ocurrió durante la creación de tu membresía. Tu "
|
2597 |
-
"tarjeta de crédito fue autorizada, pero hemos cancelado el pago "
|
2598 |
-
"inmediatamente. No envíes este formulario de nuevo. Ponte en contacto con el "
|
2599 |
-
"administrador del sitio para arreglar este problema."
|
2600 |
-
|
2601 |
-
#: preheaders/checkout.php:988
|
2602 |
-
msgid ""
|
2603 |
-
"IMPORTANT: Something went wrong during membership creation. Your credit card "
|
2604 |
-
"was charged, but we couldn't assign your membership. You should not submit "
|
2605 |
-
"this form again. Please contact the site owner to fix this issue."
|
2606 |
-
msgstr ""
|
2607 |
-
"IMPORTANTE: Algún error ocurrió durante la creación de tu membresía. Tu "
|
2608 |
-
"tarjeta de crédito ha recibito un cargo, pero no hemos podido asignarte la "
|
2609 |
-
"membresía. No envíes este formulario de nuevo. Ponte en contacto con el "
|
2610 |
-
"administrador del sitio para arreglar este problema."
|
2611 |
-
|
2612 |
-
#: preheaders/checkout.php:1001
|
2613 |
-
#, php-format
|
2614 |
-
msgid ""
|
2615 |
-
"You must <a href=\"%s\">setup a Payment Gateway</a> before any payments will "
|
2616 |
-
"be processed."
|
2617 |
-
msgstr ""
|
2618 |
-
"Debes <a href=\"%s\">Configurar una pasarela de pagos</a> antes de poder "
|
2619 |
-
"procesar pagos."
|
2620 |
-
|
2621 |
-
#: preheaders/checkout.php:1003
|
2622 |
-
msgid "A Payment Gateway must be setup before any payments will be processed."
|
2623 |
-
msgstr ""
|
2624 |
-
"Una pasarela de pagos debe de ser configurada antes de que los pagos puedan "
|
2625 |
-
"ser procesados."
|
2626 |
-
|
2627 |
-
#: scheduled/crons.php:27
|
2628 |
-
#, php-format
|
2629 |
-
msgid "Membership expiring email sent to %s. "
|
2630 |
-
msgstr "Emails de expiración de membresía enviados a %s."
|
2631 |
-
|
2632 |
-
#: scheduled/crons.php:61
|
2633 |
-
#, php-format
|
2634 |
-
msgid "Membership expired email sent to %s. "
|
2635 |
-
msgstr "Email de membresía expirada enviado a %s."
|
2636 |
-
|
2637 |
-
#: scheduled/crons.php:104
|
2638 |
-
#, php-format
|
2639 |
-
msgid "Trial ending email sent to %s. "
|
2640 |
-
msgstr "Email de fin de periodo de prueba enviado a %s."
|
2641 |
-
|
2642 |
-
#: services/applydiscountcode.php:82
|
2643 |
-
#, php-format
|
2644 |
-
msgid "The <strong>%s</strong> code has been applied to your order."
|
2645 |
-
msgstr "El cupón <strong>%s</strong> ha sido aplicado a tu pago."
|
2646 |
-
|
2647 |
-
#: services/authnet-silent-post.php:133
|
2648 |
-
msgid ""
|
2649 |
-
"<p>A payment is being held for review within Authorize.net.</p><p>Payment "
|
2650 |
-
"Information From Authorize.net"
|
2651 |
-
msgstr ""
|
2652 |
-
"<p>Authorize.net ha congelado un pago y está revisandolo.</p><p>Información "
|
2653 |
-
"de pago de Authorize.net"
|
2654 |
-
|
2655 |
-
#: services/stripe-webhook.php:176
|
2656 |
-
#, php-format
|
2657 |
-
msgid ""
|
2658 |
-
"%s has had their payment subscription cancelled by Stripe. Please check that "
|
2659 |
-
"this user's membership is cancelled on your site if it should be."
|
2660 |
-
msgstr ""
|
2661 |
-
"Stripe ha cancelado la subscripción de pago para %s. Por favor asegurate que "
|
2662 |
-
"la membresía de este usuario es cancelada en tu sitio si es necesario."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/pmpro-es_CL.pot
DELETED
@@ -1,2662 +0,0 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Project-Id-Version: pmpro\n"
|
4 |
-
"POT-Creation-Date: 2013-08-01 05:01-0500\n"
|
5 |
-
"PO-Revision-Date: 2013-08-22 03:37-0800\n"
|
6 |
-
"Last-Translator: \n"
|
7 |
-
"Language-Team: Stranger Studios <jason@strangerstudios.com>\n"
|
8 |
-
"MIME-Version: 1.0\n"
|
9 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
-
"Content-Transfer-Encoding: 8bit\n"
|
11 |
-
"X-Generator: Poedit 1.5.7\n"
|
12 |
-
"X-Poedit-KeywordsList: __;_;_e;_ex;_x;_n\n"
|
13 |
-
"X-Poedit-Basepath: ../\n"
|
14 |
-
"X-Poedit-SearchPath-0: includes\n"
|
15 |
-
"X-Poedit-SearchPath-1: .\n"
|
16 |
-
"X-Poedit-SearchPath-2: classes\n"
|
17 |
-
"X-Poedit-SearchPath-3: preheaders\n"
|
18 |
-
"X-Poedit-SearchPath-4: pages\n"
|
19 |
-
"X-Poedit-SearchPath-5: adminpages\n"
|
20 |
-
"X-Poedit-SearchPath-6: classes/gateways\n"
|
21 |
-
"X-Poedit-SearchPath-7: services\n"
|
22 |
-
"X-Poedit-SearchPath-8: shortcodes\n"
|
23 |
-
"X-Poedit-SearchPath-9: scheduled\n"
|
24 |
-
|
25 |
-
#: includes/adminpages.php:9 includes/adminpages.php:39
|
26 |
-
msgid "Memberships"
|
27 |
-
msgstr "Membresía"
|
28 |
-
|
29 |
-
#: includes/adminpages.php:10 includes/adminpages.php:49
|
30 |
-
msgid "Page Settings"
|
31 |
-
msgstr "Ajustes de Página"
|
32 |
-
|
33 |
-
#: includes/adminpages.php:11 includes/adminpages.php:54
|
34 |
-
msgid "Payment Settings"
|
35 |
-
msgstr "Ajustes de Facturación"
|
36 |
-
|
37 |
-
#: includes/adminpages.php:12 includes/adminpages.php:59
|
38 |
-
#: adminpages/emailsettings.php:60
|
39 |
-
msgid "Email Settings"
|
40 |
-
msgstr "Ajustes de Email"
|
41 |
-
|
42 |
-
#: includes/adminpages.php:13 includes/adminpages.php:64
|
43 |
-
#: adminpages/advancedsettings.php:79
|
44 |
-
msgid "Advanced Settings"
|
45 |
-
msgstr "Opciones Avanzadas"
|
46 |
-
|
47 |
-
#: includes/adminpages.php:14 includes/adminpages.php:69
|
48 |
-
#: adminpages/admin_header.php:133
|
49 |
-
msgid "Add Ons"
|
50 |
-
msgstr "Add Ons"
|
51 |
-
|
52 |
-
#: includes/adminpages.php:15 includes/adminpages.php:74
|
53 |
-
#: adminpages/memberslist.php:25
|
54 |
-
msgid "Members List"
|
55 |
-
msgstr "Lista de Miembros"
|
56 |
-
|
57 |
-
#: includes/adminpages.php:16 includes/adminpages.php:79
|
58 |
-
msgid "Reports"
|
59 |
-
msgstr "Informes"
|
60 |
-
|
61 |
-
#: includes/adminpages.php:17 includes/adminpages.php:84
|
62 |
-
#: adminpages/orders.php:520
|
63 |
-
msgid "Orders"
|
64 |
-
msgstr "Órdenes"
|
65 |
-
|
66 |
-
#: includes/adminpages.php:18 includes/adminpages.php:89
|
67 |
-
msgid "Discount Codes"
|
68 |
-
msgstr "Códigos de Descuento"
|
69 |
-
|
70 |
-
#: includes/adminpages.php:44 adminpages/admin_header.php:128
|
71 |
-
#: adminpages/membershiplevels.php:490
|
72 |
-
msgid "Membership Levels"
|
73 |
-
msgstr "Niveles de Membresía"
|
74 |
-
|
75 |
-
#: includes/cleanup.php:24
|
76 |
-
#, php-format
|
77 |
-
msgid ""
|
78 |
-
"There was an error canceling the subscription for user with ID=%s. You will "
|
79 |
-
"want to check your payment gateway to see if their subscription is still "
|
80 |
-
"active."
|
81 |
-
msgstr ""
|
82 |
-
"Hubo un error cancelando la subscripcion para el usuario con ID=%s. Deberías "
|
83 |
-
"comprobar tu procesamiento de pagos (payment gateway) y ver si tu "
|
84 |
-
"suscripción sigue activa."
|
85 |
-
|
86 |
-
#: includes/currencies.php:7 includes/currencies.php:37
|
87 |
-
msgid "US Dollars ($)"
|
88 |
-
msgstr "Dólares ($)"
|
89 |
-
|
90 |
-
#: includes/currencies.php:8 includes/currencies.php:40
|
91 |
-
msgid "Euros (€)"
|
92 |
-
msgstr "Euros (€)"
|
93 |
-
|
94 |
-
#: includes/currencies.php:9 includes/currencies.php:39
|
95 |
-
msgid "Pounds Sterling (£)"
|
96 |
-
msgstr "Libras Esterlinas (£)"
|
97 |
-
|
98 |
-
#: includes/currencies.php:10
|
99 |
-
msgid "Australian Dollars ($)"
|
100 |
-
msgstr "Dólares Australianos ($)"
|
101 |
-
|
102 |
-
#: includes/currencies.php:11
|
103 |
-
msgid "Brazilian Real ($)"
|
104 |
-
msgstr "Reales Brasileños ($)"
|
105 |
-
|
106 |
-
#: includes/currencies.php:12 includes/currencies.php:38
|
107 |
-
msgid "Canadian Dollars ($)"
|
108 |
-
msgstr "Dólares Canadienses ($)"
|
109 |
-
|
110 |
-
#: includes/currencies.php:13
|
111 |
-
msgid "Czech Koruna"
|
112 |
-
msgstr "Corona Checa"
|
113 |
-
|
114 |
-
#: includes/currencies.php:14
|
115 |
-
msgid "Danish Krone"
|
116 |
-
msgstr "Corona Danesa"
|
117 |
-
|
118 |
-
#: includes/currencies.php:15
|
119 |
-
msgid "Hong Kong Dollar ($)"
|
120 |
-
msgstr "Dolares de Hong Kong ($)"
|
121 |
-
|
122 |
-
#: includes/currencies.php:16
|
123 |
-
msgid "Hungarian Forint"
|
124 |
-
msgstr "Florín húngaro"
|
125 |
-
|
126 |
-
#: includes/currencies.php:17
|
127 |
-
msgid "Israeli Shekel"
|
128 |
-
msgstr "Nuevo shéquel"
|
129 |
-
|
130 |
-
#: includes/currencies.php:18
|
131 |
-
msgid "Japanese Yen (¥)"
|
132 |
-
msgstr "Yen japonés (¥)"
|
133 |
-
|
134 |
-
#: includes/currencies.php:19
|
135 |
-
msgid "Malaysian Ringgits"
|
136 |
-
msgstr "Ringgit (dólar malayo)"
|
137 |
-
|
138 |
-
#: includes/currencies.php:20
|
139 |
-
msgid "Mexican Peso ($)"
|
140 |
-
msgstr "Peso mejicano ($)"
|
141 |
-
|
142 |
-
#: includes/currencies.php:21
|
143 |
-
msgid "New Zealand Dollar ($)"
|
144 |
-
msgstr "dólar neozelandés ($)"
|
145 |
-
|
146 |
-
#: includes/currencies.php:22
|
147 |
-
msgid "Norwegian Krone"
|
148 |
-
msgstr "Corona noruega"
|
149 |
-
|
150 |
-
#: includes/currencies.php:23
|
151 |
-
msgid "Philippine Pesos"
|
152 |
-
msgstr "Peso filipino"
|
153 |
-
|
154 |
-
#: includes/currencies.php:24
|
155 |
-
msgid "Polish Zloty"
|
156 |
-
msgstr "esloti polaco"
|
157 |
-
|
158 |
-
#: includes/currencies.php:25
|
159 |
-
msgid "Singapore Dollar ($)"
|
160 |
-
msgstr "Dólar de Singapur ($)"
|
161 |
-
|
162 |
-
#: includes/currencies.php:26
|
163 |
-
msgid "Swedish Krona"
|
164 |
-
msgstr "Corona Sueca"
|
165 |
-
|
166 |
-
#: includes/currencies.php:27
|
167 |
-
msgid "Swiss Franc"
|
168 |
-
msgstr "Franco Suizo"
|
169 |
-
|
170 |
-
#: includes/currencies.php:28
|
171 |
-
msgid "Taiwan New Dollars"
|
172 |
-
msgstr "Nuevo dólar taiwanés"
|
173 |
-
|
174 |
-
#: includes/currencies.php:29
|
175 |
-
msgid "Thai Baht"
|
176 |
-
msgstr "baht tailandés"
|
177 |
-
|
178 |
-
#: includes/functions.php:160
|
179 |
-
#, php-format
|
180 |
-
msgid "The price for membership is <strong>%s</strong> now"
|
181 |
-
msgstr "El precio por la membresía es <strong>%s</strong> ahora"
|
182 |
-
|
183 |
-
#: includes/functions.php:169
|
184 |
-
#, php-format
|
185 |
-
msgid " and then <strong>%s per %s for %d more %s</strong>."
|
186 |
-
msgstr "y después <strong>%s por %s durante %d %s mas </strong>."
|
187 |
-
|
188 |
-
#: includes/functions.php:173
|
189 |
-
#, php-format
|
190 |
-
msgid " and then <strong>%s every %d %s for %d more %s</strong>."
|
191 |
-
msgstr "y después <strong>%s cada %d %s por %d durante %s más </strong>."
|
192 |
-
|
193 |
-
#: includes/functions.php:178
|
194 |
-
#, php-format
|
195 |
-
msgid " and then <strong>%s after %d %s</strong>."
|
196 |
-
msgstr "y luego <strong>%s después %d %s</strong>."
|
197 |
-
|
198 |
-
#: includes/functions.php:184
|
199 |
-
#, php-format
|
200 |
-
msgid " and then <strong>%s per %s</strong>."
|
201 |
-
msgstr "y despues <strong>%s por %s</strong>."
|
202 |
-
|
203 |
-
#: includes/functions.php:188
|
204 |
-
#, php-format
|
205 |
-
msgid " and then <strong>%s every %d %s</strong>."
|
206 |
-
msgstr "y después <strong>%s cada %d %s</strong>."
|
207 |
-
|
208 |
-
#: includes/functions.php:202 pages/levels.php:82
|
209 |
-
msgid "After your initial payment, your first payment is Free."
|
210 |
-
msgstr "Despues de tu pago inicial, tu primera cuota no tiene coste."
|
211 |
-
|
212 |
-
#: includes/functions.php:206 pages/levels.php:86
|
213 |
-
#, php-format
|
214 |
-
msgid "After your initial payment, your first %d payments are Free."
|
215 |
-
msgstr "Despues de tu pago inicial, tus primeras %d cuotas no tienen coste."
|
216 |
-
|
217 |
-
#: includes/functions.php:213 pages/levels.php:93
|
218 |
-
#, php-format
|
219 |
-
msgid "After your initial payment, your first payment will cost %s."
|
220 |
-
msgstr "Despues de tu pago inicial, tu primera cuota costará %s."
|
221 |
-
|
222 |
-
#: includes/functions.php:217 pages/levels.php:97
|
223 |
-
#, php-format
|
224 |
-
msgid "After your initial payment, your first %d payments will cost %s."
|
225 |
-
msgstr "Despues de tu pago inicial, tus primeras %d cuotas costarán %s."
|
226 |
-
|
227 |
-
#: includes/functions.php:228
|
228 |
-
#, php-format
|
229 |
-
msgid "Customers in %s will be charged %s%% tax."
|
230 |
-
msgstr "A los clientes en %s se les cobrará %s%% de impuestos."
|
231 |
-
|
232 |
-
#: includes/functions.php:242
|
233 |
-
#, php-format
|
234 |
-
msgid "Membership expires after %d %s."
|
235 |
-
msgstr "La membresía expira despues de %d %s."
|
236 |
-
|
237 |
-
#: includes/functions.php:491
|
238 |
-
msgid "User ID not found."
|
239 |
-
msgstr "ID de usuario no encontrado."
|
240 |
-
|
241 |
-
#: includes/functions.php:508
|
242 |
-
msgid "Invalid level."
|
243 |
-
msgstr "Nivel inválido."
|
244 |
-
|
245 |
-
#: includes/functions.php:520
|
246 |
-
msgid "not changing?"
|
247 |
-
msgstr "Sin cambios?"
|
248 |
-
|
249 |
-
#: includes/functions.php:537 includes/functions.php:583
|
250 |
-
#: includes/functions.php:592
|
251 |
-
msgid "Error interacting with database"
|
252 |
-
msgstr "Error interactuando con la base de datos"
|
253 |
-
|
254 |
-
#: includes/functions.php:629 includes/functions.php:668
|
255 |
-
msgid "Membership level not found."
|
256 |
-
msgstr "Nivel de membresía no encontrado."
|
257 |
-
|
258 |
-
#: includes/functions.php:1050
|
259 |
-
msgid "The discount code could not be found."
|
260 |
-
msgstr "El cupón de descuento no se ha podido encontrar."
|
261 |
-
|
262 |
-
#: includes/functions.php:1066
|
263 |
-
#, php-format
|
264 |
-
msgid "This discount code goes into effect on %s."
|
265 |
-
msgstr "El cupón de descuento entra en efecto en %s."
|
266 |
-
|
267 |
-
#: includes/functions.php:1075
|
268 |
-
#, php-format
|
269 |
-
msgid "This discount code expired on %s."
|
270 |
-
msgstr "El cupón de descuento expiró en %s."
|
271 |
-
|
272 |
-
#: includes/functions.php:1087
|
273 |
-
msgid "This discount code is no longer valid."
|
274 |
-
msgstr "Éste cupón de descuento ya no es válido."
|
275 |
-
|
276 |
-
#: includes/functions.php:1102
|
277 |
-
msgid "This discount code does not apply to this membership level."
|
278 |
-
msgstr "Este cupón de descuento no se puede aplicar a este nivel de membresía."
|
279 |
-
|
280 |
-
#: includes/functions.php:1110
|
281 |
-
msgid "This discount code is okay."
|
282 |
-
msgstr "El cupón de descuento es válido."
|
283 |
-
|
284 |
-
#: includes/functions.php:1134
|
285 |
-
msgid "and"
|
286 |
-
msgstr "y"
|
287 |
-
|
288 |
-
#: includes/functions.php:1319
|
289 |
-
msgid "Sign Up for !!name!! Now"
|
290 |
-
msgstr "Date de alta en !!name!! ya"
|
291 |
-
|
292 |
-
#: includes/functions.php:1325
|
293 |
-
msgid "Please specify a level id."
|
294 |
-
msgstr "Por favor especifica un id de nivel."
|
295 |
-
|
296 |
-
#: includes/localization.php:23
|
297 |
-
msgid "Day"
|
298 |
-
msgstr "Día"
|
299 |
-
|
300 |
-
#: includes/localization.php:25
|
301 |
-
msgid "Week"
|
302 |
-
msgstr "Semana"
|
303 |
-
|
304 |
-
#: includes/localization.php:27
|
305 |
-
msgid "Month"
|
306 |
-
msgstr "Mes"
|
307 |
-
|
308 |
-
#: includes/localization.php:29
|
309 |
-
msgid "Year"
|
310 |
-
msgstr "Año"
|
311 |
-
|
312 |
-
#: includes/metaboxes.php:38
|
313 |
-
msgid ""
|
314 |
-
"This post is already protected for this level because it is within a "
|
315 |
-
"category that requires membership."
|
316 |
-
msgstr ""
|
317 |
-
"Esta entrada ya esta protegida para este nivel por que pertenece a una "
|
318 |
-
"categoría que requiere membresía."
|
319 |
-
|
320 |
-
#: includes/metaboxes.php:99 includes/metaboxes.php:100
|
321 |
-
msgid "Require Membership"
|
322 |
-
msgstr "Requerir membresía"
|
323 |
-
|
324 |
-
#: includes/profile.php:25 adminpages/orders.php:601 pages/checkout.php:34
|
325 |
-
#: pages/confirmation.php:46 pages/confirmation.php:62
|
326 |
-
#: pages/confirmation.php:103 pages/invoice.php:27 pages/invoice.php:49
|
327 |
-
msgid "Membership Level"
|
328 |
-
msgstr "Nivel de membresía"
|
329 |
-
|
330 |
-
#: includes/profile.php:34
|
331 |
-
msgid "Current Level"
|
332 |
-
msgstr "Nivel actual"
|
333 |
-
|
334 |
-
#: includes/profile.php:37
|
335 |
-
msgid "None"
|
336 |
-
msgstr "Ninguno"
|
337 |
-
|
338 |
-
#: includes/profile.php:82
|
339 |
-
msgid "User is not paying."
|
340 |
-
msgstr "El usuario no paga."
|
341 |
-
|
342 |
-
#: includes/profile.php:118 adminpages/discountcodes.php:550
|
343 |
-
#: adminpages/memberslist.php:121 adminpages/reports/login.php:145
|
344 |
-
msgid "Expires"
|
345 |
-
msgstr "Expira"
|
346 |
-
|
347 |
-
#: includes/profile.php:121 adminpages/advancedsettings.php:128
|
348 |
-
#: adminpages/advancedsettings.php:187 adminpages/advancedsettings.php:199
|
349 |
-
#: adminpages/membershiplevels.php:563 adminpages/paymentsettings.php:414
|
350 |
-
msgid "No"
|
351 |
-
msgstr "No"
|
352 |
-
|
353 |
-
#: includes/profile.php:122 adminpages/advancedsettings.php:188
|
354 |
-
#: adminpages/membershiplevels.php:563 adminpages/paymentsettings.php:415
|
355 |
-
#: adminpages/paymentsettings.php:424
|
356 |
-
msgid "Yes"
|
357 |
-
msgstr "Si"
|
358 |
-
|
359 |
-
#: adminpages/addons.php:5 adminpages/advancedsettings.php:5
|
360 |
-
#: adminpages/discountcodes.php:5 adminpages/emailsettings.php:5
|
361 |
-
#: adminpages/membershiplevels.php:5 adminpages/memberslist-csv.php:5
|
362 |
-
#: adminpages/memberslist.php:5 adminpages/orders-csv.php:5
|
363 |
-
#: adminpages/orders.php:5 adminpages/pagesettings.php:5
|
364 |
-
#: adminpages/paymentsettings.php:5
|
365 |
-
msgid "You do not have permissions to perform this action."
|
366 |
-
msgstr "No tienes permisos para realizar esta acción."
|
367 |
-
|
368 |
-
#: adminpages/addons.php:79
|
369 |
-
msgid "Enabled"
|
370 |
-
msgstr "Activado"
|
371 |
-
|
372 |
-
#: adminpages/addons.php:79
|
373 |
-
msgid "Disabled"
|
374 |
-
msgstr "Desactivado"
|
375 |
-
|
376 |
-
#: adminpages/admin_header.php:25
|
377 |
-
msgid "Add a membership level to get started."
|
378 |
-
msgstr "Añade un nivel de membresía para comenzar."
|
379 |
-
|
380 |
-
#: adminpages/admin_header.php:27
|
381 |
-
msgid "Setup the membership pages"
|
382 |
-
msgstr "Configura las paginas de membresía"
|
383 |
-
|
384 |
-
#: adminpages/admin_header.php:29
|
385 |
-
msgid "Setup your SSL certificate and payment gateway"
|
386 |
-
msgstr "Configura tu certificado SSL y tu pasarela de pagos"
|
387 |
-
|
388 |
-
#: adminpages/admin_header.php:38
|
389 |
-
msgid ""
|
390 |
-
"The billing details for some of your membership levels is not supported by "
|
391 |
-
"Stripe."
|
392 |
-
msgstr ""
|
393 |
-
"Los detalles de facturación para alguna de tus niveles de membresía no esta "
|
394 |
-
"soportado por Stripe."
|
395 |
-
|
396 |
-
#: adminpages/admin_header.php:46
|
397 |
-
msgid ""
|
398 |
-
"The billing details for this level are not supported by Stripe. Please "
|
399 |
-
"review the notes in the Billing Details section below."
|
400 |
-
msgstr ""
|
401 |
-
"Los detalles de facturación para este nivel no estan soportados por Stripe. "
|
402 |
-
"Por favor revisa las notas en la sección Detalles de Facturación aqui debajo."
|
403 |
-
|
404 |
-
#: adminpages/admin_header.php:50 adminpages/admin_header.php:70
|
405 |
-
#: adminpages/admin_header.php:90
|
406 |
-
msgid "The levels with issues are highlighted below."
|
407 |
-
msgstr "Los niveles con problemas estan restaltados abajo."
|
408 |
-
|
409 |
-
#: adminpages/admin_header.php:52 adminpages/admin_header.php:72
|
410 |
-
#: adminpages/admin_header.php:92
|
411 |
-
msgid "Please edit your levels"
|
412 |
-
msgstr "Por favor edita tus niveles"
|
413 |
-
|
414 |
-
#: adminpages/admin_header.php:58
|
415 |
-
msgid ""
|
416 |
-
"The billing details for some of your membership levels is not supported by "
|
417 |
-
"Payflow."
|
418 |
-
msgstr ""
|
419 |
-
"Los detalles de facturación de tus niveles de membresa no estan soportados "
|
420 |
-
"por Payflow."
|
421 |
-
|
422 |
-
#: adminpages/admin_header.php:66
|
423 |
-
msgid ""
|
424 |
-
"The billing details for this level are not supported by Payflow. Please "
|
425 |
-
"review the notes in the Billing Details section below."
|
426 |
-
msgstr ""
|
427 |
-
"Los detalles de facturación para este nivel no estan soportados por Payflow. "
|
428 |
-
"Por favor revisa las notas en la sección de detalles de facturación abajo."
|
429 |
-
|
430 |
-
#: adminpages/admin_header.php:78
|
431 |
-
msgid ""
|
432 |
-
"The billing details for some of your membership levels is not supported by "
|
433 |
-
"Braintree."
|
434 |
-
msgstr ""
|
435 |
-
"Los detalles de facturación para alguno de tus niveles de membresía no estan "
|
436 |
-
"soportados por Braintree."
|
437 |
-
|
438 |
-
#: adminpages/admin_header.php:86
|
439 |
-
msgid ""
|
440 |
-
"The billing details for this level are not supported by Braintree. Please "
|
441 |
-
"review the notes in the Billing Details section below."
|
442 |
-
msgstr ""
|
443 |
-
"Los detalles de facturación para este nivel no estan soportados por "
|
444 |
-
"Braintree. Por favor revisa las notas en la sección de detalles de "
|
445 |
-
"facturación abajo."
|
446 |
-
|
447 |
-
#: adminpages/admin_header.php:106
|
448 |
-
msgid "Plugin Support"
|
449 |
-
msgstr "Soporte del Plugin"
|
450 |
-
|
451 |
-
#: adminpages/admin_header.php:106
|
452 |
-
msgid "User Forum"
|
453 |
-
msgstr "Foro de usuarios"
|
454 |
-
|
455 |
-
#: adminpages/admin_header.php:129 adminpages/pagesettings.php:92
|
456 |
-
msgid "Pages"
|
457 |
-
msgstr "Páginas"
|
458 |
-
|
459 |
-
#: adminpages/admin_header.php:130
|
460 |
-
msgid "Payment Gateway & SSL"
|
461 |
-
msgstr "Pasarela de pagos & SSL"
|
462 |
-
|
463 |
-
#: adminpages/admin_header.php:131 adminpages/memberslist.php:115
|
464 |
-
#: pages/account.php:52
|
465 |
-
msgid "Email"
|
466 |
-
msgstr "Email"
|
467 |
-
|
468 |
-
#: adminpages/admin_header.php:132
|
469 |
-
msgid "Advanced"
|
470 |
-
msgstr "Avanzado"
|
471 |
-
|
472 |
-
#: adminpages/advancedsettings.php:35
|
473 |
-
msgid "Your advanced settings have been updated."
|
474 |
-
msgstr "Tus opciones avanzadas han sido actualizadas."
|
475 |
-
|
476 |
-
#: adminpages/advancedsettings.php:85
|
477 |
-
msgid "Message for Logged-in Non-members"
|
478 |
-
msgstr "Mensaje para no-miembros logeados"
|
479 |
-
|
480 |
-
#: adminpages/advancedsettings.php:89
|
481 |
-
msgid ""
|
482 |
-
"This message replaces the post content for non-members. Available variables"
|
483 |
-
msgstr ""
|
484 |
-
"Este mensaje reemplaza el contenido de la entrada para no-miembros. "
|
485 |
-
"Variables disponibles"
|
486 |
-
|
487 |
-
#: adminpages/advancedsettings.php:94
|
488 |
-
msgid "Message for Logged-out Users"
|
489 |
-
msgstr "Mensaje para usuarios desconectados (deslogeados)"
|
490 |
-
|
491 |
-
#: adminpages/advancedsettings.php:98
|
492 |
-
msgid "This message replaces the post content for logged-out visitors."
|
493 |
-
msgstr ""
|
494 |
-
"Este mensaje reemplaza el contenido de la entrada para visitantes no logeados"
|
495 |
-
|
496 |
-
#: adminpages/advancedsettings.php:103
|
497 |
-
msgid "Message for RSS Feed"
|
498 |
-
msgstr "Mensaje para Feed RSS"
|
499 |
-
|
500 |
-
#: adminpages/advancedsettings.php:107
|
501 |
-
msgid "This message replaces the post content in RSS feeds."
|
502 |
-
msgstr "Este mensaje reemplaza el contenido de la entrada en los feeds RSS"
|
503 |
-
|
504 |
-
#: adminpages/advancedsettings.php:113
|
505 |
-
msgid "Show Excerpts to Non-Members?"
|
506 |
-
msgstr "Mostrar Extracto a no miembros?"
|
507 |
-
|
508 |
-
#: adminpages/advancedsettings.php:117
|
509 |
-
msgid "No - Hide excerpts."
|
510 |
-
msgstr "No - Esconder Extracto."
|
511 |
-
|
512 |
-
#: adminpages/advancedsettings.php:118
|
513 |
-
msgid "Yes - Show excerpts."
|
514 |
-
msgstr "Si - Mostrar Extracto."
|
515 |
-
|
516 |
-
#: adminpages/advancedsettings.php:129
|
517 |
-
msgid "Hide Ads From All Members"
|
518 |
-
msgstr "Esconder anuncios para todos los miembros"
|
519 |
-
|
520 |
-
#: adminpages/advancedsettings.php:130
|
521 |
-
msgid "Hide Ads From Certain Members"
|
522 |
-
msgstr "Esconder anuncios para ciertos miembros"
|
523 |
-
|
524 |
-
#: adminpages/advancedsettings.php:137
|
525 |
-
msgid "Ads from the following plugins will be automatically turned off"
|
526 |
-
msgstr "Anuncios de los siguientes plugins serán automaticamente desactivados"
|
527 |
-
|
528 |
-
#: adminpages/advancedsettings.php:138
|
529 |
-
msgid "To hide ads in your template code, use code like the following"
|
530 |
-
msgstr ""
|
531 |
-
"Para esconder anuncios en el código de tus plantillas, usa codigo como el "
|
532 |
-
"siguiente"
|
533 |
-
|
534 |
-
#: adminpages/advancedsettings.php:149
|
535 |
-
msgid "Choose Levels to Hide Ads From"
|
536 |
-
msgstr "Elige niveles para los cuales esconder anuncios"
|
537 |
-
|
538 |
-
#: adminpages/advancedsettings.php:183
|
539 |
-
msgid "Redirect all traffic from registration page to /susbcription/?"
|
540 |
-
msgstr "Redirigir todo el tráfico de la página de registro a /subscription/?"
|
541 |
-
|
542 |
-
#: adminpages/advancedsettings.php:183
|
543 |
-
msgid "multisite only"
|
544 |
-
msgstr "Solo multisitio"
|
545 |
-
|
546 |
-
#: adminpages/advancedsettings.php:195
|
547 |
-
msgid "Use reCAPTCHA?"
|
548 |
-
msgstr "Usar reCAPTCHA?"
|
549 |
-
|
550 |
-
#: adminpages/advancedsettings.php:200
|
551 |
-
msgid "Yes - Free memberships only."
|
552 |
-
msgstr "Si - Solo membresías gratuitas."
|
553 |
-
|
554 |
-
#: adminpages/advancedsettings.php:201
|
555 |
-
msgid "Yes - All memberships."
|
556 |
-
msgstr "Si - Todas las membresías."
|
557 |
-
|
558 |
-
#: adminpages/advancedsettings.php:203
|
559 |
-
msgid "A free reCAPTCHA key is required."
|
560 |
-
msgstr "Una clave gratuita de reCAPTCHA es necesaria."
|
561 |
-
|
562 |
-
#: adminpages/advancedsettings.php:203
|
563 |
-
msgid "Click here to signup for reCAPTCHA"
|
564 |
-
msgstr "Haz click aquí para registrarte en reCAPTCHA"
|
565 |
-
|
566 |
-
#: adminpages/advancedsettings.php:209
|
567 |
-
msgid "reCAPTCHA Public Key"
|
568 |
-
msgstr "Clave pública reCAPTCHA"
|
569 |
-
|
570 |
-
#: adminpages/advancedsettings.php:212
|
571 |
-
msgid "reCAPTCHA Private Key"
|
572 |
-
msgstr "Clave privada reCAPTCHA"
|
573 |
-
|
574 |
-
#: adminpages/advancedsettings.php:218
|
575 |
-
msgid "Require Terms of Service on signups?"
|
576 |
-
msgstr "Requerir términos de servicio durante el registro?"
|
577 |
-
|
578 |
-
#: adminpages/advanc
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|