Let's add a custom taxonomy to products, for example a 'Brand' taxonomy, so that vendors can choose which brand each product belongs to.
Step 1: Create a taxonomy
First of all, we need to create the taxonomy itself if it doesn't already exist.
We can install the CPT UI plugin: https://wordpress.org/plugins/custom-post-type-ui/
Then go to CPT UI -> Add/ Edit Taxonomies and create a new taxonomy with these settings:
Then in Products -> Brands we create a few sample options:
Step 2: Add the taxonomy to the vendor dashboard
Add this PHP code snippet to your site:
add_action('marketking_edit_product_after_tags', function($post){
if (isset($post->ID)){
?>
<div class="row">
<div class="col-xxl-3 col-md-6 marketking_card_gal_cat_tags">
<div class="code-block marketking_cattag_card">
<h6 class="overline-title title">
<?php esc_html_e('Brands','marketking-multivendor-marketplace-for-woocommerce');?>
</h6>
<div class="form-group">
<div class="form-control-wrap">
<?php
$selected_brands = wp_get_object_terms($post->ID, 'brand', array('fields' => 'ids', 'hide_empty' => false));
$brand_args = array(
'taxonomy' => 'brand',
'name' => 'marketking_select_brand',
'class' => 'form-select',
'orderby' => 'name',
'title_li' => '',
'multiple' => 'multiple',
'hide_empty' => false,
'selected' => implode(',',$selected_brands),
);
wp_dropdown_categories($brand_args);
?>
</div>
</div>
</div>
</div>
</div>
<?php
}
}, 10, 1);
// save taxonomy
add_action('marketking_after_save_product', function($product_id, $vendor_id){
// Save "brand" taxonomy
$brand_values = isset($_POST['marketking_select_brand']) ? $_POST['marketking_select_brand'] : array();
foreach ($brand_values as $index => $val){
$brand_values[$index] = intval($val); // transform to INT
}
wp_set_object_terms( $product_id, $brand_values, 'brand' );
}, 10, 2);
This code can be added to functions.php of the child theme, or to any snippets plugin.
Results
Vendors can now set brands for each product (one or multiple per product):