获取变体的特定属性对应的数据值

Posted

技术标签:

【中文标题】获取变体的特定属性对应的数据值【英文标题】:Get for a specific attribute of a variation the corresponding data value 【发布时间】:2017-07-14 13:26:07 【问题描述】:

我正在编辑 variable-subscription.php 文件以尝试显示特定的 WooCommerce 变量订阅属性以及某些属性数据。到目前为止,这是我的代码,您可以看到我正在尝试显示属性名称以及变体图像和描述。

<?php

// get all variations
$variations = $product->get_available_variations();
// get shirt values
$shirt_values = get_the_terms( $product_id, 'pa_shirt');
// for each shirt value
foreach ( $shirt_values as $shirt_value )  ?>

<h1>
    <?php // name
        echo echo $shirt_value->name;
    ?>
</h1>

<?php // description
    foreach ( $variations as $variable_array )
        $variation = new WC_Product_Variation( $variable_array['variation_id'] );
        echo $variation->variation_description;
    
?>

<?php // image
    foreach ( $variations as $variation )  ?>
        <img src="<?php echo $variation['image_src']; ?>">
    <?php 
?>

目前,我有 3 件衬衫待售(在自定义产品属性中定义),然后我有几个变体。问题是这个 PHP 显示了每件衬衫所有可能的描述/图像变体,我只想显示与每个特定衬衫属性相关的变体。

任何建议将不胜感激。

【问题讨论】:

【参考方案1】:

您需要将方法get_variation_attributes() 与类WC_Product_Variation 一起使用,该方法将返回此变体 的属性及其值的数组。

因此,对于属性 pa_shirt,您显示特定变体值的代码将是:

$variations = $product->get_available_variations();

// Here we use our method to get the array of attribute values for the variation
$variation_attribute = $variation->get_variation_attributes();

// Here is the value for this variation and "pa_shirt" attribute
$variation_attrib_shirt_value = $variation_attribute['attribute_pa_shirt'];

如您所见,数组中的属性键 slugs 的开头都是 'attribute_'

【讨论】:

以上是关于获取变体的特定属性对应的数据值的主要内容,如果未能解决你的问题,请参考以下文章

如何获取具有特定名称/值的所有变体ID

如何创建获取请求以获取具有特定属性值的对象

Xpath 获取父节点,其中子节点的两个属性具有特定值

Mil学习之 MimLocateEvent 获取特定属性的像素坐标

SoapUI对于Json数据进行属性值获取与传递的问题

html 获取产品属性+变体的价格范围