Press "Enter" to skip to content

Change the Woocommerce Products custom post type label

While this may be a fringe case, I felt the need to document this anyways.

I recently did a site where the client would sell products online, but also have a separate products section showing non-sellable items. What this means is needed a “Products” section on top of the built in products custom post type woocommerce adds. One solution I found was to change the labels for Woocommerce:

add_filter( 'woocommerce_register_post_type_product', 'nk_custom_post_type_label_woo' );
	function nk_custom_post_type_label_woo( $args ){
		$labels = nk_get_cpt_labels('Online Product','Online Shop');
	   $args['labels'] = $labels;
	   return $args;
	}

This just hooks in to the label outputs for the products CPT from Woocommerce and generates our own. The nk_get_cpt_labels function is just a helper function I use to output these quickly:

function nk_get_cpt_labels($single,$plural){
   $arr = array(
      'name' => $plural,
      'singular_name' => $single,
      'menu_name' => $plural,
      'add_new' => 'Add '.$single,
      'add_new_item' => 'Add New '.$single,
      'edit' => 'Edit',
      'edit_item' => 'Edit '.$single,
      'new_item' => 'New '.$single,
      'view' => 'View '.$plural,
      'view_item' => 'View '.$single,
      'search_items' => 'Search '.$plural,
      'not_found' => 'No '.$plural.' Found',
      'not_found_in_trash' => 'No '.$plural.' Found in Trash',
      'parent' => 'Parent '.$single
   );
   return $arr;
}

Now after I register my own custom post type of products I end up with the backend menu of: