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

如何在WooCommerce中为产品变体添加专属可下载PDF文件?

WooCommerce 为产品变体添加专属可下载PDF的解决方案

方法一:自定义字段+代码实现(无需插件)

适合有基础开发能力的用户,完全自定义控制逻辑:

1. 给变体添加PDF上传字段

将以下代码添加到主题的functions.php文件(或自定义插件中),会在变体编辑页面新增一个PDF上传框:

// 添加变体专属PDF上传字段
add_action('woocommerce_product_after_variable_attributes', 'add_variant_pdf_upload_field', 10, 3);
function add_variant_pdf_upload_field($loop, $variation_data, $variation) {
    woocommerce_wp_file_input(array(
        'id'          => '_variant_pdf[' . $loop . ']',
        'name'        => '_variant_pdf[' . $loop . ']',
        'value'       => get_post_meta($variation->ID, '_variant_pdf', true),
        'label'       => __('变体专属PDF', 'woocommerce'),
        'description' => __('上传此变体对应的可下载PDF文件', 'woocommerce')
    ));
}

// 保存变体PDF字段值
add_action('woocommerce_save_product_variation', 'save_variant_pdf_upload_field', 10, 2);
function save_variant_pdf_upload_field($variation_id, $i) {
    if (!empty($_FILES['_variant_pdf']['name'][$i])) {
        $upload = wp_handle_upload($_FILES['_variant_pdf']['files'][$i], array('test_form' => false));
        if (!empty($upload['url'])) {
            update_post_meta($variation_id, '_variant_pdf', esc_url($upload['url']));
        }
    } elseif (isset($_POST['_variant_pdf'][$i]) && $_POST['_variant_pdf'][$i] === '') {
        delete_post_meta($variation_id, '_variant_pdf');
    }
}

2. 在订单中显示下载链接

添加以下代码,让买家在订单详情页、「我的账户」的订单列表中看到对应变体的PDF下载入口:

// 在订单项目中插入变体PDF下载链接
add_action('woocommerce_order_item_meta_end', 'display_variant_pdf_in_order', 10, 4);
function display_variant_pdf_in_order($item_id, $item, $order, $plain_text) {
    $variation_id = $item->get_variation_id();
    if ($variation_id) {
        $pdf_url = get_post_meta($variation_id, '_variant_pdf', true);
        if ($pdf_url) {
            echo '<br><a href="' . esc_url($pdf_url) . '" target="_blank" download>下载变体专属PDF</a>';
        }
    }
}

方法二:使用支持变体级下载的插件

如果没有开发能力,直接筛选WooCommerce插件库中明确支持变体专属可下载文件的插件。这类插件会在变体编辑界面原生集成文件上传功能,无需手动写代码,配置更简单,适合非技术用户。

额外优化(可选)

如果想在产品页面让买家选好变体后就能看到PDF预览/下载提示,可以添加JS监听变体切换事件,动态获取当前变体的PDF链接并展示:

jQuery(document).ready(function($) {
    $('form.variations_form').on('show_variation', function(event, variation) {
        if (variation._variant_pdf) {
            $('.variant-pdf-container').html('<a href="' + variation._variant_pdf + '" target="_blank" download>查看此变体专属PDF</a>');
        } else {
            $('.variant-pdf-container').empty();
        }
    });
});

同时需要在产品模板中添加一个容器<div class="variant-pdf-container"></div>,并通过wp_localize_script将变体的PDF链接传递到JS中。

内容的提问来源于stack exchange,提问作者Félix Poirier

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 06:00:22