WooCommerce:在数据库中查找产品

WooCommerce: Finding the products in database

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

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

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

提前谢谢你。


2020 年更新

产品主要位于以下表格中:

  • wp_posts 表与 post_type 类似 product(或 product_variation),

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

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

  • wp_wc_order_product_lookupproduct_id 作为关系索引的表(帖子 ID)|允许快速查询以检索订单上的产品(自 WooCommerce 3.7 起)

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

  • 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 的新自定义分类句柄:

  • 使用条款 exclude-from-searchexclude-from-catalog 的产品可见性
  • 带有术语 featured 的特色产品
  • 带有术语 outofstock 的库存状态
  • rated-1rated-5 的评分系统

特性:每个产品属性都是一个自定义分类€|

参考文献:

  • 普通表:Wordpress 数据库描述
  • 具体表:Woocommerce 数据库说明

下表是存储 WooCommerce 产品数据库:

  • wp_posts -

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

  • wp_postmeta-

    每个帖子的特征信息称为元数据,它存储在 wp_postmeta 中。某些插件可能会将自己的信息添加到此表中,例如 wp_postmeta 表中产品的 WooCommerce 插件商店 product_id

此表中存储的产品类别、子类别:

  • wp_terms
  • wp_termmeta
  • wp_term_taxonomy
  • wp_term_relationships
  • wp_woocommerce_termmeta

以下查询返回产品类别列表

SELECT wp_terms.* 

  FROM wp_terms 

  LEFTJOIN wp_term_taxonomy ON wp_terms.term_id = wp_term_taxonomy.term_id

  WHERE wp_term_taxonomy.taxonomy = 'product_cat';

INSERTINTO wp_terms 

VALUES

 (57, 'Apples', 'fruit-apples', '0'),

 (58, 'Bananas', 'fruit-bananas', '0');

INSERTINTO wp_term_taxonomy 

VALUES

 (57, 57, 'product_cat', '', 17, 0),

 (58, 58, 'product_cat', '', 17, 0)

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'

    )

SELECT

  wp_terms.term_id,

  wp_terms.name,

  wp_terms.slug,

  wp_term_taxonomy.parent

FROM

  wp_terms

LEFTJOIN

  wp_term_taxonomy

  ON wp_terms.term_id = wp_term_taxonomy.term_id

WHERE

  wp_term_taxonomy.taxonomy LIKE 'product_cat'

for more reference -

  • Database Description
  • Fetch the Products of Woocommerce from ita€?s Table in Database

向 Woo 批量添加新类别:

插入类别id、名称、url键

SELECT wp_terms.* 

  FROM wp_terms 

  LEFTJOIN wp_term_taxonomy ON wp_terms.term_id = wp_term_taxonomy.term_id

  WHERE wp_term_taxonomy.taxonomy = 'product_cat';

INSERTINTO wp_terms 

VALUES

 (57, 'Apples', 'fruit-apples', '0'),

 (58, 'Bananas', 'fruit-bananas', '0');

INSERTINTO wp_term_taxonomy 

VALUES

 (57, 57, 'product_cat', '', 17, 0),

 (58, 58, 'product_cat', '', 17, 0)

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'

    )

SELECT

  wp_terms.term_id,

  wp_terms.name,

  wp_terms.slug,

  wp_term_taxonomy.parent

FROM

  wp_terms

LEFTJOIN

  wp_term_taxonomy

  ON wp_terms.term_id = wp_term_taxonomy.term_id

WHERE

  wp_term_taxonomy.taxonomy LIKE 'product_cat'

将术语值设置为类别

SELECT wp_terms.* 

  FROM wp_terms 

  LEFTJOIN wp_term_taxonomy ON wp_terms.term_id = wp_term_taxonomy.term_id

  WHERE wp_term_taxonomy.taxonomy = 'product_cat';

INSERTINTO wp_terms 

VALUES

 (57, 'Apples', 'fruit-apples', '0'),

 (58, 'Bananas', 'fruit-bananas', '0');

INSERTINTO wp_term_taxonomy 

VALUES

 (57, 57, 'product_cat', '', 17, 0),

 (58, 58, 'product_cat', '', 17, 0)

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'

    )

SELECT

  wp_terms.term_id,

  wp_terms.name,

  wp_terms.slug,

  wp_term_taxonomy.parent

FROM

  wp_terms

LEFTJOIN

  wp_term_taxonomy

  ON wp_terms.term_id = wp_term_taxonomy.term_id

WHERE

  wp_term_taxonomy.taxonomy LIKE 'product_cat'

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

这里的关键是确保 wp_term_taxonomy 表 term_taxonomy_id、term_id 等于 wp_term 表的 term_id

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


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

SELECT wp_terms.* 

  FROM wp_terms 

  LEFTJOIN wp_term_taxonomy ON wp_terms.term_id = wp_term_taxonomy.term_id

  WHERE wp_term_taxonomy.taxonomy = 'product_cat';

INSERTINTO wp_terms 

VALUES

 (57, 'Apples', 'fruit-apples', '0'),

 (58, 'Bananas', 'fruit-bananas', '0');

INSERTINTO wp_term_taxonomy 

VALUES

 (57, 57, 'product_cat', '', 17, 0),

 (58, 58, 'product_cat', '', 17, 0)

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'

    )

SELECT

  wp_terms.term_id,

  wp_terms.name,

  wp_terms.slug,

  wp_term_taxonomy.parent

FROM

  wp_terms

LEFTJOIN

  wp_term_taxonomy

  ON wp_terms.term_id = wp_term_taxonomy.term_id

WHERE

  wp_term_taxonomy.taxonomy LIKE 'product_cat'

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

SELECT wp_terms.* 

  FROM wp_terms 

  LEFTJOIN wp_term_taxonomy ON wp_terms.term_id = wp_term_taxonomy.term_id

  WHERE wp_term_taxonomy.taxonomy = 'product_cat';

INSERTINTO wp_terms 

VALUES

 (57, 'Apples', 'fruit-apples', '0'),

 (58, 'Bananas', 'fruit-bananas', '0');

INSERTINTO wp_term_taxonomy 

VALUES

 (57, 57, 'product_cat', '', 17, 0),

 (58, 58, 'product_cat', '', 17, 0)

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'

    )

SELECT

  wp_terms.term_id,

  wp_terms.name,

  wp_terms.slug,

  wp_term_taxonomy.parent

FROM

  wp_terms

LEFTJOIN

  wp_term_taxonomy

  ON wp_terms.term_id = wp_term_taxonomy.term_id

WHERE

  wp_term_taxonomy.taxonomy LIKE 'product_cat'

我建议使用 WordPress 自定义字段来存储每个产品的合格邮政编码。 add_post_meta() 和 update_post_meta 是你要找的。不建议更改默认的 WordPress 表结构。所有 postmetas 都插入到 wp_postmeta 表中。您可以在 wp_posts 表中找到相应的产品。


相关推荐

  • Spring部署设置openshift

    Springdeploymentsettingsopenshift我有一个问题让我抓狂了三天。我根据OpenShift帐户上的教程部署了spring-eap6-quickstart代码。我已配置调试选项,并且已将Eclipse工作区与OpehShift服务器同步-服务器上的一切工作正常,但在Eclipse中出现无法消除的错误。我有这个错误:cvc-complex-type.2.4.a:Invali…
    2025-04-161
  • 检查Java中正则表达式中模式的第n次出现

    CheckfornthoccurrenceofpatterninregularexpressioninJava本问题已经有最佳答案,请猛点这里访问。我想使用Java正则表达式检查输入字符串中特定模式的第n次出现。你能建议怎么做吗?这应该可以工作:MatchResultfindNthOccurance(intn,Patternp,CharSequencesrc){Matcherm=p.matcher…
    2025-04-161
  • 如何让 JTable 停留在已编辑的单元格上

    HowtohaveJTablestayingontheeditedcell如果有人编辑JTable的单元格内容并按Enter,则内容会被修改并且表格选择会移动到下一行。是否可以禁止JTable在单元格编辑后转到下一行?原因是我的程序使用ListSelectionListener在单元格选择上同步了其他一些小部件,并且我不想在编辑当前单元格后选择下一行。Enter的默认绑定是名为selectNext…
    2025-04-161
  • Weblogic 12c 部署

    Weblogic12cdeploy我正在尝试将我的应用程序从Tomcat迁移到Weblogic12.2.1.3.0。我能够毫无错误地部署应用程序,但我遇到了与持久性提供程序相关的运行时错误。这是堆栈跟踪:javax.validation.ValidationException:CalltoTraversableResolver.isReachable()threwanexceptionatorg.…
    2025-04-161
  • Resteasy Content-Type 默认值

    ResteasyContent-Typedefaults我正在使用Resteasy编写一个可以返回JSON和XML的应用程序,但可以选择默认为XML。这是我的方法:@GET@Path("/content")@Produces({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})publicStringcontentListRequestXm…
    2025-04-161
  • 代码不会停止运行,在 Java 中

    thecodedoesn'tstoprunning,inJava我正在用Java解决项目Euler中的问题10,即"Thesumoftheprimesbelow10is2+3+5+7=17.Findthesumofalltheprimesbelowtwomillion."我的代码是packageprojecteuler_1;importjava.math.BigInteger;importjava…
    2025-04-161
  • Out of memory java heap space

    Outofmemoryjavaheapspace我正在尝试将大量文件从服务器发送到多个客户端。当我尝试发送大小为700mb的文件时,它显示了"OutOfMemoryjavaheapspace"错误。我正在使用Netbeans7.1.2版本。我还在属性中尝试了VMoption。但仍然发生同样的错误。我认为阅读整个文件存在一些问题。下面的代码最多可用于300mb。请给我一些建议。提前致谢publicc…
    2025-04-161
  • Log4j 记录到共享日志文件

    Log4jLoggingtoaSharedLogFile有没有办法将log4j日志记录事件写入也被其他应用程序写入的日志文件。其他应用程序可以是非Java应用程序。有什么缺点?锁定问题?格式化?Log4j有一个SocketAppender,它将向服务发送事件,您可以自己实现或使用与Log4j捆绑的简单实现。它还支持syslogd和Windows事件日志,这对于尝试将日志输出与来自非Java应用程序…
    2025-04-161