有没有什么方法可以检查产品是否有变异,比如请帮助我。
<?php If (product has variation) { echo"This Product have Variations "; } else { echo "This Product does not have Variations "; } ?>
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>
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();
2条答案
按热度按时间9jyewag01#
这应该可以工作:
示例:如果你要替换文件woocommerce --〉single-product --〉 meta。php用这个代码,你会看到它的工作。
bvjveswy2#
获取变量产品的所有变量ID
上面的代码将只提供可见的变体ID。例如,如果未为某个变量设置价格,则该变量将被隐藏。
或者使用下面的代码来获得所有的变化,而不考虑可见性。