播放音频/视频文件,而不是在 Woocommerce“我的帐户”下载部分下载它们

2023-12-20

我有一个关于 WooCommerce 和可下载文件的简单问题。我想让购买的产品在“我的帐户”部分中播放,而不是轻松下载它们(与 WooCommerce 处理可下载/虚拟产品的方式完全相反)。

我已设法在“我的帐户”部分 (templates/order/order-downloads.php) 中找到处理“可下载产品”视图的代码,但是我无法使其工作,因为该链接会导致“安全”版本”

而不是友好/不安全的文件 URL

https://example.com//my-music.mp3 https://example.com//my-music.mp3


我已更改此行以使其作为音频短代码工作,但它无法播放,因为它没有获取完整的文件 URL。

case 'download-file':
    echo do_shortcode('[audio src="' . esc_url( $download['download_url'] ) . '"]');
    break;

我知道这不是更改代码的最佳方法,但我只想让它以客户可以播放文件但不能直接下载的方式工作。你能帮我实现这个目标吗?

EDIT

在...的帮助下马丁·米尔切夫 https://stackoverflow.com/users/13378498/martin-mirchev我能够得到以下信息:

case 'download-file':
    $url_file = esc_url( $download['file']['file'] );
    $address = explode(".", $url_file);
    if ($address[2] == "mp3") {
    echo "<div id='content' class='fancybox-hide' style='min-width:450px; min-height:250px;'>";
    echo do_shortcode('[audio src="' . esc_url( $download['file']['file'] ) . '"]');
    echo "</div>";
    echo "<a href='#content' class='ari-fancybox'>Listen to MP3</a>";
    }

是否有可能在 WooCommerce 中应用相同的自定义而不是覆盖模板文件?


无需覆盖模板文件,即可使用woocommerce_account_downloads_column_{$column_id}复合动作钩子,其中$column_id是下载文件

所以你得到:

function action_woocommerce_account_downloads_column_download_file( $download ) {
    // Targeting view order pages only
    if ( ! is_wc_endpoint_url( 'downloads' ) ) return;

    // Getters
    $url_file = esc_url( $download['file']['file'] );
    $address = explode( ".", $url_file );

    // Compare
    if ( $address[2] == "mp3" ) {
        echo "<div id='content' class='fancybox-hide' style='min-width:450px; min-height:250px;'>";
        echo do_shortcode( '[audio src="' . $url_file . '"]' );
        echo "</div>";
        echo "<a href='#content' class='ari-fancybox'>Listen to MP3</a>";
    } else {
        echo '<a href="' . esc_url( $download['download_url'] ) . '" class="woocommerce-MyAccount-downloads-file button alt">' . esc_html( $download['download_name'] ) . '</a>';
    }
}
add_action( 'woocommerce_account_downloads_column_download-file', 'action_woocommerce_account_downloads_column_download_file', 10, 1 );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

播放音频/视频文件,而不是在 Woocommerce“我的帐户”下载部分下载它们 的相关文章

随机推荐