Php WooCommerce:如何在产品页面添加下载按钮?

Php WooCommerce:如何在产品页面添加下载按钮?,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我们正在电子商务网站上使用WooCommerce插件。我想在产品页面上添加一个按钮,允许用户免费下载PDF文件,而无需进入产品单一页面。此外,所有产品都需要具有唯一的PDF文件。这可能吗 另外,我在这里也尝试了一些答案。是的,这是可能的。使用或创建单个产品元字段。在这里,您可以在创建或编辑产品时上载每个产品的pdf文件 然后您可以使用WooCommerce钩子显示下载按钮 MetaBox IO的示例: 将上述代码添加到functions.php文件的底部。确保metaboxio插件已安装并激活。

我们正在电子商务网站上使用WooCommerce插件。我想在产品页面上添加一个按钮,允许用户免费下载PDF文件,而无需进入产品单一页面。此外,所有产品都需要具有唯一的PDF文件。这可能吗

另外,我在这里也尝试了一些答案。

是的,这是可能的。使用或创建单个产品元字段。在这里,您可以在创建或编辑产品时上载每个产品的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商店页面添加按钮,那个么你们必须在产品商店或loop hook上申请

您可以尝试下面的代码,让我知道它是否有效,因为我没有在商店页面上测试。我只测试了一页,但它应该可以工作

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 }
}
有关更多详细信息,请参见“是”,这是可能的。使用或创建单个产品元字段。在这里,您可以在创建或编辑产品时上载每个产品的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商店页面添加按钮,那个么你们必须在产品商店或loop hook上申请

您可以尝试下面的代码,让我知道它是否有效,因为我没有在商店页面上测试。我只测试了一页,但它应该可以工作

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 }
}

有关更多详细信息

非常感谢代码帮助我它显示了上载pdf按钮,但我还需要单个产品挂钩的代码,以便在您的产品上发布下载按钮。如果你也能帮我,我会非常感激。再次感谢。请现在检查我的答案,我已经编辑了代码,因此通过同样的代码,您可以在单个页面上显示下载按钮下面的“添加到购物车”按钮。它非常完美,工作正常,但我需要在产品页面上显示按钮,而不是在单个页面上。请立即检查回复,我已经编辑了添加到循环页面的选项。非常感谢,现在它工作得很好。你是一个救生员。非常感谢代码帮助我显示了上载pdf按钮,但我还需要单个产品挂钩的代码,以便在你的产品上发布下载按钮。如果你也能帮我,我会非常感激。再次感谢。请现在检查我的答案,我已经编辑了代码,因此通过同样的代码,您可以在单个页面上显示下载按钮下面的“添加到购物车”按钮。它非常完美,工作正常,但我需要在产品页面上显示按钮,而不是在单个页面上。请立即检查回复,我已经编辑了添加循环页面的选项。非常感谢,现在它工作得很好。你是一个救生员