Version Description
- Fixed HUGE issue with the DB setup on fresh 1.7+ installs. If you installed version 1.7 or 1.7.0.1 fresh (not upgraded from earlier version) then PMPro will not work until you upgrade to version 1.7.0.2.
- Removed from old PHP short tag use
- Fixed generation of members only and non-logged in text on new installs.
Download this release
Release Info
Developer | strangerstudios |
Plugin | Paid Memberships Pro |
Version | 1.7.0.2 |
Comparing to | |
See all releases |
Code changes from version 1.7.14 to 1.7.0.2
- adminpages/addons.php +1 -1
- adminpages/addons/images/pmpro-aweber.gif +0 -0
- 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 +0 -31
- 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-international-addresses.php +0 -31
- adminpages/addons/pmpro-mailchimp.php +4 -4
- adminpages/addons/pmpro-network-subsite.php +0 -31
- adminpages/addons/pmpro-network.php +1 -1
- 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 +0 -31
- adminpages/addons/pmpro-stripe-lite.php +30 -0
- adminpages/addons/pmpro-user-pages.php +2 -2
- 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 +4 -4
- 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 +580 -588
- adminpages/memberslist-csv.php +36 -105
- adminpages/memberslist.php +30 -58
- adminpages/orders-csv.php +23 -135
- adminpages/orders.php +13 -318
- adminpages/pagesettings.php +9 -51
- adminpages/paymentsettings.php +491 -538
- adminpages/reports.php +41 -54
- adminpages/reports/login.php +50 -50
- adminpages/reports/memberships.php +0 -651
- adminpages/reports/sales.php +0 -397
- classes/class.memberorder.php +46 -106
- classes/class.pmproemail.php +24 -141
- 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 -69
- classes/gateways/class.pmprogateway_paypalstandard.php +17 -36
- 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 +5 -6
- css/frontend-rtl.css +0 -111
- css/frontend.css +118 -173
- email/admin_change.html +1 -1
- 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 +0 -13
- email/invoice.html +6 -2
- includes/adminpages.php +66 -147
- includes/cleanup.php +12 -1
- includes/content.php +39 -74
- includes/currencies.php +2 -9
- includes/email.php +31 -58
- includes/filters.php +3 -41
- includes/functions.php +1605 -1742
- includes/https.php +19 -54
- includes/init.php +29 -94
- 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 +8 -32
- includes/metaboxes.php +2 -2
- includes/notifications.php +3 -9
- includes/profile.php +6 -9
- includes/recaptcha.php +10 -18
- includes/services.php +1 -8
- includes/setup.sql +6 -11
- includes/upgradecheck.php +39 -80
- 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 -901
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-aweber.gif
DELETED
Binary file
|
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
DELETED
@@ -1,31 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
Addon: PMPro AWeber Integration
|
4 |
-
Slug: pmpro-aweber
|
5 |
-
*/
|
6 |
-
pmpro_add_addon('thirdparty', array(
|
7 |
-
'title' => 'PMPro AWeber Integration',
|
8 |
-
'version' => '1.0',
|
9 |
-
'widget' => 'pmpro_addon_pmpro_aweber_widget',
|
10 |
-
'enabled' => function_exists('pmproaw_init')
|
11 |
-
)
|
12 |
-
);
|
13 |
-
|
14 |
-
function pmpro_addon_pmpro_aweber_widget($addon)
|
15 |
-
{
|
16 |
-
?>
|
17 |
-
<img class="addon-thumb" src="<?php echo PMPRO_URL?>/adminpages/addons/images/pmpro-aweber.gif" />
|
18 |
-
<div class="info">
|
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="<?php echo admin_url("plugins.php");?>" 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 { ?>
|
26 |
-
<a href="<?php echo wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=pmpro-aweber'), 'install-plugin_pmpro-aweber'); ?>" class="button button-primary">Download</a>
|
27 |
-
<?php } ?>
|
28 |
-
</div>
|
29 |
-
</div> <!-- end info -->
|
30 |
-
<?php
|
31 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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-international-addresses.php
DELETED
@@ -1,31 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
Addon: PMPro International Addresses
|
4 |
-
Slug: pmpro-international-addresses
|
5 |
-
*/
|
6 |
-
pmpro_add_addon('github', array(
|
7 |
-
'title' => 'PMPro International Addresses',
|
8 |
-
'version' => '.2.2',
|
9 |
-
'widget' => 'pmpro_addon_pmpro_international_addresses_widget',
|
10 |
-
'enabled' => function_exists('pmproia_pmpro_international_addresses')
|
11 |
-
)
|
12 |
-
);
|
13 |
-
|
14 |
-
function pmpro_addon_pmpro_international_addresses_widget($addon)
|
15 |
-
{
|
16 |
-
?>
|
17 |
-
<?php /* <img class="addon-thumb" src="<?php echo PMPRO_URL?>/adminpages/addons/images/pmpro-international-addresses.jpg" /> */ ?>
|
18 |
-
<div class="info">
|
19 |
-
<p>Adds long form addresses to the PMPro checkout.</p>
|
20 |
-
<div class="actions">
|
21 |
-
<?php if($addon['enabled']) { ?>
|
22 |
-
<a href="https://github.com/strangerstudios/pmpro-international-addresses/" class="button">Enabled</a>
|
23 |
-
<?php } elseif(file_exists(dirname(__FILE__) . "/../../../pmpro-international-addresses/pmpro-international-addresses.php")) { ?>
|
24 |
-
<a href="<?php echo wp_nonce_url(self_admin_url('plugins.php?action=activate&plugin=pmpro-international-addresses/pmpro-international-addresses.php'), 'activate-plugin_pmpro-international-addresses/pmpro-international-addresses.php')?>" class="button button-primary">Activate</a>
|
25 |
-
<?php } else { ?>
|
26 |
-
<a href="http://www.paidmembershipspro.com/wp-content/uploads/plugins/pmpro-international-addresses.zip" class="button button-primary">Download</a>
|
27 |
-
<?php } ?>
|
28 |
-
</div>
|
29 |
-
</div> <!-- end info -->
|
30 |
-
<?php
|
31 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
adminpages/addons/pmpro-mailchimp.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
*/
|
6 |
pmpro_add_addon('thirdparty', array(
|
7 |
'title' => 'PMPro MailChimp Integration',
|
8 |
-
'version' => '1
|
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="
|
27 |
-
<?php } ?>
|
28 |
</div>
|
29 |
</div> <!-- end info -->
|
30 |
<?php
|
5 |
*/
|
6 |
pmpro_add_addon('thirdparty', array(
|
7 |
'title' => 'PMPro MailChimp Integration',
|
8 |
+
'version' => '.2.1',
|
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="http://www.paidmembershipspro.com/wp-content/uploads/plugins/pmpro-mailchimp.zip" 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-network.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
*/
|
6 |
pmpro_add_addon('github', array(
|
7 |
'title' => 'PMPro Network',
|
8 |
-
'version' => '.
|
9 |
'widget' => 'pmpro_addon_pmpro_network_widget',
|
10 |
'enabled' => function_exists('pmpron_new_blogs_settings')
|
11 |
)
|
5 |
*/
|
6 |
pmpro_add_addon('github', array(
|
7 |
'title' => 'PMPro Network',
|
8 |
+
'version' => '.2',
|
9 |
'widget' => 'pmpro_addon_pmpro_network_widget',
|
10 |
'enabled' => function_exists('pmpron_new_blogs_settings')
|
11 |
)
|
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',
|
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
DELETED
@@ -1,31 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
Addon: PMPro Shipping Add On
|
4 |
-
Slug: pmpro-shipping
|
5 |
-
*/
|
6 |
-
pmpro_add_addon('github', array(
|
7 |
-
'title' => 'PMPro Shipping Add On',
|
8 |
-
'version' => '.2.6',
|
9 |
-
'widget' => 'pmpro_addon_pmpro_shipping_widget',
|
10 |
-
'enabled' => function_exists('pmproship_pmpro_checkout_boxes')
|
11 |
-
)
|
12 |
-
);
|
13 |
-
|
14 |
-
function pmpro_addon_pmpro_shipping_widget($addon)
|
15 |
-
{
|
16 |
-
?>
|
17 |
-
<?php /* <img class="addon-thumb" src="<?php echo PMPRO_URL?>/adminpages/addons/images/pmpro-shipping.jpg" /> */ ?>
|
18 |
-
<div class="info">
|
19 |
-
<p>Adds shipping fields to the checkout page, confirmation page, confirmation emails, member's list and edit user profile pages.</p>
|
20 |
-
<div class="actions">
|
21 |
-
<?php if($addon['enabled']) { ?>
|
22 |
-
<a href="https://github.com/strangerstudios/pmpro-shipping/" class="button">Enabled</a>
|
23 |
-
<?php } elseif(file_exists(dirname(__FILE__) . "/../../../pmpro-shipping/pmpro-shipping.php")) { ?>
|
24 |
-
<a href="<?php echo wp_nonce_url(self_admin_url('plugins.php?action=activate&plugin=pmpro-shipping/pmpro-shipping.php'), 'activate-plugin_pmpro-shipping/pmpro-shipping.php')?>" class="button button-primary">Activate</a>
|
25 |
-
<?php } else { ?>
|
26 |
-
<a href="http://www.paidmembershipspro.com/wp-content/uploads/plugins/pmpro-shipping.zip" class="button button-primary">Download</a>
|
27 |
-
<?php } ?>
|
28 |
-
</div>
|
29 |
-
</div> <!-- end info -->
|
30 |
-
<?php
|
31 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
@@ -5,7 +5,7 @@
|
|
5 |
*/
|
6 |
pmpro_add_addon('github', array(
|
7 |
'title' => 'PMPro User Pages',
|
8 |
-
'version' => '.
|
9 |
'widget' => 'pmpro_addon_pmpro_user_pages_widget',
|
10 |
'enabled' => function_exists('pmproup_pmpro_after_checkout')
|
11 |
)
|
@@ -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']) { ?>
|
5 |
*/
|
6 |
pmpro_add_addon('github', array(
|
7 |
'title' => 'PMPro User Pages',
|
8 |
+
'version' => '.2',
|
9 |
'widget' => 'pmpro_addon_pmpro_user_pages_widget',
|
10 |
'enabled' => function_exists('pmproup_pmpro_after_checkout')
|
11 |
)
|
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
@@ -3,9 +3,9 @@
|
|
3 |
Addon: WP Bouncer
|
4 |
Slug: wp-bouncer
|
5 |
*/
|
6 |
-
pmpro_add_addon('
|
7 |
'title' => 'WP Bouncer',
|
8 |
-
'version' => '1.1',
|
9 |
'widget' => 'pmpro_addon_wp_bouncer_widget',
|
10 |
'enabled' => class_exists('WP_Bouncer')
|
11 |
)
|
@@ -19,11 +19,11 @@ 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 { ?>
|
26 |
-
<a href="
|
27 |
<?php } ?>
|
28 |
</div>
|
29 |
</div> <!-- end info -->
|
3 |
Addon: WP Bouncer
|
4 |
Slug: wp-bouncer
|
5 |
*/
|
6 |
+
pmpro_add_addon('github', 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 { ?>
|
26 |
+
<a href="http://www.paidmembershipspro.com/wp-content/uploads/plugins/wp-bouncer.zip" class="button button-primary">Download</a>
|
27 |
<?php } ?>
|
28 |
</div>
|
29 |
</div> <!-- end info -->
|
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
@@ -1,588 +1,580 @@
|
|
1 |
-
<?php
|
2 |
-
//only admins can get this
|
3 |
-
if(!function_exists("current_user_can") || (!current_user_can("manage_options") && !current_user_can("pmpro_membershiplevels")))
|
4 |
-
{
|
5 |
-
die(__("You do not have permissions to perform this action.", "pmpro"));
|
6 |
-
}
|
7 |
-
|
8 |
-
global $wpdb, $msg, $msgt, $pmpro_currency_symbol;
|
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'];
|
16 |
-
else
|
17 |
-
$edit = false;
|
18 |
-
if(isset($_REQUEST['copy']))
|
19 |
-
$copy = $_REQUEST['copy'];
|
20 |
-
if(isset($_REQUEST['s']))
|
21 |
-
$s = $_REQUEST['s'];
|
22 |
-
else
|
23 |
-
$s = "";
|
24 |
-
|
25 |
-
if(isset($_REQUEST['action']))
|
26 |
-
$action = $_REQUEST['action'];
|
27 |
-
else
|
28 |
-
$action = false;
|
29 |
-
|
30 |
-
if(isset($_REQUEST['saveandnext']))
|
31 |
-
$saveandnext = $_REQUEST['saveandnext'];
|
32 |
-
|
33 |
-
if(isset($_REQUEST['saveid']))
|
34 |
-
$saveid = $_REQUEST['saveid'];
|
35 |
-
if(isset($_REQUEST['deleteid']))
|
36 |
-
$deleteid = $_REQUEST['deleteid'];
|
37 |
-
|
38 |
-
if($action == "save_membershiplevel")
|
39 |
-
{
|
40 |
-
$ml_name = addslashes($_REQUEST['name']);
|
41 |
-
$ml_description = $_REQUEST['description'];
|
42 |
-
$ml_confirmation = $_REQUEST['confirmation'];
|
43 |
-
$ml_initial_payment = addslashes($_REQUEST['initial_payment']);
|
44 |
-
if(!empty($_REQUEST['recurring']))
|
45 |
-
$ml_recurring = 1;
|
46 |
-
else
|
47 |
-
$ml_recurring = 0;
|
48 |
-
$ml_billing_amount = addslashes($_REQUEST['billing_amount']);
|
49 |
-
$ml_cycle_number = addslashes($_REQUEST['cycle_number']);
|
50 |
-
$ml_cycle_period = addslashes($_REQUEST['cycle_period']);
|
51 |
-
$ml_billing_limit = addslashes($_REQUEST['billing_limit']);
|
52 |
-
if(!empty($_REQUEST['custom_trial']))
|
53 |
-
$ml_custom_trial = 1;
|
54 |
-
else
|
55 |
-
$ml_custom_trial = 0;
|
56 |
-
$ml_trial_amount = addslashes($_REQUEST['trial_amount']);
|
57 |
-
$ml_trial_limit = addslashes($_REQUEST['trial_limit']);
|
58 |
-
if(!empty($_REQUEST['expiration']))
|
59 |
-
$ml_expiration = 1;
|
60 |
-
else
|
61 |
-
$ml_expiration = 0;
|
62 |
-
$ml_expiration_number = addslashes($_REQUEST['expiration_number']);
|
63 |
-
$ml_expiration_period = addslashes($_REQUEST['expiration_period']);
|
64 |
-
$ml_categories = array();
|
65 |
-
|
66 |
-
//reversing disable to allow here
|
67 |
-
if(empty($_REQUEST['disable_signups']))
|
68 |
-
$ml_allow_signups = 1;
|
69 |
-
else
|
70 |
-
$ml_allow_signups = 0;
|
71 |
-
|
72 |
-
foreach ( $_REQUEST as $key => $value )
|
73 |
-
{
|
74 |
-
if ( $value == 'yes' && preg_match( '/^membershipcategory_(\d+)$/i', $key, $matches ) )
|
75 |
-
{
|
76 |
-
$ml_categories[] = $matches[1];
|
77 |
-
}
|
78 |
-
}
|
79 |
-
|
80 |
-
//clearing out values if checkboxes aren't checked
|
81 |
-
if(empty($ml_recurring))
|
82 |
-
{
|
83 |
-
$ml_billing_amount = $ml_cycle_number = $ml_cycle_period = $ml_billing_limit = $ml_trial_amount = $ml_trial_limit = 0;
|
84 |
-
}
|
85 |
-
elseif(empty($ml_custom_trial))
|
86 |
-
{
|
87 |
-
$ml_trial_amount = $ml_trial_limit = 0;
|
88 |
-
}
|
89 |
-
if(empty($ml_expiration))
|
90 |
-
{
|
91 |
-
$ml_expiration_number = $ml_expiration_period = 0;
|
92 |
-
}
|
93 |
-
|
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 |
-
|
113 |
-
pmpro_updateMembershipCategories( $saveid, $ml_categories );
|
114 |
-
if(!mysql_errno())
|
115 |
-
{
|
116 |
-
$edit = false;
|
117 |
-
$msg = 2;
|
118 |
-
$msgt = __("Membership level updated successfully.", "pmpro");
|
119 |
-
}
|
120 |
-
else
|
121 |
-
{
|
122 |
-
$msg = -2;
|
123 |
-
$msg = true;
|
124 |
-
$msgt = __("Error updating membership level.", "pmpro");
|
125 |
-
}
|
126 |
-
}
|
127 |
-
else
|
128 |
-
{
|
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 |
-
{
|
136 |
-
$saveid = $wpdb->insert_id;
|
137 |
-
pmpro_updateMembershipCategories( $saveid, $ml_categories );
|
138 |
-
|
139 |
-
$edit = false;
|
140 |
-
$msg = 1;
|
141 |
-
$msgt = __("Membership level added successfully.", "pmpro");
|
142 |
-
}
|
143 |
-
else
|
144 |
-
{
|
145 |
-
$msg = -1;
|
146 |
-
$msgt = __("Error adding membership level.", "pmpro");
|
147 |
-
}
|
148 |
-
}
|
149 |
-
|
150 |
-
do_action("pmpro_save_membership_level", $saveid);
|
151 |
-
}
|
152 |
-
elseif($action == "delete_membership_level")
|
153 |
-
{
|
154 |
-
global $wpdb;
|
155 |
-
|
156 |
-
$ml_id = $_REQUEST['deleteid'];
|
157 |
-
|
158 |
-
if($ml_id > 0)
|
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 |
-
echo __("
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
$level
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
$level =
|
250 |
-
$level->
|
251 |
-
$level->
|
252 |
-
$level->
|
253 |
-
$level->
|
254 |
-
$level->
|
255 |
-
$level->
|
256 |
-
$level->
|
257 |
-
$level->
|
258 |
-
$level->
|
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 |
-
|
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 |
-
echo "
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
<?php
|
366 |
-
<br /><strong <?php if(!empty($
|
367 |
-
<?php } elseif($gateway == "
|
368 |
-
<br /><strong <?php if(!empty($
|
369 |
-
<?php }
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
<?php
|
374 |
-
<p class="pmpro_message"><strong><?php _e('Note', 'pmpro');?>:</strong> <?php _e('
|
375 |
-
<?php }
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
<?php
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
<?php
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
<?php
|
413 |
-
<br /><small>
|
414 |
-
<strong <?php if(!empty($
|
415 |
-
</small>
|
416 |
-
<?php }
|
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 |
-
<th
|
514 |
-
<th
|
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 |
-
<td
|
540 |
-
|
541 |
-
|
542 |
-
|
543 |
-
|
544 |
-
|
545 |
-
|
546 |
-
|
547 |
-
|
548 |
-
|
549 |
-
|
550 |
-
<?php
|
551 |
-
|
552 |
-
|
553 |
-
<?php
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
-
|
560 |
-
|
561 |
-
|
562 |
-
|
563 |
-
|
564 |
-
<td>
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
<?php
|
582 |
-
}
|
583 |
-
?>
|
584 |
-
|
585 |
-
<?php
|
586 |
-
require_once(dirname(__FILE__) . "/admin_footer.php");
|
587 |
-
?>
|
588 |
-
|
1 |
+
<?php
|
2 |
+
//only admins can get this
|
3 |
+
if(!function_exists("current_user_can") || (!current_user_can("manage_options") && !current_user_can("pmpro_membershiplevels")))
|
4 |
+
{
|
5 |
+
die(__("You do not have permissions to perform this action.", "pmpro"));
|
6 |
+
}
|
7 |
+
|
8 |
+
global $wpdb, $msg, $msgt, $pmpro_currency_symbol;
|
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'];
|
16 |
+
else
|
17 |
+
$edit = false;
|
18 |
+
if(isset($_REQUEST['copy']))
|
19 |
+
$copy = $_REQUEST['copy'];
|
20 |
+
if(isset($_REQUEST['s']))
|
21 |
+
$s = $_REQUEST['s'];
|
22 |
+
else
|
23 |
+
$s = "";
|
24 |
+
|
25 |
+
if(isset($_REQUEST['action']))
|
26 |
+
$action = $_REQUEST['action'];
|
27 |
+
else
|
28 |
+
$action = false;
|
29 |
+
|
30 |
+
if(isset($_REQUEST['saveandnext']))
|
31 |
+
$saveandnext = $_REQUEST['saveandnext'];
|
32 |
+
|
33 |
+
if(isset($_REQUEST['saveid']))
|
34 |
+
$saveid = $_REQUEST['saveid'];
|
35 |
+
if(isset($_REQUEST['deleteid']))
|
36 |
+
$deleteid = $_REQUEST['deleteid'];
|
37 |
+
|
38 |
+
if($action == "save_membershiplevel")
|
39 |
+
{
|
40 |
+
$ml_name = addslashes($_REQUEST['name']);
|
41 |
+
$ml_description = $_REQUEST['description'];
|
42 |
+
$ml_confirmation = $_REQUEST['confirmation'];
|
43 |
+
$ml_initial_payment = addslashes($_REQUEST['initial_payment']);
|
44 |
+
if(!empty($_REQUEST['recurring']))
|
45 |
+
$ml_recurring = 1;
|
46 |
+
else
|
47 |
+
$ml_recurring = 0;
|
48 |
+
$ml_billing_amount = addslashes($_REQUEST['billing_amount']);
|
49 |
+
$ml_cycle_number = addslashes($_REQUEST['cycle_number']);
|
50 |
+
$ml_cycle_period = addslashes($_REQUEST['cycle_period']);
|
51 |
+
$ml_billing_limit = addslashes($_REQUEST['billing_limit']);
|
52 |
+
if(!empty($_REQUEST['custom_trial']))
|
53 |
+
$ml_custom_trial = 1;
|
54 |
+
else
|
55 |
+
$ml_custom_trial = 0;
|
56 |
+
$ml_trial_amount = addslashes($_REQUEST['trial_amount']);
|
57 |
+
$ml_trial_limit = addslashes($_REQUEST['trial_limit']);
|
58 |
+
if(!empty($_REQUEST['expiration']))
|
59 |
+
$ml_expiration = 1;
|
60 |
+
else
|
61 |
+
$ml_expiration = 0;
|
62 |
+
$ml_expiration_number = addslashes($_REQUEST['expiration_number']);
|
63 |
+
$ml_expiration_period = addslashes($_REQUEST['expiration_period']);
|
64 |
+
$ml_categories = array();
|
65 |
+
|
66 |
+
//reversing disable to allow here
|
67 |
+
if(empty($_REQUEST['disable_signups']))
|
68 |
+
$ml_allow_signups = 1;
|
69 |
+
else
|
70 |
+
$ml_allow_signups = 0;
|
71 |
+
|
72 |
+
foreach ( $_REQUEST as $key => $value )
|
73 |
+
{
|
74 |
+
if ( $value == 'yes' && preg_match( '/^membershipcategory_(\d+)$/i', $key, $matches ) )
|
75 |
+
{
|
76 |
+
$ml_categories[] = $matches[1];
|
77 |
+
}
|
78 |
+
}
|
79 |
+
|
80 |
+
//clearing out values if checkboxes aren't checked
|
81 |
+
if(empty($ml_recurring))
|
82 |
+
{
|
83 |
+
$ml_billing_amount = $ml_cycle_number = $ml_cycle_period = $ml_billing_limit = $ml_trial_amount = $ml_trial_limit = 0;
|
84 |
+
}
|
85 |
+
elseif(empty($ml_custom_trial))
|
86 |
+
{
|
87 |
+
$ml_trial_amount = $ml_trial_limit = 0;
|
88 |
+
}
|
89 |
+
if(empty($ml_expiration))
|
90 |
+
{
|
91 |
+
$ml_expiration_number = $ml_expiration_period = 0;
|
92 |
+
}
|
93 |
+
|
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 |
+
|
113 |
+
pmpro_updateMembershipCategories( $saveid, $ml_categories );
|
114 |
+
if(!mysql_errno())
|
115 |
+
{
|
116 |
+
$edit = false;
|
117 |
+
$msg = 2;
|
118 |
+
$msgt = __("Membership level updated successfully.", "pmpro");
|
119 |
+
}
|
120 |
+
else
|
121 |
+
{
|
122 |
+
$msg = -2;
|
123 |
+
$msg = true;
|
124 |
+
$msgt = __("Error updating membership level.", "pmpro");
|
125 |
+
}
|
126 |
+
}
|
127 |
+
else
|
128 |
+
{
|
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 |
+
{
|
136 |
+
$saveid = $wpdb->insert_id;
|
137 |
+
pmpro_updateMembershipCategories( $saveid, $ml_categories );
|
138 |
+
|
139 |
+
$edit = false;
|
140 |
+
$msg = 1;
|
141 |
+
$msgt = __("Membership level added successfully.", "pmpro");
|
142 |
+
}
|
143 |
+
else
|
144 |
+
{
|
145 |
+
$msg = -1;
|
146 |
+
$msgt = __("Error adding membership level.", "pmpro");
|
147 |
+
}
|
148 |
+
}
|
149 |
+
|
150 |
+
do_action("pmpro_save_membership_level", $saveid);
|
151 |
+
}
|
152 |
+
elseif($action == "delete_membership_level")
|
153 |
+
{
|
154 |
+
global $wpdb;
|
155 |
+
|
156 |
+
$ml_id = $_REQUEST['deleteid'];
|
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);
|
163 |
+
|
164 |
+
//cancel any subscriptions to the ml
|
165 |
+
$r2 = true;
|
166 |
+
$user_ids = $wpdb->get_col("SELECT user_id FROM $wpdb->pmpro_memberships_users WHERE membership_id = '$ml_id' AND status = 'active'");
|
167 |
+
foreach($user_ids as $user_id)
|
168 |
+
{
|
169 |
+
//change there membership level to none. that will handle the cancel
|
170 |
+
if(pmpro_changeMembershipLevel(0, $user_id))
|
171 |
+
{
|
172 |
+
//okay
|
173 |
+
}
|
174 |
+
else
|
175 |
+
{
|
176 |
+
//couldn't delete the subscription
|
177 |
+
//we should probably notify the admin
|
178 |
+
$pmproemail = new PMProEmail();
|
179 |
+
$pmproemail->data = array("body"=>"<p>" . sprintf(__("There was an error canceling the subscription for user with ID=%d. You will want to check your payment gateway to see if their subscription is still active.", "pmpro"), $user_id) . "</p>");
|
180 |
+
$last_order = $wpdb->get_row("SELECT * FROM $wpdb->pmpro_membership_orders WHERE user_id = '" . $user_id . "' ORDER BY timestamp DESC LIMIT 1");
|
181 |
+
if($last_order)
|
182 |
+
$pmproemail->data["body"] .= "<p>" . __("Last Invoice", "pmpro") . ":<br />" . nl2br(var_export($last_order, true)) . "</p>";
|
183 |
+
$pmproemail->sendEmail(get_bloginfo("admin_email"));
|
184 |
+
|
185 |
+
$r2 = false;
|
186 |
+
}
|
187 |
+
}
|
188 |
+
|
189 |
+
//delete the ml
|
190 |
+
$sqlQuery = "DELETE FROM $wpdb->pmpro_membership_levels WHERE id = '$ml_id' LIMIT 1";
|
191 |
+
$r3 = $wpdb->query($sqlQuery);
|
192 |
+
|
193 |
+
if($r1 !== FALSE && $r2 !== FALSE && $r3 !== FALSE)
|
194 |
+
{
|
195 |
+
$msg = 3;
|
196 |
+
$msgt = __("Membership level deleted successfully.", "pmpro");
|
197 |
+
}
|
198 |
+
else
|
199 |
+
{
|
200 |
+
$msg = -3;
|
201 |
+
$msgt = __("Error deleting membership level.", "pmpro");
|
202 |
+
}
|
203 |
+
}
|
204 |
+
else
|
205 |
+
{
|
206 |
+
$msg = -3;
|
207 |
+
$msgt = __("Error deleting membership level.", "pmpro");
|
208 |
+
}
|
209 |
+
}
|
210 |
+
|
211 |
+
require_once(dirname(__FILE__) . "/admin_header.php");
|
212 |
+
?>
|
213 |
+
|
214 |
+
<?php
|
215 |
+
if($edit)
|
216 |
+
{
|
217 |
+
?>
|
218 |
+
|
219 |
+
<h2>
|
220 |
+
<?php
|
221 |
+
if($edit > 0)
|
222 |
+
echo __("Edit Membership Level", "pmpro");
|
223 |
+
else
|
224 |
+
echo __("Add New Membership Level", "pmpro");
|
225 |
+
?>
|
226 |
+
</h2>
|
227 |
+
|
228 |
+
<div>
|
229 |
+
<?php
|
230 |
+
// get the level...
|
231 |
+
if(!empty($edit) && $edit > 0)
|
232 |
+
{
|
233 |
+
$level = $wpdb->get_row("SELECT * FROM $wpdb->pmpro_membership_levels WHERE id = '$edit' LIMIT 1", OBJECT);
|
234 |
+
$temp_id = $level->id;
|
235 |
+
}
|
236 |
+
elseif(!empty($copy) && $copy > 0)
|
237 |
+
{
|
238 |
+
$level = $wpdb->get_row("SELECT * FROM $wpdb->pmpro_membership_levels WHERE id = '$copy' LIMIT 1", OBJECT);
|
239 |
+
$temp_id = $level->id;
|
240 |
+
$level->id = NULL;
|
241 |
+
}
|
242 |
+
else
|
243 |
+
|
244 |
+
// didn't find a membership level, let's add a new one...
|
245 |
+
if(empty($level))
|
246 |
+
{
|
247 |
+
$level = new stdClass();
|
248 |
+
$level->id = NULL;
|
249 |
+
$level->name = NULL;
|
250 |
+
$level->description = NULL;
|
251 |
+
$level->confirmation = NULL;
|
252 |
+
$level->billing_amount = NULL;
|
253 |
+
$level->trial_amount = NULL;
|
254 |
+
$level->initial_payment = NULL;
|
255 |
+
$level->billing_limit = NULL;
|
256 |
+
$level->trial_limit = NULL;
|
257 |
+
$level->expiration_number = NULL;
|
258 |
+
$level->expiration_period = NULL;
|
259 |
+
$edit = -1;
|
260 |
+
}
|
261 |
+
|
262 |
+
//defaults for new levels
|
263 |
+
if(empty($copy) && $edit == -1)
|
264 |
+
{
|
265 |
+
$level->cycle_number = 1;
|
266 |
+
$level->cycle_period = "Month";
|
267 |
+
}
|
268 |
+
|
269 |
+
// grab the categories for the given level...
|
270 |
+
if(!empty($temp_id))
|
271 |
+
$level->categories = $wpdb->get_col("SELECT c.category_id
|
272 |
+
FROM $wpdb->pmpro_memberships_categories c
|
273 |
+
WHERE c.membership_id = '" . $temp_id . "'");
|
274 |
+
if(empty($level->categories))
|
275 |
+
$level->categories = array();
|
276 |
+
|
277 |
+
?>
|
278 |
+
<form action="" method="post" enctype="multipart/form-data">
|
279 |
+
<input name="saveid" type="hidden" value="<?php echo $edit?>" />
|
280 |
+
<input type="hidden" name="action" value="save_membershiplevel" />
|
281 |
+
<table class="form-table">
|
282 |
+
<tbody>
|
283 |
+
<tr>
|
284 |
+
<th scope="row" valign="top"><label><?php _e('ID', 'pmpro');?>:</label></th>
|
285 |
+
<td>
|
286 |
+
<?php echo $level->id?>
|
287 |
+
</td>
|
288 |
+
</tr>
|
289 |
+
|
290 |
+
<tr>
|
291 |
+
<th scope="row" valign="top"><label for="name"><?php _e('Name', 'pmpro');?>:</label></th>
|
292 |
+
<td><input name="name" type="text" size="50" value="<?php echo str_replace("\"", """, stripslashes($level->name))?>" /></td>
|
293 |
+
</tr>
|
294 |
+
|
295 |
+
<tr>
|
296 |
+
<th scope="row" valign="top"><label for="description"><?php _e('Description', 'pmpro');?>:</label></th>
|
297 |
+
<td>
|
298 |
+
<div id="poststuff" class="pmpro_description">
|
299 |
+
<?php
|
300 |
+
if(version_compare($wp_version, "3.3") >= 0)
|
301 |
+
wp_editor(stripslashes($level->description), "description", array("textarea_rows"=>5));
|
302 |
+
else
|
303 |
+
{
|
304 |
+
?>
|
305 |
+
<textarea rows="10" cols="80" name="description" id="description"><?php echo stripslashes($level->description)?></textarea>
|
306 |
+
<?php
|
307 |
+
}
|
308 |
+
?>
|
309 |
+
</div>
|
310 |
+
</td>
|
311 |
+
</tr>
|
312 |
+
|
313 |
+
<tr>
|
314 |
+
<th scope="row" valign="top"><label for="confirmation"><?php _e('Confirmation Message', 'pmpro');?>:</label></th>
|
315 |
+
<td>
|
316 |
+
<div class="pmpro_confirmation">
|
317 |
+
<?php
|
318 |
+
if(version_compare($wp_version, "3.3") >= 0)
|
319 |
+
wp_editor(stripslashes($level->confirmation), "confirmation", array("textarea_rows"=>5));
|
320 |
+
else
|
321 |
+
{
|
322 |
+
?>
|
323 |
+
<textarea rows="10" cols="80" name="confirmation" id="confirmation"><?php echo stripslashes($level->confirmation)?></textarea>
|
324 |
+
<?php
|
325 |
+
}
|
326 |
+
?>
|
327 |
+
</div>
|
328 |
+
</td>
|
329 |
+
</tr>
|
330 |
+
</tbody>
|
331 |
+
</table>
|
332 |
+
|
333 |
+
<h3 class="topborder"><?php _e('Billing Details', 'pmpro');?></h3>
|
334 |
+
<table class="form-table">
|
335 |
+
<tbody>
|
336 |
+
<tr>
|
337 |
+
<th scope="row" valign="top"><label for="initial_payment"><?php _e('Initial Payment', 'pmpro');?>:</label></th>
|
338 |
+
<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>
|
339 |
+
</tr>
|
340 |
+
|
341 |
+
<tr>
|
342 |
+
<th scope="row" valign="top"><label><?php _e('Recurring Subscription', 'pmpro');?>:</label></th>
|
343 |
+
<td><input id="recurring" name="recurring" type="checkbox" value="yes" <?php if(pmpro_isLevelRecurring($level)) { echo "checked='checked'"; } ?> onclick="if(jQuery('#recurring').is(':checked')) { jQuery('.recurring_info').show(); if(jQuery('#custom_trial').is(':checked')) {jQuery('.trial_info').show();} else {jQuery('.trial_info').hide();} } else { jQuery('.recurring_info').hide();}" /> <small><?php _e('Check if this level has a recurring subscription payment.', 'pmpro');?></small></td>
|
344 |
+
</tr>
|
345 |
+
|
346 |
+
<tr class="recurring_info" <?php if(!pmpro_isLevelRecurring($level)) {?>style="display: none;"<?php } ?>>
|
347 |
+
<th scope="row" valign="top"><label for="billing_amount"><?php _e('Billing Ammount', 'pmpro');?>:</label></th>
|
348 |
+
<td>
|
349 |
+
<?php echo $pmpro_currency_symbol?><input name="billing_amount" type="text" size="20" value="<?php echo str_replace("\"", """, stripslashes($level->billing_amount))?>" /> <small><?php _e('per', 'pmpro');?></small>
|
350 |
+
<input id="cycle_number" name="cycle_number" type="text" size="10" value="<?php echo str_replace("\"", """, stripslashes($level->cycle_number))?>" />
|
351 |
+
<select id="cycle_period" name="cycle_period">
|
352 |
+
<?php
|
353 |
+
$cycles = array( __('Day(s)', 'pmpro') => 'Day', __('Week(s)', 'pmpro') => 'Week', __('Month(s)', 'pmpro') => 'Month', __('Year(s)', 'pmpro') => 'Year' );
|
354 |
+
foreach ( $cycles as $name => $value ) {
|
355 |
+
echo "<option value='$value'";
|
356 |
+
if ( $level->cycle_period == $value ) echo " selected='selected'";
|
357 |
+
echo ">$name</option>";
|
358 |
+
}
|
359 |
+
?>
|
360 |
+
</select>
|
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") { ?>
|
368 |
+
<br /><strong <?php if(!empty($pmpro_payflow_error)) { ?>class="pmpro_red"<?php } ?>><?php _e('Payflow integration currently only supports billing frequencies of 1 and billing periods of "Week", "Month" or "Year".', 'pmpro');?>
|
369 |
+
<?php } ?>
|
370 |
+
</small>
|
371 |
+
<?php if($gateway == "braintree" && $edit < 0) { ?>
|
372 |
+
<p class="pmpro_message"><strong><?php _e('Note', 'pmpro');?>:</strong> <?php _e('After saving this level, make note of the ID and create a "Plan" in your Braintree dashboard with the same settings and the "Plan ID" set to <em>pmpro_#</em>, where # is the level ID.', 'pmpro');?></p>
|
373 |
+
<?php } elseif($gateway == "braintree") { ?>
|
374 |
+
<p class="pmpro_message"><strong><?php _e('Note', 'pmpro');?>:</strong> <?php _e('You will need to create a "Plan" in your Braintree dashboard with the same settings and the "Plan ID" set to', 'pmpro');?> <em>pmpro_<?php echo $level->id;?></em>.</p>
|
375 |
+
<?php } ?>
|
376 |
+
</td>
|
377 |
+
</tr>
|
378 |
+
|
379 |
+
<tr class="recurring_info" <?php if(!pmpro_isLevelRecurring($level)) {?>style="display: none;"<?php } ?>>
|
380 |
+
<th scope="row" valign="top"><label for="billing_limit"><?php _e('Billing Cycle Limit', 'pmpro');?>:</label></th>
|
381 |
+
<td>
|
382 |
+
<input name="billing_limit" type="text" size="20" value="<?php echo $level->billing_limit?>" />
|
383 |
+
<br /><small>
|
384 |
+
<?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');?>
|
385 |
+
<?php if($gateway == "stripe") { ?>
|
386 |
+
<br /><strong <?php if(!empty($pmpro_stripe_error)) { ?>class="pmpro_red"<?php } ?>><?php _e('Stripe integration currently does not support billing limits. You can still set an expiration date below.', 'pmpro');?></strong>
|
387 |
+
<?php } ?>
|
388 |
+
</small>
|
389 |
+
</td>
|
390 |
+
</tr>
|
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;'";?>>
|
398 |
+
<th scope="row" valign="top"><label for="trial_amount"><?php _e('Trial Billing Amount', 'pmpro');?>:</label></th>
|
399 |
+
<td>
|
400 |
+
<?php echo $pmpro_currency_symbol?><input name="trial_amount" type="text" size="20" value="<?php echo str_replace("\"", """, stripslashes($level->trial_amount))?>" />
|
401 |
+
<small><?php _e('for the first', 'pmpro');?></small>
|
402 |
+
<input name="trial_limit" type="text" size="10" value="<?php echo str_replace("\"", """, stripslashes($level->trial_limit))?>" />
|
403 |
+
<small><?php _e('subscription payments', 'pmpro');?>.</small>
|
404 |
+
<?php if($gateway == "stripe") { ?>
|
405 |
+
<br /><small>
|
406 |
+
<strong <?php if(!empty($pmpro_stripe_error)) { ?>class="pmpro_red"<?php } ?>><?php _e('Stripe integration currently does not support trial amounts greater than $0.', 'pmpro');?></strong>
|
407 |
+
</small>
|
408 |
+
<?php } elseif($gateway == "braintree") { ?>
|
409 |
+
<br /><small>
|
410 |
+
<strong <?php if(!empty($pmpro_braintree_error)) { ?>class="pmpro_red"<?php } ?>><?php _e('Braintree integration currently does not support trial amounts greater than $0.', 'pmpro');?></strong>
|
411 |
+
</small>
|
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 |
+
|
420 |
+
</tbody>
|
421 |
+
</table>
|
422 |
+
<h3 class="topborder"><?php _e('Other Settings', 'pmpro');?></h3>
|
423 |
+
<table class="form-table">
|
424 |
+
<tbody>
|
425 |
+
<tr>
|
426 |
+
<th scope="row" valign="top"><label><?php _e('Disable New Signups', 'pmpro');?>:</label></th>
|
427 |
+
<td><input name="disable_signups" type="checkbox" value="yes" <?php if($level->id && !$level->allow_signups) { ?>checked="checked"<?php } ?> /> <?php _e('Check to hide this level from the membership levels page and disable registration.', 'pmpro');?></td>
|
428 |
+
</tr>
|
429 |
+
|
430 |
+
<tr>
|
431 |
+
<th scope="row" valign="top"><label><?php _e('Membership Expiration', 'pmpro');?>:</label></th>
|
432 |
+
<td><input id="expiration" name="expiration" type="checkbox" value="yes" <?php if(pmpro_isLevelExpiring($level)) { echo "checked='checked'"; } ?> onclick="if(jQuery('#expiration').is(':checked')) { jQuery('.expiration_info').show(); } else { jQuery('.expiration_info').hide();}" /> <?php _e('Check this to set an expiration date for new sign ups.', 'pmpro');?></td>
|
433 |
+
</tr>
|
434 |
+
|
435 |
+
<tr class="expiration_info" <?php if(!pmpro_isLevelExpiring($level)) {?>style="display: none;"<?php } ?>>
|
436 |
+
<th scope="row" valign="top"><label for="billing_amount"><?php _e('Expires In', 'pmpro');?>:</label></th>
|
437 |
+
<td>
|
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'";
|
445 |
+
echo ">$name</option>";
|
446 |
+
}
|
447 |
+
?>
|
448 |
+
</select>
|
449 |
+
<br /><small><?php _e('How long before the expiration expires. Note that any future payments will be cancelled when the membership expires.', 'pmpro');?></small>
|
450 |
+
</td>
|
451 |
+
</tr>
|
452 |
+
</tbody>
|
453 |
+
</table>
|
454 |
+
|
455 |
+
<?php do_action("pmpro_membership_level_after_other_settings"); ?>
|
456 |
+
|
457 |
+
<h3 class="topborder"><?php _e('Content Settings', 'pmpro');?></h3>
|
458 |
+
<table class="form-table">
|
459 |
+
<tbody>
|
460 |
+
<tr>
|
461 |
+
<th scope="row" valign="top"><label><?php _e('Categories', 'pmpro');?>:</label></th>
|
462 |
+
<td>
|
463 |
+
<?php
|
464 |
+
$categories = get_categories( array( 'hide_empty' => 0 ) );
|
465 |
+
echo "<ul>";
|
466 |
+
foreach ( $categories as $cat )
|
467 |
+
{
|
468 |
+
$checked = in_array( $cat->term_id, $level->categories ) ? "checked='checked'" : '';
|
469 |
+
echo "<li><input name='membershipcategory_{$cat->term_id}' type='checkbox' value='yes' $checked /> {$cat->name}</li>\n";
|
470 |
+
}
|
471 |
+
echo "</ul>";
|
472 |
+
?>
|
473 |
+
</td>
|
474 |
+
</tr>
|
475 |
+
</tbody>
|
476 |
+
</table>
|
477 |
+
<p class="submit topborder">
|
478 |
+
<input name="save" type="submit" class="button-primary" value="Save Level" />
|
479 |
+
<input name="cancel" type="button" value="Cancel" onclick="location.href='<?php echo get_admin_url(NULL, '/admin.php?page=pmpro-membershiplevels')?>';" />
|
480 |
+
</p>
|
481 |
+
</form>
|
482 |
+
</div>
|
483 |
+
|
484 |
+
<?php
|
485 |
+
}
|
486 |
+
else
|
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 |
+
|
500 |
+
<br class="clear" />
|
501 |
+
|
502 |
+
<table class="widefat">
|
503 |
+
<thead>
|
504 |
+
<tr>
|
505 |
+
<th><?php _e('ID', 'pmpro');?></th>
|
506 |
+
<th><?php _e('Name', 'pmpro');?></th>
|
507 |
+
<th><?php _e('Initial Payment', 'pmpro');?></th>
|
508 |
+
<th><?php _e('Billing Cycle', 'pmpro');?></th>
|
509 |
+
<th><?php _e('Trial Cycle', 'pmpro');?></th>
|
510 |
+
<th><?php _e('Expiration', 'pmpro');?></th>
|
511 |
+
<th><?php _e('Allow Signups', 'pmpro');?></th>
|
512 |
+
<th></th>
|
513 |
+
<th></th>
|
514 |
+
<th></th>
|
515 |
+
</tr>
|
516 |
+
</thead>
|
517 |
+
<tbody>
|
518 |
+
<?php
|
519 |
+
$sqlQuery = "SELECT * FROM $wpdb->pmpro_membership_levels ";
|
520 |
+
if($s)
|
521 |
+
$sqlQuery .= "WHERE name LIKE '%$s%' ";
|
522 |
+
$sqlQuery .= "ORDER BY id ASC";
|
523 |
+
|
524 |
+
$levels = $wpdb->get_results($sqlQuery, OBJECT);
|
525 |
+
|
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>
|
533 |
+
<?php if(pmpro_isLevelFree($level)) { ?>
|
534 |
+
<?php _e('FREE', 'pmpro');?>
|
535 |
+
<?php } else { ?>
|
536 |
+
<?php echo $pmpro_currency_symbol?><?php echo $level->initial_payment?>
|
537 |
+
<?php } ?>
|
538 |
+
</td>
|
539 |
+
<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 |
+
|
547 |
+
<?php } ?>
|
548 |
+
</td>
|
549 |
+
<td>
|
550 |
+
<?php if(!pmpro_isLevelTrial($level)) { ?>
|
551 |
+
--
|
552 |
+
<?php } else { ?>
|
553 |
+
<?php echo $pmpro_currency_symbol?><?php echo $level->trial_amount?> <?php _e('for', 'pmpro');?> <?php echo $level->trial_limit?> <?php echo sornot("payment",$level->trial_limit)?>
|
554 |
+
<?php } ?>
|
555 |
+
</td>
|
556 |
+
<td>
|
557 |
+
<?php if(!pmpro_isLevelExpiring($level)) { ?>
|
558 |
+
--
|
559 |
+
<?php } else { ?>
|
560 |
+
<?php _e('After', 'pmpro');?> <?php echo $level->expiration_number?> <?php echo sornot($level->expiration_period,$level->expiration_number)?>
|
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 |
+
}
|
570 |
+
?>
|
571 |
+
</tbody>
|
572 |
+
</table>
|
573 |
+
<?php
|
574 |
+
}
|
575 |
+
?>
|
576 |
+
|
577 |
+
<?php
|
578 |
+
require_once(dirname(__FILE__) . "/admin_footer.php");
|
579 |
+
?>
|
580 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
adminpages/memberslist-csv.php
CHANGED
@@ -42,83 +42,29 @@
|
|
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 |
|
@@ -141,9 +87,7 @@
|
|
141 |
array("theuser", "membership"),
|
142 |
array("theuser", "initial_payment"),
|
143 |
array("theuser", "billing_amount"),
|
144 |
-
array("theuser", "cycle_period")
|
145 |
-
array("discount_code", "id"),
|
146 |
-
array("discount_code", "code")
|
147 |
//joindate and enddate are handled specifically below
|
148 |
);
|
149 |
|
@@ -162,28 +106,15 @@
|
|
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 |
-
|
185 |
-
$discount_code = $wpdb->get_row($sqlQuery);
|
186 |
-
|
187 |
//default columns
|
188 |
if(!empty($default_columns))
|
189 |
{
|
@@ -203,41 +134,41 @@
|
|
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)
|
241 |
{
|
242 |
return "\"" . str_replace("\"", "\\\"", $s) . "\"";
|
243 |
-
}
|
|
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 LIMIT $start, $limit";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
51 |
}
|
52 |
else
|
53 |
{
|
54 |
+
$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";
|
55 |
+
$sqlQuery .= " WHERE mu.membership_id > 0 AND mu.status = 'active' ";
|
56 |
+
if($l)
|
57 |
+
$sqlQuery .= " AND mu.membership_id = '" . $l . "' ";
|
58 |
+
$sqlQuery .= "ORDER BY user_registered DESC ";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
if($limit)
|
60 |
$sqlQuery .= "LIMIT $start, $limit";
|
61 |
}
|
62 |
|
|
|
63 |
$sqlQuery = apply_filters("pmpro_members_list_sql", $sqlQuery);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
64 |
|
65 |
+
$theusers = $wpdb->get_results($sqlQuery);
|
66 |
+
|
67 |
+
$heading = "id,username,firstname,lastname,email,billing firstname,billing lastname,address1,address2,city,state,zipcode,country,phone,membership,initial payment,fee,term,joined,expires";
|
68 |
$heading = apply_filters("pmpro_members_list_csv_heading", $heading);
|
69 |
$csvoutput = $heading;
|
70 |
|
87 |
array("theuser", "membership"),
|
88 |
array("theuser", "initial_payment"),
|
89 |
array("theuser", "billing_amount"),
|
90 |
+
array("theuser", "cycle_period")
|
|
|
|
|
91 |
//joindate and enddate are handled specifically below
|
92 |
);
|
93 |
|
106 |
|
107 |
$csvoutput .= "\n";
|
108 |
|
|
|
|
|
|
|
|
|
109 |
if($theusers)
|
110 |
{
|
111 |
+
foreach($theusers as $theuser)
|
112 |
{
|
|
|
113 |
//get meta
|
114 |
+
$sqlQuery = "SELECT meta_key as `key`, meta_value as `value` FROM $wpdb->usermeta WHERE $wpdb->usermeta.user_id = '" . $theuser->ID . "'";
|
|
|
|
|
|
|
|
|
|
|
|
|
115 |
$metavalues = pmpro_getMetavalues($sqlQuery);
|
116 |
$theuser->metavalues = $metavalues;
|
117 |
+
|
|
|
|
|
118 |
//default columns
|
119 |
if(!empty($default_columns))
|
120 |
{
|
134 |
|
135 |
//joindate and enddate
|
136 |
$csvoutput .= "," . pmpro_enclose(date("Y-m-d", $theuser->joindate)) . ",";
|
137 |
+
if($theuser->enddate)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
138 |
$csvoutput .= pmpro_enclose(date("Y-m-d", $theuser->enddate));
|
|
|
139 |
else
|
140 |
+
$csvoutput .= pmpro_enclose("Never");
|
141 |
+
|
142 |
//any extra columns
|
143 |
if(!empty($extra_columns))
|
144 |
{
|
145 |
foreach($extra_columns as $heading => $callback)
|
146 |
{
|
147 |
+
$csvoutput .= "," . pmpro_enclose(call_user_func($callback, $theuser));
|
148 |
}
|
149 |
}
|
150 |
|
151 |
$csvoutput .= "\n";
|
152 |
+
|
|
|
|
|
|
|
153 |
}
|
154 |
}
|
155 |
+
|
156 |
+
$size_in_bytes = strlen($csvoutput);
|
157 |
+
header("Content-type: text/csv");
|
158 |
+
//header("Content-type: application/vnd.ms-excel");
|
159 |
+
if($s && $l)
|
160 |
+
header("Content-Disposition: attachment; filename=members_list_" . intval($l) . "_level" . sanitize_file_name($s) . ".csv; size=$size_in_bytes");
|
161 |
+
elseif($s)
|
162 |
+
header("Content-Disposition: attachment; filename=members_list_" . sanitize_file_name($s) . ".csv; size=$size_in_bytes");
|
163 |
+
elseif($l)
|
164 |
+
header("Content-Disposition: attachment; filename=members_list_level" . intval($l) . ".csv; size=$size_in_bytes");
|
165 |
+
else
|
166 |
+
header("Content-Disposition: attachment; filename=members_list.csv; size=$size_in_bytes");
|
167 |
+
|
168 |
print $csvoutput;
|
169 |
|
170 |
function pmpro_enclose($s)
|
171 |
{
|
172 |
return "\"" . str_replace("\"", "\\\"", $s) . "\"";
|
173 |
+
}
|
174 |
+
?>
|
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,42 +49,30 @@
|
|
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 |
-
|
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)
|
191 |
$default_columns = array(
|
@@ -205,7 +92,7 @@
|
|
205 |
array("order", "membership_id"),
|
206 |
array("level", "name"),
|
207 |
array("order", "subtotal"),
|
208 |
-
array("order", "tax"),
|
209 |
array("order", "couponamount"),
|
210 |
array("order", "total"),
|
211 |
array("order", "payment_type"),
|
@@ -217,9 +104,7 @@
|
|
217 |
array("order", "gateway"),
|
218 |
array("order", "gateway_environment"),
|
219 |
array("order", "payment_transaction_id"),
|
220 |
-
array("order", "subscription_transactiond_id")
|
221 |
-
array("discount_code", "id"),
|
222 |
-
array("discount_code", "code")
|
223 |
);
|
224 |
|
225 |
//any extra columns
|
@@ -234,10 +119,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)
|
@@ -247,8 +128,6 @@
|
|
247 |
$order->getMemberOrderByID($order_id);
|
248 |
$user = get_userdata($order->user_id);
|
249 |
$level = $order->getMembershipLevel();
|
250 |
-
$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.order_id = '" . $order_id . "' LIMIT 1";
|
251 |
-
$discount_code = $wpdb->get_row($sqlQuery);
|
252 |
|
253 |
//default columns
|
254 |
if(!empty($default_columns))
|
@@ -282,12 +161,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,timestamp";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
76 |
|
77 |
//these are the meta_keys for the fields (arrays are object, property. so e.g. $theuser->ID)
|
78 |
$default_columns = array(
|
92 |
array("order", "membership_id"),
|
93 |
array("level", "name"),
|
94 |
array("order", "subtotal"),
|
95 |
+
array("order", "tax"),
|
96 |
array("order", "couponamount"),
|
97 |
array("order", "total"),
|
98 |
array("order", "payment_type"),
|
104 |
array("order", "gateway"),
|
105 |
array("order", "gateway_environment"),
|
106 |
array("order", "payment_transaction_id"),
|
107 |
+
array("order", "subscription_transactiond_id")
|
|
|
|
|
108 |
);
|
109 |
|
110 |
//any extra columns
|
119 |
|
120 |
$csvoutput .= "\n";
|
121 |
|
|
|
|
|
|
|
|
|
122 |
if($order_ids)
|
123 |
{
|
124 |
foreach($order_ids as $order_id)
|
128 |
$order->getMemberOrderByID($order_id);
|
129 |
$user = get_userdata($order->user_id);
|
130 |
$level = $order->getMembershipLevel();
|
|
|
|
|
131 |
|
132 |
//default columns
|
133 |
if(!empty($default_columns))
|
161 |
}
|
162 |
|
163 |
$csvoutput .= "\n";
|
164 |
+
|
|
|
|
|
|
|
165 |
}
|
166 |
+
}
|
167 |
+
|
168 |
+
$size_in_bytes = strlen($csvoutput);
|
169 |
+
header("Content-type: text/csv");
|
170 |
+
//header("Content-type: application/vnd.ms-excel");
|
171 |
+
if($s && $l)
|
172 |
+
header("Content-Disposition: attachment; filename=orders" . intval($l) . "_level" . sanitize_file_name($s) . ".csv; size=$size_in_bytes");
|
173 |
+
elseif($s)
|
174 |
+
header("Content-Disposition: attachment; filename=orders_" . sanitize_file_name($s) . ".csv; size=$size_in_bytes");
|
175 |
+
elseif($l)
|
176 |
+
header("Content-Disposition: attachment; filename=orders_level" . intval($l) . ".csv; size=$size_in_bytes");
|
177 |
+
else
|
178 |
+
header("Content-Disposition: attachment; filename=orders.csv; size=$size_in_bytes");
|
179 |
|
180 |
print $csvoutput;
|
181 |
|
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 |
|
@@ -343,7 +293,7 @@
|
|
343 |
</tr>
|
344 |
|
345 |
<tr>
|
346 |
-
<th scope="row" valign="top"><label for="subtotal"><?php _e('Sub Total', 'pmpro')
|
347 |
<td>
|
348 |
<?php if(in_array("subtotal", $read_only_fields) && $order_id > 0) { echo $order->subtotal; } else { ?>
|
349 |
<input id="subtotal" name="subtotal" type="text" size="10" value="<?php echo esc_attr($order->subtotal);?>" />
|
@@ -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 |
?>
|
@@ -542,7 +492,7 @@
|
|
542 |
<?php } ?>
|
543 |
|
544 |
<tr>
|
545 |
-
<th scope="row" valign="top"><label for="notes"><?php _e('Notes', 'pmpro')
|
546 |
<td>
|
547 |
<?php if(in_array("notes", $read_only_fields) && $order_id > 0) { echo $order->notes; } else { ?>
|
548 |
<textarea id="notes" name="notes" rows="5" cols="80"><?php echo esc_textarea($order->notes);?></textarea>
|
@@ -557,8 +507,8 @@
|
|
557 |
|
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 |
|
293 |
</tr>
|
294 |
|
295 |
<tr>
|
296 |
+
<th scope="row" valign="top"><label for="subtotal"><?php _e('Sub Total', 'pmpro');?>Sub Total:</label></th>
|
297 |
<td>
|
298 |
<?php if(in_array("subtotal", $read_only_fields) && $order_id > 0) { echo $order->subtotal; } else { ?>
|
299 |
<input id="subtotal" name="subtotal" type="text" size="10" value="<?php echo esc_attr($order->subtotal);?>" />
|
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 |
?>
|
492 |
<?php } ?>
|
493 |
|
494 |
<tr>
|
495 |
+
<th scope="row" valign="top"><label for="notes"><?php _e('Notes', 'pmpro');?>Notes:</label></th>
|
496 |
<td>
|
497 |
<?php if(in_array("notes", $read_only_fields) && $order_id > 0) { echo $order->notes; } else { ?>
|
498 |
<textarea id="notes" name="notes" rows="5" cols="80"><?php echo esc_textarea($order->notes);?></textarea>
|
507 |
|
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');?>Save Order" />
|
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
@@ -1,61 +1,48 @@
|
|
1 |
<?php
|
2 |
-
global $pmpro_reports;
|
3 |
|
4 |
require_once(dirname(__FILE__) . "/admin_header.php");
|
5 |
-
|
6 |
-
//default view, report widgets
|
7 |
-
if(empty($_REQUEST['report']))
|
8 |
{
|
9 |
-
//wrapper
|
10 |
-
?>
|
11 |
-
<div id="dashboard-widgets-wrap">
|
12 |
-
<div id="dashboard-widgets" class="metabox-holder
|
13 |
-
|
14 |
-
|
15 |
-
<?php
|
16 |
-
|
17 |
-
//report widgets
|
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 |
-
//end wrapper
|
48 |
-
?>
|
49 |
-
</div>
|
50 |
-
</div>
|
51 |
-
</div>
|
52 |
-
<?php
|
53 |
-
}
|
54 |
-
else
|
55 |
-
{
|
56 |
-
//view a single report
|
57 |
-
$report = $_REQUEST['report'];
|
58 |
-
call_user_func("pmpro_report_" . $report . "_page");
|
59 |
}
|
60 |
|
61 |
require_once(dirname(__FILE__) . "/admin_footer.php");
|
1 |
<?php
|
2 |
+
global $pmpro_reports;
|
3 |
|
4 |
require_once(dirname(__FILE__) . "/admin_header.php");
|
5 |
+
|
6 |
+
//default view, report widgets
|
7 |
+
if(empty($_REQUEST['report']))
|
8 |
{
|
9 |
+
//wrapper
|
10 |
+
?>
|
11 |
+
<div id="dashboard-widgets-wrap">
|
12 |
+
<div id="dashboard-widgets" class="metabox-holder columns-2">
|
13 |
+
<div id="postbox-container-1" class="postbox-container">
|
14 |
+
<div id="normal-sortables" class="meta-box-sortables">
|
15 |
+
<?php
|
16 |
+
|
17 |
+
//report widgets
|
18 |
+
foreach($pmpro_reports as $report => $title)
|
19 |
+
{
|
20 |
+
?>
|
21 |
+
<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);?>';">
|
22 |
+
<h3 class="hndle"><span><?php echo $title; ?></span></h3>
|
23 |
+
<div class="inside">
|
24 |
+
<?php call_user_func("pmpro_report_" . $report . "_widget"); ?>
|
25 |
+
<div style="margin-top:10px;border-top: 1px solid #ddd; padding-top: 10px; text-align:center;">
|
26 |
+
<a href="<?php echo admin_url("admin.php?page=pmpro-reports&report=" . $report);?>"><?php _e('Details', 'pmpro');?></a>
|
27 |
+
</div>
|
28 |
+
</div>
|
29 |
+
</div>
|
30 |
+
<?php
|
31 |
+
}
|
32 |
+
|
33 |
+
//end wrapper
|
34 |
+
?>
|
35 |
+
</div>
|
36 |
+
</div>
|
37 |
+
</div>
|
38 |
+
</div>
|
39 |
+
<?php
|
40 |
+
}
|
41 |
+
else
|
42 |
+
{
|
43 |
+
//view a single report
|
44 |
+
$report = $_REQUEST['report'];
|
45 |
+
call_user_func("pmpro_report_" . $report . "_page");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
}
|
47 |
|
48 |
require_once(dirname(__FILE__) . "/admin_footer.php");
|
adminpages/reports/login.php
CHANGED
@@ -13,29 +13,29 @@
|
|
13 |
* pmpro_report_{slug}_page() to show up when users click on the report page widget.
|
14 |
*/
|
15 |
global $pmpro_reports;
|
16 |
-
$pmpro_reports['login'] =
|
17 |
|
18 |
function pmpro_report_login_widget()
|
19 |
{
|
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
|
27 |
-
<p
|
28 |
-
<p
|
29 |
</div>
|
30 |
<div style="width: 33%; float: left;">
|
31 |
-
<p
|
32 |
-
<p
|
33 |
-
<p
|
34 |
</div>
|
35 |
<div style="width: 33%; float: left;">
|
36 |
-
<p
|
37 |
-
<p
|
38 |
-
<p
|
39 |
</div>
|
40 |
<div class="clear"></div>
|
41 |
<?php
|
@@ -58,13 +58,13 @@ function pmpro_report_login_page()
|
|
58 |
?>
|
59 |
<form id="posts-filter" method="get" action="">
|
60 |
<h2>
|
61 |
-
|
62 |
</h2>
|
63 |
<ul class="subsubsub">
|
64 |
<li>
|
65 |
-
|
66 |
-
<option value="" <?php if(!$l) { ?>selected="selected"<?php }
|
67 |
-
<option value="all" <?php if($l == "all") { ?>selected="selected"<?php }
|
68 |
<?php
|
69 |
$levels = $wpdb->get_results("SELECT id, name FROM $wpdb->pmpro_membership_levels ORDER BY name");
|
70 |
foreach($levels as $level)
|
@@ -78,7 +78,7 @@ function pmpro_report_login_page()
|
|
78 |
</li>
|
79 |
</ul>
|
80 |
<p class="search-box">
|
81 |
-
<label class="hidden" for="post-search-input"
|
82 |
<input type="hidden" name="page" value="pmpro-reports" />
|
83 |
<input type="hidden" name="report" value="login" />
|
84 |
<input id="post-search-input" type="text" value="<?php echo $s?>" name="s"/>
|
@@ -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")
|
@@ -137,20 +137,20 @@ function pmpro_report_login_page()
|
|
137 |
<table class="widefat">
|
138 |
<thead>
|
139 |
<tr class="thead">
|
140 |
-
<th
|
141 |
-
<th
|
142 |
-
<th
|
143 |
-
<th
|
144 |
-
<th
|
145 |
-
<th
|
146 |
-
<th
|
147 |
-
<th
|
148 |
-
<th
|
149 |
-
<th
|
150 |
-
<th
|
151 |
-
<th
|
152 |
-
<th
|
153 |
-
<th
|
154 |
</tr>
|
155 |
</thead>
|
156 |
<tbody id="users" class="list:user user-list">
|
@@ -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 |
}
|
@@ -207,7 +207,7 @@ function pmpro_report_login_page()
|
|
207 |
{
|
208 |
?>
|
209 |
<tr>
|
210 |
-
<td colspan="9"><p
|
211 |
</tr>
|
212 |
<?php
|
213 |
}
|
@@ -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");
|
13 |
* pmpro_report_{slug}_page() to show up when users click on the report page widget.
|
14 |
*/
|
15 |
global $pmpro_reports;
|
16 |
+
$pmpro_reports['login'] = 'Visits, Views, and Logins';
|
17 |
|
18 |
function pmpro_report_login_widget()
|
19 |
{
|
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>Visits Today: <?php echo $visits['today'];?></p>
|
27 |
+
<p>Visits This Month: <?php echo $visits['month'];?></p>
|
28 |
+
<p>Visits All Time: <?php echo $visits['alltime'];?></p>
|
29 |
</div>
|
30 |
<div style="width: 33%; float: left;">
|
31 |
+
<p>Views Today: <?php echo $views['today'];?></p>
|
32 |
+
<p>Views This Month: <?php echo $views['month'];?></p>
|
33 |
+
<p>Views All Time: <?php echo $views['alltime'];?></p>
|
34 |
</div>
|
35 |
<div style="width: 33%; float: left;">
|
36 |
+
<p>Logins Today: <?php echo $logins['today'];?></p>
|
37 |
+
<p>Logins This Month: <?php echo $logins['month'];?></p>
|
38 |
+
<p>Logins All Time: <?php echo $logins['alltime'];?></p>
|
39 |
</div>
|
40 |
<div class="clear"></div>
|
41 |
<?php
|
58 |
?>
|
59 |
<form id="posts-filter" method="get" action="">
|
60 |
<h2>
|
61 |
+
Visits, Views, and Logins Report
|
62 |
</h2>
|
63 |
<ul class="subsubsub">
|
64 |
<li>
|
65 |
+
Show <select name="l" onchange="jQuery('#posts-filter').submit();">
|
66 |
+
<option value="" <?php if(!$l) { ?>selected="selected"<?php } ?>>All Users</option>
|
67 |
+
<option value="all" <?php if($l == "all") { ?>selected="selected"<?php } ?>>All Levels</option>
|
68 |
<?php
|
69 |
$levels = $wpdb->get_results("SELECT id, name FROM $wpdb->pmpro_membership_levels ORDER BY name");
|
70 |
foreach($levels as $level)
|
78 |
</li>
|
79 |
</ul>
|
80 |
<p class="search-box">
|
81 |
+
<label class="hidden" for="post-search-input">Search <?php if(empty($l)) echo "Users"; else echo "Members";?>:</label>
|
82 |
<input type="hidden" name="page" value="pmpro-reports" />
|
83 |
<input type="hidden" name="report" value="login" />
|
84 |
<input id="post-search-input" type="text" value="<?php echo $s?>" name="s"/>
|
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")
|
137 |
<table class="widefat">
|
138 |
<thead>
|
139 |
<tr class="thead">
|
140 |
+
<th>ID</th>
|
141 |
+
<th>User</th>
|
142 |
+
<th>Name</th>
|
143 |
+
<th>Membership</th>
|
144 |
+
<th>Joined</th>
|
145 |
+
<th>Expires</th>
|
146 |
+
<th>Last Visit</th>
|
147 |
+
<th>Visits This Month</th>
|
148 |
+
<th>Total Visits</th>
|
149 |
+
<th>Views This Month</th>
|
150 |
+
<th>Total Views</th>
|
151 |
+
<th>Last Login</th>
|
152 |
+
<th>Logins This Month</th>
|
153 |
+
<th>Total Logins</th>
|
154 |
</tr>
|
155 |
</thead>
|
156 |
<tbody id="users" class="list:user user-list">
|
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 |
}
|
207 |
{
|
208 |
?>
|
209 |
<tr>
|
210 |
+
<td colspan="9"><p>No members found. <?php if($l) { ?><a href="?page=pmpro-memberslist&s=<?php echo $s?>">Search all levels</a>.<?php } ?></p></td>
|
211 |
</tr>
|
212 |
<?php
|
213 |
}
|
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
DELETED
@@ -1,397 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
PMPro Report
|
4 |
-
Title: Sales
|
5 |
-
Slug: sales
|
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 |
-
global $pmpro_reports;
|
16 |
-
$gateway_environment = pmpro_getOption("gateway_environment");
|
17 |
-
if($gateway_environment == "sandbox")
|
18 |
-
$pmpro_reports['sales'] = __('Sales and Revenue (Testing/Sandbox)', 'pmpro');
|
19 |
-
else
|
20 |
-
$pmpro_reports['sales'] = __('Sales and Revenue', 'pmpro');
|
21 |
-
|
22 |
-
//queue Google Visualization JS on report page
|
23 |
-
function pmpro_report_sales_init()
|
24 |
-
{
|
25 |
-
if(is_admin() && isset($_REQUEST['report']) && $_REQUEST['report'] == "sales" && isset($_REQUEST['page']) && $_REQUEST['page'] == "pmpro-reports")
|
26 |
-
{
|
27 |
-
wp_enqueue_script("jsapi", "https://www.google.com/jsapi");
|
28 |
-
}
|
29 |
-
}
|
30 |
-
add_action("init", "pmpro_report_sales_init");
|
31 |
-
|
32 |
-
//widget
|
33 |
-
function pmpro_report_sales_widget()
|
34 |
-
{
|
35 |
-
global $wpdb, $pmpro_currency_symbol;
|
36 |
-
?>
|
37 |
-
<style>
|
38 |
-
#pmpro_report_sales div {text-align: center;}
|
39 |
-
#pmpro_report_sales em {display: block; font-style: normal; font-size: 2em; margin: 5px;}
|
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>
|
62 |
-
<div class="clear"></div>
|
63 |
-
</span>
|
64 |
-
<?php
|
65 |
-
}
|
66 |
-
|
67 |
-
function pmpro_report_sales_page()
|
68 |
-
{
|
69 |
-
global $wpdb, $pmpro_currency_symbol;
|
70 |
-
|
71 |
-
//get values from form
|
72 |
-
if(isset($_REQUEST['type']))
|
73 |
-
$type = sanitize_text_field($_REQUEST['type']);
|
74 |
-
else
|
75 |
-
$type = "revenue";
|
76 |
-
|
77 |
-
if($type == "sales")
|
78 |
-
$type_function = "COUNT";
|
79 |
-
else
|
80 |
-
$type_function = "SUM";
|
81 |
-
|
82 |
-
if(isset($_REQUEST['period']))
|
83 |
-
$period = sanitize_text_field($_REQUEST['period']);
|
84 |
-
else
|
85 |
-
$period = "daily";
|
86 |
-
|
87 |
-
if(isset($_REQUEST['month']))
|
88 |
-
$month = intval($_REQUEST['month']);
|
89 |
-
else
|
90 |
-
$month = date("n");
|
91 |
-
|
92 |
-
$thisyear = date("Y");
|
93 |
-
if(isset($_REQUEST['year']))
|
94 |
-
$year = intval($_REQUEST['year']);
|
95 |
-
else
|
96 |
-
$year = $thisyear;
|
97 |
-
|
98 |
-
if(isset($_REQUEST['level']))
|
99 |
-
$l = intval($_REQUEST['level']);
|
100 |
-
else
|
101 |
-
$l = "";
|
102 |
-
|
103 |
-
//calculate start date and how to group dates returned from DB
|
104 |
-
if($period == "daily")
|
105 |
-
{
|
106 |
-
$startdate = $year . '-' . substr("0" . $month, strlen($month) - 1, 2) . '-01';
|
107 |
-
$enddate = $year . '-' . substr("0" . $month, strlen($month) - 1, 2) . '-31';
|
108 |
-
$date_function = 'DAY';
|
109 |
-
}
|
110 |
-
elseif($period == "monthly")
|
111 |
-
{
|
112 |
-
$startdate = $year . '-01-01';
|
113 |
-
$enddate = strval(intval($year)+1) . '-01-01';
|
114 |
-
$date_function = 'MONTH';
|
115 |
-
}
|
116 |
-
else
|
117 |
-
{
|
118 |
-
$startdate = '1960-01-01'; //all time
|
119 |
-
$date_function = 'YEAR';
|
120 |
-
}
|
121 |
-
|
122 |
-
//testing or live data
|
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', 'error') AND gateway_environment = '" . esc_sql($gateway_environment) . "' ";
|
127 |
-
|
128 |
-
if(!empty($enddate))
|
129 |
-
$sqlQuery .= "AND timestamp < '" . $enddate . "' ";
|
130 |
-
|
131 |
-
if(!empty($l))
|
132 |
-
$sqlQuery .= "AND membership_id IN(" . $l . ") ";
|
133 |
-
|
134 |
-
$sqlQuery .= " GROUP BY date ORDER BY date ";
|
135 |
-
|
136 |
-
$dates = $wpdb->get_results($sqlQuery);
|
137 |
-
|
138 |
-
//fill in blanks in dates
|
139 |
-
$cols = array();
|
140 |
-
if($period == "daily")
|
141 |
-
{
|
142 |
-
$lastday = date("t", $startdate);
|
143 |
-
|
144 |
-
for($i = 1; $i <= $lastday; $i++)
|
145 |
-
{
|
146 |
-
$cols[$i] = 0;
|
147 |
-
foreach($dates as $date)
|
148 |
-
{
|
149 |
-
if($date->date == $i)
|
150 |
-
$cols[$i] = $date->value;
|
151 |
-
}
|
152 |
-
}
|
153 |
-
}
|
154 |
-
elseif($period == "monthly")
|
155 |
-
{
|
156 |
-
for($i = 1; $i < 13; $i++)
|
157 |
-
{
|
158 |
-
$cols[$i] = 0;
|
159 |
-
foreach($dates as $date)
|
160 |
-
{
|
161 |
-
if($date->date == $i)
|
162 |
-
$cols[$i] = $date->value;
|
163 |
-
}
|
164 |
-
}
|
165 |
-
}
|
166 |
-
else //annual
|
167 |
-
{
|
168 |
-
//get min and max years
|
169 |
-
$min = 9999;
|
170 |
-
$max = 0;
|
171 |
-
foreach($dates as $date)
|
172 |
-
{
|
173 |
-
$min = min($min, $date->date);
|
174 |
-
$max = max($max, $date->date);
|
175 |
-
}
|
176 |
-
|
177 |
-
for($i = $min; $i <= $max; $i++)
|
178 |
-
{
|
179 |
-
foreach($dates as $date)
|
180 |
-
{
|
181 |
-
if($date->date == $i)
|
182 |
-
$cols[$i] = $date->value;
|
183 |
-
}
|
184 |
-
}
|
185 |
-
}
|
186 |
-
?>
|
187 |
-
<form id="posts-filter" method="get" action="">
|
188 |
-
<h2>
|
189 |
-
<?php _e('Sales and Revenue', 'pmpro');?>
|
190 |
-
</h2>
|
191 |
-
|
192 |
-
<div class="tablenav top">
|
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" class="button action" value="<?php _ex('Generate Report', 'Submit button value.', 'pmpro');?>" />
|
231 |
-
</div>
|
232 |
-
|
233 |
-
<div id="chart_div" style="clear: both; width: 100%; height: 500px;"></div>
|
234 |
-
|
235 |
-
<script>
|
236 |
-
//update month/year when period dropdown is changed
|
237 |
-
jQuery(document).ready(function() {
|
238 |
-
jQuery('#period').change(function() {
|
239 |
-
pmpro_ShowMonthOrYear();
|
240 |
-
});
|
241 |
-
});
|
242 |
-
|
243 |
-
function pmpro_ShowMonthOrYear()
|
244 |
-
{
|
245 |
-
var period = jQuery('#period').val();
|
246 |
-
if(period == 'daily')
|
247 |
-
{
|
248 |
-
jQuery('#for').show();
|
249 |
-
jQuery('#month').show();
|
250 |
-
jQuery('#year').show();
|
251 |
-
}
|
252 |
-
else if(period == 'monthly')
|
253 |
-
{
|
254 |
-
jQuery('#for').show();
|
255 |
-
jQuery('#month').hide();
|
256 |
-
jQuery('#year').show();
|
257 |
-
}
|
258 |
-
else
|
259 |
-
{
|
260 |
-
jQuery('#for').hide();
|
261 |
-
jQuery('#month').hide();
|
262 |
-
jQuery('#year').hide();
|
263 |
-
}
|
264 |
-
}
|
265 |
-
|
266 |
-
pmpro_ShowMonthOrYear();
|
267 |
-
|
268 |
-
//draw the chart
|
269 |
-
google.load("visualization", "1", {packages:["corechart"]});
|
270 |
-
google.setOnLoadCallback(drawChart);
|
271 |
-
function drawChart() {
|
272 |
-
|
273 |
-
var data = google.visualization.arrayToDataTable([
|
274 |
-
['<?php echo $date_function;?>', '<?php echo ucwords($type);?>'],
|
275 |
-
<?php foreach($cols as $date => $value) { ?>
|
276 |
-
['<?php if($period == "monthly") echo date("M", mktime(0,0,0,$date)); else echo $date;?>', <?php echo $value;?>],
|
277 |
-
<?php } ?>
|
278 |
-
]);
|
279 |
-
|
280 |
-
var options = {
|
281 |
-
colors: ['#51a351', '#387038'],
|
282 |
-
hAxis: {title: '<?php echo $date_function;?>', titleTextStyle: {color: 'black'}, maxAlternation: 1},
|
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);
|
293 |
-
}
|
294 |
-
</script>
|
295 |
-
|
296 |
-
</form>
|
297 |
-
<?php
|
298 |
-
}
|
299 |
-
|
300 |
-
/*
|
301 |
-
Other code required for your reports. This file is loaded every time WP loads with PMPro enabled.
|
302 |
-
*/
|
303 |
-
|
304 |
-
//get sales
|
305 |
-
function pmpro_getSales($period, $levels = NULL)
|
306 |
-
{
|
307 |
-
//check for a transient
|
308 |
-
$cache = get_transient("pmpro_report_sales");
|
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', 'error')
|
313 |
-
if($period == "today")
|
314 |
-
$startdate = date("Y-m-d");
|
315 |
-
elseif($period == "this month")
|
316 |
-
$startdate = date("Y-m") . "-01";
|
317 |
-
elseif($period == "this year")
|
318 |
-
$startdate = date("Y") . "-01-01";
|
319 |
-
else
|
320 |
-
$startdate = "";
|
321 |
-
|
322 |
-
$gateway_environment = pmpro_getOption("gateway_environment");
|
323 |
-
|
324 |
-
//build query
|
325 |
-
global $wpdb;
|
326 |
-
$sqlQuery = "SELECT COUNT(*) FROM $wpdb->pmpro_membership_orders WHERE status NOT IN('refunded', 'review', 'token', 'error') AND timestamp >= '" . $startdate . "' AND gateway_environment = '" . esc_sql($gateway_environment) . "' ";
|
327 |
-
|
328 |
-
//restrict by level
|
329 |
-
if(!empty($levels))
|
330 |
-
$sqlQuery .= "AND membership_id IN(" . $levels . ") ";
|
331 |
-
|
332 |
-
$sales = $wpdb->get_var($sqlQuery);
|
333 |
-
|
334 |
-
//save in cache
|
335 |
-
if(!empty($cache) && !empty($cache[$period]))
|
336 |
-
$cache[$period][$levels] = $sales;
|
337 |
-
elseif(!empty($cache))
|
338 |
-
$cache[$period] = array($levels => $sales);
|
339 |
-
else
|
340 |
-
$cache = array($period => array($levels => $sales));
|
341 |
-
|
342 |
-
set_transient("pmpro_report_sales", $cache, 3600*24);
|
343 |
-
|
344 |
-
return $sales;
|
345 |
-
}
|
346 |
-
|
347 |
-
//get revenue
|
348 |
-
function pmpro_getRevenue($period, $levels = NULL)
|
349 |
-
{
|
350 |
-
//check for a transient
|
351 |
-
$cache = get_transient("pmpro_report_revenue");
|
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', 'error')
|
356 |
-
if($period == "today")
|
357 |
-
$startdate = date("Y-m-d");
|
358 |
-
elseif($period == "this month")
|
359 |
-
$startdate = date("Y-m") . "-01";
|
360 |
-
elseif($period == "this year")
|
361 |
-
$startdate = date("Y") . "-01-01";
|
362 |
-
else
|
363 |
-
$startdate = "";
|
364 |
-
|
365 |
-
$gateway_environment = pmpro_getOption("gateway_environment");
|
366 |
-
|
367 |
-
//build query
|
368 |
-
global $wpdb;
|
369 |
-
$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) . "' ";
|
370 |
-
|
371 |
-
//restrict by level
|
372 |
-
if(!empty($levels))
|
373 |
-
$sqlQuery .= "AND membership_id IN(" . $levels . ") ";
|
374 |
-
|
375 |
-
$revenue = $wpdb->get_var($sqlQuery);
|
376 |
-
|
377 |
-
//save in cache
|
378 |
-
if(!empty($cache) && !empty($cache[$period]))
|
379 |
-
$cache[$period][$levels] = $revenue;
|
380 |
-
elseif(!empty($cache))
|
381 |
-
$cache[$period] = array($levels => $revenue);
|
382 |
-
else
|
383 |
-
$cache = array($period => array($levels => $revenue));
|
384 |
-
|
385 |
-
set_transient("pmpro_report_revenue", $cache, 3600*24);
|
386 |
-
|
387 |
-
return $revenue;
|
388 |
-
}
|
389 |
-
|
390 |
-
//delete transients when an order goes through
|
391 |
-
function pmpro_report_sales_delete_transients()
|
392 |
-
{
|
393 |
-
delete_transient("pmpro_report_sales");
|
394 |
-
delete_transient("pmpro_report_revenue");
|
395 |
-
}
|
396 |
-
add_action("pmpro_after_checkout", "pmpro_report_sales_delete_transients");
|
397 |
-
add_action("pmpro_updated_order", "pmpro_report_sales_delete_transients");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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,19 +445,11 @@
|
|
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 |
-
}
|
504 |
|
505 |
function sendBillingFailureAdminEmail($email, $invoice = NULL)
|
506 |
{
|
@@ -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,63 +482,8 @@
|
|
534 |
"accountnumber" => hideCardNumber($invoice->accountnumber),
|
535 |
"expirationmonth" => $invoice->expirationmonth,
|
536 |
"expirationyear" => $invoice->expirationyear,
|
537 |
-
"login_link" =>
|
538 |
);
|
539 |
-
$this->data["billing_address"] = pmpro_formatAddress($invoice->billing->name,
|
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 |
-
|
550 |
-
function sendCreditCardExpiringEmail($user = NULL, $invoice = NULL)
|
551 |
-
{
|
552 |
-
global $current_user;
|
553 |
-
if(!$user)
|
554 |
-
$user = $current_user;
|
555 |
-
|
556 |
-
if(!$user || !$invoice)
|
557 |
-
return false;
|
558 |
-
|
559 |
-
$this->email = $user->user_email;
|
560 |
-
$this->subject = sprintf(__("Credit Card on File Expiring Soon at %s", "pmpro"), get_option("blogname"));
|
561 |
-
$this->template = "credit_card_expiring";
|
562 |
-
|
563 |
-
$this->data = array(
|
564 |
-
"subject" => $this->subject,
|
565 |
-
"name" => $user->display_name,
|
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,
|
573 |
-
"billing_name" => $invoice->billing->name,
|
574 |
-
"billing_street" => $invoice->billing->street,
|
575 |
-
"billing_city" => $invoice->billing->city,
|
576 |
-
"billing_state" => $invoice->billing->state,
|
577 |
-
"billing_zip" => $invoice->billing->zip,
|
578 |
-
"billing_country" => $invoice->billing->country,
|
579 |
-
"billing_phone" => $invoice->billing->phone,
|
580 |
-
"cardtype" => $invoice->cardtype,
|
581 |
-
"accountnumber" => hideCardNumber($invoice->accountnumber),
|
582 |
-
"expirationmonth" => $invoice->expirationmonth,
|
583 |
-
"expirationyear" => $invoice->expirationyear,
|
584 |
-
"login_link" => wp_login_url(pmpro_url("billing"))
|
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 +507,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 +524,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 +567,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 +577,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 +595,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 +620,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,11 +640,11 @@
|
|
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"] = __("
|
765 |
|
766 |
if(!empty($user->membership_level->enddate))
|
767 |
{
|
@@ -799,7 +682,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 |
+
}
|
453 |
|
454 |
function sendBillingFailureAdminEmail($email, $invoice = NULL)
|
455 |
{
|
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 |
}
|
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,
|
513 |
+
"invoice_id" => $invoice->payment_transaction_id,
|
514 |
"invoice_total" => $pmpro_currency_symbol . number_format($invoice->total, 2),
|
515 |
"invoice_date" => date(get_option('date_format'), $invoice->timestamp),
|
516 |
"billing_name" => $invoice->billing->name,
|
524 |
"accountnumber" => hideCardNumber($invoice->accountnumber),
|
525 |
"expirationmonth" => $invoice->expirationmonth,
|
526 |
"expirationyear" => $invoice->expirationyear,
|
527 |
+
"login_link" => pmpro_url("account"),
|
528 |
+
"invoice_link" => pmpro_url("invoice", "?invoice=" . $invoice->code)
|
529 |
+
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
530 |
|
531 |
if($invoice->getDiscountCode())
|
532 |
$this->data["discount_code"] = "<p>" . __("Discount Code", "pmpro") . ": " . $invoice->discount_code . "</p>\n";
|
567 |
"name" => $user->display_name,
|
568 |
"user_login" => $user->user_login,
|
569 |
"sitename" => get_option("blogname"),
|
|
|
570 |
"membership_level_name" => $user->membership_level->name,
|
571 |
+
"siteemail" => get_bloginfo("admin_email"),
|
572 |
"login_link" => wp_login_url(),
|
573 |
"display_name" => $user->display_name,
|
574 |
"user_email" => $user->user_email,
|
577 |
"cycle_period" => $user->membership_level->cycle_period,
|
578 |
"trial_amount" => $pmpro_currency_symbol . $user->membership_level->trial_amount,
|
579 |
"trial_limit" => $user->membership_level->trial_limit,
|
580 |
+
"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))
|
581 |
);
|
582 |
|
583 |
return $this->sendEmail();
|
595 |
$this->email = $user->user_email;
|
596 |
$this->subject = sprintf(__("Your membership at %s has ended", "pmpro"), get_option("blogname"));
|
597 |
$this->template = "membership_expired";
|
598 |
+
$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"));
|
599 |
|
600 |
return $this->sendEmail();
|
601 |
}
|
620 |
$this->email = $user->user_email;
|
621 |
$this->subject = sprintf(__("Your membership at %s will end soon", "pmpro"), get_option("blogname"));
|
622 |
$this->template = "membership_expiring";
|
623 |
+
$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);
|
624 |
|
625 |
return $this->sendEmail();
|
626 |
}
|
640 |
$this->email = $user->user_email;
|
641 |
$this->subject = sprintf(__("Your membership at %s has been changed", "pmpro"), get_option("blogname"));
|
642 |
$this->template = "admin_change";
|
643 |
+
$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());
|
644 |
if($user->membership_level->ID)
|
645 |
+
$this->data["membership_change"] = sprintf(__("The new level is %s. This membership is free", "pmpro"), $user->membership_level->name);
|
646 |
else
|
647 |
+
$this->data["membership_change"] = __("membership has been cancelled", "pmpro");
|
648 |
|
649 |
if(!empty($user->membership_level->enddate))
|
650 |
{
|
682 |
if($user->membership_level->ID)
|
683 |
$this->data["membership_change"] = sprintf(__("The new level is %s. This membership is free", "pmpro"), $user->membership_level->name);
|
684 |
else
|
685 |
+
$this->data["membership_change"] = __("membership has been cancelled", "pmpro");
|
686 |
|
687 |
if(!empty($user->membership_level->enddate))
|
688 |
{
|
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))
|
@@ -88,16 +85,7 @@
|
|
88 |
}
|
89 |
|
90 |
$nvpStr .= "&CANCELURL=" . urlencode(pmpro_url("levels"));
|
91 |
-
|
92 |
-
$account_optional = apply_filters('pmpro_paypal_account_optional', true);
|
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 |
|
103 |
if("SUCCESS" == strtoupper($this->httpParsedResponseAr["ACK"]) || "SUCCESSWITHWARNING" == strtoupper($this->httpParsedResponseAr["ACK"])) {
|
@@ -178,13 +166,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 +178,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 +214,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 +246,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 +272,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 +354,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))
|
85 |
}
|
86 |
|
87 |
$nvpStr .= "&CANCELURL=" . urlencode(pmpro_url("levels"));
|
88 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
$this->httpParsedResponseAr = $this->PPHttpPost('SetExpressCheckout', $nvpStr);
|
90 |
|
91 |
if("SUCCESS" == strtoupper($this->httpParsedResponseAr["ACK"]) || "SUCCESSWITHWARNING" == strtoupper($this->httpParsedResponseAr["ACK"])) {
|
166 |
$nvpStr = "";
|
167 |
if(!empty($order->Token))
|
168 |
$nvpStr .= "&TOKEN=" . $order->Token;
|
169 |
+
$nvpStr .="&AMT=" . $amount . "&CURRENCYCODE=" . $pmpro_currency . "&PROFILESTARTDATE=" . $order->ProfileStartDate;
|
|
|
170 |
if(!empty($amount_tax))
|
171 |
$nvpStr .= "&TAXAMT=" . $amount_tax;
|
172 |
+
$nvpStr .= "&BILLINGPERIOD=" . $order->BillingPeriod . "&BILLINGFREQUENCY=" . $order->BillingFrequency . "&AUTOBILLAMT=AddToNextBilling";
|
|
|
|
|
173 |
$nvpStr .= "&DESC=" . urlencode(substr($order->membership_level->name . " at " . get_bloginfo("name"), 0, 127));
|
174 |
$nvpStr .= "&NOTIFYURL=" . urlencode(admin_url('admin-ajax.php') . "?action=ipnhandler");
|
175 |
$nvpStr .= "&NOSHIPPING=1";
|
178 |
$order->nvpStr = $nvpStr;
|
179 |
|
180 |
$this->httpParsedResponseAr = $this->PPHttpPost('DoExpressCheckoutPayment', $nvpStr);
|
181 |
+
|
182 |
if("SUCCESS" == strtoupper($this->httpParsedResponseAr["ACK"]) || "SUCCESSWITHWARNING" == strtoupper($this->httpParsedResponseAr["ACK"])) {
|
183 |
$order->payment_transaction_id = urldecode($this->httpParsedResponseAr['TRANSACTIONID']);
|
184 |
$order->status = "success";
|
214 |
|
215 |
//taxes on the amount
|
216 |
$amount = $order->PaymentAmount;
|
217 |
+
$amount_tax = $order->getTaxForPrice($amount);
|
218 |
+
$order->subtotal = $amount;
|
219 |
+
$amount = round((float)$amount + (float)$amount_tax, 2);
|
220 |
|
221 |
//paypal profile stuff
|
222 |
$nvpStr = "";
|
246 |
$nvpStr .= "&TRIALTOTALBILLINGCYCLES=" . $order->TrialBillingCycles;
|
247 |
|
248 |
$this->nvpStr = $nvpStr;
|
249 |
+
|
|
|
|
|
|
|
250 |
$this->httpParsedResponseAr = $this->PPHttpPost('CreateRecurringPaymentsProfile', $nvpStr);
|
251 |
|
252 |
if("SUCCESS" == strtoupper($this->httpParsedResponseAr["ACK"]) || "SUCCESSWITHWARNING" == strtoupper($this->httpParsedResponseAr["ACK"])) {
|
272 |
{
|
273 |
//paypal profile stuff
|
274 |
$nvpStr = "";
|
275 |
+
$nvpStr .= "&PROFILEID=" . $order->subscription_transaction_id . "&ACTION=Cancel&NOTE=User requested cancel.";
|
276 |
|
277 |
$this->httpParsedResponseAr = $this->PPHttpPost('ManageRecurringPaymentsProfileStatus', $nvpStr);
|
278 |
+
if("SUCCESS" == strtoupper($this->httpParsedResponseAr["ACK"]) || "SUCCESSWITHWARNING" == strtoupper($this->httpParsedResponseAr["ACK"]) || $this->httpParsedResponseAr['L_ERRORCODE0'] == "11556") {
|
|
|
|
|
279 |
$order->updateStatus("cancelled");
|
280 |
+
return true;
|
281 |
+
//exit('CreateRecurringPaymentsProfile Completed Successfully: '.print_r($this->httpParsedResponseAr, true));
|
282 |
+
} else {
|
|
|
283 |
$order->status = "error";
|
284 |
$order->errorcode = $this->httpParsedResponseAr['L_ERRORCODE0'];
|
285 |
+
$order->error = urldecode($this->httpParsedResponseAr['L_LONGMESSAGE0']);
|
286 |
$order->shorterror = urldecode($this->httpParsedResponseAr['L_SHORTMESSAGE0']);
|
287 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
288 |
return false;
|
289 |
+
//exit('CreateRecurringPaymentsProfile failed: ' . print_r($httpParsedResponseAr, true));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
290 |
}
|
291 |
+
}
|
292 |
|
293 |
/**
|
294 |
* PAYPAL Function
|
354 |
|
355 |
return $httpParsedResponseAr;
|
356 |
}
|
357 |
+
}
|
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,11 @@
|
|
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 +198,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 +252,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 +280,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 |
//redirect to paypal
|
189 |
$paypal_url .= $nvpStr;
|
190 |
|
191 |
+
//die($paypal_url);
|
192 |
|
193 |
wp_redirect($paypal_url);
|
194 |
exit;
|
198 |
{
|
199 |
//paypal profile stuff
|
200 |
$nvpStr = "";
|
201 |
+
$nvpStr .= "&PROFILEID=" . $order->subscription_transaction_id . "&ACTION=Cancel&NOTE=User requested cancel.";
|
202 |
|
203 |
$this->httpParsedResponseAr = $this->PPHttpPost('ManageRecurringPaymentsProfileStatus', $nvpStr);
|
204 |
+
if("SUCCESS" == strtoupper($this->httpParsedResponseAr["ACK"]) || "SUCCESSWITHWARNING" == strtoupper($this->httpParsedResponseAr["ACK"]) || $this->httpParsedResponseAr['L_ERRORCODE0'] == "11556") {
|
|
|
|
|
205 |
$order->updateStatus("cancelled");
|
206 |
+
return true;
|
207 |
+
//exit('CreateRecurringPaymentsProfile Completed Successfully: '.print_r($this->httpParsedResponseAr, true));
|
208 |
+
} else {
|
|
|
209 |
$order->status = "error";
|
210 |
$order->errorcode = $this->httpParsedResponseAr['L_ERRORCODE0'];
|
211 |
+
$order->error = urldecode($this->httpParsedResponseAr['L_LONGMESSAGE0']);
|
212 |
$order->shorterror = urldecode($this->httpParsedResponseAr['L_SHORTMESSAGE0']);
|
213 |
|
214 |
+
return false;
|
215 |
+
//exit('CreateRecurringPaymentsProfile failed: ' . print_r($httpParsedResponseAr, true));
|
216 |
}
|
217 |
}
|
218 |
|
252 |
|
253 |
// NVPRequest for submitting to server
|
254 |
$nvpreq = "METHOD=$methodName_&VERSION=$version&PWD=$API_Password&USER=$API_UserName&SIGNATURE=$API_Signature$nvpStr_";
|
255 |
+
|
256 |
// setting the nvpreq as POST FIELD to curl
|
257 |
curl_setopt($ch, CURLOPT_POSTFIELDS, $nvpreq);
|
258 |
|
280 |
|
281 |
return $httpParsedResponseAr;
|
282 |
}
|
283 |
+
}
|
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; }
|
@@ -92,6 +92,5 @@ height: 10px; overflow: hidden; border-radius: 10px; -moz-border-radius: 10px; -
|
|
92 |
.pmpro_green {color: #00AA00;}
|
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; }
|
92 |
.pmpro_green {color: #00AA00;}
|
93 |
|
94 |
/* reports */
|
|
|
95 |
.pmpro_clickable {cursor: pointer;}
|
96 |
.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,174 +1,119 @@
|
|
1 |
-
/*---------------------------------------
|
2 |
-
Buttons
|
3 |
-
---------------------------------------*/
|
4 |
-
.pmpro_btn
|
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 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
.
|
109 |
-
.
|
110 |
-
|
111 |
-
.
|
112 |
-
.
|
113 |
-
|
114 |
-
.
|
115 |
-
|
116 |
-
.
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
.pmpro_thead-msg {display: block; float: right; width: auto; font-style: italic; font-weight: normal; text-align: right; white-space: nowrap; }
|
121 |
-
|
122 |
-
.pmpro_ordersummary {float: right; }
|
123 |
-
|
124 |
-
#pmpro_license { background: #FFF; padding: 5px; border: 1px solid #CCC; height: 200px; margin: 3px; color: #666; overflow: auto; }
|
125 |
-
|
126 |
-
.pmpro_sslseal {float: right; clear: none !important; margin: 0 !important; }
|
127 |
-
|
128 |
-
a.pmpro_radio {text-decoration: none; color: #000;}
|
129 |
-
|
130 |
-
/*---------------------------------------
|
131 |
-
Membership Invoice
|
132 |
-
---------------------------------------*/
|
133 |
-
.pmpro_invoice { }
|
134 |
-
|
135 |
-
|
136 |
-
/*---------------------------------------
|
137 |
-
Membership Account
|
138 |
-
---------------------------------------*/
|
139 |
-
#pmpro_account .pmpro_box {border-top: 1px solid #CCC; padding: 1em 0; margin: 1em 0; }
|
140 |
-
#pmpro_account .pmpro_box h3 {margin: 0; padding: 0; border: none; background: none; }
|
141 |
-
#pmpro_account .pmpro_box p {margin: .5em 0 0 0; padding: 0; }
|
142 |
-
#pmpro_account .pmpro_box ul {margin-bottom: 0; }
|
143 |
-
|
144 |
-
#pmpro_account #pmpro_account-membership { }
|
145 |
-
#pmpro_account #pmpro_account-profile { }
|
146 |
-
#pmpro_account #pmpro_account-billing { }
|
147 |
-
#pmpro_account #pmpro_account-invoices { }
|
148 |
-
#pmpro_account #pmpro_account-links { }
|
149 |
-
|
150 |
-
|
151 |
-
.pmpro_hidden {display: none;}
|
152 |
-
li.pmpro_more {list-style-type: none; text-align: center; margin-left: -20px; padding-left: 0;}
|
153 |
-
|
154 |
-
/*---------------------------------------
|
155 |
-
Membership Levels
|
156 |
-
---------------------------------------*/
|
157 |
-
#pmpro_levels_table {background: #FFF; }
|
158 |
-
#pmpro_levels_table .pmpro_btn {display: block; }
|
159 |
-
|
160 |
-
/*---------------------------------------
|
161 |
-
Misc
|
162 |
-
---------------------------------------*/
|
163 |
-
.pmpro_a-right {float: right; width: auto; text-align: right; text-decoration: underline; font-size: 11px; }
|
164 |
-
.pmpro_a-print {float: right; width: auto; text-decoration: none; color: #345395; background: url(../images/printer.gif) top left no-repeat; padding: 0px 0px 2px 20px; font-size: 11px; line-height: 16px; cursor: pointer; }
|
165 |
-
|
166 |
-
.pmpro_red {color: #CC0000; }
|
167 |
-
.pmpro_grey {color: #999; }
|
168 |
-
|
169 |
-
.top1em {margin-top: 1em;}
|
170 |
-
.bot1em {margin-bottom: 1em;}
|
171 |
-
.bot0em {margin-bottom: 0em;}
|
172 |
-
.clear {clear: both; }
|
173 |
-
|
174 |
.pmpro_small {font-size: .8em;}
|
1 |
+
/*---------------------------------------
|
2 |
+
Buttons
|
3 |
+
---------------------------------------*/
|
4 |
+
.pmpro_btn {display: inline-block; margin: 0; cursor: pointer; }
|
5 |
+
.pmpro_btn:hover { }
|
6 |
+
|
7 |
+
/*---------------------------------------
|
8 |
+
Forms
|
9 |
+
---------------------------------------*/
|
10 |
+
form.pmpro_form div {clear: left; margin: .5em 0 1em 0; }
|
11 |
+
form.pmpro_form label {float: left; margin: 3px 10px 0 0; width: 120px; font-weight: bold; text-align: right; }
|
12 |
+
/*form.pmpro_form div div {width: 380px; margin-left: 130px; clear: none;}*/
|
13 |
+
form.pmpro_form .likelabel {font-weight: bold; }
|
14 |
+
form.pmpro_form .input, form.pmpro_form textarea, .input, form.pmpro_form select {padding: 3px; border: 1px solid #AAA; margin: 0 3px 0 0; }
|
15 |
+
form.pmpro_form textarea {font-family: Arial, Helvetica, sans-serif; font-size: 12px; }
|
16 |
+
form.pmpro_form select {margin: 2px 0 0 0 ; font-size: 12px;}
|
17 |
+
form.pmpro_form .lite {color: #666; }
|
18 |
+
form.pmpro_form .leftmar {margin: 8px 0 0 130px; }
|
19 |
+
|
20 |
+
form.pmpro_form .pmpro_captcha {margin: 0 0 0 130px !important; }
|
21 |
+
form.pmpro_form .pmpro_captcha div {clear: none; margin: 0; }
|
22 |
+
form.pmpro_form .pmpro_submit {margin-left: 140px; }
|
23 |
+
form.pmpro_form .pmpro_submit span {float: left; }
|
24 |
+
form.pmpro_form #pmpro_processing_message {margin: 5px 0 0 10px; font-style: italic; color: #999; }
|
25 |
+
|
26 |
+
/*--------------------------------------------------
|
27 |
+
Messages - Success, Error, Alert
|
28 |
+
----------------------------------------------------*/
|
29 |
+
.pmpro_message, .pmpro_content_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; }
|
30 |
+
|
31 |
+
.pmpro_success {background-color: #CFEECA; background-image: url(../images/icon_success.gif); color: #208A1B; }
|
32 |
+
.pmpro_error {background-color: #F9D6CB; background-image: url(../images/icon_error.gif); color: #E36154; }
|
33 |
+
.pmpro_alert, .pmpro_content_message {background-color: #FFF6CC; background-image: url(../images/icon_alert.gif); color: #CF8516; }
|
34 |
+
.pmpro_content_message {background-position: 5px 10px; }
|
35 |
+
|
36 |
+
.pmpro_message a {color: #345395; }
|
37 |
+
.pmpro_success a {color: #208A1B; }
|
38 |
+
.pmpro_error a {color: #E36154; }
|
39 |
+
.pmpro_alert a {color: #CF8516; }
|
40 |
+
|
41 |
+
input.pmpro_error {background-image: none;}
|
42 |
+
|
43 |
+
/*---------------------------------------
|
44 |
+
Membership Checkout
|
45 |
+
---------------------------------------*/
|
46 |
+
.pmpro_checkout thead th {font-weight: bold; color: #444; padding: 10px; }
|
47 |
+
.pmpro_checkout tbody td {padding: 10px; }
|
48 |
+
.pmpro_checkout tr.odd td {background: rgba(125,125,125,.1); }
|
49 |
+
.pmpro_checkout tr.selected td {background: #FFC; }
|
50 |
+
.pmpro_checkout tr.active td {background: #FFC; }
|
51 |
+
.pmpro_checkout .name {font-weight: bold; }
|
52 |
+
.pmpro_checkout ul {margin: 5px 0 0 20px; padding: 0; font-size: .8em; color: #444; }
|
53 |
+
|
54 |
+
.pmpro_checkout tfoot td {padding: 10px; color: #444; }
|
55 |
+
.pmpro_checkout .topfoot td {border-top: 2px solid #CCC;}
|
56 |
+
.pmpro_checkout .total td {border-top: 1px solid #CCC; font-size: 1.2em; font-weight: bold; padding-bottom: 30px;}
|
57 |
+
.pmpro_checkout tfoot .entercode td {background: #EEE; }
|
58 |
+
|
59 |
+
.pmpro_checkout td.rtbdr {border-right: 1px solid #CCC; }
|
60 |
+
|
61 |
+
.pmpro_checkout select {font-size: 11px; }
|
62 |
+
|
63 |
+
.pmpro_thead-msg {display: block; float: right; width: auto; font-style: italic; font-weight: normal; text-align: right; }
|
64 |
+
|
65 |
+
.pmpro_ordersummary {float: right; }
|
66 |
+
|
67 |
+
#pmpro_license { background: #FFF; padding: 5px; border: 1px solid #CCC; height: 200px; margin: 3px; color: #666; overflow: auto; }
|
68 |
+
|
69 |
+
.pmpro_sslseal {float: right; clear: none !important; margin: 0 !important; }
|
70 |
+
|
71 |
+
a.pmpro_radio {text-decoration: none; color: #000;}
|
72 |
+
|
73 |
+
/* button styles from member lite */
|
74 |
+
.pmpro_btn, .pmpro_btn:link, #pmpro_levels_table tbody a, #pmpro_levels_table tbody a:link, .pmpro_btn-submit, .pmpro_btn-submit-checkout, .pmpro_yeslink, .pmpro_nolink, .pmpro_yeslink:link, .pmpro_nolink:link, .pmpro_content_message a {display: inline-block; margin: 0; background-position: top left; background-repeat: repeat-x; cursor: pointer; border-radius: 4px; -moz-border-radius: 4px; padding: 5px 10px; text-decoration: none; text-shadow: 1px 1px 3px #000; border: none; font-family: Arial, Helvetica, sans-serif; }
|
75 |
+
.pmpro_btn:hover {background-position: bottom left; }
|
76 |
+
.pmpro_btn-grey, .pmpro_btn-grey:link, .pmpro_nolink, .pmpro_nolink:link {background: #EEE url(../images/bg_grad-grey.gif) 0px -5px repeat-x; border: 1px solid #CCC; text-shadow: none; }
|
77 |
+
.pmpro_btn-inactive {color: #AAA; text-shadow: none; border: 1px solid #CCC; cursor: not-allowed; }
|
78 |
+
.pmpro_btn {font-size: 14px; }
|
79 |
+
.pmpro_btn-primary, .pmpro_btn-primary:link, #pmpro_levels_table tbody a, #pmpro_levels_table tbody a:link, .pmpro_btn-submit, .pmpro_btn-submit-checkout, .pmpro_yeslink, .pmpro_yeslink:link {background-color: #666; background-image: url(../images/bg_grad-chrome.gif); color: #FFF; }
|
80 |
+
.pmpro_btn-primary:hover, #pmpro_levels_table tbody a:hover, .pmpro_btn-submit:hover, .pmpro_btn-submit-checkout:hover, .pmpro_yeslink:hover {background: #444; color: #FFF; }
|
81 |
+
.pmpro_btn-inactive, .pmpro_btn-inactive:hover {background: #EEE url(../images/bg_grad-grey.gif) 0px -5px repeat-x; }
|
82 |
+
|
83 |
+
.pmpro_content_message a, .pmpro_content_message a:link {text-shadow: none; background: #EEE url(../images/bg_grad-grey.gif) 0px -5px repeat-x; border: 1px solid #CCC; color: #666; text-decoration: none; margin: 0 0 0 5px; }
|
84 |
+
.pmpro_content_message a:hover {background: #FFF; }
|
85 |
+
|
86 |
+
/*---------------------------------------
|
87 |
+
Membership Invoice
|
88 |
+
---------------------------------------*/
|
89 |
+
.pmpro_invoice { }
|
90 |
+
|
91 |
+
|
92 |
+
/*---------------------------------------
|
93 |
+
Membership Account
|
94 |
+
---------------------------------------*/
|
95 |
+
.pmpro_left {float: left; width: 49%; }
|
96 |
+
.pmpro_right {float: right; width: 49%; }
|
97 |
+
|
98 |
+
.pmpro_box {border: 1px solid #CCC; padding: 1em; margin: 0 0 1em 0; }
|
99 |
+
.pmpro_box h3 {border:none; background: none; border-bottom: 1px solid #CCC; padding: 0 0 .5em 0; margin: 0 0 .5em 0; }
|
100 |
+
|
101 |
+
.pmpro_hidden {display: none;}
|
102 |
+
li.pmpro_more {list-style-type: none; text-align: center; margin-left: -20px; padding-left: 0;}
|
103 |
+
|
104 |
+
|
105 |
+
/*---------------------------------------
|
106 |
+
Misc
|
107 |
+
---------------------------------------*/
|
108 |
+
.pmpro_a-right {float: right; width: auto; text-align: right; text-decoration: underline; font-size: 11px; }
|
109 |
+
.pmpro_a-print {float: right; width: auto; text-decoration: none; color: #345395; background: url(../images/printer.gif) top left no-repeat; padding: 0px 0px 2px 20px; font-size: 11px; line-height: 16px; cursor: pointer; }
|
110 |
+
|
111 |
+
.pmpro_red {color: #CC0000; }
|
112 |
+
.pmpro_grey {color: #999; }
|
113 |
+
|
114 |
+
.top1em {margin-top: 1em;}
|
115 |
+
.bot1em {margin-bottom: 1em;}
|
116 |
+
.bot0em {margin-bottom: 0em;}
|
117 |
+
.clear {clear: both; }
|
118 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
.pmpro_small {font-size: .8em;}
|
email/admin_change.html
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<p>An administrator at !!sitename!! has changed your membership level.</p>
|
2 |
|
3 |
-
<p
|
4 |
|
5 |
<p>If you did not request this membership change and would like more information please contact us at !!siteemail!!</p>
|
6 |
|
1 |
<p>An administrator at !!sitename!! has changed your membership level.</p>
|
2 |
|
3 |
+
<p>Your !!membership_change!!.</p>
|
4 |
|
5 |
<p>If you did not request this membership change and would like more information please contact us at !!siteemail!!</p>
|
6 |
|
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
DELETED
@@ -1,13 +0,0 @@
|
|
1 |
-
<p>The payment method used for your membership at !!sitename!! will expire soon. <strong>Please click the following link to log in and update your billing information to avoid account suspension. !!login_link!!</strong></p>
|
2 |
-
|
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_address!!
|
8 |
-
</p>
|
9 |
-
|
10 |
-
<p>
|
11 |
-
!!cardtype!!: !!accountnumber!!<br />
|
12 |
-
Expires: !!expirationmonth!!/!!expirationyear!!
|
13 |
-
</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
@@ -11,9 +11,9 @@ function pmpro_has_membership_access($post_id = NULL, $user_id = NULL, $return_m
|
|
11 |
if(!$user_id)
|
12 |
$user_id = $current_user->ID;
|
13 |
|
14 |
-
//no post, return
|
15 |
if(!$post_id)
|
16 |
-
return
|
17 |
|
18 |
//if no post or current_user object, set them up
|
19 |
if(!empty($post->ID) && $post_id == $post->ID)
|
@@ -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 |
-
//get categories that are filtered by level, but not my level
|
163 |
-
$my_cats = array();
|
164 |
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
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;
|
@@ -257,10 +222,10 @@ function pmpro_membership_content_filter($content, $skipcheck = false)
|
|
257 |
$content = "";
|
258 |
}
|
259 |
|
260 |
-
if(
|
261 |
$post_membership_levels_ids = array();
|
262 |
|
263 |
-
if(
|
264 |
$post_membership_levels_names = array();
|
265 |
|
266 |
$pmpro_content_message_pre = '<div class="pmpro_content_message">';
|
@@ -402,4 +367,4 @@ function pmpro_hide_pages_redirect()
|
|
402 |
}
|
403 |
}
|
404 |
}
|
405 |
-
add_action('wp', 'pmpro_hide_pages_redirect');
|
11 |
if(!$user_id)
|
12 |
$user_id = $current_user->ID;
|
13 |
|
14 |
+
//no post, return false
|
15 |
if(!$post_id)
|
16 |
+
return false;
|
17 |
|
18 |
//if no post or current_user object, set them up
|
19 |
if(!empty($post->ID) && $post_id == $post->ID)
|
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;
|
222 |
$content = "";
|
223 |
}
|
224 |
|
225 |
+
if(!$post_membership_levels_ids)
|
226 |
$post_membership_levels_ids = array();
|
227 |
|
228 |
+
if(!$post_membership_levels_names)
|
229 |
$post_membership_levels_names = array();
|
230 |
|
231 |
$pmpro_content_message_pre = '<div class="pmpro_content_message">';
|
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,1605 @@
|
|
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 |
-
|
582 |
-
|
583 |
-
|
584 |
-
|
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 |
-
|
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 |
-
|
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 |
-
if($
|
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 |
-
|
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 |
-
|
1110 |
-
|
1111 |
-
|
1112 |
-
|
1113 |
-
|
1114 |
-
|
1115 |
-
|
1116 |
-
|
1117 |
-
|
1118 |
-
|
1119 |
-
|
1120 |
-
//
|
1121 |
-
|
1122 |
-
|
1123 |
-
|
1124 |
-
|
1125 |
-
|
1126 |
-
|
1127 |
-
|
1128 |
-
|
1129 |
-
|
1130 |
-
|
1131 |
-
|
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 |
-
|
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 |
-
function
|
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 |
-
|
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 |
-
|
1592 |
-
|
1593 |
-
|
1594 |
-
|
1595 |
-
|
1596 |
-
|
1597 |
-
|
1598 |
-
|
1599 |
-
|
1600 |
-
|
1601 |
-
|
1602 |
-
|
1603 |
-
|
1604 |
-
|
1605 |
-
|
1606 |
-
function pmpro_formatAddress($name, $address1, $address2, $city, $state, $zip, $country, $phone, $nl2br = true)
|
1607 |
-
{
|
1608 |
-
$address = "";
|
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 $_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 = $_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 |
+
$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)
|
565 |
+
VALUES('" . $level['user_id'] . "',
|
566 |
+
'" . $level['membership_id'] . "',
|
567 |
+
'" . intval($level['code_id']) . "',
|
568 |
+
'" . $level['initial_payment'] . "',
|
569 |
+
'" . $level['billing_amount'] . "',
|
570 |
+
'" . $level['cycle_number'] . "',
|
571 |
+
'" . $level['cycle_period'] . "',
|
572 |
+
'" . $level['billing_limit'] . "',
|
573 |
+
'" . $level['trial_amount'] . "',
|
574 |
+
'" . $level['trial_limit'] . "',
|
575 |
+
" . $level['startdate'] . ",
|
576 |
+
" . $level['enddate'] . ")";
|
577 |
+
|
578 |
+
if(!$wpdb->query($sql))
|
579 |
+
{
|
580 |
+
$pmpro_error = __("Error interacting with database", "pmpro") . ": ".(mysql_errno()?mysql_error():'unavailable');
|
581 |
+
return false;
|
582 |
+
}
|
583 |
+
}
|
584 |
+
else
|
585 |
+
{
|
586 |
+
$sql = "INSERT INTO $wpdb->pmpro_memberships_users (`membership_id`,`user_id`) VALUES ('" . $level . "','" . $user_id . "')";
|
587 |
+
if(!$wpdb->query($sql))
|
588 |
+
{
|
589 |
+
$pmpro_error = __("Error interacting with database", "pmpro") . ": ".(mysql_errno()?mysql_error():'unavailable');
|
590 |
+
return false;
|
591 |
+
}
|
592 |
+
}
|
593 |
+
}
|
594 |
+
|
595 |
+
//get level id
|
596 |
+
if(is_array($level))
|
597 |
+
$level_id = $level['membership_id']; //custom level
|
598 |
+
else
|
599 |
+
$level_id = $level; //just id
|
600 |
+
|
601 |
+
//update user data and call action
|
602 |
+
pmpro_set_current_user();
|
603 |
+
do_action("pmpro_after_change_membership_level", $level_id, $user_id); //$level is the $level_id here
|
604 |
+
return true;
|
605 |
+
}
|
606 |
+
|
607 |
+
/* pmpro_toggleMembershipCategory() creates or deletes a linking entry between the membership level and post category tables.
|
608 |
+
*
|
609 |
+
* $level may either be the ID or name of the desired membership_level.
|
610 |
+
* $category must be a valid post category ID.
|
611 |
+
*
|
612 |
+
* Return values:
|
613 |
+
* Success returns boolean true.
|
614 |
+
* Failure returns a string containing the error message.
|
615 |
+
*/
|
616 |
+
function pmpro_toggleMembershipCategory( $level, $category, $value )
|
617 |
+
{
|
618 |
+
global $wpdb;
|
619 |
+
$category = intval($category);
|
620 |
+
|
621 |
+
if ( ($level = intval($level)) <= 0 )
|
622 |
+
{
|
623 |
+
$safe = addslashes($level);
|
624 |
+
if ( ($level = intval($wpdb->get_var("SELECT id FROM {$wpdb->pmpro_membership_levels} WHERE name = '$safe' LIMIT 1"))) <= 0 )
|
625 |
+
{
|
626 |
+
return __("Membership level not found.", "pmpro");
|
627 |
+
}
|
628 |
+
}
|
629 |
+
|
630 |
+
if ( $value )
|
631 |
+
{
|
632 |
+
$sql = "REPLACE INTO {$wpdb->pmpro_memberships_categories} (`membership_id`,`category_id`) VALUES ('$level','$category')";
|
633 |
+
$wpdb->query($sql);
|
634 |
+
if(mysql_errno()) return mysql_error();
|
635 |
+
}
|
636 |
+
else
|
637 |
+
{
|
638 |
+
$sql = "DELETE FROM {$wpdb->pmpro_memberships_categories} WHERE `membership_id` = '$level' AND `category_id` = '$category' LIMIT 1";
|
639 |
+
$wpdb->query($sql);
|
640 |
+
if(mysql_errno()) return mysql_error();
|
641 |
+
}
|
642 |
+
|
643 |
+
return true;
|
644 |
+
}
|
645 |
+
|
646 |
+
/* pmpro_updateMembershipCategories() ensures that all those and only those categories given
|
647 |
+
* are associated with the given membership level.
|
648 |
+
*
|
649 |
+
* $level is a valid membership level ID or name
|
650 |
+
* $categories is an array of post category IDs
|
651 |
+
*
|
652 |
+
* Return values:
|
653 |
+
* Success returns boolean true.
|
654 |
+
* Failure returns a string containing the error message.
|
655 |
+
*/
|
656 |
+
function pmpro_updateMembershipCategories($level, $categories)
|
657 |
+
{
|
658 |
+
global $wpdb;
|
659 |
+
|
660 |
+
if(!is_numeric($level))
|
661 |
+
{
|
662 |
+
$level = $wpdb->get_var("SELECT id FROM $wpdb->pmpro_membership_levels WHERE name = '" . $wpdb->escape($level) . "' LIMIT 1");
|
663 |
+
if(empty($level))
|
664 |
+
{
|
665 |
+
return __("Membership level not found.", "pmpro");
|
666 |
+
}
|
667 |
+
}
|
668 |
+
|
669 |
+
// remove all existing links...
|
670 |
+
$sqlQuery = "DELETE FROM $wpdb->pmpro_memberships_categories WHERE `membership_id` = '" . $wpdb->escape($level) . "'";
|
671 |
+
$wpdb->query($sqlQuery);
|
672 |
+
if(mysql_errno()) return mysql_error();
|
673 |
+
|
674 |
+
// add the given links [back?] in...
|
675 |
+
foreach($categories as $cat)
|
676 |
+
{
|
677 |
+
if(is_string($r = pmpro_toggleMembershipCategory( $level, $cat, true)))
|
678 |
+
{
|
679 |
+
//uh oh, error
|
680 |
+
return $r;
|
681 |
+
}
|
682 |
+
}
|
683 |
+
|
684 |
+
//all good
|
685 |
+
return true;
|
686 |
+
}
|
687 |
+
|
688 |
+
/* pmpro_getMembershipCategories() returns the categories for a given level
|
689 |
+
*
|
690 |
+
* $level_id is a valid membership level ID
|
691 |
+
*
|
692 |
+
* Return values:
|
693 |
+
* Success returns boolean true.
|
694 |
+
* Failure returns boolean false.
|
695 |
+
*/
|
696 |
+
function pmpro_getMembershipCategories($level_id)
|
697 |
+
{
|
698 |
+
global $wpdb;
|
699 |
+
$categories = $wpdb->get_results("SELECT c.category_id
|
700 |
+
FROM {$wpdb->pmpro_memberships_categories} AS c
|
701 |
+
WHERE c.membership_id = '" . $level_id . "'", ARRAY_N);
|
702 |
+
|
703 |
+
$returns = array();
|
704 |
+
if(is_array($categories))
|
705 |
+
{
|
706 |
+
foreach($categories as $cat)
|
707 |
+
{
|
708 |
+
$returns[] = $cat;
|
709 |
+
}
|
710 |
+
}
|
711 |
+
return $returns;
|
712 |
+
}
|
713 |
+
|
714 |
+
function pmpro_isAdmin($user_id = NULL)
|
715 |
+
{
|
716 |
+
global $current_user, $wpdb;
|
717 |
+
if(!$user_id)
|
718 |
+
$user_id = $current_user->ID;
|
719 |
+
|
720 |
+
if(!$user_id)
|
721 |
+
return false;
|
722 |
+
|
723 |
+
$admincap = user_can($user_id, "manage_options");
|
724 |
+
if($admincap)
|
725 |
+
return true;
|
726 |
+
else
|
727 |
+
return false;
|
728 |
+
}
|
729 |
+
|
730 |
+
function pmpro_replaceUserMeta($user_id, $meta_keys, $meta_values, $prev_values = NULL)
|
731 |
+
{
|
732 |
+
//expects all arrays for last 3 params or all strings
|
733 |
+
if(!is_array($meta_keys))
|
734 |
+
{
|
735 |
+
$meta_keys = array($meta_keys);
|
736 |
+
$meta_values = array($meta_values);
|
737 |
+
$prev_values = array($prev_values);
|
738 |
+
}
|
739 |
+
|
740 |
+
for($i = 0; $i < count($meta_values); $i++)
|
741 |
+
{
|
742 |
+
if($prev_values[$i])
|
743 |
+
{
|
744 |
+
update_user_meta($user_id, $meta_keys[$i], $meta_values[$i], $prev_values[$i]);
|
745 |
+
}
|
746 |
+
else
|
747 |
+
{
|
748 |
+
$old_value = get_user_meta($user_id, $meta_keys[$i], true);
|
749 |
+
if($old_value)
|
750 |
+
{
|
751 |
+
update_user_meta($user_id, $meta_keys[$i], $meta_values[$i], $old_value);
|
752 |
+
}
|
753 |
+
else
|
754 |
+
{
|
755 |
+
update_user_meta($user_id, $meta_keys[$i], $meta_values[$i]);
|
756 |
+
}
|
757 |
+
}
|
758 |
+
}
|
759 |
+
|
760 |
+
return $i;
|
761 |
+
}
|
762 |
+
|
763 |
+
function pmpro_getMetavalues($query)
|
764 |
+
{
|
765 |
+
global $wpdb;
|
766 |
+
|
767 |
+
$results = $wpdb->get_results($query);
|
768 |
+
foreach($results as $result)
|
769 |
+
{
|
770 |
+
$r->{$result->key} = $result->value;
|
771 |
+
}
|
772 |
+
|
773 |
+
return $r;
|
774 |
+
}
|
775 |
+
|
776 |
+
//function to return the pagination string
|
777 |
+
function pmpro_getPaginationString($page = 1, $totalitems, $limit = 15, $adjacents = 1, $targetpage = "/", $pagestring = "&pn=")
|
778 |
+
{
|
779 |
+
//defaults
|
780 |
+
if(!$adjacents) $adjacents = 1;
|
781 |
+
if(!$limit) $limit = 15;
|
782 |
+
if(!$page) $page = 1;
|
783 |
+
if(!$targetpage) $targetpage = "/";
|
784 |
+
|
785 |
+
//other vars
|
786 |
+
$prev = $page - 1; //previous page is page - 1
|
787 |
+
$next = $page + 1; //next page is page + 1
|
788 |
+
$lastpage = ceil($totalitems / $limit); //lastpage is = total items / items per page, rounded up.
|
789 |
+
$lpm1 = $lastpage - 1; //last page minus 1
|
790 |
+
|
791 |
+
/*
|
792 |
+
Now we apply our rules and draw the pagination object.
|
793 |
+
We're actually saving the code to a variable in case we want to draw it more than once.
|
794 |
+
*/
|
795 |
+
$pagination = "";
|
796 |
+
if($lastpage > 1)
|
797 |
+
{
|
798 |
+
$pagination .= "<div class=\"pmpro_pagination\"";
|
799 |
+
if(!empty($margin) || !empty($padding))
|
800 |
+
{
|
801 |
+
$pagination .= " style=\"";
|
802 |
+
if($margin)
|
803 |
+
$pagination .= "margin: $margin;";
|
804 |
+
if($padding)
|
805 |
+
$pagination .= "padding: $padding;";
|
806 |
+
$pagination .= "\"";
|
807 |
+
}
|
808 |
+
$pagination .= ">";
|
809 |
+
|
810 |
+
//previous button
|
811 |
+
if ($page > 1)
|
812 |
+
$pagination .= "<a href=\"$targetpage$pagestring$prev\">« prev</a>";
|
813 |
+
else
|
814 |
+
$pagination .= "<span class=\"disabled\">« prev</span>";
|
815 |
+
|
816 |
+
//pages
|
817 |
+
if ($lastpage < 7 + ($adjacents * 2)) //not enough pages to bother breaking it up
|
818 |
+
{
|
819 |
+
for ($counter = 1; $counter <= $lastpage; $counter++)
|
820 |
+
{
|
821 |
+
if ($counter == $page)
|
822 |
+
$pagination .= "<span class=\"current\">$counter</span>";
|
823 |
+
else
|
824 |
+
$pagination .= "<a href=\"" . $targetpage . $pagestring . $counter . "\">$counter</a>";
|
825 |
+
}
|
826 |
+
}
|
827 |
+
elseif($lastpage >= 7 + ($adjacents * 2)) //enough pages to hide some
|
828 |
+
{
|
829 |
+
//close to beginning; only hide later pages
|
830 |
+
if($page < 1 + ($adjacents * 3))
|
831 |
+
{
|
832 |
+
for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
|
833 |
+
{
|
834 |
+
if ($counter == $page)
|
835 |
+
$pagination .= "<span class=\"current\">$counter</span>";
|
836 |
+
else
|
837 |
+
$pagination .= "<a href=\"" . $targetpage . $pagestring . $counter . "\">$counter</a>";
|
838 |
+
}
|
839 |
+
$pagination .= "...";
|
840 |
+
$pagination .= "<a href=\"" . $targetpage . $pagestring . $lpm1 . "\">$lpm1</a>";
|
841 |
+
$pagination .= "<a href=\"" . $targetpage . $pagestring . $lastpage . "\">$lastpage</a>";
|
842 |
+
}
|
843 |
+
//in middle; hide some front and some back
|
844 |
+
elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
|
845 |
+
{
|
846 |
+
$pagination .= "<a href=\"" . $targetpage . $pagestring . "1\">1</a>";
|
847 |
+
$pagination .= "<a href=\"" . $targetpage . $pagestring . "2\">2</a>";
|
848 |
+
$pagination .= "...";
|
849 |
+
for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
|
850 |
+
{
|
851 |
+
if ($counter == $page)
|
852 |
+
$pagination .= "<span class=\"current\">$counter</span>";
|
853 |
+
else
|
854 |
+
$pagination .= "<a href=\"" . $targetpage . $pagestring . $counter . "\">$counter</a>";
|
855 |
+
}
|
856 |
+
$pagination .= "...";
|
857 |
+
$pagination .= "<a href=\"" . $targetpage . $pagestring . $lpm1 . "\">$lpm1</a>";
|
858 |
+
$pagination .= "<a href=\"" . $targetpage . $pagestring . $lastpage . "\">$lastpage</a>";
|
859 |
+
}
|
860 |
+
//close to end; only hide early pages
|
861 |
+
else
|
862 |
+
{
|
863 |
+
$pagination .= "<a href=\"" . $targetpage . $pagestring . "1\">1</a>";
|
864 |
+
$pagination .= "<a href=\"" . $targetpage . $pagestring . "2\">2</a>";
|
865 |
+
$pagination .= "...";
|
866 |
+
for ($counter = $lastpage - (1 + ($adjacents * 3)); $counter <= $lastpage; $counter++)
|
867 |
+
{
|
868 |
+
if ($counter == $page)
|
869 |
+
$pagination .= "<span class=\"current\">$counter</span>";
|
870 |
+
else
|
871 |
+
$pagination .= "<a href=\"" . $targetpage . $pagestring . $counter . "\">$counter</a>";
|
872 |
+
}
|
873 |
+
}
|
874 |
+
}
|
875 |
+
|
876 |
+
//next button
|
877 |
+
if ($page < $counter - 1)
|
878 |
+
$pagination .= "<a href=\"" . $targetpage . $pagestring . $next . "\">next »</a>";
|
879 |
+
else
|
880 |
+
$pagination .= "<span class=\"disabled\">next »</span>";
|
881 |
+
$pagination .= "</div>\n";
|
882 |
+
}
|
883 |
+
|
884 |
+
return $pagination;
|
885 |
+
|
886 |
+
}
|
887 |
+
|
888 |
+
function pmpro_calculateInitialPaymentRevenue($s = NULL, $l = NULL)
|
889 |
+
{
|
890 |
+
global $wpdb;
|
891 |
+
|
892 |
+
//if we're limiting users by search
|
893 |
+
if($s || $l)
|
894 |
+
{
|
895 |
+
$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' ";
|
896 |
+
if($s)
|
897 |
+
$user_ids_query .= "AND (u.user_login LIKE '%$s%' OR u.user_email LIKE '%$s%' OR um.meta_value LIKE '%$s%') ";
|
898 |
+
if($l)
|
899 |
+
$user_ids_query .= "AND mu.membership_id = '$l' ";
|
900 |
+
}
|
901 |
+
|
902 |
+
//query to sum initial payments
|
903 |
+
$sqlQuery = "SELECT SUM(initial_payment) FROM $wpdb->pmpro_memberships_users WHERE `status` = 'active' ";
|
904 |
+
if(!empty($user_ids_query))
|
905 |
+
$sqlQuery .= "AND user_id IN(" . $user_ids_query . ") ";
|
906 |
+
|
907 |
+
$total = $wpdb->get_var($sqlQuery);
|
908 |
+
|
909 |
+
return (double)$total;
|
910 |
+
}
|
911 |
+
|
912 |
+
function pmpro_calculateRecurringRevenue($s, $l)
|
913 |
+
{
|
914 |
+
global $wpdb;
|
915 |
+
|
916 |
+
//if we're limiting users by search
|
917 |
+
if($s || $l)
|
918 |
+
{
|
919 |
+
$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' ";
|
920 |
+
if($s)
|
921 |
+
$user_ids_query .= "AND (u.user_login LIKE '%$s%' OR u.user_email LIKE '%$s%' OR um.meta_value LIKE '%$s%') ";
|
922 |
+
if($l)
|
923 |
+
$user_ids_query .= "AND mu.membership_id = '$l' ";
|
924 |
+
$user_ids_query .= ")";
|
925 |
+
}
|
926 |
+
else
|
927 |
+
$user_ids_query = "";
|
928 |
+
|
929 |
+
//4 queries to get annual earnings for each cycle period. currently ignoring trial periods and billing limits.
|
930 |
+
$sqlQuery = "
|
931 |
+
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
|
932 |
+
UNION
|
933 |
+
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
|
934 |
+
UNION
|
935 |
+
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
|
936 |
+
UNION
|
937 |
+
SELECT SUM(billing_amount) FROM $wpdb->pmpro_memberships_users WHERE status = 'active' AND cycle_period = 'Year' $user_ids_query
|
938 |
+
";
|
939 |
+
|
940 |
+
$annual_revenues = $wpdb->get_col($sqlQuery);
|
941 |
+
|
942 |
+
$total = 0;
|
943 |
+
foreach($annual_revenues as $r)
|
944 |
+
{
|
945 |
+
$total += $r;
|
946 |
+
}
|
947 |
+
|
948 |
+
return $total;
|
949 |
+
}
|
950 |
+
|
951 |
+
function pmpro_generateUsername($firstname = "", $lastname = "", $email = "")
|
952 |
+
{
|
953 |
+
global $wpdb;
|
954 |
+
|
955 |
+
//try first initial + last name, firstname, lastname
|
956 |
+
$firstname = preg_replace("/[^A-Za-z]/", "", $firstname);
|
957 |
+
$lastname = preg_replace("/[^A-Za-z]/", "", $lastname);
|
958 |
+
if($firstname && $lastname)
|
959 |
+
{
|
960 |
+
$username = substr($firstname, 0, 1) . $lastname;
|
961 |
+
}
|
962 |
+
elseif($firstname)
|
963 |
+
{
|
964 |
+
$username = $firstname;
|
965 |
+
}
|
966 |
+
elseif($lastname)
|
967 |
+
{
|
968 |
+
$username = $lastname;
|
969 |
+
}
|
970 |
+
|
971 |
+
//is it taken?
|
972 |
+
$taken = $wpdb->get_var("SELECT user_login FROM $wpdb->users WHERE user_login = '" . $username . "' LIMIT 1");
|
973 |
+
|
974 |
+
if(!$taken)
|
975 |
+
return $username;
|
976 |
+
|
977 |
+
//try the beginning of the email address
|
978 |
+
$emailparts = explode("@", "email");
|
979 |
+
if(is_array($emailparts))
|
980 |
+
$email = preg_replace("/[^A-Za-z]/", "", $emailparts[0]);
|
981 |
+
|
982 |
+
if($email)
|
983 |
+
{
|
984 |
+
$username = $email;
|
985 |
+
}
|
986 |
+
|
987 |
+
//is this taken? if not, add numbers until it works
|
988 |
+
$taken = true;
|
989 |
+
$count = 0;
|
990 |
+
while($taken)
|
991 |
+
{
|
992 |
+
//add a # to the end
|
993 |
+
if($count)
|
994 |
+
{
|
995 |
+
$username = preg_replace("/[0-9]/", "", $username) . $count;
|
996 |
+
}
|
997 |
+
|
998 |
+
//taken?
|
999 |
+
$taken = $wpdb->get_var("SELECT user_login FROM $wpdb->users WHERE user_login = '" . $username . "' LIMIT 1");
|
1000 |
+
|
1001 |
+
//increment the number
|
1002 |
+
$count++;
|
1003 |
+
}
|
1004 |
+
|
1005 |
+
//must have a good username now
|
1006 |
+
return $username;
|
1007 |
+
}
|
1008 |
+
|
1009 |
+
//get a new random code for discount codes
|
1010 |
+
function pmpro_getDiscountCode()
|
1011 |
+
{
|
1012 |
+
global $wpdb;
|
1013 |
+
|
1014 |
+
while(empty($code))
|
1015 |
+
{
|
1016 |
+
$scramble = md5(AUTH_KEY . time() . SECURE_AUTH_KEY);
|
1017 |
+
$code = substr($scramble, 0, 10);
|
1018 |
+
$check = $wpdb->get_var("SELECT code FROM $wpdb->pmpro_discount_codes WHERE code = '$code' LIMIT 1");
|
1019 |
+
if($check || is_numeric($code))
|
1020 |
+
$code = NULL;
|
1021 |
+
}
|
1022 |
+
|
1023 |
+
return strtoupper($code);
|
1024 |
+
}
|
1025 |
+
|
1026 |
+
//is a discount code valid
|
1027 |
+
function pmpro_checkDiscountCode($code, $level_id = NULL, $return_errors = false)
|
1028 |
+
{
|
1029 |
+
global $wpdb;
|
1030 |
+
|
1031 |
+
//no code, no code
|
1032 |
+
if(empty($code))
|
1033 |
+
{
|
1034 |
+
if($return_errors)
|
1035 |
+
return array(false, "No code was given to check.");
|
1036 |
+
else
|
1037 |
+
return false;
|
1038 |
+
}
|
1039 |
+
|
1040 |
+
//get code from db
|
1041 |
+
$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");
|
1042 |
+
|
1043 |
+
//did we find it?
|
1044 |
+
if(empty($dbcode->id))
|
1045 |
+
{
|
1046 |
+
if($return_errors)
|
1047 |
+
return array(false, __("The discount code could not be found.", "pmpro"));
|
1048 |
+
else
|
1049 |
+
return false;
|
1050 |
+
}
|
1051 |
+
|
1052 |
+
//fix the date timestamps
|
1053 |
+
$dbcode->starts = strtotime(date("m/d/Y", $dbcode->starts));
|
1054 |
+
$dbcode->expires = strtotime(date("m/d/Y", $dbcode->expires));
|
1055 |
+
|
1056 |
+
//today
|
1057 |
+
$today = strtotime(date("m/d/Y 00:00:00"));
|
1058 |
+
|
1059 |
+
//has this code started yet?
|
1060 |
+
if(!empty($dbcode->starts) && $dbcode->starts > $today)
|
1061 |
+
{
|
1062 |
+
if($return_errors)
|
1063 |
+
return array(false, sprintf(__("This discount code goes into effect on %s.", "pmpro"), date(get_option('date_format'), $dbcode->starts)));
|
1064 |
+
else
|
1065 |
+
return false;
|
1066 |
+
}
|
1067 |
+
|
1068 |
+
//has this code expired?
|
1069 |
+
if(!empty($dbcode->expires) && $dbcode->expires < $today)
|
1070 |
+
{
|
1071 |
+
if($return_errors)
|
1072 |
+
return array(false, sprintf(__("This discount code expired on %s.", "pmpro"), date(get_option('date_format'), $dbcode->expires)));
|
1073 |
+
else
|
1074 |
+
return false;
|
1075 |
+
}
|
1076 |
+
|
1077 |
+
//have we run out of uses?
|
1078 |
+
if($dbcode->uses > 0)
|
1079 |
+
{
|
1080 |
+
$used = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->pmpro_discount_codes_uses WHERE code_id = '" . $dbcode->id . "'");
|
1081 |
+
if($used >= $dbcode->uses)
|
1082 |
+
{
|
1083 |
+
if($return_errors)
|
1084 |
+
return array(false, __("This discount code is no longer valid.", "pmpro"));
|
1085 |
+
else
|
1086 |
+
return false;
|
1087 |
+
}
|
1088 |
+
}
|
1089 |
+
|
1090 |
+
//if a level was passed check if this code applies
|
1091 |
+
$pmpro_check_discount_code_levels = apply_filters("pmpro_check_discount_code_levels", true, $dbcode->id);
|
1092 |
+
if(!empty($level_id) && $pmpro_check_discount_code_levels)
|
1093 |
+
{
|
1094 |
+
$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");
|
1095 |
+
|
1096 |
+
if(empty($code_level))
|
1097 |
+
{
|
1098 |
+
if(!empty($return_errors))
|
1099 |
+
return array(false, __("This discount code does not apply to this membership level.", "pmpro"));
|
1100 |
+
else
|
1101 |
+
return false;
|
1102 |
+
}
|
1103 |
+
}
|
1104 |
+
|
1105 |
+
//guess we're all good
|
1106 |
+
if(!empty($return_errors))
|
1107 |
+
return array(true, __("This discount code is okay.", "pmpro"));
|
1108 |
+
else
|
1109 |
+
return true;
|
1110 |
+
}
|
1111 |
+
|
1112 |
+
function pmpro_no_quotes($s, $quotes = array("'", '"'))
|
1113 |
+
{
|
1114 |
+
return str_replace($quotes, "", $s);
|
1115 |
+
}
|
1116 |
+
|
1117 |
+
//from: http://www.php.net/manual/en/function.implode.php#86845
|
1118 |
+
function pmpro_implodeToEnglish($array)
|
1119 |
+
{
|
1120 |
+
// sanity check
|
1121 |
+
if (!$array || !count ($array))
|
1122 |
+
return '';
|
1123 |
+
|
1124 |
+
// get last element
|
1125 |
+
$last = array_pop ($array);
|
1126 |
+
|
1127 |
+
// if it was the only element - return it
|
1128 |
+
if (!count ($array))
|
1129 |
+
return $last;
|
1130 |
+
|
1131 |
+
return implode (', ', $array).' ' . _x('and', 'Used in generation of a list. E.g. a, b, c (AND) d.', 'pmpro') . ' '.$last;
|
1132 |
+
}
|
1133 |
+
|
1134 |
+
//from yoast wordpress seo
|
1135 |
+
function pmpro_text_limit( $text, $limit, $finish = '…')
|
1136 |
+
{
|
1137 |
+
if( strlen( $text ) > $limit ) {
|
1138 |
+
$text = substr( $text, 0, $limit );
|
1139 |
+
$text = substr( $text, 0, - ( strlen( strrchr( $text,' ') ) ) );
|
1140 |
+
$text .= $finish;
|
1141 |
+
}
|
1142 |
+
return $text;
|
1143 |
+
}
|
1144 |
+
|
1145 |
+
/* pmpro_getMembershipLevelForUser() returns the first active membership level for a user
|
1146 |
+
*
|
1147 |
+
* If $user_id is omitted, the value will be retrieved from $current_user.
|
1148 |
+
*
|
1149 |
+
* Return values:
|
1150 |
+
* Success returns the level object.
|
1151 |
+
* Failure returns false.
|
1152 |
+
*/
|
1153 |
+
function pmpro_getMembershipLevelForUser($user_id = NULL)
|
1154 |
+
{
|
1155 |
+
if(empty($user_id))
|
1156 |
+
{
|
1157 |
+
global $current_user;
|
1158 |
+
$user_id = $current_user->ID;
|
1159 |
+
}
|
1160 |
+
|
1161 |
+
if(empty($user_id))
|
1162 |
+
{
|
1163 |
+
return false;
|
1164 |
+
}
|
1165 |
+
|
1166 |
+
global $all_membership_levels;
|
1167 |
+
|
1168 |
+
if(isset($all_membership_levels[$user_id]))
|
1169 |
+
{
|
1170 |
+
return $all_membership_levels[$user_id];
|
1171 |
+
}
|
1172 |
+
else
|
1173 |
+
{
|
1174 |
+
global $wpdb;
|
1175 |
+
$all_membership_levels[$user_id] = $wpdb->get_row("SELECT
|
1176 |
+
l.id AS ID,
|
1177 |
+
l.id as id,
|
1178 |
+
mu.id as subscription_id,
|
1179 |
+
l.name AS name,
|
1180 |
+
l.description,
|
1181 |
+
l.expiration_number,
|
1182 |
+
l.expiration_period,
|
1183 |
+
mu.initial_payment,
|
1184 |
+
mu.billing_amount,
|
1185 |
+
mu.cycle_number,
|
1186 |
+
mu.cycle_period,
|
1187 |
+
mu.billing_limit,
|
1188 |
+
mu.trial_amount,
|
1189 |
+
mu.trial_limit,
|
1190 |
+
mu.code_id as code_id,
|
1191 |
+
UNIX_TIMESTAMP(startdate) as startdate,
|
1192 |
+
UNIX_TIMESTAMP(enddate) as enddate
|
1193 |
+
FROM {$wpdb->pmpro_membership_levels} AS l
|
1194 |
+
JOIN {$wpdb->pmpro_memberships_users} AS mu ON (l.id = mu.membership_id)
|
1195 |
+
WHERE mu.user_id = $user_id AND mu.status = 'active'
|
1196 |
+
LIMIT 1");
|
1197 |
+
return $all_membership_levels[$user_id];
|
1198 |
+
}
|
1199 |
+
}
|
1200 |
+
|
1201 |
+
/* pmpro_getMembershipLevelsForUser() returns the membership levels for a user
|
1202 |
+
*
|
1203 |
+
* If $user_id is omitted, the value will be retrieved from $current_user.
|
1204 |
+
* By default it only includes actvie memberships.
|
1205 |
+
*
|
1206 |
+
* Return values:
|
1207 |
+
* Success returns an array of level objects.
|
1208 |
+
* Failure returns false.
|
1209 |
+
*/
|
1210 |
+
function pmpro_getMembershipLevelsForUser($user_id = NULL, $include_inactive = false)
|
1211 |
+
{
|
1212 |
+
if(empty($user_id))
|
1213 |
+
{
|
1214 |
+
global $current_user;
|
1215 |
+
$user_id = $current_user->ID;
|
1216 |
+
}
|
1217 |
+
|
1218 |
+
if(empty($user_id))
|
1219 |
+
{
|
1220 |
+
return false;
|
1221 |
+
}
|
1222 |
+
|
1223 |
+
global $wpdb;
|
1224 |
+
return $wpdb->get_results("SELECT
|
1225 |
+
l.id AS ID,
|
1226 |
+
l.id as id,
|
1227 |
+
mu.id as subscription_id,
|
1228 |
+
l.name,
|
1229 |
+
l.description,
|
1230 |
+
l.expiration_number,
|
1231 |
+
l.expiration_period,
|
1232 |
+
mu.initial_payment,
|
1233 |
+
mu.billing_amount,
|
1234 |
+
mu.cycle_number,
|
1235 |
+
mu.cycle_period,
|
1236 |
+
mu.billing_limit,
|
1237 |
+
mu.trial_amount,
|
1238 |
+
mu.trial_limit,
|
1239 |
+
mu.code_id as code_id,
|
1240 |
+
UNIX_TIMESTAMP(startdate) as startdate,
|
1241 |
+
UNIX_TIMESTAMP(enddate) as enddate
|
1242 |
+
FROM {$wpdb->pmpro_membership_levels} AS l
|
1243 |
+
JOIN {$wpdb->pmpro_memberships_users} AS mu ON (l.id = mu.membership_id)
|
1244 |
+
WHERE mu.user_id = $user_id".($include_inactive?"":" AND mu.status = 'active'"));
|
1245 |
+
}
|
1246 |
+
|
1247 |
+
/* pmpro_getLevel() returns the level object for a level
|
1248 |
+
*
|
1249 |
+
* $level may be the level id or name
|
1250 |
+
*
|
1251 |
+
* Return values:
|
1252 |
+
* Success returns the level object.
|
1253 |
+
* Failure returns false.
|
1254 |
+
*/
|
1255 |
+
function pmpro_getLevel($level)
|
1256 |
+
{
|
1257 |
+
global $pmpro_levels;
|
1258 |
+
|
1259 |
+
if(is_object($level) && !empty($level->id))
|
1260 |
+
$level = $level->id;
|
1261 |
+
|
1262 |
+
//was a name passed? (Todo: make sure level names have at least one non-numeric character.
|
1263 |
+
if(is_numeric($level))
|
1264 |
+
{
|
1265 |
+
$level_id = intval($level);
|
1266 |
+
if(isset($pmpro_levels[$level_id]))
|
1267 |
+
{
|
1268 |
+
return $pmpro_levels[$level_id];
|
1269 |
+
}
|
1270 |
+
else
|
1271 |
+
{
|
1272 |
+
global $wpdb;
|
1273 |
+
$pmpro_levels[$level_id] = $wpdb->get_row("SELECT * FROM $wpdb->pmpro_membership_levels WHERE id = '" . $level_id . "' LIMIT 1");
|
1274 |
+
return $pmpro_levels[$level_id];
|
1275 |
+
}
|
1276 |
+
}
|
1277 |
+
else
|
1278 |
+
{
|
1279 |
+
global $wpdb;
|
1280 |
+
$level_obj = $wpdb->get_row("SELECT * FROM $wpdb->pmpro_membership_levels WHERE name = '" . $level . "' LIMIT 1");
|
1281 |
+
$level_id = $level->ID;
|
1282 |
+
$pmpro_levels[$level_id] = $level_obj;
|
1283 |
+
return $pmpro_levels[$level_id];
|
1284 |
+
}
|
1285 |
+
}
|
1286 |
+
|
1287 |
+
/*
|
1288 |
+
Function to populate pmpro_levels with all levels. We query the DB every time just to be sure we have the latest.
|
1289 |
+
This should be called if you want to be sure you get all levels as $pmpro_levels may only have a subset of levels.
|
1290 |
+
*/
|
1291 |
+
function pmpro_getAllLevels($include_hidden = false)
|
1292 |
+
{
|
1293 |
+
global $pmpro_levels, $wpdb;
|
1294 |
+
|
1295 |
+
//build query
|
1296 |
+
$sqlQuery = "SELECT * FROM $wpdb->pmpro_membership_levels ";
|
1297 |
+
if(!$include_hidden)
|
1298 |
+
$sqlQuery .= " WHERE allow_signups = 1 ORDER BY id";
|
1299 |
+
|
1300 |
+
//get levels from the DB
|
1301 |
+
$raw_levels = $wpdb->get_results($sqlQuery);
|
1302 |
+
|
1303 |
+
//lets put them into an array where the key is the id of the level
|
1304 |
+
$pmpro_levels = array();
|
1305 |
+
foreach($raw_levels as $raw_level)
|
1306 |
+
{
|
1307 |
+
$pmpro_levels[$raw_level->id] = $raw_level;
|
1308 |
+
}
|
1309 |
+
|
1310 |
+
return $pmpro_levels;
|
1311 |
+
}
|
1312 |
+
|
1313 |
+
function pmpro_getCheckoutButton($level_id, $button_text = NULL, $classes = NULL)
|
1314 |
+
{
|
1315 |
+
if(empty($button_text))
|
1316 |
+
$button_text = _x("Sign Up for !!name!! Now", "Do not translate !!name!!", "pmpro");
|
1317 |
+
|
1318 |
+
if(empty($classes))
|
1319 |
+
$classes = "btn btn-primary";
|
1320 |
+
|
1321 |
+
if(empty($level_id))
|
1322 |
+
$r = __("Please specify a level id.", "pmpro");
|
1323 |
+
else
|
1324 |
+
{
|
1325 |
+
//get level
|
1326 |
+
$level = pmpro_getLevel($level_id);
|
1327 |
+
|
1328 |
+
//replace vars
|
1329 |
+
$replacements = array(
|
1330 |
+
"!!id!!" => $level->id,
|
1331 |
+
"!!name!!" => $level->name,
|
1332 |
+
"!!description!!" => $level->description,
|
1333 |
+
"!!confirmation!!" => $level->confirmation,
|
1334 |
+
"!!initial_payment!!" => $level->initial_payment,
|
1335 |
+
"!!billing_amount!!" => $level->billing_amount,
|
1336 |
+
"!!cycle_number!!" => $level->cycle_number,
|
1337 |
+
"!!cycle_period!!" => $level->cycle_period,
|
1338 |
+
"!!billing_limit!!" => $level->billing_limit,
|
1339 |
+
"!!trial_amount!!" => $level->trial_amount,
|
1340 |
+
"!!trial_limit!!" => $level->trial_limit,
|
1341 |
+
"!!expiration_number!!" => $level->expiration_number,
|
1342 |
+
"!!expiration_period!!" => $level->expiration_period
|
1343 |
+
);
|
1344 |
+
$button_text = str_replace(array_keys($replacements), $replacements, $button_text);
|
1345 |
+
|
1346 |
+
//button text
|
1347 |
+
$r = "<a href=\"" . pmpro_url("checkout", "?level=" . $level_id) . "\" class=\"" . $classes . "\">" . $button_text . "</a>";
|
1348 |
+
}
|
1349 |
+
return $r;
|
1350 |
+
}
|
1351 |
+
|
1352 |
+
/**
|
1353 |
+
* Get the "domain" from a URL. By domain, we mean the host name, minus any subdomains. So just the domain and TLD.
|
1354 |
+
*
|
1355 |
+
* @param string $url The URL to parse. (generally pass site_url() in WP)
|
1356 |
+
* @return string The domain.
|
1357 |
+
*/
|
1358 |
+
function pmpro_getDomainFromURL($url = NULL)
|
1359 |
+
{
|
1360 |
+
$domainparts = parse_url($url);
|
1361 |
+
$domainparts = explode(".", $domainparts['host']);
|
1362 |
+
if(count($domainparts) > 1)
|
1363 |
+
{
|
1364 |
+
//check for ips
|
1365 |
+
$isip = true;
|
1366 |
+
foreach($domainparts as $part)
|
1367 |
+
{
|
1368 |
+
if(!is_numeric($part))
|
1369 |
+
{
|
1370 |
+
$isip = false;
|
1371 |
+
break;
|
1372 |
+
}
|
1373 |
+
}
|
1374 |
+
|
1375 |
+
if($isip)
|
1376 |
+
{
|
1377 |
+
//ip, e.g. 127.1.1.1
|
1378 |
+
$domain = implode(".", $domainparts);
|
1379 |
+
}
|
1380 |
+
else
|
1381 |
+
{
|
1382 |
+
//www.something.com, etc.
|
1383 |
+
$domain = $domainparts[count($domainparts)-2] . "." . $domainparts[count($domainparts)-1];
|
1384 |
+
}
|
1385 |
+
}
|
1386 |
+
else
|
1387 |
+
{
|
1388 |
+
//localhost or another single word domain
|
1389 |
+
$domain = $domainparts[0];
|
1390 |
+
}
|
1391 |
+
|
1392 |
+
return $domain;
|
1393 |
+
}
|
1394 |
+
|
1395 |
+
/*
|
1396 |
+
Get a member's start date... either in general or for a specific level_id.
|
1397 |
+
*/
|
1398 |
+
if(!function_exists("pmpro_getMemberStartdate"))
|
1399 |
+
{
|
1400 |
+
function pmpro_getMemberStartdate($user_id = NULL, $level_id = 0)
|
1401 |
+
{
|
1402 |
+
if(empty($user_id))
|
1403 |
+
{
|
1404 |
+
global $current_user;
|
1405 |
+
$user_id = $current_user->ID;
|
1406 |
+
}
|
1407 |
+
|
1408 |
+
global $pmpro_startdates; //for cache
|
1409 |
+
if(empty($pmpro_startdates[$user_id][$level_id]))
|
1410 |
+
{
|
1411 |
+
global $wpdb;
|
1412 |
+
|
1413 |
+
if(!empty($level_id))
|
1414 |
+
$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";
|
1415 |
+
else
|
1416 |
+
$sqlQuery = "SELECT UNIX_TIMESTAMP(startdate) FROM $wpdb->pmpro_memberships_users WHERE status = 'active' AND user_id = '" . $user_id . "' ORDER BY id LIMIT 1";
|
1417 |
+
|
1418 |
+
$startdate = $wpdb->get_var($sqlQuery);
|
1419 |
+
|
1420 |
+
$pmpro_startdates[$user_id][$level_id] = $startdate;
|
1421 |
+
}
|
1422 |
+
|
1423 |
+
return $pmpro_startdates[$user_id][$level_id];
|
1424 |
+
}
|
1425 |
+
}
|
1426 |
+
|
1427 |
+
/*
|
1428 |
+
How long has this member been a member
|
1429 |
+
*/
|
1430 |
+
if(!function_exists("pmpro_getMemberDays"))
|
1431 |
+
{
|
1432 |
+
function pmpro_getMemberDays($user_id = NULL, $level_id = 0)
|
1433 |
+
{
|
1434 |
+
if(empty($user_id))
|
1435 |
+
{
|
1436 |
+
global $current_user;
|
1437 |
+
$user_id = $current_user->ID;
|
1438 |
+
}
|
1439 |
+
|
1440 |
+
global $pmpro_member_days;
|
1441 |
+
if(empty($pmpro_member_days[$user_id][$level_id]))
|
1442 |
+
{
|
1443 |
+
$startdate = pmpro_getMemberStartdate($user_id, $level_id);
|
1444 |
+
|
1445 |
+
$now = time();
|
1446 |
+
$days = ($now - $startdate)/3600/24;
|
1447 |
+
|
1448 |
+
$pmpro_member_days[$user_id][$level_id] = $days;
|
1449 |
+
}
|
1450 |
+
|
1451 |
+
return $pmpro_member_days[$user_id][$level_id];
|
1452 |
+
}
|
1453 |
+
}
|
1454 |
+
|
1455 |
+
//the start of a message handling script
|
1456 |
+
function pmpro_setMessage($message, $type, $force = false)
|
1457 |
+
{
|
1458 |
+
global $pmpro_msg, $pmpro_msgt;
|
1459 |
+
|
1460 |
+
//for now, we only show the first message generated
|
1461 |
+
if($force || empty($pmpro_msg))
|
1462 |
+
{
|
1463 |
+
$pmpro_msg = $message;
|
1464 |
+
$pmpro_msgt = $type;
|
1465 |
+
}
|
1466 |
+
}
|
1467 |
+
|
1468 |
+
//used in class definitions for input fields to see if there was an error
|
1469 |
+
function pmpro_getClassForField($field)
|
1470 |
+
{
|
1471 |
+
global $pmpro_error_fields, $pmpro_required_billing_fields, $pmpro_required_user_fields;
|
1472 |
+
$classes = array();
|
1473 |
+
|
1474 |
+
//error on this field?
|
1475 |
+
if(in_array($field, $pmpro_error_fields))
|
1476 |
+
{
|
1477 |
+
$classes[] = "pmpro_error";
|
1478 |
+
}
|
1479 |
+
|
1480 |
+
$required_fields = array_merge(array_keys($pmpro_required_billing_fields), array_keys($pmpro_required_user_fields));
|
1481 |
+
|
1482 |
+
//required?
|
1483 |
+
if(in_array($field, $required_fields))
|
1484 |
+
{
|
1485 |
+
$classes[] = "pmpro_required";
|
1486 |
+
}
|
1487 |
+
|
1488 |
+
$classes = apply_filters("pmpro_field_classes", $classes, $field);
|
1489 |
+
|
1490 |
+
if(!empty($classes))
|
1491 |
+
return implode(" ", $classes);
|
1492 |
+
else
|
1493 |
+
return "";
|
1494 |
+
}
|
1495 |
+
|
1496 |
+
//get a var from $_GET or $_POST
|
1497 |
+
function pmpro_getParam($index, $method = "REQUEST", $default = "")
|
1498 |
+
{
|
1499 |
+
if($method == "REQUEST")
|
1500 |
+
{
|
1501 |
+
if(!empty($_REQUEST[$index]))
|
1502 |
+
return $_REQUEST[$index];
|
1503 |
+
}
|
1504 |
+
elseif($method == "POST")
|
1505 |
+
{
|
1506 |
+
if(!empty($_POST[$index]))
|
1507 |
+
return $_POST[$index];
|
1508 |
+
}
|
1509 |
+
elseif($method == "GET")
|
1510 |
+
{
|
1511 |
+
if(!empty($_GET[$index]))
|
1512 |
+
return $_GET[$index];
|
1513 |
+
}
|
1514 |
+
|
1515 |
+
return $default;
|
1516 |
+
}
|
1517 |
+
|
1518 |
+
/*
|
1519 |
+
Checks if all required settings are set.
|
1520 |
+
*/
|
1521 |
+
function pmpro_is_ready()
|
1522 |
+
{
|
1523 |
+
global $wpdb, $pmpro_pages, $pmpro_level_ready, $pmpro_gateway_ready, $pmpro_pages_ready;
|
1524 |
+
|
1525 |
+
//check if there is at least one level
|
1526 |
+
$pmpro_level_ready = (bool)$wpdb->get_var("SELECT id FROM $wpdb->pmpro_membership_levels LIMIT 1");
|
1527 |
+
|
1528 |
+
//check if the gateway settings are good. first check if it's needed (is there paid membership level)
|
1529 |
+
$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");
|
1530 |
+
$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");
|
1531 |
+
|
1532 |
+
if(empty($paid_membership_level) && empty($paid_user_subscription))
|
1533 |
+
{
|
1534 |
+
//no paid membership level now or attached to a user. we don't need the gateway setup
|
1535 |
+
$pmpro_gateway_ready = true;
|
1536 |
+
}
|
1537 |
+
else
|
1538 |
+
{
|
1539 |
+
$gateway = pmpro_getOption("gateway");
|
1540 |
+
if($gateway == "authorizenet")
|
1541 |
+
{
|
1542 |
+
if(pmpro_getOption("gateway_environment") && pmpro_getOption("loginname") && pmpro_getOption("transactionkey"))
|
1543 |
+
$pmpro_gateway_ready = true;
|
1544 |
+
else
|
1545 |
+
$pmpro_gateway_ready = false;
|
1546 |
+
}
|
1547 |
+
elseif($gateway == "paypal" || $gateway == "paypalexpress")
|
1548 |
+
{
|
1549 |
+
if(pmpro_getOption("gateway_environment") && pmpro_getOption("gateway_email") && pmpro_getOption("apiusername") && pmpro_getOption("apipassword") && pmpro_getOption("apisignature"))
|
1550 |
+
$pmpro_gateway_ready = true;
|
1551 |
+
else
|
1552 |
+
$pmpro_gateway_ready = false;
|
1553 |
+
}
|
1554 |
+
elseif($gateway == "paypalstandard")
|
1555 |
+
{
|
1556 |
+
if(pmpro_getOption("gateway_environment") && pmpro_getOption("gateway_email"))
|
1557 |
+
$pmpro_gateway_ready = true;
|
1558 |
+
else
|
1559 |
+
$pmpro_gateway_ready = false;
|
1560 |
+
}
|
1561 |
+
elseif($gateway == "payflowpro")
|
1562 |
+
{
|
1563 |
+
if(pmpro_getOption("payflow_partner") && pmpro_getOption("payflow_vendor") && pmpro_getOption("payflow_user") && pmpro_getOption("payflow_pwd"))
|
1564 |
+
$pmpro_gateway_ready = true;
|
1565 |
+
else
|
1566 |
+
$pmpro_gateway_ready = false;
|
1567 |
+
}
|
1568 |
+
elseif($gateway == "stripe")
|
1569 |
+
{
|
1570 |
+
if(pmpro_getOption("gateway_environment") && pmpro_getOption("stripe_secretkey") && pmpro_getOption("stripe_publishablekey"))
|
1571 |
+
$pmpro_gateway_ready = true;
|
1572 |
+
else
|
1573 |
+
$pmpro_gateway_ready = false;
|
1574 |
+
}
|
1575 |
+
elseif($gateway == "braintree")
|
1576 |
+
{
|
1577 |
+
if(pmpro_getOption("gateway_environment") && pmpro_getOption("braintree_merchantid") && pmpro_getOption("braintree_publickey") && pmpro_getOption("braintree_privatekey"))
|
1578 |
+
$pmpro_gateway_ready = true;
|
1579 |
+
else
|
1580 |
+
$pmpro_gateway_ready = false;
|
1581 |
+
}
|
1582 |
+
else
|
1583 |
+
{
|
1584 |
+
$pmpro_gateway_ready = false;
|
1585 |
+
}
|
1586 |
+
}
|
1587 |
+
|
1588 |
+
//check if we have all pages
|
1589 |
+
if($pmpro_pages["account"] &&
|
1590 |
+
$pmpro_pages["billing"] &&
|
1591 |
+
$pmpro_pages["cancel"] &&
|
1592 |
+
$pmpro_pages["checkout"] &&
|
1593 |
+
$pmpro_pages["confirmation"] &&
|
1594 |
+
$pmpro_pages["invoice"] &&
|
1595 |
+
$pmpro_pages["levels"])
|
1596 |
+
$pmpro_pages_ready = true;
|
1597 |
+
else
|
1598 |
+
$pmpro_pages_ready = false;
|
1599 |
+
|
1600 |
+
//now check both
|
1601 |
+
if($pmpro_gateway_ready && $pmpro_pages_ready)
|
1602 |
+
return true;
|
1603 |
+
else
|
1604 |
+
return false;
|
1605 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/https.php
CHANGED
@@ -19,7 +19,7 @@ function pmpro_https_filter($s)
|
|
19 |
global $besecure;
|
20 |
$besecure = apply_filters('pmpro_besecure', $besecure);
|
21 |
|
22 |
-
if($besecure
|
23 |
return str_replace("http:", "https:", $s);
|
24 |
else
|
25 |
return str_replace("https:", "http:", $s);
|
@@ -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 |
-
}
|
19 |
global $besecure;
|
20 |
$besecure = apply_filters('pmpro_besecure', $besecure);
|
21 |
|
22 |
+
if($besecure)
|
23 |
return str_replace("http:", "https:", $s);
|
24 |
else
|
25 |
return str_replace("https:", "http:", $s);
|
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,55 +13,27 @@ function pmpro_init()
|
|
13 |
|
14 |
if(is_admin())
|
15 |
{
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
if( is_rtl() && file_exists(get_stylesheet_directory() . "/paid-memberships-pro/css/admin-rtl.css") ) {
|
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 |
-
|
42 |
-
|
43 |
-
if( is_rtl() && file_exists(get_stylesheet_directory() . "/paid-memberships-pro/css/frontend-rtl.css") ) {
|
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 =
|
64 |
-
elseif(file_exists(
|
65 |
$print_css = get_template_directory_uri() . "/paid-memberships-pro/print.css";
|
66 |
else
|
67 |
$print_css = plugins_url('css/print.css',dirname(__FILE__) );
|
@@ -107,20 +79,20 @@ function pmpro_wp()
|
|
107 |
{
|
108 |
if(!is_admin())
|
109 |
{
|
110 |
-
global $post, $pmpro_pages, $pmpro_page_name, $pmpro_page_id
|
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");
|
119 |
-
|
120 |
-
//add class to body
|
121 |
-
$pmpro_body_classes[] = "pmpro-" . str_replace("_", "-", $pmpro_page_name);
|
122 |
-
|
123 |
-
//shortcode
|
124 |
function pmpro_pages_shortcode($atts, $content=null, $code="")
|
125 |
{
|
126 |
global $pmpro_page_name;
|
@@ -137,25 +109,17 @@ 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);
|
144 |
|
145 |
-
/*
|
146 |
-
Add PMPro page names to the BODY class.
|
147 |
-
*/
|
148 |
-
function pmpro_body_class($classes)
|
149 |
-
{
|
150 |
-
global $pmpro_body_classes;
|
151 |
-
|
152 |
-
if(is_array($pmpro_body_classes))
|
153 |
-
$classes = array_merge($pmpro_body_classes, $classes);
|
154 |
-
|
155 |
-
return $classes;
|
156 |
-
}
|
157 |
-
add_filter("body_class", "pmpro_body_class");
|
158 |
-
|
159 |
//add membership level to current user object
|
160 |
function pmpro_set_current_user()
|
161 |
{
|
@@ -208,33 +172,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_template_directory_uri() . "/paid-memberships-pro/css/admin.css";
|
18 |
+
elseif(file_exists(get_stylesheet_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_template_directory_uri() . "/paid-memberships-pro/css/frontend.css";
|
28 |
+
elseif(file_exists(get_stylesheet_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_template_directory_uri() . "/paid-memberships-pro/css/print.css";
|
36 |
+
elseif(file_exists(get_stylesheet_directory() . "/paid-memberships-pro/print.css"))
|
37 |
$print_css = get_template_directory_uri() . "/paid-memberships-pro/print.css";
|
38 |
else
|
39 |
$print_css = plugins_url('css/print.css',dirname(__FILE__) );
|
79 |
{
|
80 |
if(!is_admin())
|
81 |
{
|
82 |
+
global $post, $pmpro_pages, $pmpro_page_name, $pmpro_page_id;
|
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 |
require_once(PMPRO_DIR . "/preheaders/" . $pmpro_page_name . ".php");
|
95 |
+
|
|
|
|
|
|
|
|
|
96 |
function pmpro_pages_shortcode($atts, $content=null, $code="")
|
97 |
{
|
98 |
global $pmpro_page_name;
|
109 |
add_shortcode("pmpro_" . $pmpro_page_name, "pmpro_pages_shortcode");
|
110 |
break; //only the first page found gets a shortcode replacement
|
111 |
}
|
112 |
+
}
|
113 |
+
|
114 |
+
//make sure you load the preheader for the checkout page. the shortcode for checkout is loaded below
|
115 |
+
if(!empty($post->post_content) && strpos($post->post_content, "[pmpro_checkout]") !== false)
|
116 |
+
{
|
117 |
+
require_once(PMPRO_DIR . "/preheaders/checkout.php");
|
118 |
+
}
|
119 |
}
|
120 |
}
|
121 |
add_action("wp", "pmpro_wp", 1);
|
122 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
123 |
//add membership level to current user object
|
124 |
function pmpro_set_current_user()
|
125 |
{
|
172 |
|
173 |
do_action("pmpro_after_set_current_user");
|
174 |
}
|
175 |
+
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,30 +54,22 @@ 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);
|
77 |
exit;
|
78 |
}
|
79 |
else
|
80 |
-
|
81 |
}
|
82 |
|
83 |
//if theme my login is installed, redirect all logins to the login page
|
@@ -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);
|
69 |
exit;
|
70 |
}
|
71 |
else
|
72 |
+
break; //don't redirect if pmpro_register_redirect filter returns false or a blank URL
|
73 |
}
|
74 |
|
75 |
//if theme my login is installed, redirect all logins to the login page
|
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
@@ -6,9 +6,7 @@
|
|
6 |
function pmpro_membership_level_profile_fields($user)
|
7 |
{
|
8 |
global $current_user, $pmpro_currency_symbol;
|
9 |
-
|
10 |
-
$membership_level_capability = apply_filters("pmpro_edit_member_capability", "manage_options");
|
11 |
-
if(!current_user_can($membership_level_capability))
|
12 |
return false;
|
13 |
|
14 |
global $wpdb;
|
@@ -130,7 +128,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 |
?>
|
@@ -165,8 +163,7 @@ function pmpro_membership_level_profile_fields_update()
|
|
165 |
if(!empty($_REQUEST['user_id']))
|
166 |
$user_ID = $_REQUEST['user_id'];
|
167 |
|
168 |
-
|
169 |
-
if(!current_user_can($membership_level_capability))
|
170 |
return false;
|
171 |
|
172 |
//level change
|
@@ -183,8 +180,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 +194,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 |
}
|
6 |
function pmpro_membership_level_profile_fields($user)
|
7 |
{
|
8 |
global $current_user, $pmpro_currency_symbol;
|
9 |
+
if(!current_user_can("administrator"))
|
|
|
|
|
10 |
return false;
|
11 |
|
12 |
global $wpdb;
|
128 |
for($i = 1; $i < 13; $i++)
|
129 |
{
|
130 |
?>
|
131 |
+
<option value="<?php echo $i?>" <?php if($i == $selected_expires_month) { ?>selected="selected"<?php } ?>><?php echo date("M", strtotime($i . "/1/" . $current_year))?></option>
|
132 |
<?php
|
133 |
}
|
134 |
?>
|
163 |
if(!empty($_REQUEST['user_id']))
|
164 |
$user_ID = $_REQUEST['user_id'];
|
165 |
|
166 |
+
if(!current_user_can( 'edit_user', $user_ID))
|
|
|
167 |
return false;
|
168 |
|
169 |
//level change
|
180 |
if(!empty($_REQUEST['expires']))
|
181 |
{
|
182 |
//update the expiration date
|
183 |
+
$expiration_date = intval($_REQUEST['expires_year']) . "-" . intval($_REQUEST['expires_month']) . "-" . intval($_REQUEST['expires_day']);
|
184 |
+
$sqlQuery = "UPDATE $wpdb->pmpro_memberships_users SET enddate = '" . $expiration_date . "' WHERE status = 'active' AND user_id = '" . $user_ID . "' LIMIT 1";
|
185 |
if($wpdb->query($sqlQuery))
|
186 |
$expiration_changed = true;
|
187 |
}
|
194 |
if(empty($blank))
|
195 |
{
|
196 |
//null out the expiration
|
197 |
+
$sqlQuery = "UPDATE $wpdb->pmpro_memberships_users SET enddate = NULL WHERE status = 'active' AND user_id = '" . $user_ID . "' LIMIT 1";
|
198 |
if($wpdb->query($sqlQuery))
|
199 |
$expiration_changed = true;
|
200 |
}
|
includes/recaptcha.php
CHANGED
@@ -1,22 +1,14 @@
|
|
1 |
<?php
|
2 |
-
|
|
|
|
|
|
|
3 |
{
|
4 |
-
|
5 |
-
if(
|
6 |
-
return;
|
7 |
-
|
8 |
-
//use recaptcha?
|
9 |
-
global $recaptcha;
|
10 |
-
$recaptcha = pmpro_getOption("recaptcha");
|
11 |
-
if($recaptcha)
|
12 |
{
|
13 |
-
|
14 |
-
if(!function_exists("recaptcha_get_html"))
|
15 |
-
{
|
16 |
-
require_once(PMPRO_DIR . "/includes/lib/recaptchalib.php");
|
17 |
-
}
|
18 |
-
$recaptcha_publickey = pmpro_getOption("recaptcha_publickey");
|
19 |
-
$recaptcha_privatekey = pmpro_getOption("recaptcha_privatekey");
|
20 |
}
|
21 |
-
|
22 |
-
|
|
1 |
<?php
|
2 |
+
//use recaptcha?
|
3 |
+
global $recaptcha;
|
4 |
+
$recaptcha = pmpro_getOption("recaptcha");
|
5 |
+
if($recaptcha)
|
6 |
{
|
7 |
+
global $recaptcha_publickey, $recaptcha_privatekey;
|
8 |
+
if(!function_exists("recaptcha_get_html"))
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
{
|
10 |
+
require_once(PMPRO_DIR . "/includes/lib/recaptchalib.php");
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
}
|
12 |
+
$recaptcha_publickey = pmpro_getOption("recaptcha_publickey");
|
13 |
+
$recaptcha_privatekey = pmpro_getOption("recaptcha_privatekey");
|
14 |
+
}
|
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/setup.sql
CHANGED
@@ -136,17 +136,12 @@ CREATE TABLE `wp_pmpro_membership_orders` (
|
|
136 |
`notes` TEXT NOT NULL,
|
137 |
PRIMARY KEY (`id`),
|
138 |
UNIQUE KEY `code` (`code`),
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
KEY `gateway_environment` (`gateway_environment`),
|
146 |
-
KEY `payment_transaction_id` (`payment_transaction_id`),
|
147 |
-
KEY `subscription_transaction_id` (`subscription_transaction_id`),
|
148 |
-
KEY `affiliate_id` (`affiliate_id`),
|
149 |
-
KEY `affiliate_subid` (`affiliate_subid`)
|
150 |
);
|
151 |
|
152 |
-- --------------------------------------------------------
|
136 |
`notes` TEXT NOT NULL,
|
137 |
PRIMARY KEY (`id`),
|
138 |
UNIQUE KEY `code` (`code`),
|
139 |
+
KEY `session_id` (`session_id`),
|
140 |
+
KEY `user_id` (`user_id`),
|
141 |
+
KEY `membership_id` (`membership_id`),
|
142 |
+
KEY `timestamp` (`timestamp`),
|
143 |
+
KEY `gateway` (`gateway`),
|
144 |
+
KEY `gateway_environment` (`gateway_environment`)
|
|
|
|
|
|
|
|
|
|
|
145 |
);
|
146 |
|
147 |
-- --------------------------------------------------------
|
includes/upgradecheck.php
CHANGED
@@ -34,8 +34,8 @@ function pmpro_checkForUpgrades()
|
|
34 |
|
35 |
if($pmpro_db_version < 1.48)
|
36 |
$pmpro_db_version = pmpro_upgrade_1_4_8();
|
37 |
-
|
38 |
-
if($pmpro_db_version < 1.5)
|
39 |
$pmpro_db_version = pmpro_upgrade_1_5();
|
40 |
|
41 |
if($pmpro_db_version < 1.59)
|
@@ -58,54 +58,18 @@ function pmpro_checkForUpgrades()
|
|
58 |
|
59 |
pmpro_db_delta();
|
60 |
|
61 |
-
pmpro_setOption("db_version", "1.
|
62 |
-
$pmpro_db_version = 1.
|
63 |
}
|
64 |
|
65 |
//updates from this point on should be like this if DB only
|
66 |
-
if($pmpro_db_version < 1.
|
67 |
{
|
68 |
pmpro_db_delta();
|
69 |
-
pmpro_setOption("db_version", "1.
|
70 |
-
$pmpro_db_version = 1.
|
71 |
-
}
|
72 |
-
|
73 |
-
if($pmpro_db_version < 1.72)
|
74 |
-
{
|
75 |
-
//schedule the credit card expiring cron
|
76 |
-
wp_schedule_event(current_time('timestamp'), '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 |
-
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()
|
111 |
{
|
@@ -142,31 +106,31 @@ function pmpro_upgrade_1_5_9()
|
|
142 |
pmpro_setOption("db_version", "1.59");
|
143 |
return 1.59;
|
144 |
}
|
145 |
-
|
146 |
-
function pmpro_upgrade_1_5()
|
147 |
-
{
|
148 |
-
/*
|
149 |
-
Add the id and status fields to pmpro_memberships_users, change primary key to id instead of user_id
|
150 |
-
*/
|
151 |
-
|
152 |
-
global $wpdb;
|
153 |
-
$wpdb->hide_errors();
|
154 |
-
$wpdb->pmpro_memberships_users = $wpdb->prefix . 'pmpro_memberships_users';
|
155 |
-
|
156 |
-
//remove primary key
|
157 |
-
$sqlQuery = "ALTER TABLE `" . $wpdb->pmpro_memberships_users . "` DROP PRIMARY KEY";
|
158 |
-
$wpdb->query($sqlQuery);
|
159 |
-
|
160 |
-
//id
|
161 |
-
$sqlQuery = "ALTER TABLE `" . $wpdb->pmpro_memberships_users . "` ADD `id` BIGINT( 20 ) UNSIGNED AUTO_INCREMENT FIRST, ADD PRIMARY KEY(id)";
|
162 |
-
$wpdb->query($sqlQuery);
|
163 |
-
|
164 |
-
//status
|
165 |
-
$sqlQuery = "ALTER TABLE `" . $wpdb->pmpro_memberships_users . "` ADD `status` varchar( 20 ) NOT NULL DEFAULT 'active' AFTER `trial_limit`";
|
166 |
-
$wpdb->query($sqlQuery);
|
167 |
-
|
168 |
-
pmpro_setOption("db_version", "1.5");
|
169 |
-
return 1.5;
|
170 |
}
|
171 |
|
172 |
function pmpro_upgrade_1_4_8()
|
@@ -419,14 +383,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";
|
@@ -545,14 +509,9 @@ function pmpro_db_delta()
|
|
545 |
KEY `session_id` (`session_id`),
|
546 |
KEY `user_id` (`user_id`),
|
547 |
KEY `membership_id` (`membership_id`),
|
548 |
-
KEY `status` (`status`),
|
549 |
KEY `timestamp` (`timestamp`),
|
550 |
KEY `gateway` (`gateway`),
|
551 |
-
KEY `gateway_environment` (`gateway_environment`)
|
552 |
-
KEY `payment_transaction_id` (`payment_transaction_id`),
|
553 |
-
KEY `subscription_transaction_id` (`subscription_transaction_id`),
|
554 |
-
KEY `affiliate_id` (`affiliate_id`),
|
555 |
-
KEY `affiliate_subid` (`affiliate_subid`)
|
556 |
);
|
557 |
";
|
558 |
dbDelta($sqlQuery);
|
34 |
|
35 |
if($pmpro_db_version < 1.48)
|
36 |
$pmpro_db_version = pmpro_upgrade_1_4_8();
|
37 |
+
|
38 |
+
if($pmpro_db_version < 1.5)
|
39 |
$pmpro_db_version = pmpro_upgrade_1_5();
|
40 |
|
41 |
if($pmpro_db_version < 1.59)
|
58 |
|
59 |
pmpro_db_delta();
|
60 |
|
61 |
+
pmpro_setOption("db_version", "1.702");
|
62 |
+
$pmpro_db_version = 1.702;
|
63 |
}
|
64 |
|
65 |
//updates from this point on should be like this if DB only
|
66 |
+
if($pmpro_db_version < 1.702)
|
67 |
{
|
68 |
pmpro_db_delta();
|
69 |
+
pmpro_setOption("db_version", "1.702");
|
70 |
+
$pmpro_db_version = 1.702;
|
71 |
+
}
|
72 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
|
74 |
function pmpro_upgrade_1_7()
|
75 |
{
|
106 |
pmpro_setOption("db_version", "1.59");
|
107 |
return 1.59;
|
108 |
}
|
109 |
+
|
110 |
+
function pmpro_upgrade_1_5()
|
111 |
+
{
|
112 |
+
/*
|
113 |
+
Add the id and status fields to pmpro_memberships_users, change primary key to id instead of user_id
|
114 |
+
*/
|
115 |
+
|
116 |
+
global $wpdb;
|
117 |
+
$wpdb->hide_errors();
|
118 |
+
$wpdb->pmpro_memberships_users = $wpdb->prefix . 'pmpro_memberships_users';
|
119 |
+
|
120 |
+
//remove primary key
|
121 |
+
$sqlQuery = "ALTER TABLE `" . $wpdb->pmpro_memberships_users . "` DROP PRIMARY KEY";
|
122 |
+
$wpdb->query($sqlQuery);
|
123 |
+
|
124 |
+
//id
|
125 |
+
$sqlQuery = "ALTER TABLE `" . $wpdb->pmpro_memberships_users . "` ADD `id` BIGINT( 20 ) UNSIGNED AUTO_INCREMENT FIRST, ADD PRIMARY KEY(id)";
|
126 |
+
$wpdb->query($sqlQuery);
|
127 |
+
|
128 |
+
//status
|
129 |
+
$sqlQuery = "ALTER TABLE `" . $wpdb->pmpro_memberships_users . "` ADD `status` varchar( 20 ) NOT NULL DEFAULT 'active' AFTER `trial_limit`";
|
130 |
+
$wpdb->query($sqlQuery);
|
131 |
+
|
132 |
+
pmpro_setOption("db_version", "1.5");
|
133 |
+
return 1.5;
|
134 |
}
|
135 |
|
136 |
function pmpro_upgrade_1_4_8()
|
383 |
/*
|
384 |
default options
|
385 |
*/
|
386 |
+
$nonmembertext = 'This content is for !!levels!! members only. <a href="' . wp_login_url() . '?action=register">Register here</a>.';
|
387 |
pmpro_setOption("nonmembertext", $nonmembertext);
|
388 |
|
389 |
+
$notloggedintext = 'This content is for !!levels!! members only. Please <a href="' . wp_login_url() . '">login</a> to view this content. (<a href="' . wp_login_url() .
|
390 |
+
'?action=register">Register here</a>.)';
|
391 |
pmpro_setOption("notloggedintext", $notloggedintext);
|
392 |
|
393 |
+
$rsstext = "This content is for !!levels!! members only. Visit the site and log in/register to read.";
|
394 |
pmpro_setOption("rsstext", $rsstext);
|
395 |
|
396 |
$gateway_environment = "sandbox";
|
509 |
KEY `session_id` (`session_id`),
|
510 |
KEY `user_id` (`user_id`),
|
511 |
KEY `membership_id` (`membership_id`),
|
|
|
512 |
KEY `timestamp` (`timestamp`),
|
513 |
KEY `gateway` (`gateway`),
|
514 |
+
KEY `gateway_environment` (`gateway_environment`)
|
|
|
|
|
|
|
|
|
515 |
);
|
516 |
";
|
517 |
dbDelta($sqlQuery);
|
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 P
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|