![]() I will show you ways to alter those field values before passing them into our remote url query. Use any form items you need and adjust the code as needed. Create a simple webformįor our form, we required a date form item with the name of start_date, a date form item with the name of end_date, and a taxonomy select form item with the name lodging_category, where we choose from a list of terms. How We're Doing It: 10 StepsĮven though this example is based on working with Bookdirect, I will try to keep the code somewhat generalized so that you can hopefully adjust it to your needs. For example, if you need to alter a value before the submission is initially saved, you can use hook_webform_handler_invoke_pre_save_alter. Looking at the method name in these hooks, you can see when they act on a webform submission. hook_webform_handler_invoke_post_save_alter.hook_webform_handler_invoke_pre_save_alter.hook_webform_handler_invoke_post_delete_alter.hook_webform_handler_invoke_pre_delete_alter.hook_webform_handler_invoke_post_load_alter.hook_webform_handler_invoke_post_create_alter.hook_webform_handler_invoke_pre_create_alter.Įven if the results are set to not save, webforms will still trigger this "post save" hook. Versions of these hooks are: Hook_webform_handler_invoke_post_save_alter. ![]() More specifically, since we want to act after saving and everything else has ran, the hook we want is: That hook is hook_webform_handler_invoke_alter and hook_webform_handler_invoke_METHOD_NAME_alter. And while we wanted to give our client the freedom to add more fields to the webform in the future, we wanted to keep it simple for them so they would only have to add the correct base URL and not have to worry about any code.įor our form, it wasn't necessary to save any submitted results, however, we are going to use a webform api hook that fires right after a submission would normally be saved. Our remote submission handler will define our base URL, but outside of that, the handler doesn't give us much else to do what we need to do in the UI. Ultimately, we are using a Drupal webform, to send the user to Bookdirect/Jackrabbit with their lodging search filled in. In our case, the third party site is, the client is a Destination Marketing Organization (DMO) and we need to format the submitted values to work with their jackrabbit api. We will use a remote submission handler to tell Drupal that when the form is submitted, it also needs to submit those values to a remote, third party URL. We are going to have a webform modify the submitted results into a query string, and redirect the user to a third party url with the query attached. We will look at one way to integrate the power of webforms with some third party integration and custom code. Overview: Submitting Results to a Third Party Site as a Query But every now and then a situation arises where you need to get into the guts of create some custom webform magic to get the job done. It can do even more with the multitude of its contributed modules. In Drupal 8, the Webform module can do a lot out of the box. * Implements hook_webform_submission_presave().What We're Doing Here: Webforms and Third Party Integration Users filling in the info wouldn't even realize they are there. The first thing I did was create 2 hidden fields on the webform for the first and last names. And yes, I needed the webform submission to contain the names. And since I already have their first and last names in the $user object, I wasn't going to ask them to provide them again in the webform. ![]() ![]() My user accounts had some fields on it (first and last name) and all users on the site were invited to submit once a particular webform. ![]() Why would you need it? To illustrate how you can use it, I am going to show you what I needed, followed by how I implemented it with hook_webform_submission_presave(). And we have available as parameters the $node object and the $submission object that contains the data and that can be altered (passed by reference). This function gets called whenever a user submits a form but before the submission gets saved. Interfere sounds like a negative thing but because the Webform module is so awesome, we can perform all sorts of operations on the submitted data before saving it.Īmong the many API functions the Webform module comes with, a cool one is hook_webform_submission_presave() and that's what we will look at in this article. In this article we are going to look at a cool Webform api function that allows us to interfere with the submissions being saved to the database. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |