我们正在电子商务网站上使用WooCommerce插件。我想在产品页面上添加一个按钮,该按钮允许用户免费下载PDF文件,而无需进入产品单页。此外,所有产品都需要具有唯一的PDF文件。这可能吗?
P.S。我也在这里尝试了一些答案。
答案 0 :(得分:1)
是可能的。使用metaboxio或CMB2创建单个产品元字段。创建或编辑产品时,可以在其中上传每种产品的pdf文件的位置。
然后,您可以使用WooCommerce挂钩在此处显示“下载”按钮。
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。
有关如何获取上载的文件网址的更多信息,请检查this documentation。
使用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 }
}