WooCommerce从Chrome下载栏隐藏信息

时间:2017-03-26 09:54:22

标签: woocommerce header

当用户购买可下载产品并且页面重定向到下载页面时,当用户点击产品链接进行保存时,chrome会开始下载链接,但文件大小未知,因此进度条不起作用。

让我的客户感到沮丧。

我在function download_headers()中找到class-wc-download-handler.php并将其编辑为以下代码。

因为php函数filesize()不适用于非绝对路径(不是网址,应该是public_html/wordpress/.... .ex)

还添加了Content-Range,但它仍然无效。

function download_headers( $file_path, $filename ) {
    self::check_server_config();
    self::clean_buffers();
    nocache_headers();

    header( "X-Robots-Tag: noindex, nofollow", true );
    header( "Content-Type: " . self::get_download_content_type( $file_path )   );
    header( "Content-Description: File Transfer" );
    header( "Content-Disposition: attachment; filename=\"" . $filename . "\";" );
    header( "Content-Transfer-Encoding: binary" );

    $url = $file_path;
    static $regex = '/^Content-Length: *+\K\d++$/im';
    if ( ! $fp = @fopen( $url, 'rb' ) ) {
        return false;
    }
    if ( isset( $http_response_header )
         && preg_match( $regex, implode( "\n", $http_response_header ), $matches ) ) {
        return (int)$matches[0];
    }
    $size = strlen( stream_get_contents( $fp ) );

    header( "Content-Range: 0-" . ($size-1) . "/" . $size );

    header( "Content-Length: " . $size );
}

0 个答案:

没有答案