When performing tasks using the Gravity Forms API, handling notifications and hook execution on demand is something that becomes really handy.
<?php
trait GravityForm{
function GravityForm_send_notifications($form_id, $entry_id){
// Get the array info for our forms and entries
// that we need to send notifications for
$form = RGFormsModel::get_form_meta($form_id);
$entry = RGFormsModel::get_lead($entry_id);
// Loop through all the notifications for the
// form so we know which ones to send
$notification_ids = array();
foreach($form['notifications'] as $id => $info){
array_push($notification_ids, $id);
}
// Send the notifications
GFCommon::send_notifications($notification_ids, $form, $entry);
}
function GravityForm_execute_hooks($form_id, $entry_id){
$form = GFAPI::get_form( $form_id );
$entry = GFAPI::get_entry( $entry_id );
$registered_addons = GFAddOn::get_registered_addons( );
foreach( $registered_addons as $reg){
if(method_exists($reg, "get_instance")){
$execute = $reg::get_instance();
foreach($registered_addons as $addon){
$execute->maybe_process_feed( $entry, $form);
}
}
}
return true;
}
}
