我向产品添加了产品属性键和值。
我想通过该属性查询产品。我对此有一个查询(与此处无关),但它什么也没返回。所以我打开 PHPMyAdmin 并开始从头开始搜索我的本地数据库。
我在任何地方都找不到我的新属性。
所以:my-attribute = "Test Value"
通过我的本地主机版本的站点的管理员设置。检查数据库连接,指向本地 MySQL 实例。保存属性,单击产品上的更新,离开产品页面并返回以确保属性确实在产品上并保存。
数据库中没有任何内容。
在 wp_term_taxonomy
表 taxonomy
列中搜索 my-attribute
或 pa_my-attribute
会产生零结果。我确实在此处看到了其他记录,其中包含 pa_
+ 一些其他自定义属性名称。
点击 wp_terms
或 wp_woocommerce_attribute_taxonomies
等其他表格也不会显示与 my-attribute
或 qa_my 匹配的任何记录-属性
输入。
向第二个产品添加了完全相同的属性,但仍然找不到任何内容。重新确认数据库连接。我在数据库中找不到记录。
但它绝对存在于管理员的产品中。
我错过了什么?
最佳答案
事实证明它们存储在序列化字段中。
$attribute_name = 'my-attribute';
$attribute_value = 'cupcakes';
$serialized_value = serialize( 'name' ) . serialize( $attribute_name ) . serialize( 'value' ) . serialize( $attribute_value );
$args = array(
'post_type' => 'product',
'post_status' => 'any',
'posts_per_page' => -1,
'orderby' => 'title',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => '_product_attributes',
'value' => $serialized_value,
'compare' => 'LIKE',
),
),
);
$query = new WP_Query( $args );
$products = $query->get_posts();
//neat little array of product objects (not the full product object,
//just data that came from query. Can use wordpress loop on $query or
//wc_get_product(--pass product ID here--)
关于mysql - WooCommerce 产品属性键和值存储在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55803975/