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

如何通过过滤器统一修改WooCommerce可下载产品显示文件名

完全可以实现

你找到的woocommerce_downloadable_product_name过滤器正是专门用来修改前端显示的下载名称的,不会改动产品后台实际存储的文件名字段,也不需要修改任何插件或WooCommerce核心代码。

实现代码

将以下代码添加到你的主题functions.php文件或自定义功能插件中即可:

add_filter( 'woocommerce_downloadable_product_name', 'custom_unified_download_name', 10, 4 );
function custom_unified_download_name( $download_name, $_product, $download_id, $file_number ) {
    // 替换成你想要统一显示的文字,比如“免费下载”
    return '免费下载';
}

额外扩展(可选)

如果需要针对特定场景(比如特定产品分类、用户角色)修改名称,可在函数内添加判断逻辑:

add_filter( 'woocommerce_downloadable_product_name', 'custom_conditional_download_name', 10, 4 );
function custom_conditional_download_name( $download_name, $_product, $download_id, $file_number ) {
    // 示例:仅对“免费资源”分类下的产品修改名称
    if ( has_term( '免费资源', 'product_cat', $_product->get_id() ) ) {
        return '免费下载';
    }
    // 其他产品保留原显示名称
    return $download_name;
}

原理说明

从你提供的WooCommerce核心代码可以看到:

  • 实际存储的文件名字段是$download_file['name'],这个值并没有被过滤器修改
  • 过滤器仅修改了$download_name变量,而前端(包括WooCommerce用户面板、调用该字段的插件)都是使用$downloads数组中的download_name值来显示按钮文字,因此完全不会影响后台的产品文件设置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 04:52:36