Just a heads up, your software licensing plugin class code specifies the plugin slug as follows:
$this->slug = basename( $_plugin_file, '.php' );
This is not actually the slug. It's the filename without the .php, which only works if the folder and filename are exactly the same, which they shouldn't need to be. The slug should be the folder name.
If the plugin is my-custom-plugin/init.php, the above code would designate the slug as init.
Just a heads up, your software licensing plugin class code specifies the plugin slug as follows:
$this->slug = basename( $_plugin_file, '.php' );
This is not actually the slug. It's the filename without the .php, which only works if the folder and filename are exactly the same, which they shouldn't need to be. The slug should be the folder name.
If the plugin is my-custom-plugin/init.php, the above code would designate the slug as init.
Shouldn't this actually be:
$this->slug = basename( dirname( $_plugin_file ));