Thanks for the follow-up.
Looking at your shortcode, I realize now that you are using a recurring subscription.
The reason this is now happening is because PayPal requires a PayPal account for recurring subscriptions (except for a few exclusions that I’ll explain below).
What I’d recommend doing here is instead use a s2Member Pro Form instead of a link from a PayPal Button. Because you already have PayPal Pro, there really is not any reason that you could not use the Pro Forms here just as well.
Updated code to work with a Pro Form would look like this:
<?php
$PlusFee = 49.95; // Enter subscription fee for Level 1 membership
$PremFee = 79.95; // Enter subscription fee for Level 2 membership
$PlusDailyRate = .13685; // Enter daily rate based on level 1 subscription fee divided by 365
$PlusCredit = ((365 - S2MEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS) * $PlusDailyRate);
$PremCharges = $PremFee - $PlusCredit;
$PremCharges = round($PremCharges,2); //round off number to 2 decimal points
?>
<?php
if (S2MEMBER_CURRENT_USER_ACCESS_LEVEL === 1){ ?>
<?php if(S2MEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS >= 0){ ?>
[s2Member-Pro-PayPal-Form level="2" modify="1" ccaps="" desc="Prorated Upgrade from Plus to Premier membership for one year for $<?php echo esc_attr($PremCharges); ?>" ps="paypal" lc="" cc="USD" dg="0" ns="1" custom="www.domain.com" ta="0" tp="0" tt="D" ra="<?php echo esc_attr($PremCharges); ?>" rp="1" rt="Y" rr="0" rrt="" rra="1" accept="paypal,visa,mastercard" accept_via_paypal="paypal" /]
<?php } ?>
<?php } ?>
If, however, you’re set on using a link like you had set up in your original post, you will need to do one of two things.
The first is that you can continue using your code as-is, and have PayPal enable Enhanced Recurring Processing (ERP), which is another $20 a month. This is something that we really do not like recommending, except in this specific circumstance. This is because ERP has a couple flaws that can cause more issues after the fact.
The biggest problem with ERP is that enabling this makes it so that your customers have no way to cancel their subscription with you other than writing in or calling you, to have you cancel their subscription for you. s2Member’s cancellation forms do not work with ERP, which is a limitation on PayPal’s part.
Alternatively, you could change your PayPal button to be a Buy Now button, for 1 year, non-renewing. To do this you’d change your rr attribute to BN:
<?php
$PlusFee = 49.95; // Enter subscription fee for Level 1 membership
$PremFee = 79.95; // Enter subscription fee for Level 2 membership
$PlusDailyRate = .13685; // Enter daily rate based on level 1 subscription fee divided by 365
$PlusCredit = ((365 - S2MEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS) * $PlusDailyRate);
$PremCharges = $PremFee - $PlusCredit;
$PremCharges = round($PremCharges,2); //round off number to 2 decimal points
?>
<?php
if (S2MEMBER_CURRENT_USER_ACCESS_LEVEL === 1){ ?>
<?php if(S2MEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS >= 0){ ?>
<a href="[[s2Member-PayPal-Button level="2" ccaps="" desc="Prorated Upgrade from Plus to Premier membership for one year for $<?php echo esc_attr($PremCharges); ?>" ps="paypal" lc="" cc="USD" dg="0" ns="1" custom="www.domain.com" ta="0" tp="0" tt="D" ra="<?php echo esc_attr($PremCharges); ?>" rp="1" rt="Y" rr="BN" rrt="" rra="1" accept="paypal" accept_via_paypal="paypal,visa,mastercard" image="default" output="url" /]]"><center><img src="/images/upgrade_now_v2.gif" border="0" width="250px" height="160px"></center><div class="upgrade">for only $<?php echo esc_attr($PremCharges); ?></div></a><br>
<?php } ?>
<?php } ?>
Your users should then be able to pay with a credit card through PayPal as you’d like, but they will need to renew manually when they are revoked access.
This being said, I would strongly recommend using the s2Member Pro Forms with PayPal Pro, as you already have it set up.
Please let us know if problems persist. :-)
-
This reply was modified 3 years, 11 months ago by
Bruce. Reason: Escaping URL in last example