Wpjm_Tokens

Class Wpjm_Tokens


Source Source

File: src/integrations/wp-job-manager/tokens/wpjm-tokens.php

class Wpjm_Tokens {
	/**
	 * Integration code
	 * @var string
	 */
	public static $integration = 'WPJM';
	public function __construct() {
		add_filter( 'automator_maybe_trigger_wpjm_wpjmjobtype_tokens', [ $this, 'wpjm_possible_tokens' ], 20, 2 );
		add_filter( 'automator_maybe_trigger_pre_tokens', [ $this, 'wpjm_resume_possible_tokens' ], 20, 2 );
		add_filter( 'automator_maybe_trigger_wpjm_wpjmjobapplication_tokens', [
			$this,
			'wpjm_jobapplication_possible_tokens',
		], 20, 2 );
		add_filter( 'automator_maybe_parse_token', [ $this, 'wpjm_token' ], 20, 6 );
	}
	/**
	 * Only load this integration and its triggers and actions if the related plugin is active
	 *
	 * @param $status
	 * @param $plugin
	 *
	 * @return bool
	 */
	public function plugin_active( $status, $plugin ) {
		if ( self::$integration === $plugin ) {
			if ( class_exists( 'WP_Job_Manager' ) ) {
				$status = true;
			} else {
				$status = false;
			}
		}
		return $status;
	}
	/**
	 * @param array $tokens
	 * @param array $args
	 *
	 * @return array
	 */
	function wpjm_possible_tokens( $tokens = array(), $args = array() ) {
		$trigger_integration = $args['integration'];
		$trigger_meta        = $args['meta'];
		$fields = [
			[
				'tokenId'         => 'WPJMJOBOWNERNAME',
				'tokenName'       => __( 'Job owner username', 'uncanny-automator' ),
				'tokenType'       => 'text',
				'tokenIdentifier' => 'WPJMSUBMITJOB',
			],
			[
				'tokenId'         => 'WPJMJOBOWNEREMAIL',
				'tokenName'       => __( 'Job owner email', 'uncanny-automator' ),
				'tokenType'       => 'text',
				'tokenIdentifier' => 'WPJMSUBMITJOB',
			],
			[
				'tokenId'         => 'WPJMJOBOWNERFIRSTNAME',
				'tokenName'       => __( 'Job owner first name', 'uncanny-automator' ),
				'tokenType'       => 'text',
				'tokenIdentifier' => 'WPJMSUBMITJOB',
			],
			[
				'tokenId'         => 'WPJMJOBOWNERLASTNAME',
				'tokenName'       => __( 'Job owner last name', 'uncanny-automator' ),
				'tokenType'       => 'text',
				'tokenIdentifier' => 'WPJMSUBMITJOB',
			],
			[
				'tokenId'         => 'WPJMJOBTITLE',
				'tokenName'       => __( 'Job title', 'uncanny-automator' ),
				'tokenType'       => 'text',
				'tokenIdentifier' => 'WPJMSUBMITJOB',
			],
			[
				'tokenId'         => 'WPJMJOBLOCATION',
				'tokenName'       => __( 'Location', 'uncanny-automator' ),
				'tokenType'       => 'text',
				'tokenIdentifier' => 'WPJMSUBMITJOB',
			],
			[
				'tokenId'         => 'WPJMJOBDESCRIPTION',
				'tokenName'       => __( 'Job description', 'uncanny-automator' ),
				'tokenType'       => 'text',
				'tokenIdentifier' => 'WPJMSUBMITJOB',
			],
			[
				'tokenId'         => 'WPJMJOBAPPURL',
				'tokenName'       => __( 'Application email/URL', 'uncanny-automator' ),
				'tokenType'       => 'text',
				'tokenIdentifier' => 'WPJMSUBMITJOB',
			],
			[
				'tokenId'         => 'WPJMJOBCOMPANYNAME',
				'tokenName'       => __( 'Company name', 'uncanny-automator' ),
				'tokenType'       => 'text',
				'tokenIdentifier' => 'WPJMSUBMITJOB',
			],
			[
				'tokenId'         => 'WPJMJOBWEBSITE',
				'tokenName'       => __( 'Website', 'uncanny-automator' ),
				'tokenType'       => 'text',
				'tokenIdentifier' => 'WPJMSUBMITJOB',
			],
			[
				'tokenId'         => 'WPJMJOBTAGLINE',
				'tokenName'       => __( 'Tagline', 'uncanny-automator' ),
				'tokenType'       => 'text',
				'tokenIdentifier' => 'WPJMSUBMITJOB',
			],
			[
				'tokenId'         => 'WPJMJOBVIDEO',
				'tokenName'       => __( 'Video', 'uncanny-automator' ),
				'tokenType'       => 'text',
				'tokenIdentifier' => 'WPJMSUBMITJOB',
			],
			[
				'tokenId'         => 'WPJMJOBTWITTER',
				'tokenName'       => __( 'Twitter username', 'uncanny-automator' ),
				'tokenType'       => 'text',
				'tokenIdentifier' => 'WPJMSUBMITJOB',
			],
			[
				'tokenId'         => 'WPJMJOBLOGOURL',
				'tokenName'       => __( 'Logo URL', 'uncanny-automator' ),
				'tokenType'       => 'text',
				'tokenIdentifier' => 'WPJMSUBMITJOB',
			],
		];
		$tokens = array_merge( $tokens, $fields );
		return $tokens;
	}
	/**
	 * @param array $tokens
	 * @param array $args
	 *
	 * @return array
	 */
	function wpjm_jobapplication_possible_tokens( $tokens = array(), $args = array() ) {
		$trigger_integration = $args['integration'];
		$trigger_meta        = $args['meta'];
		$fields = [
			[
				'tokenId'         => 'WPJMAPPLICATIONNAME',
				'tokenName'       => __( 'Candidate name', 'uncanny-automator' ),
				'tokenType'       => 'text',
				'tokenIdentifier' => 'WPJMJOBAPPLICATIONID',
			],
			[
				'tokenId'         => 'WPJMAPPLICATIONEMAIL',
				'tokenName'       => __( 'Candidate email', 'uncanny-automator' ),
				'tokenType'       => 'text',
				'tokenIdentifier' => 'WPJMJOBAPPLICATIONID',
			],
			[
				'tokenId'         => 'WPJMAPPLICATIONMESSAGE',
				'tokenName'       => __( 'Message', 'uncanny-automator' ),
				'tokenType'       => 'text',
				'tokenIdentifier' => 'WPJMJOBAPPLICATIONID',
			],
			[
				'tokenId'         => 'WPJMAPPLICATIONCV',
				'tokenName'       => __( 'CV', 'uncanny-automator' ),
				'tokenType'       => 'text',
				'tokenIdentifier' => 'WPJMJOBAPPLICATIONID',
			],
			[
				'tokenId'         => 'WPJMJOBTYPE',
				'tokenName'       => __( 'Job type', 'uncanny-automator' ),
				'tokenType'       => 'text',
				'tokenIdentifier' => 'WPJMJOBAPPLICATION',
			],
			[
				'tokenId'         => 'WPJMJOBOWNERNAME',
				'tokenName'       => __( 'Job owner username', 'uncanny-automator' ),
				'tokenType'       => 'text',
				'tokenIdentifier' => 'WPJMJOBAPPLICATION',
			],
			[
				'tokenId'         => 'WPJMJOBOWNEREMAIL',
				'tokenName'       => __( 'Job owner email', 'uncanny-automator' ),
				'tokenType'       => 'text',
				'tokenIdentifier' => 'WPJMJOBAPPLICATION',
			],
			[
				'tokenId'         => 'WPJMJOBOWNERFIRSTNAME',
				'tokenName'       => __( 'Job owner first name', 'uncanny-automator' ),
				'tokenType'       => 'text',
				'tokenIdentifier' => 'WPJMJOBAPPLICATION',
			],
			[
				'tokenId'         => 'WPJMJOBOWNERLASTNAME',
				'tokenName'       => __( 'Job owner last name', 'uncanny-automator' ),
				'tokenType'       => 'text',
				'tokenIdentifier' => 'WPJMJOBAPPLICATION',
			],
			[
				'tokenId'         => 'WPJMJOBTITLE',
				'tokenName'       => __( 'Job title', 'uncanny-automator' ),
				'tokenType'       => 'text',
				'tokenIdentifier' => 'WPJMJOBAPPLICATION',
			],
			[
				'tokenId'         => 'WPJMJOBLOCATION',
				'tokenName'       => __( 'Location', 'uncanny-automator' ),
				'tokenType'       => 'text',
				'tokenIdentifier' => 'WPJMJOBAPPLICATION',
			],
			[
				'tokenId'         => 'WPJMJOBDESCRIPTION',
				'tokenName'       => __( 'Job description', 'uncanny-automator' ),
				'tokenType'       => 'text',
				'tokenIdentifier' => 'WPJMJOBAPPLICATION',
			],
			[
				'tokenId'         => 'WPJMJOBAPPURL',
				'tokenName'       => __( 'Application email/URL', 'uncanny-automator' ),
				'tokenType'       => 'text',
				'tokenIdentifier' => 'WPJMJOBAPPLICATION',
			],
			[
				'tokenId'         => 'WPJMJOBCOMPANYNAME',
				'tokenName'       => __( 'Company name', 'uncanny-automator' ),
				'tokenType'       => 'text',
				'tokenIdentifier' => 'WPJMJOBAPPLICATION',
			],
			[
				'tokenId'         => 'WPJMJOBWEBSITE',
				'tokenName'       => __( 'Website', 'uncanny-automator' ),
				'tokenType'       => 'text',
				'tokenIdentifier' => 'WPJMJOBAPPLICATION',
			],
			[
				'tokenId'         => 'WPJMJOBTAGLINE',
				'tokenName'       => __( 'Tagline', 'uncanny-automator' ),
				'tokenType'       => 'text',
				'tokenIdentifier' => 'WPJMJOBAPPLICATION',
			],
			[
				'tokenId'         => 'WPJMJOBVIDEO',
				'tokenName'       => __( 'Video', 'uncanny-automator' ),
				'tokenType'       => 'text',
				'tokenIdentifier' => 'WPJMJOBAPPLICATION',
			],
			[
				'tokenId'         => 'WPJMJOBTWITTER',
				'tokenName'       => __( 'Twitter username', 'uncanny-automator' ),
				'tokenType'       => 'text',
				'tokenIdentifier' => 'WPJMJOBAPPLICATION',
			],
			[
				'tokenId'         => 'WPJMJOBLOGOURL',
				'tokenName'       => __( 'Logo URL', 'uncanny-automator' ),
				'tokenType'       => 'text',
				'tokenIdentifier' => 'WPJMJOBAPPLICATION',
			],
		];
		$tokens = array_merge( $tokens, $fields );
		return $tokens;
	}
	/**
	 * @param array $tokens
	 * @param array $args
	 *
	 * @return array
	 */
	function wpjm_resume_possible_tokens( $tokens = array(), $args = array() ) {
		$trigger_integration = $args['integration'];
		$trigger_meta        = $args['code'];
		if ( 'WPJMSUBMITRESUME' === $trigger_meta ) {
			$fields = [
				[
					'tokenId'         => 'WPJMRESUMENAME',
					'tokenName'       => __( 'Candidate name', 'uncanny-automator' ),
					'tokenType'       => 'text',
					'tokenIdentifier' => 'WPJMSUBMITRESUME',
				],
				[
					'tokenId'         => 'WPJMRESUMEEMAIL',
					'tokenName'       => __( 'Candidate email', 'uncanny-automator' ),
					'tokenType'       => 'text',
					'tokenIdentifier' => 'WPJMSUBMITRESUME',
				],
				[
					'tokenId'         => 'WPJMRESUMEPROTITLE',
					'tokenName'       => __( 'Professional title', 'uncanny-automator' ),
					'tokenType'       => 'text',
					'tokenIdentifier' => 'WPJMSUBMITRESUME',
				],
				[
					'tokenId'         => 'WPJMRESUMELOCATION',
					'tokenName'       => __( 'Location', 'uncanny-automator' ),
					'tokenType'       => 'text',
					'tokenIdentifier' => 'WPJMSUBMITRESUME',
				],
				[
					'tokenId'         => 'WPJMRESUMEPHOTO',
					'tokenName'       => __( 'Photo', 'uncanny-automator' ),
					'tokenType'       => 'text',
					'tokenIdentifier' => 'WPJMSUBMITRESUME',
				],
				[
					'tokenId'         => 'WPJMRESUMEVIDEO',
					'tokenName'       => __( 'Video', 'uncanny-automator' ),
					'tokenType'       => 'text',
					'tokenIdentifier' => 'WPJMSUBMITRESUME',
				],
				[
					'tokenId'         => 'WPJMRESUMECONTENT',
					'tokenName'       => __( 'Resume content', 'uncanny-automator' ),
					'tokenType'       => 'text',
					'tokenIdentifier' => 'WPJMSUBMITRESUME',
				],
				[
					'tokenId'         => 'WPJMRESUMEURLS',
					'tokenName'       => __( 'URL(s)', 'uncanny-automator' ),
					'tokenType'       => 'text',
					'tokenIdentifier' => 'WPJMSUBMITRESUME',
				],
				[
					'tokenId'         => 'WPJMRESUMEEDUCATION',
					'tokenName'       => __( 'Education', 'uncanny-automator' ),
					'tokenType'       => 'text',
					'tokenIdentifier' => 'WPJMSUBMITRESUME',
				],
				[
					'tokenId'         => 'WPJMRESUMEEXPERIENCE',
					'tokenName'       => __( 'Experience', 'uncanny-automator' ),
					'tokenType'       => 'text',
					'tokenIdentifier' => 'WPJMSUBMITRESUME',
				],
			];
			$tokens = array_merge( $tokens, $fields );
		}
		return $tokens;
	}
	/**
	 * @param $value
	 * @param $pieces
	 * @param $recipe_id
	 * @param $trigger_data
	 * @param $user_id
	 * @param $replace_args
	 *
	 * @return null|string
	 */
	public function wpjm_token( $value, $pieces, $recipe_id, $trigger_data, $user_id, $replace_args ) {
		$piece = 'WPJMSUBMITJOB';
		if ( $pieces ) {
			if ( in_array( $piece, $pieces ) || in_array( 'WPJMJOBAPPLICATION', $pieces ) ) {
				global $wpdb;
				$trigger_id     = $pieces[0];
				$trigger_meta   = $pieces[1];
				$field          = $pieces[2];
				$trigger_log_id = isset( $replace_args['trigger_log_id'] ) ? absint( $replace_args['trigger_log_id'] ) : 0;
				$entry          = $wpdb->get_var( "SELECT meta_value
													FROM {$wpdb->prefix}uap_trigger_log_meta
													WHERE meta_key = '{$trigger_meta}'
													AND automator_trigger_log_id = {$trigger_log_id}
													AND automator_trigger_id = {$trigger_id}
													LIMIT 0,1" );
				$entry = maybe_unserialize( $entry );
				if ( $pieces[2] === 'WPJMJOBTYPE' ) {
					$job_terms   = wpjm_get_the_job_types( $entry );
					$entry_terms = array();
					if ( ! empty( $job_terms ) ) {
						foreach ( $job_terms as $term ) {
							$entry_terms[] = esc_html( $term->name );
						}
					}
					$value = implode( ', ', $entry_terms );
				} elseif ( $pieces[2] === 'WPJMJOBOWNERNAME' ) {
					$job    = get_post( $entry );
					$author = get_user_by( 'ID', $job->post_author );
					if ( $author instanceof \WP_User ) {
						$value = $author->user_login;
					}
				} elseif ( $pieces[2] === 'WPJMJOBOWNEREMAIL' ) {
					$job    = get_post( $entry );
					$author = get_user_by( 'ID', $job->post_author );
					if ( $author instanceof \WP_User ) {
						$value = $author->user_email;
					}
				} elseif ( $pieces[2] === 'WPJMJOBOWNERFIRSTNAME' ) {
					$job    = get_post( $entry );
					$author = get_user_by( 'ID', $job->post_author );
					if ( $author instanceof \WP_User ) {
						$value = $author->first_name;
					}
				} elseif ( $pieces[2] === 'WPJMJOBOWNERLASTNAME' ) {
					$job    = get_post( $entry );
					$author = get_user_by( 'ID', $job->post_author );
					if ( $author instanceof \WP_User ) {
						$value = $author->last_name;
					}
				} elseif ( $pieces[2] === 'WPJMJOBTITLE' || 'WPJMJOBAPPLICATION' === $pieces[2] ) {
					$job   = get_post( $entry );
					$value = $job->post_title;
				} elseif ( $pieces[2] === 'WPJMJOBLOCATION' ) {
					$job   = get_post( $entry );
					$value = get_the_job_location( $job );
				} elseif ( $pieces[2] === 'WPJMJOBDESCRIPTION' ) {
					$job   = get_post( $entry );
					$value = wpjm_get_the_job_description( $job );
				} elseif ( $pieces[2] === 'WPJMJOBAPPURL' ) {
					$job    = get_post( $entry );
					$method = get_the_job_application_method( $job );
					if ( ! empty( $method ) ) {
						if ( 'email' === $method->type ) {
							$value = $method->email;
						} elseif ( 'url' === $method->type ) {
							$value = $method->url;
						}
					}
				} elseif ( $pieces[2] === 'WPJMJOBCOMPANYNAME' ) {
					$job   = get_post( $entry );
					$value = get_the_company_name( $job );
				} elseif ( $pieces[2] === 'WPJMJOBWEBSITE' ) {
					$job   = get_post( $entry );
					$value = get_the_company_website( $job );
				} elseif ( $pieces[2] === 'WPJMJOBTAGLINE' ) {
					$job   = get_post( $entry );
					$value = get_the_company_tagline( $job );
				} elseif ( $pieces[2] === 'WPJMJOBVIDEO' ) {
					$job   = get_post( $entry );
					$value = get_the_company_video( $job );
				} elseif ( $pieces[2] === 'WPJMJOBTWITTER' ) {
					$job   = get_post( $entry );
					$value = get_the_company_twitter( $job );
				} elseif ( $pieces[2] === 'WPJMJOBLOGOURL' ) {
					$job   = get_post( $entry );
					$value = get_the_company_logo( $job );
				}
			}
		}
		$piece_resume = 'WPJMSUBMITRESUME';
		if ( $pieces ) {
			if ( in_array( $piece_resume, $pieces ) || in_array( 'WPJMJOBAPPLICATIONID', $pieces ) ) {
				global $wpdb;
				$trigger_id     = $pieces[0];
				$trigger_meta   = $pieces[1];
				$field          = $pieces[2];
				$trigger_log_id = isset( $replace_args['trigger_log_id'] ) ? absint( $replace_args['trigger_log_id'] ) : 0;
				$entry          = $wpdb->get_var( "SELECT meta_value
													FROM {$wpdb->prefix}uap_trigger_log_meta
													WHERE meta_key = '{$trigger_meta}'
													AND automator_trigger_log_id = {$trigger_log_id}
													AND automator_trigger_id = {$trigger_id}
													LIMIT 0,1" );
				$entry = maybe_unserialize( $entry );
				if ( 'WPJMRESUMENAME' === $pieces[2] || 'WPJMAPPLICATIONNAME' === $pieces[2] ) {
					$resume = get_post( $entry );
					$value  = $resume->post_title;
				} elseif ( 'WPJMRESUMEEMAIL' === $pieces[2] || 'WPJMAPPLICATIONEMAIL' === $pieces[2] ) {
					$resume          = get_post( $entry );
					$candidate_email = get_post_meta( $resume->ID, '_candidate_email', true );
					if ( empty( $candidate_email ) ) {
						$author = get_user_by( 'ID', $job->post_author );
						if ( $author instanceof \WP_User ) {
							$candidate_email = $author->last_name;
						}
					}
					$value = $candidate_email;
				} elseif ( $pieces[2] === 'WPJMRESUMEPROTITLE' ) {
					// check if it has a resume id
					if ( $_resume_id = get_post_meta( $entry, '_resume_id', true ) ) {
						$entry = $_resume_id;
					}
					$resume = get_post( $entry );
					$value  = get_the_candidate_title( $resume );
				} elseif ( $pieces[2] === 'WPJMRESUMELOCATION' ) {
					if ( $_resume_id = get_post_meta( $entry, '_resume_id', true ) ) {
						$entry = $_resume_id;
					}
					$resume = get_post( $entry );
					$value  = get_the_candidate_location( $resume );
				} elseif ( $pieces[2] === 'WPJMRESUMEPHOTO' ) {
					if ( $_resume_id = get_post_meta( $entry, '_resume_id', true ) ) {
						$entry = $_resume_id;
					}
					$resume = get_post( $entry );
					$value  = get_the_candidate_photo( $resume );
				} elseif ( $pieces[2] === 'WPJMRESUMEVIDEO' ) {
					if ( $_resume_id = get_post_meta( $entry, '_resume_id', true ) ) {
						$entry = $_resume_id;
					}
					$resume = get_post( $entry );
					$value  = get_the_candidate_video( $resume );
				} elseif ( 'WPJMRESUMECONTENT' === $pieces[2] ) {
					if ( $_resume_id = get_post_meta( $entry, '_resume_id', true ) ) {
						$entry = $_resume_id;
					}
					$resume = get_post( $entry );
					$value  = $resume->post_content;
				} elseif ( 'WPJMAPPLICATIONMESSAGE' === $pieces[2] ) {
					$resume = get_post( $entry );
					$value  = $resume->post_content;
				} elseif ( $pieces[2] === 'WPJMRESUMEURLS' ) {
					if ( $_resume_id = get_post_meta( $entry, '_resume_id', true ) ) {
						$entry = $_resume_id;
					}
					$resume = get_post( $entry );
					$links  = get_resume_links( $resume );
					$return = '<ul class="resume-links">';
					if ( ! empty( $links ) ) {
						foreach ( $links as $key => $link ) {
							$return .= '<li class="resume-link resume-link-www"><a href="' . esc_url( $link['url'] ) . '" class="' . esc_attr( $key ) . '">' . $link['name'] . '</a></li>';
						}
					}
					$return .= '</ul>';
					$value  = $return;
				} elseif ( $pieces[2] === 'WPJMRESUMEEDUCATION' ) {
					if ( $_resume_id = get_post_meta( $entry, '_resume_id', true ) ) {
						$entry = $_resume_id;
					}
					$resume    = get_post( $entry );
					$education = get_post_meta( $resume->ID, '_candidate_education', true );
					if ( ! empty( $education ) ) {
						$resume_education_str = '';
						foreach ( $education as $key => $item ) {
							// translators: Placeholder is location of education experience.
							$resume_education_str .= sprintf( __( 'Location: %s', 'wp-job-manager-resumes' ), $item['location'] ) . PHP_EOL;
							// translators: Placeholder is date of education experience.
							$resume_education_str .= sprintf( __( 'Date: %s', 'wp-job-manager-resumes' ), $item['date'] ) . PHP_EOL;
							// translators: Placeholder is qualifications/degrees of education experience.
							$resume_education_str .= sprintf( __( 'Qualification: %s', 'wp-job-manager-resumes' ), $item['qualification'] ) . PHP_EOL;
							// translators: Placeholder is notes for education experience.
							$resume_education_str .= sprintf( __( 'Notes: %s', 'wp-job-manager-resumes' ), $item['notes'] ) . PHP_EOL;
							$resume_education_str .= PHP_EOL;
						}
						$value = trim( $resume_education_str, PHP_EOL );
					}
				} elseif ( $pieces[2] === 'WPJMRESUMEEXPERIENCE' ) {
					if ( $_resume_id = get_post_meta( $entry, '_resume_id', true ) ) {
						$entry = $_resume_id;
					}
					$resume     = get_post( $entry );
					$experience = get_post_meta( $resume->ID, '_candidate_experience', true );
					if ( ! empty( $experience ) ) {
						$resume_experience_str = '';
						foreach ( $experience as $key => $item ) {
							// translators: Placeholder is employer name of experience.
							$resume_experience_str .= sprintf( __( 'Employer: %s', 'wp-job-manager-resumes' ), $item['employer'] ) . PHP_EOL;
							// translators: Placeholder is date of experience.
							$resume_experience_str .= sprintf( __( 'Date: %s', 'wp-job-manager-resumes' ), $item['date'] ) . PHP_EOL;
							// translators: Placeholder is job title of experience.
							$resume_experience_str .= sprintf( __( 'Job title: %s', 'wp-job-manager-resumes' ), $item['job_title'] ) . PHP_EOL;
							// translators: Placeholder is notes for experience.
							$resume_experience_str .= sprintf( __( 'Notes: %s', 'wp-job-manager-resumes' ), $item['notes'] ) . PHP_EOL;
							$resume_experience_str .= PHP_EOL;
						}
						$value = trim( $resume_experience_str, PHP_EOL );
					}
				} elseif ( $pieces[2] === 'WPJMAPPLICATIONCV' ) {
					if ( $_resume_id = get_post_meta( $entry, '_resume_id', true ) ) {
						$entry = $_resume_id;
					}
					$return = '';
					if ( $attachments = get_job_application_attachments( $entry ) ) {
						$return = '<ul class="resume-links">';
						foreach ( $attachments as $attachment ) {
							$return .= '<li class="resume-link resume-link-www"><a href="' . esc_url( $attachment ) . '">' . get_job_application_attachment_name( $attachment, 20 ) . '</a></li>';
						}
						$return .= '</ul>';
					}
					if ( $attachments = get_resume_files( $entry ) ) {
						$return = '<ul class="resume-links">';
						foreach ( $attachments as $attachment ) {
							$return .= '<li class="resume-link resume-link-www"><a href="' . esc_url( $attachment ) . '">' . get_job_application_attachment_name( $attachment, 20 ) . '</a></li>';
						}
						$return .= '</ul>';
					}
					$value = $return;
				}
			}
		}
		return $value;
	}
}

Methods Methods