Wpp_Tokens::wp_polls_token( string $value, array $pieces, string $recipe_id,  $trigger_data,  $user_id,  $replace_args )

Parse the token.


Parameters Parameters

$value

(string) (Required) .

$pieces

(array) (Required) .

$recipe_id

(string) (Required) .

$trigger_data

(Required)

$user_id

(Required)

$replace_args

(Required)


Top ↑

Return Return

(null|string)


Source Source

File: src/integrations/wp-polls/tokens/wpp-tokens.php

	public function wp_polls_token( $value, $pieces, $recipe_id, $trigger_data, $user_id, $replace_args ) {

		if ( $pieces ) {
			if (
				in_array( 'WPPOLLANSWERSUBMIT', $pieces, true )
				|| in_array( 'WPPOLLSUBMIT', $pieces, true )
			) {

				global $wpdb;
				$trigger_id     = $pieces[0];
				$trigger_meta   = $pieces[2];
				$trigger_log_id = isset( $replace_args['trigger_log_id'] ) ? absint( $replace_args['trigger_log_id'] ) : 0;

				$poll_id = $wpdb->get_var( "SELECT meta_value
													FROM {$wpdb->prefix}uap_trigger_log_meta
													WHERE meta_key = 'WPPOLL'
													AND automator_trigger_log_id = $trigger_log_id
													AND automator_trigger_id = $trigger_id
													LIMIT 0, 1" );

				switch ( $trigger_meta ) {
					case 'WPPOLL':

						// Get Poll Questions
						$question = $wpdb->get_var( "SELECT pollq_question FROM $wpdb->pollsq WHERE pollq_id = $poll_id" );

						if ( null !== $question ) {
							return $question;
						}
						break;
					case 'WPPOLL_ANSWERS':

						// Get Poll Answers
						$answers = $wpdb->get_results( "SELECT polla_answers FROM $wpdb->pollsa WHERE polla_qid = $poll_id ORDER BY polla_aid DESC" );

						if ( null !== $answers ) {
							$value = '';
							foreach ( $answers as $answer ) {
								$value .= $answer->polla_answers . "\r\n";
							}

							return apply_filters( 'uap_wp_polls_token_WPPOLL_ANSWERS', $value, $poll_id, $answers, $trigger_id, $trigger_meta, $trigger_log_id );
						}

						break;
					case 'WPPOLL_START':

						// Get Poll start timestamp
						$start_timestamp = $wpdb->get_var( "SELECT pollq_timestamp FROM $wpdb->pollsq WHERE pollq_id = $poll_id" );

						if ( null !== $start_timestamp && absint( $start_timestamp ) ) {
							$poll_date = mysql2date( sprintf( __( '%s @ %s', 'wp-polls' ), get_option( 'date_format' ), get_option( 'time_format' ) ), gmdate( 'Y-m-d H:i:s', $start_timestamp ) );

							return $poll_date;
						}

						return __( 'Not set', 'uncanny-automator' );
						break;
					case 'WPPOLL_END':

						// Get Poll end timestamp
						$end_timestamp = $wpdb->get_var( "SELECT pollq_expiry FROM $wpdb->pollsq WHERE pollq_id = $poll_id" );

						if ( null !== $end_timestamp && absint( $end_timestamp ) ) {
							$poll_date = mysql2date( sprintf( __( '%s @ %s', 'wp-polls' ), get_option( 'date_format' ), get_option( 'time_format' ) ), gmdate( 'Y-m-d H:i:s', $end_timestamp ) );

							return $poll_date;
						}

						return __( 'Not set', 'uncanny-automator' );
						break;
					case 'WPPOLLANSWER':
					case 'WPPOLL_WPPOLLANSWER':

						// Get user's answer ids
						$answer_ids = $wpdb->get_var( "SELECT meta_value
													FROM {$wpdb->prefix}uap_trigger_log_meta
													WHERE meta_key = 'WPPOLLANSWER'
													AND automator_trigger_log_id = $trigger_log_id
													AND automator_trigger_id = $trigger_id
													LIMIT 0, 1" );

						if ( null !== $answer_ids ) {

							$answer_ids = maybe_unserialize( $answer_ids );
							$ids        = join( "','", $answer_ids );

							// Get user's Poll Answers
							$answers = $wpdb->get_results( "SELECT polla_answers FROM $wpdb->pollsa WHERE polla_qid = $poll_id AND polla_aid IN ('$ids') ORDER BY polla_aid DESC" );

							if ( null !== $answers ) {
								$value = '';
								foreach ( $answers as $answer ) {
									$value .= $answer->polla_answers . "\r\n";
								}

								return apply_filters( 'uap_wp_polls_token_WPPOLLANSWER', $value, $poll_id, $answers, $trigger_id, $trigger_meta, $trigger_log_id );
							}
						}
						break;
				}

				return '';
			}
		}

		return $value;
	}