7

Using CiviCRM 4.4.4, Webform 7.x-4.11, Webform CiviCRM Integration 7.x-4.12, Paypal Website Payments Pro, Drupal 7.39

When I set up a payment through CiviCRM, credit card payment and Paypal payment work as expected. However, when I set up Payment through Webform CiviCRM integration, the credit card payment works as expected, but clicking on the Paypal button produces an error about email as shown in the attached screenshot. This happens with all my webform civicrm integrations. In other words when I use Webform CiviCRM integration, I have to give up paying with Paypal and since the Paypal button is automatically put on the screen the result is very unprofessional. The email that it shows which is supposed to be an error is my user name in Processor Details for Live Payments dialog.

PayPal Checkout Button error

Any help would be much appreciated, since I find the Webform CiviCRM integration module a great tool.

Paypal support hasn't been much help.

[Edit] It turns out that when I am using CiviCRM Webform integration and select the Paypal button the word "express" briefly appears in the credit card number field on the form. I think this is causing the problem because I don't see it when choosing Paypal from a standard CiviCRM payment page. I have tried different payment buttons from this page but the behavior stays the same.

Bill Dika

5
  • Not sure if I could be of any help. But it might be that the webform is on a different URL than the CiviCRM Contribution page. Oct 14, 2015 at 16:26
  • Does googling for that error message from paypal turn up any good suggestions about possible causes?
    – Coleman
    Oct 16, 2015 at 17:10
  • Thanks for responding Jaap, I don't think that is the problem, since the button works when I am not using CiviCRM Webform integration.
    – bill dika
    Oct 19, 2015 at 20:01
  • @Coleman thanks for responding. Please see the edit above if it helps. I googled - led to the buttons page
    – bill dika
    Oct 19, 2015 at 20:20
  • That's normal - it's the webform_civicrm module's way of tracking that the user has chosen PP express checkout.
    – Coleman
    Oct 20, 2015 at 21:40

4 Answers 4

3

You may have found a bug in the webform_civicrm module. I don't have a great way of testing paypal right now, but I've just made a few tweaks which I think will help - can you try it out?

Download the patched version here: https://github.com/colemanw/webform_civicrm/archive/ipn.zip

5
  • Do I just extract this folder "webform_civicrm_ipn in my modules folder? What about the existing "webform_civicrm"?
    – bill dika
    Oct 27, 2015 at 19:35
  • yes delete the webform_civicrm directory and replace it (renaming the new one to match the old name)
    – Coleman
    Oct 27, 2015 at 19:44
  • I tried it with the file you sent me, following your instructions to delete and replace but the same behaviour as under the edit in my original question. Do I just leave this installed? Do you have anything else I can try. Thanks.
    – bill dika
    Oct 28, 2015 at 20:19
  • I have the same issue. Paypal standard does work if selected as the payment processor however using the button gives me the same error as posted above. @Coleman, I tried installing your tweaks but problem still persists. I can give you access to a test site where you run tests. email me [email protected]
    – Yossi
    Oct 29, 2015 at 22:49
  • Has anyone found a solution to this issue? It's one that I'm having as well. Using all the latest Drupal modules at time of posting: Core 7.43 Webform 7.x-4.12 CiviCRM Webform 7.x-4.15
    – Heather O.
    Mar 29, 2016 at 7:29
2

Ok - not ideal [sorry it's not a fix] - but an easy workaround that ensures people use the credit card fields (as opposed to hitting the PayPal button and getting the error message) - would be to hide the PayPal button on the webform_civicrm payment page:

$('#billing-payment-block .description').hide();

Put this into an editmywebform.js file and then inject this js file using drupal_add_js in your theme's preprocess_page function: e.g.:

function myorg_zen_preprocess_page(&$variables, $hook) {
    if (strpos(request_path(), 'mywebform_url') === 0) {
      drupal_add_js(drupal_get_path('theme', 'myorg_zen') . '/js/editmywebform.js');
    }
}
1

I had trouble getting Karin's solution to work because the PayPal Express button is loaded after the page is ready. However, it inspired a solution using CSS:

/**
 * Suppress the PayPal Express button.
 */
function myorg_preprocess_page(&$variables, $hook) {
  if (strpos(request_path(), 'my-webform-page') === 0) {
    drupal_add_css(drupal_get_path('module', 'myorg') . '/css/hidepaypal.css');
  }
}

The CSS in hidepaypal.css is:

#billing-payment-block .description {
  display: none;
}
0

For anyone looking to code a fix to this, the proposed solution can be found here.

Your Answer

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

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