Search code examples
phpformsdrupaldrupal-7drupal-webform

Hooking a Drupal Webform submission


I'm developing a Drupal 7 website. The website has a couple of forms which take a users email address. As part of the process I need to be able to submit the email to a mailing list across an API.

I have all the calls written and tested for adding new users to mailing lists etc. What I'm not so sure of is how I get this code to run when the form is submitted on the Drupal site.

I assume there will be a hook function but I'm struggling to track it down. My forms are setup using Webforms module.


Solution

  • Use hook_form_alter() to hook in your webform instance & add an additional submit handler:

    /**
     * Implements hook_form_alter().
     */
    function hook_form_alter(&$form, $form_state, $form_id) { 
        if ($form_id == 'webform_client_form_{some id}')
        {
            array_unshift($form['#submit'], 'custom_webform_submit');
        }
    }
    

    Next in custom_webform_submit() execute your custom code:

    function custom_webform_submit($form, $form_state) {
        // custom code here
    }