نمونه کد api لایسنس گذاری روی قالب وردپرسی
لایسنس گذاری یکی از موارد مهم در توسعه و استفاده از قالب ها در وردپرس است. با استفاده از لایسنس گذاری، توسعه دهندگان قالب ها می توانند حقوق مالکیت معنوی خود را حفظ کنند و محدودیت هایی برای استفاده از قالب ها در عموم قرار دهند. در این مقاله، یک مثال کد API لایسنس گذاری برای قالب وردپرسی ارائه می شود.
ابتدا برای استفاده از لایسنس گذاری، باید یک کلید لایسنس ایجاد کنید. بعد از ایجاد لایسنس توسط سرویس زی لایسنس روی محصول خود این کد php را اضافه کرده و از سرویس زی لایسنس روی قالب وردپرسی خود استفاده کنید.
<?php define('MY_PLUGIN_ENVIRONMENT', 'production'); //*********** بررسی امنیتی این قسمت را دست نزنید *****************// //*********** تعریف تابع برای چک کردن وجود دیباگر ***************// function check_debugger() { if (isset($_GET['debugger']) && !empty($_GET['debugger']) && $_GET['debugger'] === 'show') { // اعتبارسنجی و امنیت ورودی $debugger = sanitize_text_field($_GET['debugger']); // بررسی دسترسی کاربر (مثال: مدیر وردپرس) if (!current_user_can('manage_options')) { // جلوگیری از دسترسی غیرمجاز با متوقف کردن اجرای برنامه wp_die('Access denied. Unauthorized access to debugger is not allowed.'); } // جلوگیری از اجرای کدهای JavaScript در صفحه add_action('wp_print_scripts', function () { echo "<script>console.log('JavaScript execution is disabled.');</script>"; }); // جلوگیری از تغییر کدهای HTML در صفحه add_action('wp_print_footer_scripts', function () { echo "<script>document.addEventListener('DOMContentLoaded', function() { document.body.innerHTML = 'Access denied. Unauthorized access to debugger is not allowed.'; });</script>"; }); // اقدامات اجرایی // (مثال: اطلاعات لاگ، ارسال ایمیل به مدیر و ...) } // چک کردن نوع محیط اجرای PHP if (php_sapi_name() === 'cli' || isset($_SERVER['HTTP_X_DEBUG_SESSION'])) { die('Debugger detected!'); } //*************** چک کردن برای وجود افزونههای دیباگر ***************// $debuggers = array( 'xdebug', 'zend', 'phpstorm', 'eclipse', 'netbeans', ); foreach ($debuggers as $debugger) { if (function_exists($debugger_break = $debugger . '_break')) { die('Debugger detected!'); } } //*********** چک کردن بازگشت اطلاعات از تابع debug_backtrace ***************// if (function_exists('debug_backtrace')) { $debug_trace = debug_backtrace(); foreach ($debug_trace as $trace) { if (isset($trace['object']) && is_a($trace['object'], 'PHPUnit_Framework_TestCase')) { die('Debugger detected!'); } } } function check_user_agent() { $user_agent = $_SERVER['HTTP_USER_AGENT']; $blocked_agents = array('curl', 'wget', 'bot', 'spider'); foreach ($blocked_agents as $agent) { if (stripos($user_agent, $agent) !== false) { die('Access denied!'); } } } function check_environment() { if (MY_PLUGIN_ENVIRONMENT !== 'production') { exit('Access denied!'); } } } check_debugger(); //*********** بررسی امنیتی این قسمت را دست نزنید *****************// //*********** تعریف تابع برای چک کردن وجود دیباگر ***************// //--------- Template For Active Product //**** آدرس API بررسی صحت لایسنس: https://wp.zelic.ir ****// //**** این قسمت را دست نزنید ****// define('manage_site_zelic', 'https://wp.zelic.ir'); //---- Requierd define('api_zelic',manage_site_zelic.'/api');//--------- Fixed //**** این قسمت را دست نزنید ****// //**** نام یکتای محصول را وارد نمائید ****// define('unique_id_zelic', 'aaa'); //---- Requierd //**** نام محصول را وارد نمائید (این نام برای نمایش استفاده خواهد شد) ****// define('product_name_zelic', 'فعال سازی قالب '); //************* صفحه محصول تست ******************/ define('active_zelic', 'active_zelic'); //*********** این بخش جهت نمایش فعال ساز محصول می باشد **************// function create_active_product_zelic() { add_menu_page(product_name_zelic, product_name_zelic, 'manage_options', active_zelic , 'active_zelic_product', 'dashicons-unlock ', 11); } add_action('admin_menu', 'create_active_product_zelic'); //************* کدهای تنظیمات جهت ارسال کد فعال سازی ***************// function is_activated_zelic() { if(get_option('code_lisense_' . unique_id_zelic)){ return true; }else{ return false; } } if(!is_activated_zelic()){ function lock_zelic(){ exit('<div style="color:#f00;margin-top:15px;font-size:20px;text-align:center">کد مجوز را وارد نمائید</div>'); } add_action('wp_head','lock_zelic'); } //*************** متن پیام فعال برای فعال سازی کلیک کنید ***************// function error_notice_zelic() { ?> <div class='notice notice-error'> <p> برای فعال سازی قالب <a style="background: red;padding: 5px;color: #fff;text-decoration: none;border-radius: 3px;" href="<?= get_admin_url().'admin.php?page='.active_zelic ?>"> کلیک کنید </a> </p> </div> <?php } if(! is_activated_zelic()){ add_action( 'admin_notices', 'error_notice_zelic' ); } function active_zelic_product() { ?> <div class="wrap"> <h1> <?= product_name_zelic ?></h1> <!---- شروع کد نویسی بخش ارسال کد فعال سازی ---> <?php if (!get_option('code_lisense_' . unique_id_zelic)) { ?> <div style="width: 70%;margin: 21px auto;background-color: #fff;border-radius: 5px;padding: 25px;"> <style> .sus{ color: #1abc9c; } .error{ color: #ff0000; } </style> <div class="ajax_response"> </div> <div class="base_form"> <label style="display: block;width: 100%;font-size: 16px;margin-bottom: 10px" for="code_lisense_<?= unique_id_zelic ?>">کد مجوز را وارد نمائید</label> <input id="code_lisense_test_asafir_id" style="display: block;width: 100%;font-size: 16px;margin-bottom: 10px" type="text" name="code_lisense_<?= unique_id_zelic ?>" id="code_lisense_<?= unique_id_zelic ?>" value="<?= get_option('code_lisense_' . unique_id_zelic) ?>"> <button id="sen_active_license" style="background-color: #1abc9c;color: #fff;border-radius: 3px;border: 0;font-size: 14px;cursor: pointer;padding: 10px 15px;"> فعال سازی محصول </button> </div> </div> </div> <?php } //************ انتهای کد نویسی بخش ارسال کد فعال سازی ***************// else{ //************** چک کردن کد مچوز در وب سایت شما *****************// check_license_zelic_product(get_option('code_lisense_' . unique_id_zelic),$_SERVER['HTTP_HOST'],unique_id_zelic); if(get_option('code_lisense_' . unique_id_zelic)){ ?> <div style="width: 70%;margin: 21px auto;background-color: #fff;border-radius: 5px;padding: 25px;"> <style> .sus{ color: #1abc9c; } .error{ color: #ff0000; } </style> <div class="ajax_response"></div> <div class="base_form"> <label style="display: block;width: 100%;font-size: 16px;margin: 10px 0;" for="code_lisense_<?= unique_id_zelic ?>">کد مجوز شما</label> <input id="code_lisense_test_asafir_id" type="text" disabled="" value="<?= get_option('code_lisense_' . unique_id_zelic) ?>" style=" display: block; width: 100%; margin: 15px 0; "> <button id="rev_active_license" style="background-color: #ff0000;color: #fff;border-radius: 3px;border: 0;font-size: 14px;cursor: pointer;padding: 10px 15px;"> حذف دامنه </button> </div> </div> </div> <?php }else{ ?> <div style="width: 70%;margin: 21px auto;background-color: #fff;border-radius: 5px;padding: 25px;"> <style> .sus{ color: #1abc9c; } .error{ color: #ff0000; } </style> <div class="ajax_response"> </div> <div class="base_form"> <label style="display: block;width: 100%;font-size: 16px;margin-bottom: 10px" for="code_lisense_<?= unique_id_zelic ?>">کد مجوز را وارد نمائید</label> <input id="code_lisense_test_asafir_id" style="display: block;width: 100%;font-size: 16px;margin-bottom: 10px" type="text" name="code_lisense_<?= unique_id_zelic ?>" id="code_lisense_<?= unique_id_zelic ?>" value="<?= get_option('code_lisense_' . unique_id_zelic) ?>"> <button id="sen_active_license" style="background-color: #1abc9c;color: #fff;border-radius: 3px;border: 0;font-size: 14px;cursor: pointer;padding: 10px 15px;"> فعال سازی محصول </button> </div> </div> </div> <?php } } ?> </div> <script> jQuery('#sen_active_license').click(function (e) { //*************** چک کردن مقدار خالی بودن input ***************// var license = jQuery('#code_lisense_test_asafir_id').val(); if (license.trim() === '') { jQuery('.ajax_response').html(`<div class="error">لطفاً لایسنس خود را وارد کنید.</div>`); return; } //****************** ادامه اجرای کد در صورت مقدار وارد شده ***************// jQuery('.ajax_response').html(`<div style=" padding: 10px; margin-bottom: 15px; color: #000; font-weight: bold; text-align: center; box-shadow: 0 0 3px #ccc; ">درحال ارسال درخواست</div>`); var license = jQuery('#code_lisense_test_asafir_id').val(); var ajax_url = "<?php echo admin_url('admin-ajax.php'); ?>"; var domain ="<?php $_SERVER['HTTP_HOST']; ?>"; var unic_id = "<?= unique_id_zelic ?>"; jQuery.ajax({ url:ajax_url, type: "GET", data:{ license, domain , unic_id, action:"get_status_license_zelic_product" }, success:function(response) { response = jQuery.parseJSON(response); if(response['status']){ jQuery('.ajax_response').html(`<div class="sus">${response['message']}</div>`); window.location.reload() }else{ jQuery('.ajax_response').html(`<div class="error">${response['message']}</div>`); } }, error: function(xhr, status, error,response) { console.log(status,error) jQuery('.ajax_response').html(`<div class="error">${error}</div>`); return false; }, } ) }) jQuery('#rev_active_license').click(function (e) { jQuery('.ajax_response').html(`<div style=" padding: 10px; margin-bottom: 15px; color: #000; font-weight: bold; text-align: center; box-shadow: 0 0 3px #ccc; ">درحال ارسال درخواست</div>`); var license = jQuery('#code_lisense_test_asafir_id').val(); var ajax_url = "<?php echo admin_url('admin-ajax.php'); ?>"; var domain = "<?php echo $_SERVER['HTTP_HOST']; ?>"; var unic_id = "<?= unique_id_zelic ?>"; var act = 'rev'; jQuery.ajax({ url:ajax_url, type: "GET", data:{ license, domain , unic_id,act, action:"remove_domain_zelic_product" }, success:function(response) { response = jQuery.trim(response); console.log(response) response = jQuery.parseJSON(response); if(response['status']){ window.location.reload(); }else{ jQuery('.ajax_response').html(`<div class="error">${response['message']}</div>`); } }, error: function(xhr, status, error,response) { console.log(status,error) jQuery('.ajax_response').html(`<div class="error">${error}</div>`); return false; }, }) }) </script> <?php } //*************** ارسال اطلاعات برای فعال سازی لایسنس ***************// add_action('wp_ajax_get_status_license_zelic_product', 'get_status_license_zelic_product'); add_action('wp_ajax_nopriv_get_status_license_zelic_product', 'get_status_license_zelic_product'); function get_status_license_zelic_product(){ $lic = $_GET['license']; $dom = $_SERVER['HTTP_HOST']; $uic = $_GET['unic_id']; $res = wp_remote_get(api_zelic.'?license='.$lic.'&domain='.$dom.'&unic_id='.$uic); if(! is_wp_error( $res )){ $result = json_decode($res['body']); if ($result->status) { update_option('code_lisense_' . $uic, $_GET['license'], true); } else { delete_option('code_lisense_' . $uic); } echo $res['body']; }else{ echo json_encode(['status'=>false,'message'=> __('لایسنس ارسال شده نامعتبر می باشد','zelic_ir_woo')]); } exit(); } //***************** چک کردن آنلاین لایسنس ***************// function check_license_zelic_product($lic,$dom,$uic){ $res = wp_remote_get(api_zelic.'?license='.$lic.'&domain='.$dom.'&unic_id='.$uic); if(! is_wp_error( $res )){ $result = json_decode($res['body']); if($result->status){ update_option( 'code_lisense_'.$uic,$lic, true); }else{ delete_option( 'code_lisense_'.$uic ); } }else{ echo json_encode(['status'=>false,'message'=> __('لایسنس ارسال شده نامعتبر می باشد','zelic_ir_woo')]); } } //************** حذف دامنه ***************// add_action('wp_ajax_remove_domain_zelic_product', 'remove_domain_zelic_product'); add_action('wp_ajax_nopriv_remove_domain_zelic_product', 'remove_domain_zelic_product'); function remove_domain_zelic_product(){ $res = wp_remote_get(api_zelic.'?license='.$_GET['license'].'&domain='.$_GET['domain'].'&unic_id='.$_GET['unic_id'].'&act='.$_GET['act']); if(! is_wp_error( $res )){ $result = json_decode($res['body']); if($result->status){ delete_option( 'code_lisense_'.unique_id_zelic); } echo $res['body']; }else{ echo json_encode(['status'=>false,'message'=> __('لایسنس ارسال شده نامعتبر می باشد','zelic_ir_woo')]); } exit(); } // *********** تابع بررسی و حذف لایسنس غیرفعال *************// function check_and_remove_inactive_license() { $license = get_option('code_lisense_' . unique_id_zelic); $domain = $_SERVER['HTTP_HOST']; $result = wp_remote_get(api_zelic . '?license=' . $license . '&domain=' . $domain . '&unic_id=' . unique_id_zelic); if (!is_wp_error($result)) { $response = json_decode($result['body']); if (!$response->status) { // لایسنس غیرفعال است، حذف کنید delete_option('code_lisense_' . unique_id_zelic); } } } // افزودن وظیفه به cron job هر روز if (!wp_next_scheduled('daily_check_and_remove_license')) { wp_schedule_event(time(), 'daily', 'daily_check_and_remove_license'); } // ثبت تابع بررسی در cron job add_action('daily_check_and_remove_license', 'check_and_remove_inactive_license');
این مثال کد تنها یک نمونه ساده است و شما می توانید آن را بر اساس نیازهای خود تغییر دهید. ممکن است نیاز داشته باشید تا عملیات های دیگری مانند فعالسازی/غیرفعالسازی لایسنس، ارسال پیغام خطا به کاربر و غیره را اضافه کنید.
با استفاده از لایسنس گذاری در قالب وردپرسی، شما می توانید حقوق مالکیت خود را حفظ کرده و استفاده نامناسب از قالب ها را محدود کنید.
معرفی سرویس لایسنس گذاری محصولات زی لایسنس
برای عضویت در سرویس زی لایسنس، به راحتی میتوانید از طریق منوی سایت، بر روی گزینه ثبت نام کلیک کنید. در صورت عضو سایت هستید، با ورود به پنل کاربری، به سادگی وارد سرویس زی لایسنس شوید.
با عضویت در سرویس زی لایسنس، پنلی برای شما فراهم میشود که با آن میتوانید به تمام محصولات خود لایسنس اختصاص دهید و از محصولات و خدمات خود محافظت کنید. این کار به شما کمک میکند تا جلوی انتشار و استفادههای غیرمجاز از محصولات خود را بگیرید و به درآمد بیشتری دست یابید.
مزایای لایسنس گذاری روی محصولات:
با لایسنس گذاری بر روی محصولات، این امکان فراهم میشود که مالکیت و کنترل محصولات را حفظ کنید و اجازه استفاده از آنها را به دیگران بدهید. این فرایند، امنیت و حقوق مالکیت فکری شما را تضمین میکند و محافظت از محصولات شما در مقابل استفادههای غیرمجاز فراهم میکند.
با لایسنس گذاری، شما قادر به تنظیم محدودیتهایی برای استفاده از محصول خود هستید. این امر میتواند شامل محدود کردن دسترسی به محصول، تعیین نوع استفاده یا حتی محدودیت زمانی باشد که باعث میشود کاربران تنها به محصول در مدت زمان مشخصی دسترسی داشته باشند.
یکی از مزایای اصلی لایسنس گذاری، کنترل بهتری بر سیاستها و شرایط استفاده از محصولات است. این به شما این امکان را میدهد که قوانین مربوط به استفاده از محصول را تعیین کنید و در صورت نقض، اقدامات لازم را انجام دهید.
لازم به ذکر است که لایسنس گذاری به شما کمک میکند تا ارزش مالی محصولات خود را حفظ کنید و از نسخههای غیرقانونی و استفادههای ناقض حقوق مالکیت محافظت کنید. این به کسب و کارها کمک میکند تا به درآمد پایدارتر و پشتیبانی بهتر از محصولاتشان دست یابند.
زی لایسنس اولین و برترین سرویس است که بصورت 100% ایمن برنامه نویسی شده است و بصورت یک سامانه آنلاین جهت مدیریت و ساماندهی لایسنس ها با الگوریتمی بسیار نوین و ایمن برای مشترکین ایفای نقش میکند. بطور کلی توسط سرویس زی لایسنس میتوانید برای کلیه پروژه های php، اسکریپت، سیستم های فروشگاهی، سایت ساز، قالب، افزونه و هر آن چیزی که میخواهید مجوز و لایسنس تعریف کنید. و جلوی انتشار غیر مجاز سرویس ها و محصولات خود را بگیرید.
باتوجه به اینکه این سرویس دارای API اختصاصی است، با استفاده از آن می توانید بر روی هر زبان برنامه نویسی که قابلیت کلاس نویسی را داشته باشد کلاس مربوطه را کدنویسی و بر روی محصول خود لایسنس قرار دهید. این افزونه با ارائه API اختصاصی می تواند بستری را فراهم سازد تا بتوانید روی تمامی محصولات خود لایسنس بگذارید.
همچنین زی لایسنس دارای سرویس های بسیار دیگری است که میتوانید با ورود به صفحه موردنظر هر سرویس مزایای هر سرویس را مشاهده نمایید.
با عضویت در سرویس های زی لایسنس میتوانید از تمامی این مزیت ها بهره مند شوید.