You've already forked wc-licensed-product
Add product version management: - ProductVersion model and VersionManager class - VersionAdminController with meta box on product edit page - AJAX-based version CRUD (add, delete, toggle status) - JavaScript for version management UI Add email notifications: - LicenseEmailController for order emails - License keys included in order completed emails - Support for both HTML and plain text emails Add REST API rate limiting: - 30 requests per minute per IP - Cloudflare and proxy-aware IP detection - HTTP 429 response with Retry-After header Other changes: - Bump version to 0.0.2 - Update CHANGELOG.md - Add version status styles to admin.css Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
148 lines
2.5 KiB
CSS
148 lines
2.5 KiB
CSS
/**
|
|
* WC Licensed Product - Admin Styles
|
|
*
|
|
* @package Jeremias\WcLicensedProduct
|
|
*/
|
|
|
|
/* License Status Badges */
|
|
.license-status {
|
|
display: inline-block;
|
|
padding: 0.2em 0.5em;
|
|
font-size: 0.85em;
|
|
font-weight: 500;
|
|
line-height: 1.2;
|
|
border-radius: 3px;
|
|
}
|
|
|
|
.license-status-active {
|
|
background-color: #d4edda;
|
|
color: #155724;
|
|
}
|
|
|
|
.license-status-inactive {
|
|
background-color: #fff3cd;
|
|
color: #856404;
|
|
}
|
|
|
|
.license-status-expired {
|
|
background-color: #f8d7da;
|
|
color: #721c24;
|
|
}
|
|
|
|
.license-status-revoked {
|
|
background-color: #d6d8db;
|
|
color: #383d41;
|
|
}
|
|
|
|
/* License Table */
|
|
.wp-list-table code {
|
|
font-family: monospace;
|
|
background-color: #f0f0f0;
|
|
padding: 0.15em 0.4em;
|
|
border-radius: 3px;
|
|
font-size: 0.9em;
|
|
}
|
|
|
|
/* License Product Tab */
|
|
#woocommerce-product-data .show_if_licensed {
|
|
display: block !important;
|
|
}
|
|
|
|
#woocommerce-product-data .hide_if_licensed {
|
|
display: none !important;
|
|
}
|
|
|
|
/* Action Buttons */
|
|
.wp-list-table .button-link-delete {
|
|
color: #a00;
|
|
}
|
|
|
|
.wp-list-table .button-link-delete:hover {
|
|
color: #dc3232;
|
|
}
|
|
|
|
/* Pagination */
|
|
.tablenav-pages .pagination-links {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.5em;
|
|
}
|
|
|
|
.tablenav-pages .paging-input {
|
|
margin: 0 0.5em;
|
|
}
|
|
|
|
/* Orders Column */
|
|
.column-license {
|
|
width: 15%;
|
|
}
|
|
|
|
.column-license .dashicons {
|
|
vertical-align: middle;
|
|
margin-right: 0.3em;
|
|
}
|
|
|
|
.column-license .dashicons-warning {
|
|
color: #dba617;
|
|
}
|
|
|
|
.column-license .dashicons-admin-network {
|
|
color: #2271b1;
|
|
}
|
|
|
|
/* Version Status Badges */
|
|
.version-status {
|
|
display: inline-block;
|
|
padding: 0.2em 0.5em;
|
|
font-size: 0.85em;
|
|
font-weight: 500;
|
|
line-height: 1.2;
|
|
border-radius: 3px;
|
|
}
|
|
|
|
.version-status-active {
|
|
background-color: #d4edda;
|
|
color: #155724;
|
|
}
|
|
|
|
.version-status-inactive {
|
|
background-color: #fff3cd;
|
|
color: #856404;
|
|
}
|
|
|
|
/* Version Meta Box */
|
|
.wc-licensed-product-versions .versions-add-form {
|
|
background: #f9f9f9;
|
|
padding: 15px;
|
|
border: 1px solid #e5e5e5;
|
|
border-radius: 4px;
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.wc-licensed-product-versions .versions-add-form h4 {
|
|
margin-top: 0;
|
|
}
|
|
|
|
.wc-licensed-product-versions .form-table {
|
|
margin: 0;
|
|
}
|
|
|
|
.wc-licensed-product-versions .form-table th {
|
|
padding: 10px 10px 10px 0;
|
|
width: 120px;
|
|
}
|
|
|
|
.wc-licensed-product-versions .form-table td {
|
|
padding: 10px 0;
|
|
}
|
|
|
|
#versions-table {
|
|
margin-top: 10px;
|
|
}
|
|
|
|
#versions-table .no-versions td {
|
|
text-align: center;
|
|
font-style: italic;
|
|
color: #666;
|
|
}
|