I want to add a subitem to "Woocommerce" parent item, below "Orders", this subitem is a custom post type.

enter image description here

I tried to use (in $args):

$args = array('show_in_menu' => 'edit.php?post_type=shop_order');
register_post_type('my_posttype', $args);

But it doesn't work, I tried with another section ex. 'edit.php?anotherpage' and it works.

enter image description here

Any idea?!


Short answer, use:

$args = array('show_in_menu' => 'woocommerce');
register_post_type('my_posttype', $args);

But this won't give you the custom post type submenus.

You can also use add_submenu_page, the code below is just an example:

function register_my_custom_submenu_page() {
    add_submenu_page( 'woocommerce', 'My Custom Submenu Page', 'My Custom Submenu Page', 'manage_options', 'my-custom-submenu-page', 'my_custom_submenu_page_callback' ); 
function my_custom_submenu_page_callback() {
    echo '<h3>My Custom Submenu Page</h3>';
add_action('admin_menu', 'register_my_custom_submenu_page',99);

You need a high(er) priority number to execute it later then the woocommerce_admin_menu function, which has 9, and there is woocommerce_admin_menu_after, which has 50 - those functionbs are in woocommerce-admin-init.php.

|improve this answer|||||

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.