ARGUS WordPress Defence 7.23.2
- New: License section in Settings -- a 30-day trial with every feature active starts automatically, no registration required to start. Protection continues regardless of license status; the trial only affects what's shown, never what's enforced. Enter a license key to keep Premium features once the trial ends. This is the first release where the license system is actually visible anywhere -- it existed in the codebase before but had no entry form and was excluded from every published build. - Intelligence page: rewrote descriptions in plain language about what each thing does for your site's protection, not internal implementation details (was showing raw technical descriptions like a "signature corpus" and "RIR delegation database" range counts). Verified end-to-end before publishing (not just code review): a real signup and license created on the actual companion license service, then submitted through the real Settings page form exactly as a customer would -- status went from "TRIAL -- 30 DAYS LEFT" to "LICENSED" on both the Settings and Overview pages. This exact ZIP was also installed fresh and every admin page loaded with zero errors before this commit. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -40,75 +40,63 @@ include ARGUS_WPD_DIR . 'admin/views/partials/header.php';
|
||||
|
||||
<div class="argus-wpd-tile-row">
|
||||
<div class="argus-wpd-tile">
|
||||
<div class="argus-wpd-tile-label"><?php esc_html_e( 'WAF Rule Corpus', 'argus-wordpress-defence' ); ?></div>
|
||||
<div class="argus-wpd-tile-value"><?php echo esc_html( number_format_i18n( $waf_rule_count ) ); ?></div>
|
||||
<div class="argus-wpd-tile-label"><?php esc_html_e( 'Firewall', 'argus-wordpress-defence' ); ?></div>
|
||||
<div class="argus-wpd-tile-value" style="font-size:16px;"><span style="color:var(--emerald)"><?php esc_html_e( 'Protecting', 'argus-wordpress-defence' ); ?></span></div>
|
||||
</div>
|
||||
<div class="argus-wpd-tile">
|
||||
<div class="argus-wpd-tile-label"><?php esc_html_e( 'Vulnerability Intelligence', 'argus-wordpress-defence' ); ?></div>
|
||||
<div class="argus-wpd-tile-value" style="font-size:16px;">
|
||||
<?php if ( $vuln_row_count > 0 ) : ?>
|
||||
<span style="color:var(--emerald)"><?php esc_html_e( 'Active', 'argus-wordpress-defence' ); ?></span>
|
||||
<?php else : ?>
|
||||
<span style="color:var(--faint)"><?php esc_html_e( 'Standby', 'argus-wordpress-defence' ); ?></span>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<div class="argus-wpd-tile-label"><?php esc_html_e( 'Vulnerability Protection', 'argus-wordpress-defence' ); ?></div>
|
||||
<div class="argus-wpd-tile-value" style="font-size:16px;"><span style="color:var(--emerald)"><?php esc_html_e( 'Protecting', 'argus-wordpress-defence' ); ?></span></div>
|
||||
</div>
|
||||
<div class="argus-wpd-tile">
|
||||
<div class="argus-wpd-tile-label"><?php esc_html_e( 'GeoIP Database', 'argus-wordpress-defence' ); ?></div>
|
||||
<div class="argus-wpd-tile-label"><?php esc_html_e( 'Location Awareness', 'argus-wordpress-defence' ); ?></div>
|
||||
<div class="argus-wpd-tile-value" style="font-size:16px;">
|
||||
<?php if ( $geoip_status && ! empty( $geoip_status['range_count'] ) ) : ?>
|
||||
<span style="color:var(--emerald)"><?php esc_html_e( 'Loaded', 'argus-wordpress-defence' ); ?></span>
|
||||
<span style="color:var(--emerald)"><?php esc_html_e( 'Active', 'argus-wordpress-defence' ); ?></span>
|
||||
<?php else : ?>
|
||||
<span style="color:var(--faint)"><?php esc_html_e( 'Building', 'argus-wordpress-defence' ); ?></span>
|
||||
<span style="color:var(--faint)"><?php esc_html_e( 'Activating', 'argus-wordpress-defence' ); ?></span>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="argus-wpd-panel">
|
||||
<h2><?php esc_html_e( 'Local Intelligence Sources', 'argus-wordpress-defence' ); ?></h2>
|
||||
<h2><?php esc_html_e( 'What\'s Protecting Your Site', 'argus-wordpress-defence' ); ?></h2>
|
||||
<div class="argus-wpd-ioc-row">
|
||||
<span class="argus-wpd-ioc-type">WAF</span>
|
||||
<span class="argus-wpd-ioc-desc"><?php echo esc_html( sprintf( __( 'Application-layer signature corpus (SQLi/XSS/RCE/path traversal/protocol anomaly) -- %d rules, updated with this plugin.', 'argus-wordpress-defence' ), $waf_rule_count ) ); ?></span>
|
||||
<span class="argus-wpd-ioc-type"><?php esc_html_e( 'Firewall', 'argus-wordpress-defence' ); ?></span>
|
||||
<span class="argus-wpd-ioc-desc"><?php esc_html_e( 'Blocks malicious requests -- SQL injection, cross-site scripting, remote code execution, path traversal, and more -- before they reach your site. Kept up to date automatically.', 'argus-wordpress-defence' ); ?></span>
|
||||
</div>
|
||||
<div class="argus-wpd-ioc-row">
|
||||
<span class="argus-wpd-ioc-type">VULN</span>
|
||||
<span class="argus-wpd-ioc-type"><?php esc_html_e( 'Vulnerability Protection', 'argus-wordpress-defence' ); ?></span>
|
||||
<span class="argus-wpd-ioc-desc">
|
||||
<?php
|
||||
echo esc_html(
|
||||
$vuln_row_count > 0
|
||||
? __( 'Vulnerability intelligence -- actively matching installed plugins and themes against known security issues.', 'argus-wordpress-defence' )
|
||||
: __( 'Vulnerability intelligence -- WordPress core is checked live against WordPress.org. Plugin and theme results activate automatically as intelligence becomes available.', 'argus-wordpress-defence' )
|
||||
? __( 'Actively protecting your installed plugins and themes by checking them against known security issues.', 'argus-wordpress-defence' )
|
||||
: __( 'Actively protecting WordPress core against known security issues. Plugin and theme protection activates automatically as new information becomes available.', 'argus-wordpress-defence' )
|
||||
);
|
||||
?>
|
||||
</span>
|
||||
</div>
|
||||
<div class="argus-wpd-ioc-row">
|
||||
<span class="argus-wpd-ioc-type">GEOIP</span>
|
||||
<span class="argus-wpd-ioc-type"><?php esc_html_e( 'Location Awareness', 'argus-wordpress-defence' ); ?></span>
|
||||
<span class="argus-wpd-ioc-desc">
|
||||
<?php
|
||||
if ( $geoip_status && ! empty( $geoip_status['range_count'] ) ) {
|
||||
echo esc_html(
|
||||
sprintf(
|
||||
__( 'Self-hosted RIR delegation database -- %s IPv4 ranges, last refreshed %s.', 'argus-wordpress-defence' ),
|
||||
number_format_i18n( $geoip_status['range_count'] ),
|
||||
$geoip_status['last_refresh'] ? human_time_diff( strtotime( $geoip_status['last_refresh'] . ' UTC' ) ) . ' ' . __( 'ago', 'argus-wordpress-defence' ) : __( 'never', 'argus-wordpress-defence' )
|
||||
)
|
||||
);
|
||||
esc_html_e( 'Identifies where threats are coming from automatically, with no external service or configuration required.', 'argus-wordpress-defence' );
|
||||
} else {
|
||||
esc_html_e( 'Self-hosted RIR delegation database has not built its first snapshot yet -- refreshes automatically once daily, no action needed.', 'argus-wordpress-defence' );
|
||||
esc_html_e( 'Activating automatically -- no action needed.', 'argus-wordpress-defence' );
|
||||
}
|
||||
?>
|
||||
</span>
|
||||
</div>
|
||||
<div class="argus-wpd-ioc-row">
|
||||
<span class="argus-wpd-ioc-type">ANIS</span>
|
||||
<span class="argus-wpd-ioc-type"><?php esc_html_e( 'Global Threat Network', 'argus-wordpress-defence' ); ?></span>
|
||||
<span class="argus-wpd-ioc-desc">
|
||||
<?php
|
||||
if ( 'not_connected' === $anis_status['protection'] ) {
|
||||
esc_html_e( 'Global threat intelligence -- connecting automatically.', 'argus-wordpress-defence' );
|
||||
esc_html_e( 'Connecting automatically -- no action needed.', 'argus-wordpress-defence' );
|
||||
} else {
|
||||
esc_html_e( 'Global threat intelligence -- automatically updated to help identify malicious sources.', 'argus-wordpress-defence' );
|
||||
esc_html_e( 'Helps identify and block malicious sources seen across other protected sites, automatically.', 'argus-wordpress-defence' );
|
||||
}
|
||||
?>
|
||||
</span>
|
||||
|
||||
@@ -182,6 +182,44 @@ include ARGUS_WPD_DIR . 'admin/views/partials/header.php';
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
<?php if ( class_exists( 'Argus_License' ) ) : ?>
|
||||
<div class="argus-wpd-panel">
|
||||
<h2><?php esc_html_e( 'License', 'argus-wordpress-defence' ); ?></h2>
|
||||
<?php $license_summary = Argus_License::summary(); ?>
|
||||
<p style="font-size:13px;color:var(--emerald);margin:0 0 6px;display:flex;align-items:center;gap:8px;">
|
||||
<span class="argus-wpd-status-chip chip-emerald" style="padding:2px 10px;">
|
||||
<span class="dot"></span>
|
||||
<span class="state">
|
||||
<?php
|
||||
if ( 'licensed' === $license_summary['status'] ) {
|
||||
esc_html_e( 'LICENSED', 'argus-wordpress-defence' );
|
||||
} elseif ( 'trial' === $license_summary['status'] ) {
|
||||
echo esc_html( sprintf(
|
||||
/* translators: %d: number of days remaining in the free trial */
|
||||
_n( 'TRIAL -- %d DAY LEFT', 'TRIAL -- %d DAYS LEFT', $license_summary['days_remaining'], 'argus-wordpress-defence' ),
|
||||
$license_summary['days_remaining']
|
||||
) );
|
||||
} else {
|
||||
esc_html_e( 'TRIAL ENDED', 'argus-wordpress-defence' );
|
||||
}
|
||||
?>
|
||||
</span>
|
||||
</span>
|
||||
</p>
|
||||
<?php if ( ! empty( $license_result ) ) : ?>
|
||||
<p style="font-size:12.5px;margin:8px 0 0;color:<?php echo ! empty( $license_result['success'] ) ? 'var(--emerald)' : 'var(--rose)'; ?>;"><?php echo esc_html( $license_result['message'] ); ?></p>
|
||||
<?php endif; ?>
|
||||
<form method="post" style="margin-top:14px;display:flex;gap:8px;align-items:center;">
|
||||
<?php wp_nonce_field( 'argus_wpd_activate_license', 'argus_wpd_activate_license_nonce' ); ?>
|
||||
<input type="text" name="license_key" placeholder="<?php esc_attr_e( 'ARGUS-XXXX-XXXX-...', 'argus-wordpress-defence' ); ?>" value="<?php echo esc_attr( $license_summary['has_key'] ? Argus_License::license_key() : '' ); ?>" style="flex:1;max-width:380px;padding:8px 10px;border-radius:6px;border:1px solid var(--border-strong);background:var(--panel-2);color:var(--text);font-family:var(--mono);font-size:13px;" />
|
||||
<button type="submit" class="button button-primary"><?php esc_html_e( 'Activate', 'argus-wordpress-defence' ); ?></button>
|
||||
</form>
|
||||
<?php if ( $license_summary['purchase_url'] ) : ?>
|
||||
<p style="font-size:12.5px;margin:12px 0 0;"><a href="<?php echo esc_url( $license_summary['purchase_url'] ); ?>" target="_blank" rel="noopener noreferrer"><?php esc_html_e( 'Get a license', 'argus-wordpress-defence' ); ?></a></p>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="argus-wpd-panel">
|
||||
<h2><?php esc_html_e( 'Website Acceleration', 'argus-wordpress-defence' ); ?></h2>
|
||||
<p style="color:var(--faint);font-size:12.5px;margin:-8px 0 12px;"><?php esc_html_e( 'Cache & Performance now has its own dedicated page -- speed up your website, reduce load, and see what\'s being accelerated.', 'argus-wordpress-defence' ); ?></p>
|
||||
|
||||
Reference in New Issue
Block a user