hooks – Use ID as slug for product category by default in WooCommerce?

Question

We have a non-English store with WooCommerce. Product categories are created with the same slug as the title of non-English characters making the URL not so pretty nor shareable.

How can I make WordPress use only the ID of the as the slug whenever we create a product category? Did this for the WooCommerce products: https://stackoverflow.com/a/70457452/49318, and it works great. But after some research, I’m still not sure how to do this with the product categories?

Which of the hooks below should I use with add_action()?

save_post_product_cat
edited_product_cat
create_term_product_cat
edit_term_product_cat

And how can I use the ID as the slug for product category in the action?

I came up with this:

add_action( 'edited_product_cat', 'wpse373625_on_editing', 10, 3 );
function wpse373625_on_editing ( $id ){
    //This temporarily removes action to prevent infinite loops
    remove_action( 'edited_product_cat', 'wpse373625_on_editing' );
    wp_update_term( array(
        'term_id'        => $id,
        'slug' =>  $id , //Wordpress would generate the slug based on the post name
    ));
    //redo action
    add_action( 'edited_product_cat', 'wpse373625_on_editing', 10, 3 );
}

But it doesn’t work. Any help would be appreciated!

0
datasn.io 8 months 2021-12-25T05:41:49-05:00 0 Answers 0 views 0

Leave an answer

Browse
Browse