如何以编程方式设置新的 Woocommerce 产品创建的类别?

2023-11-21

这里提出的解决方案允许我轻松地为 WordPress 帖子创建“类别”:

//Check if category already exists
$cat_ID = get_cat_ID( $category );

//If it doesn't exist create new category
if($cat_ID == 0) {
        $cat_name = array('cat_name' => $category);
    wp_insert_category($cat_name);
}

//Get ID of category again incase a new one has been created
$new_cat_ID = get_cat_ID($category);

// Create post object
$new_post = array(
    'post_title' => $headline,
    'post_content' => $body,
    'post_excerpt' => $excerpt,
    'post_date' => $date,
    'post_date_gmt' => $date,
    'post_status' => 'publish',
    'post_author' => 1,
    'post_category' => array($new_cat_ID)
);

// Insert the post into the database
wp_insert_post( $new_post );

但是,Woocommerce 无法识别这些类别。 Woocommerce 类别存储在其他地方。如何以编程方式创建 woocommerce 类别以及将其分配给新帖子的正确方法是什么?


Woocommerce 类别是 Product_cat 分类法中的术语。因此,要创建一个类别,您可以使用wp_insert_term:

wp_insert_term(
  'New Category', // the term 
  'product_cat', // the taxonomy
  array(
    'description'=> 'Category description',
    'slug' => 'new-category'
  )
);

这将返回term_id and term_taxonomy_id, 像这样:array('term_id'=>12,'term_taxonomy_id'=>34))

然后,将新产品与类别关联起来就是简单地关联类别term_id与产品帖子(产品是 Woocommerce 中的帖子)。首先,创建产品/帖子,然后使用wp_set_object_terms:

wp_set_object_terms( $post_id, $term_id, 'product_cat' );

顺便说一句,woocommerce 也提供了这些功能,可能更容易使用,但我在 wp cron 作业中遇到了 woocommerce 功能的问题,所以这些应该足以让你继续下去。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何以编程方式设置新的 Woocommerce 产品创建的类别? 的相关文章

随机推荐

  • 如何在unix shell脚本中获取最后一个下划线(_)之后的子字符串

    我有一个像这样的字符串 this is test string1 22 this is also test string12 6 我想分割并提取最后一个下划线周围的字符串 那就是我想要这样的输出 this is test string1 a
  • 如何将回调作为参数传递给另一个函数

    我是 ajax 和回调函数的新手 如果我对概念的理解有误 请原谅我 Problem 我可以发送一个回调函数作为另一个将执行回调的函数的参数 function firstFunction some code a callback functi
  • HTML5 类似占位符

    CKEditor 4 x 是否有插件或内置功能可以像 HTML5 输入 文本区域占位符一样工作 我唯一发现的是http ckeditor com addon placeholder 但这似乎有很大不同 您可以使用配置助手插件 Demo ht
  • 打印/全屏/电子邮件图标

    在 Plone 2 中 对象视图中有打印 全屏和电子邮件图标 如何在 Plone 4 中启用这些功能 它们似乎不存在于 Plone 4 1 的默认安装中 但我一定缺少一些东西 我想知道什么 Thanks IIRC 可以在 Plone 4 的
  • JavaScript 正则表达式替换整个单词

    我有一个变量 var str devtest11 devtest1 我用这种方式来替换 devtest1与另一个字符串 str replace new RegExp devtest1 g aaaa 然而 其结果 aaaa1 aaaa 不是我
  • C# 中有 SFTP 通信吗? [复制]

    这个问题在这里已经有答案了 可能的重复 适用于 NET 的 SFTP 库 C 中有 SFTP 通信吗 有一个 NET 组件称为SFTP黑匣子正是这样做的 功能列表对我来说似乎足够了 他们甚至对各种 NET SFTP 实现进行了比较here
  • 一次读取 4 个字节

    我正在加载一个充满整数的大文件 我刚刚开始使用 C 并且正在尝试文件流内容 从我读过的所有内容来看 我似乎只能以字节为单位读取 所以我必须设置一个 char 数组 然后将其转换为 int 指针 有没有办法可以一次读取 4 个字节 并消除对
  • sklearn 的 PLSRegression:“ValueError:数组不得包含 infs 或 NaN”

    使用时sklearn cross decomposition PLSRegression import numpy as np import sklearn cross decomposition pls2 sklearn cross de
  • 如何使用 PFX(Bouncy Castle 或其他)以编程方式对可执行文件进行代码签名

    我正在尝试确定使用 Bouncy Castle 托管代码或 C 中的非托管代码对可执行文件进行代码签名的最佳方法 由于 CAPICOM 现已被弃用 我想如果需要以非托管方式完成 那么 mssign32 dll 中的 SignerSign 方
  • 使用 scipy truncnorm 拟合数据

    我有遵循高斯分布的数据 然而 数据仅对于一系列值 xa xb 来说才是真正的高斯分布 所以我想使用以下方法拟合截断正态分布scipy stats truncnorm同时利用我知道范围 xa xb 的事实 我的目标是找到地点和规模 我不明白如
  • sqlite:如何在内存中使用

    我正在尝试将数据存储在内存中 这就是我现在所拥有的 sq lite driver Class forName org sqlite JDBC database path if it s new data base it will be cr
  • 如何在父元素和父元素的兄弟元素上方显示子元素?

    我的问题与这个问题相关 使用 CSS 在父元素上方显示子元素 该问题的答案 设置overflow visible 仅适用于一个孩子的一位家长 然而 我有这些元素的行 我需要孩子显示在父母上方的父母行 我可以让孩子显示在原始父母之上 但我无法
  • Oozie/yarn:src 文件系统上的资源已更改

    我有一个 Oozie 工作流程 其中一个步骤是 java 步骤 运行存储在本地文件系统上的 jar 该 jar 存在于所有节点上 最初 该 jar 是通过 RPM 安装的 因此它们都具有相同的时间戳 在实验时 我手动复制了这个 jar 的新
  • 样式需要时间加载 - Next.js

    当我输入我的作品集时 它会加载未样式化的 html 页面 并且仅在几秒钟后才会加载样式 我该如何解决这个问题 注意 我正在使用样式组件 When I enter the page After a few seconds 我尝试寻找样式组件与
  • Android:蓝牙 UUID 如何工作?

    我不明白蓝牙 UUID 表示什么 UUID 是否表示协议 例如RFCOMM 如果是这样 为什么要这样做createRfcommSocketToServiceRecord 方法需要 UUID 当它们在名称中指定 rfcomm 时 为什么 Bl
  • Android 上的方位角/偏航角和滚动角方向传感器值不一致

    我无法获得良好的方向传感器读数 传感器读数似乎不可靠 因此我针对两个免费的传感器测试应用程序测试了我的代码 传感器测试仪 Dicotomica and 传感器监控 R 的软件 我发现 虽然我的读数通常与传感器测试应用程序一致 但有时方位角
  • XFetchName 始终返回 0

    我试图编写一个 C 代码来获取 Linux 系统中活动窗口的标题 但函数 XFetchName 总是返回零 我也尝试过 XGetWMName 相同的结果 但是使用 xprop 我可以看到 WM NAME 属性中有一个字符串 谁能告诉我我的代
  • Magento:如何将配置更改从开发环境迁移到生产环境?

    我们正在积极开发模块 当我们将更改推送到生产站点时 通常需要进行多项配置更改 自动化这个 想法会很好吗 不确定它是否仍然是实际的 但如果您的意思是对系统 gt 配置进行更改 那么使用此类 config xml 节点而不是编写数据库升级要好得
  • Spring Boot 与 AngularJS html5Mode

    我使用 Spring Boot 启动我的 Web 应用程序 它使用一个简单的主类来启动嵌入式 tomcat 服务器 Configuration EnableAutoConfiguration ComponentScan public cla
  • 如何以编程方式设置新的 Woocommerce 产品创建的类别?

    这里提出的解决方案允许我轻松地为 WordPress 帖子创建 类别 Check if category already exists cat ID get cat ID category If it doesn t exist creat