You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

WPML WordPress:多语言产品库存数量锁定图标问题解决方法

解决WPML翻译产品库存锁定无法修改的问题

我之前在维护多语言电商站点的时候也碰到过一模一样的问题!WPML默认会把产品库存这类核心数据设置为和源语言产品同步,所以翻译版本的库存字段会被锁定没法直接编辑。给你几个简便的解决思路,按需求选就行:

方法一:修改WPML全局同步设置(推荐)

这是最根本的解决方式,适合需要长期独立管理各语言版本库存的场景:

  • 登录WordPress后台,进入「WPML → 设置 → 自定义帖子类型和分类法同步」
  • 找到「产品」(如果用了自定义产品类型就选对应的),展开它的同步选项列表
  • 找到「库存数量(_stock)」这一项,把它从「同步」切换为「不同步」
  • 保存设置后,再去编辑翻译版产品,库存字段就会解锁,直接输入新数值即可

方法二:用快速编辑绕开锁定

如果只是偶尔需要修改单个翻译产品的库存,不想改动全局设置,可以试试这个快捷方式:

  • 进入「产品」列表页面,找到目标翻译版产品
  • 鼠标悬停在产品标题上,点击出现的「快速编辑」选项
  • 在快速编辑面板里直接修改「库存数量」,点击「更新」就能生效——这个方式会绕过编辑页面的字段锁定限制

方法三:用代码片段临时解锁

如果前两种方法都不适用(比如权限限制没法改WPML设置),可以加一段简单的代码来解锁库存字段:

add_filter( 'wpml_is_translatable_field', 'unlock_stock_quantity_for_translations', 10, 4 );
function unlock_stock_quantity_for_translations( $is_translatable, $field_name, $post_type, $field_type ) {
    // 针对产品类型的库存字段取消同步
    if ( 'product' === $post_type && '_stock' === $field_name ) {
        return false;
    }
    return $is_translatable;
}

你可以把这段代码添加到主题的functions.php文件(建议用子主题,避免主题更新丢失),或者用自定义代码插件(比如Code Snippets)来添加。添加后,翻译版产品的库存字段就会自动解锁。如果之后需要恢复同步,删掉这段代码即可。

内容的提问来源于stack exchange,提问作者Ruslanas Sakavičius

火山引擎 最新活动