File: //proc/self/cwd/wp-content/plugins/elementor-pro/lib/updater.php
<?php
// Exit if accessed directly
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Simple EDD Software Licensing class for license validation only.
* No auto-update functionality included.
* Automatically detects whether to use custom parent or plugin parent based on parent_slug.
*
* @version 1.0
*/
class EDD_SL {
private $api_url;
private $plugin_slug;
private $plugin_name;
private $license_option;
private $status_option;
private $item_id;
private $item_name;
private $admin_page_slug;
private $admin_page_title;
private $parent_slug;
private $is_custom_parent;
/**
* Class constructor.
*
* @param array $args Configuration arguments
*/
public function __construct( $args = array() ) {
$defaults = array(
'api_url' => 'https://elementorfa.ir/',
'plugin_slug' => '',
'plugin_name' => '',
'item_id' => '',
'item_name' => '',
'admin_page_title' => 'License Management',
'parent_slug' => '', // If empty, plugin parent will be used
);
$args = wp_parse_args( $args, $defaults );
$this->api_url = trailingslashit( $args['api_url'] );
$this->plugin_slug = $args['plugin_slug'];
$this->plugin_name = !empty($args['plugin_name']) ? $args['plugin_name'] : $this->generate_plugin_name($args['plugin_slug']);
$this->item_id = $args['item_id'];
$this->item_name = !empty($args['item_name']) ? $args['item_name'] : $this->plugin_name;
// Set admin page title with language detection
if (!empty($args['admin_page_title'])) {
$this->admin_page_title = $args['admin_page_title'];
} else {
$locale = get_locale();
$is_persian = ($locale === 'fa_IR' || $locale === 'fa');
$this->admin_page_title = $is_persian ? 'مدیریت لایسنس' : 'License Management';
}
$this->parent_slug = $args['parent_slug'];
$this->license_option = $this->plugin_slug . '_license_key';
$this->status_option = $this->plugin_slug . '_license_status';
$this->admin_page_slug = $this->plugin_slug . '_license';
// Detect parent type based on parent_slug existence
$this->is_custom_parent = !empty($this->parent_slug);
$this->init();
}
/**
* Generate plugin name from slug.
*/
private function generate_plugin_name($slug) {
// Convert hyphens to spaces and capitalize first letter of each word
$name = str_replace('-', ' ', $slug);
$name = ucwords($name);
return $name;
}
/**
* Initialize hooks.
*/
private function init() {
add_action( 'admin_menu', array( $this, 'add_license_page' ), 99 );
add_action( 'admin_init', array( $this, 'register_license_setting' ) );
add_action( 'admin_init', array( $this, 'activate_license' ) );
add_action( 'admin_init', array( $this, 'deactivate_license' ) );
add_action( 'admin_init', array( $this, 'manual_check_license' ) );
add_action( 'admin_enqueue_scripts', array( $this, 'admin_styles' ) );
add_action( 'admin_notices', array( $this, 'license_notice' ) );
// Check license status when admin loads
add_action( 'admin_init', array( $this, 'maybe_check_license_status' ) );
}
/**
* Add license page to admin menu.
*/
public function add_license_page() {
if ( $this->is_custom_parent ) {
// Use custom parent
add_submenu_page(
$this->parent_slug,
$this->admin_page_title,
$this->admin_page_title,
'manage_options',
$this->admin_page_slug,
array( $this, 'license_page' )
);
} else {
// Use plugin parent
add_plugins_page(
$this->admin_page_title,
$this->admin_page_title,
'manage_options',
$this->admin_page_slug,
array( $this, 'license_page' )
);
}
}
/**
* Get admin URL based on parent type.
*/
private function get_admin_url() {
if ( $this->is_custom_parent ) {
return admin_url( 'admin.php' );
} else {
return admin_url( 'plugins.php' );
}
}
/**
* Check if WordPress language is Persian.
*/
private function is_persian_language() {
$locale = get_locale();
return ( $locale === 'fa_IR' || $locale === 'fa' );
}
/**
* Enqueue admin styles.
*/
public function admin_styles( $hook ) {
if ( strpos( $hook, $this->admin_page_slug ) !== false ) {
wp_enqueue_style( 'edd-sl-admin', plugin_dir_url( __FILE__ ) . 'admin.css', array(), '1.2' );
}
}
/**
* Display license page.
*/
public function license_page() {
$license = get_option( $this->license_option );
$status = get_option( $this->status_option );
?>
<div class="wrap udm-library-settings">
<div class="udm-library-header">
<div class="udm-library-header-main">
<div class="udm-library-logo">
<div class="udm-logo-icon">
<span class="dashicons dashicons-admin-network"></span>
</div>
</div>
<div class="udm-library-header-title">
<h4><?php echo esc_html( $this->admin_page_title ); ?></h4>
<p style="color: #6d7882; font-size: 14px; margin: 15px 0 0;">
<?php echo $this->is_persian_language() ? 'شما میتوانید لایسنس ' . esc_html( $this->plugin_name ) . ' خود را در این صفحه مدیریت کنید.' : 'You can manage your ' . esc_html( $this->plugin_name ) . ' license on this page.'; ?></p>
</div>
</div>
</div>
<div id="udm-library-messages">
<?php
// Display license status check messages
if (isset($_GET['message']) && isset($_GET['type'])) {
$message = sanitize_text_field( rawurldecode($_GET['message']) );
$type = sanitize_text_field( $_GET['type'] );
if (in_array($type, ['success', 'error', 'info', 'warning'])) {
$class = 'notice notice-' . $type;
if ( $type === 'success' ) {
$class .= ' is-dismissible';
}
echo '<div class="' . esc_attr($class) . '"><p>' . esc_html($message) . '</p></div>';
}
}
?>
</div>
<div class="udm-library-main">
<div class="udm-library-content">
<div class="udm-library-card">
<div class="udm-library-card-header">
<h3><?php echo $this->is_persian_language() ? 'وضعیت سایت' : 'Site Status'; ?></h3>
</div>
<div class="udm-library-card-body">
<div class="udm-library-settings-row">
<div class="udm-library-settings-icon">
<span class="dashicons dashicons-admin-site-alt3"></span>
</div>
<div class="udm-library-settings-content">
<div class="udm-library-settings-title"><?php echo $this->is_persian_language() ? 'دامنه فعلی' : 'Current Domain'; ?></div>
<div class="udm-library-settings-description"><?php echo esc_html(home_url()); ?></div>
</div>
</div>
<div class="udm-library-settings-row">
<div class="udm-library-settings-icon">
<span class="dashicons dashicons-shield"></span>
</div>
<div class="udm-library-settings-content">
<div class="udm-library-settings-title"><?php echo $this->is_persian_language() ? 'وضعیت لایسنس' : 'License Status'; ?></div>
<div class="udm-library-settings-description">
<?php
if ( 'valid' === $status ) {
echo '<span class="status-active">🟢 ' . ($this->is_persian_language() ? 'فعال' : 'Active') . '</span>';
$message = $this->is_persian_language() ? 'لایسنس شما فعال است' : 'Your license is active';
} elseif ( !empty($license) ) {
echo '<span class="status-error">🟡 ' . ($this->is_persian_language() ? 'غیر فعال' : 'Inactive') . '</span>';
$message = $this->is_persian_language() ? 'لایسنس وارد شده اما فعال نیست' : 'License entered but not active';
} else {
echo '<span class="status-inactive">⚫ ' . ($this->is_persian_language() ? 'غیر فعال' : 'Inactive') . '</span>';
$message = $this->is_persian_language() ? 'هیچ لایسنسی وارد نشده' : 'No license entered';
}
?>
<br><small><?php echo esc_html($message); ?></small>
</div>
</div>
</div>
</div>
</div>
<div class="udm-library-card">
<div class="udm-library-card-header">
<h3><?php echo $this->is_persian_language() ? 'فعالسازی لایسنس' : 'License Activation'; ?></h3>
</div>
<div class="udm-library-card-body">
<form method="post" action="options.php" id="udm-library-license-form">
<?php
settings_fields( $this->plugin_slug . '_license' );
wp_nonce_field( $this->plugin_slug . '_nonce', $this->plugin_slug . '_nonce' );
?>
<div class="udm-library-settings-row">
<div class="udm-library-settings-icon">
<span class="dashicons dashicons-admin-network"></span>
</div>
<div class="udm-library-settings-content">
<div class="udm-library-settings-title"><?php echo $this->is_persian_language() ? 'کلید لایسنس' : 'License Key'; ?></div>
<div class="udm-library-settings-description">
<?php if ( 'valid' === $status && !empty($license) ): ?>
<input type="text"
id="<?php echo esc_attr( $this->license_option ); ?>"
value="<?php echo esc_attr( substr($license, 0, 4) . str_repeat('*', strlen($license) - 8) . substr($license, -4) ); ?>"
class="regular-text"
readonly
style="background: #f1f1f1; color: #666;" />
<p class="description"><?php echo $this->is_persian_language() ? 'لایسنس شما با موفقیت فعال شده است.' : 'Your license has been successfully activated.'; ?></p>
<?php else: ?>
<input type="text"
id="<?php echo esc_attr( $this->license_option ); ?>"
name="<?php echo esc_attr( $this->license_option ); ?>"
value="<?php echo esc_attr( $license ); ?>"
class="regular-text"
placeholder="<?php echo $this->is_persian_language() ? 'کلید لایسنس خود را وارد کنید' : 'Enter your license key'; ?>"
required />
<p class="description"><?php echo $this->is_persian_language() ? 'کلید لایسنس خود را در این فیلد وارد کنید' : 'Enter your license key in this field'; ?></p>
<?php endif; ?>
</div>
</div>
</div>
</div>
<div class="udm-library-submit">
<?php if ( 'valid' === $status && !empty($license) ): ?>
</form>
<form method="post" action="<?php echo esc_url( $this->get_admin_url() ); ?>" id="deactivate-form">
<?php wp_nonce_field( $this->plugin_slug . '_nonce', $this->plugin_slug . '_nonce' ); ?>
<button type="submit" name="<?php echo esc_attr( $this->plugin_slug ); ?>_license_deactivate" id="deactivate-license" class="button udm-library-button-danger" onclick="return confirm('<?php echo $this->is_persian_language() ? 'آیا مطمئن هستید که میخواهید لایسنس را غیرفعال کنید؟' : 'Are you sure you want to deactivate the license?'; ?>')"><?php echo $this->is_persian_language() ? 'غیرفعال کردن لایسنس' : 'Deactivate License'; ?></button>
</form>
<?php else: ?>
<button type="submit" name="<?php echo esc_attr( $this->plugin_slug ); ?>_license_activate" class="button button-primary udm-library-button-primary"><?php echo $this->is_persian_language() ? 'فعال کردن لایسنس' : 'Activate License'; ?></button>
</form>
<?php endif; ?>
</div>
</div>
</div>
<div class="udm-library-sidebar">
<div class="udm-library-premium-ad">
<h5><?php echo $this->is_persian_language() ? 'نیاز به پشتیبانی دارید؟' : 'Need Support?'; ?></h5>
<p><?php echo $this->is_persian_language() ? 'برای پشتیبانی و کمک بیشتر، لطفاً با تیم ما تماس بگیرید.' : 'For support and further assistance, please contact our team.'; ?></p>
<a href="#" target="_blank" class="button button-secondary"><?php echo $this->is_persian_language() ? 'تماس با پشتیبانی' : 'Contact Support'; ?></a>
</div>
<?php if ( 'valid' === $status && !empty($license) ): ?>
<div class="udm-license-status-check">
<h5><?php echo $this->is_persian_language() ? 'بررسی وضعیت لایسنس' : 'Check License Status'; ?></h5>
<p><?php echo $this->is_persian_language() ? 'آخرین بررسی: ' : 'Last check: '; ?><?php
$last_check = $this->get_last_check_time();
if ( $last_check ) {
// Display time based on user's local time
$local_time = $last_check + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS );
echo esc_html( date_i18n( 'Y/m/d H:i', $local_time ) );
} else {
echo $this->is_persian_language() ? 'هرگز' : 'Never';
}
?></p>
<form method="post" action="<?php echo esc_url( $this->get_admin_url() ); ?>" style="margin: 0;">
<?php wp_nonce_field( $this->plugin_slug . '_nonce', $this->plugin_slug . '_nonce' ); ?>
<button type="submit" name="<?php echo esc_attr( $this->plugin_slug ); ?>_check_license" class="button button-secondary" style="width: 100%;"><?php echo $this->is_persian_language() ? 'بررسی وضعیت از سرور' : 'Check Status from Server'; ?></button>
</form>
</div>
<?php endif; ?>
<div class="udm-library-about">
<h5><?php echo $this->is_persian_language() ? 'درباره سیستم لایسنس' : 'About Licensing System'; ?></h5>
<p><?php echo $this->is_persian_language() ? 'این سیستم برای فعالسازی و مدیریت لایسنس افزونههای خریداری شده طراحی شده است.' : 'This system is designed to activate and manage licenses for purchased plugins.'; ?></p>
<ul>
<li><?php echo $this->is_persian_language() ? 'مدیریت لایسنس' : 'License Management'; ?></li>
<li><?php echo $this->is_persian_language() ? 'کنترل دسترسی دامنه' : 'Domain Access Control'; ?></li>
<li><?php echo $this->is_persian_language() ? 'بررسی خودکار وضعیت' : 'Automatic Status Check'; ?></li>
</ul>
</div>
</div>
</div>
</div>
<?php
}
/**
* Register license setting.
*/
public function register_license_setting() {
register_setting( $this->plugin_slug . '_license', $this->license_option, array( $this, 'sanitize_license' ) );
}
/**
* Sanitize license key.
*/
public function sanitize_license( $new ) {
$old = get_option( $this->license_option );
if ( $old && $old !== $new ) {
delete_option( $this->status_option );
}
return sanitize_text_field( $new );
}
/**
* Activate license.
*/
public function activate_license() {
if ( ! isset( $_POST[ $this->plugin_slug . '_license_activate' ] ) ) {
return;
}
if ( ! check_admin_referer( $this->plugin_slug . '_nonce', $this->plugin_slug . '_nonce' ) ) {
return;
}
$license = trim( get_option( $this->license_option ) );
if ( ! $license ) {
$license = ! empty( $_POST[ $this->license_option ] ) ? sanitize_text_field( $_POST[ $this->license_option ] ) : '';
}
if ( ! $license ) {
return;
}
$api_params = array(
'edd_action' => 'activate_license',
'license' => $license,
'item_id' => $this->item_id,
'item_name' => rawurlencode( $this->item_name ),
'url' => home_url(),
'environment' => function_exists( 'wp_get_environment_type' ) ? wp_get_environment_type() : 'production',
);
$response = wp_remote_post(
$this->api_url,
array(
'timeout' => 15,
'sslverify' => false,
'body' => $api_params,
)
);
if ( is_wp_error( $response ) || 200 !== wp_remote_retrieve_response_code( $response ) ) {
$message = is_wp_error( $response ) ? $response->get_error_message() : ($this->is_persian_language() ? 'خطایی رخ داده است، لطفاً دوباره تلاش کنید.' : 'An error occurred, please try again.');
} else {
$license_data = json_decode( wp_remote_retrieve_body( $response ) );
if ( false === $license_data->success ) {
switch ( $license_data->error ) {
case 'expired':
$message = $this->is_persian_language() ? 'لایسنس شما منقضی شده است.' : 'Your license has expired.';
break;
case 'disabled':
case 'revoked':
$message = $this->is_persian_language() ? 'لایسنس شما غیرفعال شده است.' : 'Your license has been disabled.';
break;
case 'missing':
$message = $this->is_persian_language() ? 'لایسنس نامعتبر است.' : 'Invalid license.';
break;
case 'invalid':
case 'site_inactive':
$message = $this->is_persian_language() ? 'لایسنس شما برای این دامنه فعال نیست.' : 'Your license is not active for this domain.';
break;
case 'item_name_mismatch':
$message = $this->is_persian_language() ? 'این لایسنس برای ' . $this->item_name . ' معتبر نیست.' : 'This license is not valid for ' . $this->item_name . '.';
break;
case 'no_activations_left':
$message = $this->is_persian_language() ? 'لایسنس شما به حد مجاز فعالسازی رسیده است.' : 'Your license has reached its activation limit.';
break;
default:
$message = $this->is_persian_language() ? 'خطایی رخ داده است، لطفاً دوباره تلاش کنید.' : 'An error occurred, please try again.';
break;
}
}
}
if ( ! empty( $message ) ) {
$redirect = add_query_arg(
array(
'page' => $this->admin_page_slug,
'type' => 'error',
'message' => rawurlencode( $message ),
),
$this->get_admin_url()
);
wp_safe_redirect( $redirect );
exit();
}
if ( 'valid' === $license_data->license ) {
update_option( $this->license_option, $license );
update_option( $this->status_option, $license_data->license );
$redirect = add_query_arg(
array(
'page' => $this->admin_page_slug,
'type' => 'success',
'message' => rawurlencode( $this->is_persian_language() ? 'لایسنس با موفقیت فعال شد.' : 'License activated successfully.' ),
),
$this->get_admin_url()
);
} else {
update_option( $this->status_option, $license_data->license );
$redirect = add_query_arg(
array(
'page' => $this->admin_page_slug,
'type' => 'error',
'message' => rawurlencode( $this->is_persian_language() ? 'فعالسازی لایسنس ناموفق بود.' : 'License activation failed.' ),
),
$this->get_admin_url()
);
}
wp_safe_redirect( $redirect );
exit();
}
/**
* Manual check license status.
*/
public function manual_check_license() {
if ( ! isset( $_POST[ $this->plugin_slug . '_check_license' ] ) ) {
return;
}
if ( ! check_admin_referer( $this->plugin_slug . '_nonce', $this->plugin_slug . '_nonce' ) ) {
return;
}
// Force check license status
$this->force_check_license_status();
$status = get_option( $this->status_option );
$message = '';
$type = 'info';
switch ( $status ) {
case 'valid':
$message = $this->is_persian_language() ? 'لایسنس شما معتبر و فعال است.' : 'Your license is valid and active.';
$type = 'success';
break;
case 'expired':
$message = $this->is_persian_language() ? 'لایسنس شما منقضی شده است.' : 'Your license has expired.';
$type = 'error';
break;
case 'disabled':
case 'revoked':
$message = $this->is_persian_language() ? 'لایسنس شما غیرفعال شده است.' : 'Your license has been disabled.';
$type = 'error';
break;
case 'inactive':
case 'site_inactive':
$message = $this->is_persian_language() ? 'لایسنس شما برای این دامنه فعال نیست.' : 'Your license is not active for this domain.';
$type = 'error';
break;
case 'invalid':
$message = $this->is_persian_language() ? 'لایسنس نامعتبر است.' : 'Invalid license.';
$type = 'error';
break;
default:
$message = $this->is_persian_language() ? 'وضعیت لایسنس بررسی شد.' : 'License status checked.';
$type = 'info';
break;
}
$redirect = add_query_arg(
array(
'page' => $this->admin_page_slug,
'type' => $type,
'message' => rawurlencode( $message ),
),
$this->get_admin_url()
);
wp_safe_redirect( $redirect );
exit();
}
/**
* Deactivate license.
*/
public function deactivate_license() {
if ( ! isset( $_POST[ $this->plugin_slug . '_license_deactivate' ] ) ) {
return;
}
if ( ! check_admin_referer( $this->plugin_slug . '_nonce', $this->plugin_slug . '_nonce' ) ) {
return;
}
$license = trim( get_option( $this->license_option ) );
$api_params = array(
'edd_action' => 'deactivate_license',
'license' => $license,
'item_id' => $this->item_id,
'item_name' => rawurlencode( $this->item_name ),
'url' => home_url(),
'environment' => function_exists( 'wp_get_environment_type' ) ? wp_get_environment_type() : 'production',
);
$response = wp_remote_post(
$this->api_url,
array(
'timeout' => 15,
'sslverify' => false,
'body' => $api_params,
)
);
if ( is_wp_error( $response ) || 200 !== wp_remote_retrieve_response_code( $response ) ) {
$message = is_wp_error( $response ) ? $response->get_error_message() : ($this->is_persian_language() ? 'خطایی رخ داده است، لطفاً دوباره تلاش کنید.' : 'An error occurred, please try again.');
$redirect = add_query_arg(
array(
'page' => $this->admin_page_slug,
'type' => 'error',
'message' => rawurlencode( $message ),
),
$this->get_admin_url()
);
wp_safe_redirect( $redirect );
exit();
}
$license_data = json_decode( wp_remote_retrieve_body( $response ) );
if ( 'deactivated' === $license_data->license ) {
delete_option( $this->status_option );
delete_option( $this->license_option );
$message = $this->is_persian_language() ? 'لایسنس با موفقیت غیرفعال شد.' : 'License deactivated successfully.';
$type = 'success';
} else {
$message = $this->is_persian_language() ? 'خطا در غیرفعال کردن لایسنس.' : 'Error deactivating license.';
$type = 'error';
}
$redirect = add_query_arg(
array(
'page' => $this->admin_page_slug,
'type' => $type,
'message' => rawurlencode( $message ),
),
$this->get_admin_url()
);
wp_safe_redirect( $redirect );
exit();
}
/**
* Maybe check license status from server.
* Checks license status periodically to ensure it's still valid on the server.
*/
public function maybe_check_license_status() {
// Only check if license is active
if ( 'valid' !== get_option( $this->status_option ) ) {
return;
}
// Check last check time
$last_check = get_option( $this->plugin_slug . '_license_last_check', 0 );
$check_interval = apply_filters( $this->plugin_slug . '_license_check_interval', 24 * HOUR_IN_SECONDS ); // Every 24 hours
if ( ( time() - $last_check ) > $check_interval ) {
$this->check_license_status();
}
}
/**
* Check license status from server.
*/
public function check_license_status() {
$license = get_option( $this->license_option );
if ( empty( $license ) ) {
return;
}
$api_params = array(
'edd_action' => 'check_license',
'license' => $license,
'item_id' => $this->item_id,
'item_name' => rawurlencode( $this->item_name ),
'url' => home_url(),
'environment' => function_exists( 'wp_get_environment_type' ) ? wp_get_environment_type() : 'production',
);
$response = wp_remote_post(
$this->api_url,
array(
'timeout' => 15,
'sslverify' => false,
'body' => $api_params,
)
);
// Update last check time
update_option( $this->plugin_slug . '_license_last_check', time() );
if ( is_wp_error( $response ) || 200 !== wp_remote_retrieve_response_code( $response ) ) {
// In case of connection error, keep current status
return;
}
$license_data = json_decode( wp_remote_retrieve_body( $response ) );
if ( ! $license_data ) {
return;
}
// If license is inactive, disabled, expired or revoked on server
if ( in_array( $license_data->license, array( 'inactive', 'disabled', 'expired', 'revoked', 'invalid', 'site_inactive' ) ) ) {
// Deactivate local license
update_option( $this->status_option, $license_data->license );
// If license is completely removed, disabled or not active for this domain, remove the key as well
if ( in_array( $license_data->license, array( 'invalid', 'disabled', 'revoked', 'inactive', 'site_inactive' ) ) ) {
delete_option( $this->license_option );
}
} else {
// Update license status
update_option( $this->status_option, $license_data->license );
}
}
/**
* Check if license is valid.
*/
public function is_license_valid() {
return 'valid' === get_option( $this->status_option );
}
/**
* Get license key.
*/
public function get_license_key() {
return get_option( $this->license_option );
}
/**
* Get license status.
*/
public function get_license_status() {
return get_option( $this->status_option );
}
/**
* Force check license status from server.
* This method bypasses the time interval check.
*/
public function force_check_license_status() {
$this->check_license_status();
}
/**
* Get last license check time.
*/
public function get_last_check_time() {
return get_option( $this->plugin_slug . '_license_last_check', 0 );
}
/**
* Display license notice.
*/
public function license_notice() {
$status = get_option( $this->status_option );
// Only display notice if license is not valid
if ( 'valid' !== $status ) {
$admin_url = $this->get_admin_url();
?>
<div class="notice notice-error" style="display: flex; align-items: center; padding: 12px 15px; border-radius: 4px; border-right: 4px solid #d63638;">
<span class="dashicons dashicons-warning" style="font-size: 24px; margin-left: 10px; color: #d63638;"></span>
<p style="margin: 0; font-size: 14px;"><?php echo $this->is_persian_language() ? 'برای فعالسازی کامل ' . esc_html( $this->plugin_name ) . ' و دسترسی به تمام ویژگیها، لطفاً کلید لایسنس خود را وارد کنید.' : 'To fully activate ' . esc_html( $this->plugin_name ) . ' and access all features, please enter your license key.'; ?></p>
<a href="<?php echo esc_url( $admin_url ); ?>?page=<?php echo esc_attr( $this->admin_page_slug ); ?>" class="button button-primary" style="margin-right: 15px; height: 30px; line-height: 28px; padding: 0 12px; font-weight: 500;"><?php echo $this->is_persian_language() ? 'فعال کردن لایسنس' : 'Activate License'; ?></a>
</div>
<?php
}
}
}