WooCommerce how to check if page is_shop() in functions.php?

You can use function_exists

if( function_exists("is_shop") ) {
    // call it or do something else
}
else {
    // load it from somewhere
}

Official docs: https://secure.php.net/function_exists


You can write a condition into "archive-product.php" for category page like,

    $cate = get_queried_object();
    if(is_product_category()  && $cate->parent != 0 ){

         // Write code here
         //include sidebar here
    }

By using this code this will check the page for product_category and also check for a parent.


When placed inside a hook, is_shop will work in functions.php

add_action( 'template_redirect', 'custom_template_redirect' );

function custom_template_redirect() {

    if( is_shop() ) :

         // code logic here

    endif;    
}

Here is a list of all WooCommerce conditionals


call it using WordPress Hook pre get posts

add_action('pre_get_posts','nameTheFunction');

function nameTheFunction(){

   if(is_shop()){

    // your code here 

  }

}// function end here

Read more about pre get posts Hook

https://developer.wordpress.org/reference/hooks/pre_get_posts/