strangerstudios / pmpro-donations

Allow customers to set an additional donation amount at checkout with Paid Memberships Pro.
https://www.paidmembershipspro.com/add-ons/donations-add-on/
8 stars 17 forks source link

BUG: Actual amount charged in PayPal did not include donation amount #11

Closed greathmaster closed 6 years ago

greathmaster commented 7 years ago

Under some setups, the donation amount would not be charged in PayPal. All other references, such as the PMPro Member Orders and even at PayPal itself during checkout would reflect the correct charge (ie: price + donation). However, when the actual charge would occur, it would only charge them the original price without the donation amount.

strangerstudios commented 7 years ago

Hmmm. I recognize the bug, but maybe there is a better time to add the donation amount in.

Generally we add it via pmpro_checkout_level, but I think I do some black magic here to keep the price text looking normal, instead of including the donation amount... and that is causing issues with PayPal. I'm going to review now now and include in the next update.

Thanks.

strangerstudios commented 7 years ago

We need to look into this more. I think I've been recreating this, but it may be an issue in PMPro core (or even PayPal) instead of here. If we update the AMT sent to PayPal like you do here, we're actually adding the donation amount to the recurring billing amount instead of just the initial payment. It seems that PayPal is ignoring or misusing the INITAMT value we are passing for some reason.

Some notes here are that it's important to test:

I'm going to push the other updates to pmpro-donations out now and get to this ASAP.

eighty20results commented 7 years ago

This pull request presumes all PayPal gateways in PMPro uses/applies the pmpro_do_express_checkout_payment_nvpstr filter (they do not).

Technoh commented 6 years ago

What is the status on this? I have this exact issue currently with PM Pro 1.9.5.5 and the 0.4 Donations Add-on.

ideadude commented 6 years ago

A similar bug came up in the variable pricing plugin. It is probably linked to starting the session later since PMPro version X. We need to make sure the session is started before trying to set/get variables to session.

This gist fixes it as a work around https://gist.github.com/ideadude/bdb2a670b76578ae77a30489fb1a44b7

I'll get the real fix pushed out ASAP.