How To check Product Have Variation in woocommerce

Is there any way to check the product has variation something like
Please help me.

<?php 
If (product has variation) {
   echo"This Product have Variations ";
} else {
   echo "This Product does not have Variations ";
} 
?>

Related posts

2 comments

  1. This should work:

    if( $product->is_type( 'simple' ) ){
        // No variations to product 
    } elseif( $product->is_type( 'variable' ) ){
       // Product has variations
    }
    

    Example:
    If you will replace the file woocommerce –> single-product –> meta.php with this code, you will see it works.

    <?php
    /**
    * Single Product Meta
    *
    * @author       WooThemes
    * @package  WooCommerce/Templates
    * @version     1.6.4
    */
    
    if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
    
    global $post, $product;
    
    $cat_count = sizeof( get_the_terms( $post->ID, 'product_cat' ) );
    $tag_count = sizeof( get_the_terms( $post->ID, 'product_tag' ) );
    ?>
    <div class="product_meta">
    
    <?php do_action( 'woocommerce_product_meta_start' ); ?>
    
    <?php if ( wc_product_sku_enabled() && ( $product->get_sku() || $product->is_type( 'variable' ) ) ) : ?>
    
        <span class="sku_wrapper"><?php _e( 'SKU:', 'woocommerce' ); ?> <span class="sku" itemprop="sku"><?php echo ( $sku = $product->get_sku() ) ? $sku : __( 'N/A', 'woocommerce' ); ?></span>.</span>
    
    <?php endif; ?>
    
    <?php echo $product->get_categories( ', ', '<span class="posted_in">' . _n( 'Category:', 'Categories:', $cat_count, 'woocommerce' ) . ' ', '.</span>' ); ?>
    
    <?php echo $product->get_tags( ', ', '<span class="tagged_as">' . _n( 'Tag:', 'Tags:', $tag_count, 'woocommerce' ) . ' ', '.</span>' ); ?>
    
    <?php do_action( 'woocommerce_product_meta_end' ); ?>
    <?php if( $product->is_type( 'simple' ) ){
    // No variations to product 
    echo "XX";
    } elseif( $product->is_type( 'variable' ) ){
    // Product has variations 
    echo "VV";
    } ?>
    
    </div>
    
  2. if ($product->is_type('simple')) { 
        // Simple product
    } elseif ($product->is_type('grouped')) {
       // Grouped product
    } elseif ($product->is_type( 'external')) {
       // External/Affiliate product
    } elseif ($product->is_type('variable')) {
       // Variable product
    }
    

    To get all variation ids of a variable product

    $product = wc_get_product($product_id);
    $variations = $product->get_available_variations();
    $variations_id = wp_list_pluck( $variations, 'variation_id' );
    

    The above code will provide visible variation ids only. For example, If the price is not set for a variation, that variation will be hidden.

    Alternatively use the below code to get all variations without considering visibility.

    $product = wc_get_product($product_id);
    $current_products = $product->get_children();
    

Comments are closed.