【问题标题】:woocommerce: add value to a product attributewoocommerce:为产品属性增加价值
【发布时间】:2013-10-31 09:11:26
【问题描述】:

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

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

【问题讨论】:

    标签: wordpress woocommerce


    【解决方案1】:

    我找到了答案,你需要使用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 分类。

    【讨论】:

    • 谢谢。你把这个放在你的functions.php的什么地方? $object_id 是什么?
    • @nicmare 把它放在你想改变值的地方,但是如果你把这个语句直接放在functions.php中,那么每次加载任何文件时该函数都会运行!此外,$object_id 只不过是产品的 id,即该特定产品的帖子 ID。
    • 当然我会用 save_post 钩子触发它。我会试一试。谢谢
    • 它对我不起作用,$product->get_attribute('my_attr');返回'val1 | val2' 但 wp_set_object_terms( $product->ID, 'val3', 'my_attr' , false);返回无效分类。想法?
    • @user2867106 您的“my_attr”是 woocommerce 分类法吗?你是如何创建“my_attr”的?
    【解决方案2】:

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

    阅读模式:

    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);
    
    }
    

    希望这会有所帮助!

    【讨论】:

    • 不,这不是我想要实现的,我可以通过 GUI 添加值,但我想在 php 中以编程方式执行此操作。
    • 即,我想通过 php 函数将值“3 个工作日”添加到特定产品的“发货时间”属性中。
    • 您是要在访问产品页面时即时添加属性,还是要一次将其添加到所有产品?
    • 我有一组产品帖子 ID,我想为其添加调度时间值,我不需要创建属性,它已经创建。我只想为某些产品的这些属性添加值。
    • 嗨,使用函数发布了对答案的编辑。希望这会有所帮助。
    猜你喜欢
    • 2018-10-13
    • 1970-01-01
    • 1970-01-01
    • 2018-05-04
    • 2019-07-11
    • 1970-01-01
    • 1970-01-01
    • 2019-02-12
    • 1970-01-01
    相关资源
    最近更新 更多