当前位置: 首页 > 知识库问答 >
问题:

如何获取产品变化值

麻学博
2023-03-14

我希望能够列出变化选项值。例如,我有一个12英寸、14英寸和16英寸的灯笼。我希望能够得到这些值。我一直试图使用Foreach循环来获取这些值,但我需要一点帮助。这是我的代码;

function test_func(){
    global $woocommerce, $product, $post;
    // test if product is variable
    if( $product->is_type( 'variable' ) ){
        $available_variations = $product->get_available_variations();
        // var_dump($available_variations);

        foreach( $available_variations as $key => $value ){ 
            var_dump( $value['attributes'] ) ;
        }
    }
}

这就是输出:

array(1) { ["attribute_pa_size"]=> string(4) "12in" } array(1) { ["attribute_pa_size"]=> string(4) "14in" } array(1) { ["attribute_pa_size"]=> string(4) "16in" }

正如你所看到的,我想要的值在那里,但我不知道如何让它们响应它们。

以下是我使用var_dump()$available_variations时得到的结果;

"["backorders_allowed"]=

"["sku"]=

这只是一个产品,每个变体都有一个,但这给了你它是如何工作的想法。我也愿意尝试另一种方法来获得相同的结果,所以如果你知道一种方法,请告诉我。谢啦

共有1个答案

云隐水
2023-03-14

您需要对产品属性使用第二个foreach循环:

function test_func(){
    global $woocommerce, $product, $post;
    // test if product is variable
    if( $product->is_type( 'variable' ) ){
        // Loop through available product variation data
        foreach ( $product->get_available_variations() as $key => $variation ) {
            // Loop through the product attributes for this variation
            foreach ($variation['attributes'] as $attribute => $term_slug ) {
                // Get the taxonomy slug
                $taxonmomy = str_replace( 'attribute_', '', $attribute );

                // Get the attribute label name
                $attr_label_name = wc_attribute_label( $taxonmomy );

                // Display attribute labe name
                $term_name = get_term_by( 'slug', $term_slug, $taxonmomy )->name;

                // Testing output
                echo '<p>' . $attr_label_name . ': ' . $term_name . '</p>';
            }
        }
    }
}
 类似资料:
  • 我试图在变体下拉列表中显示产品变体价格。我试图改变默认的行为,当你在下拉列表中选择一个变量时,价格显示在div中。 问题是我找不到那个部门的变动价格。我搜索了所有的javascript,但找不到它 如果我使用: 我只得到所有选项的最小变化价格。我想知道每种变体的价格。有线索吗?

  • 我正在尝试为函数编写一个代码段。php文件,该文件仅显示所选变体的一个价格,因此忽略了在单个产品页面上随变体价格一起显示的价格范围。我正在使用以下代码: 问题是,例如,当您有两个单一产品的变体,而其中一个缺货时,此脚本会在单一产品页面上隐藏剩余变体的价格。我在想,也许每个产品都有一些可用的变体,并使用IF来使用标准的单一产品模板来显示它们。或者你有更好的办法解决这个问题?

  • 我想在Wp/WooCommerce /shop/页面上显示所有产品及其变体。(我下面描述的过程是我试图让它工作的过程。欢迎其他选择。 标准是什么:产品A和产品B在网站上展示。产品A有“广告到购物车”按钮。产品B有“选择选项”按钮。 我想要的是:产品A是一种“简单”的产品,在商店页面上显示产品B是一种“可变”产品,有两种组合(黑色/蓝色)。添加到购物车按钮将此变体添加到购物车 我想在商店页面上展示3

  • 我为每个woocommerce产品变体添加了一个自定义字段。 我添加了一个日期时间输入字段。然后,当datetime值已经过去时,我需要自动删除变量。因此,自动终止woocommerce产品的变化。 这是我添加自定义输入字段的代码。 如何获取每个变体的输入字段值并进行回显,以便将该值用于另一个函数并自动删除变体?

  • 我试图以编程方式为一个可变产品添加两个产品变体。基于此回答线程,我使用以下缩短的函数: 我使用以下数据数组: 然后我运行以下函数: 其中,是我要对其进行更改的变量产品的id,是上面定义的数据数组。 我的问题是函数只插入foreach in函数中的最后一个数据。 i、 e.在商业中的产品变化有: 红色W1 红色W1 但我想: 蓝色W1 红色W1

  • 我有下面的微数据格式,并将其添加到WooCommerce模板上。下面是我试图添加的代码: 在此模板,我在这行下面添加了一些代码: 我使用WooCommerce函数获取产品详细信息,但它返回超文本标记语言格式化的值,我需要非格式化的产品值。 以下是标签的详细信息: 1.产品基本细节标签 > 产品SKU代码