We are using CiviCRM 4.7.22/Drupal 7.56 and are increasingly encountering a scenario where Civi contacts are sharing their log in details with admin/PA staff to make payment via PayPal with a credit card on their behalf. The problem we encounter is when the admin/PA checkout with Paypal they enter their own name, email address and billing info, not the Civi contact. When the contribution is made this then overwrites the Civi contact. This is particularly problematic for events as we use Civi data to make badges and email joining instructions.

Is this the designed behavior or is there a setting either in Civi or Paypal I'm missing?

  • I'm also seeing this or something very similar when using PayPal Pro and Civi 4.7.27 and Drupal 7.56. We have a membership contribution with an included profile that has the new user name and address. If they pay with PayPal then the first name and last name are overwritten with these details from the PayPal account when the complete transaction screen is shown. (Other fields may be affected as well but I haven't tested that.)
    – chriscant
    Nov 20, 2017 at 13:22

1 Answer 1


I found a solution for PayPalPro by editing the code at line 277 in \CRM\Core\Payment\PayPalImpl.php

  'billing_first_name' => 'firstname',
  'billing_middle_name' => 'middlename',
  'billing_last_name' => 'lastname',

ie I added "billing_" at the start of the three Civi field names. This is how received information from PayPal is mapped to Civi fields. With my change the name goes into the billing fields and not the main/primary fields.

In my case there was not a problem for the address fields, ie they were getting through OK to the billing address.

I've done this as a customisation for my site. If it's correct then this should be converted into a bug report so it's incorporated into the main code. Anyone care to test?

  • Unable to test but looking at the code believe this is what is causing the issue for Express checkout. Certainly worth opening as an issue. I'll contact our civicrm contractor and see if there is a workaround that doesn't need to change the core code
    – mhawksey
    Nov 24, 2017 at 10:38
  • I think it's been reported here issues.civicrm.org/jira/browse/CRM-20553 so I've linked back to here as a proposed solution
    – chriscant
    Nov 24, 2017 at 14:28
  • Rather than changing the core code looking at wrapping the existing paypal payment processor code with modification you suggest as a custom payment processor
    – mhawksey
    Nov 24, 2017 at 15:31
  • I'd say that it feels like this should be a core fix - the PayPal account details surely should go into the billing info.
    – chriscant
    Nov 24, 2017 at 20:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.