mysql - WooCommerce 产品属性键和值存储在哪里
问题描述
我向产品添加了产品属性键和值。
我想通过这个属性查询产品。我有一个查询(这里不相关),但它什么也没返回。所以我打开 PHPMyAdmin 并开始搜索我的本地数据库从头开始。
我在任何地方都找不到我的新属性。
所以:my-attribute = "Test Value"
通过我的本地主机版本网站的管理员设置。检查数据库连接,指向本地 MySQL 实例。保存属性,单击产品上的更新,离开产品页面并返回以确保属性确实在产品上并保存。
数据库中没有任何内容。
在表列中搜索my-attribute
或产生零结果。我确实在这里看到了其他带有+ 一些其他自定义属性名称的记录。pa_my-attribute
wp_term_taxonomy
taxonomy
pa_
单击其他表,例如wp_terms
orwp_woocommerce_attribute_taxonomies
也不会显示与my-attribute
orqa_my-attribute
输入匹配的任何记录。
向第二个产品添加了相同的确切属性,但仍然找不到任何东西。重新确认数据库连接。数据库中没有我能找到的记录。
但它绝对存在于管理中的产品上。
我错过了什么?
解决方案
原来它们存储在序列化字段中。
$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--)
推荐阅读
- angular - 当 headerComponent 中的复选框状态更改时检测组件网格中的更改
- python - 从一些刮和标题
- .net - 在 asp.net core 中嵌入 Excel 显示
- python-3.x - Python如何将变量传递给SQLite复杂的SQL更新查询
- python - 创建 Tkinter 文本并使以前的文本上升
- latex - 寻找大型乳胶文件(~200 页/1mb+)来测试压缩实现
- mysql - MySql 5.7,最大 varchar 列长度为 768?
- python - 无法使用 Python OpenANT 库初始化 ANT+ 节点
- php - Codeigniter - 未收到电子邮件
- swift - 希腊字符函数(为了好玩)