WooCommerce:在数据库中查找产品

WooCommerce: Finding the products in database

我正在使用 WooCommerce 创建一个网站,我想根据用户在我主页上的搜索表单中输入的邮政编码来限制可用产品。

为了能够实现这一点,我必须在 phpMyAdmin 的数据库中指定每个产品的条件,但我似乎找不到它。

有人知道产品 and/or 类别的 woocommerce 数据库在 phpmyAdmin 中的什么位置?

提前谢谢你。

我建议使用 WordPress custom fields to store eligible postcodes for each product. add_post_meta() and update_post_meta 正是您要找的。不建议更改默认的 WordPress table 结构。所有 postmetas 都插入到 wp_postmeta table 中。您可以在 wp_posts table.

中找到相应的产品

2020 年更新

产品主要位于以下tables:

  • wp_posts table 与 post_typeproduct(或 product_variation),

  • wp_postmeta table 以 post_id 作为关系索引(产品 ID)。

  • wp_wc_product_meta_lookup table 以 product_id 作为关系索引(post ID) |允许对特定产品数据进行快速查询(自 WooCommerce 3.7 起)

  • wp_wc_order_product_lookuptable 以 product_id 作为关系索引(post ID) |允许快速查询以检索订单产品(自 WooCommerce 3.7 起)

产品类型、类别、子类别、标签、属性和所有其他自定义分类位于以下 table 中:

  • wp_terms

  • wp_termmeta

  • wp_term_taxonomy

  • wp_term_relationships - 列 object_id 作为关系索引 (产品 ID)

  • wp_woocommerce_termmeta

  • wp_woocommerce_attribute_taxonomies (仅针对产品属性)

  • wp_wc_category_lookup (仅适用于 WooCommerce 3.7 之后的产品类别层次结构)


产品类型 由自定义分类 product_type 使用以下默认术语处理:

  • simple
  • grouped
  • variable
  • external

订阅和预订插件的一些其他产品类型:

  • subscription
  • variable-subscription
  • booking

自 Woocommerce 3+ 以来,一个新的自定义分类法名为 product_visibility handle:

  • 使用术语 exclude-from-searchexclude-from-catalog
  • 的产品可见度
  • 关键词featured
  • 的特色产品
  • outofstock
  • 期间的库存状态
  • 评级系统的条款从 rated-1rated-5

特殊功能:每个 产品属性 都是自定义分类…


参考文献:

以下 tables 是商店 WooCommerce 产品数据库:

  • wp_posts -

    WordPress 数据的核心是 posts。它存储了一个 post_type 类产品或 variable_product.

  • wp_postmeta-

    每个 post 都具有称为元数据的信息,它存储在 wp_postmeta 中。某些插件可能会向此 table 添加自己的信息,例如 wp_postmeta table.

  • 中产品的 WooCommerce 插件商店 product_id

本table存储的商品分类、子分类:

  • wp_terms
  • wp_termmeta
  • wp_term_taxonomy
  • wp_term_relationships
  • wp_woocommerce_termmeta

以下查询 Return 产品类别列表

SELECT wp_terms.* 
    FROM wp_terms 
    LEFT JOIN wp_term_taxonomy ON wp_terms.term_id = wp_term_taxonomy.term_id
    WHERE wp_term_taxonomy.taxonomy = 'product_cat';

for more reference -

向 Woo 批量添加新类别:

插入类别 ID、名称、url 键

INSERT INTO wp_terms 
VALUES
  (57, 'Apples', 'fruit-apples', '0'),
  (58, 'Bananas', 'fruit-bananas', '0');

将术语值设置为类别

INSERT INTO wp_term_taxonomy 
VALUES
  (57, 57, 'product_cat', '', 17, 0),
  (58, 58, 'product_cat', '', 17, 0)

17 - 是父类别,如果有的话

这里的关键是确保wp_term_taxonomytableterm_taxonomy_id,term_id等于wp_termtable的term_id

完成上述步骤后,转到 wordpress 管理并保存任何现有类别。这将更新数据库以包含您批量添加的类别

通过提供 product_id(wp_posts ID 列)获取产品类别 ID:

SELECT
    term_taxonomy_id
FROM
    wp_term_relationships
WHERE
    object_id = PRODUCT_ID_HERE
    AND
    term_taxonomy_id IN
        (
            SELECT
                term_taxonomy_id
            FROM
                wp_term_taxonomy
            WHERE
                taxonomy LIKE 'product_cat'
        )

获取类别数据(名称、slug)和类别层次结构:

SELECT
    wp_terms.term_id,
    wp_terms.name,
    wp_terms.slug,
    wp_term_taxonomy.parent
FROM
    wp_terms
LEFT JOIN
    wp_term_taxonomy
    ON wp_terms.term_id = wp_term_taxonomy.term_id
WHERE
    wp_term_taxonomy.taxonomy LIKE 'product_cat'