コード例 #1
0
 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);
 }
コード例 #2
0
 /**
  * @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);
             }
         }
     }
 }
コード例 #3
0
 /**
  * @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);
             }
         }
     }
 }