Automator_Input_Parser::replace_recipe_variables( $replace_args, $args = array(), $source_trigger_id )
Parameters Parameters
- $replace_args
-
(Required)
- $args
-
(Optional)
Default value: array()
Return Return
(string)
Source Source
File: src/core/lib/utilities/class-automator-input-parser.php
public function replace_recipe_variables( $replace_args, $args = array() ) { // $pieces = $replace_args['pieces']; $recipe_id = $replace_args['recipe_id']; $trigger_log_id = $replace_args['trigger_log_id']; $run_number = $replace_args['run_number']; $user_id = $replace_args['user_id']; $trigger_id = absint( $pieces[0] ); $trigger = Automator()->get_trigger_data( $recipe_id, $trigger_id ); $trigger_data = array( $trigger ); $return = ''; // save trigger ID in the $replace_args $replace_args['trigger_id'] = $trigger_id; if ( is_null( $user_id ) && 0 !== absint( $user_id ) ) { $user_id = wp_get_current_user()->ID; } foreach ( $pieces as $piece ) { $is_relevant_token = false; if ( strpos( $piece, '_ID' ) !== false || strpos( $piece, '_URL' ) !== false ) { $is_relevant_token = true; $sub_piece = explode( '_', $piece, 2 ); $piece = $sub_piece[0]; } if ( ! isset( $trigger['meta'] ) ) { continue; } if ( ! key_exists( $piece, $trigger['meta'] ) ) { continue; } if ( is_numeric( $trigger['meta'][ $piece ] ) ) { switch ( $piece ) { case 'WPPOST': case 'WPPAGE': if ( isset( $sub_piece ) && key_exists( 1, $sub_piece ) ) { if ( 'ID' === $sub_piece[1] ) { $return = $trigger['meta'][ $piece ]; } elseif ( 'URL' === $sub_piece[1] ) { $return = get_permalink( $trigger['meta'][ $piece ] ); } } else { $return = html_entity_decode( get_the_title( $trigger['meta'][ $piece ] ), ENT_QUOTES, 'UTF-8' ); } break; case 'NUMTIMES': $return = $trigger['meta'][ $piece ]; break; case 'WPUSER': $user_id = absint( $trigger['meta'][ $piece ] ); $user = get_user_by( 'ID', $user_id ); if ( $user ) { $return = $user->user_email; } else { $return = ''; } break; default: if ( intval( '-1' ) === intval( $trigger['meta'][ $piece ] ) ) { //Find stored post_id for piece, i.e., LDLESSON, LDTOPIC set to Any $post_id = Automator()->get->maybe_get_meta_value_from_trigger_log( $piece, $trigger_id, $trigger_log_id, $run_number, $user_id ); if ( is_numeric( $post_id ) ) { if ( $is_relevant_token ) { if ( 'ID' === $sub_piece[1] ) { $return = $post_id; } elseif ( 'URL' === $sub_piece[1] ) { $return = get_the_permalink( $post_id ); } } else { $return = html_entity_decode( get_the_title( $post_id ), ENT_QUOTES, 'UTF-8' ); } } else { /* translators: Article. Fallback. Any type of content (post, page, media, etc) */ $return = esc_attr__( 'Any', 'uncanny-automator' ); } } elseif ( ! preg_match( '/ANON/', $piece ) ) { if ( $is_relevant_token ) { if ( 'ID' === $sub_piece[1] ) { $return = $trigger['meta'][ $piece ]; } elseif ( 'URL' === $sub_piece[1] ) { $return = get_the_permalink( $trigger['meta'][ $piece ] ); } } else { $return = html_entity_decode( get_the_title( $trigger['meta'][ $piece ] ), ENT_QUOTES, 'UTF-8' ); } } else { $return = ''; } break; } } else { //Non numeric data.. passed custom post type switch ( $piece ) { case 'WPPOSTTYPES': $return = key_exists( 'post_type_label', $args ) && ! empty( $args['post_type_label'] ) ? $args['post_type_label'] : ''; break; } } } $return = $this->v3_parser( $return, $replace_args, $args ); $return = apply_filters( 'automator_maybe_parse_token', $return, $pieces, $recipe_id, $trigger_data, $user_id, $replace_args ); /* * May be run a do_shortcode on the field itself if it contains a shortcode? * Ticket# 22255 * @since 3.0 */ return do_shortcode( $return ); }
Expand full source code Collapse full source code View on Github