gpt4 book ai didi

woocommerce - 以编程方式在 WooCommerce 中添加自定义产品属性和变量

转载 作者:行者123 更新时间:2023-12-02 04:57:22 28 4
gpt4 key购买 nike

能否请您告诉我如何以编程方式在 WooCommerce 中添加自定义产品属性和变量?我知道这很容易在 Woocommerce GUI 中完成,但我需要通过 functions.php 来完成

我有一个名为“Class”的属性和一些变量 [A,B,C,D] 现在我想将它们添加到购物车和商店页面,我已经尝试过这个功能但它没有添加任何页面内容:

function woocommerce_variable_add_to_cart() {
//Type attribute
$product_attributes['type'] = array(
//Make sure the 'name' is same as you have the attribute
'name' => htmlspecialchars(stripslashes('Class')),
'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);

}

谢谢

最佳答案

我刚刚注意到您上面的函数引用了一个“$attributes”,它看起来不像是在该函数中定义的。希望该函数的工作副本修复了该值 => NULL,这可能是您更新失败的原因。

另一方面,我认为您的 $product_attributes 定义不正确(不过我不是 100% 确定)。

我创建了一个名为“my_attr_name”且值为“my_custom_value”的自定义属性,并检查了 MySQL 数据库以了解其存储方式。它存储在表“wp_postmeta”中,带有 meta_key=_product_attributes 和“meta_value”serialized .所以我复制了那个序列化的值并试图反序列化它只是为了看看它应该如何首先定义。它看起来像你的,除了你的属性键(即“类型”)和子数组的第一个键的值应该匹配。

这是我的例子:

Array
(
[john-doe] => Array
(
[name] => 'John Doe'
[value] => my_custom_value
[position] => 0
[is_visible] => 1
[is_variation] => 0
[is_taxonomy] => 0
)

)

如您所见,数组的键 john-doe ~ 子数组的第一个键(也是 John Doe)。在你的情况下:

type <> htmlspecialchars(stripslashes('Class'))

值得一提的是,如果您的 'name' => 'John Doe' 那么主 key 应该类似于 'john-doe'(小写和减号作为空格替换)。我不知道这是否是必须的,但至少这是 WP 4.2.2 的工作方式。

至于其他键:

  • is_visible:如果该属性在产品页面上可见
  • position :属性顺序(0=第一个,1=下一个属性等);我认为应该始终定义这个,否则你有覆盖第一个 (0) 索引的风险;所以你应该在添加新的之前找出它们的数量(参见 $meta= get_post_meta (get_the_ID(), '_product_attributes'))
  • is_variation:可能不对。与可变产品有关 (?!)
  • is_taxonomy:我认为 is 应该始终是 false,因为 meta_key 不被视为分类法(只是猜测)

关于woocommerce - 以编程方式在 WooCommerce 中添加自定义产品属性和变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20262341/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com