public static function action_conditions_met($action, $entry) { _deprecated_function(__FUNCTION__, '2.0.9', 'FrmFormAction::action_conditions_met'); return FrmFormAction::action_conditions_met($action, $entry); }
/** * @param string $event */ public static function trigger_actions($event, $form, $entry, $type = 'all', $args = array()) { $form_actions = FrmFormAction::get_action_for_form(is_object($form) ? $form->id : $form, $type); if (empty($form_actions)) { return; } FrmForm::maybe_get_form($form); $link_settings = self::get_form_actions($type); if ('all' != $type) { $link_settings = array($type => $link_settings); } $stored_actions = $action_priority = array(); foreach ($form_actions as $action) { if (!in_array($event, $action->post_content['event'])) { continue; } if (!is_object($entry)) { $entry = FrmEntry::getOne($entry, true); } if (empty($entry) || $entry->is_draft) { continue; } $child_entry = $form && is_numeric($form->parent_form_id) && $form->parent_form_id || $entry && ($entry->form_id != $form->id || $entry->parent_item_id) || isset($args['is_child']) && $args['is_child']; if ($child_entry) { //don't trigger actions for sub forms continue; } // check conditional logic $stop = FrmFormAction::action_conditions_met($action, $entry); if ($stop) { continue; } // store actions so they can be triggered with the correct priority $stored_actions[$action->ID] = $action; $action_priority[$action->ID] = $link_settings[$action->post_excerpt]->action_options['priority']; unset($action); } if (!empty($stored_actions)) { asort($action_priority); // make sure hooks are loaded new FrmNotification(); foreach ($action_priority as $action_id => $priority) { $action = $stored_actions[$action_id]; do_action('frm_trigger_' . $action->post_excerpt . '_action', $action, $entry, $form, $event); do_action('frm_trigger_' . $action->post_excerpt . '_' . $event . '_action', $action, $entry, $form); // If post is created, get updated $entry object if ($action->post_excerpt == 'wppost' && $event == 'create') { $entry = FrmEntry::getOne($entry->id, true); } } } }
/** * @param string $event */ public static function trigger_actions($event, $form, $entry, $type = 'all', $args = array()) { $form_actions = FrmFormAction::get_action_for_form(is_object($form) ? $form->id : $form, $type); if (empty($form_actions)) { return; } FrmForm::maybe_get_form($form); $link_settings = self::get_form_actions($type); if ('all' != $type) { $link_settings = array($type => $link_settings); } $stored_actions = $action_priority = array(); $importing = in_array($event, array('create', 'update')) && defined('WP_IMPORTING') && WP_IMPORTING; foreach ($form_actions as $action) { $trigger_on_import = $importing && in_array('import', $action->post_content['event']); $skip_this_action = !in_array($event, $action->post_content['event']) && !$trigger_on_import; $skip_this_action = apply_filters('frm_skip_form_action', $skip_this_action, compact('action', 'entry', 'form', 'event')); if ($skip_this_action) { continue; } if (!is_object($entry)) { $entry = FrmEntry::getOne($entry, true); } if (empty($entry) || $entry->is_draft && $event != 'draft') { continue; } $child_entry = $form && is_numeric($form->parent_form_id) && $form->parent_form_id || $entry && ($entry->form_id != $form->id || $entry->parent_item_id) || isset($args['is_child']) && $args['is_child']; if ($child_entry) { // maybe trigger actions for sub forms $trigger_children = apply_filters('frm_use_embedded_form_actions', false, compact('form', 'entry')); if (!$trigger_children) { continue; } } // check conditional logic $stop = FrmFormAction::action_conditions_met($action, $entry); if ($stop) { continue; } // store actions so they can be triggered with the correct priority $stored_actions[$action->ID] = $action; $action_priority[$action->ID] = $link_settings[$action->post_excerpt]->action_options['priority']; unset($action); } if (!empty($stored_actions)) { asort($action_priority); // make sure hooks are loaded new FrmNotification(); foreach ($action_priority as $action_id => $priority) { $action = $stored_actions[$action_id]; do_action('frm_trigger_' . $action->post_excerpt . '_action', $action, $entry, $form, $event); do_action('frm_trigger_' . $action->post_excerpt . '_' . $event . '_action', $action, $entry, $form); // If post is created, get updated $entry object if ($action->post_excerpt == 'wppost' && $event == 'create') { $entry = FrmEntry::getOne($entry->id, true); } } } }