在WooCommerce中,您可以通过两种方式为产品添加属性。
一个。在Product-> Attributes中创建一个属性,为它设置一个名称(即颜色),将其定义为选择字段或文本字段。保存。
湾编辑产品切换到属性选项卡,选择"颜色"从下拉列表中,填写一些值。保存。
编辑产品,切换到属性选项卡,选择"添加自定义属性",设置名称,填写一些值。保存。
嗯,在方法#1中,属性被保存并连接在三个表上。 wp_terms,wp_term_taxonomies和wp_term_relationship
在方法#2中,属性被序列化并保存在wp_postmeta中,其中包含' _product_attributes'作为meta_key。
我现在要做的是将存储在wp_postmeta表中的所有属性移动到wp_meta表,并通过wp_term_taxonomies和wp_term_relationship正确连接它们。
是否有任何解决方案或插件?
手动移动它们不是一种选择,因为它们超过500种。
干杯,
答案 0 :(得分:1)
有一个WooCommerce-REST-API允许我这样做。 http://woothemes.github.io/woocommerce-rest-api-docs/
首先,我必须得到存储在wp_term_relathionship中的所有属性(而不是它们的值)的slug和名称。由于只有少数,我把它们写下来了。
实施例: 产品有两个称为“颜色”的属性。 one属性存储在wp_term_relationships中,名称为“Color”,slug为“pa_attr_color”。另一种颜色作为pa_attributes存储在wp_postmeta中,并且具有名称“Color”和slug“wrong_color”。现在我想将这些值移动到pa_attr_color。
$product = [product =>
[
id => 123,
attributes => [
[name => 'Color', 'slug' => 'pa_attr_color', options => ['red', 'blue']],
[name => 'color', 'slug' => 'wrong_color', options => ['yellow', 'green']]
]]
我现在要做的就是将选项从wrong_color移动到pa_attr_color。 如果没有pa_attr_color,那么我只需要创建一个。