Forms – 3rdparty Integration for WordPress Contact Form 7 and Gravity Forms

Releasing a new WordPress plugin based on an earlier one I wrote.

Download Forms: 3rdparty Integration.  As copied from the readme:

Forms: 3rdparty Integration

Send Contact Form 7 or Gravity Forms Submissions to a 3rd-party Service, like a CRM. Multiple configurable services, custom field mapping. Provides hooks and filters for pre/post processing of results. Allows you to send separate emails, or attach additional results to existing emails. Comes with a couple examples of hooks for common CRMs (listrak, mailchimp, salesforce).

The plugin essentially makes a remote request (POST) to a service URL, passing along remapped form submission values.

Includes hidden field plugin from Contact Form 7 Modules: Hidden Fields. Based on idea by Alex Hager “How to Integrate Salesforce in Contact Form 7“.

Original plugin, Contact Form 7: 3rdparty Integration developed with the assistance of AtlanticBT. Current plugin sponsored by Handpicked Tomatoes.

Download Forms: 3rdparty Integration.

21 thoughts on “Forms – 3rdparty Integration for WordPress Contact Form 7 and Gravity Forms

  1. I don’t think this Forms – 3rdparty Integration 1.4.1 is compatible with new version of wordpress. I use 3.4.2 and 3.5

    – and CF7 – Version 3.3.2

    It only returns a blank screen.

    Do you know what i can do to get your great plugin to work with newer versions?

    • @villy – Can you turn on debugging (both WP and PHP) — it should give you more details than a blank screen as to what’s going wrong. I’ve used this plugin with several versions of WP and haven’t had any problems, so without more details I don’t know how to diagnose your problem. Usually it ends up being conflicts with other plugins — have you tried disabling all your plugins (except CF7 of course) and trying Forms again?

      • I just cant get this tor work, i am hoping you can help. I use the 1.4.2 hope for help

        Here is my forms,
        From CF7:
        http://www.solfilmhalvapriset.se/fonster-film-gratis-varuprov/

        To Newsletter Pro:
        http://www.solfilmhalvapriset.se/email-nyhedsbrev/

        I get this message from debug. Do know what this means?

        [response] => Array
        (
        => 404
        [message] => Not Found
        )

        [cookies] => Array
        (
        [0] => WP_Http_Cookie Object
        (
        [name] => PHPSESSID
        [value] => uokfkhc8rae0jeqph4qb7t6e15
        [expires] =>
        [path] => /
        [domain] =>
        )

        [1] => WP_Http_Cookie Object
        (
        [name] => wpsc_customer_cookie_057bbff0b424e9da5f81c332b5a07d46
        [value] => _@ha0P@Rby47S|1362907256|93239d80aaac360538c3f617fd203f77
        [expires] => 1362907256
        [path] => /
        [domain] =>
        [httponly] =>
        )

        )

        [filename] =>
        [safe_message] => physical request failure

        • I don’t think my reply ever sent — The 404 response from your endpoint indicates that the url you were trying to hit had a problem. Either it was a bad submission, or there was something in your request that “broke” the endpoint. Are you able to submit to that endpoint directly with code?

  2. Hi there,

    I’ve got the same problem as the previous commenter; a blank screen after installation. i’ve disabled all other plugin’s except the contact form 7 plugin.

    I get this error in debugging:

    “Warning: include_once(hidden.php): failed to open stream: No such file or directory in /…/wp-content/plugins/forms-3rdparty-integration/plugins/contactform7.php on line 159 Warning: include_once(): Failed opening ‘hidden.php’ for inclusion (include_path=’.:’) in /…/wp-content/plugins/forms-3rdparty-integration/plugins/contactform7.php on line 159”

    Please advise

    • Hi, I’d like to add, I get this error when trying to open the config page: “Fatal error: Class ‘RGFormsModel’ not found in /…/wp-content/plugins/forms-3rdparty-integration/plugins/gravityforms.php on line 50”.

      The other error is whenever the site loads.

      Thanks in advance!

      • Now a ‘fatal error’, on the other hand, would kill the site. Does that error only appear on the “3rdparty Services” page underneath “Gravity Forms”? Do you have GF enabled?

    • Interesting. Those are just warnings — they shouldn’t break the site. include (vs require) throws warnings if the file is not present, but doesn’t kill the process. Have you tried commenting out the offending line?

      Regardless, it shouldn’t include the hidden field plugin anymore, I’ll take that out soon.

  3. When sending to a secure site (https) that has a certificate in place I am getting an error:

    *** Response ***
    WP_Error Object
    (
    [errors] => Array
    (
    [http_request_failed] => Array
    (
    [0] => SSL certificate problem: unable to get local issuer certificate
    )

    )

    [error_data] => Array
    (
    )

    )
    But I know the site has a cert. Its ours. I had to edit the plugin and add the wp_remote_post argument to not verify the cert. can this be a setting or can this issue be fixed?
    Do I have to register our site with WP for something?
    Thanks.

  4. A few things:
    1) Thanks for the work on this pluigin
    2) It (mostly) works in WP 3.7.1
    3) Your GitHub site does not allow users (at least me) to add issues, it only returns a 404 error.
    4) Ok, I think I found a bug that prevents the plugin from ever reporting a failure…

    In the “forms-3rdparty-integration.php” file, I can see in the “on_response_failure” function that it is supposed to call the hook “remote_failure”. In my case, since I am using Contact Form 7, this calls the “remote_failure” method in the “contactform7.php” file. Or, at least it should.
    For some reason I do not yet understand, it logs an error when attempting the “apply-filters” call in “on_response_failure”, indicating that the function is expecting the first parameter to be passed by reference, but that it was being passed by value. I was only able to get it to run by altering the “remote_failure” function to take it’s parameters by value (i.e. remove the & before each parameter).
    Note: this also needed to be done to the “remote_success” method to get it to work.

    FWIW, I am using WP 3.7.1 and PHP 5.4.4

    Hope this helps someone else…

    • I think what you’re reporting has more to do with php 5.4 than wp, I’m pretty sure pass-by-ref has been deprecated fully in newer php since I wrote the plugin. Someone else caught a similar issue (see wp forum), which I just recently fixed, but like you found there are probably more “hidden gems” lying around.

      I’m almost more concerned that you can’t report on github- are you sure you’re logged in? Maybe gh was down for maintenance when you tried? Can you try again?

      I’ll try to push a fix in the near future; thanks for letting me know!

  5. Hello Zaus,

    This is a great add-on for Gravity Forms and works perfectly.

    One question, is there any way to see the final remapped Submission URL made via the remote request with the variables and parameter values appended?

    Perhaps maybe in the debug email to help determine issues with posting to 3-rdparty services?

    example : http://www.salesforce.com/servlet/servlet.WebToLead?encoding=utf-8&oid=1&returl=www.example.com&firstname=rafael

    etc etc /

    I see [url] => and *** Post (Form) *** links in debug emails but don’t see the final Submission URL.

    Thanks in advance for any help.

    • Glad it’s working well for you!

      If you’re looking for the URL to which the post is being sent, it’s whatever you entered in the “Submission URL” field of each service administration section. It’s also part of the debug email at the very top under the *** Service *** section — you’ll see [name] then [url]. Because this is a POST, the url isn’t affected, but you’ll see all of the mapped fields in the *** Post (to Service) *** section of the debug email. If there was a failure, you’ll also see this information in a ‘failure email’, assuming you’ve provided your email address in the ‘global values’ section of the plugin admin.

  6. Hey Zaus,
    That’s an amazing pluging. I’m getting the perfect feeback in the debugging email.
    The only thing that i need is … That when the visitor submits the form, he’s redirected to the page targeted by the action of the form. This page will contain the data he just filled so he can “confirm” his data and validate them.
    Any idea how to do that ? Is there any way to show the results of the second form that receives the input data ?

    Thanks so much for this plugin !

    • Hm…that’s tricky; my plugin doesn’t really interrupt the contact form plugins (CF7/GF) but hooks in to operate in parallel. If you’re using Gravity Forms I found this suggestion — http://gravitywiz.com/better-pre-submission-confirmation/ — not sure if it works.

      You might be able to set up a custom page as a 3rdparty service which could accept and preview the submission data, then have that page submit back to the same URL that the original form accepted, but you’d need to use a hook to “break” the original submission or you’d get 2 emails (if that matters).

      You’re probably better off “faking” a preview via javascript — add a click event to the submit button that will:

      1. Interrupt submission (e.preventDefault()) if “a condition” is true
      2. Create a popup/lightbox/ajax of the field values with the ‘verify’ message
      3. Put a button in the popup that, when clicked, sets the above “condition” to false and triggers the submit button again
  7. We run both contact form 7 and Gravity Forms…the data goes into a database and then is shot to our lead management with your plugin 3rd party. When we submit the form, we get a page with warnings:

    Warning: get_class() expects parameter 1 to be object, array given in /home/eticampus/public_html/wp-content/plugins/forms-3rdparty-integration/plugins/contactform7.php on line 72

    Warning: get_class() expects parameter 1 to be object, array given in /home/eticampus/public_html/wp-content/plugins/forms-3rdparty-integration/plugins/contactform7.php on line 72
    Thanks for contacting us! We will get in touch with you shortly.

    How can I fix this, and I assume it should be pointing to the gravityforms.php? My database (and gravity forms catch is turned on) grabber will not get this data, but it does send the notification emails.

    Please help with this great plugin!!!
    Steve

    • That’s a small bug that I haven’t seen show up yet, even though I’ve been testing with debug logging and with both forms active. It is just a warning, so it shouldn’t have interfered with processing, but I’m probably running a lower version of PHP, so maybe it’s different for your hosting.

      I just pushed a fix with v1.6.3 — let me know if that helps.

  8. I’m trying to get the post action to actually redirect the client to a payment gateway once they click submit on my form.
    I configured some hidden field on the CF7 and mapped filed using the 3rd party plugin, and i need these field values to be posted to the payment URL so the payment page successfully works.

    I turned on the debug mode and I don’t get any error in response (attached bellow).
    And despite this it is not redirect the page to the url set in “submission url”

    Do I need to add hook? witch on?

    Thanks Shiran.

Leave a Reply

Your email address will not be published. Required fields are marked *