14

如何通过代码为 woocommerce 属性添加价值?我创建了一个名为“Dispatch time”的属性(分类:pa_dispatch),现在我想为特定产品的 Dispatch 属性添加价值。

如何以编程方式执行此操作?

在此处输入图像描述

4

2 回答 2

15

我找到了答案,您需要使用wp_set_object_terms来设置分类对象的术语,

wp_set_object_terms( $object_id, $terms, $taxonomy, $append);

其中,$append 可以是truefalse,如果为 true,则标记将附加到现有标记,如果为 false,则替换标记。

在我的例子中,

wp_set_object_terms( $object_id, '2 Business Days', 'pa_dispatch' , false);

在这里,pa_dispatch是 woo-commerce 分类法。

于 2013-12-24T23:31:23.103 回答
4

您不能为属性添加值。您需要使产品变量、创建变体并为其分配属性。现在在这个变体中,您可以分配一个值。

属性配置

变体配置

阅读模式:

  1. http://docs.woothemes.com/document/product-variations/
  2. http://www.youtube.com/watch?v=7PX8MWBOAeo

编辑:

在对问题进行更多澄清后,这是一个更新的解决方案。

将以下函数添加到您的functions.php。在适当的钩子上调用它并传递产品 ID 以及属性值。

function se19519561_set_attributes($post_id, $attributes) {

    //Type attribute
    $product_attributes['type'] = array(
        //Make sure the 'name' is same as you have the attribute
        'name' => htmlspecialchars(stripslashes('Dispatch Time')),
        'value' => $attributes,
        'position' => 1,
        'is_visible' => 1,
        'is_variation' => 1,
        'is_taxonomy' => 0
    );

//Add as post meta
update_post_meta($post_id, '_product_attributes', $product_attributes);

}

希望这可以帮助!

于 2013-10-22T13:39:35.580 回答