Plugin Directory

Changeset 3486040


Ignore:
Timestamp:
03/18/2026 09:15:42 PM (2 weeks ago)
Author:
jerryscg
Message:

Release 2.1.15

Location:
vulntitan/trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • vulntitan/trunk/CHANGELOG.md

    r3485927 r3486040  
    55The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
    66and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
     7
     8## [2.1.15] - 2026-03-18
     9### Added
     10- Added “Not installed” provider messaging in Spam Protection and disabled unavailable form provider toggles until Contact Form 7 or Fluent Forms is activated.
    711
    812## [2.1.14] - 2026-03-18
  • vulntitan/trunk/assets/js/firewall.js

    r3485927 r3486040  
    9797    let feedbackHideTimer = null;
    9898
     99    function isInstalledProviderControl($control) {
     100        return String($control.data('providerInstalled') || '1') === '1';
     101    }
     102
    99103    function escapeHtml(value) {
    100104        return String(value == null ? '' : value).replace(/[&<>"']/g, function (match) {
     
    933937        $firewallCommentShieldEnabled.prop('disabled', !!isBusy);
    934938        $firewallFormShieldEnabled.prop('disabled', !!isBusy);
    935         $firewallFormProviderCf7Enabled.prop('disabled', !!isBusy);
    936         $firewallFormProviderFluentFormsEnabled.prop('disabled', !!isBusy);
     939        $firewallFormProviderCf7Enabled.prop('disabled', !!isBusy || !isInstalledProviderControl($firewallFormProviderCf7Enabled));
     940        $firewallFormProviderFluentFormsEnabled.prop('disabled', !!isBusy || !isInstalledProviderControl($firewallFormProviderFluentFormsEnabled));
    937941        $firewallCommentSuspiciousAction.prop('disabled', !!isBusy);
    938942        $firewallSubmissionMinSubmitSeconds.prop('disabled', !!isBusy);
  • vulntitan/trunk/assets/js/firewall.min.js

    r3485927 r3486040  
    9797    let feedbackHideTimer = null;
    9898
     99    function isInstalledProviderControl($control) {
     100        return String($control.data('providerInstalled') || '1') === '1';
     101    }
     102
    99103    function escapeHtml(value) {
    100104        return String(value == null ? '' : value).replace(/[&<>"']/g, function (match) {
     
    933937        $firewallCommentShieldEnabled.prop('disabled', !!isBusy);
    934938        $firewallFormShieldEnabled.prop('disabled', !!isBusy);
    935         $firewallFormProviderCf7Enabled.prop('disabled', !!isBusy);
    936         $firewallFormProviderFluentFormsEnabled.prop('disabled', !!isBusy);
     939        $firewallFormProviderCf7Enabled.prop('disabled', !!isBusy || !isInstalledProviderControl($firewallFormProviderCf7Enabled));
     940        $firewallFormProviderFluentFormsEnabled.prop('disabled', !!isBusy || !isInstalledProviderControl($firewallFormProviderFluentFormsEnabled));
    937941        $firewallCommentSuspiciousAction.prop('disabled', !!isBusy);
    938942        $firewallSubmissionMinSubmitSeconds.prop('disabled', !!isBusy);
  • vulntitan/trunk/includes/Admin/Pages/Firewall.php

    r3485911 r3486040  
    88{
    99    public static function render()
    10     { ?>
     10    {
     11        $contactForm7Installed = class_exists('\WPCF7_Submission') && class_exists('\WPCF7_ContactForm');
     12        $fluentFormsInstalled = defined('FLUENTFORM') && class_exists('\FluentForm\App\Modules\SubmissionHandler\SubmissionHandler');
     13        ?>
    1114        <div class="wrap vulntitan-wrapper vulntitan-wrapper--firewall">
    1215            <div class="vulntitan-layout">
     
    588591
    589592                                                    <div class="vulntitan-firewall-field-grid">
    590                                                         <label class="vulntitan-firewall-toggle">
    591                                                             <input type="checkbox" id="vulntitan-firewall-form-provider-cf7-enabled" class="vulntitan-firewall-checkbox">
    592                                                             <span><?php esc_html_e('Protect Contact Form 7', 'vulntitan'); ?></span>
    593                                                         </label>
    594 
    595                                                         <label class="vulntitan-firewall-toggle">
    596                                                             <input type="checkbox" id="vulntitan-firewall-form-provider-fluentforms-enabled" class="vulntitan-firewall-checkbox">
    597                                                             <span><?php esc_html_e('Protect Fluent Forms', 'vulntitan'); ?></span>
    598                                                         </label>
    599 
     593                                                        <div class="vulntitan-firewall-field">
     594                                                            <label class="vulntitan-firewall-toggle">
     595                                                                <input
     596                                                                    type="checkbox"
     597                                                                    id="vulntitan-firewall-form-provider-cf7-enabled"
     598                                                                    class="vulntitan-firewall-checkbox"
     599                                                                    data-provider-installed="<?php echo $contactForm7Installed ? '1' : '0'; ?>"
     600                                                                    <?php disabled(!$contactForm7Installed); ?>
     601                                                                >
     602                                                                <span><?php esc_html_e('Protect Contact Form 7', 'vulntitan'); ?></span>
     603                                                            </label>
     604                                                            <?php if (!$contactForm7Installed) : ?>
     605                                                                <small class="vulntitan-firewall-field-help"><?php esc_html_e('Not installed. Install and activate Contact Form 7 to enable this provider.', 'vulntitan'); ?></small>
     606                                                            <?php endif; ?>
     607                                                        </div>
     608
     609                                                        <div class="vulntitan-firewall-field">
     610                                                            <label class="vulntitan-firewall-toggle">
     611                                                                <input
     612                                                                    type="checkbox"
     613                                                                    id="vulntitan-firewall-form-provider-fluentforms-enabled"
     614                                                                    class="vulntitan-firewall-checkbox"
     615                                                                    data-provider-installed="<?php echo $fluentFormsInstalled ? '1' : '0'; ?>"
     616                                                                    <?php disabled(!$fluentFormsInstalled); ?>
     617                                                                >
     618                                                                <span><?php esc_html_e('Protect Fluent Forms', 'vulntitan'); ?></span>
     619                                                            </label>
     620                                                            <?php if (!$fluentFormsInstalled) : ?>
     621                                                                <small class="vulntitan-firewall-field-help"><?php esc_html_e('Not installed. Install and activate Fluent Forms to enable this provider.', 'vulntitan'); ?></small>
     622                                                            <?php endif; ?>
     623                                                        </div>
    600624                                                    </div>
    601625
  • vulntitan/trunk/languages/vulntitan.pot

    r3485927 r3486040  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: VulnTitan - Malware Scanner, Vulnerability Scanner & Security 2.1.14\n"
     5"Project-Id-Version: VulnTitan - Malware Scanner, Vulnerability Scanner & Security 2.1.15\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/vulntitan\n"
    77"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
  • vulntitan/trunk/readme.txt

    r3485927 r3486040  
    44Tested up to: 6.9
    55Requires PHP: 7.4
    6 Stable tag: 2.1.14
     6Stable tag: 2.1.15
    77License: GPLv2
    88License URI: https://www.gnu.org/licenses/gpl-2.0.html
     
    175175== Changelog ==
    176176
     177= v2.1.15 - 18 Mar, 2026 =
     178* Added “Not installed” provider messaging in Spam Protection and disabled unavailable form provider toggles until Contact Form 7 or Fluent Forms is activated.
     179
    177180= v2.1.14 - 18 Mar, 2026 =
    178181* Fixed the Firewall settings save flow after the Spam Protection UI refactor by removing stale legacy comment-field JavaScript references.
  • vulntitan/trunk/vulntitan.php

    r3485927 r3486040  
    44 * Plugin URI: https://vulntitan.com/vulntitan/
    55 * Description: VulnTitan is a WordPress security plugin with vulnerability scanning, malware detection, file integrity monitoring, comment and form anti-spam protection, and a built-in firewall with WAF payload rules and login protection.
    6  * Version: 2.1.14
     6 * Version: 2.1.15
    77 * Author: Jaroslav Svetlik
    88 * Author URI: https://vulntitan.com
     
    3030
    3131// Define plugin constants
    32 define('VULNTITAN_PLUGIN_VERSION', VULNTITAN_DEVELOPMENT ? uniqid() : '2.1.14');
     32define('VULNTITAN_PLUGIN_VERSION', VULNTITAN_DEVELOPMENT ? uniqid() : '2.1.15');
    3333define('VULNTITAN_PLUGIN_BASENAME', plugin_basename(__FILE__));
    3434define('VULNTITAN_PLUGIN_DIR', untrailingslashit(plugin_dir_path(__FILE__)));
Note: See TracChangeset for help on using the changeset viewer.