在 WooCommerce 产品页面上保存多选自定义文件,可以通过以下步骤实现:
add_action
和 add_meta_box
函数来添加自定义字段。具体步骤如下:// 添加自定义字段
function add_custom_file_field() {
add_meta_box(
'custom_file_field',
'自定义文件',
'render_custom_file_field',
'product',
'normal',
'high'
);
}
add_action('add_meta_boxes', 'add_custom_file_field');
// 渲染自定义字段
function render_custom_file_field($post) {
// 获取已保存的文件信息
$custom_files = get_post_meta($post->ID, 'custom_files', true);
// 输出文件选择框
echo '<label for="custom_files">选择文件:</label>';
echo '<input type="file" name="custom_files[]" multiple>';
// 输出已保存的文件列表
if (!empty($custom_files)) {
echo '<ul>';
foreach ($custom_files as $file) {
echo '<li><a href="' . $file['url'] . '">' . $file['name'] . '</a></li>';
}
echo '</ul>';
}
}
// 保存自定义字段值
function save_custom_file_field($post_id) {
if (isset($_FILES['custom_files'])) {
$files = $_FILES['custom_files'];
$file_urls = array();
foreach ($files['name'] as $key => $name) {
if ($files['error'][$key] === 0) {
$upload_dir = wp_upload_dir();
$file_name = sanitize_file_name($name);
$file_path = $upload_dir['path'] . '/' . $file_name;
if (move_uploaded_file($files['tmp_name'][$key], $file_path)) {
$file_urls[] = array(
'name' => $name,
'url' => $upload_dir['url'] . '/' . $file_name
);
}
}
}
if (!empty($file_urls)) {
update_post_meta($post_id, 'custom_files', $file_urls);
}
}
}
add_action('save_post_product', 'save_custom_file_field');
get_post_meta
函数获取已保存的自定义文件信息,并将其显示在产品页面上。具体步骤如下:// 获取自定义文件信息
$custom_files = get_post_meta(get_the_ID(), 'custom_files', true);
// 显示自定义文件列表
if (!empty($custom_files)) {
echo '<ul>';
foreach ($custom_files as $file) {
echo '<li><a href="' . $file['url'] . '">' . $file['name'] . '</a></li>';
}
echo '</ul>';
}
这样,用户在 WooCommerce 产品页面上可以选择并上传多个自定义文件,并且这些文件会被保存在产品的自定义字段中。用户可以在产品页面上看到已上传的文件列表,并通过链接下载这些文件。
腾讯云相关产品推荐:
领取专属 10元无门槛券
手把手带您无忧上云