【问题标题】:Display Woocommerce variable product dimensions显示 Woocommerce 可变产品尺寸
【发布时间】:2020-05-13 16:03:24
【问题描述】:

使用一系列可变产品设置 Woocommerce。在变量选项卡中,我为每件商品设置了唯一的价格、图片、描述、重量和尺寸。

除尺寸和重量外,所有可变数据均按预期显示在前端。

尽管搜索了数小时,但我找不到任何文档、教程、有关如何使用它的提示。

设置了 Woocommerce 模板并知道我需要在 variable.php 中挂钩 do_action( 'woocommerce_single_variation' );

有人知道如何让每个变量的尺寸和重量显示在变量说明下方吗?

【问题讨论】:

  • 嗨叛徒。你有没有想过如何做到这一点?似乎我也颠倒了互联网寻找这个信息。无济于事......(而且 doublesharp 的答案不够明确,我不知道在哪里放置建议的代码)
  • 更新:现在基本搞清楚了。根据我在 doublesharp 的回答下的评论。

标签: wordpress templates woocommerce


【解决方案1】:

如果您有变体 ID,则可以使用它来创建 new WC_Product()。然后,此对象将具有可用于 $length$width$height 的属性。请参阅文档here(在底部的“Magic Properties”下)。

要获取给定产品的变体,您可以使用global $product,然后使用get_available_variations() 函数。

global $product
$variations = $product->get_available_variations();
foreach ( $variations as $variable_array ){
    $variation = new WC_Product( $variable_array['variation_id'] );
    echo "The length is {$variation->length}.";
}

【讨论】:

  • 感谢 Doublesharp!我可以看到variation_id 已加载到<form ata-product_variations="[{"variation_id":11,"variation_is_visible":true,"variation_is_active":true,"is_purchasable":true,"display_price":97 ... etc">,但不知道如何访问它
  • 我更新了答案。您从父 global $product 获得变化。我认为它会返回一个信息数组,然后您需要创建一个新的WC_Product() 来获取正确的对象,但要进行测试以确保。
  • 当我选择一个变体时,我会在屏幕上获得所有变体的尺寸。
  • 感谢 Doublesharp。使用您的答案,我能够将产品重量显示在 其他信息 区域(在我的情况下是一个选项卡)下。我用echo "Shipping weight of {$variation->sku} is {$variation->weight}<br>";。我使用 sku 作为变体标识符,因为我还没有弄清楚如何引用变体名称。任何想法?另外,有没有办法可以对重量应用一些数字格式?例如,要包括前导零? IE。 0.514 而不是 .514 .
【解决方案2】:

如果您想显示有关变量产品的附加信息,请将此函数添加到您的子主题的 function.php(或插件)中。您可能需要更改 html 标签以适合您的主题:

add_filter( 'woocommerce_product_additional_information', 'tim_additional_tab', 9 );

function tim_additional_tab( $product ){

    $variations = $product->get_available_variations();
    //print the whole array in additional tab and examine it
    //echo '<pre>';
    //print_r($variations);
    //echo '</pre>';
    //html and style to your likings
    foreach ( $variations as $key ){
        echo $key['image']['title'].'<br>';
        echo $key['weight_html'].'<br>';
        echo $key['dimensions_html'].'<br>';
    }

}

【讨论】:

    猜你喜欢
    • 2015-08-08
    • 2018-03-01
    • 1970-01-01
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    • 2013-08-18
    • 2017-11-24
    • 2015-06-26
    相关资源
    最近更新 更多