You've already forked wc-licensed-product
Implement versions 0.0.4-0.0.7 features
v0.0.4: - Add WooCommerce settings tab for default license settings - Per-product settings override global defaults v0.0.5: - Add bulk license operations (activate, deactivate, revoke, extend, delete) - Add license renewal/extension and lifetime functionality - Add quick action buttons per license row v0.0.6: - Add license dashboard with statistics and analytics - Add license transfer functionality (admin) - Add CSV export for licenses - Add OpenAPI 3.1 specification - Remove /deactivate API endpoint v0.0.7: - Move license dashboard to WooCommerce Reports section - Add license search and filtering in admin - Add customer-facing license transfer with AJAX modal - Add email notifications for license expiration warnings - Add bulk import licenses from CSV - Update README with comprehensive documentation Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -29,7 +29,19 @@
|
||||
</div>
|
||||
|
||||
<div class="license-info-row">
|
||||
<span><strong>{{ __('Domain:') }}</strong> {{ esc_html(item.license.domain) }}</span>
|
||||
<span class="license-domain-display" data-license-id="{{ item.license.id }}">
|
||||
<strong>{{ __('Domain:') }}</strong>
|
||||
<span class="domain-value">{{ esc_html(item.license.domain) }}</span>
|
||||
{% if item.license.status == 'active' or item.license.status == 'inactive' %}
|
||||
<button type="button" class="wclp-transfer-btn"
|
||||
data-license-id="{{ item.license.id }}"
|
||||
data-current-domain="{{ esc_attr(item.license.domain) }}"
|
||||
title="{{ __('Transfer to new domain') }}">
|
||||
<span class="dashicons dashicons-randomize"></span>
|
||||
{{ __('Transfer') }}
|
||||
</button>
|
||||
{% endif %}
|
||||
</span>
|
||||
<span><strong>{{ __('Expires:') }}</strong>
|
||||
{% if item.license.expiresAt %}
|
||||
{{ item.license.expiresAt|date('Y-m-d') }}
|
||||
@@ -60,4 +72,38 @@
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
<!-- Transfer Modal -->
|
||||
<div id="wclp-transfer-modal" class="wclp-modal" style="display:none;">
|
||||
<div class="wclp-modal-overlay"></div>
|
||||
<div class="wclp-modal-content">
|
||||
<button type="button" class="wclp-modal-close" aria-label="{{ __('Close') }}">×</button>
|
||||
<h3>{{ __('Transfer License to New Domain') }}</h3>
|
||||
<form id="wclp-transfer-form">
|
||||
<input type="hidden" name="license_id" id="transfer-license-id" value="">
|
||||
|
||||
<div class="wclp-form-row">
|
||||
<label>{{ __('Current Domain') }}</label>
|
||||
<p class="wclp-current-domain"><code id="transfer-current-domain"></code></p>
|
||||
</div>
|
||||
|
||||
<div class="wclp-form-row">
|
||||
<label for="transfer-new-domain">{{ __('New Domain') }}</label>
|
||||
<input type="text" name="new_domain" id="transfer-new-domain"
|
||||
placeholder="example.com" required
|
||||
pattern="[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?)+">
|
||||
<p class="wclp-field-description">{{ __('Enter the new domain without http:// or www.') }}</p>
|
||||
</div>
|
||||
|
||||
<div class="wclp-form-row wclp-form-actions">
|
||||
<button type="submit" class="button wclp-btn-primary" id="wclp-transfer-submit">
|
||||
{{ __('Transfer License') }}
|
||||
</button>
|
||||
<button type="button" class="button wclp-modal-cancel">{{ __('Cancel') }}</button>
|
||||
</div>
|
||||
|
||||
<div id="wclp-transfer-message" class="wclp-message" style="display:none;"></div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
Reference in New Issue
Block a user