GithubHelp home page GithubHelp logo

webzunft / edd-helpscout Goto Github PK

View Code? Open in Web Editor NEW
60.0 7.0 13.0 1.25 MB

Easy Digital Downloads integration for HelpScout. A WordPress Plugin.

License: GNU General Public License v2.0

PHP 100.00%
helpscout wordpress easy-digital-downloads

edd-helpscout's People

Contributors

ashleyfae avatar bussardrobbie avatar dannyvankooten avatar flowdee avatar jchristopher avatar michaelbeil avatar nosilver4u avatar rene-hermenau avatar spreeuw avatar webzunft avatar zackkatz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

edd-helpscout's Issues

Way to test with non-SSL callback URLs?

Help Scout currently requires custom app callback URLs to be SSL.

Anyone know of any way to test non-SSL callback URLs for changes to this plugin? Trying to run this on a test site.

Update query_customer_payments() for EDD 3.0 compatibility

This query needs updating to be compatible with EDD 3.0:

https://github.com/webzunft/edd-helpscout/blob/master/includes/class-endpoint.php#L202-L221

Optionally, the contents of get_customer_orders() could be updated for improved performance in EDD 3.0: https://github.com/webzunft/edd-helpscout/blob/master/includes/class-endpoint.php#L247-L302 As is, once the actual customer payments query is updated get_customer_orders() should work perfectly fine, but there is a performance hit if you work with EDD_Payment instead of the new Order object in 3.0.


I (or someone else from the EDD team) will be happy to work up a PR for this soon, just getting the issue in. 👍

"Not Found" for all instances

Hey,

I just installed your plugin and followed the instructions to a T and I'm getting a "Not Found" message for all customer tickets within our HelpScout sidebar. Any idea why this would happen? I've double and triple checked the secret key and that is not the issue. I can share the debug log if that helps, just let me know. Please note that all of our customers are currently on free trials and I know that "free trials" are relatively new in EDD, so wondering if that's part of the issue.

Let me know what you need from me to help debug.

Thank you!

Fall back to EDD payment lookup by license key

I require customers to enter their payment email and license key (generated from EDD Software Licensing) when submitting a support request that goes directly to Help Scout.

However, many enter an unrecognized payment email, probably due to simply forgetting what that email was when they purchased.

It would be nice if this plugin would fall back to looking up their EDD SL license key if in the body of the ticket when the payment can't be found by email.

Thanks!

License management link missing on some licenses?

I just noticed on my own account that several of the licenses do not have the nice little gear icon that lets us easily view/manage the license in EDD.
Looking at the code reveals that this link is dependent on the availability of price options:

<?php if (!empty($license['price_option'])): ?>

That seems an odd choice, and we'd rather have the link there all the time. Any feedback on that?

Notes on multiple accounts

While working on removing the direct SQL query currently used to retrieve payments by email, I noticed that this becomes more complex when considering all possible scenarios.

An ideal scenario is that one user has one email address in Help Scout, one corresponding EDD Customer profile and one or more payments attached to that profile. We could easily use EDD_Customer->get_payments() to get all payments then.

The reality might look different, though. Here are a few possible scenarios:

  • there are multiple emails in the Help Scout account from this user, each one attached to a different EDD customer account
  • there are payments attached to the email address from Help Scout, but no corresponding EDD customer; maybe, because that email address was removed from the customer profile

A possible solution for this might look like this:

  • retrieve the EDD customer for all emails in the Help Scout profile
  • query payments for all EDD customers and list them grouped per customer in the Help Scout widget; that would also allow linking to each different EDD customer page
  • query all payments not associated with any EDD customer account

Subscription status

Right now, the widget does not show any information about subscriptions and its status

persist open/closed status of toggle sections

Currently Licenses always defaults to open, while Orders and Subscriptions remain closed. We often refer to Orders first, so it would be nice to have these sections make use of the persistence feature of HS widgets.

Flexible date format

Just leaving this note to check later.
As a German who runs an EDD store in English, it would be helpful to have a different date format (01.02.2018 instead of 2018-02-01).

Does the plugin use the local WP format?
Even if not, we might want to use a filter to change it for our use case since our WP installation also uses the English date format.

MultiSite Support

Does this work with Multi Site installs? Getting a "Moved Permanently" message where the contents should show.

Malformed JSON error after 1.0.1 update

After the 1.0.1 update I got an "internal server error" message showing up in the sidebar on all my Help Scout tickets. Before that EDD + software licensing was working great linking to both payment records and license keys.

I turned debug mode on in Help Scout, and the error is: "Json Parser: Syntax error, malformed JSON".

I double-checked my line in wp-config.php and it still matches up.
define( 'HELPSCOUT_SECRET_KEY', 'random-40-character-key' );

This is on 2 different sites running the latest of EDD + SL. Cleared the object cache and all that too. They're both running on WP Engine.

This has been a super-helpful plugin, so thanks for the work on it so far!

I'd happily pay for a supported pro version FYI, if that was ever under consideration. Not sure how many folks are using this plugin but it has become a huge time saver for me and my support folks. :)

Add notes

I miss the feature to show notes about a certain user or client in Help Scout. That could be an option in the plugin, at least for clients.

We could add fields to the customer profile for EDD notes that show up at the top in the EDD Help Scout widget.

isset( $_SERVER['HTTP_X_HELPSCOUT_SIGNATURE'] ) check is too aggressive

I was working on building another Help Scout integration today for my Restrict Content Pro plugin but was running into an issue where the app always returned the response from EDD Help Scout.

No matter what URL I used, EDD HS always took over.

Turns out this is because of the isset( $_SERVER['HTTP_X_HELPSCOUT_SIGNATURE'] ) check in the __construct() method: https://github.com/dannyvankooten/edd-helpscout/blob/master/edd-helpscout.php#L64

Because of that, it's exceptionally difficult for another plugin to setup a HS response.

This could be easily fixed by also requiring a special query arg.

For example, in the RCP HS plugin I'm working on, I'm registering an endpoint and then only processing the request at that endpoint:

add_rewrite_endpoint( 'member', EP_PERMALINK | EP_PAGES );
......
global $wp_query;

if ( isset( $wp_query->query_vars[ 'member' ] ) ) {
    $plugin = new PW_RCP_Help_Scout_Plugin_Handler();

    echo json_encode( $plugin->getResponse() );

    exit();
}

In Helpscout, I set the URL of the app to https://pippinsplugins.com/?member=1.

It may be a little bit slower because more of WordPress is loaded, but at least it remains flexible.

Show multiple accounts

Related to #51 and might become obsolete with a major rewrite, but might be simpler to have this here first.

At the current state, the plugin can only find the EDD customer for the sending email address, not to the once also attached to the Help Scout profile.

We might want to query the EDD profiles for all attached emails and add a warning if there are more than one.

Lifetime license info

Right now, the license status shows an orange info when the license is expired and a standard info when there is an expiration date.

In order to make it very clear, in case a customer has a lifetime license, it would be awesome to note this down as well, e.g. in a bright green text.

Bildschirmfoto_2020-02-04_um_08_52_47

Support new Lifetime License in Software Licensing

With an upcoming version of Software licensing, there is the possibility of the check_license return containing the string lifetime for the expires value.

Throwing a quick PR together to account for this.

Change hook that init() runs on.

Not 100% sure why, but spent about 2 hours tracking down errors that prevented a json response from the api.

Found that was getting many errors from standard functions like get_the_title which was throwing a trying to call method on a non object error.

Changing the hook from 'plugins_loaded' to 'init' resolved all issues.

The issues I did nail down were due to filters from bbPress, EDD Wishlists etc. But simply changing that hook solved all issues.

After some research that is the optimal hook to echo json and exit unless you prefer template_redirect.

I believe that there are some issues with the main query being overwritten to soon in the process that may be the culprit.

Handle empty emails from HS API

A user reported that the emails field could be empty. This causes a couple of error messages:

Help Scout’s documentation on dynamic apps lists an email and emails field. EDD HS doesn’t work with the email field right now, which might be part of the issue.

A change should include that field. Especially, if emails is empty.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.