I am building a form for users to create a product via the frontend of my site using wp_insert_post
and update_post_meta
.
The problem arises when trying to set the product categories and tags. It seems Woocommerce doesn't use standard Wordpress taxonomies in this regard. Anyone have any experience with this? It seems Woocommerce uses product_tags
in some places. Is there a function to create them similar to Wordpress?
Below is a snippet of what I am doing. Thanks!
$post = array(
'ID' => '',
'post_content' => $_POST['post_content'],
'post_title' => $_POST['post_title'],
'post_status' => 'draft',
'post_type' => 'product',
'post_author' => $user_id,
);
$newListing = wp_insert_post($post, $wp_error);
//SET META
update_post_meta($newListing, '_stock_status', 'instock', true);
update_post_meta($newListing, '_visibility', 'visible', true);
update_post_meta($newListing, '_price', $_POST['_regular_price'], true);
//SET CATEGORIES - **NOT WORKING**
wp_set_post_categories($newListing, $categories);
//SET THE TAGS **NOT WORKING**
wp_set_post_tags($newListing, $tags, true);
Found out the built-in Wordpress function wp_set_object_terms
will handle this quite easily.
Below are some examples:
//SET THE PRODUCT CATEGORIES
wp_set_object_terms($productID, array('Cat Name 1', 'Cat Name 2'), 'product_cat');
//SET THE PRODUCT TAGS
wp_set_object_terms($productID, array('tag1','tag2','tag3'), 'product_tag');
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With