Nếu bạn muốn làm site bán sản phẩm có thể Download bằng WordPress, chắc là cũng nghĩ đến sử dụng Drive để lưu file đúng không? Tuy nhiên, lúc chèn link drive vào Woocommerce thì chắc hẳn gặp tình huống tải về chỉ tải được 1 tệp tin nào đó có tên UC.
Ở bài viết này mình sẽ giúp bạn khắc phục tình trạng trên – Lỗi download File Google Drive qua Woocomerce trong WordPress.
Cụ thể như sau:
- Thường link của Google Drive khi chúng ta share sẽ có dạng:
https://drive.google.com/file/d/ID/view?usp=sharing
các bạn chú ý chỗ ID - Khi gắn link download dành cho Woocommerce, chúng ta sẽ dùng chức năng UC, ví dụ:
https://drive.google.com/uc?export=download&id=
ID
(ID này chính là ID share của link ở trên)
Lưu ý: Nhớ chọn chế độ công khai. Đọc thêm bài viết để link công khai và hướng dẫn các tạo link tải trực tiếp cho các file trên Google Drive.
Tuy nhiên Woo sẽ không nhận biết được và khi download báo lỗi file UC không định dạng.
Bước tiếp theo chúng ta vào chỉnh sửa file của /plugins/woocommerce/includes/class-wc-download-handler.php
Tìm dòng
if(strstr($filename, '?')){
$filename = current(explode('?', $filename));
}
Thay thế bằng:
if(strstr($filename, '?')){
$filename = current(explode( '?', $filename));
$product = wc_get_product($product_id);
$drive_filename = $product->get_downloads();
foreach($drive_filename as $key => $each_download){
$filename = $each_download["name"];
}
}
Chú ý khi bạn update woo thì nhớ làm lại thao tác edit code như trên nhé.
Chúc bạn thành công!