Да, это возможно.Используйте metaboxio или CMB2 для создания метаполя одного продукта.Где вы можете загрузить файл PDF для каждого продукта при создании или редактировании продукта.
Тогда вы можете использовать хук WooCommerce, чтобы показать там кнопку DownLoad.
Пример для MetaBox IO:
Добавьте приведенный выше код в конец файла functions.php.Убедитесь, что плагин metaboxio установлен и активирован.Вы можете перейти в Плагины -> Добавить новый ->, затем выполнить поиск с помощью metboxio, затем установить и активировать его.После этого вы можете скопировать и вставить код в соответствии с рекомендациями.
function rox-pdf-button( $meta_boxes ) {
$prefix = 'rox-';
$meta_boxes[] = array(
'id' => 'pdf-btn',
'title' => esc_html__( 'Upload PDF', 'pluginrox' ),
'post_types' => array('product' ),
'context' => 'advanced',
'priority' => 'default',
'autosave' => 'true',
'fields' => array(
array(
'id' => $prefix . 'product-pdf',
'type' => 'file_advanced',
'name' => esc_html__( 'Upload PDF File', 'pluginrox' ),
'desc' => esc_html__( 'Here you can upload your pdf file to show on single product page', 'pluginrox' ),
'mime_type' => 'application/pdf',
'max_file_uploads' => 5,
'max_status' => 'true',
'size' => 5,
),
),
);
return $meta_boxes;
}
add_filter( 'rwmb_meta_boxes', 'rox-pdf-button' );
В коде, который я включил вариант загрузки нескольких файлов, вы можете сделать это просто, как вариант загрузки одного файла.Посмотрите документацию metabox io для этого.
Перейдите к своим продуктам и теперь редактируйте любые продукты, там у вас будет возможность добавить PDF сейчас.
Для получения дополнительной информации о том, как получить URL загруженного файла, проверьте эту документацию .
Используйте хук WooCommerce для одного продукта, чтобы опубликовать кнопку загрузки на вашем продукте.
Пример кода для показа кнопки загрузки:
add_action( 'woocommerce_after_add_to_cart_form', 'rox_single_download_button', 5 );
function rox_single_download_button() {
$files = rwmb_meta( 'rox-product-pdf' );
foreach ( $files as $file ) {?>
<a href="<?php echo $file['url']; ?>"><?php echo $file['name']; ?></a>
<?php }
}
Если вы хотите добавить кнопку на странице архива товара / на странице магазина WooCommerce, вам нужно подать заявку на товарный магазин или петлю крючка.
Вы можете попробовать приведенный ниже код. Дайте мне знать, работает ли он или нет, поскольку я не проверял на странице магазина.Я тестировал только на одной странице, но это должно работать.
add_action('woocommerce_after_shop_loop_item', 'rox_loop_download_button', 5);
function rox_loop_download_button() {
global $product;
$product_id = $product->get_id();
$files = rwmb_meta('rox-product-pdf', '', $product_id);
foreach ($files
as $file) { ?>
<a href="<?php echo $file['url']; ?>"><?php echo $file['name']; ?></a>
<?php }
}
Для более подробной информации вы можете проверить эту ссылку.