You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将WooCommerce新建产品默认类型设为External而非Simple

实现WooCommerce新建产品自动设为External类型的方法

你给的代码是修改指定ID的已有产品类型,没法实现新建产品自动设置的需求,得换个钩子和写法,下面是具体实现步骤:

一、替换为适配新建产品的代码

直接用这个代码,它会在任何方式创建产品时自动触发:

// 自动将新建产品设置为External类型
function auto_set_external_product_type( $product_id ) {
    // 移除默认的Simple产品类型标记
    wp_remove_object_terms( $product_id, 'simple', 'product_type' );
    // 给产品添加External类型标记
    wp_set_object_terms( $product_id, 'external', 'product_type', true );
}
// 绑定到产品创建完成的钩子,覆盖默认类型
add_action( 'woocommerce_new_product', 'auto_set_external_product_type' );

代码说明:

  • woocommerce_new_product是WooCommerce专门用于产品创建完成的钩子,不管你是后台手动添加、前台表单提交还是用API创建,都会触发这个动作
  • 不用写固定产品ID,$product_id会自动获取刚创建的产品ID

二、安全添加代码到网站的方法

新手别直接乱改主题文件,推荐两种安全方式:

  • 方式一:用子主题的functions.php
    1. 登录WordPress后台,进入「外观」→「主题文件编辑器」
    2. 在右侧文件列表里找到当前启用的子主题的functions.php(一定要选子主题,父主题更新会清空修改内容)
    3. 把上面的代码粘贴到文件最末尾,点击「更新文件」
  • 方式二:用代码片段插件(更推荐)
    1. 后台搜索安装「Code Snippets」插件并激活
    2. 进入「Snippets」→「Add New」
    3. 给片段起个名字(比如“自动设置External产品类型”),粘贴代码,点击「Save Changes and Activate」激活即可

注意事项

  • 操作前记得备份网站和数据库,以防出错
  • 如果代码没生效,检查是否有其他WooCommerce相关插件冲突,暂时禁用其他插件测试
  • 不要直接修改父主题的functions.php,否则主题更新后代码会丢失

内容的提问来源于stack exchange,提问作者sevenkader

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 22:33:11