mysql - WooCommerce 产品属性键和值存储在哪里

标签 mysql wordpress woocommerce

我向产品添加了产品属性键和值。

我想通过该属性查询产品。我对此有一个查询(与此处无关),但它什么也没返回。所以我打开 PHPMyAdmin 并开始从头开始搜索我的本地数据库。

我在任何地方都找不到我的新属性。

所以:my-attribute = "Test Value" 通过我的本地主机版本的站点的管理员设置。检查数据库连接,指向本地 MySQL 实例。保存属性,单击产品上的更新,离开产品页面并返回以确保属性确实在产品上并保存。

数据库中没有任何内容。

wp_term_taxonomytaxonomy 列中搜索 my-attributepa_my-attribute 会产生零结果。我确实在此处看到了其他记录,其中包含 pa_ + 一些其他自定义属性名称。

点击 wp_termswp_woocommerce_attribute_taxonomies 等其他表格也不会显示与 my-attributeqa_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/

相关文章:

mysql - 如何从表中获取未在另一个表中提及的行

javascript - PrettyPhoto 模式打开时禁用键盘导航 (Wordpress)

php - <ul><li> 点击显示/隐藏子菜单

javascript 下拉停止在 Wordpress Woocommerce https 页面上工作

php - WooCommerce 添加到购物车验证 : prevent add to cart

css - 悬停产品图片时显示附加产品信息(例如图片标题)

php - 通过相同 id 通过其他表中的其他行的值更新表的行

php 要求($文件) : failed to open stream

php - 如何设置类别列表限制?

php - Mysql根据字段获取三组行