Example:
Ref: https://catapultthemes.com/adding-an-image-upload-field-to-categories/
<?php
/*------------------------------------------------------------------------------
Category Banner Uploaded.
-------------------------------------------------------------------------------*/
global $woocommerce;
global $wp_query;
add_action ( 'category_edit_form_fields', 'extra_category_fields');
add_action ( 'category_add_form_fields', 'extra_category_fields');
add_action( 'admin_enqueue_scripts', 'wp_enqueue_media' );
function extra_category_fields( $cat ) { //check for existing featured ID
$t_id = $cat->term_id;
$cat_meta = get_option( "category_$t_id");
?>
<p><img class="custom_media_image" src="<?php if(!empty($cat_meta['img'])){echo $cat_meta['img'];} else { echo 'http://via.placeholder.com/1920x550';} ?>" style="padding:3px;max-width:370px; display:inline-block" /><input type="hidden" class="widefat custom_media_url" name="Cat_meta[img]" id="Cat_meta[img]" value="<?php echo $cat_meta['img'] ? $cat_meta['img'] : ''; ?>"><a style="display:block; width:200px; margin-bottom:20px; text-align:center;" href="#" class="button custom_media_upload"><?php _e('Upload Category Banner', THEMENAME); ?></a></p>
<script>
// Image Upload
(function($){
$('.custom_media_upload').click(function() {
var send_attachment_bkp = wp.media.editor.send.attachment;
var button = $(this);
wp.media.editor.send.attachment = function(props, attachment) {
$(button).prev().prev().attr('src', attachment.url);
$(button).prev().val(attachment.url);
wp.media.editor.send.attachment = send_attachment_bkp;
}
wp.media.editor.open(button);
return false;
});
})(jQuery);
</script>
<?php
}
add_action ( 'edited_category', 'save_extra_category_fileds');
function save_extra_category_fileds( $term_id ) {
if ( isset( $_POST['Cat_meta'] ) ) {
$t_id = $term_id;
$cat_meta = get_option( "category_$t_id");
$cat_keys = array_keys($_POST['Cat_meta']);
foreach ($cat_keys as $key){
if (isset($_POST['Cat_meta'][$key])){
$cat_meta[$key] = $_POST['Cat_meta'][$key];
}
}
//save the option array
update_option( "category_$t_id", $cat_meta );
}
}
Download Other Feature Categories All Field
