Events & Hooks
If you wish to extend the capabilities of Freeform, you can use any of the events and hooks below:
Events for Freeform Forms
onBeforeSubmit#- Called when a form is submitted, but before a submission model is being made
- Contains these parameters:
form- theFormobject
onAfterSubmit#- Called after saving the submission and saving the form
- Contains these parameters:
form- theFormobjectsubmission- theFreeform_SubmissionModel
onBeforeSave#- Called before saving a form
- Contains these parameters:
model- theFreeform_FormModelisNew- boolean value
onAfterSave#- Called after saving a form
- Contains these parameters:
model- theFreeform_FormModelisNew- boolean value
onBeforeDelete#- Called before deleting a form
- Contains these parameters:
model- theFreeform_FormModel
onAfterDelete#- Called after deleting a form
- Contains these parameters:
model- theFreeform_FormModel
Events for Freeform Submissions
onBeforeSave#- Called before saving a submission
- Contains these parameters:
model- theFreeform_SubmissionModelisNew- boolean value
onAfterSave#- Called after saving a submission
- Contains these parameters:
model- theFreeform_SubmissionModelisNew- boolean value
onBeforeDelete#- Called before deleting a submission
- Contains these parameters:
model- theFreeform_SubmissionModel
onAfterDelete#- Called after deleting a submission
- Contains these parameters:
model- theFreeform_SubmissionModel
Events for Freeform Fields
onBeforeSave#- Called before saving a field
- Contains these parameters:
model- theFreeform_FieldModelisNew- boolean value
onAfterSave#- Called after saving a field
- Contains these parameters:
model- theFreeform_FieldModelisNew- boolean value
onBeforeDelete#- Called before deleting a field
- Contains these parameters:
model- theFreeform_FieldModel
onAfterDelete#- Called after deleting a field
- Contains these parameters:
model- theFreeform_FieldModel
Events for Freeform Notifications
onBeforeSave#- Called before saving a notification
- Contains these parameters:
model- theFreeform_NotificationModelisNew- boolean value
onAfterSave#- Called after saving a notification
- Contains these parameters:
model- theFreeform_NotificationModelisNew- boolean value
onBeforeDelete#- Called before deleting a notification
- Contains these parameters:
model- theFreeform_NotificationModel
onAfterDelete#- Called after deleting a notification
- Contains these parameters:
model- theFreeform_NotificationModel
Events for Freeform Statuses
onBeforeSave#- Called before saving a status
- Contains these parameters:
model- theFreeform_StatusModelisNew- boolean value
onAfterSave#- Called after saving a status
- Contains these parameters:
model- theFreeform_StatusModelisNew- boolean value
onBeforeDelete#- Called before deleting a status
- Contains these parameters:
model- theFreeform_StatusModel
onAfterDelete#- Called after deleting a status
- Contains these parameters:
model- theFreeform_StatusModel
Events for Freeform File Uploads
onBeforeUpload#- Called before uploading a file
- Contains these parameters:
field- theFileUploadFieldform- theFormobject
onAfterUpload#- Called after uploading a file
- Contains these parameters:
field- theFileUploadFieldassetId- boolean valueform- theFormobject
Events for Freeform Mailing
onBeforeSend#- Called before sending an email
- Contains these parameters:
model- theEmailModel
onAfterSend#- Called after sending an email
- Contains these parameters:
model- theEmailModelisSent- boolean value
Events for Freeform CRM Integrations
onBeforeSave#- Called before saving an integration
- Contains these parameters:
model- theFreeform_IntegrationModelisNew- boolean value
onAfterSave#- Called after saving an integration
- Contains these parameters:
model- theFreeform_IntegrationModelisNew- boolean value
onBeforeDelete#- Called before deleting an integration
- Contains these parameters:
model- theFreeform_IntegrationModel
onAfterDelete#- Called after deleting an integration
- Contains these parameters:
model- theFreeform_IntegrationModel
Events for Freeform Mailing-List Integrations
onBeforeSave#- Called before saving an integration
- Contains these parameters:
model- theFreeform_IntegrationModelisNew- boolean value
onAfterSave#- Called after saving an integration
- Contains these parameters:
model- theFreeform_IntegrationModelisNew- boolean value
onBeforeDelete#- Called before deleting an integration
- Contains these parameters:
model- theFreeform_IntegrationModel
onAfterDelete#- Called after deleting an integration
- Contains these parameters:
model- theFreeform_IntegrationModel
Usage instructions
In your plugin's ::init() method, subscribe to any of these events by using the craft()->on() method:
<?php
namespace Craft;
class YourPlugin extends BasePlugin
{
public function init()
{
parent::init();
// Forms
craft()->on(
"freeform_forms.onBeforeSave",
function (Event $event) {
$form = $event->params["model"];
// Do something with this data
}
);
// Submissions
craft()->on(
"freeform_submissions.onAfterSave",
function (Event $event) {
$submission = $event->params["model"];
$isNew = $event->params["isNew"];
// Do something with this data
}
);
// Fields
craft()->on(
"freeform_fields.onBeforeDelete",
function (Event $event) {
$field = $event->params["model"];
// Do something with this data
}
);
// Notifications
craft()->on(
"freeform_notifications.onAfterDelete",
function (Event $event) {
$notification = $event->params["model"];
// Do something with this data
}
);
// Statuses
craft()->on(
"freeform_statuses.onBeforeSave",
function (Event $event) {
$status = $event->params["model"];
// Do something with this data
}
);
// File Uploads
craft()->on(
"freeform_files.onAfterUpload",
function (Event $event) {
$field = $event->params["field"];
$assetId = $event->params["assetId"];
// Do something with this data
}
);
// Mailing
craft()->on(
"freeform_mailer.onAfterSend",
function (Event $event) {
$model = $event->params["model"];
$isSent = $event->params["isSent"];
// Do something with this data
}
);
// CRM Integrations
craft()->on(
"freeform_crm.onBeforeSave",
function (Event $event) {
$crmIntegration = $event->params["model"];
// Do something with this data
}
);
// Mailing List Integrations
craft()->on(
"freeform_mailingLists.onBeforeSave",
function (Event $event) {
$mailingListIntegration = $event->params["model"];
// Do something with this data
}
);
}
}