Forum Replies Created

Viewing 15 replies - 16 through 30 (of 692 total)
  • @lellolallo It’d probably be good to consolidate the larger plugin conflict discussion to be at https://www.ads-software.com/support/topic/plugin-conflict-ebd-breaks-download-links-when-using-download-monitor-4-9-x/#post-17268832 as this topic was mentioned as possibly being looped into that larger set of updates (given how straightforward this proposed update from @john-attends is) to get things working properly overall.

    Thread Starter KZeni

    (@kzeni)

    @lellolallo Just to confirm, did you test it with:

    • The 2 edits from #post-17251628 (both includes/class-email-before-download-process.php and includes/class-email-before-download-db.php edits; first to make it more aware of URL parameters it might need to take into account beyond whether it’s pretty permalink enabled or not when creating the download’s link URL while the second has it make sure expiration is being calculated properly)
    • As well as the 2 edits from #post-17263768 (both then in public/class-email-before-download-public.php; first appears to hand off the uid as uid_new in the URL parameters to avoid conflict while the second appears to also do that as well as also using my fix for having it check for existing URL parameters before taking the visitor to that download’s URL [as that old code that only checked for pretty permalinks was in multiple spots])

    Or did you try a portion of these edits at a given time? I’m just wondering since they all might be needed.

    @joaokrabbe on a similar point, did you put these edit in place alongside my suggested group of updates or did you find it to work when those are the only edits made? If you did have my suggested updates as well as your edits, did my suggested edits also need to be updated to utilize the uid_new URL parameter as well?

    I’m wondering if there still might be more to patch to get this working properly since it appears, per joaokrabbe’s suggested edit, there might be other areas where the URL is being prepped/processed to be accounted for. *If it turns out we haven’t yet gotten to a set of edits that gets things working consistently again.

    Thread Starter KZeni

    (@kzeni)

    As an complete aside, I looked around for a possible GitHub repo (or similar) for this plugin to help propose this patch in a more structured way to help facilitate this being patched and found https://github.com/narinder9/cool-timeline. However, this doesn’t look to have been updated in a couple months (still on version 2.7.1.)

    I’d love to see more & more plugins having an active presence on GitHub for better community involvement for fixes/updates/etc. If that repo does get updated to be up-to-date, I’d love to see it linked to from the plugin’s description so more people know about it to use it accordingly (it can also be somewhat of a factor when deciding to use a plugin or not as it’s good to see a plugin can more formally/adequately accept proposed updates from its community, helps point people right to it rather than having them needing to search themselves to then potentially find a fork or some other non-official repo for the plugin, can see how up-to-date the repo is, can also offer another way to get a list of past releases [a currently untapped offering for the current repo; might be nice to start adding releases there alongside WP.org now rather than never], etc.)

    Again, complete aside from the larger issue at hand, but I figured it might be nice to do at some point for situations like this where there’s a clear bug that only part of the community would encounter (or if it’s a larger issue and/or simply a proposed update/improvement) for them to identify & propose a patch for.

    @gdadv Download Monitor has offered Email Lock as a paid add-on for years (dating back to more than 8 years per https://web.archive.org/web/20150617090332/https://www.download-monitor.com/extensions/email-lock/) so implying this compatibility issue might be due to Download Monitor pushing away alternatives to favor their own extension goes against their actual track record.

    Also, this appears to be more of a straightforward compatibility issue where EBD simply hasn’t been updated in nearly a year while DLM has continued to make updates (some of which, like version 4.9 back in late October, were rather substantial) so it was bound to break compatibility eventually as DLM keeps developing without EBD making any updates to accommodate in the meantime. Heck, this compatibility issue has been reported as an issue via EBD’s support forum, Slack, etc. for more than a week now and the plugin author has yet to say anything about it (let alone give any update of progress, acknowledgment of them planning to update their plugin, etc.) One shouldn’t really expect DLM to be held hostage & prevent further development due to a 3rd party add-on that, for all intents & purposes, appears to be inactive/unsupported from the developer’s end of things for about a year now (where inactivity in the support forum/updates/etc. for EBD goes much further back than this particular issue.)

    Back to the actual issue at hand, did you try the 2 suggested fixes in https://www.ads-software.com/support/topic/plugin-conflict-ebd-breaks-download-links-when-using-download-monitor-4-9-x/#post-17251628 (per my post above) where it seems like EBD might have multiple updates being needed to address the issue (only 1 of which is what was outlined in this topic while the other in the topic I linked seems more relevant to the larger issue that’s happening [hence why I was asking @john-attends if they weren’t also experiencing the invalid/missing UUID/uid error which their fix doesn’t look to fully address while it then looks to be happening to practically everyone running current versions of DLM & EBD.])

    @cschwoertzig The topic at https://www.ads-software.com/support/topic/invalid-uid-after-upgrade-to-4-9/#post-17251451 has more info on this issue (more importantly, the comment being linked to here then has a link to the Email Before Download plugin’s support forum topic on the matter to make EBD compatible with the current version of DLM [which has some potential patches to try to see if those resolve the issue; not yet confirmed.])

    @jamesyesjames this appears to be a duplicate of https://www.ads-software.com/support/topic/invalid-uid-after-upgrade-to-4-9/. Please be sure to check existing support forum topics to avoid fragmenting discussion regarding the same issue across multiple topics.

    Thread Starter KZeni

    (@kzeni)

    To build off of my most recent comments above…

    This is entirely untested, but might be a step in the right direction. Currently, includes/class-email-before-downlaod-process.php has:

    public function link_url($link)
    {
      $permalink = get_option('permalink_structure');
      if($permalink != ""){
        $spacer = "?uid=";
      }else{
        $spacer = "&uid=";
      }
      $generated_link = '';
      if($link->expire_time > 0)
        $generated_link =home_url().'?ebddl='.$link->uid;
      else
        $generated_link =do_shortcode("[download_data id=\"$link->selected_id\" data=\"download_link\"]").$spacer.$link->uid;
      return $generated_link;
    }

    which could/should become:

    public function link_url($link)
    {
      $generated_link = '';
      if($link->expire_time > 0){
    	$generated_link = home_url().'?ebddl='.$link->uid;
      }else{
        $generated_link = do_shortcode("[download_data id=\"$link->selected_id\" data=\"download_link\"]");
        $parsed_link = parse_url($generated_link);
        if(isset($parsed_link['query'])){ // The link already has URL parameters being set
          $generated_link = $generated_link.'&uid='.$link->uid;
        }else{ // This is the first URL parameter in the link
          $generated_link = $generated_link.'?uid='.$link->uid;
        }
      }
      return $generated_link;
    }

    to more accurately generate the download URL with the correct URL parameter structure (where I suppose the ?ebddl variation of the download link doesn’t need to check since it’s just using that URL parameter directly on the main site URL to resolve so it should always just be ? to then be handled accordingly when visited.)

    Additionally, one might also want to update includes/class-email-before-download-db.php where it currently has:

    $expiration = $expired[0] * $duration[$expired[1]];

    which could/should become:

    $expiration = (int)$expired[0] * (int)$duration[$expired[1]];

    so it is more likely to calculate the expiration without issue (per @john-attends.) Again, untested code, but these 2 updates together do seem to be related to what might be causing issues here (both with the current version of Download Monitor [make sure the URL parameters are being included properly] & modern PHP versions [make sure the expiration is calculated properly.])

    Honestly, this might be all that’s needed to fix things so I’d love to hear if someone that still has EBD being used on their site can confirm if the issue persists after making these 2 changes or not (or if the issue’s still there and/or if there’s different issues then happening.)

    At that point, we can then push for the plugin dev to implement the fix (and ideally also put the plugin on GitHub so community-based support/development like this can be handled in a more structured & optimal way as well as pushing tagged versions to the plugin’s SVN so past versions are available to reference/download [per that oddly stopping back with version 5.1.9 when it really can be useful to have & also given how quick it can be to make a version available this way.])

    • This reply was modified 11 months, 3 weeks ago by KZeni.
    Thread Starter KZeni

    (@kzeni)

    Also, as mentioned in the EBD plugin’s Slack on Nov. 23rd by Bruno Silva (see: https://emailbeforedo-euo7121.slack.com/archives/C02Q3FWAE2J) there are sometimes links like https://example.com/download/2037/?tmstv=1700745768?uid=6a09adfe1a incorrectly include the uid with ? when it should be using & considering tmstv is already at the start of the URL parameters.

    That would explain why “uuid” is invalid/missing since it’s using a malformed set of URL parameters in a situation like that. This then looks to be caused by the code snippet in includes/class-email-before-downlaod-process.php of:

    $permalink = get_option('permalink_structure');
    if($permalink != ""){
      $spacer = "?uid=";
    }else{
      $spacer = "&uid=";
    }

    where it’s checking the permalink structure to see if pretty permalinks are enabled to determine if ? or & should be used, but that has a blindspot for how DLM might be inserting the tmstv parameter in recent versions so EBD thinks it’s okay to use ? when it’s actually not the first URL parameter & should be using & instead.

    This should probably be checking what the resulting URL output would be for the download and then determine if ? or & should be used based on that URL to then append the uid parameter accordingly and then use as needed.

    Thread Starter KZeni

    (@kzeni)

    Okay, I don’t have a site to test this with, currently, as the client I had which encountered this simply removed EBD for the time being (they weren’t actively using it), but it seems like https://www.ads-software.com/support/topic/fixed-bug-email-before-download-includes-class-email-before-download-db-php119/ might be something to consider as a potential fix (or at least a step in the right direction to get this working again…?)

    Are you running the current version of Download Monitor? I’m wondering if this is a potential fix for https://www.ads-software.com/support/topic/plugin-conflict-ebd-breaks-download-links-when-using-download-monitor-4-9-x/ or not (where even downloads that weren’t using EBD would give a WordPress error page saying “Invalid UID Please fill out a new form to generate a new link.” where it might be thinking it’s expired/invalid due to the bug you pointed out here, potentially.)

    Did you get that type of error I mentioned before making that change you’ve proposed (or when & how did your error occur)? Are all of your downloads still working with the current version of DLM and this patched version of EBD? Do your Download Monitor links have tmstv included as a URL parameter, or did you disable that feature of DLM?

    I’m just wondering since there seems to be a larger issue where all downloads are breaking with current DLM versions where the timing of this issue makes me wonder if this issue with a potential fix is coincidental timing and/or if this is related to the larger issue in the other topic I’ve linked to above.

    Correct me if I’m misinterpreting things, but that sounds like this is an issue for EBD to fix to support DLM 4.9+ with nothing currently planned on DLM’s end to help with backwards compatibility for that older 3rd party extension.

    Also making it so any further discussion of this probably should be moved over to https://www.ads-software.com/support/topic/plugin-conflict-ebd-breaks-download-links-when-using-download-monitor-4-9-x/. Here’s hoping the plugin that hasn’t been updated in 11 months, doesn’t have GitHub for community patch suggestions, doesn’t have the most active support forum, etc. gets updated to be compatible again (given the fact it still has ~10k active installs & is still a useful plugin.)

    So is it confirmed that this is going to be fixed on Download Monitor’s end of things, or is it something where Email Before Download needs to be updated to accommodate the changes made to DLM in version 4.9 (or a mixture of both?)

    Just in case it’s something on EBD’s end, I did post about this conflict at https://www.ads-software.com/support/topic/plugin-conflict-ebd-breaks-download-links-when-using-download-monitor-4-9-x/ (always a bit odd when there’s a conflict between two plugins where the same issue should / needs to be discussed across both involved plugins where ideally both sides are connected & informed [hence the link to that support topic & vice-versa.])

    KZeni

    (@kzeni)

    For most plugins, one should be able to go to Advanced View in the plugin’s details sidebar (https://www.ads-software.com/plugins/email-before-download/advanced/) and then use the Previous Versions section’s dropdown to download past versions. However, this plugin has unfortunately not been providing the tagged versions via its SVN repository as of version 5.1.9 for some strange reason/oversight per https://plugins.trac.www.ads-software.com/browser/email-before-download/tags (it was being done properly & consistently at some point before… why’d it stop? It’s a very useful feature that only takes a moment to tag a version to then be made available this way so it’s really not great to find that stopped being done for whatever reason.) Also, having the plugin on GitHub with tagged version releases there would be a great secondary method of providing this (while then getting all of the other benefits of GitHub as well for community patches/support, etc.)

    As is often the case for something like this, it seems like Archive.org’s Wayback Machine can thankfully come to the rescue. Going to https://web.archive.org/web/20210326103442/https://www.ads-software.com/plugins/email-before-download/ should offer the plugin page for when it was version 6.2, and it does appear that the Download button on that page does indeed serve up an archived copy of Email Before Download 6.2 (having archive.org store a particular version’s download file really isn’t something to rely on, but sometimes it can really come in clutch.)

    KZeni

    (@kzeni)

    While I’d certainly love to see the Font Awesome library that’s included be updated to the latest version (then updating the available icon set to select from accordingly), there is technically a workaround in the meantime.

    I found the best approach is to first make sure the site is loading a modern version of Font Awesome that includes the new icon (ex. use https://www.ads-software.com/plugins/font-awesome/ to load that up-to-date FA library version which then has a Troubleshoot tool that can then help identify & prevent any other FA versions from being loaded to avoid conflicts & unnecessary assets being loaded on the site [as an aside, it would be great if Menu Icons had a readily available option to have it not try to load its own Font Awesome icon library on the public pages, while then still enabling that as the icon set to use for a menu, for if/when FA is being loaded elsewhere on the site given how popular that icon set is while Menu Icons is commonly not the most up-to-date option for those assets while it could/should be able to just use what’s already being loaded elsewhere for its own icons, at least for outside of the site admin.])

    At that point, the Menu Icons Settings section when editing a menu offers a place to include custom CSS classes which then adds those comma-separated classes to the icon picker once saved. The CSS classes I’ve then added to accommodate this is:

    fa-brands fa-square-x-twitter,fa-brands fa-x-twitter,fa-brands fa-mastodon

    (I added 2 X icon variations as well as adding Mastodon which was also missing in that older version bundled with Menu Icons… customize to use whatever classes the Font Awesome site documents for a particular icon [making sure the fa-brands/fa-regular/etc. class is included right alongside the icon name like fa-square-x-twitter/fa-mastodon/etc.])

    Again, it’d be great if the built-in FA library gets updated to be current while also having it so Menu Icons can allow Font Awesome to be enabled for a menu while then opting to not have Menu Icons try to load its version on the main website (instead delegating that to a more dedicated/up-to-date offering like the official Font Awesome plugin or similar.) That way, there’s no conflicts nor duplicate assets being loaded (also then not needing to have the theme or a plugin then check & remove the duplicate and/or older version of FA being loaded by Menu Icons since Menu Icons just follows that setting to simply not include it when set) while the icon picker can be given a push to include new icons before they’re officially added in a future plugin update via the custom CSS classes field it already has. That way, sites get the flexibility to add new icons & has an overall improved experience while this plugin then doesn’t need to keep releasing new versions anytime Font Awesome gets a new version (while it’d still be good to stay somewhat up-to-date to reduce the reliance on custom CSS classes and/or needing a separate FA version being loaded from elsewhere to get a particular icon for more basic setups.)

    Plugin Author KZeni

    (@kzeni)

    I’m glad to hear this worked well for you, and I appreciate you taking the time to leave a review!

Viewing 15 replies - 16 through 30 (of 692 total)