簡體   English   中英

WooCommerce:如何在產品頁面上添加下載按鈕?

[英]WooCommerce: How to add download button on product page?

我們在我們的電子商務網站上使用 WooCommerce 插件。 我想在產品頁面上添加一個按鈕,允許用戶免費下載PDF文件,而無需進入產品單頁。 此外,所有產品都需要有一個唯一的 PDF 文件。 這可能嗎?

PS我也在這里嘗試了一些答案。

是的,它可能。 使用metaboxioCMB2創建單個產品元字段。 創建或編輯產品時,您可以在哪里上傳每個產品的 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。

有關如何獲取上傳文件 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 }
}

有關更多詳細信息, 您可以查看此鏈接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM