Woocommerce-如何判断产品帖子是否有变化

Woocommerce-如何判断产品帖子是否有变化,woocommerce,Woocommerce,我正在尝试编辑简短的描述模板,使其在可变(单个)产品页面上与在简单产品上不同。该页面中的代码如下所示: global $post; if ( ! $post->post_excerpt ) return; ?> <div itemprop="description"> <?php echo apply_filters( 'woocommerce_short_description', $post->post_excerpt ) ?> &l

我正在尝试编辑简短的描述模板,使其在可变(单个)产品页面上与在简单产品上不同。该页面中的代码如下所示:

global $post;
if ( ! $post->post_excerpt )
    return;
?>
<div itemprop="description">
    <?php echo apply_filters( 'woocommerce_short_description', $post->post_excerpt ) ?>
</div>
global$post;
如果(!$post->post_摘录)
返回;
?>
我想在if语句中添加一些类似的代码

如果文章有变化,不要显示简短的描述,如果简单的产品会显示


但是我在代码中找不到任何方法来区分普通的简单产品帖子和可变的(有变化的)产品帖子。通过查看Woo网站()上的API文档,我没有发现类似的内容

在经历了许多心痛之后,我找到了以下两种解决方案:

在产品循环中,您可以使用:

 if( $product->has_child() ) { 
global $post;
$children = get_pages('child_of='.$post->ID);
if( count( $children ) !== 0 ) {
但出于某种原因,在单一产品页面的简短描述中,我不得不使用以下内容:

 if( $product->has_child() ) { 
global $post;
$children = get_pages('child_of='.$post->ID);
if( count( $children ) !== 0 ) {

希望这能帮助其他像我一样挣扎的人…

使用
$product->is_type()
函数检查产品类型。要检查产品是否为可变产品,请执行以下操作:

global $product;

// $product->is_type( $type ) checks the product type, string/array $type ( 'simple', 'grouped', 'variable', 'external' ), returns boolean

if ( $product->is_type( 'variable' ) ) {}
还有一个
$product->get_type()
函数,它以字符串形式返回产品的内部类型


出于某种原因,如果删除了变体,则函数has_child()仍然会变为true

所以我使用了下面的解决方案

if(empty($product->get_available_variations())) {
  // Your code goes here
}

可变产品始终基于类。例如,遵循这种方法

因此,检查可以是:

is_a( $product, 'WC_Product_Variable' )

这确保了产品的类型是可变的,无论是否存在儿童。而且速度很快。

事实上,我已经找到了如何让has_child标签在单个产品页面上工作的方法,我需要添加一个特殊的全局:
global$post,$product,$woocommerce\u循环;如果($product->has_child()){
谢谢你的解决方案,这对我也有帮助。谢谢Stephen,这节省了我在互联网上的大量搜索!!还有另一种产品类型,名为
variation
,它是变量产品的一个子产品,如果你想访问或编辑循环中变量产品的每个变量字段,它很有用。@MojtabaRezaeian是否意味着如果我从订单的行项目
$item->get_product()中获取产品
那么类型将是
变体
?非常好的解决方案。主题开发人员应该根据情况使用它或获取类型。是的,请注意,获取类型返回不同的类型取决于特定的派生实现,例如WC\u产品变量订阅::获取类型()返回“variable subscription”和WC_Product_variable::get_type()返回“variable”。因此,为了检查可变性,我们需要比较所有可能的变量类型,这些变量类型在一般检查中可能不太方便且通用。