我正在尝试使免费下载易于下载,而无需完成任何结帐或填写表格。 我只是在Github上找到了这段代码,但是我不知道如何添加它并使它正常工作。
function direct_free_downloads_button( $button )
{
global $product;
if( $product->is_downloadable() AND $product->get_price() == 0 )
{
$files = $product->get_files();
$files = array_keys($files);
$download_url = home_url('?download_file='.$product->id.'&key='.$files[0].'&free=1' );
$button = sprintf( '<a href="%s" rel="nofollow" data-product_id="%s" data-product_sku="%s" data-quantity="%s" class="button %s product_type_%s">%s</a>',
esc_url( $download_url ),
esc_attr( $product->id ),
esc_attr( $product->get_sku() ),
esc_attr( isset( $quantity ) ? $quantity : 1 ),
$product->is_purchasable() && $product->is_in_stock() ? '' : '',
esc_attr( $product->product_type ),
esc_html( 'Download' )
);
}
return $button;
}
add_filter('woocommerce_loop_add_to_cart_link', 'direct_free_downloads_button', 100);
/**
* Handles downloading of free Downloadable products
* @return [type] [description]
*/
function download_free_product_file()
{
$product_id = absint( $_GET['download_file'] );
$_product = wc_get_product( $product_id );
if( $_product->get_price() == 0 ) {
WC_Download_Handler::download( $_product->get_file_download_path( filter_var($_GET['key'], FILTER_SANITIZE_STRING) ), $product_id );
}
}
if ( isset( $_GET['download_file'] ) && isset( $_GET['key'] ) && $_GET['free'] ) {
add_action( 'init', 'download_free_product_file' );
}
答案 0 :(得分:0)
如果它是可下载产品,则只需在产品页面上提供直接下载链接。并使用链接添加到产品添加中作为附属产品。