Açıklama
Seamless integration between WooCommerce and the Software License Manager Plugin. Originally adopted from EDD Software License Manager, thanks to flowdee (coder@flowdee.de).
Github repository
https://github.com/shamloo/wc-software-license-manager
Features
- Automatically creates license keys for each sale with WC
- Licensing is optional and can be activated/deactivated individually
- Send generated license keys to your customers within your existing email notifications
Sample code
<?php
/*
Plugin Name: License Checker
Version: v1.0
Plugin URI: http://wp-master.ir
Author: Omid Shamloo
Author URI: http://wp-master.ir
Description: Sample plugin to show you how you can interact with the software license manager API from your WordPress plugin or theme
*/
// This is the secret key for API authentication. You configured it in the settings menu of the license manager plugin.
define('YOUR_SPECIAL_SECRET_KEY', 'YOUR_SPECIAL_SECRET_KEY'); //Rename this constant name so it is specific to your plugin or theme.
// This is the URL where API query request will be sent to. This should be the URL of the site where you have installed the main license manager plugin. Get this value from the integration help page.
define('YOUR_LICENSE_SERVER_URL', 'http://wp-master.ir'); //Rename this constant name so it is specific to your plugin or theme.
// This is a value that will be recorded in the license manager data so you can identify licenses for this item/product.
define('YOUR_ITEM_REFERENCE', 'YOUR_ITEM_REFERENCE'); //Rename this constant name so it is specific to your plugin or theme.
add_action('admin_menu', 'slm_sample_license_menu');
function slm_sample_license_menu() {
add_options_page('Sample License Activation Menu', 'Sample License', 'manage_options', 'youlice_classesence', 'sample_license_management_page');
}
function sample_license_management_page() {
echo '<div class="wrap">';
echo '<h2>Sample License Management</h2>';
/*** License activate button was clicked ***/
if (isset($_REQUEST['activate_license'])) {
$license_key = $_REQUEST['sample_license_key'];
// Send query to the license manager server
$lic = new youlice_class($license_key , YOUR_LICENSE_SERVER_URL , YOUR_SPECIAL_SECRET_KEY );
if($lic->active()){
echo 'You license Activated successfuly';
}else{
echo $lic->err;
}
}
$lic = new youlice_class($license_key , YOUR_LICENSE_SERVER_URL , YOUR_SPECIAL_SECRET_KEY );
if($lic->is_licensed()){
echo 'Thank You Phurchasing!';
}else{
?>
<form action="" method="post">
<table class="form-table">
<tr>
<th style="width:100px;"><label for="sample_license_key">License Key</label></th>
<td ><input class="regular-text" type="text" id="sample_license_key" name="sample_license_key" value="<?php echo get_option('sample_license_key'); ?>" ></td>
</tr>
</table>
<p class="submit">
<input type="submit" name="activate_license" value="Activate" class="button-primary" />
</p>
</form>
<?php
}
echo '</div>';
}
class youlice_class{
public $lic;
public $server;
public $api_key;
private $wp_option = 'product_1450';
private $product_id = 'My_product_name_OR_ID';
public $err;
public function __construct($lic=false , $server , $api_key){
if($this->is_licensed())
$this->lic = get_option($this->wp_option);
else
$this->lic = $lic;
$this->server = $server;
$this->api_key = $api_key;
}
/**
* check for current product if licensed
* @return boolean
*/
public function is_licensed(){
$lic = get_option($this->wp_option);
if(!empty( $lic ))
return true;
return false;
}
/**
* send query to server and try to active lisence
* @return boolean
*/
public function active(){
$url = YOUR_LICENSE_SERVER_URL . '/?secret_key=' . YOUR_SPECIAL_SECRET_KEY . '&slm_action=slm_activate&license_key=' . $this->lic . '®istered_domain=' . get_bloginfo('siteurl').'&item_reference='.$this->product_id;
$response = wp_remote_get($url, array('timeout' => 20, 'sslverify' => false));
if(is_array($response)){
$json = $response['body']; // use the content
$json = preg_replace('/[\x00-\x1F\x80-\xFF]/', '', utf8_encode($json));
$license_data = json_decode($json);
}
if($license_data->result == 'success'){
update_option( $this->wp_option, $this->lic );
return true;
}else{
$this->err = $license_data->message;
return false;
}
}
/**
* send query to server and try to deactive lisence
* @return boolean
*/
public function deactive(){
}
}
Theme & Plugin Integration
Please Note: The license validation part for your distributed plugins and themes is not part of this plugin. More on this can be found in the Software License Manager documentation.
To implement License Key validation in your plugin or theme, please check out the sample code in Maddison Designs’ Github repo.
Attention
Known incompatibility issue with iThemes Security
If you have installed “iThemes Security”, uncheck Long URL Strings where the Software License Manager plugin is installed
Credits
- Woocommerce
- Software License Manager
- EDD Software License Manager
- WP 4.8.2 and WC 3.2.0 Compatibility
Translates
- Persian
- Spanish (Spain) Art Project Group
Yapılandırma
Basit ve iyi yapılandırılmış eklentinin çalışması için çok fazla ayar yapmanız gerekmiyor.
- After the successful installation you will find a prepared options page here: “WooCommerce” > “Settings” > “Products” > “License Manager”
- Software License Manager API kimlik bilgilerinizi girin
- Ürünlerinize gidin ve gerekli yerdeki lisanslamayı etkinleştirin
Ekran Görüntüleri
Yükleme
Eklentinin kurulumu ve yapılandırması olabildiğince basittir.
Using The WordPress Dashboard
- Navigate to the ‘Add New’ in the plugins dashboard
- ‘wc software license manager’ için arama yapın
- ‘Şimdi Yükle’ye tıklayın
- Activate the plugin on the Plugin dashboard
Uploading in WordPress Dashboard
- Navigate to the ‘Add New’ in the plugins dashboard
- ‘Yükleme’ alanına gidin
- Bilgisayarınızdan eklentinin zip dosyasını seçin
- ‘Şimdi Yükle’ye tıklayın
- Activate the plugin in the Plugin dashboard
SSS
-
Her iki eklentiyi de aynı WordPress kurulumuna yüklemek gerekli mi?
-
No! That’s one of the biggest benefits of this integration. WooCommerce and the Software License Manager can be installed on different sites.
-
Oluşturulan lisans anahtarlarını doğrulamak için bu eklentiyi kullanabilir miyim?
-
Hayır. Eklentileriniz ve temalarınız için lisans doğrulama kısmı bu eklentinin bir parçası değildir. Bu yüzden lütfen Software License Manager belgelerine göz atın.
İncelemeler
Katkıda Bulunanlar ve Geliştiriciler
“WooCommerce Software License Manager” açık kaynaklı yazılımdır. Aşağıdaki kişiler bu eklentiye katkıda bulunmuşlardır.
Katkıda bulunanlar“WooCommerce Software License Manager” eklentisini dilinize çevirin.
Geliştirmeyle ilgilenir misiniz?
Kodu görüntüleyin, SVN deposuna göz atın ya da RSS ile geliştirme günlüğüne abone olun.
Değişiklik Kaydı
2.0.1
- Updated License table styles so it matches the Order table.
- Updated hook to insert License details after Order details rather than before
2.0.0
- Updated plugin to work with WordPress 4.8.2 and WooCommerce 3.2
- Fixed error from WC Order Properties being accessed directly on My Account Order View page and when generating order email
- Added functionality to pass Product Ref to Software License Manager API when generating key
- Added ability to enable/disable debug logging messages
- Added logging messages throughout code which are only displayed when logging is enabled
- Added settings option for Secret Key for Verification to enable viewing License Key Registered Domains on Order View page
- Added the display of Registered Domains for each License Key on the WooCommerce Order View page
- Removed code that wasn’t being used
- Removed superfluous comments and added in lots of extra comments where needed
- Reformatted and tidied code to WordPress Plugin Directory specifications
- Reworded meta box labels and added input field descriptions on add/edit product page
- Updated Version to 2.0.0
1.0.7 (20th July 2016)
- Add Expire Date to Email and Purchase Details (Thanks to Albert Van Der Ploeg)
- txn_id change from $product_id to $order_id
1.0.6 (8th November 2015)
- Small fix
1.0.5 (7th November 2015)
has_downloadable_item
and$product->has_file()
removed from code, so downloadable tick is enough for working
1.0.4 (1st November 2015)
- Small fix
- Spanish translate added
1.0.3 (6th October 2015)
- License details get from billing form now
- License renewal can be set in product page
- License details added to user account page
1.0.1 (5th October 2015)
- Sample code was added
- Small fix