• Resolved e dev

    (@efishinsea)


    Hi. Your plugin continues to improve. Here are a few suggestions to make it better.

    • When deleting blocked messages, users have to click a confirmation to delete the selected messages and then have to click again on OK to get rid of the second popup. One is enough, so drop the second one.
    • When blocked messages are deleted, clear the red notification circle showing newly blocked messages next to the admin CF7 Form Filter menu item.
    • For the column selector checkboxes when viewing a form’s messages, move these into actual WordPress plugin options. This will make the choices stick so we don’t have to re-set them every time we come back to the page. See these:
    • On the plugin settings screen, you’ve updated the .km-tag-container class to include display: flex; width: min-content; which is causing any spam-words with multiple words in the phrase to stack up vertically. Remove width: min-content; or change value to auto to fix this.

    Thanks!

Viewing 9 replies - 1 through 9 (of 9 total)
  • Plugin Author kofimokome

    (@kofimokome)

    ok, thank you for the suggestions.

    Thread Starter e dev

    (@efishinsea)

    The Settings screen fields do not work well at the moment. If you type a word into the list, it used to popup in a blue bubble under the text field to click and select, and then save the settings. Now, if you type in anything, nothing pops up, and if you hit enter to register that word, the page reloads automatically upon hitting Enter with nothing having been saved.

    The blue bubble thing is the neat looking modern UI, but it would simpler (and likely more functional) if you just had a list of comma separated words here.

    The other problems listed in the original post are still outstanding too.

    Plugin Author kofimokome

    (@kofimokome)

    Hi!
    Thanks for the feedback. I also noticed the same behavior with the enter key. I am working on it. I built this new UI from scratch, to address some issues with the old UI. It is not perfect yet. You can revert to the old UI by checking the first option on the settings page. I can add an option to disable all the UIs so that you can manually type the words separated by commas in the text field.
    Finally, I have addressed the other issues you pointed out. I am currently testing the new version. Hopefully, it should be ready by the end of this month

    Thread Starter e dev

    (@efishinsea)

    Good job on making things better and better.

    Today’s suggestion is to update your Regex on word matches to include word boundaries. This will allow Spam Words to be matched, but not to match partial words which may be OK to allow.

    example:

    <?php
    /*
    Block 'sex' but do not block 'unisex'
    */
    
    $wordtoblock = "sex";
    
    $test = "/\b(".$wordtoblock.")\b/i";
    
    $mystring = "order a sweatshirt style that is unisex";
    
    if (preg_match($test, $mystring)) {
         echo "A match was found.";
     } else {
         echo "A match was not found.";
     }
    ?>

    Another option could be to provide a way for users to enter “allowed” words to avoid and test for those up front or possibly a checkbox to set a flag to either apply STRICT testing of entire words only (with word boundaries) or RELAXED testing of any partial match (without word boundaries).

    I realize the current partial word match will cover more ground in looking for anything that matches (sex/sexy/sexual/etc.) though in some instances, the partial matches are blocking legitimate requests.

    Keep it up!

    Plugin Author kofimokome

    (@kofimokome)

    Okay. thanks.
    I will have a look at it.

    Plugin Author kofimokome

    (@kofimokome)

    Hi, I am making the following changes. Would like to find out if it is easier for a user to understand.

    If the filter is:
    1. exact:word or word=> The plugin searches only for exact matches. eg Word, word, WORD, woRD etc…
    2. endsWith:ing => The plugin searches only for words ending with “ing” eg. eating, walking, talking etc…, including the word “ing”.
    3. startsWith:app => The plugin searches only for words starting with “app”. eg application, apple, including the word “app”
    4. contains:ver => The plugin searches only for words containing “ver”. eg every, Elvera, neverland, including the word “ver”, words starting with “ver” and words ending with “ver”

    More advanced filters:
    5. endsWithExcluding:ing => The plugin searches only for words ending with “ing” eg. eating, walking, talking etc…, excluding the word “ing”.
    6. startsWithExcluding:app => The plugin searches only for words starting with “app”. eg application, apple, excluding the word “app”
    7. containsExcluding:ver => The plugin searches only for words containing “ver”. eg every, Elvera, neverland, excluding the word “ver”, words starting with “ver” and words ending with “ver”
    8. containsExcludingEnd:ver => The plugin searches only for words containing “ver”. eg every, Elvera, neverland, including words starting with “ver” and excluding the word “ver” and words ending with “ver”
    9. containsExcludingStart:ver => The plugin searches only for words containing “ver”. eg every, Elvera, neverland, excluding words starting with “ver” and including the word “ver” and words ending with “ver”

    Thread Starter e dev

    (@efishinsea)

    Apologies. I somehow missed the message coming in for this question. Maybe you’ve already done these things…

    If you make the filters more like regex matches, that could be good, but you would definitely want to explain that on the settings page or maybe have a checkbox that allows the user to “match only the exact filter word (“ver”) and not any instance of a match (every, version, veritable, etc.) so they would at least know what they are adding. Most normal people aren’t going to know much about regular expressions so maybe adding an option which allows them to add custom regex of their own might be too much. I do see in some places though a dropdown with options like you describe:

    <select name="match2" style="width:250px;" autocomplete="off" autofill="off">
    <option value="contains" selected="">contains</option>
    <option value="matches">matches regex</option>
    <option value="does not contain">does not contain</option>
    <option value="is" disabled="">equals</option>
    <option value="begins" disabled="">begins with</option>
    <option value="ends" disabled="">ends with</option>
    <option value="does not begin" disabled="">does not begin</option>
    <option value="does not end" disabled="">does not end with</option>
    <option value="does not match">does not match</option>
    </select>

    Something like that could help, assuming it was allowed to be set *per term* and not globally for ALL terms at once.

    2 issues I ran into today are

    1. Trying to figure out why a message was filtered out by the plugin when it matched none of the “Spam Words” terms or filters
    2. The message in the filter that is for a collection field (like checkboxes or a multi-select) does not display these values on the ‘view message’ screen. In this case, an apparel company is selling products that you check from a list (t-shirt, hat, bag, etc.) and the values are stored in the JSON you save as the selections
    "apparel-type":["Hats,"T-Shirts"]

    but when you view the blocked message, it only says “Array” instead of the actual values. And most of the time as you note in your popup, you can’t resubmit a blocked message if you using a recaptcha, so maybe just popping up a mailto: email with the content would be a good alternative. Cut & Paste works too though… so maybe that isn’t needed.

    As always, thanks for your good work. I hope my feedback is useful.

    Plugin Author kofimokome

    (@kofimokome)

    Hi thanks for the feedback. I will look into it as soon as I can

    Plugin Author kofimokome

    (@kofimokome)

    I have fixed the issue with multi-select fields and checkboxes. It will be available in the next release, probably early next month.

Viewing 9 replies - 1 through 9 (of 9 total)
  • You must be logged in to reply to this topic.