在WooCommerce中,您可以通过两种方式向产品添加属性 .
方法#1
一个 . 在Product-> Attributes中创建一个属性,为它设置一个名称(即颜色),将其定义为选择字段或文本字段 . 保存 .
湾编辑产品切换到属性选项卡,从下拉列表中选择“颜色”,填写一些值 . 保存 .
方法#2
编辑产品,切换到属性选项卡,选择“添加自定义属性”,设置名称,填写一些值 . 保存 .
那么,在方法#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种 .
干杯,
1 回答
有一个WooCommerce-REST-API允许我这样做 . http://woothemes.github.io/woocommerce-rest-api-docs/
首先,我必须得到存储在wp_term_relathionship中的所有属性(而不是它们的值)的slug和名称 . 由于只有少数,我把它们写下来了 .
获取所有产品的JSON列表
迭代产品的属性
将它的名称和slug与写下来的名称进行比较
如果slug不匹配,请将值写入具有正确slug的属性 .
示例:Product有两个名为“Color”的属性 . one属性存储在wp_term_relationships中,名称为“Color”,slug为“pa_attr_color” . 另一种颜色作为pa_attributes存储在wp_postmeta中,并具有名称“Color”和slug“wrong_color” . 现在我想将这些值移动到pa_attr_color .
我现在要做的就是将选项从wrong_color移动到pa_attr_color . 如果没有pa_attr_color,那么我只需要创建一个 .