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

如何显示自定义字段的变化产品在产品页面的基础上选择的属性?

司空健
2023-03-14

我已经设置了一个自定义字段为每个变化的产品在WooCommerce。我想显示自定义字段来代替产品标题或页面的其他区域。因此,如果选择了变化,则希望显示变化子产品的自定义字段,否则显示父产品的自定义字段。自定义字段应根据所选属性进行更改。

目前我可以显示父产品的自定义字段,但子产品自定义字段不会根据所选的变化而改变。

如何设置自定义字段?

我尝试使用VisualComposer在产品页面模板中设置自定义字段。但不适用于儿童产品。我发现下面的代码可以在function.php中使用,经过一些修改似乎可以满足我的需要

add_action( 'woocommerce_variation_options_pricing', 'add_custom_field_to_variations', 10, 3 );
function add_custom_field_to_variations( $loop, $variation_data, $variation ) {
woocommerce_wp_text_input( array(
'id' => 'custom_field[' . $loop . ']',
'class' => 'short',
'label' => __( 'Custom Field', 'woocommerce' ),
'value' => get_post_meta( $variation->ID, 'custom_field', true )
)
);
}

// 2. Save custom field on product variation save

add_action( 'woocommerce_save_product_variation', 'save_custom_field_variations', 10, 2 );
function save_custom_field_variations( $variation_id, $i ) {
$custom_field = $_POST['custom_field'][$i];
if ( isset( $custom_field ) ) update_post_meta( $variation_id,'custom_field', esc_attr( $custom_field ) );
}

// 3. Store custom field value into variation data

add_filter( 'woocommerce_available_variation', 'add_custom_field_variation_data' );
function add_custom_field_variation_data( $variations ) {
$variations['custom_field'] = '<div class="woocommerce_custom_field">Custom Field: <span>' . get_post_meta( $variations[ 'variation_id' ], 'custom_field', true ) . '</span></div>';
return $variations;
}

添加以下代码到variation.php

<script type="text/template" id="tmpl-variation-template">
<div class="woocommerce-variation-description">
{{{ data.variation.variation_description }}}
</div>
 
<div class="woocommerce-variation-price">
{{{ data.variation.price_html }}}
</div>
 
<div class="woocommerce-variation-custom_field">
{{{ data.variation.custom_field}}}
</div>
 
<div class="woocommerce-variation-availability">
{{{ data.variation.availability_html }}}
</div>
</script>

1) 选择变体时,自定义字段显示在价格旁边。但我无法在产品页面的其他区域显示该字段。我确实通过快捷码添加了自定义字段,但在选择变体时它不会显示。

2)我也希望在链接中使用包含自定义字段的短代码(例如http://www.websitename.com/[product_meta名称=custom_field]。父产品的自定义字段显示良好,但对于变化产品,它不显示或更新变化选择。

参考自

https://businessbloomer.com/woocommerce-add-custom-field-product-variation/?unapproved=224924

https://wordpress.stackexchange.com/questions/276941/woocommerce-add-extra-field-to-variation-product?rq=1

共有1个答案

拓拔元徽
2023-03-14

也许您有一个特殊的用例,需要使用自定义字段。在这种情况下,我建议您检查这个类并获得适当的钩子来使用。

 类似资料:
  • 我成功地在后端的产品变化中的WooCommerce中创建了一个ACF自定义字段。该字段在每个变化中正确显示。 但是在编辑变体中的此字段或其他字段后,我无法再保存整个变体选项卡。加载/保存指示器圆圈继续无限旋转。并且定制字段未显示在前端的单个产品变体中。 我所做的是将以下代码添加到我的: 任何帮助都将不胜感激。

  • 我使用woocommerce插件创建了一个可变产品。在变量产品中,我创建了一个自定义属性“License Duration”,其值为“3个月| 6个月| 1年|寿命”。 现在我想在一个定制的单一产品模板上显示这个属性。 我试过以下解决方法 1. 这显示了

  • 我试图使用WooCommerce的分层导航属性过滤侧边栏小部件过滤WooCommerce商店中的〜30,000种产品。这需要使用预定义的产品属性分类法,而不是在每个产品的基础上使用自定义属性。 商店里的每种产品都有一个导入的定制“品牌”属性。在导入产品之前,我在wp-admin中创建了一个名为()的属性分类法。然而,进口产品没有将其品牌属性(和术语名称)添加到品牌()分类中。取而代之的是,所有的产

  • 我在WooCommerce单一产品页面上创建了六个自定义属性,其中包含一个自定义函数。它们包括:图标、标签和术语。 基于用每个答案代码的自定义图像替换WooCommerce属性标签,我使用了以下函数(使用自定义HTML标记,与WooCommerce product-attributes.php模板中的标记不同): 该函数工作正常,但存在一个问题:如果特定属性的项不止一个(例如颜色:红色、蓝色、绿色

  • 如何在woocommerce产品列表页面中显示其他自定义列:

  • 目前正在使用WordPress 5.1.1和WooCommerce 3.5.7。我的WooCommerce商店有大约500种产品,由简单和多变的产品组成。 每个产品自然都有一个SKU,但每个产品也有一个称为“商品代码”的唯一ID代码。我向特定行业销售特定产品。 我已经在我的functions.php文件中添加了简单和可变产品的自定义字段的代码,目前效果很好。 我的问题是,我试图让“商品代码”出现在