Or, embed this snippet using GenerateWP WordPress Plugin.

Download

Clone

ERO as Meta for Sources

class ERO_Meta {

	public function __construct() {

		if ( is_admin() ) {

			add_action( 'ero-tax_add_form_fields',  array( $this, 'create_screen_fields'), 10, 1 );
			add_action( 'ero-tax_edit_form_fields', array( $this, 'edit_screen_fields' ),  10, 2 );

			add_action( 'created_ero-tax', array( $this, 'save_data' ), 10, 1 );
			add_action( 'edited_ero-tax',  array( $this, 'save_data' ), 10, 1 );

			add_action( 'admin_enqueue_scripts', array( $this, 'load_scripts_styles' ) );
			add_action( 'admin_footer',          array( $this, 'add_admin_js' )        );

		}

	}

	public function create_screen_fields( $taxonomy ) {

		// Set default values.
		$ero_metafiler = '';
		$ero_metadate = '';
		$ero_metaosc_url = '';
		$ero_metaalp = '';

		// Form fields.
		echo '<div class="form-field term-ero_metafiler-wrap">';
		echo '	<label for="ero_metafiler">' . __( 'filer', 'text_domain' ) . '</label>';
		echo '	<input type="text" id="ero_metafiler" name="ero_metafiler" placeholder="' . esc_attr__( '', 'text_domain' ) . '" value="' . esc_attr( $ero_metafiler ) . '">';
		echo '</div>';

		echo '<div class="form-field term-ero_metadate-wrap">';
		echo '	<label for="ero_metadate">' . __( 'date', 'text_domain' ) . '</label>';
		echo '	<input type="text" id="ero_metadate" name="ero_metadate" class="widefat ero_metadate_picker" placeholder="' . esc_attr__( '', 'text_domain' ) . '" value="' . esc_attr( $ero_metadate ) . '">';
		echo '</div>';

		echo '<div class="form-field term-ero_metaosc_url-wrap">';
		echo '	<label for="ero_metaosc_url">' . __( 'osc_url', 'text_domain' ) . '</label>';
		echo '	<input type="url" id="ero_metaosc_url" name="ero_metaosc_url" placeholder="' . esc_attr__( '', 'text_domain' ) . '" value="' . esc_attr( $ero_metaosc_url ) . '">';
		echo '</div>';

		echo '<div class="form-field term-ero_metaalp-wrap">';
		echo '	<label for="ero_metaalp">' . __( 'alp', 'text_domain' ) . '</label>';
		echo '	<textarea id="ero_metaalp" name="ero_metaalp" placeholder="' . esc_attr__( '', 'text_domain' ) . '">' . $ero_metaalp . '</textarea>';
		echo '</div>';

	}

	public function edit_screen_fields( $term, $taxonomy ) {

		// Retrieve an existing value from the database.
		$ero_metafiler = get_term_meta( $term->term_id, 'ero_metafiler', true );
		$ero_metadate = get_term_meta( $term->term_id, 'ero_metadate', true );
		$ero_metaosc_url = get_term_meta( $term->term_id, 'ero_metaosc_url', true );
		$ero_metaalp = get_term_meta( $term->term_id, 'ero_metaalp', true );

		// Set default values.
		if( empty( $ero_metafiler ) ) $ero_metafiler = '';
		if( empty( $ero_metadate ) ) $ero_metadate = '';
		if( empty( $ero_metaosc_url ) ) $ero_metaosc_url = '';
		if( empty( $ero_metaalp ) ) $ero_metaalp = '';

		// Form fields.
		echo '<tr class="form-field term-ero_metafiler-wrap">';
		echo '<th scope="row">';
		echo '	<label for="ero_metafiler">' . __( 'filer', 'text_domain' ) . '</label>';
		echo '</th>';
		echo '<td>';
		echo '	<input type="text" id="ero_metafiler" name="ero_metafiler" placeholder="' . esc_attr__( '', 'text_domain' ) . '" value="' . esc_attr( $ero_metafiler ) . '">';
		echo '</td>';
		echo '</tr>';

		echo '<tr class="form-field term-ero_metadate-wrap">';
		echo '<th scope="row">';
		echo '	<label for="ero_metadate">' . __( 'date', 'text_domain' ) . '</label>';
		echo '</th>';
		echo '<td>';
		echo '	<input type="text" id="ero_metadate" name="ero_metadate" class="widefat ero_metadate_picker" placeholder="' . esc_attr__( '', 'text_domain' ) . '" value="' . esc_attr( $ero_metadate ) . '">';
		echo '</td>';
		echo '</tr>';

		echo '<tr class="form-field term-ero_metaosc_url-wrap">';
		echo '<th scope="row">';
		echo '	<label for="ero_metaosc_url">' . __( 'osc_url', 'text_domain' ) . '</label>';
		echo '</th>';
		echo '<td>';
		echo '	<input type="url" id="ero_metaosc_url" name="ero_metaosc_url" placeholder="' . esc_attr__( '', 'text_domain' ) . '" value="' . esc_attr( $ero_metaosc_url ) . '">';
		echo '</td>';
		echo '</tr>';

		echo '<tr class="form-field term-ero_metaalp-wrap">';
		echo '<th scope="row">';
		echo '	<label for="ero_metaalp">' . __( 'alp', 'text_domain' ) . '</label>';
		echo '</th>';
		echo '<td>';
		echo '	<textarea id="ero_metaalp" name="ero_metaalp" placeholder="' . esc_attr__( '', 'text_domain' ) . '">' . $ero_metaalp . '</textarea>';
		echo '</td>';
		echo '</tr>';

	}

	public function save_data( $term_id ) {

		// Sanitize user input.
		$ero_metanew_filer = isset( $_POST[ 'ero_metafiler' ] ) ? sanitize_text_field( $_POST[ 'ero_metafiler' ] ) : '';
		$ero_metanew_date = isset( $_POST[ 'ero_metadate' ] ) ? sanitize_text_field( $_POST[ 'ero_metadate' ] ) : '';
		$ero_metanew_osc_url = isset( $_POST[ 'ero_metaosc_url' ] ) ? esc_url( $_POST[ 'ero_metaosc_url' ] ) : '';
		$ero_metanew_alp = isset( $_POST[ 'ero_metaalp' ] ) ? sanitize_text_field( $_POST[ 'ero_metaalp' ] ) : '';

		// Update the meta field in the database.
		update_term_meta( $term_id, 'ero_metafiler', $ero_metanew_filer );
		update_term_meta( $term_id, 'ero_metadate', $ero_metanew_date );
		update_term_meta( $term_id, 'ero_metaosc_url', $ero_metanew_osc_url );
		update_term_meta( $term_id, 'ero_metaalp', $ero_metanew_alp );

	}

	public function load_scripts_styles() {

		// Date picker
		wp_enqueue_script( 'jquery-ui' );
		wp_enqueue_script( 'jquery-ui-datepicker' );
		wp_enqueue_style( 'jquery-ui-datepicker', 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/smoothness/jquery-ui.css' );

	}

	public function add_admin_js() {

		// Print js only once per page
		if ( did_action( 'ERO_Meta_js' ) >= 1 ) {
			return;
		}

		?>
		<script type="text/javascript">
			jQuery(document).ready(function($){
				$('.ero_metadate_picker').datepicker();
			});
		</script>
		<?php

		do_action( 'ERO_Meta_js', $this );

	}

}

new ERO_Meta;