Woocommerce linked licensing system for your plugins
-
@d-healey said in Woocommerce linked licensing system for your plugins:
Every query requires processing resources, the less queries you make the better.
Yes it's obvious. I just thought that this kind of api required backend process can't work with a standard wordpress website and AWS or something like that professional server system needed. So is this system in a standard hosting?
-
@steve-mohican said in Woocommerce linked licensing system for your plugins:
So is this system in a standard hosting?
I use cheapo shared hosting, but I'm looking to switch to a VPS - not related to licensing, I just want a faster webstore for my customers, the current one has always been a little slower to load pages than I'd like.
-
@steve-mohican said in Woocommerce linked licensing system for your plugins:
So is this system in a standard hosting?
Yes, no AWS here.
Recently, I had to re-design my website compeltely from scratch. Before, it was struggling with hosting, theme, images and design mistakes. If you want speed, the performance is the sum of everything. Hosting, theme, images, your page design style...etc. all of them are affecting the performance.
-
For hosting, I am using Kinsta, it's exclusively a Wordpress optimized, pretty fast system, I highly recommend it.
-
For theme, I am using Kadence. I've tried tons of themes before, but definately this one is the best, well woocommerce optimized, pretty fast theme. It also has great addons like Conversions, Kadence Blocks (Gutenberg block builder)...
-
For page design, definitely go with Gutenberg (with Kadence Blocks). I think the page builders (like Divi, Elementor...etc.) will die soon, because Gutenberg (which is designed by Wordpress) is much more faster, getting better day by day, and it is the future of Wordpress.
-
One more thing is the image optimization. Shortpixel wordpress plugin is the one to go. It not only optimizes pictures, it also supports WebP image format which was developed by Google and it is the future of the web also. Recently Wordpress added WebP support. This image format supports transparent images with much more less file size. Not all of the browsers support it for now, but Shortpixel handles it with showing optimized jpg files to non-supported browsers.
If you take care all of the details, there is no need to do any action or no need to worry about using Woocommerce License Manager API in your website.
-
-
-
@orange That's exactly what I've been tring to do. now you showed that it is possible. I really appreciate your generous tips, you're awesome wooo wooo
-
Thank you, that is what i am building :) now.
-
@orange One question,
How do you handle the serial numbers in Woocommerce License Manager plugin? Do you upload serials before purchase, or any ideas?
-
@Steve-Mohican
- Automatic license creation with the purchase
-
@steve-mohican said in Woocommerce linked licensing system for your plugins:
@orange One question,
How do you handle the serial numbers in Woocommerce License Manager plugin? Do you upload serials before purchase, or any ideas?
Both ways are possible. Like @dustbro said, I am using automatic license creation, it's very handy and you don't have to worry about if the serials are running out or not. Instead of uploading thousands of serials, also automatic license way makes your database more clean.
-
Do you need to include REST api keys in your HISE project?
-
@d-healey said in Woocommerce linked licensing system for your plugins:
Do you need to include REST api keys in your HISE project?
No. Wordpress, Woocommerce and any other REST api keys are not required.
Because Wordpress account authentication is done with the user email and password credentials (thanks to
JWT Authentication for WP REST API
plugin).And Woocommerce queries is done by the
Woocommerce License Manager plugin's API v3
using JWT method, if the users got the licenses in their accounts.Very simple, fast and secure!
-
I've tried the woocomemrce licensing plugin that you recommend, it is a great plugin and the specific solution for me exactly. I'll go with this.
And also I've just tested your License Manager app, it works great. Fantastic job congrats.
Can you use the same license activation system in your plugins too, just like in the License Manager app?
-
@harris-rosendahl said in Woocommerce linked licensing system for your plugins:
I've tried the woocomemrce licensing plugin that you recommend, it is a great plugin and the specific solution for me exactly. I'll go with this.
And also I've just tested your License Manager app, it works great. Fantastic job congrats.
Can you use the same license activation system in your plugins too, just like in the License Manager app?
Thanks. Yes of course, the same Hise server API system is used in the plugins too. Connecting to the servers, activating/deactivating the products with the device id, add license...etc. features are the same.
Only difference is standalone License Manager app is more flexible than the plugin for license management process; because standalone app handles all of the product licenses in one place, and also deactivates multiple computers.
Because of the GUI limitation, in the plugin, user will activate/deactivate only for the dedicated product and computer. I think in the plugin GUI, deactivating "Product B" in "Product A" does not makes sense. License Manager standalone app stands for this purpose.
-
@orange said in Woocommerce linked licensing system for your plugins:
Yes of course, the same Hise server API system is used in the plugins too. Connecting to the servers, activating/deactivating the products with the device id, add license...etc. features are the same.
Ok. I made a quick tester plugin with this Woo commerce license manager plugin and jwt auth that you suggested, it works great! I was lost before but not found the right thing.
I will definitely go with this way, it is the all in one solution for a plugin developer. Thank you so much for this useful information
-
I'm on my first steps of communicating with my server to setup an authorization system, and currently I'm just testing the server functions in HISE by calling for the auth token.
JWT in installed and everything is (supposed to be) set up correctly on my server.
I'm able to receive the token by making a POST request here :
"/wp-json/jwt-auth/v1/token"But i'm getting an error when testing the token here :
"/wp-json/jwt-auth/v1/token/validate"Everything is working fine when testing the procedure with Postman.
The thing is, if I setup the http header with the token string, it works :
Server.setHttpHeader("Authorization: Bearer " + "token.TypedManuallyAsA.String");
I'm getting a 200 response, but
if I setup the http header withServer.setHttpHeader("Authorization: Bearer " + text);
, I end up with a "Authorization header malformed".I checked this thread where @d-healey 's
mentionned having header problems but I changed the htacces and the wp-config.php accordingly to the JWT docs so it's supposed to be ok on this side.If someone has any clue about what's going on :)
-
@matt_sf I use
Server.setHttpHeader("Authorization: Bearer " + token);
Console.print() your
text
variable to make sure it contains what you think it does. -
@d-healey here's a snippet, the "text" variable contains only the token as a string.
If I use a the token as a string I get a "Wrong number of segments" error.
If I use the token as an object I get a "Signature verification failed" error...HiseSnippet 1336.3ocsWstaaaCElJIpn1adXEaO.B5WxXN9RaV2PJ1lqykUilKd0osa+piVhNlIxjBjTw0MH.6QaOR6MX6PQcytNYAFs5OIj7b467cNjmiGH39DojKPVUNadDAY8k1CmyTS1aBlxP82GY8M1CIhqHh8vggNW0tYmlOA0adDVJIAHKqM+UsfVU1Bk78O+RObHl4SJ1BgdCm5SNhNkpJ1cP2WRCCODGPNiNsjz6zsuOmsGOjGCfZS61nHr+k3yImf0hsgMx5AGDPUbwPEVQjHqs5wClObBeFyH+anR5nPhdQGzPvPlsOjGFnQrdWzdSngACxBdIBrxfBpXSCU7s1GSCn46WPIecxANEZTlOr1XQ3s4BvqSY30tD7VAjrJAosLP5Q1C8EzHUwIZ77E18YJhXLFn8xPwHKZCmGXuGGjfoZNEeI4PArHWCum1tcCmG2tc8mUqZsp.4KUNWgENgiBesjHX.u67SNYF3bhZO9zHNCV34VRFWs9Kn8..Hy3hf6R6LYbMdWPN2IFLHnRISqUyyUQduJQLsP5fzHTlEVRnLrPX9h4QJJm8RxbPiNO9I6jCz.h7REOB19PZHY3bohLUamjZEgWoM22HYQLRYi4fdoVHIvzIPsJdt5CapxQh4BTSIQ0CKIu9UG44NQohj61pkjGyBFSYmSDxl97otKmE.vUq500pVwMNin2MghZ3n2LJi+1MgRpU8lD8orPJi3LNl4qCcGNqmhMjvBzIBAOzyOKKz.7RXLotwIgbeLbKGBLkPWaHHRPLIo9ybfOskqPG63koRkqcR+f+uRZXBVH7sT0jAmN7LO2Vyh19BIm05hYpswwpIstpSKE+RBysgSTibH5Ig6KwxFN4tzojs0+457+qRB+NSPUjSGcAwWkiylIVVygFAgvUxCIMiDTcA2qREyYWGWmua4XzDjk73MYgckaxH1UWHOxPtt0043TJV+d4H3oKuk495OKwRqJIA14MDAc77+mzzh4.M2aRb5peH2kPOgbbvykCUPjetWBirLabllqxnBPybZqnd8EPY5KHX8kA2mCIOtf9ArFr65zifEvE0xJun5225fVPjPCfGKgBBW26phHqPnR5+n+VLlLYTih0yimaStRY9hL98JaaxR2V9d4zX8zDdoL8Ibn1k4Uu50UqT8lpNKez3wq7rTCFB4iUcrtUp3tTziEOcj9sCS0SlfP+kEaZYe6MsJ2S02vOkDjy5ynpSiHraqSKJkT0M3RQEHpJo81Wk1dqWrRwYHZft2VNahR.c4AKPut+9XENyTfUAOEQDJpNHr1mbEL3goyYE6zmvgXMOWByRbqNthc5sZz6Kb4ezcd9ht+YWI9JRe1.nNhnLLBUdLeJXYrXdFAT3rGZbVsTmcDdDILwW0rK0sqr+Noj+P62UeQCvrs98ezLZfZRwoztSHzymTZDqet6XfTFR+PINqc26Ofx5rda.5u9sT.U0NqMzmBP8f6UsPAl96YKlTLX5g1oB9wYjOdrJXfNdPbHVs3Td5QaSO.tEsvnU5wmXRpZd4Qe+jM528EhOxd.U4OY0XbiUfQ3lxmCLlNvbM6CFOFZGW.vsrO72+7LcL5U7XEzZ6XLzgCJFrOId5P32L3S.uyXjP8qXVaneuwrtsdslAz2oSV7uvW5gczqsROrS1gnoXeA+c9lWozij+vjc.LkbQEdi3X8ZmNYOMYa2tYazT3WG7Neec3uMTusZcd7ZnySVCc1YMz46WCcd5ZnyOrF57i2oN5eXFLnBep45.rwfCRZQXYc.CCUVIUgn+CjFkKIA
Also a weird thing : when I get the token then ask for validation and get a header error, if I start again from the beginning, I don't receive the token and get a 403 error... I don't know if it's supposed to happend serverwise...
-
@matt_sf I'm getting
403
when clicking btnSend -
@d-healey ... sorry it was a generic snippet, here I put some test credentials :
HiseSnippet 1361.3ocsWs0aaaCElJIJnxadXEa6cA8jLVpuz10Mjhs45bYMnMIdwIoaO0QKQGyFYRARp35FDf8Sa+j1+fsCE0M65jEXrpWRH44x246bHOG2WvCHRIWfrbNcVLAY841ClwTi2YLlxPGrKx5qrGPDWQD6fihbupcyNMeBp2rXrTRBQVVq+KZAsb1.k982+bObDlEPJ2BgNmSCHulNgpJ2se2WQih1GGRNkNohzOs6AAb1N7HdB.p0saihwAWhufbDVK1Z1HqM2Kjp3hAJrhHQVaziGNavX9TlQ9yoR5vHhdQGz.vPls2mGEpQrdWzNioQg8yCdIBrR+RpXcCU701GRCoE6WRIeY5AtkZTkOrVad3s9bvqSU30tB7VBjrp.oMLP5g1CBDzXU4IZ77Y1GvTDwHLP6UghQVzZtaZuCGjfoZNAeIYeArnPC+m0t8VtOtc6FOuds50.xWpbuBKbiFFcljHX.u69it4F3BhZG9jXNCV36UQFOs9yoce.HS4hv6R6bY7LdWPtvMALHnRESqUy2SQduJULsP5fzHTtEVPnbrPXAhYwJJm8JxLPiNO9IOs.ngD4kJdLr89zHxfYREYh1No0JB+JatqQxxXjxFwA8xrPZfoSfZU78zG1TUfDyEnlRhpGVRN6jW66MVohka2pkjmvBGQYWPDxlA7IdKlE.vUu100q43kjSzamRQa4p2LNm+1NkRpW6lT8orHJi3NJgEnCcWNqmhMfvB0IBAOxOHOKrE3knDRCiSh3AX3VNDXJgt1PPjfXRRim6BeZK6PG45mqhy0tYev+6jElfEhdCUMt+wCN02q0z3G8NIm05cSUOBmnF25pNsT7KILusbi2p.h9R39RhbK2BW5Vw15+bcw+4jxuSETE43guiDnJvYyTKq4PifP3J4QjlwBptf6jLwb210y8aWLFMAYEOdSdX6bSNwt7B4gFx0qgNGmQw52KGBOc4uH2234oVZYIIvNmSDzQy9ORSymCzbuIwoq9gbWJ8DwwguPNPAQ9E9oLxhrwoZtJmJ.MKnsx50WBkoujf0WF7dAj73B5GvZvtsaOBV.WTqp77peeqCZAQBMDdrDJH77tqJh7BAmr+Q+MeLYxnFEaTDO2lbUx7kY76U11jkts78howFYI7JY5i3PsKyuQsqq4T6lZtKdznQK8rLCFA4ikcrtUp3tTzmkLYn9sCS0StfP+k4aZYe6Msp1SMvvOUDjyNfQUGGSX2VmVTFopavkgJPTUZ6suHq8VuDkhyPzPcusB1DkB5pCVfN6fcwJbto.qBdJlHTTcPXsK4JXvCSmSG6rmvgXsHWByRbqN1wN6VM58kt726NqXQ2+nqDeE4.VenNhnLLBUdHeBXYrXVNAT5rGXbV8Lm8Z7PRTpupaWoaWU+cTE+g1sq9hldDM4nlPZR0DX4ozP03RYncGSnWLtxfV+T2Q.0Lf9gJLW6tUgkycBq79q2Fr9yeMCVeictnmBX6EAAPqM0phuz8Tyzkb0Jr6bj4l2qRlRP+WSmO2Y.8CryD7iSbe7zWvbe7vjHrZ9gA0S.mc.bYatIvzSYwjT0rpSH++1Dh2WH9P69TUv3kiw0VBFgKTeJvX1b00s2azHnqcI.2vd+e6SyPznS3IJnC3gXnQHTLXeTxjAvOsHf.dmwHQ5G6rVS+rjYca8ZMCnu5mt3efurC6nWakcXm7CQSvAB9aCLOlomb+Ao6.XJ89L7Txg50tcxeAy1tcy1nIvOh3sAA5v+QP81x04wqfNOYEz4oqfNe2JnyyVAc99UPme3N0Q+62f4Y3SLWGfM5uWZmDKq8XXnxJsJD8uPIY6vM
-
@matt_sf Mystery solved. Look in your info.txt file, see those quotation marks? They're not part of your token are they :)
Try
local text = info.loadAsString().replace('""');