META TAX Activity
class metc_activity_meta_load {
public function __construct() {
if ( is_admin() ) {
add_action( 'activity_add_form_fields', array( $this, 'create_screen_fields'), 10, 1 );
add_action( 'activity_edit_form_fields', array( $this, 'edit_screen_fields' ), 10, 2 );
add_action( 'created_activity', array( $this, 'save_data' ), 10, 1 );
add_action( 'edited_activity', 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.
$activity_activity_color = '#000000';
$activity_metc_activity_oembed = '';
// Form fields.
echo '<div class="form-field term-activity_activity_color-wrap">';
echo ' <label for="activity_activity_color">' . __( 'Color', 'oria-child' ) . '</label>';
echo ' <input type="text" id="activity_activity_color" name="activity_activity_color" class="activity_color_picker" value="' . esc_attr( $activity_activity_color ) . '"><br>';
echo ' <p class="description">' . __( 'Category color', 'oria-child' ) . '</p>';
echo '</div>';
echo '<div class="form-field term-activity_metc_activity_oembed-wrap">';
echo ' <label for="activity_metc_activity_oembed">' . __( 'Media', 'oria-child' ) . '</label>';
echo ' <input type="text" id="activity_metc_activity_oembed" name="activity_metc_activity_oembed" placeholder="' . esc_attr__( '', 'oria-child' ) . '" value="' . esc_attr( $activity_metc_activity_oembed ) . '">';
echo wp_oembed_get( $activity_metc_activity_oembed );
echo ' <p class="description">' . __( 'Category media', 'oria-child' ) . '</p>';
echo '</div>';
}
public function edit_screen_fields( $term, $taxonomy ) {
// Retrieve an existing value from the database.
$activity_activity_color = get_term_meta( $term->term_id, 'activity_activity_color', true );
$activity_metc_activity_oembed = get_term_meta( $term->term_id, 'activity_metc_activity_oembed', true );
// Set default values.
if( empty( $activity_activity_color ) ) $activity_activity_color = '#000000';
if( empty( $activity_metc_activity_oembed ) ) $activity_metc_activity_oembed = '';
// Form fields.
echo '<tr class="form-field term-activity_activity_color-wrap">';
echo '<th scope="row">';
echo ' <label for="activity_activity_color">' . __( 'Color', 'oria-child' ) . '</label>';
echo '</th>';
echo '<td>';
echo ' <input type="text" id="activity_activity_color" name="activity_activity_color" class="activity_color_picker" value="' . esc_attr( $activity_activity_color ) . '"><br>';
echo ' <p class="description">' . __( 'Category color', 'oria-child' ) . '</p>';
echo '</td>';
echo '</tr>';
echo '<tr class="form-field term-activity_metc_activity_oembed-wrap">';
echo '<th scope="row">';
echo ' <label for="activity_metc_activity_oembed">' . __( 'Media', 'oria-child' ) . '</label>';
echo '</th>';
echo '<td>';
echo ' <input type="text" id="activity_metc_activity_oembed" name="activity_metc_activity_oembed" placeholder="' . esc_attr__( '', 'oria-child' ) . '" value="' . esc_attr( $activity_metc_activity_oembed ) . '">';
echo wp_oembed_get( $activity_metc_activity_oembed );
echo ' <p class="description">' . __( 'Category media', 'oria-child' ) . '</p>';
echo '</td>';
echo '</tr>';
}
public function save_data( $term_id ) {
// Sanitize user input.
$activity_new_activity_color = isset( $_POST[ 'activity_activity_color' ] ) ? sanitize_hex_color( $_POST[ 'activity_activity_color' ] ) : '';
$activity_new_metc_activity_oembed = isset( $_POST[ 'activity_metc_activity_oembed' ] ) ? esc_url( $_POST[ 'activity_metc_activity_oembed' ] ) : '';
// Update the meta field in the database.
update_term_meta( $term_id, 'activity_activity_color', $activity_new_activity_color );
update_term_meta( $term_id, 'activity_metc_activity_oembed', $activity_new_metc_activity_oembed );
}
public function load_scripts_styles() {
// Color picker
wp_enqueue_script( 'wp-color-picker' );
wp_enqueue_style( 'wp-color-picker' );
}
public function add_admin_js() {
// Print js only once per page
if ( did_action( 'metc_activity_meta_load_js' ) >= 1 ) {
return;
}
?>
<script type="text/javascript">
jQuery(document).ready(function($){
$('.activity_color_picker').wpColorPicker();
});
</script>
<?php
do_action( 'metc_activity_meta_load_js', $this );
}
}
new metc_activity_meta_load;