Automator_Recipe_Process_User::maybe_trigger_add_any_option_meta( $option_meta, null $save_for_option = null )
Validate if the number of times of a trigger condition met
Parameters Parameters
- $option_meta
-
(Required)
- $save_for_option
-
(Optional)
Default value: null
Return Return
(array)
Source Source
File: src/core/lib/process/class-automator-recipe-process-user.php
public function maybe_trigger_add_any_option_meta( $option_meta, $save_for_option = null ) { if ( is_null( $save_for_option ) ) { return array( 'result' => false, 'error' => __( 'Option meta not defined.', 'uncanny-automator' ), ); } $trigger_id = key_exists( 'trigger_id', $option_meta ) ? absint( $option_meta['trigger_id'] ) : null; $user_id = key_exists( 'user_id', $option_meta ) ? absint( $option_meta['user_id'] ) : null; $trigger_log_id = key_exists( 'trigger_log_id', $option_meta ) ? absint( $option_meta['trigger_log_id'] ) : null; $post_id = key_exists( 'post_id', $option_meta ) ? $option_meta['post_id'] : null; $is_signed_in = Automator()->is_user_signed_in( $option_meta ); $run_number = Automator()->get->next_run_number( $option_meta['recipe_id'], $user_id, true ); $trigger = key_exists( 'trigger', $option_meta ) ? $option_meta['trigger'] : null; $trigger_meta = ! empty( $save_for_option ) ? $save_for_option : null; if ( null === $trigger_id || null === $trigger || null === $user_id ) { return array( 'result' => false, 'error' => 'One of the required field is missing.', ); } $args = array( 'user_id' => $user_id, 'trigger_id' => $trigger_id, 'meta_key' => $trigger_meta, 'meta_value' => $post_id, 'run_number' => $run_number, 'trigger_log_id' => $trigger_log_id, ); $meta_already_saved = Automator()->get->maybe_get_meta_id_from_trigger_log( $run_number, $trigger_id, $trigger_log_id, $trigger_meta, $user_id ); if ( ! $meta_already_saved ) { return array( 'result' => Automator()->db->trigger->add_meta( $trigger_id, $trigger_log_id, $run_number, $args ), 'error' => __( 'Meta entry added.', 'uncanny-automator' ), ); } if ( is_numeric( $meta_already_saved ) ) { $args['trigger_log_meta_id'] = $meta_already_saved; return array( 'result' => $this->update_trigger_meta( $user_id, $trigger_id, $trigger_meta, $post_id, $trigger_log_id ), 'error' => __( 'Meta entry updated.', 'uncanny-automator' ), ); } return array( 'result' => false, 'error' => __( 'No action happened.', 'uncanny-automator' ), ); }
Expand full source code Collapse full source code View on Github