Download Link Expiration?
I've done a test sale of a digital product to a small group of patrons. One person reported that they tried to download the file through the download link in their invoice, but received a 404 error with a message that the link "doesn't exist or has expired." However, they were able to download it from their account page on the site.
I replicated the behavior with my own test account.
Question is: where are limits set on downloadable digital products? I can't find anything combing through the plugin, or in the documentation.
FluentCart 1.2.5
FluentCart Pro 1.2.6
We only have the download link expiration in the receipt. There is no limit anywhere else.
Ripon SarkarΒ The question is, what is the expiration default, and how does one adjust it? My customer didn't wait to click it, and it was expired the first time they did click it. We should be able to set the time, and / or the number of clicks before the receipt link expires.
The expiration time mentioned in the receipt is 7 days, and there are no adjustment settings available. Since you are reporting that your customer could not download the file immediately after purchasing, the issue might be that the file has been deleted either from S3 or the local storage, but it is still showing in the product's downloadable assets section. When this product is purchased, the attached file reference is also included on the receipt page. So, after purchasing, the user sees the download button, but when they try to download it, a 404 error occurs because the file does not exist. Perhaps you forgot to update the file in the downloadable section. If this is the case, donβt blame yourselfβitβs on us. This might be a UX issue. Let me know what actually happened.
Ripon SarkarΒ Haha... I don't blame myself, because your assumption doesn't represent the situation as I reported it. :-) Please read my original post again:
"One person reported that they tried to download the file through the download link in their invoice, but received a 404 error with a message that the link "doesn't exist or has expired." However, they were able to download it from their account page on the site."
So: this is an issue with the link provided in the receipt that the FluentCart team should be aware of, because if a user can't download a product they just bought via a link in the receipt for that product, that's a stop error -- I can't use the plugin without risking damaging the trust my customers have in me.
Is there a quick fix I can apply (perhaps removing the link from the receipt template while keeping the link to the customer's account page?) until the ability to edit the template is added and / or the download timing bug is fixed?
Also: please give plugin users the ability to decide themselves how long the receipt download period should be. That's a decision that should be in the hands of the business owner, not the plugin.
Thanks in advance! π
example.com/wp-content/plugins/fluent-cart/app/Views/emails/order/paid/customer.php
As a workaround, you can disable it by commenting out lines 40 to 46 in the customer.php file.
By the way, I checked from my end, and it is working fine. In the next release, there will be a hook to modify the link expiry time. Currently, it is set to 7 days for the receipt and 1 hour for the link generated in the customer dashboard.
Ripon SarkarΒ Thanks for the workaround -- I'll check it out!
Currently, it is set to 7 days for the receipt and 1 hour for the link generated in the customer dashboard
Wait -- you mean the download link on the customer's account page has a hard-coded expiration?
Let me clarify what I mean. From the customer dashboard, once you click on the download link, it will generate a link that remains active for 1 hour. To prevent link sharing, FluentCart keeps the link active for only one hour. However, you can regenerate the download link unlimited times by logging into your customer dashboard.
On the other hand, the download link in the email receipt remains active for 7 days, and there is no option to regenerate it.
Ripon SarkarΒ Thanks for the clarification.