/**
* Add Cover image column to Product Categories list table.
*/
function product_cat_admin_columns( $columns ) {
$new_columns = [];
foreach ( $columns as $key => $label ) {
$new_columns[ $key ] = $label;
if ( $key === 'name' ) {
$new_columns['term_cover'] = __( 'Cover', 'hubbearing' );
}
}
return $new_columns;
}
add_filter( 'manage_edit-product_cat_columns', 'product_cat_admin_columns' );
function product_cat_admin_column_content( $content, $column_name, $term_id ) {
if ( $column_name !== 'term_cover' ) {
return $content;
}
$cover = get_term_meta( $term_id, 'term_cover', true );
if ( ! $cover ) {
return '<span aria-hidden="true">—</span><span class="screen-reader-text">' . esc_html__( 'No cover image', 'hubbearing' ) . '</span>';
}
return sprintf(
'<img src="%s" alt="" width="50" height="50" style="object-fit:cover;border-radius:4px;display:block;" />',
esc_url( $cover )
);
}
add_filter( 'manage_product_cat_custom_column', 'product_cat_admin_column_content', 10, 3 );
function product_cat_admin_column_styles() {
$screen = get_current_screen();
if ( ! $screen || $screen->taxonomy !== 'product_cat' ) {
return;
}
echo '<style>.column-term_cover { width: 70px; text-align: center; }</style>';
}
add_action( 'admin_head', 'product_cat_admin_column_styles' );