I’ve found the bug in the code and proposed a fix for it. See this thread:
I think I found that bug as well. In all-packages-shortcode.php line 9 there are the default columns defined: page_link,file_count,download_count|categories|update_date|download_link
. Calling __::valueof()
on them with ‘safetxt’ sanitazation removed the commas, which are needed in line 14 for exploding the column values.
To fix this you’ll need to change the file:
src/__/__.php
There is says:
337 case "safetxt":
338 $value = preg_replace("/([^a-zA-Z0-9_|\-\s])/", "", $value);
339 break;
To fix it change line 338 to:
338 $value = preg_replace("/([^a-zA-Z0-9,_|\-\s])/", "", $value);
Basically you’ll need to insert a comma into the regex.
PLEASE again forward this to you developers – thank you!
Glad to here that, thank you!
Now we’re still facing the issue with the missing title as written here:
I believe that this is due to the same update. Can you share the details of how to fix that?
The forum breaks the quotes for line 43. What I mean is: please simply change the ‘alpha’ to ‘int’ in the first sanitazation in line 43.
I debugged this and found out, that you have a bug in the file
src/Package/views/all-packages-shortcode.php
Line 43 of version 6.5.6 is:
"order":
<?php echo __::sanitize_var($datatable_col, 'alpha'); ?>, "<?php echo __::sanitize_var($datatable_order, 'alpha'); ?>"
,
Problem is here the first sanitazation. Using ‘alpha’ it yields an empty string (without quotes), which leads to this JavaScript code:
"order":
, "desc"
This is illegal JavaScript syntax (there must be a value before the comma).
Fixed version of line 43:
"order":
<?php echo __::sanitize_var($datatable_col, 'int'); ?>, "<?php echo __::sanitize_var($datatable_order, 'alpha'); ?>"
,
Explanation: the ‘int’ sanization always returns a number, in fact it converts the value to integer. Now the JavaScript is working fine again.
PLEASE forward this to your developer and include this fix in the next version. Thank you!
We’re expieriencing the same problem. Can you share the necessary fixes here, so that we can apply them ourselves?
Yes, we’re running it on a german website. Please take a look at my first post in this topic where I explained the bugfix.
In your download-manager.php at line 266 you have:
if(!$wpdm_tags)
$args['supports'][] = 'post_tag';
When you change this to the following it will work again:
if(!$wpdm_tags) $args['taxonomies'] = array('post_tag');
Our experience with the updates of the Download Manager in the lasts months has been quiet frustrating as suddenly things stop working. This is especially annoying when automatic updates are enabled. Please keep this in mind with future updates that you provide a better communication of breaking changes.
EDIT: Please notice that this change will be overridden again by the next update.
This issue is still unresolved. After every update I have to fix your plugin in order to work properly.
I use this setting in wp-config.php
define('WPDM_USE_POST_TAGS', true);
But now I cannot see or assign any tags at all to the download packages. How can I fix this?
PS: I use tags in my regular posts as well so I don’t want to have to different tags lists.
Hello support, do I need to create a new post or can you please respond to this issue?
Any updates on this?
Please switch your site to a non-english language. Then you should see this error. The reason is that the php function strtotime() parses only english dates. In our case we’re running a german website and therefore strtotime() returns invalid values.
Please check the php docs, where it’s clearly stated that only english dates are parsed:
https://www.php.net/strtotime
Also see this QA on StackOverflow:
https://stackoverflow.com/questions/6988536/strtotime-with-different-languages
Passing the explicit date Y-m-d format to get_the_date() is the simplest solution for this bug.