php 如何在woocommerce中检查产品是否存在变异

neekobn8  于 2023-04-28  发布在  PHP
关注(0)|答案(2)|浏览(110)

有没有什么方法可以检查产品是否有变异,比如请帮助我。

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

9jyewag01#

这应该可以工作:

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

示例:如果你要替换文件woocommerce --〉single-product --〉 meta。php用这个代码,你会看到它的工作。

<?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>
bvjveswy

bvjveswy2#

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
}

获取变量产品的所有变量ID

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

上面的代码将只提供可见的变体ID。例如,如果未为某个变量设置价格,则该变量将被隐藏。
或者使用下面的代码来获得所有的变化,而不考虑可见性。

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

相关问题